forked from CGM_Public/pretix_original
Compare commits
198
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39115152a6 | ||
|
|
7ce790dbb9 | ||
|
|
9a4a0df625 | ||
|
|
a8376b9a79 | ||
|
|
b21041a833 | ||
|
|
e8a716273e | ||
|
|
59a7845ac4 | ||
|
|
ef1024d231 | ||
|
|
71d0d72425 | ||
|
|
6252e526bf | ||
|
|
f3d8a1c2e1 | ||
|
|
148a3b2933 | ||
|
|
709633d6fb | ||
|
|
af3418db54 | ||
|
|
ca8d253114 | ||
|
|
f014a9bbd3 | ||
|
|
3e5bfb44d2 | ||
|
|
1736efbdc3 | ||
|
|
5cd7959e86 | ||
|
|
b847612e1a | ||
|
|
832f4e4d68 | ||
|
|
0a23aeece4 | ||
|
|
9622bf41a1 | ||
|
|
dd4bac70be | ||
|
|
1187757b56 | ||
|
|
abe5b4ef53 | ||
|
|
b1fb391d08 | ||
|
|
a95c6d94ee | ||
|
|
4809558343 | ||
|
|
a6d1af01d2 | ||
|
|
23e58996bc | ||
|
|
15e05dae2f | ||
|
|
ce40524ae8 | ||
|
|
46aefc10f3 | ||
|
|
1f49b577f0 | ||
|
|
b3aa405bcc | ||
|
|
f29b60b3db | ||
|
|
603e7821cc | ||
|
|
ffdc73e0a3 | ||
|
|
00b4622afa | ||
|
|
045edc7cec | ||
|
|
1635118772 | ||
|
|
87c987fee5 | ||
|
|
1267bf8ba8 | ||
|
|
a8d1ed8ee1 | ||
|
|
b7736d5e82 | ||
|
|
cfefe5bfc3 | ||
|
|
f0f272b304 | ||
|
|
e8b159e6d4 | ||
|
|
b0de6815db | ||
|
|
92ceea2680 | ||
|
|
c2a9f9f76a | ||
|
|
1e1f0e5d86 | ||
|
|
9634907539 | ||
|
|
70dd688ec1 | ||
|
|
5ad0213195 | ||
|
|
c40cf45179 | ||
|
|
a72839fd0e | ||
|
|
5071db0a8b | ||
|
|
0dce6464ad | ||
|
|
e1d3f16819 | ||
|
|
6c0b266260 | ||
|
|
e4692ed746 | ||
|
|
a99bb283e2 | ||
|
|
06f09dda49 | ||
|
|
da1de7d646 | ||
|
|
63a2e2e058 | ||
|
|
5d83f70f75 | ||
|
|
f8badea1d3 | ||
|
|
d727d58bc9 | ||
|
|
c8d4815c9e | ||
|
|
c25d6988a7 | ||
|
|
89f1f61b73 | ||
|
|
ecd0cbe00d | ||
|
|
6cb9dc5b35 | ||
|
|
6846348a7f | ||
|
|
df785f8c6d | ||
|
|
bc32fe91a6 | ||
|
|
0664127e70 | ||
|
|
5cf2f1beef | ||
|
|
ff6b4ae7bf | ||
|
|
6b5fd07535 | ||
|
|
7a423ebead | ||
|
|
62c028d9ac | ||
|
|
57f5eeff82 | ||
|
|
d92e82a133 | ||
|
|
5704142fe1 | ||
|
|
8c5768912c | ||
|
|
934567c811 | ||
|
|
b16f54fad9 | ||
|
|
5dcd1f229b | ||
|
|
40e4f8a05a | ||
|
|
8d9295a628 | ||
|
|
063e1e16a3 | ||
|
|
b5733a433d | ||
|
|
454354f148 | ||
|
|
8480f45997 | ||
|
|
b909b0b4bd | ||
|
|
c4b45b7d95 | ||
|
|
3ce6030122 | ||
|
|
28e26284a6 | ||
|
|
aaf1b7776e | ||
|
|
d545b15d0d | ||
|
|
0a334d1c67 | ||
|
|
1a2fb688de | ||
|
|
c1333d6edb | ||
|
|
e3e432a9e4 | ||
|
|
36ea18970b | ||
|
|
bde2d50828 | ||
|
|
e8334df908 | ||
|
|
c8943785d7 | ||
|
|
41b878b667 | ||
|
|
4f63ba967b | ||
|
|
a56c6ae1e0 | ||
|
|
1efd952a19 | ||
|
|
ddd0db3d98 | ||
|
|
dde724d0be | ||
|
|
9f55187690 | ||
|
|
e572bfb752 | ||
|
|
beccdf8dad | ||
|
|
b141ea4ed5 | ||
|
|
32dd125b65 | ||
|
|
b5794780da | ||
|
|
835c08f1ca | ||
|
|
a79d5fddda | ||
|
|
beb03e07e0 | ||
|
|
dd2e5d09f9 | ||
|
|
5c2456e92e | ||
|
|
3579a7f298 | ||
|
|
5dd20de745 | ||
|
|
5708099fc9 | ||
|
|
2c2e8e7d21 | ||
|
|
5993482f6c | ||
|
|
c905659dfb | ||
|
|
196c131ac9 | ||
|
|
a554433fad | ||
|
|
c552dd876c | ||
|
|
105ae8592d | ||
|
|
ca4540eeb7 | ||
|
|
381366a248 | ||
|
|
816a3ec994 | ||
|
|
88d3d12dbc | ||
|
|
71caa17879 | ||
|
|
2ecdfde756 | ||
|
|
1f753a57c5 | ||
|
|
595c042624 | ||
|
|
5a5a551c21 | ||
|
|
e74793994a | ||
|
|
f1bdd3b7af | ||
|
|
13c40f9bb7 | ||
|
|
3e15e2a887 | ||
|
|
7525ee853b | ||
|
|
f02b1be659 | ||
|
|
20f171b790 | ||
|
|
22906dfa77 | ||
|
|
5f74e661b3 | ||
|
|
5b99788354 | ||
|
|
b45d58b60e | ||
|
|
2a58e958b0 | ||
|
|
e44695dfcf | ||
|
|
1d289088f4 | ||
|
|
a9be6337bc | ||
|
|
df29d4e8c4 | ||
|
|
bf2cabf7b6 | ||
|
|
db614d36e6 | ||
|
|
13452b5d8c | ||
|
|
6422cd7858 | ||
|
|
2e87cb5691 | ||
|
|
b53ee938bf | ||
|
|
ec3bdd4a57 | ||
|
|
7b607594d8 | ||
|
|
53f129d5d3 | ||
|
|
a4385c8b6e | ||
|
|
3acae96021 | ||
|
|
b9add5ff6f | ||
|
|
4ca9813a1d | ||
|
|
347748896d | ||
|
|
0f590caa18 | ||
|
|
18801f2d1c | ||
|
|
e5f29bd592 | ||
|
|
1f904d482b | ||
|
|
b8ad276f53 | ||
|
|
e109c37738 | ||
|
|
4d597d5be3 | ||
|
|
ae8ec42905 | ||
|
|
e5b89e9b08 | ||
|
|
da91f5f117 | ||
|
|
ae29240e58 | ||
|
|
74edf10b04 | ||
|
|
e2e0eca872 | ||
|
|
6132e4a2c4 | ||
|
|
7df7d28518 | ||
|
|
11ab5c5eeb | ||
|
|
20211d2097 | ||
|
|
d760ad38bf | ||
|
|
69af2cee93 | ||
|
|
6b199a2b9c | ||
|
|
94a64ba53a |
@@ -60,6 +60,14 @@ http {
|
|||||||
deny all;
|
deny all;
|
||||||
return 404;
|
return 404;
|
||||||
}
|
}
|
||||||
|
location /static/staticfiles.json {
|
||||||
|
deny all;
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
location /static/CACHE/manifest.json {
|
||||||
|
deny all;
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
location /static/ {
|
location /static/ {
|
||||||
alias /pretix/src/pretix/static.dist/;
|
alias /pretix/src/pretix/static.dist/;
|
||||||
access_log off;
|
access_log off;
|
||||||
|
|||||||
@@ -248,6 +248,14 @@ The following snippet is an example on how to configure a nginx proxy for pretix
|
|||||||
return 404;
|
return 404;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
location /static/staticfiles.json {
|
||||||
|
deny all;
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
location /static/CACHE/manifest.json {
|
||||||
|
deny all;
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
location /static/ {
|
location /static/ {
|
||||||
alias /var/pretix/venv/lib/python3.11/site-packages/pretix/static.dist/;
|
alias /var/pretix/venv/lib/python3.11/site-packages/pretix/static.dist/;
|
||||||
access_log off;
|
access_log off;
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ lines list of objects The actual invo
|
|||||||
├ gross_value money (string) Price including taxes
|
├ gross_value money (string) Price including taxes
|
||||||
├ tax_value money (string) Tax amount included
|
├ tax_value money (string) Tax amount included
|
||||||
├ tax_name string Name of used tax rate (e.g. "VAT")
|
├ tax_name string Name of used tax rate (e.g. "VAT")
|
||||||
|
├ tax_code string Codified reason for tax rate (or ``null``), see :ref:`rest-taxcodes`.
|
||||||
└ tax_rate decimal (string) Used tax rate
|
└ tax_rate decimal (string) Used tax rate
|
||||||
foreign_currency_display string If the invoice should also show the total and tax
|
foreign_currency_display string If the invoice should also show the total and tax
|
||||||
amount in a different currency, this contains the
|
amount in a different currency, this contains the
|
||||||
@@ -126,6 +127,10 @@ internal_reference string Customer's refe
|
|||||||
|
|
||||||
The ``event`` attribute has been added. The organizer-level endpoint has been added.
|
The ``event`` attribute has been added. The organizer-level endpoint has been added.
|
||||||
|
|
||||||
|
.. versionchanged:: 2024.8
|
||||||
|
|
||||||
|
The ``tax_code`` attribute has been added.
|
||||||
|
|
||||||
|
|
||||||
List of all invoices
|
List of all invoices
|
||||||
--------------------
|
--------------------
|
||||||
@@ -203,6 +208,7 @@ List of all invoices
|
|||||||
"gross_value": "23.00",
|
"gross_value": "23.00",
|
||||||
"tax_value": "0.00",
|
"tax_value": "0.00",
|
||||||
"tax_name": "VAT",
|
"tax_name": "VAT",
|
||||||
|
"tax_code": "S/standard",
|
||||||
"tax_rate": "0.00"
|
"tax_rate": "0.00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -342,6 +348,7 @@ Fetching individual invoices
|
|||||||
"gross_value": "23.00",
|
"gross_value": "23.00",
|
||||||
"tax_value": "0.00",
|
"tax_value": "0.00",
|
||||||
"tax_name": "VAT",
|
"tax_name": "VAT",
|
||||||
|
"tax_code": "S/standard",
|
||||||
"tax_rate": "0.00"
|
"tax_rate": "0.00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -69,6 +69,10 @@ hidden_if_available integer **DEPRECATED*
|
|||||||
hidden_if_item_available integer The internal ID of a different item, or ``null``. If
|
hidden_if_item_available integer The internal ID of a different item, or ``null``. If
|
||||||
set, this item won't be shown publicly as long as this
|
set, this item won't be shown publicly as long as this
|
||||||
other item is available.
|
other item is available.
|
||||||
|
hidden_if_item_available_mode string If ``hide`` (the default), this item is hidden in the shop
|
||||||
|
if unavailable due to the ``hidden_if_item_available`` setting.
|
||||||
|
If ``info``, the item is visible, but can't be purchased,
|
||||||
|
and a note explaining the unavailability is displayed.
|
||||||
require_voucher boolean If ``true``, this item can only be bought using a
|
require_voucher boolean If ``true``, this item can only be bought using a
|
||||||
voucher that is specifically assigned to this item.
|
voucher that is specifically assigned to this item.
|
||||||
hide_without_voucher boolean If ``true``, this item is only shown during the voucher
|
hide_without_voucher boolean If ``true``, this item is only shown during the voucher
|
||||||
@@ -239,6 +243,10 @@ meta_data object Values set fo
|
|||||||
The ``hidden_if_item_available`` attributes has been added, the ``hidden_if_available`` attribute has been
|
The ``hidden_if_item_available`` attributes has been added, the ``hidden_if_available`` attribute has been
|
||||||
deprecated.
|
deprecated.
|
||||||
|
|
||||||
|
.. versionchanged:: 2025.01
|
||||||
|
|
||||||
|
The ``hidden_if_item_available_mode`` attributes has been added.
|
||||||
|
|
||||||
Notes
|
Notes
|
||||||
-----
|
-----
|
||||||
|
|
||||||
@@ -308,6 +316,7 @@ Endpoints
|
|||||||
"available_until_mode": "hide",
|
"available_until_mode": "hide",
|
||||||
"hidden_if_available": null,
|
"hidden_if_available": null,
|
||||||
"hidden_if_item_available": null,
|
"hidden_if_item_available": null,
|
||||||
|
"hidden_if_item_available_mode": "hide",
|
||||||
"require_voucher": false,
|
"require_voucher": false,
|
||||||
"hide_without_voucher": false,
|
"hide_without_voucher": false,
|
||||||
"allow_cancel": true,
|
"allow_cancel": true,
|
||||||
@@ -459,6 +468,7 @@ Endpoints
|
|||||||
"available_until_mode": "hide",
|
"available_until_mode": "hide",
|
||||||
"hidden_if_available": null,
|
"hidden_if_available": null,
|
||||||
"hidden_if_item_available": null,
|
"hidden_if_item_available": null,
|
||||||
|
"hidden_if_item_available_mode": "hide",
|
||||||
"require_voucher": false,
|
"require_voucher": false,
|
||||||
"hide_without_voucher": false,
|
"hide_without_voucher": false,
|
||||||
"allow_cancel": true,
|
"allow_cancel": true,
|
||||||
@@ -589,6 +599,7 @@ Endpoints
|
|||||||
"available_until_mode": "hide",
|
"available_until_mode": "hide",
|
||||||
"hidden_if_available": null,
|
"hidden_if_available": null,
|
||||||
"hidden_if_item_available": null,
|
"hidden_if_item_available": null,
|
||||||
|
"hidden_if_item_available_mode": "hide",
|
||||||
"require_voucher": false,
|
"require_voucher": false,
|
||||||
"hide_without_voucher": false,
|
"hide_without_voucher": false,
|
||||||
"allow_cancel": true,
|
"allow_cancel": true,
|
||||||
@@ -705,6 +716,7 @@ Endpoints
|
|||||||
"available_until_mode": "hide",
|
"available_until_mode": "hide",
|
||||||
"hidden_if_available": null,
|
"hidden_if_available": null,
|
||||||
"hidden_if_item_available": null,
|
"hidden_if_item_available": null,
|
||||||
|
"hidden_if_item_available_mode": "hide",
|
||||||
"require_voucher": false,
|
"require_voucher": false,
|
||||||
"hide_without_voucher": false,
|
"hide_without_voucher": false,
|
||||||
"allow_cancel": true,
|
"allow_cancel": true,
|
||||||
@@ -855,6 +867,7 @@ Endpoints
|
|||||||
"available_until_mode": "hide",
|
"available_until_mode": "hide",
|
||||||
"hidden_if_available": null,
|
"hidden_if_available": null,
|
||||||
"hidden_if_item_available": null,
|
"hidden_if_item_available": null,
|
||||||
|
"hidden_if_item_available_mode": "hide",
|
||||||
"require_voucher": false,
|
"require_voucher": false,
|
||||||
"hide_without_voucher": false,
|
"hide_without_voucher": false,
|
||||||
"generate_tickets": null,
|
"generate_tickets": null,
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ fees list of objects List of fees in
|
|||||||
├ tax_rate decimal (string) VAT rate applied for this fee
|
├ tax_rate decimal (string) VAT rate applied for this fee
|
||||||
├ tax_value money (string) VAT included in this fee
|
├ tax_value money (string) VAT included in this fee
|
||||||
├ tax_rule integer The ID of the used tax rule (or ``null``)
|
├ tax_rule integer The ID of the used tax rule (or ``null``)
|
||||||
|
├ tax_code string Codified reason for tax rate (or ``null``), see :ref:`rest-taxcodes`.
|
||||||
└ canceled boolean Whether or not this fee has been canceled.
|
└ canceled boolean Whether or not this fee has been canceled.
|
||||||
downloads list of objects List of ticket download options for order-wise ticket
|
downloads list of objects List of ticket download options for order-wise ticket
|
||||||
downloading. This might be a multi-page PDF or a ZIP
|
downloading. This might be a multi-page PDF or a ZIP
|
||||||
@@ -159,6 +160,10 @@ cancellation_date datetime Time of order c
|
|||||||
|
|
||||||
The ``cancellation_date`` attribute has been added and can also be used as an ordering key.
|
The ``cancellation_date`` attribute has been added and can also be used as an ordering key.
|
||||||
|
|
||||||
|
.. versionchanged:: 2025.1
|
||||||
|
|
||||||
|
The ``tax_code`` attribute has been added.
|
||||||
|
|
||||||
.. _order-position-resource:
|
.. _order-position-resource:
|
||||||
|
|
||||||
Order position resource
|
Order position resource
|
||||||
@@ -195,6 +200,7 @@ voucher_budget_use money (string) Amount of money
|
|||||||
are changed *after* the order was created. Can be ``null``.
|
are changed *after* the order was created. Can be ``null``.
|
||||||
tax_rate decimal (string) VAT rate applied for this position
|
tax_rate decimal (string) VAT rate applied for this position
|
||||||
tax_value money (string) VAT included in this position
|
tax_value money (string) VAT included in this position
|
||||||
|
tax_code string Codified reason for tax rate (or ``null``), see :ref:`rest-taxcodes`.
|
||||||
tax_rule integer The ID of the used tax rule (or ``null``)
|
tax_rule integer The ID of the used tax rule (or ``null``)
|
||||||
secret string Secret code printed on the tickets for validation
|
secret string Secret code printed on the tickets for validation
|
||||||
addon_to integer Internal ID of the position this position is an add-on for (or ``null``)
|
addon_to integer Internal ID of the position this position is an add-on for (or ``null``)
|
||||||
@@ -255,6 +261,10 @@ pdf_data object Data object req
|
|||||||
|
|
||||||
The attribute ``print_logs`` has been added.
|
The attribute ``print_logs`` has been added.
|
||||||
|
|
||||||
|
.. versionchanged:: 2025.1
|
||||||
|
|
||||||
|
The ``tax_code`` attribute has been added.
|
||||||
|
|
||||||
.. _order-payment-resource:
|
.. _order-payment-resource:
|
||||||
|
|
||||||
Order payment resource
|
Order payment resource
|
||||||
@@ -406,6 +416,7 @@ List of all orders
|
|||||||
"tax_rate": "0.00",
|
"tax_rate": "0.00",
|
||||||
"tax_value": "0.00",
|
"tax_value": "0.00",
|
||||||
"tax_rule": null,
|
"tax_rule": null,
|
||||||
|
"tax_code": null,
|
||||||
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
||||||
"addon_to": null,
|
"addon_to": null,
|
||||||
"subevent": null,
|
"subevent": null,
|
||||||
@@ -645,6 +656,7 @@ Fetching individual orders
|
|||||||
"tax_rate": "0.00",
|
"tax_rate": "0.00",
|
||||||
"tax_rule": null,
|
"tax_rule": null,
|
||||||
"tax_value": "0.00",
|
"tax_value": "0.00",
|
||||||
|
"tax_code": null,
|
||||||
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
||||||
"addon_to": null,
|
"addon_to": null,
|
||||||
"subevent": null,
|
"subevent": null,
|
||||||
@@ -843,7 +855,7 @@ Generating new secrets
|
|||||||
|
|
||||||
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/regenerate_secrets/
|
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/regenerate_secrets/
|
||||||
|
|
||||||
Triggers generation of new ``secret`` attributes for both the order and all order positions.
|
Triggers generation of new ``secret`` and ``web_secret`` attributes for both the order and all order positions.
|
||||||
|
|
||||||
**Example request**:
|
**Example request**:
|
||||||
|
|
||||||
@@ -874,7 +886,7 @@ Generating new secrets
|
|||||||
|
|
||||||
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orderpositions/(id)/regenerate_secrets/
|
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orderpositions/(id)/regenerate_secrets/
|
||||||
|
|
||||||
Triggers generation of a new ``secret`` attribute for a single order position.
|
Triggers generation of a new ``secret`` and ``web_secret`` attribute for a single order position.
|
||||||
|
|
||||||
**Example request**:
|
**Example request**:
|
||||||
|
|
||||||
@@ -1613,6 +1625,7 @@ List of all order positions
|
|||||||
"tax_rate": "0.00",
|
"tax_rate": "0.00",
|
||||||
"tax_rule": null,
|
"tax_rule": null,
|
||||||
"tax_value": "0.00",
|
"tax_value": "0.00",
|
||||||
|
"tax_code": null,
|
||||||
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
||||||
"discount": null,
|
"discount": null,
|
||||||
"pseudonymization_id": "MQLJvANO3B",
|
"pseudonymization_id": "MQLJvANO3B",
|
||||||
@@ -1739,6 +1752,7 @@ Fetching individual positions
|
|||||||
"tax_rate": "0.00",
|
"tax_rate": "0.00",
|
||||||
"tax_rule": null,
|
"tax_rule": null,
|
||||||
"tax_value": "0.00",
|
"tax_value": "0.00",
|
||||||
|
"tax_code": null,
|
||||||
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
|
||||||
"addon_to": null,
|
"addon_to": null,
|
||||||
"subevent": null,
|
"subevent": null,
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
.. spelling:word-list::
|
||||||
|
|
||||||
|
EN16931
|
||||||
|
DSFinV-K
|
||||||
|
|
||||||
.. _rest-taxrules:
|
.. _rest-taxrules:
|
||||||
|
|
||||||
Tax rules
|
Tax rules
|
||||||
@@ -18,6 +23,7 @@ id integer Internal ID of
|
|||||||
name multi-lingual string The tax rules' name
|
name multi-lingual string The tax rules' name
|
||||||
internal_name string An optional name that is only used in the backend
|
internal_name string An optional name that is only used in the backend
|
||||||
rate decimal (string) Tax rate in percent
|
rate decimal (string) Tax rate in percent
|
||||||
|
code string Codified reason for tax rate (or ``null``), see :ref:`rest-taxcodes`.
|
||||||
price_includes_tax boolean If ``true`` (default), tax is assumed to be included in
|
price_includes_tax boolean If ``true`` (default), tax is assumed to be included in
|
||||||
the specified product price
|
the specified product price
|
||||||
eu_reverse_charge boolean **DEPRECATED**. If ``true``, EU reverse charge rules
|
eu_reverse_charge boolean **DEPRECATED**. If ``true``, EU reverse charge rules
|
||||||
@@ -42,6 +48,42 @@ custom_rules object Dynamic rules s
|
|||||||
|
|
||||||
The ``custom_rules`` attribute has been added.
|
The ``custom_rules`` attribute has been added.
|
||||||
|
|
||||||
|
.. versionchanged:: 2023.8
|
||||||
|
|
||||||
|
The ``code`` attribute has been added.
|
||||||
|
|
||||||
|
.. _rest-taxcodes:
|
||||||
|
|
||||||
|
Tax codes
|
||||||
|
---------
|
||||||
|
|
||||||
|
For integration with external systems, such as electronic invoicing or bookkeeping systems, the tax rate itself is often
|
||||||
|
not sufficient information. For example, there could be many different reasons why a sale has a tax rate of 0 %, but the
|
||||||
|
external handling of the transaction depends on which reason applies. Therefore, pretix allows to supply a codified
|
||||||
|
reason that allows us to understand what the specific legal situation is. These tax codes are modeled after a combination
|
||||||
|
of the code lists from the European standard EN16931 and the German standard DSFinV-K.
|
||||||
|
|
||||||
|
The following codes are supported:
|
||||||
|
|
||||||
|
- ``S/standard`` -- Standard VAT rate in the merchant country
|
||||||
|
- ``S/reduced`` -- Reduced VAT rate in the merchant country
|
||||||
|
- ``S/averaged`` -- Averaged VAT rate in the merchant country (known use case: agricultural businesses in Germany)
|
||||||
|
- ``AE`` -- Reverse charge
|
||||||
|
- ``O`` -- Services outside of scope of tax
|
||||||
|
- ``E`` -- Exempt from tax (no reason given)
|
||||||
|
- ``E/<reason>`` -- Exempt from tax, where ``<reason>`` is one of the codes listed in the `VATEX code list`_ version 5.0.
|
||||||
|
- ``Z`` -- Zero-rated goods
|
||||||
|
- ``G`` -- Free export item, VAT not charged
|
||||||
|
- ``K`` -- VAT exempt for EEA intra-community supply of goods and services
|
||||||
|
- ``L`` -- Canary Islands general indirect tax
|
||||||
|
- ``M`` -- Tax for production, services and importation in Ceuta and Melilla
|
||||||
|
- ``B`` -- Transferred (VAT), only in Italy
|
||||||
|
|
||||||
|
The code set in the ``code`` attribute of the tax rule is used by default. When ``eu_reverse_charge`` is active, the
|
||||||
|
code is replaced by ``AE`` for reverse charge sales and by ``O`` for non-EU sales. When configuring custom rules, you
|
||||||
|
should actively set a ``"code"`` key on each rule. Only for ``"action": "reverse"`` we automatically apply the code
|
||||||
|
``AE``, in all other cases the default ``code`` of the tax rule is selected.
|
||||||
|
|
||||||
Endpoints
|
Endpoints
|
||||||
---------
|
---------
|
||||||
|
|
||||||
@@ -74,6 +116,7 @@ Endpoints
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"name": {"en": "VAT"},
|
"name": {"en": "VAT"},
|
||||||
"internal_name": "VAT",
|
"internal_name": "VAT",
|
||||||
|
"code": "S/standard",
|
||||||
"rate": "19.00",
|
"rate": "19.00",
|
||||||
"price_includes_tax": true,
|
"price_includes_tax": true,
|
||||||
"eu_reverse_charge": false,
|
"eu_reverse_charge": false,
|
||||||
@@ -115,6 +158,7 @@ Endpoints
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"name": {"en": "VAT"},
|
"name": {"en": "VAT"},
|
||||||
"internal_name": "VAT",
|
"internal_name": "VAT",
|
||||||
|
"code": "S/standard",
|
||||||
"rate": "19.00",
|
"rate": "19.00",
|
||||||
"price_includes_tax": true,
|
"price_includes_tax": true,
|
||||||
"eu_reverse_charge": false,
|
"eu_reverse_charge": false,
|
||||||
@@ -164,6 +208,7 @@ Endpoints
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"name": {"en": "VAT"},
|
"name": {"en": "VAT"},
|
||||||
"internal_name": "VAT",
|
"internal_name": "VAT",
|
||||||
|
"code": "S/standard",
|
||||||
"rate": "19.00",
|
"rate": "19.00",
|
||||||
"price_includes_tax": true,
|
"price_includes_tax": true,
|
||||||
"eu_reverse_charge": false,
|
"eu_reverse_charge": false,
|
||||||
@@ -212,6 +257,7 @@ Endpoints
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"name": {"en": "VAT"},
|
"name": {"en": "VAT"},
|
||||||
"internal_name": "VAT",
|
"internal_name": "VAT",
|
||||||
|
"code": "S/standard",
|
||||||
"rate": "20.00",
|
"rate": "20.00",
|
||||||
"price_includes_tax": true,
|
"price_includes_tax": true,
|
||||||
"eu_reverse_charge": false,
|
"eu_reverse_charge": false,
|
||||||
@@ -258,3 +304,4 @@ Endpoints
|
|||||||
:statuscode 403: The requested organizer/event/rule does not exist **or** you have no permission to change it **or** this tax rule cannot be deleted since it is currently in use.
|
:statuscode 403: The requested organizer/event/rule does not exist **or** you have no permission to change it **or** this tax rule cannot be deleted since it is currently in use.
|
||||||
|
|
||||||
.. _here: https://github.com/pretix/pretix/blob/master/src/pretix/static/schema/tax-rules-custom.schema.json
|
.. _here: https://github.com/pretix/pretix/blob/master/src/pretix/static/schema/tax-rules-custom.schema.json
|
||||||
|
.. _VATEX code list: https://ec.europa.eu/digital-building-blocks/sites/display/DIGITAL/Registry+of+supporting+artefacts+to+implement+EN16931#RegistryofsupportingartefactstoimplementEN16931-Codelists
|
||||||
@@ -121,6 +121,7 @@ This will automatically make pretix discover this plugin as soon as it is instal
|
|||||||
through ``pip``. During development, you can just run ``python setup.py develop`` inside
|
through ``pip``. During development, you can just run ``python setup.py develop`` inside
|
||||||
your plugin source directory to make it discoverable.
|
your plugin source directory to make it discoverable.
|
||||||
|
|
||||||
|
.. _`signals`:
|
||||||
Signals
|
Signals
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@@ -153,6 +154,25 @@ in the ``installed`` method:
|
|||||||
Note that ``installed`` will *not* be called if the plugin is indirectly activated for an event
|
Note that ``installed`` will *not* be called if the plugin is indirectly activated for an event
|
||||||
because the event is created with settings copied from another event.
|
because the event is created with settings copied from another event.
|
||||||
|
|
||||||
|
.. _`registries`:
|
||||||
|
Registries
|
||||||
|
----------
|
||||||
|
|
||||||
|
Many signals in pretix are used so that plugins can "register" a class, e.g. a payment provider or a
|
||||||
|
ticket renderer.
|
||||||
|
|
||||||
|
However, for some of them (types of :ref:`Log Entries <logging>`) we use a different method to keep track of them:
|
||||||
|
In a ``Registry``, classes are collected at application startup, along with a unique key (in case
|
||||||
|
of LogEntryType, the ``action_type``) as well as which plugin registered them.
|
||||||
|
|
||||||
|
To register a class, you can use one of several decorators provided by the Registry object:
|
||||||
|
|
||||||
|
.. autoclass:: pretix.base.logentrytypes.LogEntryTypeRegistry
|
||||||
|
:members: register, new, new_from_dict
|
||||||
|
|
||||||
|
All files in which classes are registered need to be imported in the ``AppConfig.ready`` as explained
|
||||||
|
in `Signals <signals>`_ above.
|
||||||
|
|
||||||
Views
|
Views
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ To actually log an action, you can just call the ``log_action`` method on your o
|
|||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
order.log_action('pretix.event.order.canceled', user=user, data={})
|
order.log_action('pretix.event.order.comment', user=user,
|
||||||
|
data={"new_comment": "Hello, world."})
|
||||||
|
|
||||||
The positional ``action`` argument should represent the type of action and should be globally unique, we
|
The positional ``action`` argument should represent the type of action and should be globally unique, we
|
||||||
recommend to prefix it with your package name, e.g. ``paypal.payment.rejected``. The ``user`` argument is
|
recommend to prefix it with your package name, e.g. ``paypal.payment.rejected``. The ``user`` argument is
|
||||||
@@ -72,24 +73,101 @@ following ready-to-include template::
|
|||||||
{% include "pretixcontrol/includes/logs.html" with obj=order %}
|
{% include "pretixcontrol/includes/logs.html" with obj=order %}
|
||||||
|
|
||||||
We now need a way to translate the action codes like ``pretix.event.changed`` into human-readable
|
We now need a way to translate the action codes like ``pretix.event.changed`` into human-readable
|
||||||
strings. The :py:attr:`pretix.base.signals.logentry_display` signals allows you to do so. A simple
|
strings. The :py:attr:`pretix.base.logentrytypes.log_entry_types` :ref:`registry <registries>` allows you to do so. A simple
|
||||||
implementation could look like:
|
implementation could look like:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from pretix.base.signals import logentry_display
|
from pretix.base.logentrytypes import log_entry_types
|
||||||
|
|
||||||
|
|
||||||
|
@log_entry_types.new_from_dict({
|
||||||
|
'pretix.event.order.comment': _('The order\'s internal comment has been updated to: {new_comment}'),
|
||||||
|
'pretix.event.order.paid': _('The order has been marked as paid.'),
|
||||||
|
# ...
|
||||||
|
})
|
||||||
|
class CoreOrderLogEntryType(OrderLogEntryType):
|
||||||
|
pass
|
||||||
|
|
||||||
|
Please note that you always need to define your own inherited ``LogEntryType`` class in your plugin. If you would just
|
||||||
|
register an instance of a ``LogEntryType`` class defined in pretix core, it cannot be automatically detected as belonging
|
||||||
|
to your plugin, leading to confusing user interface situations.
|
||||||
|
|
||||||
|
|
||||||
|
Customizing log entry display
|
||||||
|
"""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
The base ``LogEntryType`` classes allow for varying degree of customization in their descendants.
|
||||||
|
|
||||||
|
If you want to add another log message for an existing core object (e.g. an :class:`Order <pretix.base.models.Order>`,
|
||||||
|
:class:`Item <pretix.base.models.Item>`, or :class:`Voucher <pretix.base.models.Voucher>`), you can inherit
|
||||||
|
from its predefined :class:`LogEntryType <pretix.base.logentrytypes.LogEntryType>`, e.g.
|
||||||
|
:class:`OrderLogEntryType <pretix.base.logentrytypes.OrderLogEntryType>`, and just specify a new plaintext string.
|
||||||
|
You can use format strings to insert information from the LogEntry's `data` object as shown in the section above.
|
||||||
|
|
||||||
|
If you define a new model object in your plugin, you should make sure proper object links in the user interface are
|
||||||
|
displayed for it. If your model object belongs logically to a pretix :class:`Event <pretix.base.models.Event>`, you can inherit from :class:`EventLogEntryType <pretix.base.logentrytypes.EventLogEntryType>`,
|
||||||
|
and set the ``object_link_*`` fields accordingly. ``object_link_viewname`` refers to a django url name, which needs to
|
||||||
|
accept the arguments `organizer` and `event`, containing the respective slugs, and additional arguments provided by
|
||||||
|
``object_link_args``. The default implementation of ``object_link_args`` will return an argument named by
|
||||||
|
````object_link_argname``, with a value of ``content_object.pk`` (the primary key of the model object).
|
||||||
|
If you want to customize the name displayed for the object (instead of the result of calling ``str()`` on it),
|
||||||
|
overwrite ``object_link_display_name``.
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class ItemLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Product {val}')
|
||||||
|
|
||||||
|
# link will be generated as reverse('control:event.item', {'organizer': ..., 'event': ..., 'item': item.pk})
|
||||||
|
object_link_viewname = 'control:event.item'
|
||||||
|
object_link_argname = 'item'
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class OrderLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Order {val}')
|
||||||
|
|
||||||
|
# link will be generated as reverse('control:event.order', {'organizer': ..., 'event': ..., 'code': order.code})
|
||||||
|
object_link_viewname = 'control:event.order'
|
||||||
|
|
||||||
|
def object_link_args(self, order):
|
||||||
|
return {'code': order.code}
|
||||||
|
|
||||||
|
def object_link_display_name(self, order):
|
||||||
|
return order.code
|
||||||
|
|
||||||
|
To show more sophisticated message strings, e.g. varying the message depending on information from the :class:`LogEntry <pretix.base.models.log.LogEntry>`'s
|
||||||
|
`data` object, override the `display` method:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
@log_entry_types.new()
|
||||||
|
class PaypalEventLogEntryType(EventLogEntryType):
|
||||||
|
action_type = 'pretix.plugins.paypal.event'
|
||||||
|
|
||||||
|
def display(self, logentry):
|
||||||
|
event_type = logentry.parsed_data.get('event_type')
|
||||||
|
text = {
|
||||||
|
'PAYMENT.SALE.COMPLETED': _('Payment completed.'),
|
||||||
|
'PAYMENT.SALE.DENIED': _('Payment denied.'),
|
||||||
|
# ...
|
||||||
|
}.get(event_type, f"({event_type})")
|
||||||
|
return _('PayPal reported an event: {}').format(text)
|
||||||
|
|
||||||
|
.. automethod:: pretix.base.logentrytypes.LogEntryType.display
|
||||||
|
|
||||||
|
If your new model object does not belong to an :class:`Event <pretix.base.models.Event>`, you need to inherit directly from ``LogEntryType`` instead
|
||||||
|
of ``EventLogEntryType``, providing your own implementation of ``get_object_link_info`` if object links should be
|
||||||
|
displayed.
|
||||||
|
|
||||||
|
.. autoclass:: pretix.base.logentrytypes.LogEntryType
|
||||||
|
:members: get_object_link_info
|
||||||
|
|
||||||
|
|
||||||
@receiver(signal=logentry_display)
|
|
||||||
def pretixcontrol_logentry_display(sender, logentry, **kwargs):
|
|
||||||
plains = {
|
|
||||||
'pretix.event.order.paid': _('The order has been marked as paid.'),
|
|
||||||
'pretix.event.order.refunded': _('The order has been refunded.'),
|
|
||||||
'pretix.event.order.canceled': _('The order has been canceled.'),
|
|
||||||
...
|
|
||||||
}
|
|
||||||
if logentry.action_type in plains:
|
|
||||||
return plains[logentry.action_type]
|
|
||||||
|
|
||||||
Sending notifications
|
Sending notifications
|
||||||
---------------------
|
---------------------
|
||||||
|
|||||||
@@ -96,6 +96,18 @@ attribute::
|
|||||||
<pretix-widget event="https://pretix.eu/demo/democon/" disable-iframe></pretix-widget>
|
<pretix-widget event="https://pretix.eu/demo/democon/" disable-iframe></pretix-widget>
|
||||||
|
|
||||||
|
|
||||||
|
Always show event’s info
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
If you want the widget to show the event’s info such as title, location and frontpage text, you can pass the optional
|
||||||
|
``display-event-info`` attribute with either a value of ``"false"``, ``"true"`` or ``"auto"`` – the latter being the
|
||||||
|
default if the attribute is not present at all.
|
||||||
|
|
||||||
|
Note that any other value than ``"false"`` or ``"auto"`` means ``"true"``::
|
||||||
|
|
||||||
|
<pretix-widget event="https://pretix.eu/demo/democon/" display-event-info></pretix-widget>
|
||||||
|
|
||||||
|
|
||||||
Pre-selecting a voucher
|
Pre-selecting a voucher
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -32,7 +32,7 @@ dependencies = [
|
|||||||
"bleach==6.2.*",
|
"bleach==6.2.*",
|
||||||
"celery==5.4.*",
|
"celery==5.4.*",
|
||||||
"chardet==5.2.*",
|
"chardet==5.2.*",
|
||||||
"cryptography>=3.4.2",
|
"cryptography>=44.0.0",
|
||||||
"css-inline==0.14.*",
|
"css-inline==0.14.*",
|
||||||
"defusedcsv>=1.1.0",
|
"defusedcsv>=1.1.0",
|
||||||
"Django[argon2]==4.2.*,>=4.2.15",
|
"Django[argon2]==4.2.*,>=4.2.15",
|
||||||
@@ -44,7 +44,7 @@ dependencies = [
|
|||||||
"django-formtools==2.5.1",
|
"django-formtools==2.5.1",
|
||||||
"django-hierarkey==1.2.*",
|
"django-hierarkey==1.2.*",
|
||||||
"django-hijack==3.7.*",
|
"django-hijack==3.7.*",
|
||||||
"django-i18nfield==1.9.*,>=1.9.4",
|
"django-i18nfield==1.10.*",
|
||||||
"django-libsass==0.9",
|
"django-libsass==0.9",
|
||||||
"django-localflavor==4.0",
|
"django-localflavor==4.0",
|
||||||
"django-markup",
|
"django-markup",
|
||||||
@@ -72,9 +72,9 @@ dependencies = [
|
|||||||
"packaging",
|
"packaging",
|
||||||
"paypalrestsdk==1.13.*",
|
"paypalrestsdk==1.13.*",
|
||||||
"paypal-checkout-serversdk==1.0.*",
|
"paypal-checkout-serversdk==1.0.*",
|
||||||
"PyJWT==2.9.*",
|
"PyJWT==2.10.*",
|
||||||
"phonenumberslite==8.13.*",
|
"phonenumberslite==8.13.*",
|
||||||
"Pillow==11.0.*",
|
"Pillow==11.1.*",
|
||||||
"pretix-plugin-build",
|
"pretix-plugin-build",
|
||||||
"protobuf==5.29.*",
|
"protobuf==5.29.*",
|
||||||
"psycopg2-binary",
|
"psycopg2-binary",
|
||||||
@@ -91,7 +91,7 @@ dependencies = [
|
|||||||
"redis==5.2.*",
|
"redis==5.2.*",
|
||||||
"reportlab==4.2.*",
|
"reportlab==4.2.*",
|
||||||
"requests==2.31.*",
|
"requests==2.31.*",
|
||||||
"sentry-sdk==2.18.*",
|
"sentry-sdk==2.20.*",
|
||||||
"sepaxml==2.6.*",
|
"sepaxml==2.6.*",
|
||||||
"stripe==7.9.*",
|
"stripe==7.9.*",
|
||||||
"text-unidecode==1.*",
|
"text-unidecode==1.*",
|
||||||
@@ -100,7 +100,7 @@ dependencies = [
|
|||||||
"ua-parser==1.0.*",
|
"ua-parser==1.0.*",
|
||||||
"vat_moss_forked==2020.3.20.0.11.0",
|
"vat_moss_forked==2020.3.20.0.11.0",
|
||||||
"vobject==0.9.*",
|
"vobject==0.9.*",
|
||||||
"webauthn==2.3.*",
|
"webauthn==2.5.*",
|
||||||
"zeep==4.3.*"
|
"zeep==4.3.*"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,14 @@ FORMAT_MODULE_PATH = [
|
|||||||
'pretix.helpers.formats',
|
'pretix.helpers.formats',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
CORE_MODULES = {
|
||||||
|
"pretix.base",
|
||||||
|
"pretix.presale",
|
||||||
|
"pretix.control",
|
||||||
|
"pretix.plugins.checkinlists",
|
||||||
|
"pretix.plugins.reports",
|
||||||
|
}
|
||||||
|
|
||||||
ALL_LANGUAGES = [
|
ALL_LANGUAGES = [
|
||||||
('en', _('English')),
|
('en', _('English')),
|
||||||
('de', _('German')),
|
('de', _('German')),
|
||||||
@@ -94,6 +102,7 @@ ALL_LANGUAGES = [
|
|||||||
('el', _('Greek')),
|
('el', _('Greek')),
|
||||||
('id', _('Indonesian')),
|
('id', _('Indonesian')),
|
||||||
('it', _('Italian')),
|
('it', _('Italian')),
|
||||||
|
('ja', _('Japanese')),
|
||||||
('lv', _('Latvian')),
|
('lv', _('Latvian')),
|
||||||
('nb-no', _('Norwegian Bokmål')),
|
('nb-no', _('Norwegian Bokmål')),
|
||||||
('pl', _('Polish')),
|
('pl', _('Polish')),
|
||||||
@@ -154,6 +163,12 @@ EXTRA_LANG_INFO = {
|
|||||||
'name': 'Portuguese',
|
'name': 'Portuguese',
|
||||||
'name_local': 'Português',
|
'name_local': 'Português',
|
||||||
},
|
},
|
||||||
|
'nb-no': {
|
||||||
|
'bidi': False,
|
||||||
|
'code': 'nb-no',
|
||||||
|
'name': 'Norwegian Bokmal',
|
||||||
|
'name_local': 'norsk (bokmål)',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
django.conf.locale.LANG_INFO.update(EXTRA_LANG_INFO)
|
django.conf.locale.LANG_INFO.update(EXTRA_LANG_INFO)
|
||||||
@@ -287,7 +302,7 @@ PILLOW_FORMATS_QUESTIONS_IMAGE = ('PNG', 'GIF', 'JPEG', 'BMP', 'TIFF')
|
|||||||
FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT = (
|
FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT = (
|
||||||
".png", ".jpg", ".gif", ".jpeg", ".pdf", ".txt", ".docx", ".gif", ".svg",
|
".png", ".jpg", ".gif", ".jpeg", ".pdf", ".txt", ".docx", ".gif", ".svg",
|
||||||
".pptx", ".ppt", ".doc", ".xlsx", ".xls", ".jfif", ".heic", ".heif", ".pages",
|
".pptx", ".ppt", ".doc", ".xlsx", ".xls", ".jfif", ".heic", ".heif", ".pages",
|
||||||
".bmp", ".tif", ".tiff"
|
".bmp", ".tif", ".tiff", ".ics",
|
||||||
)
|
)
|
||||||
FILE_UPLOAD_EXTENSIONS_OTHER = FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT
|
FILE_UPLOAD_EXTENSIONS_OTHER = FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ class SalesChannelMigrationMixin:
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
if data["sales_channels"] == all_channels:
|
if set(data["sales_channels"]) == all_channels:
|
||||||
data["all_sales_channels"] = True
|
data["all_sales_channels"] = True
|
||||||
data["limit_sales_channels"] = []
|
data["limit_sales_channels"] = []
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.exceptions import PermissionDenied, ValidationError
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.utils.crypto import get_random_string
|
from django.utils.crypto import get_random_string
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
@@ -43,6 +43,7 @@ from django.utils.translation import gettext as _
|
|||||||
from django_countries.serializers import CountryFieldMixin
|
from django_countries.serializers import CountryFieldMixin
|
||||||
from pytz import common_timezones
|
from pytz import common_timezones
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
from rest_framework.exceptions import ValidationError
|
||||||
from rest_framework.fields import ChoiceField, Field
|
from rest_framework.fields import ChoiceField, Field
|
||||||
from rest_framework.relations import SlugRelatedField
|
from rest_framework.relations import SlugRelatedField
|
||||||
|
|
||||||
@@ -436,7 +437,8 @@ class CloneEventSerializer(EventSerializer):
|
|||||||
testmode = validated_data.pop('testmode', None)
|
testmode = validated_data.pop('testmode', None)
|
||||||
has_subevents = validated_data.pop('has_subevents', None)
|
has_subevents = validated_data.pop('has_subevents', None)
|
||||||
tz = validated_data.pop('timezone', None)
|
tz = validated_data.pop('timezone', None)
|
||||||
sales_channels = validated_data.pop('sales_channels', None)
|
all_sales_channels = validated_data.pop('all_sales_channels', None)
|
||||||
|
limit_sales_channels = validated_data.pop('limit_sales_channels', None)
|
||||||
date_admission = validated_data.pop('date_admission', None)
|
date_admission = validated_data.pop('date_admission', None)
|
||||||
new_event = super().create({**validated_data, 'plugins': None})
|
new_event = super().create({**validated_data, 'plugins': None})
|
||||||
|
|
||||||
@@ -449,8 +451,9 @@ class CloneEventSerializer(EventSerializer):
|
|||||||
new_event.is_public = is_public
|
new_event.is_public = is_public
|
||||||
if testmode is not None:
|
if testmode is not None:
|
||||||
new_event.testmode = testmode
|
new_event.testmode = testmode
|
||||||
if sales_channels is not None:
|
if all_sales_channels is not None or limit_sales_channels is not None:
|
||||||
new_event.sales_channels = sales_channels
|
new_event.all_sales_channels = all_sales_channels
|
||||||
|
new_event.limit_sales_channels.set(limit_sales_channels)
|
||||||
if has_subevents is not None:
|
if has_subevents is not None:
|
||||||
new_event.has_subevents = has_subevents
|
new_event.has_subevents = has_subevents
|
||||||
if has_subevents is not None:
|
if has_subevents is not None:
|
||||||
@@ -678,8 +681,8 @@ class TaxRuleSerializer(CountryFieldMixin, I18nAwareModelSerializer):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TaxRule
|
model = TaxRule
|
||||||
fields = ('id', 'name', 'rate', 'price_includes_tax', 'eu_reverse_charge', 'home_country', 'internal_name',
|
fields = ('id', 'name', 'rate', 'code', 'price_includes_tax', 'eu_reverse_charge', 'home_country',
|
||||||
'keep_gross_if_rate_changes', 'custom_rules')
|
'internal_name', 'keep_gross_if_rate_changes', 'custom_rules')
|
||||||
|
|
||||||
|
|
||||||
class EventSettingsSerializer(SettingsSerializer):
|
class EventSettingsSerializer(SettingsSerializer):
|
||||||
|
|||||||
@@ -19,57 +19,8 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||||
# <https://www.gnu.org/licenses/>.
|
# <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
from django.conf import settings
|
|
||||||
from django.core.validators import URLValidator
|
from django.core.validators import URLValidator
|
||||||
from i18nfield.fields import I18nCharField, I18nTextField
|
from i18nfield.rest_framework import I18nAwareModelSerializer, I18nField
|
||||||
from i18nfield.strings import LazyI18nString
|
|
||||||
from rest_framework.exceptions import ValidationError
|
|
||||||
from rest_framework.fields import Field
|
|
||||||
from rest_framework.serializers import ModelSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class I18nField(Field):
|
|
||||||
def __init__(self, **kwargs):
|
|
||||||
self.allow_blank = kwargs.pop('allow_blank', False)
|
|
||||||
self.trim_whitespace = kwargs.pop('trim_whitespace', True)
|
|
||||||
self.max_length = kwargs.pop('max_length', None)
|
|
||||||
self.min_length = kwargs.pop('min_length', None)
|
|
||||||
super().__init__(**kwargs)
|
|
||||||
|
|
||||||
def to_representation(self, value):
|
|
||||||
if hasattr(value, 'data'):
|
|
||||||
if isinstance(value.data, dict):
|
|
||||||
return value.data
|
|
||||||
elif value.data is None:
|
|
||||||
return None
|
|
||||||
else:
|
|
||||||
return {
|
|
||||||
settings.LANGUAGE_CODE: str(value.data)
|
|
||||||
}
|
|
||||||
elif value is None:
|
|
||||||
return None
|
|
||||||
else:
|
|
||||||
return {
|
|
||||||
settings.LANGUAGE_CODE: str(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
def to_internal_value(self, data):
|
|
||||||
if isinstance(data, str):
|
|
||||||
return LazyI18nString(data)
|
|
||||||
elif isinstance(data, dict):
|
|
||||||
if any([k not in dict(settings.LANGUAGES) for k in data.keys()]):
|
|
||||||
raise ValidationError('Invalid languages included.')
|
|
||||||
return LazyI18nString(data)
|
|
||||||
else:
|
|
||||||
raise ValidationError('Invalid data type.')
|
|
||||||
|
|
||||||
|
|
||||||
class I18nAwareModelSerializer(ModelSerializer):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
I18nAwareModelSerializer.serializer_field_mapping[I18nCharField] = I18nField
|
|
||||||
I18nAwareModelSerializer.serializer_field_mapping[I18nTextField] = I18nField
|
|
||||||
|
|
||||||
|
|
||||||
class I18nURLField(I18nField):
|
class I18nURLField(I18nField):
|
||||||
@@ -84,3 +35,10 @@ class I18nURLField(I18nField):
|
|||||||
else:
|
else:
|
||||||
URLValidator()(value.data)
|
URLValidator()(value.data)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
"I18nAwareModelSerializer", # for backwards compatibility
|
||||||
|
"I18nField", # for backwards compatibility
|
||||||
|
"I18nURLField",
|
||||||
|
]
|
||||||
|
|||||||
@@ -272,7 +272,7 @@ class ItemSerializer(SalesChannelMigrationMixin, I18nAwareModelSerializer):
|
|||||||
'require_voucher', 'hide_without_voucher', 'allow_cancel', 'require_bundling',
|
'require_voucher', 'hide_without_voucher', 'allow_cancel', 'require_bundling',
|
||||||
'min_per_order', 'max_per_order', 'checkin_attention', 'checkin_text', 'has_variations', 'variations',
|
'min_per_order', 'max_per_order', 'checkin_attention', 'checkin_text', 'has_variations', 'variations',
|
||||||
'addons', 'bundles', 'original_price', 'require_approval', 'generate_tickets',
|
'addons', 'bundles', 'original_price', 'require_approval', 'generate_tickets',
|
||||||
'show_quota_left', 'hidden_if_available', 'hidden_if_item_available', 'allow_waitinglist',
|
'show_quota_left', 'hidden_if_available', 'hidden_if_item_available', 'hidden_if_item_available_mode', 'allow_waitinglist',
|
||||||
'issue_giftcard', 'meta_data',
|
'issue_giftcard', 'meta_data',
|
||||||
'require_membership', 'require_membership_types', 'require_membership_hidden', 'grant_membership_type',
|
'require_membership', 'require_membership_types', 'require_membership_hidden', 'grant_membership_type',
|
||||||
'grant_membership_duration_like_event', 'grant_membership_duration_days',
|
'grant_membership_duration_like_event', 'grant_membership_duration_days',
|
||||||
|
|||||||
@@ -512,11 +512,12 @@ class OrderPositionSerializer(I18nAwareModelSerializer):
|
|||||||
'company', 'street', 'zipcode', 'city', 'country', 'state', 'discount',
|
'company', 'street', 'zipcode', 'city', 'country', 'state', 'discount',
|
||||||
'attendee_email', 'voucher', 'tax_rate', 'tax_value', 'secret', 'addon_to', 'subevent', 'checkins',
|
'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', 'pseudonymization_id', 'pdf_data', 'seat', 'canceled',
|
||||||
'valid_from', 'valid_until', 'blocked', 'voucher_budget_use')
|
'print_logs', 'downloads', 'answers', 'tax_rule', 'tax_code', 'pseudonymization_id', 'pdf_data', 'seat',
|
||||||
|
'canceled', 'valid_from', 'valid_until', 'blocked', 'voucher_budget_use')
|
||||||
read_only_fields = (
|
read_only_fields = (
|
||||||
'id', 'order', 'positionid', 'item', 'variation', 'price', 'voucher', 'tax_rate', 'tax_value', 'secret',
|
'id', 'order', 'positionid', 'item', 'variation', 'price', 'voucher', 'tax_rate', 'tax_value', 'secret',
|
||||||
'addon_to', 'subevent', 'checkins', 'downloads', 'answers', 'tax_rule', 'pseudonymization_id', 'pdf_data',
|
'addon_to', 'subevent', 'checkins', 'downloads', 'answers', 'tax_rule', 'tax_code', 'pseudonymization_id',
|
||||||
'seat', 'canceled', 'discount', 'valid_from', 'valid_until', 'blocked', 'voucher_budget_use'
|
'pdf_data', 'seat', 'canceled', 'discount', 'valid_from', 'valid_until', 'blocked', 'voucher_budget_use'
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@@ -642,7 +643,8 @@ class OrderPaymentDateField(serializers.DateField):
|
|||||||
class OrderFeeSerializer(I18nAwareModelSerializer):
|
class OrderFeeSerializer(I18nAwareModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = OrderFee
|
model = OrderFee
|
||||||
fields = ('id', 'fee_type', 'value', 'description', 'internal_type', 'tax_rate', 'tax_value', 'tax_rule', 'canceled')
|
fields = ('id', 'fee_type', 'value', 'description', 'internal_type', 'tax_rate', 'tax_value', 'tax_rule',
|
||||||
|
'tax_code', 'canceled')
|
||||||
|
|
||||||
|
|
||||||
class PaymentURLField(serializers.URLField):
|
class PaymentURLField(serializers.URLField):
|
||||||
@@ -1676,7 +1678,7 @@ class InlineInvoiceLineSerializer(I18nAwareModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = InvoiceLine
|
model = InvoiceLine
|
||||||
fields = ('position', 'description', 'item', 'variation', 'subevent', 'attendee_name', 'event_date_from',
|
fields = ('position', 'description', 'item', 'variation', 'subevent', 'attendee_name', 'event_date_from',
|
||||||
'event_date_to', 'gross_value', 'tax_value', 'tax_rate', 'tax_name', 'fee_type',
|
'event_date_to', 'gross_value', 'tax_value', 'tax_rate', 'tax_code', 'tax_name', 'fee_type',
|
||||||
'fee_internal_type', 'event_location')
|
'fee_internal_type', 'event_location')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -619,7 +619,7 @@ class QuotaViewSet(ConditionalListView, viewsets.ModelViewSet):
|
|||||||
def availability(self, request, *args, **kwargs):
|
def availability(self, request, *args, **kwargs):
|
||||||
quota = self.get_object()
|
quota = self.get_object()
|
||||||
|
|
||||||
qa = QuotaAvailability()
|
qa = QuotaAvailability(full_results=True)
|
||||||
qa.queue(quota)
|
qa.queue(quota)
|
||||||
qa.compute()
|
qa.compute()
|
||||||
avail = qa.results[quota]
|
avail = qa.results[quota]
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ from django.db.models import (
|
|||||||
from django.db.models.functions import Coalesce, Concat
|
from django.db.models.functions import Coalesce, Concat
|
||||||
from django.http import FileResponse, HttpResponse
|
from django.http import FileResponse, HttpResponse
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
|
from django.utils import formats
|
||||||
from django.utils.timezone import make_aware, now
|
from django.utils.timezone import make_aware, now
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django_filters.rest_framework import DjangoFilterBackend, FilterSet
|
from django_filters.rest_framework import DjangoFilterBackend, FilterSet
|
||||||
@@ -67,6 +68,7 @@ from pretix.api.serializers.orderchange import (
|
|||||||
OrderPositionInfoPatchSerializer,
|
OrderPositionInfoPatchSerializer,
|
||||||
)
|
)
|
||||||
from pretix.api.views import RichOrderingFilter
|
from pretix.api.views import RichOrderingFilter
|
||||||
|
from pretix.base.decimal import round_decimal
|
||||||
from pretix.base.i18n import language
|
from pretix.base.i18n import language
|
||||||
from pretix.base.models import (
|
from pretix.base.models import (
|
||||||
CachedCombinedTicket, CachedTicket, Checkin, Device, EventMetaValue,
|
CachedCombinedTicket, CachedTicket, Checkin, Device, EventMetaValue,
|
||||||
@@ -97,7 +99,6 @@ from pretix.base.services.tickets import generate
|
|||||||
from pretix.base.signals import (
|
from pretix.base.signals import (
|
||||||
order_modified, order_paid, order_placed, register_ticket_outputs,
|
order_modified, order_paid, order_placed, register_ticket_outputs,
|
||||||
)
|
)
|
||||||
from pretix.base.templatetags.money import money_filter
|
|
||||||
from pretix.control.signals import order_search_filter_q
|
from pretix.control.signals import order_search_filter_q
|
||||||
from pretix.helpers import OF_SELF
|
from pretix.helpers import OF_SELF
|
||||||
|
|
||||||
@@ -601,7 +602,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
|
|||||||
order.status in (Order.STATUS_PAID, Order.STATUS_PENDING)
|
order.status in (Order.STATUS_PAID, Order.STATUS_PENDING)
|
||||||
and order.invoices.filter(is_cancellation=True).count() >= order.invoices.filter(is_cancellation=False).count()
|
and order.invoices.filter(is_cancellation=True).count() >= order.invoices.filter(is_cancellation=False).count()
|
||||||
)
|
)
|
||||||
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'True') or not invoice_qualified(order):
|
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'user_paid', 'True') or not invoice_qualified(order):
|
||||||
return Response(
|
return Response(
|
||||||
{'detail': _('You cannot generate an invoice for this order.')},
|
{'detail': _('You cannot generate an invoice for this order.')},
|
||||||
status=status.HTTP_400_BAD_REQUEST
|
status=status.HTTP_400_BAD_REQUEST
|
||||||
@@ -646,6 +647,8 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
|
|||||||
order = self.get_object()
|
order = self.get_object()
|
||||||
order.secret = generate_secret()
|
order.secret = generate_secret()
|
||||||
for op in order.all_positions.all():
|
for op in order.all_positions.all():
|
||||||
|
op.web_secret = generate_secret()
|
||||||
|
op.save(update_fields=["web_secret"])
|
||||||
assign_ticket_secret(
|
assign_ticket_secret(
|
||||||
request.event, op, force_invalidate=True, save=True
|
request.event, op, force_invalidate=True, save=True
|
||||||
)
|
)
|
||||||
@@ -1228,9 +1231,10 @@ class OrderPositionViewSet(viewsets.ModelViewSet):
|
|||||||
price = get_price(**kwargs)
|
price = get_price(**kwargs)
|
||||||
tr = kwargs.get('tax_rule', kwargs.get('item').tax_rule)
|
tr = kwargs.get('tax_rule', kwargs.get('item').tax_rule)
|
||||||
with language(data.get('locale') or self.request.event.settings.locale, self.request.event.settings.region):
|
with language(data.get('locale') or self.request.event.settings.locale, self.request.event.settings.region):
|
||||||
|
gross_formatted = formats.localize_input(round_decimal(price.gross, self.request.event.currency))
|
||||||
return Response({
|
return Response({
|
||||||
'gross': price.gross,
|
'gross': price.gross,
|
||||||
'gross_formatted': money_filter(price.gross, self.request.event.currency, hide_currency=True),
|
'gross_formatted': gross_formatted,
|
||||||
'net': price.net,
|
'net': price.net,
|
||||||
'rate': price.rate,
|
'rate': price.rate,
|
||||||
'name': str(price.name),
|
'name': str(price.name),
|
||||||
|
|||||||
@@ -222,3 +222,15 @@ class HistoryPasswordValidator:
|
|||||||
user.historic_passwords.filter(
|
user.historic_passwords.filter(
|
||||||
pk__in=user.historic_passwords.order_by("-created")[self.history_length:].values_list("pk", flat=True),
|
pk__in=user.historic_passwords.order_by("-created")[self.history_length:].values_list("pk", flat=True),
|
||||||
).delete()
|
).delete()
|
||||||
|
|
||||||
|
|
||||||
|
def has_event_access_permission(request, permission='can_change_event_settings'):
|
||||||
|
return (
|
||||||
|
request.user.is_authenticated and
|
||||||
|
request.user.has_event_permission(request.organizer, request.event, permission, request=request)
|
||||||
|
) or (
|
||||||
|
getattr(request, 'event_access_user', None) and
|
||||||
|
request.event_access_user.is_authenticated and
|
||||||
|
request.event_access_user.has_event_permission(request.organizer, request.event, permission,
|
||||||
|
session_key=request.event_access_parent_session_key)
|
||||||
|
)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import hashlib
|
|||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from urllib.parse import urlencode, urljoin
|
from urllib.parse import parse_qsl, urlencode, urljoin
|
||||||
|
|
||||||
import jwt
|
import jwt
|
||||||
import requests
|
import requests
|
||||||
@@ -139,6 +139,11 @@ def oidc_validate_and_complete_config(config):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if "query_parameters" in config and config["query_parameters"]:
|
||||||
|
config["query_parameters"] = urlencode(
|
||||||
|
parse_qsl(config["query_parameters"])
|
||||||
|
)
|
||||||
|
|
||||||
config['provider_config'] = provider_config
|
config['provider_config'] = provider_config
|
||||||
return config
|
return config
|
||||||
|
|
||||||
@@ -154,6 +159,10 @@ def oidc_authorize_url(provider, state, redirect_uri):
|
|||||||
'state': state,
|
'state': state,
|
||||||
'redirect_uri': redirect_uri,
|
'redirect_uri': redirect_uri,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if "query_parameters" in provider.configuration and provider.configuration["query_parameters"]:
|
||||||
|
params.update(parse_qsl(provider.configuration["query_parameters"]))
|
||||||
|
|
||||||
return endpoint + '?' + urlencode(params)
|
return endpoint + '?' + urlencode(params)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ class MarkdownTextarea(forms.Textarea):
|
|||||||
|
|
||||||
|
|
||||||
class I18nMarkdownTextarea(i18nfield.forms.I18nTextarea):
|
class I18nMarkdownTextarea(i18nfield.forms.I18nTextarea):
|
||||||
def format_output(self, rendered_widgets) -> str:
|
def format_output(self, rendered_widgets, id_) -> str:
|
||||||
rendered_widgets = rendered_widgets + [
|
rendered_widgets = rendered_widgets + [
|
||||||
'<div class="i18n-field-markdown-note">%s</div>' % (
|
'<div class="i18n-field-markdown-note">%s</div>' % (
|
||||||
_("You can use {markup_name} in this field.").format(
|
_("You can use {markup_name} in this field.").format(
|
||||||
@@ -108,11 +108,11 @@ class I18nMarkdownTextarea(i18nfield.forms.I18nTextarea):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
return super().format_output(rendered_widgets)
|
return super().format_output(rendered_widgets, id_)
|
||||||
|
|
||||||
|
|
||||||
class I18nMarkdownTextInput(i18nfield.forms.I18nTextInput):
|
class I18nMarkdownTextInput(i18nfield.forms.I18nTextInput):
|
||||||
def format_output(self, rendered_widgets) -> str:
|
def format_output(self, rendered_widgets, id_) -> str:
|
||||||
rendered_widgets = rendered_widgets + [
|
rendered_widgets = rendered_widgets + [
|
||||||
'<div class="i18n-field-markdown-note">%s</div>' % (
|
'<div class="i18n-field-markdown-note">%s</div>' % (
|
||||||
_("You can use {markup_name} in this field.").format(
|
_("You can use {markup_name} in this field.").format(
|
||||||
@@ -120,7 +120,7 @@ class I18nMarkdownTextInput(i18nfield.forms.I18nTextInput):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
return super().format_output(rendered_widgets)
|
return super().format_output(rendered_widgets, id_)
|
||||||
|
|
||||||
|
|
||||||
SECRET_REDACTED = '*****'
|
SECRET_REDACTED = '*****'
|
||||||
|
|||||||
@@ -277,6 +277,10 @@ class NamePartsFormField(forms.MultiValueField):
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
def name_parts_is_empty(name_parts_dict):
|
||||||
|
return not any(k != "_scheme" and v for k, v in name_parts_dict.items())
|
||||||
|
|
||||||
|
|
||||||
class WrappedPhonePrefixSelect(Select):
|
class WrappedPhonePrefixSelect(Select):
|
||||||
initial = None
|
initial = None
|
||||||
|
|
||||||
@@ -1021,16 +1025,27 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
'autocomplete': 'address-level2',
|
'autocomplete': 'address-level2',
|
||||||
}),
|
}),
|
||||||
'company': forms.TextInput(attrs={
|
'company': forms.TextInput(attrs={
|
||||||
'data-display-dependency': '#id_is_business_1',
|
|
||||||
'autocomplete': 'organization',
|
'autocomplete': 'organization',
|
||||||
}),
|
}),
|
||||||
'vat_id': forms.TextInput(attrs={'data-display-dependency': '#id_is_business_1'}),
|
'vat_id': forms.TextInput(),
|
||||||
'internal_reference': forms.TextInput,
|
'internal_reference': forms.TextInput,
|
||||||
}
|
}
|
||||||
labels = {
|
labels = {
|
||||||
'is_business': ''
|
'is_business': ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def ask_vat_id(self):
|
||||||
|
return self.event.settings.invoice_address_vatid
|
||||||
|
|
||||||
|
@property
|
||||||
|
def address_required(self):
|
||||||
|
return self.event.settings.invoice_address_required
|
||||||
|
|
||||||
|
@property
|
||||||
|
def company_required(self):
|
||||||
|
return self.event.settings.invoice_address_company_required
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.event = event = kwargs.pop('event')
|
self.event = event = kwargs.pop('event')
|
||||||
self.request = kwargs.pop('request', None)
|
self.request = kwargs.pop('request', None)
|
||||||
@@ -1042,7 +1057,11 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
kwargs['initial']['country'] = guess_country_from_request(self.request, self.event)
|
kwargs['initial']['country'] = guess_country_from_request(self.request, self.event)
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
if not event.settings.invoice_address_vatid:
|
|
||||||
|
self.fields["company"].widget.attrs["data-display-dependency"] = f'input[name="{self.add_prefix("is_business")}"][value="business"]'
|
||||||
|
self.fields["vat_id"].widget.attrs["data-display-dependency"] = f'input[name="{self.add_prefix("is_business")}"][value="business"]'
|
||||||
|
|
||||||
|
if not self.ask_vat_id:
|
||||||
del self.fields['vat_id']
|
del self.fields['vat_id']
|
||||||
elif self.validate_vat_id:
|
elif self.validate_vat_id:
|
||||||
self.fields['vat_id'].help_text = '<br/>'.join([
|
self.fields['vat_id'].help_text = '<br/>'.join([
|
||||||
@@ -1096,13 +1115,13 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
self.data = self.data.copy()
|
self.data = self.data.copy()
|
||||||
del self.data[fprefix + 'vat_id']
|
del self.data[fprefix + 'vat_id']
|
||||||
|
|
||||||
if not event.settings.invoice_address_required or self.all_optional:
|
if not self.address_required or self.all_optional:
|
||||||
for k, f in self.fields.items():
|
for k, f in self.fields.items():
|
||||||
f.required = False
|
f.required = False
|
||||||
f.widget.is_required = False
|
f.widget.is_required = False
|
||||||
if 'required' in f.widget.attrs:
|
if 'required' in f.widget.attrs:
|
||||||
del f.widget.attrs['required']
|
del f.widget.attrs['required']
|
||||||
elif event.settings.invoice_address_company_required and not self.all_optional:
|
elif self.company_required and not self.all_optional:
|
||||||
self.initial['is_business'] = True
|
self.initial['is_business'] = True
|
||||||
|
|
||||||
self.fields['is_business'].widget = BusinessBooleanRadio(require_business=True)
|
self.fields['is_business'].widget = BusinessBooleanRadio(require_business=True)
|
||||||
@@ -1119,11 +1138,11 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
label=_('Name'),
|
label=_('Name'),
|
||||||
initial=self.instance.name_parts,
|
initial=self.instance.name_parts,
|
||||||
)
|
)
|
||||||
if event.settings.invoice_address_required and not event.settings.invoice_address_company_required and not self.all_optional:
|
if self.address_required and not self.company_required and not self.all_optional:
|
||||||
if not event.settings.invoice_name_required:
|
if not event.settings.invoice_name_required:
|
||||||
self.fields['name_parts'].widget.attrs['data-required-if'] = '#id_is_business_0'
|
self.fields['name_parts'].widget.attrs['data-required-if'] = f'input[name="{self.add_prefix("is_business")}"][value="individual"]'
|
||||||
self.fields['name_parts'].widget.attrs['data-no-required-attr'] = '1'
|
self.fields['name_parts'].widget.attrs['data-no-required-attr'] = '1'
|
||||||
self.fields['company'].widget.attrs['data-required-if'] = '#id_is_business_1'
|
self.fields['company'].widget.attrs['data-required-if'] = f'input[name="{self.add_prefix("is_business")}"][value="business"]'
|
||||||
|
|
||||||
if not event.settings.invoice_address_beneficiary:
|
if not event.settings.invoice_address_beneficiary:
|
||||||
del self.fields['beneficiary']
|
del self.fields['beneficiary']
|
||||||
@@ -1149,12 +1168,12 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
data['vat_id'] = ''
|
data['vat_id'] = ''
|
||||||
if data.get('is_business') and not ask_for_vat_id(data.get('country')):
|
if data.get('is_business') and not ask_for_vat_id(data.get('country')):
|
||||||
data['vat_id'] = ''
|
data['vat_id'] = ''
|
||||||
if self.event.settings.invoice_address_required:
|
if self.address_validation and self.address_required and not self.all_optional:
|
||||||
if data.get('is_business') and not data.get('company'):
|
if data.get('is_business') and not data.get('company'):
|
||||||
raise ValidationError({"company": _('You need to provide a company name.')})
|
raise ValidationError({"company": _('You need to provide a company name.')})
|
||||||
if not data.get('is_business') and not data.get('name_parts'):
|
if not data.get('is_business') and name_parts_is_empty(data.get('name_parts', {})):
|
||||||
raise ValidationError(_('You need to provide your name.'))
|
raise ValidationError(_('You need to provide your name.'))
|
||||||
if not self.all_optional and 'street' in self.fields and not data.get('street') and not data.get('zipcode') and not data.get('city'):
|
if not data.get('street') and not data.get('zipcode') and not data.get('city'):
|
||||||
raise ValidationError({"street": _('This field is required.')})
|
raise ValidationError({"street": _('This field is required.')})
|
||||||
|
|
||||||
if 'vat_id' in self.changed_data or not data.get('vat_id'):
|
if 'vat_id' in self.changed_data or not data.get('vat_id'):
|
||||||
@@ -1167,7 +1186,7 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
|
|
||||||
if all(
|
if all(
|
||||||
not v for k, v in data.items() if k not in ('is_business', 'country', 'name_parts')
|
not v for k, v in data.items() if k not in ('is_business', 'country', 'name_parts')
|
||||||
) and len(data.get('name_parts', {})) == 1:
|
) and name_parts_is_empty(data.get('name_parts', {})):
|
||||||
# Do not save the country if it is the only field set -- we don't know the user even checked it!
|
# Do not save the country if it is the only field set -- we don't know the user even checked it!
|
||||||
self.cleaned_data['country'] = ''
|
self.cleaned_data['country'] = ''
|
||||||
|
|
||||||
|
|||||||
@@ -388,6 +388,15 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
|||||||
except:
|
except:
|
||||||
logger.exception("Can not resize image")
|
logger.exception("Can not resize image")
|
||||||
pass
|
pass
|
||||||
|
try:
|
||||||
|
# Valid ZUGFeRD invoices must be compliant with PDF/A-3. pretix-zugferd ensures this by passing them
|
||||||
|
# through ghost script. Unfortunately, if the logo contains transparency, this will still fail.
|
||||||
|
# I was unable to figure out a way to fix this in GhostScript, so the easy fix is to remove the
|
||||||
|
# transparency, as our invoices always have a white background anyways.
|
||||||
|
ir.remove_transparency()
|
||||||
|
except:
|
||||||
|
logger.exception("Can not remove transparency from logo")
|
||||||
|
pass
|
||||||
canvas.drawImage(ir,
|
canvas.drawImage(ir,
|
||||||
self.logo_left,
|
self.logo_left,
|
||||||
self.pagesize[1] - self.logo_height - self.logo_top,
|
self.pagesize[1] - self.logo_height - self.logo_top,
|
||||||
@@ -775,7 +784,7 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
|||||||
|
|
||||||
for idx, gross in grossvalue_map.items():
|
for idx, gross in grossvalue_map.items():
|
||||||
rate, name = idx
|
rate, name = idx
|
||||||
if rate == 0:
|
if rate == 0 and gross == 0:
|
||||||
continue
|
continue
|
||||||
tax = taxvalue_map[idx]
|
tax = taxvalue_map[idx]
|
||||||
tdata.append([
|
tdata.append([
|
||||||
@@ -792,7 +801,7 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
return localize(val) + ' ' + self.invoice.foreign_currency_display
|
return localize(val) + ' ' + self.invoice.foreign_currency_display
|
||||||
|
|
||||||
if len(tdata) > 1 and has_taxes:
|
if any(rate != 0 and gross != 0 for (rate, name), gross in grossvalue_map.items()) and has_taxes:
|
||||||
colwidths = [a * doc.width for a in (.25, .15, .15, .15, .3)]
|
colwidths = [a * doc.width for a in (.25, .15, .15, .15, .3)]
|
||||||
table = Table(tdata, colWidths=colwidths, repeatRows=2, hAlign=TA_LEFT)
|
table = Table(tdata, colWidths=colwidths, repeatRows=2, hAlign=TA_LEFT)
|
||||||
table.setStyle(TableStyle(tstyledata))
|
table.setStyle(TableStyle(tstyledata))
|
||||||
|
|||||||
@@ -0,0 +1,165 @@
|
|||||||
|
#
|
||||||
|
# This file is part of pretix (Community Edition).
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||||
|
# Copyright (C) 2020-2021 rami.io GmbH and contributors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
||||||
|
# Public License as published by the Free Software Foundation in version 3 of the License.
|
||||||
|
#
|
||||||
|
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||||
|
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||||
|
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||||
|
# this file, see <https://pretix.eu/about/en/license>.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||||
|
# <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
from collections import defaultdict
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from django.urls import reverse
|
||||||
|
from django.utils.html import format_html
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from pretix.base.signals import EventPluginRegistry
|
||||||
|
|
||||||
|
|
||||||
|
def make_link(a_map, wrapper, is_active=True, event=None, plugin_name=None):
|
||||||
|
if a_map:
|
||||||
|
if 'href' not in a_map:
|
||||||
|
a_map['val'] = format_html('<i>{val}</i>', **a_map)
|
||||||
|
elif is_active:
|
||||||
|
a_map['val'] = format_html('<a href="{href}">{val}</a>', **a_map)
|
||||||
|
elif event and plugin_name:
|
||||||
|
a_map['val'] = format_html(
|
||||||
|
'<i>{val}</i> <a href="{plugin_href}">'
|
||||||
|
'<span data-toggle="tooltip" title="{errmes}" class="fa fa-warning fa-fw"></span></a>',
|
||||||
|
**a_map,
|
||||||
|
errmes=_("The relevant plugin is currently not active. To activate it, click here to go to the plugin settings."),
|
||||||
|
plugin_href=reverse('control:event.settings.plugins', kwargs={
|
||||||
|
'organizer': event.organizer.slug,
|
||||||
|
'event': event.slug,
|
||||||
|
}) + '#plugin_' + plugin_name,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
a_map['val'] = format_html(
|
||||||
|
'<i>{val}</i> <span data-toggle="tooltip" title="{errmes}" class="fa fa-warning fa-fw"></span>',
|
||||||
|
**a_map,
|
||||||
|
errmes=_("The relevant plugin is currently not active."),
|
||||||
|
)
|
||||||
|
return format_html(wrapper, **a_map)
|
||||||
|
|
||||||
|
|
||||||
|
class LogEntryTypeRegistry(EventPluginRegistry):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__({'action_type': lambda o: getattr(o, 'action_type')})
|
||||||
|
|
||||||
|
def register(self, *objs):
|
||||||
|
for obj in objs:
|
||||||
|
if not isinstance(obj, LogEntryType):
|
||||||
|
raise TypeError('Entries must be derived from LogEntryType')
|
||||||
|
|
||||||
|
if obj.__module__.startswith('pretix.base.'):
|
||||||
|
raise TypeError('Must not register base classes, only derived ones')
|
||||||
|
|
||||||
|
return super().register(*objs)
|
||||||
|
|
||||||
|
def new_from_dict(self, data):
|
||||||
|
"""
|
||||||
|
Register multiple instance of a `LogEntryType` class with different `action_type`
|
||||||
|
and plain text strings, as given by the items of the specified data dictionary.
|
||||||
|
|
||||||
|
This method is designed to be used as a decorator as follows:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
@log_entry_types.new_from_dict({
|
||||||
|
'pretix.event.item.added': _('The product has been created.'),
|
||||||
|
'pretix.event.item.changed': _('The product has been changed.'),
|
||||||
|
# ...
|
||||||
|
})
|
||||||
|
class CoreItemLogEntryType(ItemLogEntryType):
|
||||||
|
# ...
|
||||||
|
|
||||||
|
:param data: action types and descriptions
|
||||||
|
``{"some_action_type": "Plain text description", ...}``
|
||||||
|
"""
|
||||||
|
def reg(clz):
|
||||||
|
for action_type, plain in data.items():
|
||||||
|
self.register(clz(action_type=action_type, plain=plain))
|
||||||
|
return clz
|
||||||
|
return reg
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Registry for LogEntry types.
|
||||||
|
|
||||||
|
Each entry in this registry should be an instance of a subclass of ``LogEntryType``.
|
||||||
|
They are annotated with their ``action_type`` and the defining ``plugin``.
|
||||||
|
"""
|
||||||
|
log_entry_types = LogEntryTypeRegistry()
|
||||||
|
|
||||||
|
|
||||||
|
class LogEntryType:
|
||||||
|
"""
|
||||||
|
Base class for a type of LogEntry, identified by its action_type.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, action_type=None, plain=None):
|
||||||
|
if action_type:
|
||||||
|
self.action_type = action_type
|
||||||
|
if plain:
|
||||||
|
self.plain = plain
|
||||||
|
|
||||||
|
def display(self, logentry, data):
|
||||||
|
"""
|
||||||
|
Returns the message to be displayed for a given logentry of this type.
|
||||||
|
|
||||||
|
:return: `str` or `LazyI18nString`
|
||||||
|
"""
|
||||||
|
if hasattr(self, 'plain'):
|
||||||
|
plain = str(self.plain)
|
||||||
|
if '{' in plain:
|
||||||
|
data = defaultdict(lambda: '?', data)
|
||||||
|
return plain.format_map(data)
|
||||||
|
else:
|
||||||
|
return plain
|
||||||
|
|
||||||
|
def get_object_link_info(self, logentry) -> Optional[dict]:
|
||||||
|
"""
|
||||||
|
Return information to generate a link to the `content_object` of a given log entry.
|
||||||
|
|
||||||
|
Not implemented in the base class, causing the object link to be omitted.
|
||||||
|
|
||||||
|
:return: Dictionary with the keys ``href`` (URL to view/edit the object) and
|
||||||
|
``val`` (text for the anchor element)
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_object_link(self, logentry):
|
||||||
|
a_map = self.get_object_link_info(logentry)
|
||||||
|
return make_link(a_map, self.object_link_wrapper)
|
||||||
|
|
||||||
|
object_link_wrapper = '{val}'
|
||||||
|
|
||||||
|
def shred_pii(self, logentry):
|
||||||
|
"""
|
||||||
|
To be used for shredding personally identified information contained in the data field of a LogEntry of this
|
||||||
|
type.
|
||||||
|
"""
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
|
class NoOpShredderMixin:
|
||||||
|
def shred_pii(self, logentry):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ClearDataShredderMixin:
|
||||||
|
def shred_pii(self, logentry):
|
||||||
|
logentry.data = None
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
#
|
||||||
|
# This file is part of pretix (Community Edition).
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||||
|
# Copyright (C) 2020-2021 rami.io GmbH and contributors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
||||||
|
# Public License as published by the Free Software Foundation in version 3 of the License.
|
||||||
|
#
|
||||||
|
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||||
|
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||||
|
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||||
|
# this file, see <https://pretix.eu/about/en/license>.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||||
|
# <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from django.urls import reverse
|
||||||
|
from django.utils.translation import gettext_lazy as _, pgettext_lazy
|
||||||
|
|
||||||
|
from pretix.base.models import (
|
||||||
|
Discount, Item, ItemCategory, Order, Question, Quota, SubEvent, TaxRule,
|
||||||
|
Voucher,
|
||||||
|
)
|
||||||
|
|
||||||
|
from .logentrytype_registry import ( # noqa
|
||||||
|
ClearDataShredderMixin, LogEntryType, NoOpShredderMixin, log_entry_types,
|
||||||
|
make_link, LogEntryTypeRegistry,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class EventLogEntryType(LogEntryType):
|
||||||
|
"""
|
||||||
|
Base class for any `LogEntry` type whose `content_object` is either an `Event` itself or belongs to a specific `Event`.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def get_object_link_info(self, logentry) -> Optional[dict]:
|
||||||
|
if hasattr(self, 'object_link_viewname'):
|
||||||
|
content = logentry.content_object
|
||||||
|
if not content:
|
||||||
|
if logentry.content_type_id:
|
||||||
|
return {
|
||||||
|
'val': _('(deleted)'),
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
|
if hasattr(self, 'content_type') and not isinstance(content, self.content_type):
|
||||||
|
return
|
||||||
|
|
||||||
|
return {
|
||||||
|
'href': reverse(self.object_link_viewname, kwargs={
|
||||||
|
'event': logentry.event.slug,
|
||||||
|
'organizer': logentry.event.organizer.slug,
|
||||||
|
**self.object_link_args(content),
|
||||||
|
}),
|
||||||
|
'val': self.object_link_display_name(logentry.content_object),
|
||||||
|
}
|
||||||
|
|
||||||
|
def object_link_args(self, content_object):
|
||||||
|
"""Return the kwargs for the url used in a link to content_object."""
|
||||||
|
if hasattr(self, 'object_link_argname'):
|
||||||
|
return {self.object_link_argname: content_object.pk}
|
||||||
|
return {}
|
||||||
|
|
||||||
|
def object_link_display_name(self, content_object):
|
||||||
|
"""Return the display name to refer to content_object in the user interface."""
|
||||||
|
return str(content_object)
|
||||||
|
|
||||||
|
|
||||||
|
class OrderLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Order {val}')
|
||||||
|
object_link_viewname = 'control:event.order'
|
||||||
|
content_type = Order
|
||||||
|
|
||||||
|
def object_link_args(self, order):
|
||||||
|
return {'code': order.code}
|
||||||
|
|
||||||
|
def object_link_display_name(self, order):
|
||||||
|
return order.code
|
||||||
|
|
||||||
|
|
||||||
|
class VoucherLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Voucher {val}…')
|
||||||
|
object_link_viewname = 'control:event.voucher'
|
||||||
|
object_link_argname = 'voucher'
|
||||||
|
content_type = Voucher
|
||||||
|
|
||||||
|
def object_link_display_name(self, voucher):
|
||||||
|
if len(voucher.code) > 6:
|
||||||
|
return voucher.code[:6] + "…"
|
||||||
|
return voucher.code
|
||||||
|
|
||||||
|
|
||||||
|
class ItemLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Product {val}')
|
||||||
|
object_link_viewname = 'control:event.item'
|
||||||
|
object_link_argname = 'item'
|
||||||
|
content_type = Item
|
||||||
|
|
||||||
|
|
||||||
|
class SubEventLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = pgettext_lazy('subevent', 'Date {val}')
|
||||||
|
object_link_viewname = 'control:event.subevent'
|
||||||
|
object_link_argname = 'subevent'
|
||||||
|
content_type = SubEvent
|
||||||
|
|
||||||
|
|
||||||
|
class QuotaLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Quota {val}')
|
||||||
|
object_link_viewname = 'control:event.items.quotas.show'
|
||||||
|
object_link_argname = 'quota'
|
||||||
|
content_type = Quota
|
||||||
|
|
||||||
|
|
||||||
|
class DiscountLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Discount {val}')
|
||||||
|
object_link_viewname = 'control:event.items.discounts.edit'
|
||||||
|
object_link_argname = 'discount'
|
||||||
|
content_type = Discount
|
||||||
|
|
||||||
|
|
||||||
|
class ItemCategoryLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Category {val}')
|
||||||
|
object_link_viewname = 'control:event.items.categories.edit'
|
||||||
|
object_link_argname = 'category'
|
||||||
|
content_type = ItemCategory
|
||||||
|
|
||||||
|
|
||||||
|
class QuestionLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Question {val}')
|
||||||
|
object_link_viewname = 'control:event.items.questions.show'
|
||||||
|
object_link_argname = 'question'
|
||||||
|
content_type = Question
|
||||||
|
|
||||||
|
|
||||||
|
class TaxRuleLogEntryType(EventLogEntryType):
|
||||||
|
object_link_wrapper = _('Tax rule {val}')
|
||||||
|
object_link_viewname = 'control:event.settings.tax.edit'
|
||||||
|
object_link_argname = 'rule'
|
||||||
|
content_type = TaxRule
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# Generated by Django 4.2.8 on 2024-07-02 10:34
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
(
|
||||||
|
"pretixbase",
|
||||||
|
"0273_remove_checkinlist_auto_checkin_sales_channels",
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="invoiceline",
|
||||||
|
name="tax_code",
|
||||||
|
field=models.CharField(max_length=190, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="orderfee",
|
||||||
|
name="tax_code",
|
||||||
|
field=models.CharField(max_length=190, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="orderposition",
|
||||||
|
name="tax_code",
|
||||||
|
field=models.CharField(max_length=190, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="taxrule",
|
||||||
|
name="code",
|
||||||
|
field=models.CharField(max_length=190, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="transaction",
|
||||||
|
name="tax_code",
|
||||||
|
field=models.CharField(max_length=190, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 4.2.17 on 2025-01-13 14:55
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("pretixbase", "0274_tax_codes"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="question",
|
||||||
|
name="valid_number_max",
|
||||||
|
field=models.DecimalField(decimal_places=6, max_digits=30, null=True),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="question",
|
||||||
|
name="valid_number_min",
|
||||||
|
field=models.DecimalField(decimal_places=6, max_digits=30, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.2.16 on 2025-01-23 11:27
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("pretixbase", "0275_alter_question_valid_number_max_and_more"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="item",
|
||||||
|
name="hidden_if_item_available_mode",
|
||||||
|
field=models.CharField(default="hide", max_length=16),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -441,6 +441,7 @@ class Price(DecimalColumnMixin, ImportColumn):
|
|||||||
position.price = p.gross
|
position.price = p.gross
|
||||||
position.tax_rule = position.item.tax_rule
|
position.tax_rule = position.item.tax_rule
|
||||||
position.tax_rate = p.rate
|
position.tax_rate = p.rate
|
||||||
|
position.tax_code = p.code
|
||||||
position.tax_value = p.tax
|
position.tax_value = p.tax
|
||||||
|
|
||||||
|
|
||||||
@@ -584,7 +585,7 @@ class SeatColumn(ImportColumn):
|
|||||||
raise ValidationError(_('Multiple matching seats were found.'))
|
raise ValidationError(_('Multiple matching seats were found.'))
|
||||||
except Seat.DoesNotExist:
|
except Seat.DoesNotExist:
|
||||||
raise ValidationError(_('No matching seat was found.'))
|
raise ValidationError(_('No matching seat was found.'))
|
||||||
if not value.is_available() or value in self._cached:
|
if not value.is_available(sales_channel=previous_values.get('sales_channel')) or value in self._cached:
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
_('The seat you selected has already been taken. Please select a different seat.'))
|
_('The seat you selected has already been taken. Please select a different seat.'))
|
||||||
self._cached.add(value)
|
self._cached.add(value)
|
||||||
@@ -753,11 +754,11 @@ def get_order_import_columns(event):
|
|||||||
AttendeeState(event),
|
AttendeeState(event),
|
||||||
Price(event),
|
Price(event),
|
||||||
Secret(event),
|
Secret(event),
|
||||||
|
Saleschannel(event),
|
||||||
SeatColumn(event),
|
SeatColumn(event),
|
||||||
ValidFrom(event),
|
ValidFrom(event),
|
||||||
ValidUntil(event),
|
ValidUntil(event),
|
||||||
Locale(event),
|
Locale(event),
|
||||||
Saleschannel(event),
|
|
||||||
CheckinAttentionColumn(event),
|
CheckinAttentionColumn(event),
|
||||||
CheckinTextColumn(event),
|
CheckinTextColumn(event),
|
||||||
Expires(event),
|
Expires(event),
|
||||||
|
|||||||
@@ -362,6 +362,7 @@ class InvoiceLine(models.Model):
|
|||||||
tax_value = models.DecimalField(max_digits=13, decimal_places=2, default=Decimal('0.00'))
|
tax_value = models.DecimalField(max_digits=13, decimal_places=2, default=Decimal('0.00'))
|
||||||
tax_rate = models.DecimalField(max_digits=7, decimal_places=2, default=Decimal('0.00'))
|
tax_rate = models.DecimalField(max_digits=7, decimal_places=2, default=Decimal('0.00'))
|
||||||
tax_name = models.CharField(max_length=190)
|
tax_name = models.CharField(max_length=190)
|
||||||
|
tax_code = models.CharField(max_length=190, null=True, blank=True)
|
||||||
subevent = models.ForeignKey('SubEvent', null=True, blank=True, on_delete=models.PROTECT)
|
subevent = models.ForeignKey('SubEvent', null=True, blank=True, on_delete=models.PROTECT)
|
||||||
event_date_from = models.DateTimeField(null=True)
|
event_date_from = models.DateTimeField(null=True)
|
||||||
event_date_to = models.DateTimeField(null=True)
|
event_date_to = models.DateTimeField(null=True)
|
||||||
|
|||||||
@@ -442,8 +442,12 @@ class Item(LoggedModel):
|
|||||||
UNAVAIL_MODE_INFO = "info"
|
UNAVAIL_MODE_INFO = "info"
|
||||||
UNAVAIL_MODES = (
|
UNAVAIL_MODES = (
|
||||||
(UNAVAIL_MODE_HIDDEN, _("Hide product if unavailable")),
|
(UNAVAIL_MODE_HIDDEN, _("Hide product if unavailable")),
|
||||||
(UNAVAIL_MODE_INFO, _("Show info text if unavailable")),
|
(UNAVAIL_MODE_INFO, _("Show product with info on why it’s unavailable")),
|
||||||
)
|
)
|
||||||
|
UNAVAIL_MODE_ICONS = {
|
||||||
|
UNAVAIL_MODE_HIDDEN: 'eye-slash',
|
||||||
|
UNAVAIL_MODE_INFO: 'info'
|
||||||
|
}
|
||||||
|
|
||||||
MEDIA_POLICY_REUSE = 'reuse'
|
MEDIA_POLICY_REUSE = 'reuse'
|
||||||
MEDIA_POLICY_NEW = 'new'
|
MEDIA_POLICY_NEW = 'new'
|
||||||
@@ -596,6 +600,11 @@ class Item(LoggedModel):
|
|||||||
"be a short period in which both products are visible while all tickets of the referenced "
|
"be a short period in which both products are visible while all tickets of the referenced "
|
||||||
"product are reserved, but not yet sold.")
|
"product are reserved, but not yet sold.")
|
||||||
)
|
)
|
||||||
|
hidden_if_item_available_mode = models.CharField(
|
||||||
|
choices=UNAVAIL_MODES,
|
||||||
|
default=UNAVAIL_MODE_HIDDEN,
|
||||||
|
max_length=16,
|
||||||
|
)
|
||||||
require_voucher = models.BooleanField(
|
require_voucher = models.BooleanField(
|
||||||
verbose_name=_('This product can only be bought using a voucher.'),
|
verbose_name=_('This product can only be bought using a voucher.'),
|
||||||
default=False,
|
default=False,
|
||||||
@@ -837,7 +846,7 @@ class Item(LoggedModel):
|
|||||||
|
|
||||||
if not self.tax_rule:
|
if not self.tax_rule:
|
||||||
t = TaxedPrice(gross=price - bundled_sum, net=price - bundled_sum, tax=Decimal('0.00'),
|
t = TaxedPrice(gross=price - bundled_sum, net=price - bundled_sum, tax=Decimal('0.00'),
|
||||||
rate=Decimal('0.00'), name='')
|
rate=Decimal('0.00'), name='', code=None)
|
||||||
else:
|
else:
|
||||||
t = self.tax_rule.tax(price, base_price_is=base_price_is, invoice_address=invoice_address,
|
t = self.tax_rule.tax(price, base_price_is=base_price_is, invoice_address=invoice_address,
|
||||||
override_tax_rate=override_tax_rate, currency=currency or self.event.currency,
|
override_tax_rate=override_tax_rate, currency=currency or self.event.currency,
|
||||||
@@ -845,6 +854,7 @@ class Item(LoggedModel):
|
|||||||
|
|
||||||
if bundled_sum:
|
if bundled_sum:
|
||||||
t.name = "MIXED!"
|
t.name = "MIXED!"
|
||||||
|
t.code = None
|
||||||
t.gross += bundled_sum
|
t.gross += bundled_sum
|
||||||
t.net += bundled_sum_net
|
t.net += bundled_sum_net
|
||||||
t.tax += bundled_sum_tax
|
t.tax += bundled_sum_tax
|
||||||
@@ -884,6 +894,8 @@ class Item(LoggedModel):
|
|||||||
return 'available_from'
|
return 'available_from'
|
||||||
elif subevent_item and subevent_item.available_until and subevent_item.available_until < now_dt:
|
elif subevent_item and subevent_item.available_until and subevent_item.available_until < now_dt:
|
||||||
return 'available_until'
|
return 'available_until'
|
||||||
|
elif self.hidden_if_item_available and self._dependency_available:
|
||||||
|
return 'hidden_if_item_available'
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@@ -1258,7 +1270,7 @@ class ItemVariation(models.Model):
|
|||||||
|
|
||||||
if not self.item.tax_rule:
|
if not self.item.tax_rule:
|
||||||
t = TaxedPrice(gross=price, net=price, tax=Decimal('0.00'),
|
t = TaxedPrice(gross=price, net=price, tax=Decimal('0.00'),
|
||||||
rate=Decimal('0.00'), name='')
|
rate=Decimal('0.00'), name='', code=None)
|
||||||
else:
|
else:
|
||||||
t = self.item.tax_rule.tax(price, base_price_is=base_price_is, currency=currency,
|
t = self.item.tax_rule.tax(price, base_price_is=base_price_is, currency=currency,
|
||||||
override_tax_rate=override_tax_rate,
|
override_tax_rate=override_tax_rate,
|
||||||
@@ -1280,6 +1292,7 @@ class ItemVariation(models.Model):
|
|||||||
t.net += bprice.net - compare_price.net
|
t.net += bprice.net - compare_price.net
|
||||||
t.tax += bprice.tax - compare_price.tax
|
t.tax += bprice.tax - compare_price.tax
|
||||||
t.name = "MIXED!"
|
t.name = "MIXED!"
|
||||||
|
t.code = None
|
||||||
|
|
||||||
return t
|
return t
|
||||||
|
|
||||||
@@ -1716,10 +1729,10 @@ class Question(LoggedModel):
|
|||||||
'Question', null=True, blank=True, on_delete=models.SET_NULL, related_name='dependent_questions'
|
'Question', null=True, blank=True, on_delete=models.SET_NULL, related_name='dependent_questions'
|
||||||
)
|
)
|
||||||
dependency_values = MultiStringField(default=[])
|
dependency_values = MultiStringField(default=[])
|
||||||
valid_number_min = models.DecimalField(decimal_places=6, max_digits=16, null=True, blank=True,
|
valid_number_min = models.DecimalField(decimal_places=6, max_digits=30, null=True, blank=True,
|
||||||
verbose_name=_('Minimum value'),
|
verbose_name=_('Minimum value'),
|
||||||
help_text=_('Currently not supported in our apps and during check-in'))
|
help_text=_('Currently not supported in our apps and during check-in'))
|
||||||
valid_number_max = models.DecimalField(decimal_places=6, max_digits=16, null=True, blank=True,
|
valid_number_max = models.DecimalField(decimal_places=6, max_digits=30, null=True, blank=True,
|
||||||
verbose_name=_('Maximum value'),
|
verbose_name=_('Maximum value'),
|
||||||
help_text=_('Currently not supported in our apps and during check-in'))
|
help_text=_('Currently not supported in our apps and during check-in'))
|
||||||
valid_date_min = models.DateField(null=True, blank=True,
|
valid_date_min = models.DateField(null=True, blank=True,
|
||||||
|
|||||||
+24
-108
@@ -33,16 +33,15 @@
|
|||||||
# License for the specific language governing permissions and limitations under the License.
|
# License for the specific language governing permissions and limitations under the License.
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
|
|
||||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
from django.utils.html import escape
|
|
||||||
from django.utils.translation import gettext_lazy as _, pgettext_lazy
|
|
||||||
|
|
||||||
from pretix.base.signals import logentry_object_link
|
from pretix.base.logentrytype_registry import log_entry_types, make_link
|
||||||
|
from pretix.base.signals import is_app_active, logentry_object_link
|
||||||
|
|
||||||
|
|
||||||
class VisibleOnlyManager(models.Manager):
|
class VisibleOnlyManager(models.Manager):
|
||||||
@@ -92,6 +91,10 @@ class LogEntry(models.Model):
|
|||||||
indexes = [models.Index(fields=["datetime", "id"])]
|
indexes = [models.Index(fields=["datetime", "id"])]
|
||||||
|
|
||||||
def display(self):
|
def display(self):
|
||||||
|
log_entry_type, meta = log_entry_types.get(action_type=self.action_type)
|
||||||
|
if log_entry_type:
|
||||||
|
return log_entry_type.display(self, self.parsed_data)
|
||||||
|
|
||||||
from ..signals import logentry_display
|
from ..signals import logentry_display
|
||||||
|
|
||||||
for receiver, response in logentry_display.send(self.event, logentry=self):
|
for receiver, response in logentry_display.send(self.event, logentry=self):
|
||||||
@@ -126,10 +129,18 @@ class LogEntry(models.Model):
|
|||||||
@cached_property
|
@cached_property
|
||||||
def display_object(self):
|
def display_object(self):
|
||||||
from . import (
|
from . import (
|
||||||
Discount, Event, Item, ItemCategory, Order, Question, Quota,
|
Discount, Event, Item, Order, Question, Quota, SubEvent, Voucher,
|
||||||
SubEvent, TaxRule, Voucher,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
log_entry_type, meta = log_entry_types.get(action_type=self.action_type)
|
||||||
|
if log_entry_type:
|
||||||
|
link_info = log_entry_type.get_object_link_info(self)
|
||||||
|
if is_app_active(self.event, meta['plugin']):
|
||||||
|
return make_link(link_info, log_entry_type.object_link_wrapper)
|
||||||
|
else:
|
||||||
|
return make_link(link_info, log_entry_type.object_link_wrapper, is_active=False,
|
||||||
|
event=self.event, plugin_name=meta['plugin'] and getattr(meta['plugin'], 'name'))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if self.content_type.model_class() is Event:
|
if self.content_type.model_class() is Event:
|
||||||
return ''
|
return ''
|
||||||
@@ -137,110 +148,15 @@ class LogEntry(models.Model):
|
|||||||
co = self.content_object
|
co = self.content_object
|
||||||
except:
|
except:
|
||||||
return ''
|
return ''
|
||||||
a_map = None
|
|
||||||
a_text = None
|
|
||||||
|
|
||||||
if isinstance(co, Order):
|
for receiver, response in logentry_object_link.send(self.event, logentry=self):
|
||||||
a_text = _('Order {val}')
|
if response:
|
||||||
a_map = {
|
return response
|
||||||
'href': reverse('control:event.order', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'code': co.code
|
|
||||||
}),
|
|
||||||
'val': escape(co.code),
|
|
||||||
}
|
|
||||||
elif isinstance(co, Voucher):
|
|
||||||
a_text = _('Voucher {val}…')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.voucher', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'voucher': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(co.code[:6]),
|
|
||||||
}
|
|
||||||
elif isinstance(co, Item):
|
|
||||||
a_text = _('Product {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.item', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'item': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(co.name),
|
|
||||||
}
|
|
||||||
elif isinstance(co, SubEvent):
|
|
||||||
a_text = pgettext_lazy('subevent', 'Date {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.subevent', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'subevent': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(str(co))
|
|
||||||
}
|
|
||||||
elif isinstance(co, Quota):
|
|
||||||
a_text = _('Quota {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.items.quotas.show', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'quota': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(co.name),
|
|
||||||
}
|
|
||||||
elif isinstance(co, Discount):
|
|
||||||
a_text = _('Discount {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.items.discounts.edit', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'discount': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(co.internal_name),
|
|
||||||
}
|
|
||||||
elif isinstance(co, ItemCategory):
|
|
||||||
a_text = _('Category {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.items.categories.edit', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'category': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(co.name),
|
|
||||||
}
|
|
||||||
elif isinstance(co, Question):
|
|
||||||
a_text = _('Question {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.items.questions.show', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'question': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(co.question),
|
|
||||||
}
|
|
||||||
elif isinstance(co, TaxRule):
|
|
||||||
a_text = _('Tax rule {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.settings.tax.edit', kwargs={
|
|
||||||
'event': self.event.slug,
|
|
||||||
'organizer': self.event.organizer.slug,
|
|
||||||
'rule': co.id
|
|
||||||
}),
|
|
||||||
'val': escape(co.name),
|
|
||||||
}
|
|
||||||
|
|
||||||
if a_text and a_map:
|
if isinstance(co, (Order, Voucher, Item, SubEvent, Quota, Discount, Question)):
|
||||||
a_map['val'] = '<a href="{href}">{val}</a>'.format_map(a_map)
|
logging.warning("LogEntryType missing or ill-defined: %s", self.action_type)
|
||||||
return a_text.format_map(a_map)
|
|
||||||
elif a_text:
|
return ''
|
||||||
return a_text
|
|
||||||
else:
|
|
||||||
for receiver, response in logentry_object_link.send(self.event, logentry=self):
|
|
||||||
if response:
|
|
||||||
return response
|
|
||||||
return ''
|
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def parsed_data(self):
|
def parsed_data(self):
|
||||||
|
|||||||
@@ -62,9 +62,10 @@ from django.db.models.signals import post_delete
|
|||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.crypto import get_random_string, salted_hmac
|
from django.utils.crypto import get_random_string, salted_hmac
|
||||||
from django.utils.encoding import escape_uri_path
|
from django.utils.encoding import escape_uri_path, force_str
|
||||||
from django.utils.formats import date_format
|
from django.utils.formats import date_format
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
|
from django.utils.hashable import make_hashable
|
||||||
from django.utils.timezone import get_current_timezone, make_aware, now
|
from django.utils.timezone import get_current_timezone, make_aware, now
|
||||||
from django.utils.translation import gettext_lazy as _, pgettext_lazy
|
from django.utils.translation import gettext_lazy as _, pgettext_lazy
|
||||||
from django_countries.fields import Country
|
from django_countries.fields import Country
|
||||||
@@ -354,7 +355,7 @@ class Order(LockModel, LoggedModel):
|
|||||||
|
|
||||||
if not self.testmode:
|
if not self.testmode:
|
||||||
raise TypeError("Only test mode orders can be deleted.")
|
raise TypeError("Only test mode orders can be deleted.")
|
||||||
self.event.log_action(
|
self.log_action(
|
||||||
'pretix.event.order.deleted', user=user, auth=auth,
|
'pretix.event.order.deleted', user=user, auth=auth,
|
||||||
data={
|
data={
|
||||||
'code': self.code,
|
'code': self.code,
|
||||||
@@ -1086,7 +1087,7 @@ class Order(LockModel, LoggedModel):
|
|||||||
|
|
||||||
for i, op in enumerate(positions):
|
for i, op in enumerate(positions):
|
||||||
if op.seat:
|
if op.seat:
|
||||||
if not op.seat.is_available(ignore_orderpos=op):
|
if not op.seat.is_available(ignore_orderpos=op, sales_channel=self.sales_channel.identifier):
|
||||||
raise Quota.QuotaExceededException(error_messages['seat_unavailable'].format(seat=op.seat))
|
raise Quota.QuotaExceededException(error_messages['seat_unavailable'].format(seat=op.seat))
|
||||||
if force:
|
if force:
|
||||||
continue
|
continue
|
||||||
@@ -1256,7 +1257,7 @@ class Order(LockModel, LoggedModel):
|
|||||||
keys = set(target_transaction_count.keys()) | set(current_transaction_count.keys())
|
keys = set(target_transaction_count.keys()) | set(current_transaction_count.keys())
|
||||||
create = []
|
create = []
|
||||||
for k in keys:
|
for k in keys:
|
||||||
positionid, itemid, variationid, subeventid, price, taxrate, taxruleid, taxvalue, feetype, internaltype = k
|
positionid, itemid, variationid, subeventid, price, taxrate, taxruleid, taxvalue, feetype, internaltype, taxcode = k
|
||||||
d = target_transaction_count[k] - current_transaction_count[k]
|
d = target_transaction_count[k] - current_transaction_count[k]
|
||||||
if d:
|
if d:
|
||||||
create.append(Transaction(
|
create.append(Transaction(
|
||||||
@@ -1272,6 +1273,7 @@ class Order(LockModel, LoggedModel):
|
|||||||
tax_rate=taxrate,
|
tax_rate=taxrate,
|
||||||
tax_rule_id=taxruleid,
|
tax_rule_id=taxruleid,
|
||||||
tax_value=taxvalue,
|
tax_value=taxvalue,
|
||||||
|
tax_code=taxcode,
|
||||||
fee_type=feetype,
|
fee_type=feetype,
|
||||||
internal_type=internaltype,
|
internal_type=internaltype,
|
||||||
))
|
))
|
||||||
@@ -2279,9 +2281,9 @@ class OrderFee(models.Model):
|
|||||||
FEE_TYPE_OTHER = "other"
|
FEE_TYPE_OTHER = "other"
|
||||||
FEE_TYPE_GIFTCARD = "giftcard"
|
FEE_TYPE_GIFTCARD = "giftcard"
|
||||||
FEE_TYPES = (
|
FEE_TYPES = (
|
||||||
|
(FEE_TYPE_SERVICE, _("Service fee")),
|
||||||
(FEE_TYPE_PAYMENT, _("Payment fee")),
|
(FEE_TYPE_PAYMENT, _("Payment fee")),
|
||||||
(FEE_TYPE_SHIPPING, _("Shipping fee")),
|
(FEE_TYPE_SHIPPING, _("Shipping fee")),
|
||||||
(FEE_TYPE_SERVICE, _("Service fee")),
|
|
||||||
(FEE_TYPE_CANCELLATION, _("Cancellation fee")),
|
(FEE_TYPE_CANCELLATION, _("Cancellation fee")),
|
||||||
(FEE_TYPE_INSURANCE, _("Insurance fee")),
|
(FEE_TYPE_INSURANCE, _("Insurance fee")),
|
||||||
(FEE_TYPE_LATE, _("Late fee")),
|
(FEE_TYPE_LATE, _("Late fee")),
|
||||||
@@ -2313,6 +2315,10 @@ class OrderFee(models.Model):
|
|||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
null=True, blank=True
|
null=True, blank=True
|
||||||
)
|
)
|
||||||
|
tax_code = models.CharField(
|
||||||
|
max_length=190,
|
||||||
|
null=True, blank=True,
|
||||||
|
)
|
||||||
tax_value = models.DecimalField(
|
tax_value = models.DecimalField(
|
||||||
max_digits=13, decimal_places=2,
|
max_digits=13, decimal_places=2,
|
||||||
verbose_name=_('Tax value')
|
verbose_name=_('Tax value')
|
||||||
@@ -2340,6 +2346,16 @@ class OrderFee(models.Model):
|
|||||||
self._transaction_key_reset()
|
self._transaction_key_reset()
|
||||||
return super().refresh_from_db(using, fields)
|
return super().refresh_from_db(using, fields)
|
||||||
|
|
||||||
|
def get_tax_code_display(self):
|
||||||
|
from pretix.base.models.tax import get_tax_code_labels
|
||||||
|
|
||||||
|
if self.tax_code:
|
||||||
|
choices_dict = get_tax_code_labels()
|
||||||
|
return force_str(
|
||||||
|
choices_dict.get(make_hashable(self.tax_code), self.tax_code), strings_only=True
|
||||||
|
)
|
||||||
|
return ""
|
||||||
|
|
||||||
def _transaction_key_reset(self):
|
def _transaction_key_reset(self):
|
||||||
self.__initial_transaction_key = Transaction.key(self)
|
self.__initial_transaction_key = Transaction.key(self)
|
||||||
self.__initial_canceled = self.canceled
|
self.__initial_canceled = self.canceled
|
||||||
@@ -2370,9 +2386,11 @@ class OrderFee(models.Model):
|
|||||||
if self.tax_rule:
|
if self.tax_rule:
|
||||||
tax = self.tax_rule.tax(self.value, base_price_is='gross', invoice_address=ia, force_fixed_gross_price=True)
|
tax = self.tax_rule.tax(self.value, base_price_is='gross', invoice_address=ia, force_fixed_gross_price=True)
|
||||||
self.tax_rate = tax.rate
|
self.tax_rate = tax.rate
|
||||||
|
self.tax_code = tax.code
|
||||||
self.tax_value = tax.tax
|
self.tax_value = tax.tax
|
||||||
else:
|
else:
|
||||||
self.tax_value = Decimal('0.00')
|
self.tax_value = Decimal('0.00')
|
||||||
|
self.tax_code = None
|
||||||
self.tax_rate = Decimal('0.00')
|
self.tax_rate = Decimal('0.00')
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
@@ -2381,6 +2399,7 @@ class OrderFee(models.Model):
|
|||||||
|
|
||||||
if self.tax_rate is None:
|
if self.tax_rate is None:
|
||||||
self._calculate_tax()
|
self._calculate_tax()
|
||||||
|
|
||||||
self.order.touch()
|
self.order.touch()
|
||||||
|
|
||||||
if not self.get_deferred_fields():
|
if not self.get_deferred_fields():
|
||||||
@@ -2468,6 +2487,10 @@ class OrderPosition(AbstractPosition):
|
|||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
null=True, blank=True
|
null=True, blank=True
|
||||||
)
|
)
|
||||||
|
tax_code = models.CharField(
|
||||||
|
max_length=190,
|
||||||
|
null=True, blank=True,
|
||||||
|
)
|
||||||
tax_value = models.DecimalField(
|
tax_value = models.DecimalField(
|
||||||
max_digits=13, decimal_places=2,
|
max_digits=13, decimal_places=2,
|
||||||
verbose_name=_('Tax value')
|
verbose_name=_('Tax value')
|
||||||
@@ -2525,6 +2548,16 @@ class OrderPosition(AbstractPosition):
|
|||||||
models.UniqueConstraint("organizer", "secret", name="orderposition_organizer_secret_uniq")
|
models.UniqueConstraint("organizer", "secret", name="orderposition_organizer_secret_uniq")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_tax_code_display(self):
|
||||||
|
from pretix.base.models.tax import get_tax_code_labels
|
||||||
|
|
||||||
|
if self.tax_code:
|
||||||
|
choices_dict = get_tax_code_labels()
|
||||||
|
return force_str(
|
||||||
|
choices_dict.get(make_hashable(self.tax_code), self.tax_code), strings_only=True
|
||||||
|
)
|
||||||
|
return ""
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def sort_key(self):
|
def sort_key(self):
|
||||||
return self.addon_to.positionid if self.addon_to else self.positionid, self.addon_to_id or 0, self.positionid
|
return self.addon_to.positionid if self.addon_to else self.positionid, self.addon_to_id or 0, self.positionid
|
||||||
@@ -2697,11 +2730,13 @@ class OrderPosition(AbstractPosition):
|
|||||||
if self.tax_rule:
|
if self.tax_rule:
|
||||||
tax = self.tax_rule.tax(self.price, invoice_address=ia, base_price_is='gross', force_fixed_gross_price=True)
|
tax = self.tax_rule.tax(self.price, invoice_address=ia, base_price_is='gross', force_fixed_gross_price=True)
|
||||||
self.tax_rate = tax.rate
|
self.tax_rate = tax.rate
|
||||||
|
self.tax_code = tax.code
|
||||||
self.tax_value = tax.tax
|
self.tax_value = tax.tax
|
||||||
if tax.gross != self.price:
|
if tax.gross != self.price:
|
||||||
raise ValueError('Invalid tax calculation')
|
raise ValueError('Invalid tax calculation')
|
||||||
else:
|
else:
|
||||||
self.tax_value = Decimal('0.00')
|
self.tax_value = Decimal('0.00')
|
||||||
|
self.tax_code = None
|
||||||
self.tax_rate = Decimal('0.00')
|
self.tax_rate = Decimal('0.00')
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
@@ -2972,6 +3007,10 @@ class Transaction(models.Model):
|
|||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
null=True, blank=True
|
null=True, blank=True
|
||||||
)
|
)
|
||||||
|
tax_code = models.CharField(
|
||||||
|
max_length=190,
|
||||||
|
null=True, blank=True,
|
||||||
|
)
|
||||||
tax_value = models.DecimalField(
|
tax_value = models.DecimalField(
|
||||||
max_digits=13, decimal_places=2,
|
max_digits=13, decimal_places=2,
|
||||||
verbose_name=_('Tax value')
|
verbose_name=_('Tax value')
|
||||||
@@ -2992,17 +3031,27 @@ class Transaction(models.Model):
|
|||||||
raise ValidationError('Should set either item or fee type')
|
raise ValidationError('Should set either item or fee type')
|
||||||
return super().save(*args, **kwargs)
|
return super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
def get_tax_code_display(self):
|
||||||
|
from pretix.base.models.tax import get_tax_code_labels
|
||||||
|
|
||||||
|
if self.tax_code:
|
||||||
|
choices_dict = get_tax_code_labels()
|
||||||
|
return force_str(
|
||||||
|
choices_dict.get(make_hashable(self.tax_code), self.tax_code), strings_only=True
|
||||||
|
)
|
||||||
|
return ""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def key(obj):
|
def key(obj):
|
||||||
if isinstance(obj, Transaction):
|
if isinstance(obj, Transaction):
|
||||||
return (obj.positionid, obj.item_id, obj.variation_id, obj.subevent_id, obj.price, obj.tax_rate,
|
return (obj.positionid, obj.item_id, obj.variation_id, obj.subevent_id, obj.price, obj.tax_rate,
|
||||||
obj.tax_rule_id, obj.tax_value, obj.fee_type, obj.internal_type)
|
obj.tax_rule_id, obj.tax_value, obj.fee_type, obj.internal_type, obj.tax_code)
|
||||||
elif isinstance(obj, OrderPosition):
|
elif isinstance(obj, OrderPosition):
|
||||||
return (obj.positionid, obj.item_id, obj.variation_id, obj.subevent_id, obj.price, obj.tax_rate,
|
return (obj.positionid, obj.item_id, obj.variation_id, obj.subevent_id, obj.price, obj.tax_rate,
|
||||||
obj.tax_rule_id, obj.tax_value, None, None)
|
obj.tax_rule_id, obj.tax_value, None, None, obj.tax_code)
|
||||||
elif isinstance(obj, OrderFee):
|
elif isinstance(obj, OrderFee):
|
||||||
return (None, None, None, None, obj.value, obj.tax_rate,
|
return (None, None, None, None, obj.value, obj.tax_rate,
|
||||||
obj.tax_rule_id, obj.tax_value, obj.fee_type, obj.internal_type)
|
obj.tax_rule_id, obj.tax_value, obj.fee_type, obj.internal_type, obj.tax_code)
|
||||||
raise ValueError('invalid state') # noqa
|
raise ValueError('invalid state') # noqa
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -3166,8 +3215,15 @@ class CartPosition(AbstractPosition):
|
|||||||
if line_price.gross != self.line_price_gross or line_price.rate != self.tax_rate:
|
if line_price.gross != self.line_price_gross or line_price.rate != self.tax_rate:
|
||||||
self.line_price_gross = line_price.gross
|
self.line_price_gross = line_price.gross
|
||||||
self.tax_rate = line_price.rate
|
self.tax_rate = line_price.rate
|
||||||
|
self.tax_code = line_price.code
|
||||||
self.save(update_fields=['line_price_gross', 'tax_rate'])
|
self.save(update_fields=['line_price_gross', 'tax_rate'])
|
||||||
|
|
||||||
|
@property
|
||||||
|
def discount_percentage(self):
|
||||||
|
if not self.line_price_gross:
|
||||||
|
return 0
|
||||||
|
return (self.line_price_gross - self.price) / self.line_price_gross * 100
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def addons_without_bundled(self):
|
def addons_without_bundled(self):
|
||||||
addons = [op for op in self.addons.all() if not op.is_bundled]
|
addons = [op for op in self.addons.all() if not op.is_bundled]
|
||||||
|
|||||||
+220
-12
@@ -21,6 +21,7 @@
|
|||||||
#
|
#
|
||||||
import json
|
import json
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
import jsonschema
|
import jsonschema
|
||||||
from django.contrib.staticfiles import finders
|
from django.contrib.staticfiles import finders
|
||||||
@@ -30,8 +31,9 @@ from django.db import models
|
|||||||
from django.utils.deconstruct import deconstructible
|
from django.utils.deconstruct import deconstructible
|
||||||
from django.utils.formats import localize
|
from django.utils.formats import localize
|
||||||
from django.utils.functional import lazy
|
from django.utils.functional import lazy
|
||||||
|
from django.utils.hashable import make_hashable
|
||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
from django.utils.translation import gettext_lazy as _, pgettext
|
from django.utils.translation import gettext_lazy as _, pgettext, pgettext_lazy
|
||||||
from i18nfield.fields import I18nCharField
|
from i18nfield.fields import I18nCharField
|
||||||
from i18nfield.strings import LazyI18nString
|
from i18nfield.strings import LazyI18nString
|
||||||
|
|
||||||
@@ -42,7 +44,7 @@ from pretix.helpers.countries import FastCountryField
|
|||||||
|
|
||||||
|
|
||||||
class TaxedPrice:
|
class TaxedPrice:
|
||||||
def __init__(self, *, gross: Decimal, net: Decimal, tax: Decimal, rate: Decimal, name: str):
|
def __init__(self, *, gross: Decimal, net: Decimal, tax: Decimal, rate: Decimal, name: str, code: Optional[str]):
|
||||||
if net + tax != gross:
|
if net + tax != gross:
|
||||||
raise ValueError('Net value and tax value need to add to the gross value')
|
raise ValueError('Net value and tax value need to add to the gross value')
|
||||||
self.gross = gross
|
self.gross = gross
|
||||||
@@ -50,6 +52,7 @@ class TaxedPrice:
|
|||||||
self.tax = tax
|
self.tax = tax
|
||||||
self.rate = rate
|
self.rate = rate
|
||||||
self.name = name
|
self.name = name
|
||||||
|
self.code = code
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '{} + {}% = {}'.format(localize(self.net), localize(self.rate), localize(self.gross))
|
return '{} + {}% = {}'.format(localize(self.net), localize(self.rate), localize(self.gross))
|
||||||
@@ -72,6 +75,7 @@ class TaxedPrice:
|
|||||||
tax=newgross - newnet,
|
tax=newgross - newnet,
|
||||||
rate=self.rate,
|
rate=self.rate,
|
||||||
name=self.name,
|
name=self.name,
|
||||||
|
code=self.code,
|
||||||
)
|
)
|
||||||
|
|
||||||
def __mul__(self, other):
|
def __mul__(self, other):
|
||||||
@@ -85,6 +89,7 @@ class TaxedPrice:
|
|||||||
tax=newgross - newnet,
|
tax=newgross - newnet,
|
||||||
rate=self.rate,
|
rate=self.rate,
|
||||||
name=self.name,
|
name=self.name,
|
||||||
|
code=self.code,
|
||||||
)
|
)
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
@@ -93,7 +98,8 @@ class TaxedPrice:
|
|||||||
self.net == other.net and
|
self.net == other.net and
|
||||||
self.tax == other.tax and
|
self.tax == other.tax and
|
||||||
self.rate == other.rate and
|
self.rate == other.rate and
|
||||||
self.name == other.name
|
self.name == other.name and
|
||||||
|
self.code == other.code
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -102,7 +108,8 @@ TAXED_ZERO = TaxedPrice(
|
|||||||
net=Decimal('0.00'),
|
net=Decimal('0.00'),
|
||||||
tax=Decimal('0.00'),
|
tax=Decimal('0.00'),
|
||||||
rate=Decimal('0.00'),
|
rate=Decimal('0.00'),
|
||||||
name=''
|
name='',
|
||||||
|
code=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
EU_COUNTRIES = {
|
EU_COUNTRIES = {
|
||||||
@@ -125,6 +132,152 @@ VAT_ID_COUNTRIES = EU_COUNTRIES | {'CH', 'NO'}
|
|||||||
format_html_lazy = lazy(format_html, str)
|
format_html_lazy = lazy(format_html, str)
|
||||||
|
|
||||||
|
|
||||||
|
TAX_CODE_LISTS = (
|
||||||
|
# Sources:
|
||||||
|
# https://ec.europa.eu/digital-building-blocks/sites/display/DIGITAL/Registry+of+supporting+artefacts+to+implement+EN16931#RegistryofsupportingartefactstoimplementEN16931-Codelists#RegistryofsupportingartefactstoimplementEN16931-Codelists
|
||||||
|
# https://docs.peppol.eu/poacc/billing/3.0/codelist/vatex/
|
||||||
|
# https://docs.peppol.eu/poacc/billing/3.0/codelist/UNCL5305/
|
||||||
|
# https://www.bzst.de/DE/Unternehmen/Aussenpruefungen/DigitaleSchnittstelleFinV/digitaleschnittstellefinv_node.html#js-toc-entry2
|
||||||
|
#
|
||||||
|
# !! When changed, also update tax-rules-custom.schema.json and doc/api/resources/taxrules.rst !!
|
||||||
|
(
|
||||||
|
_("Standard rates"),
|
||||||
|
(
|
||||||
|
# Standard rate in any country, such as 19% in Germany or 20% in Austria
|
||||||
|
# DSFinV-K mapping: 1
|
||||||
|
("S/standard", pgettext_lazy("tax_code", "Standard rate")),
|
||||||
|
|
||||||
|
# Reduced rate in any country, such as 7% in Germany or both 10% and 13% in Austria
|
||||||
|
# DSFinV-K mapping: 2
|
||||||
|
("S/reduced", pgettext_lazy("tax_code", "Reduced rate")),
|
||||||
|
|
||||||
|
# Averaged rate, for example Germany § 24 (1) Nr. 3 UStG "für die übrigen Umsätze" in agricultural and silvicultural businesses
|
||||||
|
# DSFinV-K mapping: 3
|
||||||
|
("S/averaged", pgettext_lazy("tax_code", "Averaged rate (other revenue in a agricultural and silvicultural business)")),
|
||||||
|
|
||||||
|
# We ignore the German special case of the actual silvicultural products as they won't be sold through pretix (DSFinV-K mapping: 4)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(
|
||||||
|
_("Reverse charge"),
|
||||||
|
(
|
||||||
|
("AE", pgettext_lazy("tax_code", "Reverse charge")),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(
|
||||||
|
_("Tax free"),
|
||||||
|
(
|
||||||
|
# DSFinV-K mapping: 5
|
||||||
|
("O", pgettext_lazy("tax_code", "Services outside of scope of tax")),
|
||||||
|
|
||||||
|
# DSFinV-K mapping: 6
|
||||||
|
("E", pgettext_lazy("tax_code", "Exempt from tax (no reason given)")),
|
||||||
|
|
||||||
|
# DSFinV-K mapping: 6
|
||||||
|
("Z", pgettext_lazy("tax_code", "Zero-rated goods")),
|
||||||
|
|
||||||
|
# DSFinV-K mapping: 5
|
||||||
|
("G", pgettext_lazy("tax_code", "Free export item, VAT not charged")),
|
||||||
|
|
||||||
|
# DSFinV-K mapping: 6?
|
||||||
|
("K", pgettext_lazy("tax_code", "VAT exempt for EEA intra-community supply of goods and services")),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(
|
||||||
|
_("Special cases"),
|
||||||
|
(
|
||||||
|
("L", pgettext_lazy("tax_code", "Canary Islands general indirect tax")),
|
||||||
|
("M", pgettext_lazy("tax_code", "Tax for production, services and importation in Ceuta and Melilla")),
|
||||||
|
("B", pgettext_lazy("tax_code", "Transferred (VAT), only in Italy")),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(
|
||||||
|
_("Exempt with specific reason"),
|
||||||
|
(
|
||||||
|
("E/VATEX-EU-79-C",
|
||||||
|
pgettext_lazy("tax_code", "Exempt based on article 79, point c of Council Directive 2006/112/EC")),
|
||||||
|
*[
|
||||||
|
(
|
||||||
|
f"E/VATEX-EU-132-1{letter.upper()}",
|
||||||
|
lazy(
|
||||||
|
lambda let: pgettext(
|
||||||
|
"tax_code",
|
||||||
|
"Exempt based on article {article}, section {section} ({letter}) of Council "
|
||||||
|
"Directive 2006/112/EC"
|
||||||
|
).format(article="132", section="1", letter=let),
|
||||||
|
str
|
||||||
|
)(letter)
|
||||||
|
) for letter in ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q")
|
||||||
|
],
|
||||||
|
*[
|
||||||
|
(
|
||||||
|
f"E/VATEX-EU-143-1{letter.upper()}",
|
||||||
|
lazy(
|
||||||
|
lambda let: pgettext(
|
||||||
|
"tax_code",
|
||||||
|
"Exempt based on article {article}, section {section} ({letter}) of Council "
|
||||||
|
"Directive 2006/112/EC"
|
||||||
|
).format(article="143", section="1", letter=let),
|
||||||
|
str
|
||||||
|
)(letter)
|
||||||
|
) for letter in ("a", "b", "c", "d", "e", "f", "fa", "g", "h", "i", "j", "k", "l")
|
||||||
|
],
|
||||||
|
*[
|
||||||
|
(
|
||||||
|
f"E/VATEX-EU-148-{letter.upper()}",
|
||||||
|
lazy(
|
||||||
|
lambda let: pgettext(
|
||||||
|
"tax_code",
|
||||||
|
"Exempt based on article {article}, section ({letter}) of Council "
|
||||||
|
"Directive 2006/112/EC"
|
||||||
|
).format(article="148", letter=let),
|
||||||
|
str
|
||||||
|
)(letter)
|
||||||
|
) for letter in ("a", "b", "c", "d", "e", "f", "g")
|
||||||
|
],
|
||||||
|
*[
|
||||||
|
(
|
||||||
|
f"E/VATEX-EU-151-1{letter.upper()}",
|
||||||
|
lazy(
|
||||||
|
lambda let: pgettext(
|
||||||
|
"tax_code",
|
||||||
|
"Exempt based on article {article}, section {section} ({letter}) of Council "
|
||||||
|
"Directive 2006/112/EC"
|
||||||
|
).format(article="151", section="1", letter=let),
|
||||||
|
str
|
||||||
|
)(letter)
|
||||||
|
) for letter in ("a", "aa", "b", "c", "d", "e")
|
||||||
|
],
|
||||||
|
("E/VATEX-EU-309",
|
||||||
|
pgettext_lazy("tax_code", "Exempt based on article 309 of Council Directive 2006/112/EC")),
|
||||||
|
("E/VATEX-EU-D",
|
||||||
|
pgettext_lazy("tax_code", "Intra-Community acquisition from second hand means of transport")),
|
||||||
|
("E/VATEX-EU-F",
|
||||||
|
pgettext_lazy("tax_code", "Intra-Community acquisition of second hand goods")),
|
||||||
|
("E/VATEX-EU-I",
|
||||||
|
pgettext_lazy("tax_code", "Intra-Community acquisition of works of art")),
|
||||||
|
("E/VATEX-EU-J",
|
||||||
|
pgettext_lazy("tax_code", "Intra-Community acquisition of collectors items and antiques")),
|
||||||
|
("E/VATEX-FR-FRANCHISE",
|
||||||
|
pgettext_lazy("tax_code", "France domestic VAT franchise in base")),
|
||||||
|
("E/VATEX-FR-CNWVAT",
|
||||||
|
pgettext_lazy("tax_code", "France domestic Credit Notes without VAT, due to supplier forfeit of VAT for discount")),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_tax_code_labels():
|
||||||
|
flat = []
|
||||||
|
for choice, value in TAX_CODE_LISTS:
|
||||||
|
if isinstance(value, (list, tuple)):
|
||||||
|
flat.extend(value)
|
||||||
|
else:
|
||||||
|
flat.append((choice, value))
|
||||||
|
|
||||||
|
return dict(make_hashable(flat))
|
||||||
|
|
||||||
|
|
||||||
def is_eu_country(cc):
|
def is_eu_country(cc):
|
||||||
cc = str(cc)
|
cc = str(cc)
|
||||||
return cc in EU_COUNTRIES
|
return cc in EU_COUNTRIES
|
||||||
@@ -173,6 +326,14 @@ class TaxRule(LoggedModel):
|
|||||||
help_text=_('Should be short, e.g. "VAT"'),
|
help_text=_('Should be short, e.g. "VAT"'),
|
||||||
max_length=190,
|
max_length=190,
|
||||||
)
|
)
|
||||||
|
code = models.CharField(
|
||||||
|
verbose_name=_('Tax code'),
|
||||||
|
help_text=_('If you help us understand what this tax rules legally is, we can use this information for '
|
||||||
|
'eInvoices, exporting to accounting system, etc.'),
|
||||||
|
null=True, blank=True,
|
||||||
|
max_length=190,
|
||||||
|
choices=TAX_CODE_LISTS,
|
||||||
|
)
|
||||||
rate = models.DecimalField(
|
rate = models.DecimalField(
|
||||||
max_digits=10,
|
max_digits=10,
|
||||||
decimal_places=2,
|
decimal_places=2,
|
||||||
@@ -250,6 +411,16 @@ class TaxRule(LoggedModel):
|
|||||||
if self.eu_reverse_charge and not self.home_country:
|
if self.eu_reverse_charge and not self.home_country:
|
||||||
raise ValidationError(_('You need to set your home country to use the reverse charge feature.'))
|
raise ValidationError(_('You need to set your home country to use the reverse charge feature.'))
|
||||||
|
|
||||||
|
if self.rate != Decimal("0.00") and self.code and (self.code.split("/")[0] in ("O", "E", "Z", "G", "K", "AE")):
|
||||||
|
raise ValidationError({
|
||||||
|
"code": _("A combination of this tax code with a non-zero tax rate does not make sense.")
|
||||||
|
})
|
||||||
|
|
||||||
|
if self.rate == Decimal("0.00") and self.code and (self.code.split("/")[0] in ("S", "L", "M", "B")):
|
||||||
|
raise ValidationError({
|
||||||
|
"code": _("A combination of this tax code with a zero tax rate does not make sense.")
|
||||||
|
})
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if self.price_includes_tax:
|
if self.price_includes_tax:
|
||||||
s = _('incl. {rate}% {name}').format(rate=self.rate, name=self.name)
|
s = _('incl. {rate}% {name}').format(rate=self.rate, name=self.name)
|
||||||
@@ -276,8 +447,9 @@ class TaxRule(LoggedModel):
|
|||||||
return Decimal(rule.get('rate'))
|
return Decimal(rule.get('rate'))
|
||||||
return Decimal(self.rate)
|
return Decimal(self.rate)
|
||||||
|
|
||||||
def tax(self, base_price, base_price_is='auto', currency=None, override_tax_rate=None, invoice_address=None,
|
def tax(self, base_price, base_price_is='auto', currency=None, override_tax_rate=None, override_tax_code=None,
|
||||||
subtract_from_gross=Decimal('0.00'), gross_price_is_tax_rate: Decimal = None, force_fixed_gross_price=False):
|
invoice_address=None, subtract_from_gross=Decimal('0.00'), gross_price_is_tax_rate: Decimal = None,
|
||||||
|
force_fixed_gross_price=False):
|
||||||
from .event import Event
|
from .event import Event
|
||||||
try:
|
try:
|
||||||
currency = currency or self.event.currency
|
currency = currency or self.event.currency
|
||||||
@@ -285,6 +457,13 @@ class TaxRule(LoggedModel):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
rate = Decimal(self.rate)
|
rate = Decimal(self.rate)
|
||||||
|
code = self.code
|
||||||
|
|
||||||
|
if override_tax_code is not None:
|
||||||
|
code = override_tax_code
|
||||||
|
elif invoice_address:
|
||||||
|
code = self.tax_code_for(invoice_address)
|
||||||
|
|
||||||
if override_tax_rate is not None:
|
if override_tax_rate is not None:
|
||||||
rate = override_tax_rate
|
rate = override_tax_rate
|
||||||
elif invoice_address:
|
elif invoice_address:
|
||||||
@@ -317,11 +496,8 @@ class TaxRule(LoggedModel):
|
|||||||
if rate == Decimal('0.00'):
|
if rate == Decimal('0.00'):
|
||||||
gross = _limit_subtract(base_price, subtract_from_gross)
|
gross = _limit_subtract(base_price, subtract_from_gross)
|
||||||
return TaxedPrice(
|
return TaxedPrice(
|
||||||
net=gross,
|
net=gross, gross=gross, tax=Decimal('0.00'),
|
||||||
gross=gross,
|
rate=rate, name=self.name, code=code,
|
||||||
tax=Decimal('0.00'),
|
|
||||||
rate=rate,
|
|
||||||
name=self.name,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if base_price_is == 'auto':
|
if base_price_is == 'auto':
|
||||||
@@ -346,7 +522,7 @@ class TaxRule(LoggedModel):
|
|||||||
|
|
||||||
return TaxedPrice(
|
return TaxedPrice(
|
||||||
net=net, gross=gross, tax=gross - net,
|
net=net, gross=gross, tax=gross - net,
|
||||||
rate=rate, name=self.name
|
rate=rate, name=self.name, code=code,
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -427,6 +603,38 @@ class TaxRule(LoggedModel):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def tax_code_for(self, invoice_address):
|
||||||
|
if self._custom_rules:
|
||||||
|
rule = self.get_matching_rule(invoice_address)
|
||||||
|
if rule.get("code"):
|
||||||
|
return rule["code"]
|
||||||
|
if rule.get("action", "vat") == "reverse":
|
||||||
|
return "AE"
|
||||||
|
return self.code
|
||||||
|
|
||||||
|
if not self.eu_reverse_charge:
|
||||||
|
# No reverse charge rules? Always apply VAT!
|
||||||
|
return self.code
|
||||||
|
|
||||||
|
if not invoice_address or not invoice_address.country:
|
||||||
|
# No country specified? Always apply VAT!
|
||||||
|
return self.code
|
||||||
|
|
||||||
|
if not is_eu_country(invoice_address.country):
|
||||||
|
# Non-EU country? "Non-taxable" since not in scope
|
||||||
|
return "O"
|
||||||
|
|
||||||
|
if invoice_address.country == self.home_country:
|
||||||
|
# Within same EU country? Always apply VAT!
|
||||||
|
return self.code
|
||||||
|
|
||||||
|
if invoice_address.is_business and invoice_address.vat_id and invoice_address.vat_id_validated:
|
||||||
|
# Reverse charge case
|
||||||
|
return "AE"
|
||||||
|
|
||||||
|
# Consumer in different EU country / invalid VAT
|
||||||
|
return self.code
|
||||||
|
|
||||||
def _tax_applicable(self, invoice_address):
|
def _tax_applicable(self, invoice_address):
|
||||||
if self._custom_rules:
|
if self._custom_rules:
|
||||||
rule = self.get_matching_rule(invoice_address)
|
rule = self.get_matching_rule(invoice_address)
|
||||||
|
|||||||
+34
-33
@@ -1419,50 +1419,51 @@ class GiftCardPayment(BasePaymentProvider):
|
|||||||
def payment_refund_supported(self, payment: OrderPayment) -> bool:
|
def payment_refund_supported(self, payment: OrderPayment) -> bool:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def checkout_prepare(self, request: HttpRequest, cart: Dict[str, Any]) -> Union[bool, str, None]:
|
def _add_giftcard_to_cart(self, cs, gc):
|
||||||
from pretix.base.services.cart import add_payment_to_cart
|
from pretix.base.services.cart import add_payment_to_cart_session
|
||||||
|
|
||||||
|
if gc.currency != self.event.currency:
|
||||||
|
raise ValidationError(_("This gift card does not support this currency."))
|
||||||
|
if gc.testmode and not self.event.testmode:
|
||||||
|
raise ValidationError(_("This gift card can only be used in test mode."))
|
||||||
|
if not gc.testmode and self.event.testmode:
|
||||||
|
raise ValidationError(_("Only test gift cards can be used in test mode."))
|
||||||
|
if gc.expires and gc.expires < time_machine_now():
|
||||||
|
raise ValidationError(_("This gift card is no longer valid."))
|
||||||
|
if gc.value <= Decimal("0.00"):
|
||||||
|
raise ValidationError(_("All credit on this gift card has been used."))
|
||||||
|
|
||||||
|
for p in cs.get('payments', []):
|
||||||
|
if p['provider'] == self.identifier and p['info_data']['gift_card'] == gc.pk:
|
||||||
|
raise ValidationError(_("This gift card is already used for your payment."))
|
||||||
|
|
||||||
|
add_payment_to_cart_session(
|
||||||
|
cs,
|
||||||
|
self,
|
||||||
|
max_value=gc.value,
|
||||||
|
info_data={
|
||||||
|
'gift_card': gc.pk,
|
||||||
|
'gift_card_secret': gc.secret,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
def checkout_prepare(self, request: HttpRequest, cart: Dict[str, Any]) -> Union[bool, str, None]:
|
||||||
for p in get_cart(request):
|
for p in get_cart(request):
|
||||||
if p.item.issue_giftcard:
|
if p.item.issue_giftcard:
|
||||||
messages.error(request, _("You cannot pay with gift cards when buying a gift card."))
|
messages.error(request, _("You cannot pay with gift cards when buying a gift card."))
|
||||||
return
|
return
|
||||||
|
|
||||||
cs = cart_session(request)
|
|
||||||
try:
|
try:
|
||||||
gc = self.event.organizer.accepted_gift_cards.get(
|
gc = self.event.organizer.accepted_gift_cards.get(
|
||||||
secret=request.POST.get("giftcard").strip()
|
secret=request.POST.get("giftcard").strip()
|
||||||
)
|
)
|
||||||
if gc.currency != self.event.currency:
|
cs = cart_session(request)
|
||||||
messages.error(request, _("This gift card does not support this currency."))
|
try:
|
||||||
|
self._add_giftcard_to_cart(cs, gc)
|
||||||
|
return True
|
||||||
|
except ValidationError as e:
|
||||||
|
messages.error(request, str(e.message))
|
||||||
return
|
return
|
||||||
if gc.testmode and not self.event.testmode:
|
|
||||||
messages.error(request, _("This gift card can only be used in test mode."))
|
|
||||||
return
|
|
||||||
if not gc.testmode and self.event.testmode:
|
|
||||||
messages.error(request, _("Only test gift cards can be used in test mode."))
|
|
||||||
return
|
|
||||||
if gc.expires and gc.expires < time_machine_now():
|
|
||||||
messages.error(request, _("This gift card is no longer valid."))
|
|
||||||
return
|
|
||||||
if gc.value <= Decimal("0.00"):
|
|
||||||
messages.error(request, _("All credit on this gift card has been used."))
|
|
||||||
return
|
|
||||||
|
|
||||||
for p in cs.get('payments', []):
|
|
||||||
if p['provider'] == self.identifier and p['info_data']['gift_card'] == gc.pk:
|
|
||||||
messages.error(request, _("This gift card is already used for your payment."))
|
|
||||||
return
|
|
||||||
|
|
||||||
add_payment_to_cart(
|
|
||||||
request,
|
|
||||||
self,
|
|
||||||
max_value=gc.value,
|
|
||||||
info_data={
|
|
||||||
'gift_card': gc.pk,
|
|
||||||
'gift_card_secret': gc.secret,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return True
|
|
||||||
except GiftCard.DoesNotExist:
|
except GiftCard.DoesNotExist:
|
||||||
if self.event.vouchers.filter(code__iexact=request.POST.get("giftcard")).exists():
|
if self.event.vouchers.filter(code__iexact=request.POST.get("giftcard")).exists():
|
||||||
messages.warning(request, _("You entered a voucher instead of a gift card. Vouchers can only be entered on the first page of the shop below "
|
messages.warning(request, _("You entered a voucher instead of a gift card. Vouchers can only be entered on the first page of the shop below "
|
||||||
|
|||||||
+169
-65
@@ -185,43 +185,104 @@ BEFORE_AFTER_CHOICE = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
reldatetimeparts = namedtuple('reldatetimeparts', (
|
||||||
|
"status", # 0
|
||||||
|
"absolute", # 1
|
||||||
|
"rel_days_number", # 2
|
||||||
|
"rel_mins_relationto", # 3
|
||||||
|
"rel_days_timeofday", # 4
|
||||||
|
"rel_mins_number", # 5
|
||||||
|
"rel_days_relationto", # 6
|
||||||
|
"rel_mins_relation", # 7
|
||||||
|
"rel_days_relation" # 8
|
||||||
|
))
|
||||||
|
reldatetimeparts.indizes = reldatetimeparts(*range(9))
|
||||||
|
|
||||||
|
|
||||||
class RelativeDateTimeWidget(forms.MultiWidget):
|
class RelativeDateTimeWidget(forms.MultiWidget):
|
||||||
template_name = 'pretixbase/forms/widgets/reldatetime.html'
|
template_name = 'pretixbase/forms/widgets/reldatetime.html'
|
||||||
|
parts = reldatetimeparts
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.status_choices = kwargs.pop('status_choices')
|
self.status_choices = kwargs.pop('status_choices')
|
||||||
base_choices = kwargs.pop('base_choices')
|
base_choices = kwargs.pop('base_choices')
|
||||||
widgets = (
|
widgets = reldatetimeparts(
|
||||||
forms.RadioSelect(choices=self.status_choices),
|
status=forms.RadioSelect(choices=self.status_choices),
|
||||||
forms.DateTimeInput(
|
absolute=forms.DateTimeInput(
|
||||||
attrs={'class': 'datetimepicker'}
|
attrs={'class': 'datetimepicker'}
|
||||||
),
|
),
|
||||||
forms.NumberInput(),
|
rel_days_number=forms.NumberInput(),
|
||||||
forms.Select(choices=base_choices),
|
rel_mins_relationto=forms.Select(choices=base_choices),
|
||||||
forms.TimeInput(attrs={'placeholder': _('Time'), 'class': 'timepickerfield'}),
|
rel_days_timeofday=forms.TimeInput(attrs={'placeholder': _('Time'), 'class': 'timepickerfield'}),
|
||||||
forms.NumberInput(),
|
rel_mins_number=forms.NumberInput(),
|
||||||
forms.Select(choices=base_choices),
|
rel_days_relationto=forms.Select(choices=base_choices),
|
||||||
forms.Select(choices=BEFORE_AFTER_CHOICE),
|
rel_mins_relation=forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||||
forms.Select(choices=BEFORE_AFTER_CHOICE),
|
rel_days_relation=forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||||
)
|
)
|
||||||
super().__init__(widgets=widgets, *args, **kwargs)
|
super().__init__(widgets=widgets, *args, **kwargs)
|
||||||
|
|
||||||
def decompress(self, value):
|
def decompress(self, value):
|
||||||
if isinstance(value, str):
|
if isinstance(value, str):
|
||||||
value = RelativeDateWrapper.from_string(value)
|
value = RelativeDateWrapper.from_string(value)
|
||||||
|
if isinstance(value, reldatetimeparts):
|
||||||
|
return value
|
||||||
if not value:
|
if not value:
|
||||||
return ['unset', None, 1, 'date_from', None, 0, "date_from", "before", "before"]
|
return reldatetimeparts(
|
||||||
|
status="unset",
|
||||||
|
absolute=None,
|
||||||
|
rel_days_number=1,
|
||||||
|
rel_mins_relationto="date_from",
|
||||||
|
rel_days_timeofday=None,
|
||||||
|
rel_mins_number=0,
|
||||||
|
rel_days_relationto="date_from",
|
||||||
|
rel_mins_relation="before",
|
||||||
|
rel_days_relation="before"
|
||||||
|
)
|
||||||
elif isinstance(value.data, (datetime.datetime, datetime.date)):
|
elif isinstance(value.data, (datetime.datetime, datetime.date)):
|
||||||
return ['absolute', value.data, 1, 'date_from', None, 0, "date_from", "before", "before"]
|
return reldatetimeparts(
|
||||||
|
status="absolute",
|
||||||
|
absolute=value.data,
|
||||||
|
rel_days_number=1,
|
||||||
|
rel_mins_relationto="date_from",
|
||||||
|
rel_days_timeofday=None,
|
||||||
|
rel_mins_number=0,
|
||||||
|
rel_days_relationto="date_from",
|
||||||
|
rel_mins_relation="before",
|
||||||
|
rel_days_relation="before"
|
||||||
|
)
|
||||||
elif value.data.minutes is not None:
|
elif value.data.minutes is not None:
|
||||||
return ['relative_minutes', None, None, value.data.base_date_name, None, value.data.minutes, value.data.base_date_name,
|
return reldatetimeparts(
|
||||||
"after" if value.data.is_after else "before", "after" if value.data.is_after else "before"]
|
status="relative_minutes",
|
||||||
return ['relative', None, value.data.days, value.data.base_date_name, value.data.time, 0, value.data.base_date_name,
|
absolute=None,
|
||||||
"after" if value.data.is_after else "before", "after" if value.data.is_after else "before"]
|
rel_days_number=None,
|
||||||
|
rel_mins_relationto=value.data.base_date_name,
|
||||||
|
rel_days_timeofday=None,
|
||||||
|
rel_mins_number=value.data.minutes,
|
||||||
|
rel_days_relationto=value.data.base_date_name,
|
||||||
|
rel_mins_relation="after" if value.data.is_after else "before",
|
||||||
|
rel_days_relation="after" if value.data.is_after else "before"
|
||||||
|
)
|
||||||
|
return reldatetimeparts(
|
||||||
|
status="relative",
|
||||||
|
absolute=None,
|
||||||
|
rel_days_number=value.data.days,
|
||||||
|
rel_mins_relationto=value.data.base_date_name,
|
||||||
|
rel_days_timeofday=value.data.time,
|
||||||
|
rel_mins_number=0,
|
||||||
|
rel_days_relationto=value.data.base_date_name,
|
||||||
|
rel_mins_relation="after" if value.data.is_after else "before",
|
||||||
|
rel_days_relation="after" if value.data.is_after else "before"
|
||||||
|
)
|
||||||
|
|
||||||
def get_context(self, name, value, attrs):
|
def get_context(self, name, value, attrs):
|
||||||
ctx = super().get_context(name, value, attrs)
|
ctx = super().get_context(name, value, attrs)
|
||||||
ctx['required'] = self.status_choices[0][0] == 'unset'
|
ctx['required'] = self.status_choices[0][0] == 'unset'
|
||||||
|
|
||||||
|
ctx['rendered_subwidgets'] = self.parts(*(
|
||||||
|
self._render(w['template_name'], {**ctx, 'widget': w})
|
||||||
|
for w in ctx['widget']['subwidgets']
|
||||||
|
))._asdict()
|
||||||
|
|
||||||
return ctx
|
return ctx
|
||||||
|
|
||||||
|
|
||||||
@@ -239,36 +300,36 @@ class RelativeDateTimeField(forms.MultiValueField):
|
|||||||
choices = BASE_CHOICES
|
choices = BASE_CHOICES
|
||||||
if not kwargs.get('required', True):
|
if not kwargs.get('required', True):
|
||||||
status_choices.insert(0, ('unset', _('Not set')))
|
status_choices.insert(0, ('unset', _('Not set')))
|
||||||
fields = (
|
fields = reldatetimeparts(
|
||||||
forms.ChoiceField(
|
status=forms.ChoiceField(
|
||||||
choices=status_choices,
|
choices=status_choices,
|
||||||
required=True
|
required=True
|
||||||
),
|
),
|
||||||
forms.DateTimeField(
|
absolute=forms.DateTimeField(
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.IntegerField(
|
rel_days_number=forms.IntegerField(
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.ChoiceField(
|
rel_mins_relationto=forms.ChoiceField(
|
||||||
choices=choices,
|
choices=choices,
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.TimeField(
|
rel_days_timeofday=forms.TimeField(
|
||||||
required=False,
|
required=False,
|
||||||
),
|
),
|
||||||
forms.IntegerField(
|
rel_mins_number=forms.IntegerField(
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.ChoiceField(
|
rel_days_relationto=forms.ChoiceField(
|
||||||
choices=choices,
|
choices=choices,
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.ChoiceField(
|
rel_mins_relation=forms.ChoiceField(
|
||||||
choices=BEFORE_AFTER_CHOICE,
|
choices=BEFORE_AFTER_CHOICE,
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.ChoiceField(
|
rel_days_relation=forms.ChoiceField(
|
||||||
choices=BEFORE_AFTER_CHOICE,
|
choices=BEFORE_AFTER_CHOICE,
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
@@ -282,32 +343,36 @@ class RelativeDateTimeField(forms.MultiValueField):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def set_event(self, event):
|
def set_event(self, event):
|
||||||
self.widget.widgets[3].choices = [
|
self.widget.widgets[reldatetimeparts.indizes.rel_days_relationto].choices = [
|
||||||
|
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
||||||
|
]
|
||||||
|
self.widget.widgets[reldatetimeparts.indizes.rel_mins_relationto].choices = [
|
||||||
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
||||||
]
|
]
|
||||||
|
|
||||||
def compress(self, data_list):
|
def compress(self, data_list):
|
||||||
if not data_list:
|
if not data_list:
|
||||||
return None
|
return None
|
||||||
if data_list[0] == 'absolute':
|
data = reldatetimeparts(*data_list)
|
||||||
return RelativeDateWrapper(data_list[1])
|
if data.status == 'absolute':
|
||||||
elif data_list[0] == 'unset':
|
return RelativeDateWrapper(data.absolute)
|
||||||
|
elif data.status == 'unset':
|
||||||
return None
|
return None
|
||||||
elif data_list[0] == 'relative_minutes':
|
elif data.status == 'relative_minutes':
|
||||||
return RelativeDateWrapper(RelativeDate(
|
return RelativeDateWrapper(RelativeDate(
|
||||||
days=0,
|
days=0,
|
||||||
base_date_name=data_list[3],
|
base_date_name=data.rel_mins_relationto,
|
||||||
time=None,
|
time=None,
|
||||||
minutes=data_list[5],
|
minutes=data.rel_mins_number,
|
||||||
is_after=data_list[7] == "after",
|
is_after=data.rel_mins_relation == "after",
|
||||||
))
|
))
|
||||||
else:
|
else:
|
||||||
return RelativeDateWrapper(RelativeDate(
|
return RelativeDateWrapper(RelativeDate(
|
||||||
days=data_list[2],
|
days=data.rel_days_number,
|
||||||
base_date_name=data_list[6],
|
base_date_name=data.rel_days_relationto,
|
||||||
time=data_list[4],
|
time=data.rel_days_timeofday,
|
||||||
minutes=None,
|
minutes=None,
|
||||||
is_after=data_list[8] == "after",
|
is_after=data.rel_days_relation == "after",
|
||||||
))
|
))
|
||||||
|
|
||||||
def has_changed(self, initial, data):
|
def has_changed(self, initial, data):
|
||||||
@@ -316,29 +381,41 @@ class RelativeDateTimeField(forms.MultiValueField):
|
|||||||
return super().has_changed(initial, data)
|
return super().has_changed(initial, data)
|
||||||
|
|
||||||
def clean(self, value):
|
def clean(self, value):
|
||||||
if value[0] == 'absolute' and not value[1]:
|
data = reldatetimeparts(*value)
|
||||||
|
if data.status == 'absolute' and not data.absolute:
|
||||||
raise ValidationError(self.error_messages['incomplete'])
|
raise ValidationError(self.error_messages['incomplete'])
|
||||||
elif value[0] == 'relative' and (value[2] is None or not value[3]):
|
elif data.status == 'relative' and (data.rel_days_number is None or not data.rel_days_relationto):
|
||||||
raise ValidationError(self.error_messages['incomplete'])
|
raise ValidationError(self.error_messages['incomplete'])
|
||||||
elif value[0] == 'relative_minutes' and (value[5] is None or not value[3]):
|
elif data.status == 'relative_minutes' and (data.rel_mins_number is None or not data.rel_mins_relationto):
|
||||||
raise ValidationError(self.error_messages['incomplete'])
|
raise ValidationError(self.error_messages['incomplete'])
|
||||||
|
|
||||||
return super().clean(value)
|
return super().clean(value)
|
||||||
|
|
||||||
|
|
||||||
|
reldateparts = namedtuple('reldateparts', (
|
||||||
|
"status", # 0
|
||||||
|
"absolute", # 1
|
||||||
|
"rel_days_number", # 2
|
||||||
|
"rel_days_relationto", # 3
|
||||||
|
"rel_days_relation", # 4
|
||||||
|
))
|
||||||
|
reldateparts.indizes = reldateparts(*range(5))
|
||||||
|
|
||||||
|
|
||||||
class RelativeDateWidget(RelativeDateTimeWidget):
|
class RelativeDateWidget(RelativeDateTimeWidget):
|
||||||
template_name = 'pretixbase/forms/widgets/reldate.html'
|
template_name = 'pretixbase/forms/widgets/reldate.html'
|
||||||
|
parts = reldateparts
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.status_choices = kwargs.pop('status_choices')
|
self.status_choices = kwargs.pop('status_choices')
|
||||||
widgets = (
|
widgets = reldateparts(
|
||||||
forms.RadioSelect(choices=self.status_choices),
|
status=forms.RadioSelect(choices=self.status_choices),
|
||||||
forms.DateInput(
|
absolute=forms.DateInput(
|
||||||
attrs={'class': 'datepickerfield'}
|
attrs={'class': 'datepickerfield'}
|
||||||
),
|
),
|
||||||
forms.NumberInput(),
|
rel_days_number=forms.NumberInput(),
|
||||||
forms.Select(choices=kwargs.pop('base_choices')),
|
rel_days_relationto=forms.Select(choices=kwargs.pop('base_choices')),
|
||||||
forms.Select(choices=BEFORE_AFTER_CHOICE),
|
rel_days_relation=forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||||
)
|
)
|
||||||
forms.MultiWidget.__init__(self, widgets=widgets, *args, **kwargs)
|
forms.MultiWidget.__init__(self, widgets=widgets, *args, **kwargs)
|
||||||
|
|
||||||
@@ -346,10 +423,30 @@ class RelativeDateWidget(RelativeDateTimeWidget):
|
|||||||
if isinstance(value, str):
|
if isinstance(value, str):
|
||||||
value = RelativeDateWrapper.from_string(value)
|
value = RelativeDateWrapper.from_string(value)
|
||||||
if not value:
|
if not value:
|
||||||
return ['unset', None, 1, 'date_from', 'before']
|
return reldateparts(
|
||||||
|
status="unset",
|
||||||
|
absolute=None,
|
||||||
|
rel_days_number=1,
|
||||||
|
rel_days_relationto="date_from",
|
||||||
|
rel_days_relation="before"
|
||||||
|
)
|
||||||
|
if isinstance(value, reldateparts):
|
||||||
|
return value
|
||||||
elif isinstance(value.data, (datetime.datetime, datetime.date)):
|
elif isinstance(value.data, (datetime.datetime, datetime.date)):
|
||||||
return ['absolute', value.data, 1, 'date_from', 'before']
|
return reldateparts(
|
||||||
return ['relative', None, value.data.days, value.data.base_date_name, "after" if value.data.is_after else "before"]
|
status="absolute",
|
||||||
|
absolute=value.data,
|
||||||
|
rel_days_number=1,
|
||||||
|
rel_days_relationto="date_from",
|
||||||
|
rel_days_relation="before"
|
||||||
|
)
|
||||||
|
return reldateparts(
|
||||||
|
status="relative",
|
||||||
|
absolute=None,
|
||||||
|
rel_days_number=value.data.days,
|
||||||
|
rel_days_relationto=value.data.base_date_name,
|
||||||
|
rel_days_relation="after" if value.data.is_after else "before"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class RelativeDateField(RelativeDateTimeField):
|
class RelativeDateField(RelativeDateTimeField):
|
||||||
@@ -361,22 +458,22 @@ class RelativeDateField(RelativeDateTimeField):
|
|||||||
]
|
]
|
||||||
if not kwargs.get('required', True):
|
if not kwargs.get('required', True):
|
||||||
status_choices.insert(0, ('unset', _('Not set')))
|
status_choices.insert(0, ('unset', _('Not set')))
|
||||||
fields = (
|
fields = reldateparts(
|
||||||
forms.ChoiceField(
|
status=forms.ChoiceField(
|
||||||
choices=status_choices,
|
choices=status_choices,
|
||||||
required=True
|
required=True
|
||||||
),
|
),
|
||||||
forms.DateField(
|
absolute=forms.DateField(
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.IntegerField(
|
rel_days_number=forms.IntegerField(
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.ChoiceField(
|
rel_days_relationto=forms.ChoiceField(
|
||||||
choices=BASE_CHOICES,
|
choices=BASE_CHOICES,
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
forms.ChoiceField(
|
rel_days_relation=forms.ChoiceField(
|
||||||
choices=BEFORE_AFTER_CHOICE,
|
choices=BEFORE_AFTER_CHOICE,
|
||||||
required=False
|
required=False
|
||||||
),
|
),
|
||||||
@@ -387,28 +484,35 @@ class RelativeDateField(RelativeDateTimeField):
|
|||||||
self, fields=fields, require_all_fields=False, *args, **kwargs
|
self, fields=fields, require_all_fields=False, *args, **kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def set_event(self, event):
|
||||||
|
self.widget.widgets[reldateparts.indizes.rel_days_relationto].choices = [
|
||||||
|
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
||||||
|
]
|
||||||
|
|
||||||
def compress(self, data_list):
|
def compress(self, data_list):
|
||||||
if not data_list:
|
if not data_list:
|
||||||
return None
|
return None
|
||||||
if data_list[0] == 'absolute':
|
data = reldateparts(*data_list)
|
||||||
return RelativeDateWrapper(data_list[1])
|
if data.status == 'absolute':
|
||||||
elif data_list[0] == 'unset':
|
return RelativeDateWrapper(data.absolute)
|
||||||
|
elif data.status == 'unset':
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
return RelativeDateWrapper(RelativeDate(
|
return RelativeDateWrapper(RelativeDate(
|
||||||
days=data_list[2],
|
days=data.rel_days_number,
|
||||||
base_date_name=data_list[3],
|
base_date_name=data.rel_days_relationto,
|
||||||
time=None, minutes=None,
|
time=None, minutes=None,
|
||||||
is_after=data_list[4] == "after"
|
is_after=data.rel_days_relation == "after"
|
||||||
))
|
))
|
||||||
|
|
||||||
def clean(self, value):
|
def clean(self, value):
|
||||||
if value[0] == 'absolute' and not value[1]:
|
data = reldateparts(*value)
|
||||||
|
if data.status == 'absolute' and not data.absolute:
|
||||||
raise ValidationError(self.error_messages['incomplete'])
|
raise ValidationError(self.error_messages['incomplete'])
|
||||||
elif value[0] == 'relative' and (value[2] is None or not value[3]):
|
elif data.status == 'relative' and (data.rel_days_number is None or not data.rel_days_relationto):
|
||||||
raise ValidationError(self.error_messages['incomplete'])
|
raise ValidationError(self.error_messages['incomplete'])
|
||||||
|
|
||||||
return super().clean(value)
|
return forms.MultiValueField.clean(self, value)
|
||||||
|
|
||||||
|
|
||||||
class ModelRelativeDateTimeField(models.CharField):
|
class ModelRelativeDateTimeField(models.CharField):
|
||||||
|
|||||||
@@ -1426,6 +1426,28 @@ class CartManager:
|
|||||||
raise CartError(err)
|
raise CartError(err)
|
||||||
|
|
||||||
|
|
||||||
|
def add_payment_to_cart_session(cart_session, provider, min_value: Decimal=None, max_value: Decimal=None, info_data: dict=None):
|
||||||
|
"""
|
||||||
|
:param cart_session: The current cart session.
|
||||||
|
:param provider: The instance of your payment provider.
|
||||||
|
:param min_value: The minimum value this payment instrument supports, or ``None`` for unlimited.
|
||||||
|
:param max_value: The maximum value this payment instrument supports, or ``None`` for unlimited. Highly discouraged
|
||||||
|
to use for payment providers which charge a payment fee, as this can be very user-unfriendly if
|
||||||
|
users need a second payment method just for the payment fee of the first method.
|
||||||
|
:param info_data: A dictionary of information that will be passed through to the ``OrderPayment.info_data`` attribute.
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
cart_session.setdefault('payments', [])
|
||||||
|
cart_session['payments'].append({
|
||||||
|
'id': str(uuid.uuid4()),
|
||||||
|
'provider': provider.identifier,
|
||||||
|
'multi_use_supported': provider.multi_use_supported,
|
||||||
|
'min_value': str(min_value) if min_value is not None else None,
|
||||||
|
'max_value': str(max_value) if max_value is not None else None,
|
||||||
|
'info_data': info_data or {},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
def add_payment_to_cart(request, provider, min_value: Decimal=None, max_value: Decimal=None, info_data: dict=None):
|
def add_payment_to_cart(request, provider, min_value: Decimal=None, max_value: Decimal=None, info_data: dict=None):
|
||||||
"""
|
"""
|
||||||
:param request: The current HTTP request context.
|
:param request: The current HTTP request context.
|
||||||
@@ -1440,16 +1462,7 @@ def add_payment_to_cart(request, provider, min_value: Decimal=None, max_value: D
|
|||||||
from pretix.presale.views.cart import cart_session
|
from pretix.presale.views.cart import cart_session
|
||||||
|
|
||||||
cs = cart_session(request)
|
cs = cart_session(request)
|
||||||
cs.setdefault('payments', [])
|
add_payment_to_cart_session(cs, provider, min_value, max_value, info_data)
|
||||||
|
|
||||||
cs['payments'].append({
|
|
||||||
'id': str(uuid.uuid4()),
|
|
||||||
'provider': provider.identifier,
|
|
||||||
'multi_use_supported': provider.multi_use_supported,
|
|
||||||
'min_value': str(min_value) if min_value is not None else None,
|
|
||||||
'max_value': str(max_value) if max_value is not None else None,
|
|
||||||
'info_data': info_data or {},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
def get_fees(event, request, total, invoice_address, payments, positions):
|
def get_fees(event, request, total, invoice_address, payments, positions):
|
||||||
@@ -1500,6 +1513,7 @@ def get_fees(event, request, total, invoice_address, payments, positions):
|
|||||||
value=payment_fee,
|
value=payment_fee,
|
||||||
tax_rate=payment_fee_tax.rate,
|
tax_rate=payment_fee_tax.rate,
|
||||||
tax_value=payment_fee_tax.tax,
|
tax_value=payment_fee_tax.tax,
|
||||||
|
tax_code=payment_fee_tax.code,
|
||||||
tax_rule=payment_fee_tax_rule
|
tax_rule=payment_fee_tax_rule
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|||||||
@@ -271,7 +271,9 @@ def build_invoice(invoice: Invoice) -> Invoice:
|
|||||||
event_date_from=p.subevent.date_from if invoice.event.has_subevents else invoice.event.date_from,
|
event_date_from=p.subevent.date_from if invoice.event.has_subevents else invoice.event.date_from,
|
||||||
event_date_to=p.subevent.date_to if invoice.event.has_subevents else invoice.event.date_to,
|
event_date_to=p.subevent.date_to if invoice.event.has_subevents else invoice.event.date_to,
|
||||||
event_location=location if invoice.event.settings.invoice_event_location else None,
|
event_location=location if invoice.event.settings.invoice_event_location else None,
|
||||||
tax_rate=p.tax_rate, tax_name=p.tax_rule.name if p.tax_rule else ''
|
tax_rate=p.tax_rate,
|
||||||
|
tax_code=p.tax_code,
|
||||||
|
tax_name=p.tax_rule.name if p.tax_rule else ''
|
||||||
)
|
)
|
||||||
|
|
||||||
if p.tax_rule and p.tax_rule.is_reverse_charge(ia) and p.price and not p.tax_value:
|
if p.tax_rule and p.tax_rule.is_reverse_charge(ia) and p.price and not p.tax_value:
|
||||||
@@ -305,6 +307,7 @@ def build_invoice(invoice: Invoice) -> Invoice:
|
|||||||
),
|
),
|
||||||
tax_value=fee.tax_value,
|
tax_value=fee.tax_value,
|
||||||
tax_rate=fee.tax_rate,
|
tax_rate=fee.tax_rate,
|
||||||
|
tax_code=fee.tax_code,
|
||||||
tax_name=fee.tax_rule.name if fee.tax_rule else '',
|
tax_name=fee.tax_rule.name if fee.tax_rule else '',
|
||||||
fee_type=fee.fee_type,
|
fee_type=fee.fee_type,
|
||||||
fee_internal_type=fee.internal_type or None,
|
fee_internal_type=fee.internal_type or None,
|
||||||
@@ -491,13 +494,19 @@ def build_preview_invoice_pdf(event):
|
|||||||
InvoiceLine.objects.create(
|
InvoiceLine.objects.create(
|
||||||
invoice=invoice, description=_("Sample product {}").format(i + 1),
|
invoice=invoice, description=_("Sample product {}").format(i + 1),
|
||||||
gross_value=tax.gross, tax_value=tax.tax,
|
gross_value=tax.gross, tax_value=tax.tax,
|
||||||
tax_rate=tax.rate, tax_name=tax.name
|
tax_rate=tax.rate, tax_name=tax.name, tax_code=tax.code,
|
||||||
|
event_date_from=event.date_from,
|
||||||
|
event_date_to=event.date_to,
|
||||||
|
event_location=event.settings.invoice_event_location,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
InvoiceLine.objects.create(
|
InvoiceLine.objects.create(
|
||||||
invoice=invoice, description=_("Sample product A"),
|
invoice=invoice, description=_("Sample product A"),
|
||||||
gross_value=100, tax_value=0, tax_rate=0
|
gross_value=100, tax_value=0, tax_rate=0, tax_code=None,
|
||||||
|
event_date_from=event.date_from,
|
||||||
|
event_date_to=event.date_to,
|
||||||
|
event_location=event.settings.invoice_event_location,
|
||||||
)
|
)
|
||||||
|
|
||||||
return event.invoice_renderer.generate(invoice)
|
return event.invoice_renderer.generate(invoice)
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
|||||||
c.assign(record.get(c.identifier), order, position, order._address)
|
c.assign(record.get(c.identifier), order, position, order._address)
|
||||||
|
|
||||||
if position.seat is not None:
|
if position.seat is not None:
|
||||||
lock_seats.append(position.seat)
|
lock_seats.append((order.sales_channel, position.seat))
|
||||||
except (ValidationError, ImportError) as e:
|
except (ValidationError, ImportError) as e:
|
||||||
raise DataImportError(
|
raise DataImportError(
|
||||||
_('Invalid data in row {row}: {message}').format(row=i, message=str(e))
|
_('Invalid data in row {row}: {message}').format(row=i, message=str(e))
|
||||||
@@ -128,9 +128,9 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
|||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
# We don't support vouchers, quotas, or memberships here, so we only need to lock if seats are in use
|
# We don't support vouchers, quotas, or memberships here, so we only need to lock if seats are in use
|
||||||
if lock_seats:
|
if lock_seats:
|
||||||
lock_objects(lock_seats, shared_lock_objects=[event])
|
lock_objects([s for c, s in lock_seats], shared_lock_objects=[event])
|
||||||
for s in lock_seats:
|
for c, s in lock_seats:
|
||||||
if not s.is_available():
|
if not s.is_available(sales_channel=c):
|
||||||
raise DataImportError(_('The seat you selected has already been taken. Please select a different seat.'))
|
raise DataImportError(_('The seat you selected has already been taken. Please select a different seat.'))
|
||||||
|
|
||||||
save_transactions = []
|
save_transactions = []
|
||||||
|
|||||||
@@ -1721,16 +1721,17 @@ class OrderChangeManager:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
new_rate = tax_rule.tax_rate_for(ia)
|
new_rate = tax_rule.tax_rate_for(ia)
|
||||||
|
new_code = tax_rule.tax_code_for(ia)
|
||||||
except TaxRule.SaleNotAllowed:
|
except TaxRule.SaleNotAllowed:
|
||||||
raise OrderError(error_messages['tax_rule_country_blocked'])
|
raise OrderError(error_messages['tax_rule_country_blocked'])
|
||||||
# We use override_tax_rate to make sure .tax() doesn't get clever and re-adjusts the pricing itself
|
# We use override_tax_rate to make sure .tax() doesn't get clever and re-adjusts the pricing itself
|
||||||
if new_rate != pos.tax_rate:
|
if new_rate != pos.tax_rate or new_code != pos.tax_code:
|
||||||
if keep == 'net':
|
if keep == 'net':
|
||||||
new_tax = tax_rule.tax(pos.price - pos.tax_value, base_price_is='net', currency=self.event.currency,
|
new_tax = tax_rule.tax(pos.price - pos.tax_value, base_price_is='net', currency=self.event.currency,
|
||||||
override_tax_rate=new_rate)
|
override_tax_rate=new_rate, override_tax_code=new_code)
|
||||||
else:
|
else:
|
||||||
new_tax = tax_rule.tax(pos.price, base_price_is='gross', currency=self.event.currency,
|
new_tax = tax_rule.tax(pos.price, base_price_is='gross', currency=self.event.currency,
|
||||||
override_tax_rate=new_rate)
|
override_tax_rate=new_rate, override_tax_code=new_code)
|
||||||
self._totaldiff += new_tax.gross - pos.price
|
self._totaldiff += new_tax.gross - pos.price
|
||||||
self._operations.append(self.PriceOperation(pos, new_tax, new_tax.gross - pos.price))
|
self._operations.append(self.PriceOperation(pos, new_tax, new_tax.gross - pos.price))
|
||||||
self._invoice_dirty = True
|
self._invoice_dirty = True
|
||||||
@@ -2304,6 +2305,7 @@ class OrderChangeManager:
|
|||||||
op.position.price = op.price.gross
|
op.position.price = op.price.gross
|
||||||
op.position.tax_rate = op.price.rate
|
op.position.tax_rate = op.price.rate
|
||||||
op.position.tax_value = op.price.tax
|
op.position.tax_value = op.price.tax
|
||||||
|
op.position.tax_code = op.price.code
|
||||||
op.position.save()
|
op.position.save()
|
||||||
elif isinstance(op, self.TaxRuleOperation):
|
elif isinstance(op, self.TaxRuleOperation):
|
||||||
if isinstance(op.position, OrderPosition):
|
if isinstance(op.position, OrderPosition):
|
||||||
@@ -2400,7 +2402,7 @@ class OrderChangeManager:
|
|||||||
elif isinstance(op, self.AddOperation):
|
elif isinstance(op, self.AddOperation):
|
||||||
pos = OrderPosition.objects.create(
|
pos = OrderPosition.objects.create(
|
||||||
item=op.item, variation=op.variation, addon_to=op.addon_to,
|
item=op.item, variation=op.variation, addon_to=op.addon_to,
|
||||||
price=op.price.gross, order=self.order, tax_rate=op.price.rate,
|
price=op.price.gross, order=self.order, tax_rate=op.price.rate, tax_code=op.price.code,
|
||||||
tax_value=op.price.tax, tax_rule=op.item.tax_rule,
|
tax_value=op.price.tax, tax_rule=op.item.tax_rule,
|
||||||
positionid=nextposid, subevent=op.subevent, seat=op.seat,
|
positionid=nextposid, subevent=op.subevent, seat=op.seat,
|
||||||
used_membership=op.membership, valid_from=op.valid_from, valid_until=op.valid_until,
|
used_membership=op.membership, valid_from=op.valid_from, valid_until=op.valid_until,
|
||||||
@@ -2423,6 +2425,8 @@ class OrderChangeManager:
|
|||||||
elif isinstance(op, self.SplitOperation):
|
elif isinstance(op, self.SplitOperation):
|
||||||
split_positions.append(op.position)
|
split_positions.append(op.position)
|
||||||
elif isinstance(op, self.RegenerateSecretOperation):
|
elif isinstance(op, self.RegenerateSecretOperation):
|
||||||
|
op.position.web_secret = generate_secret()
|
||||||
|
op.position.save(update_fields=["web_secret"])
|
||||||
assign_ticket_secret(
|
assign_ticket_secret(
|
||||||
event=self.event, position=op.position, force_invalidate=True, save=True
|
event=self.event, position=op.position, force_invalidate=True, save=True
|
||||||
)
|
)
|
||||||
@@ -2529,6 +2533,7 @@ class OrderChangeManager:
|
|||||||
'new_order': split_order.code,
|
'new_order': split_order.code,
|
||||||
})
|
})
|
||||||
op.order = split_order
|
op.order = split_order
|
||||||
|
op.web_secret = generate_secret()
|
||||||
assign_ticket_secret(
|
assign_ticket_secret(
|
||||||
self.event, position=op, force_invalidate=True,
|
self.event, position=op, force_invalidate=True,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -91,9 +91,11 @@ def get_price(item: Item, variation: ItemVariation = None,
|
|||||||
|
|
||||||
if custom_price_is_net:
|
if custom_price_is_net:
|
||||||
price = tax_rule.tax(max(custom_price, price.net), base_price_is='net', override_tax_rate=price.rate,
|
price = tax_rule.tax(max(custom_price, price.net), base_price_is='net', override_tax_rate=price.rate,
|
||||||
|
override_tax_code=price.code,
|
||||||
invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
||||||
else:
|
else:
|
||||||
price = tax_rule.tax(max(custom_price, price.gross), base_price_is='gross', override_tax_rate=price.rate,
|
price = tax_rule.tax(max(custom_price, price.gross), base_price_is='gross', override_tax_rate=price.rate,
|
||||||
|
override_tax_code=price.code,
|
||||||
invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
||||||
else:
|
else:
|
||||||
price = tax_rule.tax(price, invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
price = tax_rule.tax(price, invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
||||||
@@ -146,10 +148,12 @@ def get_line_price(price_after_voucher: Decimal, custom_price_input: Decimal, cu
|
|||||||
|
|
||||||
if custom_price_input_is_net:
|
if custom_price_input_is_net:
|
||||||
price = tax_rule.tax(max(custom_price_input, price.net), base_price_is='net', override_tax_rate=price.rate,
|
price = tax_rule.tax(max(custom_price_input, price.net), base_price_is='net', override_tax_rate=price.rate,
|
||||||
invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
override_tax_code=price.code, invoice_address=invoice_address,
|
||||||
|
subtract_from_gross=bundled_sum)
|
||||||
else:
|
else:
|
||||||
price = tax_rule.tax(max(custom_price_input, price.gross), base_price_is='gross', override_tax_rate=price.rate,
|
price = tax_rule.tax(max(custom_price_input, price.gross), base_price_is='gross', override_tax_rate=price.rate,
|
||||||
invoice_address=invoice_address, subtract_from_gross=bundled_sum)
|
override_tax_code=price.code, invoice_address=invoice_address,
|
||||||
|
subtract_from_gross=bundled_sum)
|
||||||
else:
|
else:
|
||||||
price = tax_rule.tax(price_after_voucher, invoice_address=invoice_address, subtract_from_gross=bundled_sum,
|
price = tax_rule.tax(price_after_voucher, invoice_address=invoice_address, subtract_from_gross=bundled_sum,
|
||||||
base_price_is='gross' if is_bundled else 'auto')
|
base_price_is='gross' if is_bundled else 'auto')
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#
|
#
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
from decimal import Decimal
|
||||||
|
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
@@ -97,9 +98,9 @@ def preview(event: int, provider: str):
|
|||||||
event = Event.objects.get(id=event)
|
event = Event.objects.get(id=event)
|
||||||
|
|
||||||
with rolledback_transaction(), language(event.settings.locale, event.settings.region):
|
with rolledback_transaction(), language(event.settings.locale, event.settings.region):
|
||||||
item = event.items.create(name=_("Sample product"), default_price=42.23,
|
item = event.items.create(name=_("Sample product"), default_price=Decimal('42.23'),
|
||||||
description=_("Sample product description"))
|
description=_("Sample product description"))
|
||||||
item2 = event.items.create(name=_("Sample workshop"), default_price=23.40)
|
item2 = event.items.create(name=_("Sample workshop"), default_price=Decimal('23.40'))
|
||||||
|
|
||||||
from pretix.base.models import Order
|
from pretix.base.models import Order
|
||||||
order = event.orders.create(status=Order.STATUS_PENDING, datetime=now(),
|
order = event.orders.create(status=Order.STATUS_PENDING, datetime=now(),
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ from django.utils.translation import (
|
|||||||
from django_countries.fields import Country
|
from django_countries.fields import Country
|
||||||
from hierarkey.models import GlobalSettingsBase, Hierarkey
|
from hierarkey.models import GlobalSettingsBase, Hierarkey
|
||||||
from i18nfield.forms import I18nFormField, I18nTextarea, I18nTextInput
|
from i18nfield.forms import I18nFormField, I18nTextarea, I18nTextInput
|
||||||
|
from i18nfield.rest_framework import I18nField
|
||||||
from i18nfield.strings import LazyI18nString
|
from i18nfield.strings import LazyI18nString
|
||||||
from phonenumbers import PhoneNumber, parse
|
from phonenumbers import PhoneNumber, parse
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
@@ -63,7 +64,7 @@ from rest_framework import serializers
|
|||||||
from pretix.api.serializers.fields import (
|
from pretix.api.serializers.fields import (
|
||||||
ListMultipleChoiceField, UploadedFileField,
|
ListMultipleChoiceField, UploadedFileField,
|
||||||
)
|
)
|
||||||
from pretix.api.serializers.i18n import I18nField, I18nURLField
|
from pretix.api.serializers.i18n import I18nURLField
|
||||||
from pretix.base.forms import I18nMarkdownTextarea, I18nURLFormField
|
from pretix.base.forms import I18nMarkdownTextarea, I18nURLFormField
|
||||||
from pretix.base.models.tax import VAT_ID_COUNTRIES, TaxRule
|
from pretix.base.models.tax import VAT_ID_COUNTRIES, TaxRule
|
||||||
from pretix.base.reldate import (
|
from pretix.base.reldate import (
|
||||||
@@ -1039,6 +1040,7 @@ DEFAULTS = {
|
|||||||
('False', _('Do not generate invoices')),
|
('False', _('Do not generate invoices')),
|
||||||
('admin', _('Only manually in admin panel')),
|
('admin', _('Only manually in admin panel')),
|
||||||
('user', _('Automatically on user request')),
|
('user', _('Automatically on user request')),
|
||||||
|
('user_paid', _('Automatically on user request for paid orders')),
|
||||||
('True', _('Automatically for all created orders')),
|
('True', _('Automatically for all created orders')),
|
||||||
('paid', _('Automatically on payment or when required by payment method')),
|
('paid', _('Automatically on payment or when required by payment method')),
|
||||||
),
|
),
|
||||||
@@ -1051,6 +1053,7 @@ DEFAULTS = {
|
|||||||
('paid', _('Automatically after payment or when required by payment method')),
|
('paid', _('Automatically after payment or when required by payment method')),
|
||||||
('True', _('Automatically before payment for all created orders')),
|
('True', _('Automatically before payment for all created orders')),
|
||||||
('user', _('Automatically on user request')),
|
('user', _('Automatically on user request')),
|
||||||
|
('user_paid', _('Automatically on user request for paid orders')),
|
||||||
('admin', _('Only manually in admin panel')),
|
('admin', _('Only manually in admin panel')),
|
||||||
),
|
),
|
||||||
help_text=_("Invoices will never be automatically generated for free orders.")
|
help_text=_("Invoices will never be automatically generated for free orders.")
|
||||||
@@ -3556,8 +3559,8 @@ PERSON_NAME_SCHEMES = OrderedDict([
|
|||||||
str(p) for p in [d.get('family_name', ''), d.get('given_name', '')] if p
|
str(p) for p in [d.get('family_name', ''), d.get('given_name', '')] if p
|
||||||
),
|
),
|
||||||
'sample': {
|
'sample': {
|
||||||
'given_name': '泽东',
|
'family_name': '孫',
|
||||||
'family_name': '毛',
|
'given_name': '文',
|
||||||
'_scheme': 'family_nospace_given',
|
'_scheme': 'family_nospace_given',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@@ -3608,8 +3611,8 @@ PERSON_NAME_SCHEMES = OrderedDict([
|
|||||||
'concatenation': lambda d: str(d.get('full_name', '')),
|
'concatenation': lambda d: str(d.get('full_name', '')),
|
||||||
'concatenation_all_components': lambda d: str(d.get('full_name', '')) + " (" + d.get('latin_transcription', '') + ")",
|
'concatenation_all_components': lambda d: str(d.get('full_name', '')) + " (" + d.get('latin_transcription', '') + ")",
|
||||||
'sample': {
|
'sample': {
|
||||||
'full_name': '庄司',
|
'full_name': '山田花子',
|
||||||
'latin_transcription': 'Shōji',
|
'latin_transcription': 'Yamada Hanako',
|
||||||
'_scheme': 'full_transcription',
|
'_scheme': 'full_transcription',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@@ -3700,6 +3703,7 @@ COUNTRIES_WITH_STATE_IN_ADDRESS = {
|
|||||||
'BR': (['State'], 'short'),
|
'BR': (['State'], 'short'),
|
||||||
'CA': (['Province', 'Territory'], 'short'),
|
'CA': (['Province', 'Territory'], 'short'),
|
||||||
# 'CN': (['Province', 'Autonomous region', 'Munincipality'], 'long'),
|
# 'CN': (['Province', 'Autonomous region', 'Munincipality'], 'long'),
|
||||||
|
'JP': (['Prefecture'], 'long'),
|
||||||
'MY': (['State', 'Federal territory'], 'long'),
|
'MY': (['State', 'Federal territory'], 'long'),
|
||||||
'MX': (['State', 'Federal district'], 'short'),
|
'MX': (['State', 'Federal district'], 'short'),
|
||||||
'US': (['State', 'Outlying area', 'District'], 'short'),
|
'US': (['State', 'Outlying area', 'District'], 'short'),
|
||||||
|
|||||||
+167
-59
@@ -52,6 +52,50 @@ def _populate_app_cache():
|
|||||||
app_cache[ac.name] = ac
|
app_cache[ac.name] = ac
|
||||||
|
|
||||||
|
|
||||||
|
def get_defining_app(o):
|
||||||
|
# If sentry packed this in a wrapper, unpack that
|
||||||
|
if "sentry" in o.__module__:
|
||||||
|
o = o.__wrapped__
|
||||||
|
|
||||||
|
# Find the Django application this belongs to
|
||||||
|
searchpath = o.__module__
|
||||||
|
|
||||||
|
# Core modules are always active
|
||||||
|
if any(searchpath.startswith(cm) for cm in settings.CORE_MODULES):
|
||||||
|
return 'CORE'
|
||||||
|
|
||||||
|
if not app_cache:
|
||||||
|
_populate_app_cache()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
app = app_cache.get(searchpath)
|
||||||
|
if "." not in searchpath or app:
|
||||||
|
break
|
||||||
|
searchpath, _ = searchpath.rsplit(".", 1)
|
||||||
|
return app
|
||||||
|
|
||||||
|
|
||||||
|
def is_app_active(sender, app):
|
||||||
|
if app == 'CORE':
|
||||||
|
return True
|
||||||
|
|
||||||
|
excluded = settings.PRETIX_PLUGINS_EXCLUDE
|
||||||
|
if sender and app and app.name in sender.get_plugins() and app.name not in excluded:
|
||||||
|
if not hasattr(app, 'compatibility_errors') or not app.compatibility_errors:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def is_receiver_active(sender, receiver):
|
||||||
|
if sender is None:
|
||||||
|
# Send to all events!
|
||||||
|
return True
|
||||||
|
|
||||||
|
app = get_defining_app(receiver)
|
||||||
|
|
||||||
|
return is_app_active(sender, app)
|
||||||
|
|
||||||
|
|
||||||
class EventPluginSignal(django.dispatch.Signal):
|
class EventPluginSignal(django.dispatch.Signal):
|
||||||
"""
|
"""
|
||||||
This is an extension to Django's built-in signals which differs in a way that it sends
|
This is an extension to Django's built-in signals which differs in a way that it sends
|
||||||
@@ -59,33 +103,6 @@ class EventPluginSignal(django.dispatch.Signal):
|
|||||||
Event.
|
Event.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _is_active(self, sender, receiver):
|
|
||||||
if sender is None:
|
|
||||||
# Send to all events!
|
|
||||||
return True
|
|
||||||
|
|
||||||
# If sentry packed this in a wrapper, unpack that
|
|
||||||
if "sentry" in receiver.__module__:
|
|
||||||
receiver = receiver.__wrapped__
|
|
||||||
|
|
||||||
# Find the Django application this belongs to
|
|
||||||
searchpath = receiver.__module__
|
|
||||||
core_module = any([searchpath.startswith(cm) for cm in settings.CORE_MODULES])
|
|
||||||
app = None
|
|
||||||
if not core_module:
|
|
||||||
while True:
|
|
||||||
app = app_cache.get(searchpath)
|
|
||||||
if "." not in searchpath or app:
|
|
||||||
break
|
|
||||||
searchpath, _ = searchpath.rsplit(".", 1)
|
|
||||||
|
|
||||||
# Only fire receivers from active plugins and core modules
|
|
||||||
excluded = settings.PRETIX_PLUGINS_EXCLUDE
|
|
||||||
if core_module or (sender and app and app.name in sender.get_plugins() and app.name not in excluded):
|
|
||||||
if not hasattr(app, 'compatibility_errors') or not app.compatibility_errors:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def send(self, sender: Event, **named) -> List[Tuple[Callable, Any]]:
|
def send(self, sender: Event, **named) -> List[Tuple[Callable, Any]]:
|
||||||
"""
|
"""
|
||||||
Send signal from sender to all connected receivers that belong to
|
Send signal from sender to all connected receivers that belong to
|
||||||
@@ -104,7 +121,7 @@ class EventPluginSignal(django.dispatch.Signal):
|
|||||||
_populate_app_cache()
|
_populate_app_cache()
|
||||||
|
|
||||||
for receiver in self._sorted_receivers(sender):
|
for receiver in self._sorted_receivers(sender):
|
||||||
if self._is_active(sender, receiver):
|
if is_receiver_active(sender, receiver):
|
||||||
response = receiver(signal=self, sender=sender, **named)
|
response = receiver(signal=self, sender=sender, **named)
|
||||||
responses.append((receiver, response))
|
responses.append((receiver, response))
|
||||||
return responses
|
return responses
|
||||||
@@ -128,7 +145,7 @@ class EventPluginSignal(django.dispatch.Signal):
|
|||||||
_populate_app_cache()
|
_populate_app_cache()
|
||||||
|
|
||||||
for receiver in self._sorted_receivers(sender):
|
for receiver in self._sorted_receivers(sender):
|
||||||
if self._is_active(sender, receiver):
|
if is_receiver_active(sender, receiver):
|
||||||
named[chain_kwarg_name] = response
|
named[chain_kwarg_name] = response
|
||||||
response = receiver(signal=self, sender=sender, **named)
|
response = receiver(signal=self, sender=sender, **named)
|
||||||
return response
|
return response
|
||||||
@@ -155,7 +172,7 @@ class EventPluginSignal(django.dispatch.Signal):
|
|||||||
_populate_app_cache()
|
_populate_app_cache()
|
||||||
|
|
||||||
for receiver in self._sorted_receivers(sender):
|
for receiver in self._sorted_receivers(sender):
|
||||||
if self._is_active(sender, receiver):
|
if is_receiver_active(sender, receiver):
|
||||||
try:
|
try:
|
||||||
response = receiver(signal=self, sender=sender, **named)
|
response = receiver(signal=self, sender=sender, **named)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
@@ -202,6 +219,122 @@ class DeprecatedSignal(django.dispatch.Signal):
|
|||||||
super().connect(receiver, sender=None, weak=True, dispatch_uid=None)
|
super().connect(receiver, sender=None, weak=True, dispatch_uid=None)
|
||||||
|
|
||||||
|
|
||||||
|
class Registry:
|
||||||
|
"""
|
||||||
|
A Registry is a collection of objects (entries), annotated with metadata. Entries can be searched and filtered by
|
||||||
|
metadata keys, and metadata is returned as part of the result.
|
||||||
|
|
||||||
|
Entry metadata is generated during registration using to the accessor functions given to the Registry
|
||||||
|
constructor.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
animal_sound_registry = Registry({"animal": lambda s: s.animal})
|
||||||
|
|
||||||
|
@animal_sound_registry.new("dog", "woof")
|
||||||
|
@animal_sound_registry.new("cricket", "chirp")
|
||||||
|
class AnimalSound:
|
||||||
|
def __init__(self, animal, sound):
|
||||||
|
self.animal = animal
|
||||||
|
self.sound = sound
|
||||||
|
|
||||||
|
def make_sound(self):
|
||||||
|
return self.sound
|
||||||
|
|
||||||
|
@animal_sound_registry.new()
|
||||||
|
class CatSound(AnimalSound):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__(animal="cat", sound=["meow", "meww", "miaou"])
|
||||||
|
|
||||||
|
def make_sound(self):
|
||||||
|
return random.choice(self.sound)
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, keys):
|
||||||
|
"""
|
||||||
|
:param keys: Dictionary with `{key: accessor_function}`
|
||||||
|
When a new entry is registered, all accessor functions are called with the new entry as parameter.
|
||||||
|
Their return value is stored as the metadata value for that key.
|
||||||
|
"""
|
||||||
|
self.registered_entries = dict()
|
||||||
|
self.keys = keys
|
||||||
|
self.by_key = {key: {} for key in self.keys.keys()}
|
||||||
|
|
||||||
|
def register(self, *objs):
|
||||||
|
"""
|
||||||
|
Register one or more entries in this registry.
|
||||||
|
|
||||||
|
Usable as a regular method or as decorator on a class or function. If used on a class, the class type object
|
||||||
|
itself is registered, not an instance of the class. To register an instance, use the ``new`` method.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
@some_registry.register
|
||||||
|
def my_new_entry(foo):
|
||||||
|
# ...
|
||||||
|
"""
|
||||||
|
for obj in objs:
|
||||||
|
if obj in self.registered_entries:
|
||||||
|
raise RuntimeError('Object already registered: {}'.format(obj))
|
||||||
|
|
||||||
|
meta = {k: accessor(obj) for k, accessor in self.keys.items()}
|
||||||
|
tup = (obj, meta)
|
||||||
|
for key, value in meta.items():
|
||||||
|
self.by_key[key][value] = tup
|
||||||
|
self.registered_entries[obj] = meta
|
||||||
|
|
||||||
|
if len(objs) == 1:
|
||||||
|
return objs[0]
|
||||||
|
|
||||||
|
def new(self, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Instantiate the decorated class with the given `*args` and `**kwargs`, and register the instance in this registry.
|
||||||
|
May be used multiple times.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
@animal_sound_registry.new("meow")
|
||||||
|
@animal_sound_registry.new("woof")
|
||||||
|
class AnimalSound:
|
||||||
|
def __init__(self, sound):
|
||||||
|
# ...
|
||||||
|
"""
|
||||||
|
def reg(clz):
|
||||||
|
obj = clz(*args, **kwargs)
|
||||||
|
self.register(obj)
|
||||||
|
return clz
|
||||||
|
return reg
|
||||||
|
|
||||||
|
def get(self, **kwargs):
|
||||||
|
(key, value), = kwargs.items()
|
||||||
|
return self.by_key.get(key).get(value, (None, None))
|
||||||
|
|
||||||
|
def filter(self, **kwargs):
|
||||||
|
return (
|
||||||
|
(entry, meta)
|
||||||
|
for entry, meta in self.registered_entries.items()
|
||||||
|
if all(value == meta[key] for key, value in kwargs.items())
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class EventPluginRegistry(Registry):
|
||||||
|
"""
|
||||||
|
A Registry which automatically annotates entries with a "plugin" key, specifying which plugin
|
||||||
|
the entry is defined in. This allows the consumer of entries to determine whether an entry is
|
||||||
|
enabled for a given event, or filter only for entries defined by enabled plugins.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
logtype, meta = my_registry.find(action_type="foo.bar.baz")
|
||||||
|
# meta["plugin"] contains the django app name of the defining plugin
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, keys):
|
||||||
|
super().__init__({"plugin": lambda o: get_defining_app(o), **keys})
|
||||||
|
|
||||||
|
|
||||||
event_live_issues = EventPluginSignal()
|
event_live_issues = EventPluginSignal()
|
||||||
"""
|
"""
|
||||||
This signal is sent out to determine whether an event can be taken live. If you want to
|
This signal is sent out to determine whether an event can be taken live. If you want to
|
||||||
@@ -507,41 +640,16 @@ logentry_display = EventPluginSignal()
|
|||||||
"""
|
"""
|
||||||
Arguments: ``logentry``
|
Arguments: ``logentry``
|
||||||
|
|
||||||
To display an instance of the ``LogEntry`` model to a human user,
|
**DEPRECTATION:** Please do not use this signal for new LogEntry types. Use the log_entry_types
|
||||||
``pretix.base.signals.logentry_display`` will be sent out with a ``logentry`` argument.
|
registry instead, as described in https://docs.pretix.eu/en/latest/development/implementation/logging.html
|
||||||
|
|
||||||
The first received response that is not ``None`` will be used to display the log entry
|
|
||||||
to the user. The receivers are expected to return plain text.
|
|
||||||
|
|
||||||
As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
logentry_object_link = EventPluginSignal()
|
logentry_object_link = EventPluginSignal()
|
||||||
"""
|
"""
|
||||||
Arguments: ``logentry``
|
Arguments: ``logentry``
|
||||||
|
|
||||||
To display the relationship of an instance of the ``LogEntry`` model to another model
|
**DEPRECTATION:** Please do not use this signal for new LogEntry types. Use the log_entry_types
|
||||||
to a human user, ``pretix.base.signals.logentry_object_link`` will be sent out with a
|
registry instead, as described in https://docs.pretix.eu/en/latest/development/implementation/logging.html
|
||||||
``logentry`` argument.
|
|
||||||
|
|
||||||
The first received response that is not ``None`` will be used to display the related object
|
|
||||||
to the user. The receivers are expected to return a HTML link. The internal implementation
|
|
||||||
builds the links like this::
|
|
||||||
|
|
||||||
a_text = _('Tax rule {val}')
|
|
||||||
a_map = {
|
|
||||||
'href': reverse('control:event.settings.tax.edit', kwargs={
|
|
||||||
'event': sender.slug,
|
|
||||||
'organizer': sender.organizer.slug,
|
|
||||||
'rule': logentry.content_object.id
|
|
||||||
}),
|
|
||||||
'val': escape(logentry.content_object.name),
|
|
||||||
}
|
|
||||||
a_map['val'] = '<a href="{href}">{val}</a>'.format_map(a_map)
|
|
||||||
return a_text.format_map(a_map)
|
|
||||||
|
|
||||||
Make sure that any user content in the HTML code you return is properly escaped!
|
|
||||||
As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
requiredaction_display = EventPluginSignal()
|
requiredaction_display = EventPluginSignal()
|
||||||
|
|||||||
@@ -9,12 +9,11 @@
|
|||||||
{{ selopt.label }}
|
{{ selopt.label }}
|
||||||
</label>
|
</label>
|
||||||
{% if selopt.value == "absolute" %}
|
{% if selopt.value == "absolute" %}
|
||||||
{% include widget.subwidgets.1.template_name with widget=widget.subwidgets.1 %}
|
{{ rendered_subwidgets.absolute }}
|
||||||
{% elif selopt.value == "relative" %}
|
{% elif selopt.value == "relative" %}
|
||||||
{% include widget.subwidgets.2.template_name with widget=widget.subwidgets.2 %}
|
{% blocktrans trimmed with number=rendered_subwidgets.rel_days_number relation=rendered_subwidgets.rel_days_relation relation_to=rendered_subwidgets.rel_days_relationto %}
|
||||||
{% trans "days" %}
|
{{ number }} days {{ relation }} {{ relation_to }}
|
||||||
{% include widget.subwidgets.4.template_name with widget=widget.subwidgets.4 %}
|
{% endblocktrans %}
|
||||||
{% include widget.subwidgets.3.template_name with widget=widget.subwidgets.3 %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -9,19 +9,15 @@
|
|||||||
{{ selopt.label }}
|
{{ selopt.label }}
|
||||||
</label>
|
</label>
|
||||||
{% if selopt.value == "absolute" %}
|
{% if selopt.value == "absolute" %}
|
||||||
{% include widget.subwidgets.1.template_name with widget=widget.subwidgets.1 %}
|
{{ rendered_subwidgets.absolute }}
|
||||||
{% elif selopt.value == "relative_minutes" %}
|
{% elif selopt.value == "relative_minutes" %}
|
||||||
{% include widget.subwidgets.5.template_name with widget=widget.subwidgets.5 %}
|
{% blocktrans trimmed with number=rendered_subwidgets.rel_mins_number relation=rendered_subwidgets.rel_mins_relation relation_to=rendered_subwidgets.rel_mins_relationto %}
|
||||||
{% trans "minutes" %}
|
{{ number }} minutes {{ relation }} {{ relation_to }}
|
||||||
{% include widget.subwidgets.7.template_name with widget=widget.subwidgets.7 %}
|
{% endblocktrans %}
|
||||||
{% include widget.subwidgets.3.template_name with widget=widget.subwidgets.3 %}
|
|
||||||
{% elif selopt.value == "relative" %}
|
{% elif selopt.value == "relative" %}
|
||||||
{% include widget.subwidgets.2.template_name with widget=widget.subwidgets.2 %}
|
{% blocktrans trimmed with number=rendered_subwidgets.rel_days_number relation=rendered_subwidgets.rel_days_relation relation_to=rendered_subwidgets.rel_days_relationto time_of_day=rendered_subwidgets.rel_days_timeofday %}
|
||||||
{% trans "days" %}
|
{{ number }} days {{ relation }} {{ relation_to }} at {{ time_of_day }}
|
||||||
{% include widget.subwidgets.8.template_name with widget=widget.subwidgets.8 %}
|
{% endblocktrans %}
|
||||||
{% include widget.subwidgets.6.template_name with widget=widget.subwidgets.6 %}
|
|
||||||
{% trans "at" %}
|
|
||||||
{% include widget.subwidgets.4.template_name with widget=widget.subwidgets.4 %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -25,13 +25,15 @@ from contextlib import contextmanager
|
|||||||
from dateutil.parser import parse
|
from dateutil.parser import parse
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
|
|
||||||
|
from pretix.base.auth import has_event_access_permission
|
||||||
|
|
||||||
timemachine_now_var = contextvars.ContextVar('timemachine_now', default=None)
|
timemachine_now_var = contextvars.ContextVar('timemachine_now', default=None)
|
||||||
|
|
||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
def time_machine_now_assigned_from_request(request):
|
def time_machine_now_assigned_from_request(request):
|
||||||
if hasattr(request, 'event') and f'timemachine_now_dt:{request.event.pk}' in request.session and \
|
if hasattr(request, 'event') and f'timemachine_now_dt:{request.event.pk}' in request.session and \
|
||||||
request.event.testmode and has_time_machine_permission(request, request.event):
|
request.event.testmode and has_event_access_permission(request):
|
||||||
request.now_dt = parse(request.session[f'timemachine_now_dt:{request.event.pk}'])
|
request.now_dt = parse(request.session[f'timemachine_now_dt:{request.event.pk}'])
|
||||||
request.now_dt_is_fake = True
|
request.now_dt_is_fake = True
|
||||||
else:
|
else:
|
||||||
@@ -70,17 +72,3 @@ def time_machine_now_assigned(now_dt):
|
|||||||
yield
|
yield
|
||||||
finally:
|
finally:
|
||||||
timemachine_now_var.set(None)
|
timemachine_now_var.set(None)
|
||||||
|
|
||||||
|
|
||||||
def has_time_machine_permission(request, event):
|
|
||||||
permission = 'can_change_event_settings'
|
|
||||||
|
|
||||||
return (
|
|
||||||
request.user.is_authenticated and
|
|
||||||
request.user.has_event_permission(request.organizer, request.event, permission, request=request)
|
|
||||||
) or (
|
|
||||||
getattr(request, 'event_access_user', None) and
|
|
||||||
request.event_access_user.is_authenticated and
|
|
||||||
request.event_access_user.has_event_permission(request.organizer, request.event, permission,
|
|
||||||
session_key=request.event_access_parent_session_key)
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ from pretix.base.forms import (
|
|||||||
)
|
)
|
||||||
from pretix.base.models import Event, Organizer, TaxRule, Team
|
from pretix.base.models import Event, Organizer, TaxRule, Team
|
||||||
from pretix.base.models.event import EventFooterLink, EventMetaValue, SubEvent
|
from pretix.base.models.event import EventFooterLink, EventMetaValue, SubEvent
|
||||||
|
from pretix.base.models.tax import TAX_CODE_LISTS
|
||||||
from pretix.base.reldate import RelativeDateField, RelativeDateTimeField
|
from pretix.base.reldate import RelativeDateField, RelativeDateTimeField
|
||||||
from pretix.base.services.placeholders import FormPlaceholderMixin
|
from pretix.base.services.placeholders import FormPlaceholderMixin
|
||||||
from pretix.base.settings import (
|
from pretix.base.settings import (
|
||||||
@@ -230,7 +231,7 @@ class EventWizardBasicsForm(I18nModelForm):
|
|||||||
raise ValidationError({
|
raise ValidationError({
|
||||||
'timezone': _('Your default locale must be specified.')
|
'timezone': _('Your default locale must be specified.')
|
||||||
})
|
})
|
||||||
if not data.get("no_taxes") and not data.get("tax_rate"):
|
if not data.get("no_taxes") and data.get("tax_rate") is None:
|
||||||
raise ValidationError({
|
raise ValidationError({
|
||||||
'tax_rate': _('You have not specified a tax rate. If you do not want us to compute sales taxes, please '
|
'tax_rate': _('You have not specified a tax rate. If you do not want us to compute sales taxes, please '
|
||||||
'check "{field}" above.').format(field=self.fields["no_taxes"].label)
|
'check "{field}" above.').format(field=self.fields["no_taxes"].label)
|
||||||
@@ -1504,6 +1505,11 @@ class TaxRuleLineForm(I18nForm):
|
|||||||
('require_approval', _('Order requires approval')),
|
('require_approval', _('Order requires approval')),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
code = forms.ChoiceField(
|
||||||
|
label=_("Tax code"),
|
||||||
|
choices=[("", _("Default tax code")), *TAX_CODE_LISTS],
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
rate = forms.DecimalField(
|
rate = forms.DecimalField(
|
||||||
label=_('Deviating tax rate'),
|
label=_('Deviating tax rate'),
|
||||||
max_digits=10, decimal_places=2,
|
max_digits=10, decimal_places=2,
|
||||||
@@ -1518,6 +1524,43 @@ class TaxRuleLineForm(I18nForm):
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.parent_form = kwargs.pop("parent_form")
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
d = super().clean()
|
||||||
|
|
||||||
|
parent_code = self.parent_form.cleaned_data.get("code")
|
||||||
|
parent_rate = self.parent_form.cleaned_data.get("rate")
|
||||||
|
|
||||||
|
code = d.get("code") or parent_code
|
||||||
|
rate = d.get("rate")
|
||||||
|
if rate is None:
|
||||||
|
rate = parent_rate
|
||||||
|
|
||||||
|
if d.get("action") in ("reverse", "no", "block") and d.get("rate"):
|
||||||
|
raise ValidationError(_("A combination of this calculation mode with a non-zero tax rate does not make sense."))
|
||||||
|
|
||||||
|
if d.get("action") == "reverse" and d.get("code") and code != "AE":
|
||||||
|
# Reverse charge but code is not reverse charge -- this is the one case we ignore if the "default code"
|
||||||
|
# is used because it is the one scenario we can auto-fix
|
||||||
|
raise ValidationError(_("This combination of calculation mode and tax code does not make sense."))
|
||||||
|
|
||||||
|
if d.get("action") == "no" and code and code.split("/")[0] in ("S", "AE", "L", "M", "B"):
|
||||||
|
# No VAT but code indicates VAT
|
||||||
|
raise ValidationError(_("This combination of calculation mode and tax code does not make sense."))
|
||||||
|
|
||||||
|
if d.get("action") == "vat" and code and rate != Decimal("0.00") and code.split("/")[0] in ("O", "E", "Z", "G", "K", "AE"):
|
||||||
|
# VAT, but code indicates exempt
|
||||||
|
raise ValidationError(_("A combination of this tax code with a non-zero tax rate does not make sense."))
|
||||||
|
|
||||||
|
if d.get("action") == "vat" and code and rate == Decimal("0.00") and code.split("/")[0] in ("S", "L", "M", "B"):
|
||||||
|
# no VAT, but code indicates non-exempt
|
||||||
|
raise ValidationError(_("A combination of this tax code with a zero tax rate does not make sense."))
|
||||||
|
|
||||||
|
return d
|
||||||
|
|
||||||
|
|
||||||
class I18nBaseFormSet(I18nFormSetMixin, forms.BaseFormSet):
|
class I18nBaseFormSet(I18nFormSetMixin, forms.BaseFormSet):
|
||||||
# compatibility shim for django-i18nfield library
|
# compatibility shim for django-i18nfield library
|
||||||
@@ -1529,8 +1572,16 @@ class I18nBaseFormSet(I18nFormSetMixin, forms.BaseFormSet):
|
|||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class BaseTaxRuleLineFormSet(I18nBaseFormSet):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.parent_form = kwargs.pop('parent_form')
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.form_kwargs['parent_form'] = self.parent_form
|
||||||
|
|
||||||
|
|
||||||
TaxRuleLineFormSet = formset_factory(
|
TaxRuleLineFormSet = formset_factory(
|
||||||
TaxRuleLineForm, formset=I18nBaseFormSet,
|
TaxRuleLineForm, formset=BaseTaxRuleLineFormSet,
|
||||||
can_order=True, can_delete=True, extra=0
|
can_order=True, can_delete=True, extra=0
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1538,7 +1589,16 @@ TaxRuleLineFormSet = formset_factory(
|
|||||||
class TaxRuleForm(I18nModelForm):
|
class TaxRuleForm(I18nModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TaxRule
|
model = TaxRule
|
||||||
fields = ['name', 'rate', 'price_includes_tax', 'eu_reverse_charge', 'home_country', 'internal_name', 'keep_gross_if_rate_changes']
|
fields = [
|
||||||
|
'name',
|
||||||
|
'rate',
|
||||||
|
'price_includes_tax',
|
||||||
|
'code',
|
||||||
|
'eu_reverse_charge',
|
||||||
|
'home_country',
|
||||||
|
'internal_name',
|
||||||
|
'keep_gross_if_rate_changes'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class WidgetCodeForm(forms.Form):
|
class WidgetCodeForm(forms.Form):
|
||||||
|
|||||||
@@ -476,6 +476,7 @@ class ItemCreateForm(I18nModelForm):
|
|||||||
'show_quota_left',
|
'show_quota_left',
|
||||||
'hidden_if_available',
|
'hidden_if_available',
|
||||||
'hidden_if_item_available',
|
'hidden_if_item_available',
|
||||||
|
'hidden_if_item_available_mode',
|
||||||
'require_bundling',
|
'require_bundling',
|
||||||
'require_membership',
|
'require_membership',
|
||||||
'grant_membership_type',
|
'grant_membership_type',
|
||||||
@@ -539,6 +540,8 @@ class ItemCreateForm(I18nModelForm):
|
|||||||
v.pk = None
|
v.pk = None
|
||||||
v.item = instance
|
v.item = instance
|
||||||
v.save()
|
v.save()
|
||||||
|
if not variation.all_sales_channels:
|
||||||
|
v.limit_sales_channels.set(variation.limit_sales_channels.all())
|
||||||
for mv in variation.meta_values.all():
|
for mv in variation.meta_values.all():
|
||||||
mv.pk = None
|
mv.pk = None
|
||||||
mv.variation = v
|
mv.variation = v
|
||||||
@@ -644,18 +647,12 @@ class ItemUpdateForm(I18nModelForm):
|
|||||||
|
|
||||||
self.fields['available_from_mode'].widget = ButtonGroupRadioSelect(
|
self.fields['available_from_mode'].widget = ButtonGroupRadioSelect(
|
||||||
choices=self.fields['available_from_mode'].choices,
|
choices=self.fields['available_from_mode'].choices,
|
||||||
option_icons={
|
option_icons=Item.UNAVAIL_MODE_ICONS
|
||||||
Item.UNAVAIL_MODE_HIDDEN: 'eye-slash',
|
|
||||||
Item.UNAVAIL_MODE_INFO: 'info'
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
self.fields['available_until_mode'].widget = ButtonGroupRadioSelect(
|
self.fields['available_until_mode'].widget = ButtonGroupRadioSelect(
|
||||||
choices=self.fields['available_until_mode'].choices,
|
choices=self.fields['available_until_mode'].choices,
|
||||||
option_icons={
|
option_icons=Item.UNAVAIL_MODE_ICONS
|
||||||
Item.UNAVAIL_MODE_HIDDEN: 'eye-slash',
|
|
||||||
Item.UNAVAIL_MODE_INFO: 'info'
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
self.fields['hide_without_voucher'].widget = ButtonGroupRadioSelect(
|
self.fields['hide_without_voucher'].widget = ButtonGroupRadioSelect(
|
||||||
@@ -670,6 +667,11 @@ class ItemUpdateForm(I18nModelForm):
|
|||||||
attrs={'data-checkbox-dependency': '#id_require_voucher'}
|
attrs={'data-checkbox-dependency': '#id_require_voucher'}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.fields['hidden_if_item_available_mode'].widget = ButtonGroupRadioSelect(
|
||||||
|
choices=self.fields['hidden_if_item_available_mode'].choices,
|
||||||
|
option_icons=Item.UNAVAIL_MODE_ICONS
|
||||||
|
)
|
||||||
|
|
||||||
if self.instance.hidden_if_available_id:
|
if self.instance.hidden_if_available_id:
|
||||||
self.fields['hidden_if_available'].queryset = self.event.quotas.all()
|
self.fields['hidden_if_available'].queryset = self.event.quotas.all()
|
||||||
self.fields['hidden_if_available'].help_text = format_html(
|
self.fields['hidden_if_available'].help_text = format_html(
|
||||||
@@ -851,6 +853,7 @@ class ItemUpdateForm(I18nModelForm):
|
|||||||
'show_quota_left',
|
'show_quota_left',
|
||||||
'hidden_if_available',
|
'hidden_if_available',
|
||||||
'hidden_if_item_available',
|
'hidden_if_item_available',
|
||||||
|
'hidden_if_item_available_mode',
|
||||||
'issue_giftcard',
|
'issue_giftcard',
|
||||||
'require_membership',
|
'require_membership',
|
||||||
'require_membership_types',
|
'require_membership_types',
|
||||||
@@ -968,18 +971,12 @@ class ItemVariationForm(I18nModelForm):
|
|||||||
|
|
||||||
self.fields['available_from_mode'].widget = ButtonGroupRadioSelect(
|
self.fields['available_from_mode'].widget = ButtonGroupRadioSelect(
|
||||||
choices=self.fields['available_from_mode'].choices,
|
choices=self.fields['available_from_mode'].choices,
|
||||||
option_icons={
|
option_icons=Item.UNAVAIL_MODE_ICONS
|
||||||
Item.UNAVAIL_MODE_HIDDEN: 'eye-slash',
|
|
||||||
Item.UNAVAIL_MODE_INFO: 'info'
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
self.fields['available_until_mode'].widget = ButtonGroupRadioSelect(
|
self.fields['available_until_mode'].widget = ButtonGroupRadioSelect(
|
||||||
choices=self.fields['available_until_mode'].choices,
|
choices=self.fields['available_until_mode'].choices,
|
||||||
option_icons={
|
option_icons=Item.UNAVAIL_MODE_ICONS
|
||||||
Item.UNAVAIL_MODE_HIDDEN: 'eye-slash',
|
|
||||||
Item.UNAVAIL_MODE_INFO: 'info'
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
self.meta_fields = []
|
self.meta_fields = []
|
||||||
|
|||||||
@@ -490,7 +490,9 @@ class OrderPositionChangeForm(forms.Form):
|
|||||||
)
|
)
|
||||||
operation_secret = forms.BooleanField(
|
operation_secret = forms.BooleanField(
|
||||||
required=False,
|
required=False,
|
||||||
label=_('Generate a new secret')
|
label=_('Generate a new secret'),
|
||||||
|
help_text=_('This affects both the ticket secret (often used as a QR code) as well as the link used to '
|
||||||
|
'individually access the ticket.')
|
||||||
)
|
)
|
||||||
operation_cancel = forms.BooleanField(
|
operation_cancel = forms.BooleanField(
|
||||||
required=False,
|
required=False,
|
||||||
@@ -610,7 +612,13 @@ class OrderFeeChangeForm(forms.Form):
|
|||||||
|
|
||||||
|
|
||||||
class OrderFeeAddForm(forms.Form):
|
class OrderFeeAddForm(forms.Form):
|
||||||
fee_type = forms.ChoiceField(choices=OrderFee.FEE_TYPES)
|
fee_type = forms.ChoiceField(
|
||||||
|
choices=[("", ""), *OrderFee.FEE_TYPES],
|
||||||
|
help_text=_(
|
||||||
|
"Note that payment fees have a special semantic and might automatically be changed if the "
|
||||||
|
"payment method of the order is changed."
|
||||||
|
)
|
||||||
|
)
|
||||||
value = forms.DecimalField(
|
value = forms.DecimalField(
|
||||||
max_digits=13, decimal_places=2,
|
max_digits=13, decimal_places=2,
|
||||||
localize=True,
|
localize=True,
|
||||||
|
|||||||
@@ -1043,6 +1043,15 @@ class SSOProviderForm(I18nModelForm):
|
|||||||
label=pgettext_lazy('sso_oidc', 'Phone field'),
|
label=pgettext_lazy('sso_oidc', 'Phone field'),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
|
config_oidc_query_parameters = forms.CharField(
|
||||||
|
label=pgettext_lazy('sso_oidc', 'Query parameters'),
|
||||||
|
help_text=pgettext_lazy('sso_oidc', 'Optional query parameters, that will be added to calls to '
|
||||||
|
'the authorization endpoint. Enter as: {example}'.format(
|
||||||
|
example='<code>param1=value1&param2=value2</code>'
|
||||||
|
),
|
||||||
|
),
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CustomerSSOProvider
|
model = CustomerSSOProvider
|
||||||
|
|||||||
+698
-527
File diff suppressed because it is too large
Load Diff
@@ -23,7 +23,7 @@
|
|||||||
<legend>{{ catlabel }}</legend>
|
<legend>{{ catlabel }}</legend>
|
||||||
<div class="plugin-list">
|
<div class="plugin-list">
|
||||||
{% for plugin in plist %}
|
{% for plugin in plist %}
|
||||||
<div class="plugin-container {% if plugin.featured %}featured-plugin{% endif %}">
|
<div class="plugin-container {% if plugin.featured %}featured-plugin{% endif %}" id="plugin_{{ plugin.module }}">
|
||||||
{% if plugin.featured %}
|
{% if plugin.featured %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
{% bootstrap_field form.name layout="control" %}
|
{% bootstrap_field form.name layout="control" %}
|
||||||
{% bootstrap_field form.internal_name layout="control" %}
|
{% bootstrap_field form.internal_name layout="control" %}
|
||||||
{% bootstrap_field form.rate addon_after="%" layout="control" %}
|
{% bootstrap_field form.rate addon_after="%" layout="control" %}
|
||||||
|
{% bootstrap_field form.code layout="control" %}
|
||||||
{% bootstrap_field form.price_includes_tax layout="control" %}
|
{% bootstrap_field form.price_includes_tax layout="control" %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
@@ -52,6 +53,18 @@
|
|||||||
{% trans "All of these rules will only apply if an invoice address is set." %}
|
{% trans "All of these rules will only apply if an invoice address is set." %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||||
|
<strong>{% trans "Condition" %}</strong>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||||
|
<strong>{% trans "Calculation" %}</strong>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 col-md-3 col-lg-4 col-sm-offset-6 col-md-offset-0">
|
||||||
|
<strong>{% trans "Reason" %}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="formset tax-rules-formset" data-formset data-formset-prefix="{{ formset.prefix }}">
|
<div class="formset tax-rules-formset" data-formset data-formset-prefix="{{ formset.prefix }}">
|
||||||
{{ formset.management_form }}
|
{{ formset.management_form }}
|
||||||
{% bootstrap_formset_errors formset %}
|
{% bootstrap_formset_errors formset %}
|
||||||
@@ -65,14 +78,17 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||||
{% bootstrap_field formset.empty_form.country layout='inline' form_group_class="" %}
|
{% bootstrap_field formset.empty_form.country layout='inline' form_group_class="" %}
|
||||||
</div>
|
|
||||||
<div class="col-sm-6 col-md-3 col-lg-4">
|
|
||||||
{% bootstrap_field formset.empty_form.address_type layout='inline' form_group_class="" %}
|
{% bootstrap_field formset.empty_form.address_type layout='inline' form_group_class="" %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||||
{% bootstrap_field formset.empty_form.action layout='inline' form_group_class="" %}
|
{% bootstrap_field formset.empty_form.action layout='inline' form_group_class="" %}
|
||||||
|
{% bootstrap_field formset.empty_form.rate layout='inline' form_group_class="" %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-2 text-right flip">
|
<div class="col-sm-6 col-md-3 col-lg-4 col-sm-offset-6 col-md-offset-0">
|
||||||
|
{% bootstrap_field formset.empty_form.code layout='inline' form_group_class="" %}
|
||||||
|
{% bootstrap_field formset.empty_form.invoice_text layout='inline' form_group_class="" %}
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 col-md-3 col-lg-2 col-sm-offset-6 col-md-offset-0 text-right flip">
|
||||||
<button type="button" class="btn btn-default" data-formset-move-up-button>
|
<button type="button" class="btn btn-default" data-formset-move-up-button>
|
||||||
<i class="fa fa-arrow-up"></i></button>
|
<i class="fa fa-arrow-up"></i></button>
|
||||||
<button type="button" class="btn btn-default" data-formset-move-down-button>
|
<button type="button" class="btn btn-default" data-formset-move-down-button>
|
||||||
@@ -80,12 +96,6 @@
|
|||||||
<button type="button" class="btn btn-danger" data-formset-delete-button>
|
<button type="button" class="btn btn-danger" data-formset-delete-button>
|
||||||
<i class="fa fa-trash"></i></button>
|
<i class="fa fa-trash"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-4 col-md-offset-3">
|
|
||||||
{% bootstrap_field formset.empty_form.invoice_text layout='inline' form_group_class="" %}
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
|
||||||
{% bootstrap_field formset.empty_form.rate layout='inline' form_group_class="" %}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endescapescript %}
|
{% endescapescript %}
|
||||||
</script>
|
</script>
|
||||||
@@ -100,14 +110,17 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||||
{% bootstrap_field form.country layout='inline' form_group_class="" %}
|
{% bootstrap_field form.country layout='inline' form_group_class="" %}
|
||||||
</div>
|
|
||||||
<div class="col-sm-6 col-md-3 col-lg-4">
|
|
||||||
{% bootstrap_field form.address_type layout='inline' form_group_class="" %}
|
{% bootstrap_field form.address_type layout='inline' form_group_class="" %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||||
{% bootstrap_field form.action layout='inline' form_group_class="" %}
|
{% bootstrap_field form.action layout='inline' form_group_class="" %}
|
||||||
|
{% bootstrap_field form.rate layout='inline' form_group_class="" %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-2 text-right flip">
|
<div class="col-sm-6 col-md-3 col-lg-4 col-sm-offset-6 col-md-offset-0">
|
||||||
|
{% bootstrap_field form.code layout='inline' form_group_class="" %}
|
||||||
|
{% bootstrap_field form.invoice_text layout='inline' form_group_class="" %}
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 col-md-3 col-lg-2 col-sm-offset-6 col-md-offset-0 text-right flip">
|
||||||
<button type="button" class="btn btn-default" data-formset-move-up-button>
|
<button type="button" class="btn btn-default" data-formset-move-up-button>
|
||||||
<i class="fa fa-arrow-up"></i></button>
|
<i class="fa fa-arrow-up"></i></button>
|
||||||
<button type="button" class="btn btn-default" data-formset-move-down-button>
|
<button type="button" class="btn btn-default" data-formset-move-down-button>
|
||||||
@@ -115,12 +128,6 @@
|
|||||||
<button type="button" class="btn btn-danger" data-formset-delete-button>
|
<button type="button" class="btn btn-danger" data-formset-delete-button>
|
||||||
<i class="fa fa-trash"></i></button>
|
<i class="fa fa-trash"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-3 col-lg-4 col-md-offset-3">
|
|
||||||
{% bootstrap_field form.invoice_text layout='inline' form_group_class="" %}
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
|
||||||
{% bootstrap_field form.rate layout='inline' form_group_class="" %}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -220,7 +220,6 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% bootstrap_field formset.empty_form.available_from visibility_field=formset.empty_form.available_from_mode layout="control_with_visibility" %}
|
{% bootstrap_field formset.empty_form.available_from visibility_field=formset.empty_form.available_from_mode layout="control_with_visibility" %}
|
||||||
{% bootstrap_field formset.empty_form.available_until visibility_field=formset.empty_form.available_until_mode layout="control_with_visibility" %}
|
{% bootstrap_field formset.empty_form.available_until visibility_field=formset.empty_form.available_until_mode layout="control_with_visibility" %}
|
||||||
{% bootstrap_field formset.empty_form.available_until layout="control" %}
|
|
||||||
{% bootstrap_field formset.empty_form.all_sales_channels layout="control" %}
|
{% bootstrap_field formset.empty_form.all_sales_channels layout="control" %}
|
||||||
{% bootstrap_field formset.empty_form.limit_sales_channels layout="control" %}
|
{% bootstrap_field formset.empty_form.limit_sales_channels layout="control" %}
|
||||||
{% bootstrap_field formset.empty_form.hide_without_voucher layout="control" %}
|
{% bootstrap_field formset.empty_form.hide_without_voucher layout="control" %}
|
||||||
|
|||||||
@@ -172,7 +172,7 @@
|
|||||||
{% if form.hidden_if_available %}
|
{% if form.hidden_if_available %}
|
||||||
{% bootstrap_field form.hidden_if_available layout="control" horizontal_field_class="col-md-7" %}
|
{% bootstrap_field form.hidden_if_available layout="control" horizontal_field_class="col-md-7" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% bootstrap_field form.hidden_if_item_available layout="control" horizontal_field_class="col-md-7" %}
|
{% bootstrap_field form.hidden_if_item_available visibility_field=form.hidden_if_item_available_mode layout="control_with_visibility" %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
{% for v in formsets.values %}
|
{% for v in formsets.values %}
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|||||||
@@ -202,6 +202,12 @@
|
|||||||
+ {{ position.tax_rate }}%)
|
+ {{ position.tax_rate }}%)
|
||||||
</small>
|
</small>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if position.tax_code %}
|
||||||
|
<br>
|
||||||
|
<small>
|
||||||
|
{{ position.get_tax_code_display }}
|
||||||
|
</small>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4 field-container">
|
<div class="col-sm-4 field-container">
|
||||||
{% bootstrap_field position.form.price addon_after=request.event.currency layout='inline' %}
|
{% bootstrap_field position.form.price addon_after=request.event.currency layout='inline' %}
|
||||||
@@ -420,6 +426,12 @@
|
|||||||
+ {{ fee.tax_rate }}%)
|
+ {{ fee.tax_rate }}%)
|
||||||
</small>
|
</small>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if fee.tax_code %}
|
||||||
|
<br>
|
||||||
|
<small>
|
||||||
|
{{ fee.get_tax_code_display }}
|
||||||
|
</small>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4 field-container">
|
<div class="col-sm-4 field-container">
|
||||||
{% bootstrap_field fee.form.value addon_after=request.event.currency layout='inline' %}
|
{% bootstrap_field fee.form.value addon_after=request.event.currency layout='inline' %}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<th>{% trans "Date" %}</th>
|
<th>{% trans "Date" %}</th>
|
||||||
<th>{% trans "Product" %}</th>
|
<th>{% trans "Product" %}</th>
|
||||||
<th class="text-right flip">{% trans "Tax rate" %}</th>
|
<th class="text-right flip">{% trans "Tax rate" %}</th>
|
||||||
|
<th>{% trans "Tax code" %}</th>
|
||||||
<th class="text-right flip">{% trans "Quantity" %}</th>
|
<th class="text-right flip">{% trans "Quantity" %}</th>
|
||||||
<th class="text-right flip">{% trans "Single price" %}</th>
|
<th class="text-right flip">{% trans "Single price" %}</th>
|
||||||
<th class="text-right flip">{% trans "Total tax value" %}</th>
|
<th class="text-right flip">{% trans "Total tax value" %}</th>
|
||||||
@@ -52,6 +53,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right flip">{{ t.tax_rate }} %</td>
|
<td class="text-right flip">{{ t.tax_rate }} %</td>
|
||||||
|
<td>{{ t.get_tax_code_display }}</td>
|
||||||
<td class="text-right flip">{{ t.count }} ×</td>
|
<td class="text-right flip">{{ t.count }} ×</td>
|
||||||
<td class="text-right flip">{{ t.price|money:request.event.currency }}</td>
|
<td class="text-right flip">{{ t.price|money:request.event.currency }}</td>
|
||||||
<td class="text-right flip">{{ t.full_tax_value|money:request.event.currency }}</td>
|
<td class="text-right flip">{{ t.full_tax_value|money:request.event.currency }}</td>
|
||||||
@@ -64,8 +66,8 @@
|
|||||||
<td>
|
<td>
|
||||||
<strong>{% trans "Sum" %}</strong>
|
<strong>{% trans "Sum" %}</strong>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td></td>
|
||||||
</td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td class="text-right flip">
|
<td class="text-right flip">
|
||||||
<strong>
|
<strong>
|
||||||
|
|||||||
+1
-1
@@ -2,5 +2,5 @@
|
|||||||
{% if mode == "hide" %}
|
{% if mode == "hide" %}
|
||||||
<span class="pull-right text-muted unavail-mode-indicator" data-toggle="tooltip" title="{% trans "Hide product if unavailable" %}. {% if f.variation %}{% trans "You can change this option in the variation settings." %}{% else %}{% trans "You can change this option in the product settings." %}{% endif %}"><span class="fa fa-eye-slash"></span></span>
|
<span class="pull-right text-muted unavail-mode-indicator" data-toggle="tooltip" title="{% trans "Hide product if unavailable" %}. {% if f.variation %}{% trans "You can change this option in the variation settings." %}{% else %}{% trans "You can change this option in the product settings." %}{% endif %}"><span class="fa fa-eye-slash"></span></span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="pull-right text-muted unavail-mode-indicator" data-toggle="tooltip" title="{% trans "Show info text if unavailable" %}. {% if f.variation %}{% trans "You can change this option in the variation settings." %}{% else %}{% trans "You can change this option in the product settings." %}{% endif %}"><span class="fa fa-info-circle"></span></span>
|
<span class="pull-right text-muted unavail-mode-indicator" data-toggle="tooltip" title="{% trans "Show product with info on why it’s unavailable" %}. {% if f.variation %}{% trans "You can change this option in the variation settings." %}{% else %}{% trans "You can change this option in the product settings." %}{% endif %}"><span class="fa fa-info-circle"></span></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -491,8 +491,11 @@ class PaymentProviderSettings(EventSettingsViewMixin, EventPermissionRequiredMix
|
|||||||
if self.form.is_valid():
|
if self.form.is_valid():
|
||||||
if self.form.has_changed():
|
if self.form.has_changed():
|
||||||
self.request.event.log_action(
|
self.request.event.log_action(
|
||||||
'pretix.event.payment.provider.' + self.provider.identifier, user=self.request.user, data={
|
'pretix.event.payment.provider', user=self.request.user, data={
|
||||||
k: self.form.cleaned_data.get(k) for k in self.form.changed_data
|
'provider': self.provider.identifier,
|
||||||
|
'new_values': {
|
||||||
|
k: self.form.cleaned_data.get(k) for k in self.form.changed_data
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.form.save()
|
self.form.save()
|
||||||
@@ -888,11 +891,14 @@ class TicketSettings(EventSettingsViewMixin, EventPermissionRequiredMixin, FormV
|
|||||||
provider.form.save()
|
provider.form.save()
|
||||||
if provider.form.has_changed():
|
if provider.form.has_changed():
|
||||||
self.request.event.log_action(
|
self.request.event.log_action(
|
||||||
'pretix.event.tickets.provider.' + provider.identifier, user=self.request.user, data={
|
'pretix.event.tickets.provider', user=self.request.user, data={
|
||||||
k: (provider.form.cleaned_data.get(k).name
|
'provider': provider.identifier,
|
||||||
if isinstance(provider.form.cleaned_data.get(k), File)
|
'new_values': {
|
||||||
else provider.form.cleaned_data.get(k))
|
k: (provider.form.cleaned_data.get(k).name
|
||||||
for k in provider.form.changed_data
|
if isinstance(provider.form.cleaned_data.get(k), File)
|
||||||
|
else provider.form.cleaned_data.get(k))
|
||||||
|
for k in provider.form.changed_data
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
tickets.invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'provider': provider.identifier})
|
tickets.invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'provider': provider.identifier})
|
||||||
@@ -1197,17 +1203,22 @@ class TaxCreate(EventSettingsViewMixin, EventPermissionRequiredMixin, CreateView
|
|||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
self.object = None
|
self.object = None
|
||||||
form = self.get_form()
|
form = self.form
|
||||||
if form.is_valid() and self.formset.is_valid():
|
if form.is_valid() and self.formset.is_valid():
|
||||||
return self.form_valid(form)
|
return self.form_valid(form)
|
||||||
else:
|
else:
|
||||||
return self.form_invalid(form)
|
return self.form_invalid(form)
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def form(self):
|
||||||
|
return self.get_form()
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def formset(self):
|
def formset(self):
|
||||||
return TaxRuleLineFormSet(
|
return TaxRuleLineFormSet(
|
||||||
data=self.request.POST if self.request.method == "POST" else None,
|
data=self.request.POST if self.request.method == "POST" else None,
|
||||||
event=self.request.event,
|
event=self.request.event,
|
||||||
|
parent_form=self.form,
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
@@ -1248,17 +1259,22 @@ class TaxUpdate(EventSettingsViewMixin, EventPermissionRequiredMixin, UpdateView
|
|||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
self.object = self.get_object(self.get_queryset())
|
self.object = self.get_object(self.get_queryset())
|
||||||
form = self.get_form()
|
form = self.form
|
||||||
if form.is_valid() and self.formset.is_valid():
|
if form.is_valid() and self.formset.is_valid():
|
||||||
return self.form_valid(form)
|
return self.form_valid(form)
|
||||||
else:
|
else:
|
||||||
return self.form_invalid(form)
|
return self.form_invalid(form)
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def form(self):
|
||||||
|
return self.get_form()
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def formset(self):
|
def formset(self):
|
||||||
return TaxRuleLineFormSet(
|
return TaxRuleLineFormSet(
|
||||||
data=self.request.POST if self.request.method == "POST" else None,
|
data=self.request.POST if self.request.method == "POST" else None,
|
||||||
event=self.request.event,
|
event=self.request.event,
|
||||||
|
parent_form=self.form,
|
||||||
initial=json.loads(self.object.custom_rules) if self.object.custom_rules else []
|
initial=json.loads(self.object.custom_rules) if self.object.custom_rules else []
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -313,7 +313,7 @@ class EventWizard(SafeSessionWizardView):
|
|||||||
)
|
)
|
||||||
event.set_defaults()
|
event.set_defaults()
|
||||||
|
|
||||||
if basics_data['tax_rate']:
|
if basics_data['tax_rate'] is not None:
|
||||||
if not event.settings.tax_rate_default or event.settings.tax_rate_default.rate != basics_data['tax_rate']:
|
if not event.settings.tax_rate_default or event.settings.tax_rate_default.rate != basics_data['tax_rate']:
|
||||||
event.settings.tax_rate_default = event.tax_rules.create(
|
event.settings.tax_rate_default = event.tax_rules.create(
|
||||||
name=LazyI18nString.from_gettext(gettext('VAT')),
|
name=LazyI18nString.from_gettext(gettext('VAT')),
|
||||||
|
|||||||
@@ -479,7 +479,7 @@ class OrderView(EventPermissionRequiredMixin, DetailView):
|
|||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
ctx = super().get_context_data(**kwargs)
|
ctx = super().get_context_data(**kwargs)
|
||||||
ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
|
ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
|
||||||
self.request.event.settings.invoice_generate in ('admin', 'user', 'paid', 'True')
|
self.request.event.settings.invoice_generate in ('admin', 'user', 'paid', 'user_paid', 'True')
|
||||||
) and self.order.status in (Order.STATUS_PAID, Order.STATUS_PENDING) and (
|
) and self.order.status in (Order.STATUS_PAID, Order.STATUS_PENDING) and (
|
||||||
not self.order.invoices.exists()
|
not self.order.invoices.exists()
|
||||||
or self.order.invoices.filter(is_cancellation=True).count() >= self.order.invoices.filter(is_cancellation=False).count()
|
or self.order.invoices.filter(is_cancellation=True).count() >= self.order.invoices.filter(is_cancellation=False).count()
|
||||||
@@ -1584,7 +1584,7 @@ class OrderInvoiceCreate(OrderView):
|
|||||||
order.status in (Order.STATUS_PAID, Order.STATUS_PENDING)
|
order.status in (Order.STATUS_PAID, Order.STATUS_PENDING)
|
||||||
and order.invoices.filter(is_cancellation=True).count() >= order.invoices.filter(is_cancellation=False).count()
|
and order.invoices.filter(is_cancellation=True).count() >= order.invoices.filter(is_cancellation=False).count()
|
||||||
)
|
)
|
||||||
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'True') or not invoice_qualified(order):
|
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'user_paid', 'True') or not invoice_qualified(order):
|
||||||
messages.error(self.request, _('You cannot generate an invoice for this order.'))
|
messages.error(self.request, _('You cannot generate an invoice for this order.'))
|
||||||
elif has_inv:
|
elif has_inv:
|
||||||
messages.error(self.request, _('An invoice for this order already exists.'))
|
messages.error(self.request, _('An invoice for this order already exists.'))
|
||||||
@@ -2241,6 +2241,8 @@ class OrderContactChange(OrderView):
|
|||||||
changed = True
|
changed = True
|
||||||
self.order.secret = generate_secret()
|
self.order.secret = generate_secret()
|
||||||
for op in self.order.all_positions.all():
|
for op in self.order.all_positions.all():
|
||||||
|
op.web_secret = generate_secret()
|
||||||
|
op.save(update_fields=["web_secret"])
|
||||||
assign_ticket_secret(
|
assign_ticket_secret(
|
||||||
self.request.event, position=op, force_invalidate=True, save=True
|
self.request.event, position=op, force_invalidate=True, save=True
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -62,7 +62,8 @@ class MetricsMiddleware(object):
|
|||||||
t0 = time.perf_counter()
|
t0 = time.perf_counter()
|
||||||
resp = self.get_response(request)
|
resp = self.get_response(request)
|
||||||
tdiff = time.perf_counter() - t0
|
tdiff = time.perf_counter() - t0
|
||||||
pretix_view_duration_seconds.observe(tdiff, status_code=resp.status_code, method=request.method,
|
if url.url_name:
|
||||||
url_name=url.namespace + ':' + url.url_name)
|
pretix_view_duration_seconds.observe(tdiff, status_code=resp.status_code, method=request.method,
|
||||||
|
url_name=url.namespace + ':' + url.url_name)
|
||||||
|
|
||||||
return resp
|
return resp
|
||||||
|
|||||||
@@ -39,6 +39,12 @@ class ThumbnailingImageReader(ImageReader):
|
|||||||
self._data = None
|
self._data = None
|
||||||
return width, height
|
return width, height
|
||||||
|
|
||||||
|
def remove_transparency(self, background_color="WHITE"):
|
||||||
|
if "A" in self._image.mode:
|
||||||
|
new_image = Image.new("RGBA", self._image.size, background_color)
|
||||||
|
new_image.paste(self._image, mask=self._image)
|
||||||
|
self._image = new_image.convert("RGB")
|
||||||
|
|
||||||
def _jpeg_fh(self):
|
def _jpeg_fh(self):
|
||||||
# Bypass a reportlab-internal optimization that falls back to the original
|
# Bypass a reportlab-internal optimization that falls back to the original
|
||||||
# file handle if the file is a JPEG, and therefore does not respect the
|
# file handle if the file is a JPEG, and therefore does not respect the
|
||||||
|
|||||||
+3357
-3062
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -622,40 +622,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -705,20 +705,20 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -747,231 +747,249 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "Image of %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "incl. taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -979,83 +997,83 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
+3655
-3238
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2021-09-15 11:22+0000\n"
|
"PO-Revision-Date: 2021-09-15 11:22+0000\n"
|
||||||
"Last-Translator: Mohamed Tawfiq <mtawfiq@wafyapp.com>\n"
|
"Last-Translator: Mohamed Tawfiq <mtawfiq@wafyapp.com>\n"
|
||||||
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -656,40 +656,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr "تباين اللون سيئ للخلفية البيضاء، الرجاء اختيار لون غامق."
|
msgstr "تباين اللون سيئ للخلفية البيضاء، الرجاء اختيار لون غامق."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "البحث في الاستفسارات"
|
msgstr "البحث في الاستفسارات"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "الكل"
|
msgstr "الكل"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "لا شيء"
|
msgstr "لا شيء"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "المختارة فقط"
|
msgstr "المختارة فقط"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "قم باستخدم اسم مختلف داخليا"
|
msgstr "قم باستخدم اسم مختلف داخليا"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "اضغط لاغلاق الصفحة"
|
msgstr "اضغط لاغلاق الصفحة"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "لم تقم بحفظ التعديلات!"
|
msgstr "لم تقم بحفظ التعديلات!"
|
||||||
|
|
||||||
@@ -753,20 +753,20 @@ msgstr "ستسترد %(currency)%(amount)"
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr "الرجاء إدخال المبلغ الذي يمكن للمنظم الاحتفاظ به."
|
msgstr "الرجاء إدخال المبلغ الذي يمكن للمنظم الاحتفاظ به."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr "الرجاء إدخال عدد لأحد أنواع التذاكر."
|
msgstr "الرجاء إدخال عدد لأحد أنواع التذاكر."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "مطلوب"
|
msgstr "مطلوب"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr "المنطقة الزمنية:"
|
msgstr "المنطقة الزمنية:"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr "التوقيت المحلي:"
|
msgstr "التوقيت المحلي:"
|
||||||
|
|
||||||
@@ -795,20 +795,32 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Original price: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "New price: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Selected only"
|
#| msgid "Selected only"
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr "المختارة فقط"
|
msgstr "المختارة فقط"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
#| msgid "Selected only"
|
#| msgid "Selected only"
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "Select %s"
|
||||||
msgstr "المختارة فقط"
|
msgstr "المختارة فقط"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -816,68 +828,74 @@ msgctxt "widget"
|
|||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "أنظر إلى الاختلافات"
|
msgstr "أنظر إلى الاختلافات"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "تم البيع بالكامل"
|
msgstr "تم البيع بالكامل"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "اشتري"
|
msgstr "اشتري"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "سجل"
|
msgstr "سجل"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "محجوز"
|
msgstr "محجوز"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "مجاني"
|
msgstr "مجاني"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr "من %(currency) s %(price)s"
|
msgstr "من %(currency) s %(price)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr "يشمل %(rate)s% %(taxname)s"
|
msgstr "يشمل %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr "بالإضافة إلى %(rate)s% %(taxname)s"
|
msgstr "بالإضافة إلى %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "شامل الضريبة"
|
msgstr "شامل الضريبة"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr "بالإضافة إلى الضرائب"
|
msgstr "بالإضافة إلى الضرائب"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "متوفر حاليا: %s"
|
msgstr "متوفر حاليا: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "متوفرة مع القسيمة فقط"
|
msgstr "متوفرة مع القسيمة فقط"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -885,12 +903,12 @@ msgctxt "widget"
|
|||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "متوفر حاليا: %s"
|
msgstr "متوفر حاليا: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -898,30 +916,30 @@ msgctxt "widget"
|
|||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "متوفر حاليا: %s"
|
msgstr "متوفر حاليا: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr "الحد الأدنى للطلب: %s"
|
msgstr "الحد الأدنى للطلب: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "إغلاق متجر التذاكر"
|
msgstr "إغلاق متجر التذاكر"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "لا يمكن تحميل متجر التذاكر."
|
msgstr "لا يمكن تحميل متجر التذاكر."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "Close ticket shop"
|
#| msgid "Close ticket shop"
|
||||||
@@ -929,24 +947,24 @@ msgctxt "widget"
|
|||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "إغلاق متجر التذاكر"
|
msgstr "إغلاق متجر التذاكر"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr "لا يمكن إنشاء سلة التسوق. الرجاء المحاولة مرة أخرى في وقت لاحق"
|
msgstr "لا يمكن إنشاء سلة التسوق. الرجاء المحاولة مرة أخرى في وقت لاحق"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "قائمة الإنتظار"
|
msgstr "قائمة الإنتظار"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
@@ -955,37 +973,37 @@ msgstr ""
|
|||||||
"لديك الآن سلة تسوق مفعلة لهذا الحدث. إذا قمت باختيار منتجات أخرى سيتم "
|
"لديك الآن سلة تسوق مفعلة لهذا الحدث. إذا قمت باختيار منتجات أخرى سيتم "
|
||||||
"إضافتها إلى سلة التسوق الموجودة حالياً."
|
"إضافتها إلى سلة التسوق الموجودة حالياً."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr "استئناف الدفع"
|
msgstr "استئناف الدفع"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "استبدال قسيمة"
|
msgstr "استبدال قسيمة"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "استبدال"
|
msgstr "استبدال"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "رمز القسيمة"
|
msgstr "رمز القسيمة"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "إغلاق"
|
msgstr "إغلاق"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "استمرار"
|
msgstr "استمرار"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -993,7 +1011,7 @@ msgctxt "widget"
|
|||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "أنظر إلى الاختلافات"
|
msgstr "أنظر إلى الاختلافات"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -1001,47 +1019,47 @@ msgctxt "widget"
|
|||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "أنظر إلى الاختلافات"
|
msgstr "أنظر إلى الاختلافات"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "اختر فعالية أخرى"
|
msgstr "اختر فعالية أخرى"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "اختر تاريخا آخر"
|
msgstr "اختر تاريخا آخر"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "العودة"
|
msgstr "العودة"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "الشهر القادم"
|
msgstr "الشهر القادم"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "الشهر السابق"
|
msgstr "الشهر السابق"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "الأسبوع القادم"
|
msgstr "الأسبوع القادم"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "الأسبوع السابق"
|
msgstr "الأسبوع السابق"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr "خيارات المقاعد"
|
msgstr "خيارات المقاعد"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1049,86 +1067,86 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Load more"
|
#| msgid "Load more"
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr "تحميل المزيد"
|
msgstr "تحميل المزيد"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "الإثنين"
|
msgstr "الإثنين"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "الثلاثاء"
|
msgstr "الثلاثاء"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "الأربعاء"
|
msgstr "الأربعاء"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "الخميس"
|
msgstr "الخميس"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "الجمعة"
|
msgstr "الجمعة"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "السبت"
|
msgstr "السبت"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "الأحد"
|
msgstr "الأحد"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "يناير"
|
msgstr "يناير"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "فبراير"
|
msgstr "فبراير"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "مارس"
|
msgstr "مارس"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "أبريل"
|
msgstr "أبريل"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "مايو"
|
msgstr "مايو"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "يونيو"
|
msgstr "يونيو"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "يوليو"
|
msgstr "يوليو"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "أغسطس"
|
msgstr "أغسطس"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "سبتمبر"
|
msgstr "سبتمبر"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "أكتوبر"
|
msgstr "أكتوبر"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "نوفمبر"
|
msgstr "نوفمبر"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "ديسمبر"
|
msgstr "ديسمبر"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+3571
-3183
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2020-12-19 07:00+0000\n"
|
"PO-Revision-Date: 2020-12-19 07:00+0000\n"
|
||||||
"Last-Translator: albert <albert.serra.monner@gmail.com>\n"
|
"Last-Translator: albert <albert.serra.monner@gmail.com>\n"
|
||||||
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix-"
|
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||||
@@ -623,40 +623,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -710,22 +710,22 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Cart expired"
|
#| msgid "Cart expired"
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "Cistella expirada"
|
msgstr "Cistella expirada"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -754,231 +754,249 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "Image of %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "incl. taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -986,83 +1004,83 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
+3490
-3076
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2023-09-15 06:00+0000\n"
|
"PO-Revision-Date: 2023-09-15 06:00+0000\n"
|
||||||
"Last-Translator: Michael <michael.happl@gmx.at>\n"
|
"Last-Translator: Michael <michael.happl@gmx.at>\n"
|
||||||
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -650,40 +650,40 @@ msgstr ""
|
|||||||
"Tato barva je pro text na bílém pozadí špatně kontrastní, zvolte prosím "
|
"Tato barva je pro text na bílém pozadí špatně kontrastní, zvolte prosím "
|
||||||
"tmavší odstín."
|
"tmavší odstín."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Hledaný výraz"
|
msgstr "Hledaný výraz"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Všechny"
|
msgstr "Všechny"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Žádný"
|
msgstr "Žádný"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Pouze vybrané"
|
msgstr "Pouze vybrané"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Interně používat jiný název"
|
msgstr "Interně používat jiný název"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Kliknutím zavřete"
|
msgstr "Kliknutím zavřete"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Máte neuložené změny!"
|
msgstr "Máte neuložené změny!"
|
||||||
|
|
||||||
@@ -740,20 +740,20 @@ msgstr "Dostanete %(currency)s %(amount)s zpět"
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr "Zadejte částku, kterou si organizátor může ponechat."
|
msgstr "Zadejte částku, kterou si organizátor může ponechat."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr "Zadejte prosím množství pro jeden z typů vstupenek."
|
msgstr "Zadejte prosím množství pro jeden z typů vstupenek."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "povinný"
|
msgstr "povinný"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr "Časové pásmo:"
|
msgstr "Časové pásmo:"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr "Místní čas:"
|
msgstr "Místní čas:"
|
||||||
|
|
||||||
@@ -784,20 +784,32 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Original price: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "New price: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Selected only"
|
#| msgid "Selected only"
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr "Pouze vybrané"
|
msgstr "Pouze vybrané"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
#| msgid "Selected only"
|
#| msgid "Selected only"
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "Select %s"
|
||||||
msgstr "Pouze vybrané"
|
msgstr "Pouze vybrané"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -805,80 +817,86 @@ msgctxt "widget"
|
|||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "Zobrazit možnosti"
|
msgstr "Zobrazit možnosti"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "Vyprodáno"
|
msgstr "Vyprodáno"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "Koupit"
|
msgstr "Koupit"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Zaregistrovat"
|
msgstr "Zaregistrovat"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "Rezervováno"
|
msgstr "Rezervováno"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "ZDARMA"
|
msgstr "ZDARMA"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr "od %(currency)s %(price)s"
|
msgstr "od %(currency)s %(price)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr "včetně %(rate)s% %(taxname)s"
|
msgstr "včetně %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr "plus %(rate)s% %(taxname)s"
|
msgstr "plus %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "včetně daní"
|
msgstr "včetně daní"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr "plus daně"
|
msgstr "plus daně"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "aktuálně k dispozici: %s"
|
msgstr "aktuálně k dispozici: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "K dispozici pouze s poukazem"
|
msgstr "K dispozici pouze s poukazem"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Payment method unavailable"
|
#| msgid "Payment method unavailable"
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "Způsob platby není k dispozici"
|
msgstr "Způsob platby není k dispozici"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -886,23 +904,23 @@ msgctxt "widget"
|
|||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "aktuálně k dispozici: %s"
|
msgstr "aktuálně k dispozici: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr "minimální množství pro objednávku: %s"
|
msgstr "minimální množství pro objednávku: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "Zavřít obchod"
|
msgstr "Zavřít obchod"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "Obchod vstupenek nemohl být načten."
|
msgstr "Obchod vstupenek nemohl být načten."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
@@ -911,17 +929,17 @@ msgstr ""
|
|||||||
"V současné době je v tomto obchodě s vstupenkami mnoho uživatelů. Otevřete "
|
"V současné době je v tomto obchodě s vstupenkami mnoho uživatelů. Otevřete "
|
||||||
"prosím obchod v nové kartě."
|
"prosím obchod v nové kartě."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "Obchod vstupenek otevřit"
|
msgstr "Obchod vstupenek otevřit"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr "Nákupní košík se nepodařilo vytvořit. Zkuste to prosím znovu"
|
msgstr "Nákupní košík se nepodařilo vytvořit. Zkuste to prosím znovu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
@@ -931,12 +949,12 @@ msgstr ""
|
|||||||
"mnoho uživatelů. Klikněte prosím na \"Pokračovat\" a zkuste to znovu na nové "
|
"mnoho uživatelů. Klikněte prosím na \"Pokračovat\" a zkuste to znovu na nové "
|
||||||
"kartě."
|
"kartě."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "Čekací listina"
|
msgstr "Čekací listina"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
@@ -945,37 +963,37 @@ msgstr ""
|
|||||||
"V současné době máte aktivní košík pro tuto událost. Pokud vyberete další "
|
"V současné době máte aktivní košík pro tuto událost. Pokud vyberete další "
|
||||||
"produkty, budou přidány do vašeho košíku."
|
"produkty, budou přidány do vašeho košíku."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr "Obnovit checkout"
|
msgstr "Obnovit checkout"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "Uplatnit poukázku"
|
msgstr "Uplatnit poukázku"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "Uplatnit"
|
msgstr "Uplatnit"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "Kód poukázky"
|
msgstr "Kód poukázky"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Zavřít"
|
msgstr "Zavřít"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Pokračovat"
|
msgstr "Pokračovat"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -983,7 +1001,7 @@ msgctxt "widget"
|
|||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "Zobrazit možnosti"
|
msgstr "Zobrazit možnosti"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -991,47 +1009,47 @@ msgctxt "widget"
|
|||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "Zobrazit možnosti"
|
msgstr "Zobrazit možnosti"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "Vybrat jinou událost"
|
msgstr "Vybrat jinou událost"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "Vybrat jiný datum"
|
msgstr "Vybrat jiný datum"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zpět"
|
msgstr "Zpět"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Následující měsíc"
|
msgstr "Následující měsíc"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Předchozí měsíc"
|
msgstr "Předchozí měsíc"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Příští týden"
|
msgstr "Příští týden"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "Předchozí týden"
|
msgstr "Předchozí týden"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr "Otevřete výběr sedadla"
|
msgstr "Otevřete výběr sedadla"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1042,84 +1060,84 @@ msgstr ""
|
|||||||
"Pokud chcete, můžete se přidat na čekací listinu. Poté vás budeme "
|
"Pokud chcete, můžete se přidat na čekací listinu. Poté vás budeme "
|
||||||
"informovat, pokud budou místa opět volná."
|
"informovat, pokud budou místa opět volná."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr "Načíst více"
|
msgstr "Načíst více"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "Po"
|
msgstr "Po"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "Út"
|
msgstr "Út"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "St"
|
msgstr "St"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "Čt"
|
msgstr "Čt"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "Pá"
|
msgstr "Pá"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "So"
|
msgstr "So"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "Ne"
|
msgstr "Ne"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "Leden"
|
msgstr "Leden"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "Únor"
|
msgstr "Únor"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "Březen"
|
msgstr "Březen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "Duben"
|
msgstr "Duben"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "Květen"
|
msgstr "Květen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "červen"
|
msgstr "červen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "Červenec"
|
msgstr "Červenec"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "Srpen"
|
msgstr "Srpen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "Září"
|
msgstr "Září"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "Říjen"
|
msgstr "Říjen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "Listopad"
|
msgstr "Listopad"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "Prosinec"
|
msgstr "Prosinec"
|
||||||
|
|
||||||
|
|||||||
+3382
-3063
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -623,40 +623,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -706,20 +706,20 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -748,231 +748,249 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "Image of %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "incl. taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -980,83 +998,83 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
+3532
-3139
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2024-07-10 15:00+0000\n"
|
"PO-Revision-Date: 2024-07-10 15:00+0000\n"
|
||||||
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
|
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
|
||||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -670,40 +670,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Ingen"
|
msgstr "Ingen"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Klik for at lukke"
|
msgstr "Klik for at lukke"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Du har ændringer, der ikke er gemt!"
|
msgstr "Du har ændringer, der ikke er gemt!"
|
||||||
|
|
||||||
@@ -763,22 +763,22 @@ msgstr "fra %(currency)s %(price)s"
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Cart expired"
|
#| msgid "Cart expired"
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "Kurv udløbet"
|
msgstr "Kurv udløbet"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr "Tidszone:"
|
msgstr "Tidszone:"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr "Din lokaltid:"
|
msgstr "Din lokaltid:"
|
||||||
|
|
||||||
@@ -809,17 +809,29 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -827,80 +839,86 @@ msgctxt "widget"
|
|||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "Vis varianter"
|
msgstr "Vis varianter"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "Udsolgt"
|
msgstr "Udsolgt"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "Læg i kurv"
|
msgstr "Læg i kurv"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Book nu"
|
msgstr "Book nu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "Reserveret"
|
msgstr "Reserveret"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "GRATIS"
|
msgstr "GRATIS"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr "fra %(currency)s %(price)s"
|
msgstr "fra %(currency)s %(price)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr "inkl. %(rate)s% %(taxname)s"
|
msgstr "inkl. %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr "plus %(rate)s% %(taxname)s"
|
msgstr "plus %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "inkl. moms"
|
msgstr "inkl. moms"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr "plus moms"
|
msgstr "plus moms"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "tilgængelig: %s"
|
msgstr "tilgængelig: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "Kun tilgængelig med en rabatkode"
|
msgstr "Kun tilgængelig med en rabatkode"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Payment method unavailable"
|
#| msgid "Payment method unavailable"
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "Betalingsmetode er ikke tilgængelig"
|
msgstr "Betalingsmetode er ikke tilgængelig"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -908,30 +926,30 @@ msgctxt "widget"
|
|||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "tilgængelig: %s"
|
msgstr "tilgængelig: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr "minimumsantal: %s"
|
msgstr "minimumsantal: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "Luk billetbutik"
|
msgstr "Luk billetbutik"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "Billetbutikken kunne ikke hentes."
|
msgstr "Billetbutikken kunne ikke hentes."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "Close ticket shop"
|
#| msgid "Close ticket shop"
|
||||||
@@ -939,24 +957,24 @@ msgctxt "widget"
|
|||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "Luk billetbutik"
|
msgstr "Luk billetbutik"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr "Kurven kunne ikke oprettes. Prøv igen senere"
|
msgstr "Kurven kunne ikke oprettes. Prøv igen senere"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "Venteliste"
|
msgstr "Venteliste"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
@@ -965,37 +983,37 @@ msgstr ""
|
|||||||
"Du har allerede en aktiv booking i gang for dette arrangement. Hvis du "
|
"Du har allerede en aktiv booking i gang for dette arrangement. Hvis du "
|
||||||
"vælger flere produkter, så vil de blive tilføjet din eksisterende booking."
|
"vælger flere produkter, så vil de blive tilføjet din eksisterende booking."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr "Fortsæt booking"
|
msgstr "Fortsæt booking"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "Indløs rabatkode"
|
msgstr "Indløs rabatkode"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "Indløs"
|
msgstr "Indløs"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "Rabatkode"
|
msgstr "Rabatkode"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Luk"
|
msgstr "Luk"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Fortsæt"
|
msgstr "Fortsæt"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -1003,7 +1021,7 @@ msgctxt "widget"
|
|||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "Vis varianter"
|
msgstr "Vis varianter"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -1011,37 +1029,37 @@ msgctxt "widget"
|
|||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "Vis varianter"
|
msgstr "Vis varianter"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "Vælg et andet arrangement"
|
msgstr "Vælg et andet arrangement"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "Vælg en anden dato"
|
msgstr "Vælg en anden dato"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tilbage"
|
msgstr "Tilbage"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Næste måned"
|
msgstr "Næste måned"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Forrige måned"
|
msgstr "Forrige måned"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Næste uge"
|
msgstr "Næste uge"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "Previous month"
|
#| msgid "Previous month"
|
||||||
@@ -1049,12 +1067,12 @@ msgctxt "widget"
|
|||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "Forrige måned"
|
msgstr "Forrige måned"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr "Åbn sædevalg"
|
msgstr "Åbn sædevalg"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1062,84 +1080,84 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr "Hent flere"
|
msgstr "Hent flere"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "Man"
|
msgstr "Man"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "Tirs"
|
msgstr "Tirs"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "Ons"
|
msgstr "Ons"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "Tors"
|
msgstr "Tors"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "Fre"
|
msgstr "Fre"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "Lør"
|
msgstr "Lør"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "Søn"
|
msgstr "Søn"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "Januar"
|
msgstr "Januar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "Februar"
|
msgstr "Februar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "Marts"
|
msgstr "Marts"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "April"
|
msgstr "April"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "Maj"
|
msgstr "Maj"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "Juni"
|
msgstr "Juni"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "Juli"
|
msgstr "Juli"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "August"
|
msgstr "August"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "September"
|
msgstr "September"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "Oktober"
|
msgstr "Oktober"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "November"
|
msgstr "November"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "December"
|
msgstr "December"
|
||||||
|
|
||||||
|
|||||||
+3505
-3121
File diff suppressed because it is too large
Load Diff
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2024-09-10 07:17+0000\n"
|
"PO-Revision-Date: 2025-01-22 16:00+0000\n"
|
||||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
"de/>\n"
|
"de/>\n"
|
||||||
@@ -17,7 +17,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.7\n"
|
"X-Generator: Weblate 5.9.2\n"
|
||||||
|
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||||
@@ -644,40 +644,40 @@ msgstr ""
|
|||||||
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
||||||
"Hintergrund. Bitte wählen Sie eine dunklere Farbe."
|
"Hintergrund. Bitte wählen Sie eine dunklere Farbe."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Suchbegriff"
|
msgstr "Suchbegriff"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Keine"
|
msgstr "Keine"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Nur ausgewählte"
|
msgstr "Nur ausgewählte"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr "Geben Sie eine Seitenzahl zwischen 1 und %(max)s ein."
|
msgstr "Geben Sie eine Seitenzahl zwischen 1 und %(max)s ein."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr "Ungültige Seitenzahl."
|
msgstr "Ungültige Seitenzahl."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Intern einen anderen Namen verwenden"
|
msgstr "Intern einen anderen Namen verwenden"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Klicken zum Schließen"
|
msgstr "Klicken zum Schließen"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Sie haben ungespeicherte Änderungen!"
|
msgstr "Sie haben ungespeicherte Änderungen!"
|
||||||
|
|
||||||
@@ -732,20 +732,20 @@ msgstr "Sie erhalten %(currency)s %(amount)s zurück"
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr "Bitte geben Sie den Betrag ein, den der Veranstalter einbehalten darf."
|
msgstr "Bitte geben Sie den Betrag ein, den der Veranstalter einbehalten darf."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr "Bitte tragen Sie eine Menge für eines der Produkte ein."
|
msgstr "Bitte tragen Sie eine Menge für eines der Produkte ein."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "verpflichtend"
|
msgstr "verpflichtend"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr "Zeitzone:"
|
msgstr "Zeitzone:"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr "Deine lokale Zeit:"
|
msgstr "Deine lokale Zeit:"
|
||||||
|
|
||||||
@@ -774,115 +774,133 @@ msgid "Price"
|
|||||||
msgstr "Preis"
|
msgstr "Preis"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Original price: %s"
|
||||||
|
msgstr "Originalpreis: %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "New price: %s"
|
||||||
|
msgstr "Neuer Preis: %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr "Auswählen"
|
msgstr "Auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "Select %s"
|
||||||
msgstr "%s auswählen"
|
msgstr "%s auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "Variante %s auswählen"
|
msgstr "Variante %s auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "Ausverkauft"
|
msgstr "Ausverkauft"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "In den Warenkorb"
|
msgstr "In den Warenkorb"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "Reserviert"
|
msgstr "Reserviert"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "GRATIS"
|
msgstr "GRATIS"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr "ab %(currency)s %(price)s"
|
msgstr "ab %(currency)s %(price)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr "Bild von %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr "inkl. %(rate)s% %(taxname)s"
|
msgstr "inkl. %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr "zzgl. %(rate)s% %(taxname)s"
|
msgstr "zzgl. %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "inkl. Steuern"
|
msgstr "inkl. Steuern"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr "zzgl. Steuern"
|
msgstr "zzgl. Steuern"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "aktuell verfügbar: %s"
|
msgstr "aktuell verfügbar: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "Nur mit Gutschein verfügbar"
|
msgstr "Nur mit Gutschein verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "Noch nicht verfügbar"
|
msgstr "Noch nicht verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr "Nicht mehr verfügbar"
|
msgstr "Nicht mehr verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "Aktuell nicht verfügbar"
|
msgstr "Aktuell nicht verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr "minimale Bestellmenge: %s"
|
msgstr "minimale Bestellmenge: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "Ticketshop schließen"
|
msgstr "Ticketshop schließen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "Der Ticketshop konnte nicht geladen werden."
|
msgstr "Der Ticketshop konnte nicht geladen werden."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
@@ -891,17 +909,17 @@ msgstr ""
|
|||||||
"Es sind derzeit sehr viele Benutzer in diesem Ticketshop. Bitte öffnen Sie "
|
"Es sind derzeit sehr viele Benutzer in diesem Ticketshop. Bitte öffnen Sie "
|
||||||
"diesen Ticketshop in einem neuen Tab um fortzufahren."
|
"diesen Ticketshop in einem neuen Tab um fortzufahren."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "Ticketshop öffnen"
|
msgstr "Ticketshop öffnen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr "Der Warenkorb konnte nicht erstellt werden. Bitte erneut versuchen"
|
msgstr "Der Warenkorb konnte nicht erstellt werden. Bitte erneut versuchen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
@@ -911,12 +929,12 @@ msgstr ""
|
|||||||
"diesem Ticketshop sind. Bitte klicken Sie \"Weiter\" um es in einem neuen "
|
"diesem Ticketshop sind. Bitte klicken Sie \"Weiter\" um es in einem neuen "
|
||||||
"Tab erneut zu versuchen."
|
"Tab erneut zu versuchen."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "Warteliste"
|
msgstr "Warteliste"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
@@ -925,87 +943,87 @@ msgstr ""
|
|||||||
"Sie haben einen aktiven Warenkorb für diese Veranstaltung. Wenn Sie mehr "
|
"Sie haben einen aktiven Warenkorb für diese Veranstaltung. Wenn Sie mehr "
|
||||||
"Produkte auswählen, werden diese zu Ihrem Warenkorb hinzugefügt."
|
"Produkte auswählen, werden diese zu Ihrem Warenkorb hinzugefügt."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr "Kauf fortsetzen"
|
msgstr "Kauf fortsetzen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "Gutschein einlösen"
|
msgstr "Gutschein einlösen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "Einlösen"
|
msgstr "Einlösen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "Gutscheincode"
|
msgstr "Gutscheincode"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Schließen"
|
msgstr "Schließen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Fortfahren"
|
msgstr "Fortfahren"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "Varianten zeigen"
|
msgstr "Varianten zeigen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "Varianten verstecken"
|
msgstr "Varianten verstecken"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "Andere Veranstaltung auswählen"
|
msgstr "Andere Veranstaltung auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "Anderen Termin auswählen"
|
msgstr "Anderen Termin auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Nächster Monat"
|
msgstr "Nächster Monat"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Vorheriger Monat"
|
msgstr "Vorheriger Monat"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Nächste Woche"
|
msgstr "Nächste Woche"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "Vorherige Woche"
|
msgstr "Vorherige Woche"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr "Saalplan öffnen"
|
msgstr "Saalplan öffnen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1016,84 +1034,84 @@ msgstr ""
|
|||||||
"möchten, können Sie sich in die Warteliste eintragen. Wir benachrichtigen "
|
"möchten, können Sie sich in die Warteliste eintragen. Wir benachrichtigen "
|
||||||
"Sie dann, wenn die gewünschten Plätze wieder verfügbar sind."
|
"Sie dann, wenn die gewünschten Plätze wieder verfügbar sind."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr "Mehr laden"
|
msgstr "Mehr laden"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "Mo"
|
msgstr "Mo"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "Di"
|
msgstr "Di"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "Mi"
|
msgstr "Mi"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "Do"
|
msgstr "Do"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "Fr"
|
msgstr "Fr"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "Sa"
|
msgstr "Sa"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "So"
|
msgstr "So"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "Januar"
|
msgstr "Januar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "Februar"
|
msgstr "Februar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "März"
|
msgstr "März"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "April"
|
msgstr "April"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "Mai"
|
msgstr "Mai"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "Juni"
|
msgstr "Juni"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "Juli"
|
msgstr "Juli"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "August"
|
msgstr "August"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "September"
|
msgstr "September"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "Oktober"
|
msgstr "Oktober"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "November"
|
msgstr "November"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "Dezember"
|
msgstr "Dezember"
|
||||||
|
|
||||||
|
|||||||
@@ -66,10 +66,12 @@ BSD
|
|||||||
bspw
|
bspw
|
||||||
Bokmål
|
Bokmål
|
||||||
Boleto
|
Boleto
|
||||||
|
Buchhaltungs
|
||||||
Bundles
|
Bundles
|
||||||
Butterfly
|
Butterfly
|
||||||
bzw
|
bzw
|
||||||
ca
|
ca
|
||||||
|
Ceuta
|
||||||
Cc
|
Cc
|
||||||
chardet
|
chardet
|
||||||
charge
|
charge
|
||||||
@@ -158,9 +160,12 @@ Inc
|
|||||||
inkl
|
inkl
|
||||||
innenname
|
innenname
|
||||||
innennamen
|
innennamen
|
||||||
|
innergemeinschaftliche
|
||||||
|
Innergemeinschaftlicher
|
||||||
Input
|
Input
|
||||||
Installations
|
Installations
|
||||||
integrationen
|
integrationen
|
||||||
|
intra
|
||||||
INV
|
INV
|
||||||
invalidieren
|
invalidieren
|
||||||
invalidiert
|
invalidiert
|
||||||
@@ -177,10 +182,12 @@ Kombitickets
|
|||||||
Kompatibilitätsmodus
|
Kompatibilitätsmodus
|
||||||
Konfigurations
|
Konfigurations
|
||||||
Kosovo
|
Kosovo
|
||||||
|
land
|
||||||
landesspezifische
|
landesspezifische
|
||||||
Lead
|
Lead
|
||||||
Leaflet
|
Leaflet
|
||||||
Linktext
|
Linktext
|
||||||
|
lit
|
||||||
Logindaten
|
Logindaten
|
||||||
Lösch
|
Lösch
|
||||||
loszulegen
|
loszulegen
|
||||||
@@ -188,6 +195,7 @@ Ltd
|
|||||||
max
|
max
|
||||||
MariaDB
|
MariaDB
|
||||||
MapQuest
|
MapQuest
|
||||||
|
Melilla
|
||||||
Mercado
|
Mercado
|
||||||
Merchandise
|
Merchandise
|
||||||
Meta
|
Meta
|
||||||
@@ -269,6 +277,7 @@ rückabgewickelt
|
|||||||
Rundungsdifferenzen
|
Rundungsdifferenzen
|
||||||
Sa
|
Sa
|
||||||
Saalplan
|
Saalplan
|
||||||
|
Sammlungsstücken
|
||||||
SAQ
|
SAQ
|
||||||
SCA
|
SCA
|
||||||
Scan
|
Scan
|
||||||
@@ -357,6 +366,7 @@ USt
|
|||||||
Überzahlten
|
Überzahlten
|
||||||
Validierung
|
Validierung
|
||||||
Venmo
|
Venmo
|
||||||
|
Veranstalterdomain
|
||||||
Veranstaltereinstellungen
|
Veranstaltereinstellungen
|
||||||
Veranstalterkonten
|
Veranstalterkonten
|
||||||
Veranstalterkonto
|
Veranstalterkonto
|
||||||
@@ -367,6 +377,7 @@ Veranstalterseite
|
|||||||
Veranstalterübersicht
|
Veranstalterübersicht
|
||||||
veranstalterweiten
|
veranstalterweiten
|
||||||
Veranstaltungs
|
Veranstaltungs
|
||||||
|
Veranstalterdomain
|
||||||
veranstaltungsweiten
|
veranstaltungsweiten
|
||||||
Verfügbarkeitsberechnung
|
Verfügbarkeitsberechnung
|
||||||
Verfügbarkeitsstatus
|
Verfügbarkeitsstatus
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2024-09-10 07:17+0000\n"
|
"PO-Revision-Date: 2025-01-22 16:00+0000\n"
|
||||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||||
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
|
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
|
||||||
"pretix/pretix-js/de_Informal/>\n"
|
"pretix/pretix-js/de_Informal/>\n"
|
||||||
@@ -17,7 +17,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.7\n"
|
"X-Generator: Weblate 5.9.2\n"
|
||||||
|
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||||
@@ -643,40 +643,40 @@ msgstr ""
|
|||||||
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
||||||
"Hintergrund. Bitte wähle eine dunklere Farbe."
|
"Hintergrund. Bitte wähle eine dunklere Farbe."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Suchbegriff"
|
msgstr "Suchbegriff"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Keine"
|
msgstr "Keine"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Nur ausgewählte"
|
msgstr "Nur ausgewählte"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr "Gib eine Seitenzahl zwischen 1 und %(max)s ein."
|
msgstr "Gib eine Seitenzahl zwischen 1 und %(max)s ein."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr "Ungültige Seitenzahl."
|
msgstr "Ungültige Seitenzahl."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Intern einen anderen Namen verwenden"
|
msgstr "Intern einen anderen Namen verwenden"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Klicken zum Schließen"
|
msgstr "Klicken zum Schließen"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Du hast ungespeicherte Änderungen!"
|
msgstr "Du hast ungespeicherte Änderungen!"
|
||||||
|
|
||||||
@@ -731,20 +731,20 @@ msgstr "Du erhältst %(currency)s %(amount)s zurück"
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr "Bitte gib den Betrag ein, den der Veranstalter einbehalten darf."
|
msgstr "Bitte gib den Betrag ein, den der Veranstalter einbehalten darf."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr "Bitte trage eine Menge für eines der Produkte ein."
|
msgstr "Bitte trage eine Menge für eines der Produkte ein."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "verpflichtend"
|
msgstr "verpflichtend"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr "Zeitzone:"
|
msgstr "Zeitzone:"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr "Deine lokale Zeit:"
|
msgstr "Deine lokale Zeit:"
|
||||||
|
|
||||||
@@ -773,115 +773,133 @@ msgid "Price"
|
|||||||
msgstr "Preis"
|
msgstr "Preis"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Original price: %s"
|
||||||
|
msgstr "Originalpreis: %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "New price: %s"
|
||||||
|
msgstr "Neuer Preis: %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr "Auswählen"
|
msgstr "Auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "Select %s"
|
||||||
msgstr "%s auswählen"
|
msgstr "%s auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "Variante %s auswählen"
|
msgstr "Variante %s auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "Ausverkauft"
|
msgstr "Ausverkauft"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "In den Warenkorb"
|
msgstr "In den Warenkorb"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "Reserviert"
|
msgstr "Reserviert"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "GRATIS"
|
msgstr "GRATIS"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr "ab %(currency)s %(price)s"
|
msgstr "ab %(currency)s %(price)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr "Bild von %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr "inkl. %(rate)s% %(taxname)s"
|
msgstr "inkl. %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr "zzgl. %(rate)s% %(taxname)s"
|
msgstr "zzgl. %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "inkl. Steuern"
|
msgstr "inkl. Steuern"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr "zzgl. Steuern"
|
msgstr "zzgl. Steuern"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "aktuell verfügbar: %s"
|
msgstr "aktuell verfügbar: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "Nur mit Gutschein verfügbar"
|
msgstr "Nur mit Gutschein verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "Noch nicht verfügbar"
|
msgstr "Noch nicht verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr "Nicht mehr verfügbar"
|
msgstr "Nicht mehr verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "Aktuell nicht verfügbar"
|
msgstr "Aktuell nicht verfügbar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr "minimale Bestellmenge: %s"
|
msgstr "minimale Bestellmenge: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "Ticketshop schließen"
|
msgstr "Ticketshop schließen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "Der Ticketshop konnte nicht geladen werden."
|
msgstr "Der Ticketshop konnte nicht geladen werden."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
@@ -890,17 +908,17 @@ msgstr ""
|
|||||||
"Es sind derzeit sehr viele Benutzer in diesem Ticketshop. Bitte öffne diesen "
|
"Es sind derzeit sehr viele Benutzer in diesem Ticketshop. Bitte öffne diesen "
|
||||||
"Ticketshop in einem neuen Tab um fortzufahren."
|
"Ticketshop in einem neuen Tab um fortzufahren."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "Ticketshop öffnen"
|
msgstr "Ticketshop öffnen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr "Der Warenkorb konnte nicht erstellt werden. Bitte erneut versuchen."
|
msgstr "Der Warenkorb konnte nicht erstellt werden. Bitte erneut versuchen."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
@@ -910,12 +928,12 @@ msgstr ""
|
|||||||
"diesem Ticketshop sind. Bitte klicke \"Weiter\" um es in einem neuen Tab "
|
"diesem Ticketshop sind. Bitte klicke \"Weiter\" um es in einem neuen Tab "
|
||||||
"erneut zu versuchen."
|
"erneut zu versuchen."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "Warteliste"
|
msgstr "Warteliste"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
@@ -924,87 +942,87 @@ msgstr ""
|
|||||||
"Du hast einen aktiven Warenkorb für diese Veranstaltung. Wenn du mehr "
|
"Du hast einen aktiven Warenkorb für diese Veranstaltung. Wenn du mehr "
|
||||||
"Produkte auswählst, werden diese zu deinem Warenkorb hinzugefügt."
|
"Produkte auswählst, werden diese zu deinem Warenkorb hinzugefügt."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr "Kauf fortsetzen"
|
msgstr "Kauf fortsetzen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "Gutschein einlösen"
|
msgstr "Gutschein einlösen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "Einlösen"
|
msgstr "Einlösen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "Gutscheincode"
|
msgstr "Gutscheincode"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Schließen"
|
msgstr "Schließen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Fortfahren"
|
msgstr "Fortfahren"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "Varianten zeigen"
|
msgstr "Varianten zeigen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "Varianten verstecken"
|
msgstr "Varianten verstecken"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "Andere Veranstaltung auswählen"
|
msgstr "Andere Veranstaltung auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "Anderen Termin auswählen"
|
msgstr "Anderen Termin auswählen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Nächster Monat"
|
msgstr "Nächster Monat"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Vorheriger Monat"
|
msgstr "Vorheriger Monat"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Nächste Woche"
|
msgstr "Nächste Woche"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "Vorherige Woche"
|
msgstr "Vorherige Woche"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr "Saalplan öffnen"
|
msgstr "Saalplan öffnen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1015,84 +1033,84 @@ msgstr ""
|
|||||||
"möchtest, kannst du dich in die Warteliste eintragen. Wir benachrichtigen "
|
"möchtest, kannst du dich in die Warteliste eintragen. Wir benachrichtigen "
|
||||||
"dich dann, wenn die gewünschten Plätze wieder verfügbar sind."
|
"dich dann, wenn die gewünschten Plätze wieder verfügbar sind."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr "Mehr laden"
|
msgstr "Mehr laden"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "Mo"
|
msgstr "Mo"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "Di"
|
msgstr "Di"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "Mi"
|
msgstr "Mi"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "Do"
|
msgstr "Do"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "Fr"
|
msgstr "Fr"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "Sa"
|
msgstr "Sa"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "So"
|
msgstr "So"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "Januar"
|
msgstr "Januar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "Februar"
|
msgstr "Februar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "März"
|
msgstr "März"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "April"
|
msgstr "April"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "Mai"
|
msgstr "Mai"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "Juni"
|
msgstr "Juni"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "Juli"
|
msgstr "Juli"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "August"
|
msgstr "August"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "September"
|
msgstr "September"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "Oktober"
|
msgstr "Oktober"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "November"
|
msgstr "November"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "Dezember"
|
msgstr "Dezember"
|
||||||
|
|
||||||
|
|||||||
@@ -66,10 +66,12 @@ BSD
|
|||||||
bspw
|
bspw
|
||||||
Bokmål
|
Bokmål
|
||||||
Boleto
|
Boleto
|
||||||
|
Buchhaltungs
|
||||||
Bundles
|
Bundles
|
||||||
Butterfly
|
Butterfly
|
||||||
bzw
|
bzw
|
||||||
ca
|
ca
|
||||||
|
Ceuta
|
||||||
Cc
|
Cc
|
||||||
chardet
|
chardet
|
||||||
charge
|
charge
|
||||||
@@ -158,9 +160,12 @@ Inc
|
|||||||
inkl
|
inkl
|
||||||
innenname
|
innenname
|
||||||
innennamen
|
innennamen
|
||||||
|
innergemeinschaftliche
|
||||||
|
Innergemeinschaftlicher
|
||||||
Input
|
Input
|
||||||
Installations
|
Installations
|
||||||
integrationen
|
integrationen
|
||||||
|
intra
|
||||||
INV
|
INV
|
||||||
invalidieren
|
invalidieren
|
||||||
invalidiert
|
invalidiert
|
||||||
@@ -177,10 +182,12 @@ Kombitickets
|
|||||||
Kompatibilitätsmodus
|
Kompatibilitätsmodus
|
||||||
Konfigurations
|
Konfigurations
|
||||||
Kosovo
|
Kosovo
|
||||||
|
land
|
||||||
landesspezifische
|
landesspezifische
|
||||||
Lead
|
Lead
|
||||||
Leaflet
|
Leaflet
|
||||||
Linktext
|
Linktext
|
||||||
|
lit
|
||||||
Logindaten
|
Logindaten
|
||||||
Lösch
|
Lösch
|
||||||
loszulegen
|
loszulegen
|
||||||
@@ -188,6 +195,7 @@ Ltd
|
|||||||
max
|
max
|
||||||
MariaDB
|
MariaDB
|
||||||
MapQuest
|
MapQuest
|
||||||
|
Melilla
|
||||||
Mercado
|
Mercado
|
||||||
Merchandise
|
Merchandise
|
||||||
Meta
|
Meta
|
||||||
@@ -269,6 +277,7 @@ rückabgewickelt
|
|||||||
Rundungsdifferenzen
|
Rundungsdifferenzen
|
||||||
Sa
|
Sa
|
||||||
Saalplan
|
Saalplan
|
||||||
|
Sammlungsstücken
|
||||||
SAQ
|
SAQ
|
||||||
SCA
|
SCA
|
||||||
Scan
|
Scan
|
||||||
@@ -357,6 +366,7 @@ USt
|
|||||||
Überzahlten
|
Überzahlten
|
||||||
Validierung
|
Validierung
|
||||||
Venmo
|
Venmo
|
||||||
|
Veranstalterdomain
|
||||||
Veranstaltereinstellungen
|
Veranstaltereinstellungen
|
||||||
Veranstalterkonten
|
Veranstalterkonten
|
||||||
Veranstalterkonto
|
Veranstalterkonto
|
||||||
@@ -367,6 +377,7 @@ Veranstalterseite
|
|||||||
Veranstalterübersicht
|
Veranstalterübersicht
|
||||||
veranstalterweiten
|
veranstalterweiten
|
||||||
Veranstaltungs
|
Veranstaltungs
|
||||||
|
Veranstalterdomain
|
||||||
veranstaltungsweiten
|
veranstaltungsweiten
|
||||||
Verfügbarkeitsberechnung
|
Verfügbarkeitsberechnung
|
||||||
Verfügbarkeitsstatus
|
Verfügbarkeitsstatus
|
||||||
|
|||||||
+3357
-3062
File diff suppressed because it is too large
Load Diff
+104
-86
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-19 15:34+0000\n"
|
"POT-Creation-Date: 2025-01-21 16:43+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -622,40 +622,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -705,20 +705,20 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -747,231 +747,249 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "Image of %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "incl. taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -979,83 +997,83 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
+3666
-3256
File diff suppressed because it is too large
Load Diff
@@ -7,9 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2019-10-03 19:00+0000\n"
|
"PO-Revision-Date: 2024-12-22 00:00+0000\n"
|
||||||
"Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n"
|
"Last-Translator: Dimitris Tsimpidis <tsimpidisd@gmail.com>\n"
|
||||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
"el/>\n"
|
"el/>\n"
|
||||||
"Language: el\n"
|
"Language: el\n"
|
||||||
@@ -17,7 +17,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 3.5.1\n"
|
"X-Generator: Weblate 5.9.2\n"
|
||||||
|
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||||
@@ -31,7 +31,7 @@ msgstr "Σχόλιο:"
|
|||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:34
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:34
|
||||||
msgid "PayPal"
|
msgid "PayPal"
|
||||||
msgstr ""
|
msgstr "PayPal"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
|
||||||
msgid "Venmo"
|
msgid "Venmo"
|
||||||
@@ -64,7 +64,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
|
||||||
msgid "SEPA Direct Debit"
|
msgid "SEPA Direct Debit"
|
||||||
msgstr ""
|
msgstr "Τραπεζική μεταφορά"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:43
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:43
|
||||||
msgid "Bancontact"
|
msgid "Bancontact"
|
||||||
@@ -79,10 +79,8 @@ msgid "SOFORT"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Yes"
|
|
||||||
msgid "eps"
|
msgid "eps"
|
||||||
msgstr "Ναι"
|
msgstr "EPS"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
|
||||||
msgid "MyBank"
|
msgid "MyBank"
|
||||||
@@ -147,11 +145,11 @@ msgstr "Συνέχεια"
|
|||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:317
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:317
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:341
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:341
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr "Επιβεβαίωση πληρωμής…"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:254
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:254
|
||||||
msgid "Payment method unavailable"
|
msgid "Payment method unavailable"
|
||||||
msgstr ""
|
msgstr "Μη διαθέσιμος τρόπος πληρωμής"
|
||||||
|
|
||||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
|
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
|
||||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
|
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
|
||||||
@@ -176,10 +174,8 @@ msgid "Total"
|
|||||||
msgstr "Σύνολο"
|
msgstr "Σύνολο"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:291
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:291
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Contacting Stripe …"
|
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Επικοινωνία με το Stripe …"
|
msgstr "Επικοινωνία με την τράπεζα …"
|
||||||
|
|
||||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:30
|
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:30
|
||||||
msgid "Select a check-in list"
|
msgid "Select a check-in list"
|
||||||
@@ -686,40 +682,40 @@ msgstr ""
|
|||||||
"Το χρώμα σας έχει κακή αντίθεση για κείμενο σε λευκό φόντο, επιλέξτε μια πιο "
|
"Το χρώμα σας έχει κακή αντίθεση για κείμενο σε λευκό φόντο, επιλέξτε μια πιο "
|
||||||
"σκούρα σκιά."
|
"σκούρα σκιά."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Όλα"
|
msgstr "Όλα"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Κανένας"
|
msgstr "Κανένας"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Χρησιμοποιήστε διαφορετικό όνομα εσωτερικά"
|
msgstr "Χρησιμοποιήστε διαφορετικό όνομα εσωτερικά"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Κάντε κλικ για να κλείσετε"
|
msgstr "Κάντε κλικ για να κλείσετε"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -781,22 +777,22 @@ msgstr "απο %(currency)s %(price)s"
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr "Εισαγάγετε μια ποσότητα για έναν από τους τύπους εισιτηρίων."
|
msgstr "Εισαγάγετε μια ποσότητα για έναν από τους τύπους εισιτηρίων."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Cart expired"
|
#| msgid "Cart expired"
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "Το καλάθι έληξε"
|
msgstr "Το καλάθι έληξε"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -825,17 +821,29 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -843,68 +851,74 @@ msgctxt "widget"
|
|||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "Δείτε παραλλαγές"
|
msgstr "Δείτε παραλλαγές"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "Εξαντλημένα"
|
msgstr "Εξαντλημένα"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "Αγορά"
|
msgstr "Αγορά"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "Κατοχυρωμένα"
|
msgstr "Κατοχυρωμένα"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "ΔΩΡΕΑΝ"
|
msgstr "ΔΩΡΕΑΝ"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr "απο %(currency)s %(price)s"
|
msgstr "απο %(currency)s %(price)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr "συμπεριλαμβανομένου %(rate)s% %(taxname)s"
|
msgstr "συμπεριλαμβανομένου %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr "συν %(rate)s% %(taxname)s"
|
msgstr "συν %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "συμπεριλαμβανομένων των φόρων"
|
msgstr "συμπεριλαμβανομένων των φόρων"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr "συν τους φόρους"
|
msgstr "συν τους φόρους"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "διαθέσιμη προς το παρόν:%s"
|
msgstr "διαθέσιμη προς το παρόν:%s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "Διατίθεται μόνο με ένα κουπόνι"
|
msgstr "Διατίθεται μόνο με ένα κουπόνι"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -912,12 +926,12 @@ msgctxt "widget"
|
|||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "διαθέσιμη προς το παρόν:%s"
|
msgstr "διαθέσιμη προς το παρόν:%s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -925,30 +939,30 @@ msgctxt "widget"
|
|||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "διαθέσιμη προς το παρόν:%s"
|
msgstr "διαθέσιμη προς το παρόν:%s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr "ελάχιστο ποσό για παραγγελία: %s"
|
msgstr "ελάχιστο ποσό για παραγγελία: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "Κλείστε το κατάστημα εισιτηρίων"
|
msgstr "Κλείστε το κατάστημα εισιτηρίων"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "Δεν ήταν δυνατή η φόρτωση του εισιτηρίου."
|
msgstr "Δεν ήταν δυνατή η φόρτωση του εισιτηρίου."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "Close ticket shop"
|
#| msgid "Close ticket shop"
|
||||||
@@ -956,25 +970,25 @@ msgctxt "widget"
|
|||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "Κλείστε το κατάστημα εισιτηρίων"
|
msgstr "Κλείστε το κατάστημα εισιτηρίων"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Δεν ήταν δυνατή η δημιουργία του καλαθιού. Παρακαλώ προσπαθήστε ξανά αργότερα"
|
"Δεν ήταν δυνατή η δημιουργία του καλαθιού. Παρακαλώ προσπαθήστε ξανά αργότερα"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "Λίστα αναμονής"
|
msgstr "Λίστα αναμονής"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
@@ -983,37 +997,37 @@ msgstr ""
|
|||||||
"Αυτήν τη στιγμή έχετε προϊόντα στο καλάθι για αυτήν την εκδήλωση. Αν "
|
"Αυτήν τη στιγμή έχετε προϊόντα στο καλάθι για αυτήν την εκδήλωση. Αν "
|
||||||
"επιλέξετε περισσότερα προϊόντα, θα προστεθούν στο υπάρχον καλάθι σας."
|
"επιλέξετε περισσότερα προϊόντα, θα προστεθούν στο υπάρχον καλάθι σας."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr "Συνεχίστε την ολοκλήρωση της αγοράς"
|
msgstr "Συνεχίστε την ολοκλήρωση της αγοράς"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "Εξαργυρώστε ένα κουπόνι"
|
msgstr "Εξαργυρώστε ένα κουπόνι"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "Εξαργυρώστε"
|
msgstr "Εξαργυρώστε"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "Κωδικός κουπονιού"
|
msgstr "Κωδικός κουπονιού"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Κλείσιμο"
|
msgstr "Κλείσιμο"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Συνέχεια"
|
msgstr "Συνέχεια"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -1021,7 +1035,7 @@ msgctxt "widget"
|
|||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "Δείτε παραλλαγές"
|
msgstr "Δείτε παραλλαγές"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -1029,37 +1043,37 @@ msgctxt "widget"
|
|||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "Δείτε παραλλαγές"
|
msgstr "Δείτε παραλλαγές"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "Επιλέξτε διαφορετική εκδήλωση"
|
msgstr "Επιλέξτε διαφορετική εκδήλωση"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "Επιλέξτε διαφορετική ημερομηνία"
|
msgstr "Επιλέξτε διαφορετική ημερομηνία"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Πίσω"
|
msgstr "Πίσω"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Επόμενος μήνας"
|
msgstr "Επόμενος μήνας"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Προηγούμενος μήνας"
|
msgstr "Προηγούμενος μήνας"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "Previous month"
|
#| msgid "Previous month"
|
||||||
@@ -1067,12 +1081,12 @@ msgctxt "widget"
|
|||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "Προηγούμενος μήνας"
|
msgstr "Προηγούμενος μήνας"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1080,84 +1094,84 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "Δευ"
|
msgstr "Δευ"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "Τρι"
|
msgstr "Τρι"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "Τετ"
|
msgstr "Τετ"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "Πεμ"
|
msgstr "Πεμ"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "Παρ"
|
msgstr "Παρ"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "Σαβ"
|
msgstr "Σαβ"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "Κυρ"
|
msgstr "Κυρ"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "Ιανουάριος"
|
msgstr "Ιανουάριος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "Φεβρουάριος"
|
msgstr "Φεβρουάριος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "Μάρτιος"
|
msgstr "Μάρτιος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "Απρίλιος"
|
msgstr "Απρίλιος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "Μάιος"
|
msgstr "Μάιος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "Ιούνιος"
|
msgstr "Ιούνιος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "Ιούλιος"
|
msgstr "Ιούλιος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "Αύγουστος"
|
msgstr "Αύγουστος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "Σεπτέμβριος"
|
msgstr "Σεπτέμβριος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "Οκτώβριος"
|
msgstr "Οκτώβριος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "Νοέμβριος"
|
msgstr "Νοέμβριος"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "Δεκέμβριος"
|
msgstr "Δεκέμβριος"
|
||||||
|
|
||||||
|
|||||||
+3357
-3062
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -622,40 +622,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -705,20 +705,20 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -747,231 +747,249 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "Image of %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "incl. taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -979,83 +997,83 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
+3543
-3154
File diff suppressed because it is too large
Load Diff
@@ -7,9 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2024-11-18 15:48+0000\n"
|
"PO-Revision-Date: 2025-01-21 00:00+0000\n"
|
||||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
"Last-Translator: Hector <hector@demandaeventos.es>\n"
|
||||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/"
|
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/"
|
||||||
"pretix-js/es/>\n"
|
"pretix-js/es/>\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@@ -17,7 +17,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.8.3\n"
|
"X-Generator: Weblate 5.9.2\n"
|
||||||
|
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||||
@@ -642,40 +642,40 @@ msgstr ""
|
|||||||
"Tu color tiene mal contraste para un texto con fondo blanco, por favor, "
|
"Tu color tiene mal contraste para un texto con fondo blanco, por favor, "
|
||||||
"escoge un tono más oscuro."
|
"escoge un tono más oscuro."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Consulta de búsqueda"
|
msgstr "Consulta de búsqueda"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Ninguno"
|
msgstr "Ninguno"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Solamente seleccionados"
|
msgstr "Solamente seleccionados"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr "Introduce un número de página entre 1 y %(max)s."
|
msgstr "Introduce un número de página entre 1 y %(max)s."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr "Número de página inválido."
|
msgstr "Número de página inválido."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Usar un nombre diferente internamente"
|
msgstr "Usar un nombre diferente internamente"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Click para cerrar"
|
msgstr "Click para cerrar"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "¡Tienes cambios sin guardar!"
|
msgstr "¡Tienes cambios sin guardar!"
|
||||||
|
|
||||||
@@ -730,20 +730,20 @@ msgstr "Obtienes %(currency)s %(price)s de vuelta"
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr "Por favor, ingrese el importe que el organizador puede quedarse."
|
msgstr "Por favor, ingrese el importe que el organizador puede quedarse."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr "Por favor, introduzca un valor para cada tipo de entrada."
|
msgstr "Por favor, introduzca un valor para cada tipo de entrada."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "campo requerido"
|
msgstr "campo requerido"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr "Zona horaria:"
|
msgstr "Zona horaria:"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr "Su hora local:"
|
msgstr "Su hora local:"
|
||||||
|
|
||||||
@@ -772,115 +772,133 @@ msgid "Price"
|
|||||||
msgstr "Precio"
|
msgstr "Precio"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Original price: %s"
|
||||||
|
msgstr "Precio original: %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "New price: %s"
|
||||||
|
msgstr "Nuevo precio: %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr "Selecciona"
|
msgstr "Selecciona"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "Select %s"
|
||||||
msgstr "Selecciona %s"
|
msgstr "Selecciona %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "Selecciona variaciones %s"
|
msgstr "Selecciona variaciones %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "Agotado"
|
msgstr "Agotado"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "Comprar"
|
msgstr "Comprar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Registrarse"
|
msgstr "Registrarse"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "Reservado"
|
msgstr "Reservado"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "GRATIS"
|
msgstr "GRATIS"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr "desde %(currency)s %(price)s"
|
msgstr "desde %(currency)s %(price)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr "Imagen de %s"
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr "incluye %(rate)s% %(taxname)s"
|
msgstr "incluye %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr "más %(rate)s% %(taxname)s"
|
msgstr "más %(rate)s% %(taxname)s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "incl. impuestos"
|
msgstr "incl. impuestos"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr "más impuestos"
|
msgstr "más impuestos"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "disponible actualmente: %s"
|
msgstr "disponible actualmente: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "Solo disponible mediante voucher"
|
msgstr "Solo disponible mediante voucher"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "Aún no disponible"
|
msgstr "Aún no disponible"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr "Ya no disponible"
|
msgstr "Ya no disponible"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "No disponible actualmente"
|
msgstr "No disponible actualmente"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr "cantidad mínima a ordenar: %s"
|
msgstr "cantidad mínima a ordenar: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "Cerrar tienda de tickets"
|
msgstr "Cerrar tienda de tickets"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "No se ha podido cargar la tienda de tickets."
|
msgstr "No se ha podido cargar la tienda de tickets."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
@@ -889,19 +907,19 @@ msgstr ""
|
|||||||
"Actualmente hay muchos usuarios en la tienda de tickets. Por favor abra la "
|
"Actualmente hay muchos usuarios en la tienda de tickets. Por favor abra la "
|
||||||
"tienda en una nueva pestaña para continuar."
|
"tienda en una nueva pestaña para continuar."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "Abrir tienda de tickets"
|
msgstr "Abrir tienda de tickets"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"El carrito de compras no ha podido crearse. Por favor, intente de nuevo más "
|
"El carrito de compras no ha podido crearse. Por favor, intente de nuevo más "
|
||||||
"tarde"
|
"tarde"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
@@ -910,12 +928,12 @@ msgstr ""
|
|||||||
"No pudimos crear su carrito debido a que hay muchos usuarios en la tienda. "
|
"No pudimos crear su carrito debido a que hay muchos usuarios en la tienda. "
|
||||||
"Por favor, presione \"Continuar\" para intentarlo en una nueva pestaña."
|
"Por favor, presione \"Continuar\" para intentarlo en una nueva pestaña."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "Lista de espera"
|
msgstr "Lista de espera"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
@@ -924,87 +942,87 @@ msgstr ""
|
|||||||
"Ya tiene un carrito de compras activo para este evento. Si selecciona más "
|
"Ya tiene un carrito de compras activo para este evento. Si selecciona más "
|
||||||
"productos, estos serán añadidos al carrito actual."
|
"productos, estos serán añadidos al carrito actual."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr "Continuar pago"
|
msgstr "Continuar pago"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "Canjear un cupón"
|
msgstr "Canjear un cupón"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "Canjear"
|
msgstr "Canjear"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "Código del cupón"
|
msgstr "Código del cupón"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Cerrar"
|
msgstr "Cerrar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Continuar"
|
msgstr "Continuar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "Mostrar variantes"
|
msgstr "Mostrar variantes"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "Occultar variantes"
|
msgstr "Occultar variantes"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "Eligir un evento diferente"
|
msgstr "Eligir un evento diferente"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "Elegir una fecha diferente"
|
msgstr "Elegir una fecha diferente"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Atrás"
|
msgstr "Atrás"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Siguiente mes"
|
msgstr "Siguiente mes"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Mes anterior"
|
msgstr "Mes anterior"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Semana siguiente"
|
msgstr "Semana siguiente"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "Semana anterior"
|
msgstr "Semana anterior"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr "Abrir selección de asientos"
|
msgstr "Abrir selección de asientos"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1015,84 +1033,84 @@ msgstr ""
|
|||||||
"la lista de espera. Te notificaremos si los asientos estén disponible de "
|
"la lista de espera. Te notificaremos si los asientos estén disponible de "
|
||||||
"nuevo."
|
"nuevo."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr "Cargar más"
|
msgstr "Cargar más"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "Lun"
|
msgstr "Lun"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "Mar"
|
msgstr "Mar"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "Mié"
|
msgstr "Mié"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "Jue"
|
msgstr "Jue"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "Vie"
|
msgstr "Vie"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "Sáb"
|
msgstr "Sáb"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "Dom"
|
msgstr "Dom"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "enero"
|
msgstr "enero"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "febrero"
|
msgstr "febrero"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "Marzo"
|
msgstr "Marzo"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "abril"
|
msgstr "abril"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "mayo"
|
msgstr "mayo"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "junio"
|
msgstr "junio"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "julio"
|
msgstr "julio"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "agosto"
|
msgstr "agosto"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "septiembre"
|
msgstr "septiembre"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "octubre"
|
msgstr "octubre"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "noviembre"
|
msgstr "noviembre"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "diciembre"
|
msgstr "diciembre"
|
||||||
|
|
||||||
|
|||||||
+3357
-3062
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -622,40 +622,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -705,20 +705,20 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -747,231 +747,249 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "Image of %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "incl. taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -979,83 +997,83 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
+3457
-3043
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2024-09-06 08:47+0000\n"
|
"PO-Revision-Date: 2024-09-06 08:47+0000\n"
|
||||||
"Last-Translator: Albizuri <oier@puntu.eus>\n"
|
"Last-Translator: Albizuri <oier@puntu.eus>\n"
|
||||||
"Language-Team: Basque <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Basque <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -635,40 +635,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Guztiak"
|
msgstr "Guztiak"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -721,20 +721,20 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -763,231 +763,249 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
|
||||||
msgctxt "widget"
|
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "Image of %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "incl. taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "plus taxes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -995,83 +1013,83 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
+4203
-3840
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-11-08 13:45+0000\n"
|
"POT-Creation-Date: 2025-01-15 16:46+0000\n"
|
||||||
"PO-Revision-Date: 2021-11-10 05:00+0000\n"
|
"PO-Revision-Date: 2021-11-10 05:00+0000\n"
|
||||||
"Last-Translator: Jaakko Rinta-Filppula <jaakko@r-f.fi>\n"
|
"Last-Translator: Jaakko Rinta-Filppula <jaakko@r-f.fi>\n"
|
||||||
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix-"
|
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||||
@@ -651,40 +651,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
#: pretix/static/pretixcontrol/js/ui/main.js:442
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:516
|
#: pretix/static/pretixcontrol/js/ui/main.js:462
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:514
|
#: pretix/static/pretixcontrol/js/ui/main.js:460
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Kaikki"
|
msgstr "Kaikki"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:515
|
#: pretix/static/pretixcontrol/js/ui/main.js:461
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:519
|
#: pretix/static/pretixcontrol/js/ui/main.js:465
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:862
|
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:865
|
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1023
|
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Käytä toista nimeä sisäisesti"
|
msgstr "Käytä toista nimeä sisäisesti"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1063
|
#: pretix/static/pretixcontrol/js/ui/main.js:1009
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Sulje klikkaamalla"
|
msgstr "Sulje klikkaamalla"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1138
|
#: pretix/static/pretixcontrol/js/ui/main.js:1084
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Sinulla on tallentamattomia muutoksia!"
|
msgstr "Sinulla on tallentamattomia muutoksia!"
|
||||||
|
|
||||||
@@ -738,22 +738,22 @@ msgstr ""
|
|||||||
msgid "Please enter the amount the organizer can keep."
|
msgid "Please enter the amount the organizer can keep."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:449
|
#: pretix/static/pretixpresale/js/ui/main.js:446
|
||||||
msgid "Please enter a quantity for one of the ticket types."
|
msgid "Please enter a quantity for one of the ticket types."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:485
|
#: pretix/static/pretixpresale/js/ui/main.js:498
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Cart expired"
|
#| msgid "Cart expired"
|
||||||
msgid "required"
|
msgid "required"
|
||||||
msgstr "Ostoskori on vanhentunut"
|
msgstr "Ostoskori on vanhentunut"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:588
|
#: pretix/static/pretixpresale/js/ui/main.js:542
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:607
|
#: pretix/static/pretixpresale/js/ui/main.js:561
|
||||||
msgid "Time zone:"
|
msgid "Time zone:"
|
||||||
msgstr "Aikavyöhyke:"
|
msgstr "Aikavyöhyke:"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/ui/main.js:598
|
#: pretix/static/pretixpresale/js/ui/main.js:552
|
||||||
msgid "Your local time:"
|
msgid "Your local time:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -782,17 +782,29 @@ msgid "Price"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||||
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select"
|
msgid "Original price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Select %s"
|
msgid "New price: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Select %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -800,68 +812,74 @@ msgctxt "widget"
|
|||||||
msgid "Select variant %s"
|
msgid "Select variant %s"
|
||||||
msgstr "Näytä vaihtoehdot"
|
msgstr "Näytä vaihtoehdot"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Sold out"
|
msgid "Sold out"
|
||||||
msgstr "Loppuunmyyty"
|
msgstr "Loppuunmyyty"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:24
|
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Buy"
|
msgid "Buy"
|
||||||
msgstr "Osta"
|
msgstr "Osta"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:25
|
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:26
|
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Reserved"
|
msgid "Reserved"
|
||||||
msgstr "Varattu"
|
msgstr "Varattu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:27
|
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "FREE"
|
msgid "FREE"
|
||||||
msgstr "ILMAINEN"
|
msgstr "ILMAINEN"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:28
|
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "from %(currency)s %(price)s"
|
msgid "from %(currency)s %(price)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:29
|
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
||||||
|
#, javascript-format
|
||||||
|
msgctxt "widget"
|
||||||
|
msgid "Image of %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. %(rate)s% %(taxname)s"
|
msgid "incl. %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:30
|
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus %(rate)s% %(taxname)s"
|
msgid "plus %(rate)s% %(taxname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:31
|
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "incl. taxes"
|
msgid "incl. taxes"
|
||||||
msgstr "sis. verot"
|
msgstr "sis. verot"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:32
|
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "plus taxes"
|
msgid "plus taxes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:33
|
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "currently available: %s"
|
msgid "currently available: %s"
|
||||||
msgstr "nyt saatavilla: %s"
|
msgstr "nyt saatavilla: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:34
|
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Only available with a voucher"
|
msgid "Only available with a voucher"
|
||||||
msgstr "Saatavilla vain kupongilla"
|
msgstr "Saatavilla vain kupongilla"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -869,12 +887,12 @@ msgctxt "widget"
|
|||||||
msgid "Not yet available"
|
msgid "Not yet available"
|
||||||
msgstr "nyt saatavilla: %s"
|
msgstr "nyt saatavilla: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Not available anymore"
|
msgid "Not available anymore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "currently available: %s"
|
#| msgid "currently available: %s"
|
||||||
@@ -882,30 +900,30 @@ msgctxt "widget"
|
|||||||
msgid "Currently not available"
|
msgid "Currently not available"
|
||||||
msgstr "nyt saatavilla: %s"
|
msgstr "nyt saatavilla: %s"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "minimum amount to order: %s"
|
msgid "minimum amount to order: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:39
|
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close ticket shop"
|
msgid "Close ticket shop"
|
||||||
msgstr "Sulje lippukauppa"
|
msgstr "Sulje lippukauppa"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:40
|
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The ticket shop could not be loaded."
|
msgid "The ticket shop could not be loaded."
|
||||||
msgstr "Lippukauppaa ei voitu ladata."
|
msgstr "Lippukauppaa ei voitu ladata."
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:41
|
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"There are currently a lot of users in this ticket shop. Please open the shop "
|
"There are currently a lot of users in this ticket shop. Please open the shop "
|
||||||
"in a new tab to continue."
|
"in a new tab to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:43
|
#: pretix/static/pretixpresale/js/widget/widget.js:46
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "Close ticket shop"
|
#| msgid "Close ticket shop"
|
||||||
@@ -913,61 +931,61 @@ msgctxt "widget"
|
|||||||
msgid "Open ticket shop"
|
msgid "Open ticket shop"
|
||||||
msgstr "Sulje lippukauppa"
|
msgstr "Sulje lippukauppa"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "The cart could not be created. Please try again later"
|
msgid "The cart could not be created. Please try again later"
|
||||||
msgstr "Ostoskoria ei voitu luoda. Ole hyvä ja yritä myöhemmin uudelleen"
|
msgstr "Ostoskoria ei voitu luoda. Ole hyvä ja yritä myöhemmin uudelleen"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"We could not create your cart, since there are currently too many users in "
|
"We could not create your cart, since there are currently too many users in "
|
||||||
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
"this ticket shop. Please click \"Continue\" to retry in a new tab."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Waiting list"
|
msgid "Waiting list"
|
||||||
msgstr "Jonotuslista"
|
msgstr "Jonotuslista"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You currently have an active cart for this event. If you select more "
|
"You currently have an active cart for this event. If you select more "
|
||||||
"products, they will be added to your existing cart."
|
"products, they will be added to your existing cart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Resume checkout"
|
msgid "Resume checkout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem a voucher"
|
msgid "Redeem a voucher"
|
||||||
msgstr "Käytä kuponki"
|
msgstr "Käytä kuponki"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:52
|
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Redeem"
|
msgid "Redeem"
|
||||||
msgstr "Käytä"
|
msgstr "Käytä"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:53
|
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Voucher code"
|
msgid "Voucher code"
|
||||||
msgstr "Kuponkikoodi"
|
msgstr "Kuponkikoodi"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:54
|
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Sulje"
|
msgstr "Sulje"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:55
|
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Jatka"
|
msgstr "Jatka"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -975,7 +993,7 @@ msgctxt "widget"
|
|||||||
msgid "Show variants"
|
msgid "Show variants"
|
||||||
msgstr "Näytä vaihtoehdot"
|
msgstr "Näytä vaihtoehdot"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgctxt "widget"
|
#| msgctxt "widget"
|
||||||
#| msgid "See variations"
|
#| msgid "See variations"
|
||||||
@@ -983,47 +1001,47 @@ msgctxt "widget"
|
|||||||
msgid "Hide variants"
|
msgid "Hide variants"
|
||||||
msgstr "Näytä vaihtoehdot"
|
msgstr "Näytä vaihtoehdot"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different event"
|
msgid "Choose a different event"
|
||||||
msgstr "Valitse toinen tapahtuma"
|
msgstr "Valitse toinen tapahtuma"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:59
|
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Choose a different date"
|
msgid "Choose a different date"
|
||||||
msgstr "Valitse toinen päivämäärä"
|
msgstr "Valitse toinen päivämäärä"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:60
|
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Takaisin"
|
msgstr "Takaisin"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:61
|
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Seuraava kuukausi"
|
msgstr "Seuraava kuukausi"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:62
|
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Edellinen kuukausi"
|
msgstr "Edellinen kuukausi"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:63
|
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Seuraava viikko"
|
msgstr "Seuraava viikko"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:64
|
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Previous week"
|
msgid "Previous week"
|
||||||
msgstr "Edellinen viikko"
|
msgstr "Edellinen viikko"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:65
|
#: pretix/static/pretixpresale/js/widget/widget.js:68
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Open seat selection"
|
msgid "Open seat selection"
|
||||||
msgstr "Avaa paikkavalinta"
|
msgstr "Avaa paikkavalinta"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:66
|
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some or all ticket categories are currently sold out. If you want, you can "
|
"Some or all ticket categories are currently sold out. If you want, you can "
|
||||||
@@ -1031,84 +1049,84 @@ msgid ""
|
|||||||
"again."
|
"again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
||||||
msgctxt "widget"
|
msgctxt "widget"
|
||||||
msgid "Load more"
|
msgid "Load more"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:69
|
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
||||||
msgid "Mo"
|
msgid "Mo"
|
||||||
msgstr "Ma"
|
msgstr "Ma"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:70
|
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
||||||
msgid "Tu"
|
msgid "Tu"
|
||||||
msgstr "Ti"
|
msgstr "Ti"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:71
|
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||||
msgid "We"
|
msgid "We"
|
||||||
msgstr "Ke"
|
msgstr "Ke"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:72
|
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "To"
|
msgstr "To"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:73
|
#: pretix/static/pretixpresale/js/widget/widget.js:76
|
||||||
msgid "Fr"
|
msgid "Fr"
|
||||||
msgstr "Pe"
|
msgstr "Pe"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
#: pretix/static/pretixpresale/js/widget/widget.js:77
|
||||||
msgid "Sa"
|
msgid "Sa"
|
||||||
msgstr "La"
|
msgstr "La"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "Su"
|
msgstr "Su"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:78
|
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
||||||
msgid "January"
|
msgid "January"
|
||||||
msgstr "Tammikuu"
|
msgstr "Tammikuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:79
|
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
||||||
msgid "February"
|
msgid "February"
|
||||||
msgstr "Helmikuu"
|
msgstr "Helmikuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:80
|
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
||||||
msgid "March"
|
msgid "March"
|
||||||
msgstr "Maaliskuu"
|
msgstr "Maaliskuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:81
|
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
||||||
msgid "April"
|
msgid "April"
|
||||||
msgstr "Huhtikuu"
|
msgstr "Huhtikuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:82
|
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
||||||
msgid "May"
|
msgid "May"
|
||||||
msgstr "Toukokuu"
|
msgstr "Toukokuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:83
|
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr "Kesäkuu"
|
msgstr "Kesäkuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:84
|
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
||||||
msgid "July"
|
msgid "July"
|
||||||
msgstr "Heinäkuu"
|
msgstr "Heinäkuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:85
|
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
||||||
msgid "August"
|
msgid "August"
|
||||||
msgstr "Elokuu"
|
msgstr "Elokuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:86
|
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
||||||
msgid "September"
|
msgid "September"
|
||||||
msgstr "Syyskuu"
|
msgstr "Syyskuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:87
|
#: pretix/static/pretixpresale/js/widget/widget.js:90
|
||||||
msgid "October"
|
msgid "October"
|
||||||
msgstr "Lokakuu"
|
msgstr "Lokakuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:88
|
#: pretix/static/pretixpresale/js/widget/widget.js:91
|
||||||
msgid "November"
|
msgid "November"
|
||||||
msgstr "Marraskuu"
|
msgstr "Marraskuu"
|
||||||
|
|
||||||
#: pretix/static/pretixpresale/js/widget/widget.js:89
|
#: pretix/static/pretixpresale/js/widget/widget.js:92
|
||||||
msgid "December"
|
msgid "December"
|
||||||
msgstr "Joulukuu"
|
msgstr "Joulukuu"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user