Compare commits

..
1 Commits
198 changed files with 88648 additions and 94031 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
Code of Conduct Code of Conduct
=============== ===============
We have a [Code of Conduct](https://docs.pretix.eu/dev/development/contribution/codeofconduct.html) We have a [Code of Conduct](https://docs.pretix.eu/en/latest/development/contribution/codeofconduct.html)
in place that applies to all project contributions, including issues, pull requests, etc. in place that applies to all project contributions, including issues, pull requests, etc.
+3 -3
View File
@@ -3,9 +3,9 @@ Contributing to pretix
Hey there and welcome to pretix! Hey there and welcome to pretix!
* We've got a contributors guide in [our documentation](https://docs.pretix.eu/dev/development/contribution/) together with notes on the [development setup](https://docs.pretix.eu/dev/development/setup.html). * We've got a contributors guide in [our documentation](https://docs.pretix.eu/en/latest/development/contribution/) together with notes on the [development setup](https://docs.pretix.eu/en/latest/development/setup.html).
* Please note that we have a [Code of Conduct](https://docs.pretix.eu/dev/development/contribution/codeofconduct.html) in place that applies to all project contributions, including issues, pull requests, etc. * Please note that we have a [Code of Conduct](https://docs.pretix.eu/en/latest/development/contribution/codeofconduct.html) in place that applies to all project contributions, including issues, pull requests, etc.
* Before we can accept a PR from you we'll need you to sign [our CLA](https://pretix.eu/about/en/cla). You can find more information about the how and why in our [License FAQ](https://docs.pretix.eu/trust/licensing/faq/) and in our [license change blog post](https://pretix.eu/about/en/blog/20210412-license/). * Before we can accept a PR from you we'll need you to sign [our CLA](https://pretix.eu/about/en/cla). You can find more information about the how and why in our [License FAQ](https://docs.pretix.eu/en/latest/license/faq.html#) and in our [license change blog post](https://pretix.eu/about/en/blog/20210412-license/).
+4 -4
View File
@@ -5,7 +5,7 @@ pretix
:target: https://pypi.python.org/pypi/pretix :target: https://pypi.python.org/pypi/pretix
.. image:: https://github.com/pretix/pretix/workflows/Documentation/badge.svg .. image:: https://github.com/pretix/pretix/workflows/Documentation/badge.svg
:target: https://docs.pretix.eu/ :target: https://docs.pretix.eu/en/latest/
.. image:: https://github.com/pretix/pretix/workflows/Tests/badge.svg .. image:: https://github.com/pretix/pretix/workflows/Tests/badge.svg
@@ -56,8 +56,8 @@ License
The code in this repository is covered by different licenses. Most of it is available to everyone under the terms of The code in this repository is covered by different licenses. Most of it is available to everyone under the terms of
the GNU AGPL license v3 with additional terms. See the LICENSE file for the complete license details. the GNU AGPL license v3 with additional terms. See the LICENSE file for the complete license details.
.. _installation guide: https://docs.pretix.eu/self-hosting/installation/general/ .. _installation guide: https://docs.pretix.eu/en/latest/admin/installation/index.html
.. _developer documentation: https://docs.pretix.eu/dev/development/index.html .. _developer documentation: https://docs.pretix.eu/en/latest/development/index.html
.. _Code of Conduct: https://docs.pretix.eu/dev/development/contribution/codeofconduct.html .. _Code of Conduct: https://docs.pretix.eu/en/latest/development/contribution/codeofconduct.html
.. _pretix.eu: https://pretix.eu .. _pretix.eu: https://pretix.eu
.. _blog: https://pretix.eu/about/en/blog/ .. _blog: https://pretix.eu/about/en/blog/
-13
View File
@@ -69,10 +69,6 @@ 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
@@ -243,10 +239,6 @@ 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
----- -----
@@ -316,7 +308,6 @@ 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,
@@ -468,7 +459,6 @@ 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,
@@ -599,7 +589,6 @@ 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,
@@ -716,7 +705,6 @@ 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,
@@ -867,7 +855,6 @@ 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,
+20 -49
View File
@@ -75,9 +75,8 @@ positions list of objects List of order p
fees list of objects List of fees included in the order total. By default, only fees list of objects List of fees included in the order total. By default, only
non-canceled fees are included. non-canceled fees are included.
├ id integer Internal ID of the fee record ├ id integer Internal ID of the fee record
├ fee_type string Type of fee (currently ``payment``, ``shipping``, ├ fee_type string Type of fee (currently ``payment``, ``passbook``,
``service``, ``cancellation``, ``insurance``, ``late``, ``other``)
``other``, ``giftcard``)
├ value money (string) Fee amount ├ value money (string) Fee amount
├ description string Human-readable string with more details (can be empty) ├ description string Human-readable string with more details (can be empty)
├ internal_type string Internal string (i.e. ID of the payment provider), ├ internal_type string Internal string (i.e. ID of the payment provider),
@@ -110,7 +109,6 @@ cancellation_date datetime Time of order c
Will not be set for partial cancellations and is not Will not be set for partial cancellations and is not
reliable for orders that have been cancelled, reliable for orders that have been cancelled,
reactivated and cancelled again. reactivated and cancelled again.
plugin_data object Additional data added by plugins.
===================================== ========================== ======================================================= ===================================== ========================== =======================================================
@@ -166,10 +164,6 @@ plugin_data object Additional data
The ``tax_code`` attribute has been added. The ``tax_code`` attribute has been added.
.. versionchanged:: 2025.2
The ``plugin_data`` attribute has been added.
.. _order-position-resource: .. _order-position-resource:
Order position resource Order position resource
@@ -257,7 +251,6 @@ seat objects The assigned se
pdf_data object Data object required for ticket PDF generation. By default, pdf_data object Data object required for ticket PDF generation. By default,
this field is missing. It will be added only if you add the this field is missing. It will be added only if you add the
``pdf_data=true`` query parameter to your request. ``pdf_data=true`` query parameter to your request.
plugin_data object Additional data added by plugins.
===================================== ========================== ======================================================= ===================================== ========================== =======================================================
.. versionchanged:: 4.16 .. versionchanged:: 4.16
@@ -272,10 +265,6 @@ plugin_data object Additional data
The ``tax_code`` attribute has been added. The ``tax_code`` attribute has been added.
.. versionchanged:: 2025.2
The ``plugin_data`` attribute has been added.
.. _order-payment-resource: .. _order-payment-resource:
Order payment resource Order payment resource
@@ -472,8 +461,7 @@ List of all orders
"output": "pdf", "output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/" "url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
} }
], ]
"plugin_data": {}
} }
], ],
"downloads": [ "downloads": [
@@ -495,8 +483,7 @@ List of all orders
} }
], ],
"refunds": [], "refunds": [],
"cancellation_date": null, "cancellation_date": null
"plugin_data": {}
} }
] ]
} }
@@ -715,8 +702,7 @@ Fetching individual orders
"output": "pdf", "output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/" "url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
} }
], ]
"plugin_data": {}
} }
], ],
"downloads": [ "downloads": [
@@ -738,8 +724,7 @@ Fetching individual orders
} }
], ],
"refunds": [], "refunds": [],
"cancellation_date": null, "cancellation_date": null
"plugin_data": {}
} }
:param organizer: The ``slug`` field of the organizer to fetch :param organizer: The ``slug`` field of the organizer to fetch
@@ -1686,8 +1671,7 @@ List of all order positions
"output": "pdf", "output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/" "url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
} }
], ]
"plugin_data": {}
} }
] ]
} }
@@ -1814,8 +1798,7 @@ Fetching individual positions
"output": "pdf", "output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/" "url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
} }
], ]
"plugin_data": {}
} }
:param organizer: The ``slug`` field of the organizer to fetch :param organizer: The ``slug`` field of the organizer to fetch
@@ -2245,9 +2228,6 @@ otherwise, such as splitting an order or changing fees.
* ``cancel_fees``: A list of objects with the single key ``fee`` specifying an order fee ID. * ``cancel_fees``: A list of objects with the single key ``fee`` specifying an order fee ID.
* ``create_fees``: A list of objects describing new order fees with the fields ``fee_type``, ``value``, ``description``,
``internal_type``, ``tax_rule``
* ``recalculate_taxes``: If set to ``"keep_net"``, all taxes will be recalculated based on the tax rule and invoice * ``recalculate_taxes``: If set to ``"keep_net"``, all taxes will be recalculated based on the tax rule and invoice
address, the net price will be kept. If set to ``"keep_gross"``, the gross price will be kept. If set to ``null`` address, the net price will be kept. If set to ``"keep_gross"``, the gross price will be kept. If set to ``null``
(the default) the taxes are not recalculated. (the default) the taxes are not recalculated.
@@ -2267,12 +2247,17 @@ otherwise, such as splitting an order or changing fees.
Content-Type: application/json Content-Type: application/json
{ {
"cancel_positions": [
{
"position": 12373
}
],
"patch_positions": [ "patch_positions": [
{ {
"position": 12374, "position": 12374,
"body": { "body": {
"item": 12, "item": 12,
"variation": null, "variation": None,
"subevent": 562, "subevent": 562,
"seat": "seat-guid-2", "seat": "seat-guid-2",
"price": "99.99", "price": "99.99",
@@ -2280,11 +2265,6 @@ otherwise, such as splitting an order or changing fees.
} }
} }
], ],
"cancel_positions": [
{
"position": 12373
}
],
"split_positions": [ "split_positions": [
{ {
"position": 12375 "position": 12375
@@ -2293,7 +2273,7 @@ otherwise, such as splitting an order or changing fees.
"create_positions": [ "create_positions": [
{ {
"item": 12, "item": 12,
"variation": null, "variation": None,
"subevent": 562, "subevent": 562,
"seat": "seat-guid-2", "seat": "seat-guid-2",
"price": "99.99", "price": "99.99",
@@ -2301,26 +2281,17 @@ otherwise, such as splitting an order or changing fees.
"attendee_name": "Peter", "attendee_name": "Peter",
} }
], ],
"patch_fees": [
{
"fee": 51,
"body": {
"value": "12.00"
}
}
],
"cancel_fees": [ "cancel_fees": [
{ {
"fee": 49 "fee": 49
} }
], ],
"create_fees": [ "change_fees": [
{ {
"fee_type": "other", "fee": 51,
"value": "1.50", "body": {
"description": "Example Fee", "value": "12.00"
"internal_type": "", }
"tax_rule": 15
} }
], ],
"reissue_invoice": true, "reissue_invoice": true,
+2 -2
View File
@@ -23,7 +23,7 @@ There are multiple signals that will be sent out in the ordering cycle:
.. automodule:: pretix.base.signals .. automodule:: pretix.base.signals
:no-index: :no-index:
:members: validate_cart, validate_cart_addons, validate_order, order_valid_if_pending, order_fee_calculation, order_paid, order_placed, order_canceled, order_reactivated, order_expired, order_expiry_changed, order_modified, order_changed, order_approved, order_denied, order_fee_type_name, allow_ticket_download, order_split, order_gracefully_delete, invoice_line_text :members: validate_cart, validate_cart_addons, validate_order, order_valid_if_pending, order_fee_calculation, order_paid, order_placed, order_canceled, order_reactivated, order_expired, order_modified, order_changed, order_approved, order_denied, order_fee_type_name, allow_ticket_download, order_split, order_gracefully_delete, invoice_line_text
Check-ins Check-ins
""""""""" """""""""
@@ -103,4 +103,4 @@ API
.. automodule:: pretix.api.signals .. automodule:: pretix.api.signals
:no-index: :no-index:
:members: register_device_security_profile, order_api_details, orderposition_api_details :members: register_device_security_profile
+6 -6
View File
@@ -28,7 +28,7 @@ classifiers = [
dependencies = [ dependencies = [
"arabic-reshaper==3.0.0", # Support for Arabic in reportlab "arabic-reshaper==3.0.0", # Support for Arabic in reportlab
"babel", "babel",
"BeautifulSoup4==4.13.*", "BeautifulSoup4==4.12.*",
"bleach==6.2.*", "bleach==6.2.*",
"celery==5.4.*", "celery==5.4.*",
"chardet==5.2.*", "chardet==5.2.*",
@@ -39,7 +39,7 @@ dependencies = [
"django-bootstrap3==24.3", "django-bootstrap3==24.3",
"django-compressor==4.5.1", "django-compressor==4.5.1",
"django-countries==7.6.*", "django-countries==7.6.*",
"django-filter==25.1", "django-filter==24.3",
"django-formset-js-improved==0.5.0.3", "django-formset-js-improved==0.5.0.3",
"django-formtools==2.5.1", "django-formtools==2.5.1",
"django-hierarkey==1.2.*", "django-hierarkey==1.2.*",
@@ -57,7 +57,7 @@ dependencies = [
"djangorestframework==3.15.*", "djangorestframework==3.15.*",
"dnspython==2.7.*", "dnspython==2.7.*",
"drf_ujson2==1.7.*", "drf_ujson2==1.7.*",
"geoip2==5.*", "geoip2==4.*",
"importlib_metadata==8.*", # Polyfill, we can probably drop this once we require Python 3.10+ "importlib_metadata==8.*", # Polyfill, we can probably drop this once we require Python 3.10+
"isoweek", "isoweek",
"jsonschema", "jsonschema",
@@ -89,9 +89,9 @@ dependencies = [
"pyuca", "pyuca",
"qrcode==8.0", "qrcode==8.0",
"redis==5.2.*", "redis==5.2.*",
"reportlab==4.3.*", "reportlab==4.2.*",
"requests==2.31.*", "requests==2.31.*",
"sentry-sdk==2.22.*", "sentry-sdk==2.20.*",
"sepaxml==2.6.*", "sepaxml==2.6.*",
"stripe==7.9.*", "stripe==7.9.*",
"text-unidecode==1.*", "text-unidecode==1.*",
@@ -113,7 +113,7 @@ dev = [
"fakeredis==2.26.*", "fakeredis==2.26.*",
"flake8==7.1.*", "flake8==7.1.*",
"freezegun", "freezegun",
"isort==6.0.*", "isort==5.13.*",
"pep8-naming==0.14.*", "pep8-naming==0.14.*",
"potypo", "potypo",
"pytest-asyncio>=0.24", "pytest-asyncio>=0.24",
+1 -1
View File
@@ -19,4 +19,4 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see # 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/>.
# #
__version__ = "2025.2.0" __version__ = "2024.12.0.dev0"
+1 -2
View File
@@ -93,7 +93,6 @@ ALL_LANGUAGES = [
('zh-hans', _('Chinese (simplified)')), ('zh-hans', _('Chinese (simplified)')),
('zh-hant', _('Chinese (traditional)')), ('zh-hant', _('Chinese (traditional)')),
('cs', _('Czech')), ('cs', _('Czech')),
('hr', _('Croatian')),
('da', _('Danish')), ('da', _('Danish')),
('nl', _('Dutch')), ('nl', _('Dutch')),
('nl-informal', _('Dutch (informal)')), ('nl-informal', _('Dutch (informal)')),
@@ -124,7 +123,7 @@ LANGUAGES_RTL = {
'ar', 'hw' 'ar', 'hw'
} }
LANGUAGES_INCUBATING = { LANGUAGES_INCUBATING = {
'pt-br', 'gl', 'fi', 'pt-br', 'gl',
} }
LANGUAGES = ALL_LANGUAGES LANGUAGES = ALL_LANGUAGES
LOCALE_PATHS = [ LOCALE_PATHS = [
-2
View File
@@ -930,8 +930,6 @@ class DeviceEventSettingsSerializer(EventSettingsSerializer):
'invoice_address_from_country', 'invoice_address_from_country',
'invoice_address_from_tax_id', 'invoice_address_from_tax_id',
'invoice_address_from_vat_id', 'invoice_address_from_vat_id',
'order_phone_asked',
'order_phone_required',
'name_scheme', 'name_scheme',
'reusable_media_type_barcode', 'reusable_media_type_barcode',
'reusable_media_type_nfc_uid', 'reusable_media_type_nfc_uid',
+1 -1
View File
@@ -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', 'hidden_if_item_available_mode', 'allow_waitinglist', 'show_quota_left', 'hidden_if_available', 'hidden_if_item_available', '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',
+2 -31
View File
@@ -46,7 +46,6 @@ from pretix.api.serializers.i18n import I18nAwareModelSerializer
from pretix.api.serializers.item import ( from pretix.api.serializers.item import (
InlineItemVariationSerializer, ItemSerializer, QuestionSerializer, InlineItemVariationSerializer, ItemSerializer, QuestionSerializer,
) )
from pretix.api.signals import order_api_details, orderposition_api_details
from pretix.base.decimal import round_decimal 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 (
@@ -495,18 +494,6 @@ class OrderPositionListSerializer(serializers.ListSerializer):
return data return data
class OrderPositionPluginDataField(serializers.Field):
def to_representation(self, value: OrderPosition):
d = {}
if value and value.pk:
for recv, resp in orderposition_api_details.send(
sender=self.context.get("event") or value.order.event,
orderposition=value
):
d.update(resp)
return d
class OrderPositionSerializer(I18nAwareModelSerializer): class OrderPositionSerializer(I18nAwareModelSerializer):
checkins = CheckinSerializer(many=True, read_only=True) checkins = CheckinSerializer(many=True, read_only=True)
print_logs = PrintLogSerializer(many=True, read_only=True) print_logs = PrintLogSerializer(many=True, read_only=True)
@@ -517,7 +504,6 @@ class OrderPositionSerializer(I18nAwareModelSerializer):
seat = InlineSeatSerializer(read_only=True) seat = InlineSeatSerializer(read_only=True)
country = CompatibleCountryField(source='*') country = CompatibleCountryField(source='*')
attendee_name = serializers.CharField(required=False) attendee_name = serializers.CharField(required=False)
plugin_data = OrderPositionPluginDataField(source='*', allow_null=True, read_only=True)
class Meta: class Meta:
list_serializer_class = OrderPositionListSerializer list_serializer_class = OrderPositionListSerializer
@@ -527,7 +513,7 @@ class OrderPositionSerializer(I18nAwareModelSerializer):
'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',
'print_logs', 'downloads', 'answers', 'tax_rule', 'tax_code', 'pseudonymization_id', 'pdf_data', 'seat', 'print_logs', 'downloads', 'answers', 'tax_rule', 'tax_code', 'pseudonymization_id', 'pdf_data', 'seat',
'canceled', 'valid_from', 'valid_until', 'blocked', 'voucher_budget_use', 'plugin_data') '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', 'tax_code', 'pseudonymization_id', 'addon_to', 'subevent', 'checkins', 'downloads', 'answers', 'tax_rule', 'tax_code', 'pseudonymization_id',
@@ -744,18 +730,6 @@ class OrderListSerializer(serializers.ListSerializer):
return data return data
class OrderPluginDataField(serializers.Field):
def to_representation(self, value: Order):
d = {}
if value and value.pk:
for recv, resp in order_api_details.send(
sender=self.context.get("event") or value.event,
order=value
):
d.update(resp)
return d
class OrderSerializer(I18nAwareModelSerializer): class OrderSerializer(I18nAwareModelSerializer):
event = SlugRelatedField(slug_field='slug', read_only=True) event = SlugRelatedField(slug_field='slug', read_only=True)
invoice_address = InvoiceAddressSerializer(allow_null=True) invoice_address = InvoiceAddressSerializer(allow_null=True)
@@ -773,7 +747,6 @@ class OrderSerializer(I18nAwareModelSerializer):
queryset=SalesChannel.objects.none(), queryset=SalesChannel.objects.none(),
required=False, required=False,
) )
plugin_data = OrderPluginDataField(source='*', allow_null=True, read_only=True)
class Meta: class Meta:
model = Order model = Order
@@ -782,7 +755,7 @@ class OrderSerializer(I18nAwareModelSerializer):
'code', 'event', 'status', 'testmode', 'secret', 'email', 'phone', 'locale', 'datetime', 'expires', 'payment_date', 'code', 'event', 'status', 'testmode', 'secret', 'email', 'phone', 'locale', 'datetime', 'expires', 'payment_date',
'payment_provider', 'fees', 'total', 'comment', 'custom_followup_at', 'invoice_address', 'positions', 'downloads', 'payment_provider', 'fees', 'total', 'comment', 'custom_followup_at', 'invoice_address', 'positions', 'downloads',
'checkin_attention', 'checkin_text', 'last_modified', 'payments', 'refunds', 'require_approval', 'sales_channel', 'checkin_attention', 'checkin_text', 'last_modified', 'payments', 'refunds', 'require_approval', 'sales_channel',
'url', 'customer', 'valid_if_pending', 'api_meta', 'cancellation_date', 'plugin_data', 'url', 'customer', 'valid_if_pending', 'api_meta', 'cancellation_date'
) )
read_only_fields = ( read_only_fields = (
'code', 'status', 'testmode', 'secret', 'datetime', 'expires', 'payment_date', 'code', 'status', 'testmode', 'secret', 'datetime', 'expires', 'payment_date',
@@ -1102,7 +1075,6 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
queryset=SalesChannel.objects.none(), queryset=SalesChannel.objects.none(),
required=False, required=False,
) )
locale = serializers.ChoiceField(choices=[], required=False, allow_null=True)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
@@ -1110,7 +1082,6 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
self.fields['customer'].queryset = self.context['event'].organizer.customers.all() self.fields['customer'].queryset = self.context['event'].organizer.customers.all()
self.fields['expires'].required = False self.fields['expires'].required = False
self.fields["sales_channel"].queryset = self.context["event"].organizer.sales_channels.all() self.fields["sales_channel"].queryset = self.context["event"].organizer.sales_channels.all()
self.fields["locale"].choices = self.context['event'].settings.locales
class Meta: class Meta:
model = Order model = Order
+1 -52
View File
@@ -30,7 +30,7 @@ from rest_framework.exceptions import ValidationError
from pretix.api.serializers.order import ( from pretix.api.serializers.order import (
AnswerCreateSerializer, AnswerSerializer, CompatibleCountryField, AnswerCreateSerializer, AnswerSerializer, CompatibleCountryField,
OrderFeeCreateSerializer, OrderPositionCreateSerializer, OrderPositionCreateSerializer,
) )
from pretix.base.models import ItemVariation, Order, OrderFee, OrderPosition from pretix.base.models import ItemVariation, Order, OrderFee, OrderPosition
from pretix.base.services.orders import OrderError from pretix.base.services.orders import OrderError
@@ -104,54 +104,6 @@ class OrderPositionCreateForExistingOrderSerializer(OrderPositionCreateSerialize
raise ValidationError(str(e)) raise ValidationError(str(e))
class OrderFeeCreateForExistingOrderSerializer(OrderFeeCreateSerializer):
order = serializers.SlugRelatedField(slug_field='code', queryset=Order.objects.none(), required=True, allow_null=False)
value = serializers.DecimalField(required=True, allow_null=False, decimal_places=2,
max_digits=13)
internal_type = serializers.CharField(required=False, default="")
class Meta:
model = OrderFee
fields = ('order', 'fee_type', 'value', 'description', 'internal_type', 'tax_rule')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not self.context:
return
self.fields['order'].queryset = self.context['event'].orders.all()
self.fields['tax_rule'].queryset = self.context['event'].tax_rules.all()
if 'order' in self.context:
del self.fields['order']
def validate(self, data):
data = super().validate(data)
if 'order' in self.context:
data['order'] = self.context['order']
return data
def create(self, validated_data):
ocm = self.context['ocm']
try:
f = OrderFee(
order=validated_data['order'],
fee_type=validated_data['fee_type'],
value=validated_data.get('value'),
description=validated_data.get('description'),
internal_type=validated_data.get('internal_type'),
tax_rule=validated_data.get('tax_rule'),
)
f._calculate_tax()
ocm.add_fee(f)
if self.context.get('commit', True):
ocm.commit()
return validated_data['order'].fees.order_by('-pk').first()
else:
return OrderFee() # fake to appease DRF
except OrderError as e:
raise ValidationError(str(e))
class OrderPositionInfoPatchSerializer(serializers.ModelSerializer): class OrderPositionInfoPatchSerializer(serializers.ModelSerializer):
answers = AnswerSerializer(many=True) answers = AnswerSerializer(many=True)
country = CompatibleCountryField(source='*') country = CompatibleCountryField(source='*')
@@ -449,9 +401,6 @@ class OrderChangeOperationSerializer(serializers.Serializer):
self.fields['split_positions'] = SelectPositionSerializer( self.fields['split_positions'] = SelectPositionSerializer(
many=True, required=False, context=self.context many=True, required=False, context=self.context
) )
self.fields['create_fees'] = OrderFeeCreateForExistingOrderSerializer(
many=True, required=False, context=self.context
)
self.fields['patch_fees'] = PatchFeeSerializer( self.fields['patch_fees'] = PatchFeeSerializer(
many=True, required=False, context=self.context many=True, required=False, context=self.context
) )
-2
View File
@@ -22,7 +22,6 @@
import logging import logging
from decimal import Decimal from decimal import Decimal
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q from django.db.models import Q
from django.utils.crypto import get_random_string from django.utils.crypto import get_random_string
@@ -78,7 +77,6 @@ class CustomerSerializer(I18nAwareModelSerializer):
last_login = serializers.DateTimeField(read_only=True) last_login = serializers.DateTimeField(read_only=True)
date_joined = serializers.DateTimeField(read_only=True) date_joined = serializers.DateTimeField(read_only=True)
last_modified = serializers.DateTimeField(read_only=True) last_modified = serializers.DateTimeField(read_only=True)
locale = serializers.ChoiceField(choices=settings.LANGUAGES, default='en')
class Meta: class Meta:
model = Customer model = Customer
@@ -19,7 +19,6 @@
# 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 rest_framework import serializers
from rest_framework.exceptions import ValidationError from rest_framework.exceptions import ValidationError
from pretix.api.serializers.i18n import I18nAwareModelSerializer from pretix.api.serializers.i18n import I18nAwareModelSerializer
@@ -27,17 +26,12 @@ from pretix.base.models import WaitingListEntry
class WaitingListSerializer(I18nAwareModelSerializer): class WaitingListSerializer(I18nAwareModelSerializer):
locale = serializers.ChoiceField(choices=[], required=False, allow_null=True)
class Meta: class Meta:
model = WaitingListEntry model = WaitingListEntry
fields = ('id', 'created', 'name', 'name_parts', 'email', 'phone', 'voucher', 'item', 'variation', 'locale', 'subevent', 'priority') fields = ('id', 'created', 'name', 'name_parts', 'email', 'phone', 'voucher', 'item', 'variation', 'locale', 'subevent', 'priority')
read_only_fields = ('id', 'created', 'voucher') read_only_fields = ('id', 'created', 'voucher')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["locale"].choices = self.context['event'].settings.locales
def validate(self, data): def validate(self, data):
data = super().validate(data) data = super().validate(data)
event = self.context['event'] event = self.context['event']
@@ -66,7 +60,4 @@ class WaitingListSerializer(I18nAwareModelSerializer):
if data.get('name_parts') and '_scheme' not in data.get('name_parts'): if data.get('name_parts') and '_scheme' not in data.get('name_parts'):
data['name_parts']['_scheme'] = event.settings.name_scheme data['name_parts']['_scheme'] = event.settings.name_scheme
if data.get('locale', None) is None:
data['locale'] = event.settings.locale
return data return data
+1 -23
View File
@@ -26,7 +26,7 @@ from django.utils.timezone import now
from django_scopes import scopes_disabled from django_scopes import scopes_disabled
from pretix.api.models import ApiCall, WebHookCall from pretix.api.models import ApiCall, WebHookCall
from pretix.base.signals import EventPluginSignal, periodic_task from pretix.base.signals import periodic_task
from pretix.helpers.periodic import minimum_interval from pretix.helpers.periodic import minimum_interval
register_webhook_events = Signal() register_webhook_events = Signal()
@@ -43,28 +43,6 @@ return an instance of a subclass of ``pretix.api.auth.devicesecurity.BaseSecurit
or a list of such instances. or a list of such instances.
""" """
order_api_details = EventPluginSignal()
"""
Arguments: ``order``
This signal is sent out to fill the ``plugin_details`` field of the order API. Receivers
should return a dictionary that is combined with the dictionaries of all other plugins.
Note that doing database or network queries in receivers to this signal is discouraged
and could cause serious performance issues. The main purpose is to provide information
from e.g. ``meta_info`` to the API consumer,
"""
orderposition_api_details = EventPluginSignal()
"""
Arguments: ``orderposition``
This signal is sent out to fill the ``plugin_details`` field of the order API. Receivers
should return a dictionary that is combined with the dictionaries of all other plugins.
Note that doing database or network queries in receivers to this signal is discouraged
and could cause serious performance issues. The main purpose is to provide information
from e.g. ``meta_info`` to the API consumer,
"""
@receiver(periodic_task) @receiver(periodic_task)
@scopes_disabled() @scopes_disabled()
+2 -9
View File
@@ -63,8 +63,7 @@ from pretix.api.serializers.order import (
) )
from pretix.api.serializers.orderchange import ( from pretix.api.serializers.orderchange import (
BlockNameSerializer, OrderChangeOperationSerializer, BlockNameSerializer, OrderChangeOperationSerializer,
OrderFeeChangeSerializer, OrderFeeCreateForExistingOrderSerializer, OrderFeeChangeSerializer, OrderPositionChangeSerializer,
OrderPositionChangeSerializer,
OrderPositionCreateForExistingOrderSerializer, OrderPositionCreateForExistingOrderSerializer,
OrderPositionInfoPatchSerializer, OrderPositionInfoPatchSerializer,
) )
@@ -708,7 +707,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
) )
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
if 'send_mail' in request.data and 'send_email' not in request.data and isinstance(request.data, dict): if 'send_mail' in request.data and 'send_email' not in request.data:
request.data['send_email'] = request.data['send_mail'] request.data['send_email'] = request.data['send_mail']
serializer = OrderCreateSerializer(data=request.data, context=self.get_serializer_context()) serializer = OrderCreateSerializer(data=request.data, context=self.get_serializer_context())
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
@@ -989,12 +988,6 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
ocm.cancel_fee(r['fee']) ocm.cancel_fee(r['fee'])
canceled_fees.add(r['fee']) canceled_fees.add(r['fee'])
for r in serializer.validated_data.get('create_fees', []):
pos_serializer = OrderFeeCreateForExistingOrderSerializer(
context={'ocm': ocm, 'commit': False, 'event': request.event, **self.get_serializer_context()},
)
pos_serializer.create(r)
for r in serializer.validated_data.get('patch_fees', []): for r in serializer.validated_data.get('patch_fees', []):
if r['fee'] in canceled_fees: if r['fee'] in canceled_fees:
continue continue
+3 -19
View File
@@ -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 parse_qsl, urlencode, urljoin from urllib.parse import urlencode, urljoin
import jwt import jwt
import requests import requests
@@ -139,16 +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
def oidc_authorize_url(provider, state, redirect_uri, pkce_code_verifier): def oidc_authorize_url(provider, state, redirect_uri):
endpoint = provider.configuration['provider_config']['authorization_endpoint'] endpoint = provider.configuration['provider_config']['authorization_endpoint']
params = { params = {
# https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.1 # https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.1
@@ -159,18 +154,10 @@ def oidc_authorize_url(provider, state, redirect_uri, pkce_code_verifier):
'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"]))
if pkce_code_verifier and "S256" in provider.configuration['provider_config'].get('code_challenge_methods_supported', []):
params["code_challenge"] = base64.urlsafe_b64encode(hashlib.sha256(pkce_code_verifier.encode()).digest()).decode().rstrip("=")
params["code_challenge_method"] = "S256"
return endpoint + '?' + urlencode(params) return endpoint + '?' + urlencode(params)
def oidc_validate_authorization(provider, code, redirect_uri, pkce_code_verifier): def oidc_validate_authorization(provider, code, redirect_uri):
endpoint = provider.configuration['provider_config']['token_endpoint'] endpoint = provider.configuration['provider_config']['token_endpoint']
# Wall of shame and RFC ignorant IDPs # Wall of shame and RFC ignorant IDPs
@@ -192,9 +179,6 @@ def oidc_validate_authorization(provider, code, redirect_uri, pkce_code_verifier
'redirect_uri': redirect_uri, 'redirect_uri': redirect_uri,
} }
if pkce_code_verifier and "S256" in provider.configuration['provider_config'].get('code_challenge_methods_supported', []):
params["code_verifier"] = pkce_code_verifier
if token_endpoint_auth_method == 'client_secret_post': if token_endpoint_auth_method == 'client_secret_post':
params['client_id'] = provider.configuration['client_id'] params['client_id'] = provider.configuration['client_id']
params['client_secret'] = provider.configuration['client_secret'] params['client_secret'] = provider.configuration['client_secret']
+3 -3
View File
@@ -93,7 +93,7 @@ class MarkdownTextarea(forms.Textarea):
'<div class="i18n-form-group">%s<div class="i18n-field-markdown-note">%s</div></div>' % ( '<div class="i18n-form-group">%s<div class="i18n-field-markdown-note">%s</div></div>' % (
super()._render(template_name, context, renderer=None), super()._render(template_name, context, renderer=None),
_("You can use {markup_name} in this field.").format( _("You can use {markup_name} in this field.").format(
markup_name='<a href="https://docs.pretix.eu/guides/markdown/" target="_blank">Markdown</a>' markup_name='<a href="https://docs.pretix.eu/en/latest/user/markdown.html" target="_blank">Markdown</a>'
) )
) )
) )
@@ -104,7 +104,7 @@ class I18nMarkdownTextarea(i18nfield.forms.I18nTextarea):
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(
markup_name='<a href="https://docs.pretix.eu/guides/markdown/" target="_blank">Markdown</a>' markup_name='<a href="https://docs.pretix.eu/en/latest/user/markdown.html" target="_blank">Markdown</a>'
) )
) )
] ]
@@ -116,7 +116,7 @@ class I18nMarkdownTextInput(i18nfield.forms.I18nTextInput):
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(
markup_name='<a href="https://docs.pretix.eu/guides/markdown/" target="_blank">Markdown</a>' markup_name='<a href="https://docs.pretix.eu/en/latest/user/markdown.html" target="_blank">Markdown</a>'
) )
) )
] ]
+6 -5
View File
@@ -1025,9 +1025,10 @@ 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(), 'vat_id': forms.TextInput(attrs={'data-display-dependency': '#id_is_business_1'}),
'internal_reference': forms.TextInput, 'internal_reference': forms.TextInput,
} }
labels = { labels = {
@@ -1058,8 +1059,8 @@ class BaseInvoiceAddressForm(forms.ModelForm):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields["company"].widget.attrs["data-display-dependency"] = f'input[name="{self.add_prefix("is_business")}"][value="business"]' self.fields["company"].widget.attrs["data-display-dependency"] = f'#id_{self.add_prefix("is_business")}_1'
self.fields["vat_id"].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'#id_{self.add_prefix("is_business")}_1'
if not self.ask_vat_id: if not self.ask_vat_id:
del self.fields['vat_id'] del self.fields['vat_id']
@@ -1140,9 +1141,9 @@ class BaseInvoiceAddressForm(forms.ModelForm):
) )
if self.address_required and not self.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'] = f'input[name="{self.add_prefix("is_business")}"][value="individual"]' self.fields['name_parts'].widget.attrs['data-required-if'] = f'#id_{self.add_prefix("is_business")}_0'
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'] = f'input[name="{self.add_prefix("is_business")}"][value="business"]' self.fields['company'].widget.attrs['data-required-if'] = f'#id_{self.add_prefix("is_business")}_1'
if not event.settings.invoice_address_beneficiary: if not event.settings.invoice_address_beneficiary:
del self.fields['beneficiary'] del self.fields['beneficiary']
+1 -57
View File
@@ -62,58 +62,6 @@ from pretix.presale.style import get_fonts
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def addon_aware_groupby(iterable, key, is_addon):
"""
We use groupby() to visually group identical lines on an invoice. For example, instead of
Product 1 5.00 EUR
Product 1 5.00 EUR
Product 1 5.00 EUR
Product 2 7.00 EUR
We want to print
3x Product 1 5.00 EUR = 15.00 EUR
Product 2 7.00 EUR
However, this fails for setups with addon-products since groupby() only groups consecutive
lines with the same identity. So in
Product 1 5.00 EUR
+ Addon 1 2.00 EUR
Product 1 5.00 EUR
+ Addon 1 2.00 EUR
Product 1 5.00 EUR
+ Addon 2 3.00 EUR
There is no consecutive repetition of the same entity. This function provides a specialised groupby which
understands the product/addon relationship and packs groups of these addons together if they are, in fact,
identical groups:
2x Product 1 5.00 EUR = 10.00 EUR
+ 2x Addon 1 2.00 EUR = 4.00 EUR
Product 1 5.00 EUR
+ Addon 2 3.00 EUR
"""
packed_groups = []
for i in iterable:
if is_addon(i):
packed_groups[-1].append(i)
else:
packed_groups.append([i])
# Each packed_groups element contains a list with the parent product as first element, and any addon products following
def _reorder(packed_groups):
# Emit the products as individual products again, reordered by "all parent products, then all addon products"
# within each group.
for _, repeated_groups in groupby(packed_groups, key=lambda g: tuple(key(a) for a in g)):
for repeated_items in zip(*repeated_groups):
yield from repeated_items
return groupby(_reorder(packed_groups), key)
class NumberedCanvas(Canvas): class NumberedCanvas(Canvas):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.font_regular = kwargs.pop('font_regular') self.font_regular = kwargs.pop('font_regular')
@@ -696,11 +644,7 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
line.event_date_from, line.event_date_to) line.event_date_from, line.event_date_to)
total = Decimal('0.00') total = Decimal('0.00')
for (description, tax_rate, tax_name, net_value, gross_value, *ignored), lines in addon_aware_groupby( for (description, tax_rate, tax_name, net_value, gross_value, *ignored), lines in groupby(self.invoice.lines.all(), key=_group_key):
self.invoice.lines.all(),
key=_group_key,
is_addon=lambda l: l.description.startswith(" +"),
):
lines = list(lines) lines = list(lines)
if has_taxes: if has_taxes:
if len(lines) > 1: if len(lines) > 1:
-165
View File
@@ -1,165 +0,0 @@
#
# 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
+140 -34
View File
@@ -19,20 +19,137 @@
# 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 typing import Optional from collections import defaultdict
from django.urls import reverse from django.urls import reverse
from django.utils.html import escape
from django.utils.translation import gettext_lazy as _, pgettext_lazy from django.utils.translation import gettext_lazy as _, pgettext_lazy
from pretix.base.models import ( from pretix.base.signals import EventPluginRegistry
Discount, Item, ItemCategory, Order, Question, Quota, SubEvent, TaxRule,
Voucher,
)
from .logentrytype_registry import ( # noqa
ClearDataShredderMixin, LogEntryType, NoOpShredderMixin, log_entry_types, def make_link(a_map, wrapper, is_active=True, event=None, plugin_name=None):
make_link, LogEntryTypeRegistry, if a_map:
) if is_active:
a_map['val'] = '<a href="{href}">{val}</a>'.format_map(a_map)
elif event and plugin_name:
a_map['val'] = (
'<i>{val}</i> <a href="{plugin_href}">'
'<span data-toggle="tooltip" title="{errmes}" class="fa fa-warning fa-fw"></span></a>'
).format_map({
**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'] = '<i>{val}</i> <span data-toggle="tooltip" title="{errmes}" class="fa fa-warning fa-fw"></span>'.format_map({
**a_map,
"errmes": _("The relevant plugin is currently not active."),
})
return wrapper.format_map(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__ == LogEntryType.__module__:
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):
"""
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: '?', logentry.parsed_data)
return plain.format_map(data)
else:
return plain
def get_object_link_info(self, logentry) -> 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`` (containing a URL to view/edit the object) and ``val`` (containing the
escaped 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 EventLogEntryType(LogEntryType): class EventLogEntryType(LogEntryType):
@@ -40,27 +157,15 @@ class EventLogEntryType(LogEntryType):
Base class for any `LogEntry` type whose `content_object` is either an `Event` itself or belongs to a specific `Event`. 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]: def get_object_link_info(self, logentry) -> dict:
if hasattr(self, 'object_link_viewname'): if hasattr(self, 'object_link_viewname') and logentry.content_object:
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 { return {
'href': reverse(self.object_link_viewname, kwargs={ 'href': reverse(self.object_link_viewname, kwargs={
'event': logentry.event.slug, 'event': logentry.event.slug,
'organizer': logentry.event.organizer.slug, 'organizer': logentry.event.organizer.slug,
**self.object_link_args(content), **self.object_link_args(logentry.content_object),
}), }),
'val': self.object_link_display_name(logentry.content_object), 'val': escape(self.object_link_display_name(logentry.content_object)),
} }
def object_link_args(self, content_object): def object_link_args(self, content_object):
@@ -77,7 +182,6 @@ class EventLogEntryType(LogEntryType):
class OrderLogEntryType(EventLogEntryType): class OrderLogEntryType(EventLogEntryType):
object_link_wrapper = _('Order {val}') object_link_wrapper = _('Order {val}')
object_link_viewname = 'control:event.order' object_link_viewname = 'control:event.order'
content_type = Order
def object_link_args(self, order): def object_link_args(self, order):
return {'code': order.code} return {'code': order.code}
@@ -90,7 +194,6 @@ class VoucherLogEntryType(EventLogEntryType):
object_link_wrapper = _('Voucher {val}') object_link_wrapper = _('Voucher {val}')
object_link_viewname = 'control:event.voucher' object_link_viewname = 'control:event.voucher'
object_link_argname = 'voucher' object_link_argname = 'voucher'
content_type = Voucher
def object_link_display_name(self, voucher): def object_link_display_name(self, voucher):
if len(voucher.code) > 6: if len(voucher.code) > 6:
@@ -102,46 +205,49 @@ class ItemLogEntryType(EventLogEntryType):
object_link_wrapper = _('Product {val}') object_link_wrapper = _('Product {val}')
object_link_viewname = 'control:event.item' object_link_viewname = 'control:event.item'
object_link_argname = 'item' object_link_argname = 'item'
content_type = Item
class SubEventLogEntryType(EventLogEntryType): class SubEventLogEntryType(EventLogEntryType):
object_link_wrapper = pgettext_lazy('subevent', 'Date {val}') object_link_wrapper = pgettext_lazy('subevent', 'Date {val}')
object_link_viewname = 'control:event.subevent' object_link_viewname = 'control:event.subevent'
object_link_argname = 'subevent' object_link_argname = 'subevent'
content_type = SubEvent
class QuotaLogEntryType(EventLogEntryType): class QuotaLogEntryType(EventLogEntryType):
object_link_wrapper = _('Quota {val}') object_link_wrapper = _('Quota {val}')
object_link_viewname = 'control:event.items.quotas.show' object_link_viewname = 'control:event.items.quotas.show'
object_link_argname = 'quota' object_link_argname = 'quota'
content_type = Quota
class DiscountLogEntryType(EventLogEntryType): class DiscountLogEntryType(EventLogEntryType):
object_link_wrapper = _('Discount {val}') object_link_wrapper = _('Discount {val}')
object_link_viewname = 'control:event.items.discounts.edit' object_link_viewname = 'control:event.items.discounts.edit'
object_link_argname = 'discount' object_link_argname = 'discount'
content_type = Discount
class ItemCategoryLogEntryType(EventLogEntryType): class ItemCategoryLogEntryType(EventLogEntryType):
object_link_wrapper = _('Category {val}') object_link_wrapper = _('Category {val}')
object_link_viewname = 'control:event.items.categories.edit' object_link_viewname = 'control:event.items.categories.edit'
object_link_argname = 'category' object_link_argname = 'category'
content_type = ItemCategory
class QuestionLogEntryType(EventLogEntryType): class QuestionLogEntryType(EventLogEntryType):
object_link_wrapper = _('Question {val}') object_link_wrapper = _('Question {val}')
object_link_viewname = 'control:event.items.questions.show' object_link_viewname = 'control:event.items.questions.show'
object_link_argname = 'question' object_link_argname = 'question'
content_type = Question
class TaxRuleLogEntryType(EventLogEntryType): class TaxRuleLogEntryType(EventLogEntryType):
object_link_wrapper = _('Tax rule {val}') object_link_wrapper = _('Tax rule {val}')
object_link_viewname = 'control:event.settings.tax.edit' object_link_viewname = 'control:event.settings.tax.edit'
object_link_argname = 'rule' object_link_argname = 'rule'
content_type = TaxRule
class NoOpShredderMixin:
def shred_pii(self, logentry):
pass
class ClearDataShredderMixin:
def shred_pii(self, logentry):
logentry.data = None
@@ -1,18 +0,0 @@
# 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),
),
]
@@ -1,28 +0,0 @@
# Generated by Django 4.2.17 on 2025-02-07 16:42
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("pretixbase", "0276_item_hidden_if_item_available_mode"),
]
operations = [
migrations.AddField(
model_name="customerssoclient",
name="require_pkce",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="customerssogrant",
name="code_challenge",
field=models.TextField(null=True),
),
migrations.AddField(
model_name="customerssogrant",
name="code_challenge_method",
field=models.CharField(max_length=255, null=True),
),
]
-6
View File
@@ -416,10 +416,6 @@ class CustomerSSOClient(LoggedModel):
authorization_grant_type = models.CharField( authorization_grant_type = models.CharField(
max_length=32, choices=GRANT_TYPES, verbose_name=_("Grant type"), default=GRANT_AUTHORIZATION_CODE, max_length=32, choices=GRANT_TYPES, verbose_name=_("Grant type"), default=GRANT_AUTHORIZATION_CODE,
) )
require_pkce = models.BooleanField(
verbose_name=_("Require PKCE extension"),
default=False,
)
redirect_uris = models.TextField( redirect_uris = models.TextField(
blank=False, blank=False,
verbose_name=_("Redirection URIs"), verbose_name=_("Redirection URIs"),
@@ -485,8 +481,6 @@ class CustomerSSOGrant(models.Model):
expires = models.DateTimeField() expires = models.DateTimeField()
redirect_uri = models.TextField() redirect_uri = models.TextField()
scope = models.TextField(blank=True) scope = models.TextField(blank=True)
code_challenge = models.TextField(blank=True, null=True)
code_challenge_method = models.CharField(max_length=255, blank=True, null=True)
class CustomerSSOAccessToken(models.Model): class CustomerSSOAccessToken(models.Model):
+1 -12
View File
@@ -442,12 +442,8 @@ 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 product with info on why its unavailable")), (UNAVAIL_MODE_INFO, _("Show info text if 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'
@@ -600,11 +596,6 @@ 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,
@@ -894,8 +885,6 @@ 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
+3 -12
View File
@@ -37,10 +37,10 @@ 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 connections, models from django.db import models
from django.utils.functional import cached_property from django.utils.functional import cached_property
from pretix.base.logentrytype_registry import log_entry_types, make_link from pretix.base.logentrytypes import log_entry_types, make_link
from pretix.base.signals import is_app_active, logentry_object_link from pretix.base.signals import is_app_active, logentry_object_link
@@ -93,7 +93,7 @@ class LogEntry(models.Model):
def display(self): def display(self):
log_entry_type, meta = log_entry_types.get(action_type=self.action_type) log_entry_type, meta = log_entry_types.get(action_type=self.action_type)
if log_entry_type: if log_entry_type:
return log_entry_type.display(self, self.parsed_data) return log_entry_type.display(self)
from ..signals import logentry_display from ..signals import logentry_display
@@ -165,15 +165,6 @@ class LogEntry(models.Model):
def delete(self, using=None, keep_parents=False): def delete(self, using=None, keep_parents=False):
raise TypeError("Logs cannot be deleted.") raise TypeError("Logs cannot be deleted.")
@classmethod
def bulk_create_and_postprocess(cls, objects):
if connections['default'].features.can_return_rows_from_bulk_insert:
cls.objects.bulk_create(objects)
else:
for le in objects:
le.save()
cls.bulk_postprocess(objects)
@classmethod @classmethod
def bulk_postprocess(cls, objects): def bulk_postprocess(cls, objects):
from pretix.api.webhooks import notify_webhooks from pretix.api.webhooks import notify_webhooks
+1 -1
View File
@@ -355,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.log_action( self.event.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,
+2 -9
View File
@@ -957,19 +957,12 @@ class BasePaymentProvider:
def cancel_payment(self, payment: OrderPayment): def cancel_payment(self, payment: OrderPayment):
""" """
Will be called to cancel a payment. The default implementation fails if the payment is Will be called to cancel a payment. The default implementation just sets the payment state to canceled,
``OrderPayment.PAYMENT_STATE_PENDING`` and ``abort_pending_allowed`` is false. Otherwise, it just sets the but in some cases you might want to notify an external provider.
payment state to canceled. In some cases you might want to modify this behaviour to notify the external provider
of the cancellation.
On success, you should set ``payment.state = OrderPayment.PAYMENT_STATE_CANCELED`` (or call the super method). On success, you should set ``payment.state = OrderPayment.PAYMENT_STATE_CANCELED`` (or call the super method).
On failure, you should raise a PaymentException. On failure, you should raise a PaymentException.
""" """
if payment.state == OrderPayment.PAYMENT_STATE_PENDING and not self.abort_pending_allowed:
raise PaymentException(_(
"This payment is already being processed and can not be canceled any more."
))
payment.state = OrderPayment.PAYMENT_STATE_CANCELED payment.state = OrderPayment.PAYMENT_STATE_CANCELED
payment.save(update_fields=['state']) payment.save(update_fields=['state'])
-4
View File
@@ -822,10 +822,6 @@ class Renderer:
kwargs = {} kwargs = {}
if o.get('nowhitespace', False): if o.get('nowhitespace', False):
kwargs['barBorder'] = 0 kwargs['barBorder'] = 0
if o.get('color'):
kwargs['barFillColor'] = Color(o['color'][0] / 255, o['color'][1] / 255, o['color'][2] / 255)
qrw = QrCodeWidget(content, barLevel=level, barHeight=reqs, barWidth=reqs, **kwargs) qrw = QrCodeWidget(content, barLevel=level, barHeight=reqs, barWidth=reqs, **kwargs)
d = Drawing(reqs, reqs) d = Drawing(reqs, reqs)
d.add(qrw) d.add(qrw)
+1 -6
View File
@@ -624,9 +624,6 @@ class CartManager:
if p.is_bundled: if p.is_bundled:
continue continue
if p.custom_price_input and p.custom_price_input != p.listed_price:
continue
if p.listed_price is None: if p.listed_price is None:
if p.addon_to_id and is_included_for_free(p.item, p.addon_to): if p.addon_to_id and is_included_for_free(p.item, p.addon_to):
listed_price = Decimal('0.00') listed_price = Decimal('0.00')
@@ -1349,10 +1346,8 @@ class CartManager:
op.position.price_after_voucher = op.price_after_voucher op.position.price_after_voucher = op.price_after_voucher
op.position.voucher = op.voucher op.position.voucher = op.voucher
if op.position.custom_price_input and op.position.custom_price_input == op.position.listed_price:
op.position.custom_price_input = op.price_after_voucher
# op.position.price will be set in recompute_final_prices_and_taxes # op.position.price will be set in recompute_final_prices_and_taxes
op.position.save(update_fields=['price_after_voucher', 'voucher', 'custom_price_input']) op.position.save(update_fields=['price_after_voucher', 'voucher'])
vouchers_ok[op.voucher] -= 1 vouchers_ok[op.voucher] -= 1
if op.voucher.all_bundles_included or op.voucher.all_addons_included: if op.voucher.all_bundles_included or op.voucher.all_addons_included:
+1 -1
View File
@@ -674,7 +674,7 @@ def replace_images_with_cid_paths(body_html):
if body_html: if body_html:
email = BeautifulSoup(body_html, "lxml") email = BeautifulSoup(body_html, "lxml")
cid_images = [] cid_images = []
for image in email.find_all('img'): for image in email.findAll('img'):
original_image_src = image['src'] original_image_src = image['src']
try: try:
+4 -26
View File
@@ -98,9 +98,8 @@ from pretix.base.services.quotas import QuotaAvailability
from pretix.base.services.tasks import ProfiledEventTask, ProfiledTask from pretix.base.services.tasks import ProfiledEventTask, ProfiledTask
from pretix.base.signals import ( from pretix.base.signals import (
order_approved, order_canceled, order_changed, order_denied, order_expired, order_approved, order_canceled, order_changed, order_denied, order_expired,
order_expiry_changed, order_fee_calculation, order_paid, order_placed, order_fee_calculation, order_paid, order_placed, order_reactivated,
order_reactivated, order_split, order_valid_if_pending, periodic_task, order_split, order_valid_if_pending, periodic_task, validate_order,
validate_order,
) )
from pretix.base.timemachine import time_machine_now, time_machine_now_assigned from pretix.base.timemachine import time_machine_now, time_machine_now_assigned
from pretix.celery_app import app from pretix.celery_app import app
@@ -303,7 +302,6 @@ def extend_order(order: Order, new_date: datetime, force: bool=False, valid_if_p
'state_change': was_expired 'state_change': was_expired
} }
) )
order_expiry_changed.send(sender=order.event, order=order)
if was_expired: if was_expired:
num_invoices = order.invoices.filter(is_cancellation=False).count() num_invoices = order.invoices.filter(is_cancellation=False).count()
@@ -3116,34 +3114,14 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
} }
) )
new_invoice_created = False
if recreate_invoices: if recreate_invoices:
# Lock to prevent duplicate invoice creation
order = Order.objects.select_for_update(of=OF_SELF).get(pk=order.pk)
i = order.invoices.filter(is_cancellation=False).last() i = order.invoices.filter(is_cancellation=False).last()
has_active_invoice = i and not i.canceled if i and order.total != oldtotal and not i.canceled:
if has_active_invoice and order.total != oldtotal:
generate_cancellation(i) generate_cancellation(i)
generate_invoice(order) generate_invoice(order)
new_invoice_created = True
elif (not has_active_invoice or order.invoice_dirty) and invoice_qualified(order):
if order.event.settings.get('invoice_generate') == 'True' or (
order.event.settings.get('invoice_generate') == 'paid' and
new_payment.payment_provider.requires_invoice_immediately
):
if has_active_invoice:
generate_cancellation(i)
i = generate_invoice(order)
new_invoice_created = True
order.log_action('pretix.event.order.invoice.generated', data={
'invoice': i.pk
})
order.create_transactions() order.create_transactions()
return old_fee, new_fee, fee, new_payment, new_invoice_created return old_fee, new_fee, fee, new_payment
@receiver(order_paid, dispatch_uid="pretixbase_order_paid_giftcards") @receiver(order_paid, dispatch_uid="pretixbase_order_paid_giftcards")
+1 -1
View File
@@ -152,7 +152,7 @@ def _validate_vat_id_EU(vat_id, country_code):
valid_elements = envelope.findall('./soap:Body/vat:checkVatResponse/vat:valid', namespaces) valid_elements = envelope.findall('./soap:Body/vat:checkVatResponse/vat:valid', namespaces)
if not valid_elements: if not valid_elements:
logger.error( logger.error(
f'VAT ID checking failed for {country_code} due to missing <valid> tag, response was: {return_xml}' f'VAT ID checking failed for {country_code} due to missing <valid> tag'
) )
raise VATIDTemporaryError(error_messages['unavailable']) raise VATIDTemporaryError(error_messages['unavailable'])
+4 -7
View File
@@ -1308,13 +1308,10 @@ DEFAULTS = {
'serializer_class': serializers.BooleanField, 'serializer_class': serializers.BooleanField,
'form_class': forms.BooleanField, 'form_class': forms.BooleanField,
'form_kwargs': dict( 'form_kwargs': dict(
label=_("This shop represents an event"), label=_("Show event times and dates on the ticket shop"),
help_text=_( help_text=_("If disabled, no date or time will be shown on the ticket shop's front page. This settings "
"Uncheck this box if you are only selling something that has no specific date, such as gift cards or a " "also affects a few other locations, however it should not be expected that the date of the "
"ticket that can be used any time. The system will then stop showing the event date in some places like " "event is shown nowhere to users."),
"the event start page. Note that pretix still is a system built around events and the date may still "
"show up in other places."
),
) )
}, },
'show_date_to': { 'show_date_to': {
+1 -1
View File
@@ -370,7 +370,7 @@ class WaitingListShredder(BaseDataShredder):
def generate_files(self) -> List[Tuple[str, str, str]]: def generate_files(self) -> List[Tuple[str, str, str]]:
yield 'waiting-list.json', 'application/json', json.dumps([ yield 'waiting-list.json', 'application/json', json.dumps([
WaitingListSerializer(wle, context={"event": self.event}).data WaitingListSerializer(wle).data
for wle in self.event.waitinglistentries.all() for wle in self.event.waitinglistentries.all()
], indent=4) ], indent=4)
-10
View File
@@ -563,16 +563,6 @@ as the first argument.
As with all event-plugin signals, the ``sender`` keyword argument will contain the event. As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
""" """
order_expiry_changed = EventPluginSignal()
"""
Arguments: ``order``
This signal is sent out every time an order expiry date is changed as an explicit operation (i.e. not if
this is the result of an approval or order change). The order object is given as the first argument.
As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
"""
order_modified = EventPluginSignal() order_modified = EventPluginSignal()
""" """
Arguments: ``order`` Arguments: ``order``
+1 -1
View File
@@ -231,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 data.get("tax_rate") is None: if not data.get("no_taxes") and not data.get("tax_rate"):
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)
+16 -12
View File
@@ -120,7 +120,6 @@ class CategoryForm(I18nModelForm):
self.fields['cross_selling_condition'].widget.attrs['data-disable-dependent'] = 'true' self.fields['cross_selling_condition'].widget.attrs['data-disable-dependent'] = 'true'
self.fields['cross_selling_condition'].widget.choices = self.fields['cross_selling_condition'].widget.choices[1:] self.fields['cross_selling_condition'].widget.choices = self.fields['cross_selling_condition'].widget.choices[1:]
self.fields['cross_selling_condition'].required = False self.fields['cross_selling_condition'].required = False
self.fields['cross_selling_condition']._required = True # Do not display "Optional" label
self.fields['cross_selling_match_products'].widget = forms.CheckboxSelectMultiple( self.fields['cross_selling_match_products'].widget = forms.CheckboxSelectMultiple(
attrs={ attrs={
@@ -477,7 +476,6 @@ 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',
@@ -648,12 +646,18 @@ 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=Item.UNAVAIL_MODE_ICONS option_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=Item.UNAVAIL_MODE_ICONS option_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(
@@ -668,11 +672,6 @@ 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(
@@ -854,7 +853,6 @@ 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',
@@ -972,12 +970,18 @@ 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=Item.UNAVAIL_MODE_ICONS option_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=Item.UNAVAIL_MODE_ICONS option_icons={
Item.UNAVAIL_MODE_HIDDEN: 'eye-slash',
Item.UNAVAIL_MODE_INFO: 'info'
}
) )
self.meta_fields = [] self.meta_fields = []
+1 -10
View File
@@ -1043,15 +1043,6 @@ 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&amp;param2=value2</code>'
),
),
required=False,
)
class Meta: class Meta:
model = CustomerSSOProvider model = CustomerSSOProvider
@@ -1113,7 +1104,7 @@ class SSOClientForm(I18nModelForm):
class Meta: class Meta:
model = CustomerSSOClient model = CustomerSSOClient
fields = ['is_active', 'name', 'client_id', 'client_type', 'authorization_grant_type', 'redirect_uris', fields = ['is_active', 'name', 'client_id', 'client_type', 'authorization_grant_type', 'redirect_uris',
'allowed_scopes', 'require_pkce'] 'allowed_scopes']
widgets = { widgets = {
'authorization_grant_type': forms.RadioSelect, 'authorization_grant_type': forms.RadioSelect,
'client_type': forms.RadioSelect, 'client_type': forms.RadioSelect,
+257 -312
View File
@@ -33,16 +33,16 @@
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under the License. # License for the specific language governing permissions and limitations under the License.
import json
from collections import defaultdict from collections import defaultdict
from decimal import Decimal from decimal import Decimal
from typing import Optional
import bleach import bleach
import dateutil.parser import dateutil.parser
from django.dispatch import receiver from django.dispatch import receiver
from django.urls import reverse from django.urls import reverse
from django.utils.formats import date_format from django.utils.formats import date_format
from django.utils.html import escape, format_html from django.utils.html import escape
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _, pgettext_lazy from django.utils.translation import gettext_lazy as _, pgettext_lazy
from i18nfield.strings import LazyI18nString from i18nfield.strings import LazyI18nString
@@ -68,212 +68,128 @@ OVERVIEW_BANLIST = [
] ]
class OrderChangeLogEntryType(OrderLogEntryType): def _display_order_changed(event: Event, logentry: LogEntry):
prefix = _('The order has been changed:') data = json.loads(logentry.data)
def display(self, logentry, data): text = _('The order has been changed:')
return format_html('{} {}', self.prefix, self.display_prefixed(logentry.event, logentry, data)) if logentry.action_type == 'pretix.event.order.changed.item':
def display_prefixed(self, event: Event, logentry: LogEntry, data):
return super().display(logentry, data)
class OrderPositionChangeLogEntryType(OrderChangeLogEntryType):
prefix = _('The order has been changed:')
def display(self, logentry, data):
return super().display(logentry, {**data, 'posid': data.get('positionid', '?')})
@log_entry_types.new()
class OrderItemChanged(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.item'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
old_item = str(event.items.get(pk=data['old_item'])) old_item = str(event.items.get(pk=data['old_item']))
if data['old_variation']: if data['old_variation']:
old_item += ' - ' + str(ItemVariation.objects.get(item__event=event, pk=data['old_variation'])) old_item += ' - ' + str(ItemVariation.objects.get(item__event=event, pk=data['old_variation']))
new_item = str(event.items.get(pk=data['new_item'])) new_item = str(event.items.get(pk=data['new_item']))
if data['new_variation']: if data['new_variation']:
new_item += ' - ' + str(ItemVariation.objects.get(item__event=event, pk=data['new_variation'])) new_item += ' - ' + str(ItemVariation.objects.get(item__event=event, pk=data['new_variation']))
return _('Position #{posid}: {old_item} ({old_price}) changed to {new_item} ({new_price}).').format( return text + ' ' + _('Position #{posid}: {old_item} ({old_price}) changed '
'to {new_item} ({new_price}).').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
old_item=old_item, new_item=new_item, old_item=old_item, new_item=new_item,
old_price=money_filter(Decimal(data['old_price']), event.currency), old_price=money_filter(Decimal(data['old_price']), event.currency),
new_price=money_filter(Decimal(data['new_price']), event.currency), new_price=money_filter(Decimal(data['new_price']), event.currency),
) )
elif logentry.action_type == 'pretix.event.order.changed.membership':
return text + ' ' + _('Position #{posid}: Used membership changed.').format(
@log_entry_types.new() posid=data.get('positionid', '?'),
class OrderMembershipChanged(OrderPositionChangeLogEntryType): )
action_type = 'pretix.event.order.changed.membership' elif logentry.action_type == 'pretix.event.order.changed.seat':
plain = _('Position #{posid}: Used membership changed.') return text + ' ' + _('Position #{posid}: Seat "{old_seat}" changed '
'to "{new_seat}".').format(
posid=data.get('positionid', '?'),
@log_entry_types.new() old_seat=data.get('old_seat'), new_seat=data.get('new_seat'),
class OrderSeatChanged(OrderPositionChangeLogEntryType): )
action_type = 'pretix.event.order.changed.seat' elif logentry.action_type == 'pretix.event.order.changed.subevent':
plain = _('Position #{posid}: Seat "{old_seat}" changed to "{new_seat}".')
@log_entry_types.new()
class OrderSubeventChanged(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.subevent'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
old_se = str(event.subevents.get(pk=data['old_subevent'])) old_se = str(event.subevents.get(pk=data['old_subevent']))
new_se = str(event.subevents.get(pk=data['new_subevent'])) new_se = str(event.subevents.get(pk=data['new_subevent']))
return _('Position #{posid}: Event date "{old_event}" ({old_price}) changed ' return text + ' ' + _('Position #{posid}: Event date "{old_event}" ({old_price}) changed '
'to "{new_event}" ({new_price}).').format( 'to "{new_event}" ({new_price}).').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
old_event=old_se, new_event=new_se, old_event=old_se, new_event=new_se,
old_price=money_filter(Decimal(data['old_price']), event.currency), old_price=money_filter(Decimal(data['old_price']), event.currency),
new_price=money_filter(Decimal(data['new_price']), event.currency), new_price=money_filter(Decimal(data['new_price']), event.currency),
) )
elif logentry.action_type == 'pretix.event.order.changed.price':
return text + ' ' + _('Price of position #{posid} changed from {old_price} '
@log_entry_types.new() 'to {new_price}.').format(
class OrderPriceChanged(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.price'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
return _('Price of position #{posid} changed from {old_price} to {new_price}.').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
old_price=money_filter(Decimal(data['old_price']), event.currency), old_price=money_filter(Decimal(data['old_price']), event.currency),
new_price=money_filter(Decimal(data['new_price']), event.currency), new_price=money_filter(Decimal(data['new_price']), event.currency),
) )
elif logentry.action_type == 'pretix.event.order.changed.tax_rule':
@log_entry_types.new()
class OrderTaxRuleChanged(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.tax_rule'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
if 'positionid' in data: if 'positionid' in data:
return _('Tax rule of position #{posid} changed from {old_rule} to {new_rule}.').format( return text + ' ' + _('Tax rule of position #{posid} changed from {old_rule} '
'to {new_rule}.').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
old_rule=TaxRule.objects.get(pk=data['old_taxrule']) if data['old_taxrule'] else '', old_rule=TaxRule.objects.get(pk=data['old_taxrule']) if data['old_taxrule'] else '',
new_rule=TaxRule.objects.get(pk=data['new_taxrule']), new_rule=TaxRule.objects.get(pk=data['new_taxrule']),
) )
elif 'fee' in data: elif 'fee' in data:
return _('Tax rule of fee #{fee} changed from {old_rule} to {new_rule}.').format( return text + ' ' + _('Tax rule of fee #{fee} changed from {old_rule} '
'to {new_rule}.').format(
fee=data.get('fee', '?'), fee=data.get('fee', '?'),
old_rule=TaxRule.objects.get(pk=data['old_taxrule']) if data['old_taxrule'] else '', old_rule=TaxRule.objects.get(pk=data['old_taxrule']) if data['old_taxrule'] else '',
new_rule=TaxRule.objects.get(pk=data['new_taxrule']), new_rule=TaxRule.objects.get(pk=data['new_taxrule']),
) )
elif logentry.action_type == 'pretix.event.order.changed.addfee':
return text + ' ' + str(_('A fee has been added'))
@log_entry_types.new() elif logentry.action_type == 'pretix.event.order.changed.feevalue':
class OrderFeeAdded(OrderChangeLogEntryType): return text + ' ' + _('A fee was changed from {old_price} to {new_price}.').format(
action_type = 'pretix.event.order.changed.addfee'
plain = _('A fee has been added')
@log_entry_types.new()
class OrderFeeChanged(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.feevalue'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
return _('A fee was changed from {old_price} to {new_price}.').format(
old_price=money_filter(Decimal(data['old_price']), event.currency), old_price=money_filter(Decimal(data['old_price']), event.currency),
new_price=money_filter(Decimal(data['new_price']), event.currency), new_price=money_filter(Decimal(data['new_price']), event.currency),
) )
elif logentry.action_type == 'pretix.event.order.changed.cancelfee':
return text + ' ' + _('A fee of {old_price} was removed.').format(
@log_entry_types.new()
class OrderFeeRemoved(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.cancelfee'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
return _('A fee of {old_price} was removed.').format(
old_price=money_filter(Decimal(data['old_price']), event.currency), old_price=money_filter(Decimal(data['old_price']), event.currency),
) )
elif logentry.action_type == 'pretix.event.order.changed.cancel':
@log_entry_types.new()
class OrderCanceled(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.cancel'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
old_item = str(event.items.get(pk=data['old_item'])) old_item = str(event.items.get(pk=data['old_item']))
if data['old_variation']: if data['old_variation']:
old_item += ' - ' + str(ItemVariation.objects.get(pk=data['old_variation'])) old_item += ' - ' + str(ItemVariation.objects.get(pk=data['old_variation']))
return _('Position #{posid} ({old_item}, {old_price}) canceled.').format( return text + ' ' + _('Position #{posid} ({old_item}, {old_price}) canceled.').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
old_item=old_item, old_item=old_item,
old_price=money_filter(Decimal(data['old_price']), event.currency), old_price=money_filter(Decimal(data['old_price']), event.currency),
) )
elif logentry.action_type == 'pretix.event.order.changed.add':
@log_entry_types.new()
class OrderPositionAdded(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.add'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
item = str(event.items.get(pk=data['item'])) item = str(event.items.get(pk=data['item']))
if data['variation']: if data['variation']:
item += ' - ' + str(ItemVariation.objects.get(item__event=event, pk=data['variation'])) item += ' - ' + str(ItemVariation.objects.get(item__event=event, pk=data['variation']))
if data['addon_to']: if data['addon_to']:
addon_to = OrderPosition.objects.get(order__event=event, pk=data['addon_to']) addon_to = OrderPosition.objects.get(order__event=event, pk=data['addon_to'])
return _('Position #{posid} created: {item} ({price}) as an add-on to position #{addon_to}.').format( return text + ' ' + _('Position #{posid} created: {item} ({price}) as an add-on to '
'position #{addon_to}.').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
item=item, addon_to=addon_to.positionid, item=item, addon_to=addon_to.positionid,
price=money_filter(Decimal(data['price']), event.currency), price=money_filter(Decimal(data['price']), event.currency),
) )
else: else:
return _('Position #{posid} created: {item} ({price}).').format( return text + ' ' + _('Position #{posid} created: {item} ({price}).').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
item=item, item=item,
price=money_filter(Decimal(data['price']), event.currency), price=money_filter(Decimal(data['price']), event.currency),
) )
elif logentry.action_type == 'pretix.event.order.changed.secret':
return text + ' ' + _('A new secret has been generated for position #{posid}.').format(
@log_entry_types.new() posid=data.get('positionid', '?'),
class OrderSecretChanged(OrderPositionChangeLogEntryType): )
action_type = 'pretix.event.order.changed.secret' elif logentry.action_type == 'pretix.event.order.changed.valid_from':
plain = _('A new secret has been generated for position #{posid}.') return text + ' ' + _('The validity start date for position #{posid} has been changed to {value}.').format(
@log_entry_types.new()
class OrderValidFromChanged(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.valid_from'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
return _('The validity start date for position #{posid} has been changed to {value}.').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
value=date_format(dateutil.parser.parse(data.get('new_value')), 'SHORT_DATETIME_FORMAT') if data.get( value=date_format(dateutil.parser.parse(data.get('new_value')), 'SHORT_DATETIME_FORMAT') if data.get(
'new_value') else '' 'new_value') else ''
) )
elif logentry.action_type == 'pretix.event.order.changed.valid_until':
return text + ' ' + _('The validity end date for position #{posid} has been changed to {value}.').format(
@log_entry_types.new()
class OrderValidUntilChanged(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.valid_until'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
return _('The validity end date for position #{posid} has been changed to {value}.').format(
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
value=date_format(dateutil.parser.parse(data.get('new_value')), 'SHORT_DATETIME_FORMAT') if data.get('new_value') else '' value=date_format(dateutil.parser.parse(data.get('new_value')), 'SHORT_DATETIME_FORMAT') if data.get('new_value') else ''
) )
elif logentry.action_type == 'pretix.event.order.changed.add_block':
return text + ' ' + _('A block has been added for position #{posid}.').format(
@log_entry_types.new() posid=data.get('positionid', '?'),
class OrderChangedBlockAdded(OrderPositionChangeLogEntryType): )
action_type = 'pretix.event.order.changed.add_block' elif logentry.action_type == 'pretix.event.order.changed.remove_block':
plain = _('A block has been added for position #{posid}.') return text + ' ' + _('A block has been removed for position #{posid}.').format(
posid=data.get('positionid', '?'),
)
@log_entry_types.new() elif logentry.action_type == 'pretix.event.order.changed.split':
class OrderChangedBlockRemoved(OrderPositionChangeLogEntryType):
action_type = 'pretix.event.order.changed.remove_block'
plain = _('A block has been removed for position #{posid}.')
@log_entry_types.new()
class OrderChangedSplit(OrderChangeLogEntryType):
action_type = 'pretix.event.order.changed.split'
def display_prefixed(self, event: Event, logentry: LogEntry, data):
old_item = str(event.items.get(pk=data['old_item'])) old_item = str(event.items.get(pk=data['old_item']))
if data['old_variation']: if data['old_variation']:
old_item += ' - ' + str(ItemVariation.objects.get(pk=data['old_variation'])) old_item += ' - ' + str(ItemVariation.objects.get(pk=data['old_variation']))
@@ -282,155 +198,194 @@ class OrderChangedSplit(OrderChangeLogEntryType):
'organizer': event.organizer.slug, 'organizer': event.organizer.slug,
'code': data['new_order'] 'code': data['new_order']
}) })
return format_html( return mark_safe(escape(text) + ' ' + _('Position #{posid} ({old_item}, {old_price}) split into new order: {order}').format(
_('Position #{posid} ({old_item}, {old_price}) split into new order: {order}'),
old_item=escape(old_item), old_item=escape(old_item),
posid=data.get('positionid', '?'), posid=data.get('positionid', '?'),
order=format_html(mark_safe('<a href="{}">{}</a>'), url, data['new_order']), order='<a href="{}">{}</a>'.format(url, data['new_order']),
old_price=money_filter(Decimal(data['old_price']), event.currency), old_price=money_filter(Decimal(data['old_price']), event.currency),
))
elif logentry.action_type == 'pretix.event.order.changed.split_from':
return _('This order has been created by splitting the order {order}').format(
order=data['original_order'],
) )
@log_entry_types.new() def _display_checkin(event, logentry):
class OrderChangedSplitFrom(OrderLogEntryType): data = logentry.parsed_data
action_type = 'pretix.event.order.changed.split_from'
def display(self, logentry: LogEntry, data): show_dt = False
url = reverse('control:event.order', kwargs={ if 'datetime' in data:
'event': logentry.event.slug, dt = dateutil.parser.parse(data.get('datetime'))
'organizer': logentry.event.organizer.slug, show_dt = abs((logentry.datetime - dt).total_seconds()) > 5 or 'forced' in data
'code': data['original_order'] tz = event.timezone
}) dt_formatted = date_format(dt.astimezone(tz), "SHORT_DATETIME_FORMAT")
return format_html(
_('This order has been created by splitting the order {order}'),
order=format_html(mark_safe('<a href="{}">{}</a>'), url, data['original_order']),
)
if 'list' in data:
try:
checkin_list = event.checkin_lists.get(pk=data.get('list')).name
except CheckinList.DoesNotExist:
checkin_list = _("(unknown)")
else:
checkin_list = _("(unknown)")
@log_entry_types.new_from_dict({ if logentry.action_type == 'pretix.event.checkin.unknown':
'pretix.event.checkin.unknown': ( if show_dt:
_('Unknown scan of code "{barcode}" at {datetime} for list "{list}", type "{type}".'), return _(
_('Unknown scan of code "{barcode}" for list "{list}", type "{type}".'), 'Unknown scan of code "{barcode}" at {datetime} for list "{list}", type "{type}".'
), ).format(
'pretix.event.checkin.revoked': ( posid=data.get('positionid'),
_('Scan of revoked code "{barcode}" at {datetime} for list "{list}", type "{type}", was uploaded.'), type=data.get('type'),
_('Scan of revoked code "{barcode}" for list "{list}", type "{type}", was uploaded.'), barcode=data.get('barcode')[:16],
), datetime=dt_formatted,
'pretix.event.checkin.denied': ( list=checkin_list
_('Denied scan of position #{posid} at {datetime} for list "{list}", type "{type}", error code "{errorcode}".'),
_('Denied scan of position #{posid} for list "{list}", type "{type}", error code "{errorcode}".'),
),
'pretix.control.views.checkin.reverted': _('The check-in of position #{posid} on list "{list}" has been reverted.'),
'pretix.event.checkin.reverted': _('The check-in of position #{posid} on list "{list}" has been reverted.'),
})
class CheckinErrorLogEntryType(OrderLogEntryType):
def display(self, logentry: LogEntry, data):
return self.display_plain(self.plain, logentry, data)
def display_plain(self, plain, logentry: LogEntry, data):
if isinstance(plain, tuple):
plain_with_dt, plain_without_dt = plain
else:
plain_with_dt, plain_without_dt = plain, plain
data = defaultdict(lambda: '?', data)
event = logentry.event
if 'list' in data and event:
try:
data['list'] = event.checkin_lists.get(pk=data.get('list')).name
except CheckinList.DoesNotExist:
data['list'] = _("(unknown)")
else:
data['list'] = _("(unknown)")
data['barcode'] = data.get('barcode', '')[:16]
data['posid'] = logentry.parsed_data.get('positionid', '?')
if 'datetime' in data:
dt = dateutil.parser.parse(data.get('datetime'))
if abs((logentry.datetime - dt).total_seconds()) > 5 or data.get('forced'):
if event:
data['datetime'] = date_format(dt.astimezone(event.timezone), "SHORT_DATETIME_FORMAT")
return str(plain_with_dt).format_map(data)
return str(plain_without_dt).format_map(data)
@log_entry_types.new('pretix.event.checkin')
class CheckinLogEntryType(CheckinErrorLogEntryType):
def display(self, logentry: LogEntry, data):
if data.get('type') == Checkin.TYPE_EXIT:
return self.display_plain((
_('Position #{posid} has been checked out at {datetime} for list "{list}".'),
_('Position #{posid} has been checked out for list "{list}".'),
), logentry, data)
elif data.get('first'):
return self.display_plain((
_('Position #{posid} has been checked in at {datetime} for list "{list}".'),
_('Position #{posid} has been checked in for list "{list}".'),
), logentry, data)
elif data.get('forced'):
return self.display_plain(
_('A scan for position #{posid} at {datetime} for list "{list}" has been uploaded even though it has '
'been scanned already.'),
logentry, data
) )
else: else:
return self.display_plain( return _(
_('Position #{posid} has been scanned and rejected because it has already been scanned before ' 'Unknown scan of code "{barcode}" for list "{list}", type "{type}".'
'on list "{list}".'), ).format(
logentry, data posid=data.get('positionid'),
type=data.get('type'),
barcode=data.get('barcode')[:16],
list=checkin_list
) )
if logentry.action_type == 'pretix.event.checkin.revoked':
@log_entry_types.new() if show_dt:
class OrderConsentLogEntryType(OrderLogEntryType): return _(
action_type = 'pretix.event.order.consent' 'Scan scan of revoked code "{barcode}" at {datetime} for list "{list}", type "{type}", was uploaded.'
).format(
def display(self, logentry: LogEntry, data): posid=data.get('positionid'),
return _('The user confirmed the following message: "{}"').format( type=data.get('type'),
bleach.clean(data.get('msg'), tags=set(), strip=True) barcode=data.get('barcode')[:16],
) datetime=dt_formatted,
list=checkin_list
)
@log_entry_types.new()
class OrderCanceledLogEntryType(OrderLogEntryType):
action_type = 'pretix.event.order.canceled'
def display(self, logentry: LogEntry, data):
comment = data.get('comment')
if comment:
return _('The order has been canceled (comment: "{comment}").').format(comment=comment)
else: else:
return _('The order has been canceled.') return _(
'Scan of revoked code "{barcode}" for list "{list}", type "{type}", was uploaded.'
).format(
posid=data.get('positionid'),
type=data.get('type'),
barcode=data.get('barcode')[:16],
list=checkin_list
)
if logentry.action_type == 'pretix.event.checkin.denied':
if show_dt:
return _(
'Denied scan of position #{posid} at {datetime} for list "{list}", type "{type}", '
'error code "{errorcode}".'
).format(
posid=data.get('positionid'),
type=data.get('type'),
errorcode=data.get('errorcode'),
datetime=dt_formatted,
list=checkin_list
)
else:
return _(
'Denied scan of position #{posid} for list "{list}", type "{type}", error code "{errorcode}".'
).format(
posid=data.get('positionid'),
type=data.get('type'),
errorcode=data.get('errorcode'),
list=checkin_list
)
@log_entry_types.new() if data.get('type') == Checkin.TYPE_EXIT:
class OrderPrintLogEntryType(OrderLogEntryType): if show_dt:
action_type = 'pretix.event.order.print' return _('Position #{posid} has been checked out at {datetime} for list "{list}".').format(
posid=data.get('positionid'),
def display(self, logentry: LogEntry, data): datetime=dt_formatted,
return _('Position #{posid} has been printed at {datetime} with type "{type}".').format( list=checkin_list
posid=data.get('positionid'), )
datetime=date_format( else:
dateutil.parser.parse(data["datetime"]).astimezone(logentry.event.timezone), return _('Position #{posid} has been checked out for list "{list}".').format(
"SHORT_DATETIME_FORMAT" posid=data.get('positionid'),
) if logentry.event else data["datetime"], list=checkin_list
type=dict(PrintLog.PRINT_TYPES)[data["type"]], )
if data.get('first'):
if show_dt:
return _('Position #{posid} has been checked in at {datetime} for list "{list}".').format(
posid=data.get('positionid'),
datetime=dt_formatted,
list=checkin_list
)
else:
return _('Position #{posid} has been checked in for list "{list}".').format(
posid=data.get('positionid'),
list=checkin_list
)
else:
if data.get('forced'):
return _(
'A scan for position #{posid} at {datetime} for list "{list}" has been uploaded even though it has '
'been scanned already.'.format(
posid=data.get('positionid'),
datetime=dt_formatted,
list=checkin_list
)
)
return _(
'Position #{posid} has been scanned and rejected because it has already been scanned before '
'on list "{list}".'.format(
posid=data.get('positionid'),
list=checkin_list
)
) )
@receiver(signal=logentry_display, dispatch_uid="pretixcontrol_logentry_display") @receiver(signal=logentry_display, dispatch_uid="pretixcontrol_logentry_display")
def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs): def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs):
if logentry.action_type.startswith('pretix.event.order.changed'):
return _display_order_changed(sender, logentry)
if logentry.action_type.startswith('pretix.event.payment.provider.'): if logentry.action_type.startswith('pretix.event.payment.provider.'):
return _('The settings of a payment provider have been changed.') return _('The settings of a payment provider have been changed.')
if logentry.action_type.startswith('pretix.event.tickets.provider.'): if logentry.action_type.startswith('pretix.event.tickets.provider.'):
return _('The settings of a ticket output provider have been changed.') return _('The settings of a ticket output provider have been changed.')
if logentry.action_type == 'pretix.event.order.consent':
return _('The user confirmed the following message: "{}"').format(
bleach.clean(logentry.parsed_data.get('msg'), tags=set(), strip=True)
)
if logentry.action_type == 'pretix.event.order.canceled':
comment = logentry.parsed_data.get('comment')
if comment:
return _('The order has been canceled (comment: "{comment}").').format(comment=comment)
else:
return _('The order has been canceled.')
if logentry.action_type in ('pretix.control.views.checkin.reverted', 'pretix.event.checkin.reverted'):
if 'list' in logentry.parsed_data:
try:
checkin_list = sender.checkin_lists.get(pk=logentry.parsed_data.get('list')).name
except CheckinList.DoesNotExist:
checkin_list = _("(unknown)")
else:
checkin_list = _("(unknown)")
return _('The check-in of position #{posid} on list "{list}" has been reverted.').format(
posid=logentry.parsed_data.get('positionid'),
list=checkin_list,
)
if sender and logentry.action_type.startswith('pretix.event.checkin'):
return _display_checkin(sender, logentry)
if logentry.action_type == 'pretix.event.order.print':
return _('Position #{posid} has been printed at {datetime} with type "{type}".').format(
posid=logentry.parsed_data.get('positionid'),
datetime=date_format(
dateutil.parser.parse(logentry.parsed_data["datetime"]).astimezone(sender.timezone),
"SHORT_DATETIME_FORMAT"
),
type=dict(PrintLog.PRINT_TYPES)[logentry.parsed_data["type"]],
)
@receiver(signal=orderposition_blocked_display, dispatch_uid="pretixcontrol_orderposition_blocked_display") @receiver(signal=orderposition_blocked_display, dispatch_uid="pretixcontrol_orderposition_blocked_display")
def pretixcontrol_orderposition_blocked_display(sender: Event, orderposition, block_name, **kwargs): def pretixcontrol_orderposition_blocked_display(sender: Event, orderposition, block_name, **kwargs):
@@ -441,7 +396,6 @@ def pretixcontrol_orderposition_blocked_display(sender: Event, orderposition, bl
@log_entry_types.new_from_dict({ @log_entry_types.new_from_dict({
'pretix.event.order.deleted': _('The test mode order {code} has been deleted.'),
'pretix.event.order.modified': _('The order details have been changed.'), 'pretix.event.order.modified': _('The order details have been changed.'),
'pretix.event.order.unpaid': _('The order has been marked as unpaid.'), 'pretix.event.order.unpaid': _('The order has been marked as unpaid.'),
'pretix.event.order.secret.changed': _('The order\'s secret has been changed.'), 'pretix.event.order.secret.changed': _('The order\'s secret has been changed.'),
@@ -532,16 +486,17 @@ class VoucherRedeemedLogEntryType(VoucherLogEntryType):
action_type = 'pretix.voucher.redeemed' action_type = 'pretix.voucher.redeemed'
plain = _('The voucher has been redeemed in order {order_code}.') plain = _('The voucher has been redeemed in order {order_code}.')
def display(self, logentry, data): def display(self, logentry):
data = json.loads(logentry.data)
data = defaultdict(lambda: '?', data)
url = reverse('control:event.order', kwargs={ url = reverse('control:event.order', kwargs={
'event': logentry.event.slug, 'event': logentry.event.slug,
'organizer': logentry.event.organizer.slug, 'organizer': logentry.event.organizer.slug,
'code': data.get('order_code', '?') 'code': data['order_code']
}) })
return format_html( return mark_safe(self.plain.format(
self.plain, order_code='<a href="{}">{}</a>'.format(url, data['order_code']),
order_code=format_html('<a href="{}">{}</a>', url, data.get('order_code', '?')), ))
)
@log_entry_types.new_from_dict({ @log_entry_types.new_from_dict({
@@ -564,8 +519,8 @@ class CoreTaxRuleLogEntryType(TaxRuleLogEntryType):
class TeamMembershipLogEntryType(LogEntryType): class TeamMembershipLogEntryType(LogEntryType):
def display(self, logentry, data): def display(self, logentry):
return self.plain.format(user=data.get('email')) return self.plain.format(user=logentry.parsed_data.get('email'))
@log_entry_types.new_from_dict({ @log_entry_types.new_from_dict({
@@ -582,9 +537,9 @@ class CoreTeamMembershipLogEntryType(TeamMembershipLogEntryType):
class TeamMemberJoinedLogEntryType(LogEntryType): class TeamMemberJoinedLogEntryType(LogEntryType):
action_type = 'pretix.team.member.joined' action_type = 'pretix.team.member.joined'
def display(self, logentry, data): def display(self, logentry):
return _('{user} has joined the team using the invite sent to {email}.').format( return _('{user} has joined the team using the invite sent to {email}.').format(
user=data.get('email'), email=data.get('invite_email') user=logentry.parsed_data.get('email'), email=logentry.parsed_data.get('invite_email')
) )
@@ -592,23 +547,23 @@ class TeamMemberJoinedLogEntryType(LogEntryType):
class UserSettingsChangedLogEntryType(LogEntryType): class UserSettingsChangedLogEntryType(LogEntryType):
action_type = 'pretix.user.settings.changed' action_type = 'pretix.user.settings.changed'
def display(self, logentry, data): def display(self, logentry):
text = str(_('Your account settings have been changed.')) text = str(_('Your account settings have been changed.'))
if 'email' in data: if 'email' in logentry.parsed_data:
text = text + ' ' + str( text = text + ' ' + str(
_('Your email address has been changed to {email}.').format(email=data['email'])) _('Your email address has been changed to {email}.').format(email=logentry.parsed_data['email']))
if 'new_pw' in data: if 'new_pw' in logentry.parsed_data:
text = text + ' ' + str(_('Your password has been changed.')) text = text + ' ' + str(_('Your password has been changed.'))
if data.get('is_active') is True: if logentry.parsed_data.get('is_active') is True:
text = text + ' ' + str(_('Your account has been enabled.')) text = text + ' ' + str(_('Your account has been enabled.'))
elif data.get('is_active') is False: elif logentry.parsed_data.get('is_active') is False:
text = text + ' ' + str(_('Your account has been disabled.')) text = text + ' ' + str(_('Your account has been disabled.'))
return text return text
class UserImpersonatedLogEntryType(LogEntryType): class UserImpersonatedLogEntryType(LogEntryType):
def display(self, logentry, data): def display(self, logentry):
return self.plain.format(data['other_email']) return self.plain.format(logentry.parsed_data['other_email'])
@log_entry_types.new_from_dict({ @log_entry_types.new_from_dict({
@@ -733,13 +688,16 @@ class CoreLogEntryType(LogEntryType):
@log_entry_types.new_from_dict({ @log_entry_types.new_from_dict({
'pretix.event.order.deleted': _('The test mode order {code} has been deleted.'),
'pretix.event.item_meta_property.added': _('A meta property has been added to this event.'), 'pretix.event.item_meta_property.added': _('A meta property has been added to this event.'),
'pretix.event.item_meta_property.deleted': _('A meta property has been removed from this event.'), 'pretix.event.item_meta_property.deleted': _('A meta property has been removed from this event.'),
'pretix.event.item_meta_property.changed': _('A meta property has been changed on this event.'), 'pretix.event.item_meta_property.changed': _('A meta property has been changed on this event.'),
'pretix.event.checkinlist.added': _('The check-in list has been added.'),
'pretix.event.checkinlist.deleted': _('The check-in list has been deleted.'),
'pretix.event.checkinlists.deleted': _('The check-in list has been deleted.'), # backwards compatibility
'pretix.event.checkinlist.changed': _('The check-in list has been changed.'),
'pretix.event.settings': _('The event settings have been changed.'), 'pretix.event.settings': _('The event settings have been changed.'),
'pretix.event.tickets.settings': _('The ticket download settings have been changed.'), 'pretix.event.tickets.settings': _('The ticket download settings have been changed.'),
'pretix.event.tickets.provider': _('The settings of a ticket output provider have been changed.'),
'pretix.event.payment.provider': _('The settings of a payment provider have been changed.'),
'pretix.event.live.activated': _('The shop has been taken live.'), 'pretix.event.live.activated': _('The shop has been taken live.'),
'pretix.event.live.deactivated': _('The shop has been taken offline.'), 'pretix.event.live.deactivated': _('The shop has been taken offline.'),
'pretix.event.testmode.activated': _('The shop has been taken into test mode.'), 'pretix.event.testmode.activated': _('The shop has been taken into test mode.'),
@@ -759,19 +717,6 @@ class CoreEventLogEntryType(EventLogEntryType):
pass pass
@log_entry_types.new_from_dict({
'pretix.event.checkinlist.added': _('The check-in list has been added.'),
'pretix.event.checkinlist.deleted': _('The check-in list has been deleted.'),
'pretix.event.checkinlists.deleted': _('The check-in list has been deleted.'), # backwards compatibility
'pretix.event.checkinlist.changed': _('The check-in list has been changed.'),
})
class CheckinlistLogEntryType(EventLogEntryType):
object_link_wrapper = _('Check-in list {val}')
object_link_viewname = 'control:event.orders.checkinlists.edit'
object_link_argname = 'list'
content_type = CheckinList
@log_entry_types.new_from_dict({ @log_entry_types.new_from_dict({
'pretix.event.plugins.enabled': _('The plugin has been enabled.'), 'pretix.event.plugins.enabled': _('The plugin has been enabled.'),
'pretix.event.plugins.disabled': _('The plugin has been disabled.'), 'pretix.event.plugins.disabled': _('The plugin has been disabled.'),
@@ -779,7 +724,7 @@ class CheckinlistLogEntryType(EventLogEntryType):
class EventPluginStateLogEntryType(EventLogEntryType): class EventPluginStateLogEntryType(EventLogEntryType):
object_link_wrapper = _('Plugin {val}') object_link_wrapper = _('Plugin {val}')
def get_object_link_info(self, logentry) -> Optional[dict]: def get_object_link_info(self, logentry) -> dict:
if 'plugin' in logentry.parsed_data: if 'plugin' in logentry.parsed_data:
app = app_cache.get(logentry.parsed_data['plugin']) app = app_cache.get(logentry.parsed_data['plugin'])
if app and hasattr(app, 'PretixPluginMeta'): if app and hasattr(app, 'PretixPluginMeta'):
@@ -814,17 +759,17 @@ class CoreItemLogEntryType(ItemLogEntryType):
'pretix.event.item.variation.changed': _('The variation "{value}" has been changed.'), 'pretix.event.item.variation.changed': _('The variation "{value}" has been changed.'),
}) })
class VariationLogEntryType(ItemLogEntryType): class VariationLogEntryType(ItemLogEntryType):
def display(self, logentry, data): def display(self, logentry):
if 'value' not in data: if 'value' not in logentry.parsed_data:
# Backwards compatibility # Backwards compatibility
var = ItemVariation.objects.filter(id=data['id']).first() var = ItemVariation.objects.filter(id=logentry.parsed_data['id']).first()
if var: if var:
data['value'] = str(var.value) logentry.parsed_data['value'] = str(var.value)
else: else:
data['value'] = '?' logentry.parsed_data['value'] = '?'
else: else:
data['value'] = LazyI18nString(data['value']) logentry.parsed_data['value'] = LazyI18nString(logentry.parsed_data['value'])
return super().display(logentry, data) return super().display(logentry)
@log_entry_types.new_from_dict({ @log_entry_types.new_from_dict({
@@ -880,27 +825,27 @@ class CoreDiscountLogEntryType(DiscountLogEntryType):
class LegacyCheckinLogEntryType(OrderLogEntryType): class LegacyCheckinLogEntryType(OrderLogEntryType):
action_type = 'pretix.control.views.checkin' action_type = 'pretix.control.views.checkin'
def display(self, logentry, data): def display(self, logentry):
# deprecated # deprecated
dt = dateutil.parser.parse(data.get('datetime')) dt = dateutil.parser.parse(logentry.parsed_data.get('datetime'))
tz = logentry.event.timezone tz = logentry.event.timezone
dt_formatted = date_format(dt.astimezone(tz), "SHORT_DATETIME_FORMAT") dt_formatted = date_format(dt.astimezone(tz), "SHORT_DATETIME_FORMAT")
if 'list' in data: if 'list' in logentry.parsed_data:
try: try:
checkin_list = logentry.event.checkin_lists.get(pk=data.get('list')).name checkin_list = logentry.event.checkin_lists.get(pk=logentry.parsed_data.get('list')).name
except CheckinList.DoesNotExist: except CheckinList.DoesNotExist:
checkin_list = _("(unknown)") checkin_list = _("(unknown)")
else: else:
checkin_list = _("(unknown)") checkin_list = _("(unknown)")
if data.get('first'): if logentry.parsed_data.get('first'):
return _('Position #{posid} has been checked in manually at {datetime} on list "{list}".').format( return _('Position #{posid} has been checked in manually at {datetime} on list "{list}".').format(
posid=data.get('positionid'), posid=logentry.parsed_data.get('positionid'),
datetime=dt_formatted, datetime=dt_formatted,
list=checkin_list, list=checkin_list,
) )
return _('Position #{posid} has been checked in again at {datetime} on list "{list}".').format( return _('Position #{posid} has been checked in again at {datetime} on list "{list}".').format(
posid=data.get('positionid'), posid=logentry.parsed_data.get('positionid'),
datetime=dt_formatted, datetime=dt_formatted,
list=checkin_list list=checkin_list
) )
@@ -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 visibility_field=form.hidden_if_item_available_mode layout="control_with_visibility" %} {% bootstrap_field form.hidden_if_item_available layout="control" horizontal_field_class="col-md-7" %}
</fieldset> </fieldset>
{% for v in formsets.values %} {% for v in formsets.values %}
<fieldset> <fieldset>
@@ -322,17 +322,6 @@
id="toolbox-squaresize"> id="toolbox-squaresize">
</div> </div>
</div> </div>
<div class="row control-group squaresize">
<div class="col-sm-12">
<label for="toolbox-col">{% trans "QR color" %}</label><br>
<div class="input-group">
<input type="text" value="#000000" class="input-block-level form-control colorpickerfield"
id="toolbox-qrcolor">
<span class="input-group-addon contrast-icon">
</span>
</div>
</div>
</div>
<div class="row control-group squaresize"> <div class="row control-group squaresize">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="checkbox"> <div class="checkbox">
@@ -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 product with info on why its 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 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>
{% endif %} {% endif %}
@@ -125,15 +125,6 @@
<button type="submit" class="btn btn-primary btn-save"> <button type="submit" class="btn btn-primary btn-save">
{% trans "Save" %} {% trans "Save" %}
</button> </button>
{% if voucher.pk %}
<div class="pull-left">
<a href="{% url "control:event.voucher.delete" organizer=request.organizer.slug event=request.event.slug voucher=voucher.pk %}"
class="btn btn-danger btn-lg">
<span class="fa fa-trash"></span>
{% trans "Delete voucher" %}
</a>
</div>
{% endif %}
</div> </div>
{% endif %} {% endif %}
</form> </form>
+7 -13
View File
@@ -491,11 +491,8 @@ 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', user=self.request.user, data={ 'pretix.event.payment.provider.' + self.provider.identifier, user=self.request.user, data={
'provider': self.provider.identifier, k: self.form.cleaned_data.get(k) for k in self.form.changed_data
'new_values': {
k: self.form.cleaned_data.get(k) for k in self.form.changed_data
}
} }
) )
self.form.save() self.form.save()
@@ -891,14 +888,11 @@ 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', user=self.request.user, data={ 'pretix.event.tickets.provider.' + provider.identifier, user=self.request.user, data={
'provider': provider.identifier, k: (provider.form.cleaned_data.get(k).name
'new_values': { if isinstance(provider.form.cleaned_data.get(k), File)
k: (provider.form.cleaned_data.get(k).name else provider.form.cleaned_data.get(k))
if isinstance(provider.form.cleaned_data.get(k), File) for k in provider.form.changed_data
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})
+1 -3
View File
@@ -34,7 +34,6 @@
import importlib_metadata as metadata import importlib_metadata as metadata
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.db import transaction
from django.http import HttpResponse, JsonResponse from django.http import HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404, redirect, reverse from django.shortcuts import get_object_or_404, redirect, reverse
from django.utils.timezone import now from django.utils.timezone import now
@@ -59,7 +58,6 @@ class GlobalSettingsView(AdministratorPermissionRequiredMixin, FormView):
template_name = 'pretixcontrol/global_settings.html' template_name = 'pretixcontrol/global_settings.html'
form_class = GlobalSettingsForm form_class = GlobalSettingsForm
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
form.save() form.save()
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))
@@ -110,7 +108,7 @@ class MessageView(TemplateView):
class LogDetailView(AdministratorPermissionRequiredMixin, View): class LogDetailView(AdministratorPermissionRequiredMixin, View):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
le = get_object_or_404(LogEntry, pk=request.GET.get('pk')) le = get_object_or_404(LogEntry, pk=request.GET.get('pk'))
return JsonResponse({'action_type': le.action_type, 'content_type': str(le.content_type), 'object_id': le.object_id, 'data': le.parsed_data}) return JsonResponse({'data': le.parsed_data})
class PaymentDetailView(AdministratorPermissionRequiredMixin, View): class PaymentDetailView(AdministratorPermissionRequiredMixin, View):
+1 -12
View File
@@ -289,17 +289,6 @@ class EventWizard(SafeSessionWizardView):
) )
t.members.add(self.request.user) t.members.add(self.request.user)
t.limit_events.add(event) t.limit_events.add(event)
t.log_action('pretix.team.created', user=self.request.user, data={
'_created_by_event_wizard': True,
'name': t.name,
'can_change_event_settings': True,
'can_change_items': True,
'can_view_orders': True,
'can_change_orders': True,
'can_view_vouchers': True,
'can_change_vouchers': True,
'limit_events': [event.pk],
})
logdata = {} logdata = {}
for f in form_list: for f in form_list:
@@ -324,7 +313,7 @@ class EventWizard(SafeSessionWizardView):
) )
event.set_defaults() event.set_defaults()
if basics_data['tax_rate'] is not None: if basics_data['tax_rate']:
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')),
+8 -30
View File
@@ -46,7 +46,7 @@ from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.core.exceptions import PermissionDenied, ValidationError from django.core.exceptions import PermissionDenied, ValidationError
from django.core.files import File from django.core.files import File
from django.db import transaction from django.db import connections, transaction
from django.db.models import ( from django.db.models import (
Count, Exists, F, IntegerField, Max, Min, OuterRef, Prefetch, Count, Exists, F, IntegerField, Max, Min, OuterRef, Prefetch,
ProtectedError, Q, Subquery, Sum, ProtectedError, Q, Subquery, Sum,
@@ -626,7 +626,6 @@ class TeamCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'team': self.object.pk 'team': self.object.pk
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('The team has been created. You can now add members to the team.')) messages.success(self.request, _('The team has been created. You can now add members to the team.'))
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
@@ -664,7 +663,6 @@ class TeamUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'team': self.object.pk 'team': self.object.pk
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.team.changed', user=self.request.user, data={ self.object.log_action('pretix.team.changed', user=self.request.user, data={
@@ -985,7 +983,6 @@ class DeviceCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi
'device': self.object.pk 'device': self.object.pk
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
ret = super().form_valid(form) ret = super().form_valid(form)
@@ -1047,7 +1044,6 @@ class DeviceUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi
'organizer': self.request.organizer.slug, 'organizer': self.request.organizer.slug,
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.device.changed', user=self.request.user, data={ self.object.log_action('pretix.device.changed', user=self.request.user, data={
@@ -1159,7 +1155,13 @@ class DeviceBulkUpdateView(DeviceQueryMixin, OrganizerDetailViewMixin, Organizer
obj.log_action('pretix.device.changed', data=data, user=self.request.user, save=False) obj.log_action('pretix.device.changed', data=data, user=self.request.user, save=False)
) )
LogEntry.bulk_create_and_postprocess(log_entries) if connections['default'].features.can_return_rows_from_bulk_insert:
LogEntry.objects.bulk_create(log_entries, batch_size=200)
LogEntry.bulk_postprocess(log_entries)
else:
for le in log_entries:
le.save()
LogEntry.bulk_postprocess(log_entries)
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))
return super().form_valid(form) return super().form_valid(form)
@@ -1234,7 +1236,6 @@ class DeviceRevokeView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi
})) }))
return super().get(request, *args, **kwargs) return super().get(request, *args, **kwargs)
@transaction.atomic
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
self.object.revoked = True self.object.revoked = True
@@ -1272,7 +1273,6 @@ class WebHookCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
'organizer': self.request.organizer.slug, 'organizer': self.request.organizer.slug,
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
ret = super().form_valid(form) ret = super().form_valid(form)
@@ -1310,7 +1310,6 @@ class WebHookUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
'organizer': self.request.organizer.slug, 'organizer': self.request.organizer.slug,
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.request.organizer.log_action('pretix.webhook.changed', user=self.request.user, data=merge_dicts({ self.request.organizer.log_action('pretix.webhook.changed', user=self.request.user, data=merge_dicts({
@@ -1387,7 +1386,6 @@ class GiftCardAcceptanceInviteView(OrganizerDetailViewMixin, OrganizerPermission
'organizer': self.request.organizer, 'organizer': self.request.organizer,
} }
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
self.request.organizer.gift_card_acceptor_acceptance.get_or_create( self.request.organizer.gift_card_acceptor_acceptance.get_or_create(
acceptor=form.cleaned_data['acceptor'], acceptor=form.cleaned_data['acceptor'],
@@ -2002,7 +2000,6 @@ class GateCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'organizer': self.request.organizer.slug, 'organizer': self.request.organizer.slug,
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('The gate has been created.')) messages.success(self.request, _('The gate has been created.'))
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
@@ -2037,7 +2034,6 @@ class GateUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'organizer': self.request.organizer.slug, 'organizer': self.request.organizer.slug,
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.gate.changed', user=self.request.user, data={ self.object.log_action('pretix.gate.changed', user=self.request.user, data={
@@ -2140,7 +2136,6 @@ class EventMetaPropertyCreateView(OrganizerDetailViewMixin, OrganizerPermissionR
'organizer': self.request.organizer.slug, 'organizer': self.request.organizer.slug,
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('The property has been created.')) messages.success(self.request, _('The property has been created.'))
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
@@ -2171,7 +2166,6 @@ class EventMetaPropertyUpdateView(OrganizerDetailViewMixin, OrganizerPermissionR
'organizer': self.request.organizer.slug, 'organizer': self.request.organizer.slug,
}) })
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
form.instance.choices = [ form.instance.choices = [
f.cleaned_data for f in self.formset.ordered_forms if f not in self.formset.deleted_forms f.cleaned_data for f in self.formset.ordered_forms if f not in self.formset.deleted_forms
@@ -2213,7 +2207,6 @@ class EventMetaPropertyDeleteView(OrganizerDetailViewMixin, OrganizerPermissionR
return redirect(success_url) return redirect(success_url)
@transaction.atomic
def meta_property_move(request, property, up=True): def meta_property_move(request, property, up=True):
property = get_object_or_404(request.organizer.meta_properties, id=property) property = get_object_or_404(request.organizer.meta_properties, id=property)
properties = list(request.organizer.meta_properties.order_by("position")) properties = list(request.organizer.meta_properties.order_by("position"))
@@ -2336,7 +2329,6 @@ class MembershipTypeCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
kwargs['event'] = self.request.organizer kwargs['event'] = self.request.organizer
return kwargs return kwargs
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('The membership type has been created.')) messages.success(self.request, _('The membership type has been created.'))
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
@@ -2371,7 +2363,6 @@ class MembershipTypeUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
kwargs['event'] = self.request.organizer kwargs['event'] = self.request.organizer
return kwargs return kwargs
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.membershiptype.changed', user=self.request.user, data={ self.object.log_action('pretix.membershiptype.changed', user=self.request.user, data={
@@ -2445,7 +2436,6 @@ class SSOProviderCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequire
kwargs['event'] = self.request.organizer kwargs['event'] = self.request.organizer
return kwargs return kwargs
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('The provider has been created.')) messages.success(self.request, _('The provider has been created.'))
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
@@ -2488,7 +2478,6 @@ class SSOProviderUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequire
kwargs['event'] = self.request.organizer kwargs['event'] = self.request.organizer
return kwargs return kwargs
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.ssoprovider.changed', user=self.request.user, data={ self.object.log_action('pretix.ssoprovider.changed', user=self.request.user, data={
@@ -2562,7 +2551,6 @@ class SSOClientCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredM
kwargs['event'] = self.request.organizer kwargs['event'] = self.request.organizer
return kwargs return kwargs
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
secret = form.instance.set_client_secret() secret = form.instance.set_client_secret()
messages.success( messages.success(
@@ -2607,7 +2595,6 @@ class SSOClientUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredM
kwargs['event'] = self.request.organizer kwargs['event'] = self.request.organizer
return kwargs return kwargs
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.ssoclient.changed', user=self.request.user, data={ self.object.log_action('pretix.ssoclient.changed', user=self.request.user, data={
@@ -2810,7 +2797,6 @@ class CustomerCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMi
ctx['instance'] = c ctx['instance'] = c
return ctx return ctx
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
r = super().form_valid(form) r = super().form_valid(form)
form.instance.log_action('pretix.customer.created', user=self.request.user, data={ form.instance.log_action('pretix.customer.created', user=self.request.user, data={
@@ -2839,7 +2825,6 @@ class CustomerUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMi
identifier=self.kwargs.get('customer') identifier=self.kwargs.get('customer')
) )
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.customer.changed', user=self.request.user, data={ self.object.log_action('pretix.customer.changed', user=self.request.user, data={
@@ -2877,7 +2862,6 @@ class MembershipUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequired
) )
return ctx return ctx
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
d = { d = {
@@ -2954,7 +2938,6 @@ class MembershipCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequired
) )
return kwargs return kwargs
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
r = super().form_valid(form) r = super().form_valid(form)
d = { d = {
@@ -3053,7 +3036,6 @@ class ReusableMediumCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
ctx['instance'] = c ctx['instance'] = c
return ctx return ctx
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
r = super().form_valid(form) r = super().form_valid(form)
form.instance.log_action('pretix.reusable_medium.created', user=self.request.user, data={ form.instance.log_action('pretix.reusable_medium.created', user=self.request.user, data={
@@ -3082,7 +3064,6 @@ class ReusableMediumUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
pk=self.kwargs.get('pk') pk=self.kwargs.get('pk')
) )
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.reusable_medium.changed', user=self.request.user, data={ self.object.log_action('pretix.reusable_medium.changed', user=self.request.user, data={
@@ -3174,7 +3155,6 @@ class ChannelCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
"type": self.selected_type, "type": self.selected_type,
} }
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('The sales channel has been created.')) messages.success(self.request, _('The sales channel has been created.'))
form.instance.organizer = self.request.organizer form.instance.organizer = self.request.organizer
@@ -3220,7 +3200,6 @@ class ChannelUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
"type": self.type, "type": self.type,
} }
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
if form.has_changed(): if form.has_changed():
self.object.log_action('pretix.saleschannel.changed', user=self.request.user, data={ self.object.log_action('pretix.saleschannel.changed', user=self.request.user, data={
@@ -3271,7 +3250,6 @@ class ChannelDeleteView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
return redirect(success_url) return redirect(success_url)
@transaction.atomic
def channel_move(request, channel, up=True): def channel_move(request, channel, up=True):
channel = get_object_or_404(request.organizer.sales_channels, identifier=channel) channel = get_object_or_404(request.organizer.sales_channels, identifier=channel)
channels = list(request.organizer.sales_channels.order_by("position")) channels = list(request.organizer.sales_channels.order_by("position"))
+28 -28
View File
@@ -40,7 +40,7 @@ from dateutil.rrule import rruleset
from django.contrib import messages from django.contrib import messages
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.core.files import File from django.core.files import File
from django.db import transaction from django.db import connections, transaction
from django.db.models import Count, F, Prefetch, ProtectedError from django.db.models import Count, F, Prefetch, ProtectedError
from django.db.models.functions import Coalesce, TruncDate, TruncTime from django.db.models.functions import Coalesce, TruncDate, TruncTime
from django.forms import inlineformset_factory from django.forms import inlineformset_factory
@@ -657,30 +657,24 @@ class SubEventBulkAction(SubEventQueryMixin, EventPermissionRequiredMixin, View)
@transaction.atomic @transaction.atomic
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
if request.POST.get('action') == 'disable': if request.POST.get('action') == 'disable':
log_entries = []
for obj in self.get_queryset(): for obj in self.get_queryset():
log_entries.append(obj.log_action( obj.log_action(
'pretix.subevent.changed', user=self.request.user, data={ 'pretix.subevent.changed', user=self.request.user, data={
'active': False 'active': False
}, save=False }
)) )
obj.active = False obj.active = False
obj.save(update_fields=['active']) obj.save(update_fields=['active'])
LogEntry.bulk_create_and_postprocess(log_entries)
messages.success(request, pgettext_lazy('subevent', 'The selected dates have been disabled.')) messages.success(request, pgettext_lazy('subevent', 'The selected dates have been disabled.'))
elif request.POST.get('action') == 'enable': elif request.POST.get('action') == 'enable':
log_entries = []
for obj in self.get_queryset(): for obj in self.get_queryset():
log_entries.append(obj.log_action( obj.log_action(
'pretix.subevent.changed', user=self.request.user, data={ 'pretix.subevent.changed', user=self.request.user, data={
'active': True 'active': True
}, save=False }
)) )
obj.active = True obj.active = True
obj.save(update_fields=['active']) obj.save(update_fields=['active'])
LogEntry.bulk_create_and_postprocess(log_entries)
messages.success(request, pgettext_lazy('subevent', 'The selected dates have been enabled.')) messages.success(request, pgettext_lazy('subevent', 'The selected dates have been enabled.'))
elif request.POST.get('action') == 'delete': elif request.POST.get('action') == 'delete':
return render(request, 'pretixcontrol/subevents/delete_bulk.html', { return render(request, 'pretixcontrol/subevents/delete_bulk.html', {
@@ -688,28 +682,22 @@ class SubEventBulkAction(SubEventQueryMixin, EventPermissionRequiredMixin, View)
'forbidden': self.get_queryset().filter(orderposition__isnull=False).distinct(), 'forbidden': self.get_queryset().filter(orderposition__isnull=False).distinct(),
}) })
elif request.POST.get('action') == 'delete_confirm': elif request.POST.get('action') == 'delete_confirm':
log_entries = []
to_delete = []
for obj in self.get_queryset(): for obj in self.get_queryset():
try: try:
if not obj.allow_delete(): if not obj.allow_delete():
raise ProtectedError('only deactivate', [obj]) raise ProtectedError('only deactivate', [obj])
log_entries.append(obj.log_action('pretix.subevent.deleted', user=self.request.user, save=False)) CartPosition.objects.filter(addon_to__subevent=obj).delete()
to_delete.append(obj.pk) obj.cartposition_set.all().delete()
obj.log_action('pretix.subevent.deleted', user=self.request.user)
obj.delete()
except ProtectedError: except ProtectedError:
log_entries.append(obj.log_action( obj.log_action(
'pretix.subevent.changed', user=self.request.user, data={ 'pretix.subevent.changed', user=self.request.user, data={
'active': False 'active': False
}, save=False, }
)) )
obj.active = False obj.active = False
obj.save(update_fields=['active']) obj.save(update_fields=['active'])
if to_delete:
CartPosition.objects.filter(addon_to__subevent_id__in=to_delete).delete()
CartPosition.objects.filter(subevent_id__in=to_delete).delete()
SubEvent.objects.filter(pk__in=to_delete).delete()
LogEntry.bulk_create_and_postprocess(log_entries)
messages.success(request, pgettext_lazy('subevent', 'The selected dates have been deleted or disabled.')) messages.success(request, pgettext_lazy('subevent', 'The selected dates have been deleted or disabled.'))
return redirect(self.get_success_url()) return redirect(self.get_success_url())
@@ -1021,7 +1009,13 @@ class SubEventBulkCreate(SubEventEditorMixin, EventPermissionRequiredMixin, Asyn
f.save() f.save()
set_progress(90) set_progress(90)
LogEntry.bulk_create_and_postprocess(log_entries) if connections['default'].features.can_return_rows_from_bulk_insert:
LogEntry.objects.bulk_create(log_entries)
LogEntry.bulk_postprocess(log_entries)
else:
for le in log_entries:
le.save()
LogEntry.bulk_postprocess(log_entries)
self.request.event.cache.clear() self.request.event.cache.clear()
return len(subevents) return len(subevents)
@@ -1584,7 +1578,13 @@ class SubEventBulkEdit(SubEventQueryMixin, EventPermissionRequiredMixin, FormVie
self.save_itemvars() self.save_itemvars()
self.save_meta() self.save_meta()
LogEntry.bulk_create_and_postprocess(log_entries) if connections['default'].features.can_return_rows_from_bulk_insert:
LogEntry.objects.bulk_create(log_entries, batch_size=200)
LogEntry.bulk_postprocess(log_entries)
else:
for le in log_entries:
le.save()
LogEntry.bulk_postprocess(log_entries)
self.request.event.cache.clear() self.request.event.cache.clear()
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))
-1
View File
@@ -231,7 +231,6 @@ class UserSettings(UpdateView):
messages.error(self.request, _('Your changes could not be saved. See below for details.')) messages.error(self.request, _('Your changes could not be saved. See below for details.'))
return super().form_invalid(form) return super().form_invalid(form)
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))
-2
View File
@@ -28,7 +28,6 @@ from django.contrib.auth import (
BACKEND_SESSION_KEY, get_user_model, load_backend, login, BACKEND_SESSION_KEY, get_user_model, load_backend, login,
) )
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.db import transaction
from django.shortcuts import get_object_or_404, redirect from django.shortcuts import get_object_or_404, redirect
from django.urls import reverse from django.urls import reverse
from django.utils.crypto import get_random_string from django.utils.crypto import get_random_string
@@ -109,7 +108,6 @@ class UserEditView(AdministratorPermissionRequiredMixin, RecentAuthenticationReq
def get_success_url(self): def get_success_url(self):
return reverse('control:users.edit', kwargs=self.kwargs) return reverse('control:users.edit', kwargs=self.kwargs)
@transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))
+7 -14
View File
@@ -477,7 +477,7 @@ class VoucherBulkCreate(EventPermissionRequiredMixin, AsyncFormView):
log_entries.append( log_entries.append(
v.log_action('pretix.voucher.added', data=data, user=self.request.user, save=False) v.log_action('pretix.voucher.added', data=data, user=self.request.user, save=False)
) )
LogEntry.bulk_create_and_postprocess(log_entries) LogEntry.objects.bulk_create(log_entries)
form.post_bulk_save(batch_vouchers) form.post_bulk_save(batch_vouchers)
batch_vouchers.clear() batch_vouchers.clear()
set_progress(len(voucherids) / total_num * (50. if form.cleaned_data['send'] else 100.)) set_progress(len(voucherids) / total_num * (50. if form.cleaned_data['send'] else 100.))
@@ -619,26 +619,19 @@ class VoucherBulkAction(EventPermissionRequiredMixin, View):
'forbidden': self.objects.exclude(redeemed=0), 'forbidden': self.objects.exclude(redeemed=0),
}) })
elif request.POST.get('action') == 'delete_confirm': elif request.POST.get('action') == 'delete_confirm':
log_entries = []
to_delete = []
for obj in self.objects: for obj in self.objects:
if obj.allow_delete(): if obj.allow_delete():
log_entries.append(obj.log_action('pretix.voucher.deleted', user=self.request.user, save=False)) obj.log_action('pretix.voucher.deleted', user=self.request.user)
to_delete.append(obj.pk) CartPosition.objects.filter(addon_to__voucher=obj).delete()
obj.cartposition_set.all().delete()
obj.delete()
else: else:
log_entries.append(obj.log_action('pretix.voucher.changed', user=self.request.user, data={ obj.log_action('pretix.voucher.changed', user=self.request.user, data={
'max_usages': min(obj.redeemed, obj.max_usages), 'max_usages': min(obj.redeemed, obj.max_usages),
'bulk': True 'bulk': True
}, save=False)) })
obj.max_usages = min(obj.redeemed, obj.max_usages) obj.max_usages = min(obj.redeemed, obj.max_usages)
obj.save(update_fields=['max_usages']) obj.save(update_fields=['max_usages'])
if to_delete:
CartPosition.objects.filter(addon_to__voucher_id__in=to_delete).delete()
CartPosition.objects.filter(voucher_id__in=to_delete).delete()
Voucher.objects.filter(pk__in=to_delete).delete()
LogEntry.bulk_create_and_postprocess(log_entries)
messages.success(request, _('The selected vouchers have been deleted or disabled.')) messages.success(request, _('The selected vouchers have been deleted or disabled.'))
return redirect(self.get_success_url()) return redirect(self.get_success_url())
+25 -32
View File
@@ -49,7 +49,7 @@ from django.utils.translation import gettext_lazy as _, pgettext
from django.views import View from django.views import View
from django.views.generic import ListView from django.views.generic import ListView
from pretix.base.models import Item, LogEntry, Quota, WaitingListEntry from pretix.base.models import Item, Quota, WaitingListEntry
from pretix.base.models.waitinglist import WaitingListException from pretix.base.models.waitinglist import WaitingListException
from pretix.base.services.waitinglist import assign_automatically from pretix.base.services.waitinglist import assign_automatically
from pretix.base.views.tasks import AsyncAction from pretix.base.views.tasks import AsyncAction
@@ -160,15 +160,10 @@ class WaitingListActionView(EventPermissionRequiredMixin, WaitingListQuerySetMix
'forbidden': self.get_queryset().filter(voucher__isnull=False), 'forbidden': self.get_queryset().filter(voucher__isnull=False),
}) })
elif request.POST.get('action') == 'delete_confirm': elif request.POST.get('action') == 'delete_confirm':
with transaction.atomic(): for obj in self.get_queryset(force_filtered=True):
log_entries = [] if not obj.voucher_id:
to_delete = [] obj.log_action('pretix.event.orders.waitinglist.deleted', user=self.request.user)
for obj in self.get_queryset(force_filtered=True): obj.delete()
if not obj.voucher_id:
log_entries.append(obj.log_action('pretix.event.orders.waitinglist.deleted', user=self.request.user, save=False))
to_delete.append(obj.pk)
WaitingListEntry.objects.filter(id__in=to_delete).delete()
LogEntry.bulk_create_and_postprocess(log_entries)
messages.success(request, _('The selected entries have been deleted.')) messages.success(request, _('The selected entries have been deleted.'))
return self._redirect_back() return self._redirect_back()
@@ -191,17 +186,16 @@ class WaitingListActionView(EventPermissionRequiredMixin, WaitingListQuerySetMix
if 'move_top' in request.POST: if 'move_top' in request.POST:
try: try:
with transaction.atomic(): wle = WaitingListEntry.objects.get(
wle = WaitingListEntry.objects.get( pk=request.POST.get('move_top'), event=self.request.event,
pk=request.POST.get('move_top'), event=self.request.event, )
) wle.priority = self.request.event.waitinglistentries.aggregate(m=Max('priority'))['m'] + 1
wle.priority = self.request.event.waitinglistentries.aggregate(m=Max('priority'))['m'] + 1 wle.save(update_fields=['priority'])
wle.save(update_fields=['priority']) wle.log_action(
wle.log_action( 'pretix.event.orders.waitinglist.changed',
'pretix.event.orders.waitinglist.changed', data={'priority': wle.priority},
data={'priority': wle.priority}, user=self.request.user,
user=self.request.user, )
)
messages.success(request, _('The waiting list entry has been moved to the top.')) messages.success(request, _('The waiting list entry has been moved to the top.'))
return self._redirect_back() return self._redirect_back()
except WaitingListEntry.DoesNotExist: except WaitingListEntry.DoesNotExist:
@@ -210,17 +204,16 @@ class WaitingListActionView(EventPermissionRequiredMixin, WaitingListQuerySetMix
if 'move_end' in request.POST: if 'move_end' in request.POST:
try: try:
with transaction.atomic(): wle = WaitingListEntry.objects.get(
wle = WaitingListEntry.objects.get( pk=request.POST.get('move_end'), event=self.request.event,
pk=request.POST.get('move_end'), event=self.request.event, )
) wle.priority = self.request.event.waitinglistentries.aggregate(m=Min('priority'))['m'] - 1
wle.priority = self.request.event.waitinglistentries.aggregate(m=Min('priority'))['m'] - 1 wle.save(update_fields=['priority'])
wle.save(update_fields=['priority']) wle.log_action(
wle.log_action( 'pretix.event.orders.waitinglist.changed',
'pretix.event.orders.waitinglist.changed', data={'priority': wle.priority},
data={'priority': wle.priority}, user=self.request.user,
user=self.request.user, )
)
messages.success(request, _('The waiting list entry has been moved to the end of the list.')) messages.success(request, _('The waiting list entry has been moved to the end of the list.'))
return self._redirect_back() return self._redirect_back()
except WaitingListEntry.DoesNotExist: except WaitingListEntry.DoesNotExist:
+2 -3
View File
@@ -62,8 +62,7 @@ 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
if url.url_name: pretix_view_duration_seconds.observe(tdiff, status_code=resp.status_code, method=request.method,
pretix_view_duration_seconds.observe(tdiff, status_code=resp.status_code, method=request.method, url_name=url.namespace + ':' + url.url_name)
url_name=url.namespace + ':' + url.url_name)
return resp return resp
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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"
@@ -547,52 +547,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -655,7 +655,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -843,7 +843,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -858,139 +857,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -998,83 +997,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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/"
@@ -577,56 +577,56 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "QR الدخول" msgstr "QR الدخول"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "لا يمكن تحميل ملف PDF الخلفية للأسباب التالية:" msgstr "لا يمكن تحميل ملف PDF الخلفية للأسباب التالية:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "مجموعة من العناصر" msgstr "مجموعة من العناصر"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "عنصر نص" msgstr "عنصر نص"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text box" msgid "Text box"
msgstr "عنصر نص" msgstr "عنصر نص"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "منطقة باركود" msgstr "منطقة باركود"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "منطقة صورة" msgstr "منطقة صورة"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "مدعوم من pretix" msgstr "مدعوم من pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "عنصر" msgstr "عنصر"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "تصميم التذكرة" msgstr "تصميم التذكرة"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "فشلت عملية الحفظ." msgstr "فشلت عملية الحفظ."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "حصل خطأ أثناء رفع ملف PDF الخاص بك، يرجى المحاولة مرة أخرى." msgstr "حصل خطأ أثناء رفع ملف PDF الخاص بك، يرجى المحاولة مرة أخرى."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "هل تريد أن تغادر المحرر دون حفظ التعديلات؟" msgstr "هل تريد أن تغادر المحرر دون حفظ التعديلات؟"
@@ -689,7 +689,7 @@ msgstr "قم باستخدم اسم مختلف داخليا"
msgid "Click to close" msgid "Click to close"
msgstr "اضغط لاغلاق الصفحة" msgstr "اضغط لاغلاق الصفحة"
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "لم تقم بحفظ التعديلات!" msgstr "لم تقم بحفظ التعديلات!"
@@ -896,7 +896,6 @@ msgid "Only available with a voucher"
msgstr "متوفرة مع القسيمة فقط" msgstr "متوفرة مع القسيمة فقط"
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "currently available: %s" #| msgid "currently available: %s"
@@ -917,30 +916,30 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "متوفر حاليا: %s" msgstr "متوفر حاليا: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: pretix/static/pretixpresale/js/widget/widget.js:46
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "Close ticket shop" #| msgid "Close ticket shop"
@@ -948,24 +947,24 @@ msgctxt "widget"
msgid "Open ticket shop" msgid "Open ticket shop"
msgstr "إغلاق متجر التذاكر" msgstr "إغلاق متجر التذاكر"
#: pretix/static/pretixpresale/js/widget/widget.js:48 #: 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:49 #: 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:51 #: 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:52 #: 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 "
@@ -974,37 +973,37 @@ msgstr ""
"لديك الآن سلة تسوق مفعلة لهذا الحدث. إذا قمت باختيار منتجات أخرى سيتم " "لديك الآن سلة تسوق مفعلة لهذا الحدث. إذا قمت باختيار منتجات أخرى سيتم "
"إضافتها إلى سلة التسوق الموجودة حالياً." "إضافتها إلى سلة التسوق الموجودة حالياً."
#: pretix/static/pretixpresale/js/widget/widget.js:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: pretix/static/pretixpresale/js/widget/widget.js:59
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1012,7 +1011,7 @@ msgctxt "widget"
msgid "Show variants" msgid "Show variants"
msgstr "أنظر إلى الاختلافات" msgstr "أنظر إلى الاختلافات"
#: pretix/static/pretixpresale/js/widget/widget.js:61 #: pretix/static/pretixpresale/js/widget/widget.js:60
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1020,47 +1019,47 @@ msgctxt "widget"
msgid "Hide variants" msgid "Hide variants"
msgstr "أنظر إلى الاختلافات" msgstr "أنظر إلى الاختلافات"
#: pretix/static/pretixpresale/js/widget/widget.js:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1068,86 +1067,86 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "الإثنين" msgstr "الإثنين"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "الثلاثاء" msgstr "الثلاثاء"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "الأربعاء" msgstr "الأربعاء"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "الخميس" msgstr "الخميس"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "الجمعة" msgstr "الجمعة"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "السبت" msgstr "السبت"
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "الأحد" msgstr "الأحد"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "يناير" msgstr "يناير"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "فبراير" msgstr "فبراير"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "مارس" msgstr "مارس"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "أبريل" msgstr "أبريل"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "مايو" msgstr "مايو"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "يونيو" msgstr "يونيو"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "يوليو" msgstr "يوليو"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "أغسطس" msgstr "أغسطس"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "سبتمبر" msgstr "سبتمبر"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "أكتوبر" msgstr "أكتوبر"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "نوفمبر" msgstr "نوفمبر"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "ديسمبر" msgstr "ديسمبر"
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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"
@@ -547,52 +547,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -655,7 +655,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -843,7 +843,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -858,139 +857,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -998,83 +997,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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-"
@@ -548,52 +548,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Disseny del tiquet" msgstr "Disseny del tiquet"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -656,7 +656,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -850,7 +850,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -865,139 +864,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1005,83 +1004,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+65 -66
View File
@@ -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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2025-02-19 17:00+0000\n" "PO-Revision-Date: 2023-09-15 06:00+0000\n"
"Last-Translator: Petr Čermák <pcermak@live.com>\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/"
"cs/>\n" "cs/>\n"
"Language: cs\n" "Language: cs\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=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.10\n" "X-Generator: Weblate 5.0.1\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
@@ -314,7 +314,7 @@ msgstr "Kód vstupenky je v seznamu nejednoznačný"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:67 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:67
msgid "Order not approved" msgid "Order not approved"
msgstr "Objednávka nebyla potvrzena" msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:68 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:68
msgid "Checked-in Tickets" msgid "Checked-in Tickets"
@@ -568,56 +568,56 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "Check-in QR kód" msgstr "Check-in QR kód"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Pozadí PDF nemohl být načten:" msgstr "Pozadí PDF nemohl být načten:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Skupina objektů" msgstr "Skupina objektů"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Textový objekt" msgstr "Textový objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text box" msgid "Text box"
msgstr "Textový objekt" msgstr "Textový objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "Oblast s QR kódem" msgstr "Oblast s QR kódem"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "Oblast obrazu" msgstr "Oblast obrazu"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Poháněno společností pretix" msgstr "Poháněno společností pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Objekt" msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Design vstupenky" msgstr "Design vstupenky"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "Uložení se nepodařilo." msgstr "Uložení se nepodařilo."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "Při nahrávání souboru PDF došlo k problému, zkuste to prosím znovu." msgstr "Při nahrávání souboru PDF došlo k problému, zkuste to prosím znovu."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "Opravdu chcete opustit editor bez uložení změn?" msgstr "Opravdu chcete opustit editor bez uložení změn?"
@@ -683,7 +683,7 @@ msgstr "Interně používat jiný název"
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:1090 #: 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!"
@@ -885,7 +885,6 @@ 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:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy #, fuzzy
#| msgid "Payment method unavailable" #| msgid "Payment method unavailable"
msgctxt "widget" msgctxt "widget"
@@ -905,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:42 #: 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:43 #: 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:44 #: 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:45 #: 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 "
@@ -930,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:47 #: 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:48 #: 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:49 #: 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 "
@@ -950,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:51 #: 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:52 #: 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 "
@@ -964,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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: pretix/static/pretixpresale/js/widget/widget.js:59
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1002,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:61 #: pretix/static/pretixpresale/js/widget/widget.js:60
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1010,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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1061,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:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Po" msgstr "Po"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Út" msgstr "Út"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "St" msgstr "St"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Čt" msgstr "Čt"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Pá" msgstr "Pá"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "So" msgstr "So"
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "Ne" msgstr "Ne"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Leden" msgstr "Leden"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Únor" msgstr "Únor"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: 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:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "Duben" msgstr "Duben"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: 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:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "červen" msgstr "červen"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "Červenec" msgstr "Červenec"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "Srpen" msgstr "Srpen"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "Září" msgstr "Září"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Říjen" msgstr "Říjen"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "Listopad" msgstr "Listopad"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "Prosinec" msgstr "Prosinec"
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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"
@@ -548,52 +548,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -656,7 +656,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -844,7 +844,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -859,139 +858,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -999,83 +998,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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/"
@@ -588,58 +588,58 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "Check-in QR" msgstr "Check-in QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Baggrunds-pdf'en kunne ikke hentes af følgende grund:" msgstr "Baggrunds-pdf'en kunne ikke hentes af følgende grund:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Gruppe af objekter" msgstr "Gruppe af objekter"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Tekstobjekt" msgstr "Tekstobjekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text box" msgid "Text box"
msgstr "Tekstobjekt" msgstr "Tekstobjekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "QR-kode-område" msgstr "QR-kode-område"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
#, fuzzy #, fuzzy
#| msgid "Barcode area" #| msgid "Barcode area"
msgid "Image area" msgid "Image area"
msgstr "QR-kode-område" msgstr "QR-kode-område"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Drevet af pretix" msgstr "Drevet af pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Objekt" msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Billetdesign" msgstr "Billetdesign"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "Gem fejlede." msgstr "Gem fejlede."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "Fejl under upload af pdf. Prøv venligt igen." msgstr "Fejl under upload af pdf. Prøv venligt igen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
"Er du sikker på at du vil forlade editoren uden at gemme dine ændringer?" "Er du sikker på at du vil forlade editoren uden at gemme dine ændringer?"
@@ -703,7 +703,7 @@ msgstr ""
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:1090 #: 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!"
@@ -907,7 +907,6 @@ 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:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy #, fuzzy
#| msgid "Payment method unavailable" #| msgid "Payment method unavailable"
msgctxt "widget" msgctxt "widget"
@@ -927,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:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: pretix/static/pretixpresale/js/widget/widget.js:46
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "Close ticket shop" #| msgid "Close ticket shop"
@@ -958,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:48 #: 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:49 #: 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:51 #: 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:52 #: 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 "
@@ -984,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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: pretix/static/pretixpresale/js/widget/widget.js:59
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1022,7 +1021,7 @@ msgctxt "widget"
msgid "Show variants" msgid "Show variants"
msgstr "Vis varianter" msgstr "Vis varianter"
#: pretix/static/pretixpresale/js/widget/widget.js:61 #: pretix/static/pretixpresale/js/widget/widget.js:60
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1030,37 +1029,37 @@ msgctxt "widget"
msgid "Hide variants" msgid "Hide variants"
msgstr "Vis varianter" msgstr "Vis varianter"
#: pretix/static/pretixpresale/js/widget/widget.js:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: pretix/static/pretixpresale/js/widget/widget.js:67
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "Previous month" #| msgid "Previous month"
@@ -1068,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:69 #: 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:70 #: 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 "
@@ -1081,84 +1080,84 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Man" msgstr "Man"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Tirs" msgstr "Tirs"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Ons" msgstr "Ons"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Tors" msgstr "Tors"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Fre" msgstr "Fre"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: 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:79 #: 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:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Januar" msgstr "Januar"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Februar" msgstr "Februar"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "Marts" msgstr "Marts"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "April" msgstr "April"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "Maj" msgstr "Maj"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "Juni" msgstr "Juni"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "Juli" msgstr "Juli"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "August" msgstr "August"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "September" msgstr "September"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Oktober" msgstr "Oktober"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "November" msgstr "November"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "December" msgstr "December"
File diff suppressed because it is too large Load Diff
+66 -67
View File
@@ -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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2025-01-22 16:00+0000\n" "PO-Revision-Date: 2024-09-10 07:17+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.9.2\n" "X-Generator: Weblate 5.7\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
@@ -563,53 +563,53 @@ msgstr "abwesend"
msgid "Check-in QR" msgid "Check-in QR"
msgstr "Check-in-QR-Code" msgstr "Check-in-QR-Code"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:" msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Gruppe von Objekten" msgstr "Gruppe von Objekten"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Text-Objekt (veraltet)" msgstr "Text-Objekt (veraltet)"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "Textbox" msgstr "Textbox"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "QR-Code-Bereich" msgstr "QR-Code-Bereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "Bildbereich" msgstr "Bildbereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Event-Ticketshop von pretix" msgstr "Event-Ticketshop von pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Objekt" msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Ticket-Design" msgstr "Ticket-Design"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "Speichern fehlgeschlagen." msgstr "Speichern fehlgeschlagen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
"Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen." "Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
"Möchten Sie den Editor wirklich schließen ohne Ihre Änderungen zu speichern?" "Möchten Sie den Editor wirklich schließen ohne Ihre Änderungen zu speichern?"
@@ -677,7 +677,7 @@ msgstr "Intern einen anderen Namen verwenden"
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:1090 #: 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!"
@@ -777,13 +777,13 @@ msgstr "Preis"
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Original price: %s" msgid "Original price: %s"
msgstr "Originalpreis: %s" 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 "New price: %s" msgid "New price: %s"
msgstr "Neuer Preis: %s" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:22 #: pretix/static/pretixpresale/js/widget/widget.js:22
msgctxt "widget" msgctxt "widget"
@@ -836,7 +836,7 @@ msgstr "ab %(currency)s %(price)s"
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Image of %s" msgid "Image of %s"
msgstr "Bild von %s" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:32 #: pretix/static/pretixpresale/js/widget/widget.js:32
msgctxt "widget" msgctxt "widget"
@@ -870,7 +870,6 @@ 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:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "Noch nicht verfügbar" msgstr "Noch nicht verfügbar"
@@ -885,23 +884,23 @@ 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:42 #: 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:43 #: 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:44 #: 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:45 #: 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 "
@@ -910,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:47 #: 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:48 #: 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:49 #: 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 "
@@ -930,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:51 #: 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:52 #: 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 "
@@ -944,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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1035,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:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Mo" msgstr "Mo"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Di" msgstr "Di"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Mi" msgstr "Mi"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Do" msgstr "Do"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Fr" msgstr "Fr"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "Sa" msgstr "Sa"
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "So" msgstr "So"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Januar" msgstr "Januar"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Februar" msgstr "Februar"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: 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:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "April" msgstr "April"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "Mai" msgstr "Mai"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "Juni" msgstr "Juni"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "Juli" msgstr "Juli"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "August" msgstr "August"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "September" msgstr "September"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Oktober" msgstr "Oktober"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "November" msgstr "November"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "Dezember" msgstr "Dezember"
+1 -4
View File
@@ -30,8 +30,7 @@ Auth
Authentication Authentication
Authenticator Authenticator
Authentifizierungsmechanismus Authentifizierungsmechanismus
Autorisierungs Authorisierungscode
Autorisierungscode
Backend Backend
Badge Badge
Badges Badges
@@ -236,7 +235,6 @@ PayPals
PayU PayU
PCI PCI
Personalisierung Personalisierung
PKCE
Platzhalterzeichen Platzhalterzeichen
Play Play
Plugin Plugin
@@ -256,7 +254,6 @@ Professional
Przelewy Przelewy
pt pt
px px
Query
QR QR
rabattiert rabattiert
Rabattierung Rabattierung
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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2025-01-22 16:00+0000\n" "PO-Revision-Date: 2024-09-10 07:17+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.9.2\n" "X-Generator: Weblate 5.7\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
@@ -562,53 +562,53 @@ msgstr "abwesend"
msgid "Check-in QR" msgid "Check-in QR"
msgstr "Check-in-QR-Code" msgstr "Check-in-QR-Code"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:" msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Gruppe von Objekten" msgstr "Gruppe von Objekten"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Text-Objekt (veraltet)" msgstr "Text-Objekt (veraltet)"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "Textbox" msgstr "Textbox"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "QR-Code-Bereich" msgstr "QR-Code-Bereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "Bildbereich" msgstr "Bildbereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Event-Ticketshop von pretix" msgstr "Event-Ticketshop von pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Objekt" msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Ticket-Design" msgstr "Ticket-Design"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "Speichern fehlgeschlagen." msgstr "Speichern fehlgeschlagen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
"Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen." "Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
"Möchtest du den Editor wirklich schließen ohne Ihre Änderungen zu speichern?" "Möchtest du den Editor wirklich schließen ohne Ihre Änderungen zu speichern?"
@@ -676,7 +676,7 @@ msgstr "Intern einen anderen Namen verwenden"
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:1090 #: 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!"
@@ -776,13 +776,13 @@ msgstr "Preis"
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Original price: %s" msgid "Original price: %s"
msgstr "Originalpreis: %s" 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 "New price: %s" msgid "New price: %s"
msgstr "Neuer Preis: %s" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:22 #: pretix/static/pretixpresale/js/widget/widget.js:22
msgctxt "widget" msgctxt "widget"
@@ -835,7 +835,7 @@ msgstr "ab %(currency)s %(price)s"
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Image of %s" msgid "Image of %s"
msgstr "Bild von %s" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:32 #: pretix/static/pretixpresale/js/widget/widget.js:32
msgctxt "widget" msgctxt "widget"
@@ -869,7 +869,6 @@ 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:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "Noch nicht verfügbar" msgstr "Noch nicht verfügbar"
@@ -884,23 +883,23 @@ 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:42 #: 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:43 #: 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:44 #: 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:45 #: 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 "
@@ -909,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:47 #: 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:48 #: 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:49 #: 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 "
@@ -929,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:51 #: 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:52 #: 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 "
@@ -943,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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1034,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:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Mo" msgstr "Mo"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Di" msgstr "Di"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Mi" msgstr "Mi"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Do" msgstr "Do"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Fr" msgstr "Fr"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "Sa" msgstr "Sa"
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "So" msgstr "So"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Januar" msgstr "Januar"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Februar" msgstr "Februar"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: 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:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "April" msgstr "April"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "Mai" msgstr "Mai"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "Juni" msgstr "Juni"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "Juli" msgstr "Juli"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "August" msgstr "August"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "September" msgstr "September"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Oktober" msgstr "Oktober"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "November" msgstr "November"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "Dezember" msgstr "Dezember"
+1 -4
View File
@@ -30,8 +30,7 @@ Auth
Authentication Authentication
Authenticator Authenticator
Authentifizierungsmechanismus Authentifizierungsmechanismus
Autorisierungs Authorisierungscode
Autorisierungscode
Backend Backend
Badge Badge
Badges Badges
@@ -236,7 +235,6 @@ PayPals
PayU PayU
PCI PCI
Personalisierung Personalisierung
PKCE
Platzhalterzeichen Platzhalterzeichen
Play Play
Plugin Plugin
@@ -256,7 +254,6 @@ Professional
Przelewy Przelewy
pt pt
px px
Query
QR QR
rabattiert rabattiert
Rabattierung Rabattierung
+1468 -1519
View File
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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"
@@ -547,52 +547,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -655,7 +655,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -843,7 +843,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -858,139 +857,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -998,83 +997,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2024-12-22 00:00+0000\n" "PO-Revision-Date: 2024-12-22 00:00+0000\n"
"Last-Translator: Dimitris Tsimpidis <tsimpidisd@gmail.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/"
@@ -593,59 +593,59 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "Έλεγχος QR" msgstr "Έλεγχος QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
"Το αρχείο φόντου PDF δεν ήταν δυνατό να φορτωθεί για τον ακόλουθο λόγο:" "Το αρχείο φόντου PDF δεν ήταν δυνατό να φορτωθεί για τον ακόλουθο λόγο:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Ομάδα αντικειμένων" msgstr "Ομάδα αντικειμένων"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Αντικείμενο κειμένου" msgstr "Αντικείμενο κειμένου"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text box" msgid "Text box"
msgstr "Αντικείμενο κειμένου" msgstr "Αντικείμενο κειμένου"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "Περιοχή Barcode" msgstr "Περιοχή Barcode"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
#, fuzzy #, fuzzy
#| msgid "Barcode area" #| msgid "Barcode area"
msgid "Image area" msgid "Image area"
msgstr "Περιοχή Barcode" msgstr "Περιοχή Barcode"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Υποστηρίζεται από το Pretix" msgstr "Υποστηρίζεται από το Pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Αντικείμενο" msgstr "Αντικείμενο"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Σχεδιασμός εισιτηρίων" msgstr "Σχεδιασμός εισιτηρίων"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "Η αποθήκευση απέτυχε." msgstr "Η αποθήκευση απέτυχε."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "Σφάλμα κατά τη μεταφόρτωση του αρχείου PDF, δοκιμάστε ξανά." msgstr "Σφάλμα κατά τη μεταφόρτωση του αρχείου PDF, δοκιμάστε ξανά."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
"Θέλετε πραγματικά να αφήσετε τον επεξεργαστή χωρίς να αποθηκεύσετε τις " "Θέλετε πραγματικά να αφήσετε τον επεξεργαστή χωρίς να αποθηκεύσετε τις "
@@ -715,7 +715,7 @@ msgstr "Χρησιμοποιήστε διαφορετικό όνομα εσωτ
msgid "Click to close" msgid "Click to close"
msgstr "Κάντε κλικ για να κλείσετε" msgstr "Κάντε κλικ για να κλείσετε"
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -919,7 +919,6 @@ msgid "Only available with a voucher"
msgstr "Διατίθεται μόνο με ένα κουπόνι" msgstr "Διατίθεται μόνο με ένα κουπόνι"
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "currently available: %s" #| msgid "currently available: %s"
@@ -940,30 +939,30 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "διαθέσιμη προς το παρόν:%s" msgstr "διαθέσιμη προς το παρόν:%s"
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: pretix/static/pretixpresale/js/widget/widget.js:46
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "Close ticket shop" #| msgid "Close ticket shop"
@@ -971,25 +970,25 @@ msgctxt "widget"
msgid "Open ticket shop" msgid "Open ticket shop"
msgstr "Κλείστε το κατάστημα εισιτηρίων" msgstr "Κλείστε το κατάστημα εισιτηρίων"
#: pretix/static/pretixpresale/js/widget/widget.js:48 #: 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:49 #: 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:51 #: 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:52 #: 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 "
@@ -998,37 +997,37 @@ msgstr ""
"Αυτήν τη στιγμή έχετε προϊόντα στο καλάθι για αυτήν την εκδήλωση. Αν " "Αυτήν τη στιγμή έχετε προϊόντα στο καλάθι για αυτήν την εκδήλωση. Αν "
"επιλέξετε περισσότερα προϊόντα, θα προστεθούν στο υπάρχον καλάθι σας." "επιλέξετε περισσότερα προϊόντα, θα προστεθούν στο υπάρχον καλάθι σας."
#: pretix/static/pretixpresale/js/widget/widget.js:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: pretix/static/pretixpresale/js/widget/widget.js:59
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1036,7 +1035,7 @@ msgctxt "widget"
msgid "Show variants" msgid "Show variants"
msgstr "Δείτε παραλλαγές" msgstr "Δείτε παραλλαγές"
#: pretix/static/pretixpresale/js/widget/widget.js:61 #: pretix/static/pretixpresale/js/widget/widget.js:60
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1044,37 +1043,37 @@ msgctxt "widget"
msgid "Hide variants" msgid "Hide variants"
msgstr "Δείτε παραλλαγές" msgstr "Δείτε παραλλαγές"
#: pretix/static/pretixpresale/js/widget/widget.js:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: pretix/static/pretixpresale/js/widget/widget.js:67
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "Previous month" #| msgid "Previous month"
@@ -1082,12 +1081,12 @@ msgctxt "widget"
msgid "Previous week" msgid "Previous week"
msgstr "Προηγούμενος μήνας" msgstr "Προηγούμενος μήνας"
#: pretix/static/pretixpresale/js/widget/widget.js:69 #: 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:70 #: 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 "
@@ -1095,84 +1094,84 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Δευ" msgstr "Δευ"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Τρι" msgstr "Τρι"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Τετ" msgstr "Τετ"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Πεμ" msgstr "Πεμ"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Παρ" msgstr "Παρ"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "Σαβ" msgstr "Σαβ"
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "Κυρ" msgstr "Κυρ"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Ιανουάριος" msgstr "Ιανουάριος"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Φεβρουάριος" msgstr "Φεβρουάριος"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "Μάρτιος" msgstr "Μάρτιος"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "Απρίλιος" msgstr "Απρίλιος"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "Μάιος" msgstr "Μάιος"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "Ιούνιος" msgstr "Ιούνιος"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "Ιούλιος" msgstr "Ιούλιος"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "Αύγουστος" msgstr "Αύγουστος"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "Σεπτέμβριος" msgstr "Σεπτέμβριος"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Οκτώβριος" msgstr "Οκτώβριος"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "Νοέμβριος" msgstr "Νοέμβριος"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "Δεκέμβριος" msgstr "Δεκέμβριος"
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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"
@@ -547,52 +547,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -655,7 +655,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -843,7 +843,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -858,139 +857,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -998,83 +997,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+63 -64
View File
@@ -7,11 +7,11 @@ 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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2025-01-21 00:00+0000\n" "PO-Revision-Date: 2025-01-21 00:00+0000\n"
"Last-Translator: Hector <hector@demandaeventos.es>\n" "Last-Translator: Hector <hector@demandaeventos.es>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/"
"js/es/>\n" "pretix-js/es/>\n"
"Language: es\n" "Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -560,55 +560,55 @@ msgstr "ausente"
msgid "Check-in QR" msgid "Check-in QR"
msgstr "QR de Chequeo" msgstr "QR de Chequeo"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
"El archivo PDF de fondo no ha podido ser cargado debido al siguiente motivo:" "El archivo PDF de fondo no ha podido ser cargado debido al siguiente motivo:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Grupo de objetos" msgstr "Grupo de objetos"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Objeto texto (obsoleto)" msgstr "Objeto texto (obsoleto)"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "Campo de texto" msgstr "Campo de texto"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "Área para código de barras" msgstr "Área para código de barras"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "Área de imagen" msgstr "Área de imagen"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Proveído por pretix" msgstr "Proveído por pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Objeto" msgstr "Objeto"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Diseño del entrada" msgstr "Diseño del entrada"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "El guardado falló." msgstr "El guardado falló."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
"Ha habido un error mientras se cargaba el archivo PDF, por favor, intente de " "Ha habido un error mientras se cargaba el archivo PDF, por favor, intente de "
"nuevo." "nuevo."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "¿Realmente desea salir del editor sin haber guardado sus cambios?" msgstr "¿Realmente desea salir del editor sin haber guardado sus cambios?"
@@ -675,7 +675,7 @@ msgstr "Usar un nombre diferente internamente"
msgid "Click to close" msgid "Click to close"
msgstr "Click para cerrar" msgstr "Click para cerrar"
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: 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!"
@@ -868,7 +868,6 @@ msgid "Only available with a voucher"
msgstr "Solo disponible mediante voucher" msgstr "Solo disponible mediante voucher"
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "Aún no disponible" msgstr "Aún no disponible"
@@ -883,23 +882,23 @@ 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:42 #: 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:43 #: 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:44 #: 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:45 #: 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 "
@@ -908,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:47 #: 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:48 #: 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:49 #: 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 "
@@ -929,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:51 #: 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:52 #: 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 "
@@ -943,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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1034,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:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Lun" msgstr "Lun"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Mar" msgstr "Mar"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Mié" msgstr "Mié"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Jue" msgstr "Jue"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Vie" msgstr "Vie"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: 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:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "Dom" msgstr "Dom"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "enero" msgstr "enero"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "febrero" msgstr "febrero"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "Marzo" msgstr "Marzo"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "abril" msgstr "abril"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "mayo" msgstr "mayo"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "junio" msgstr "junio"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "julio" msgstr "julio"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "agosto" msgstr "agosto"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "septiembre" msgstr "septiembre"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "octubre" msgstr "octubre"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "noviembre" msgstr "noviembre"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "diciembre" msgstr "diciembre"
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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"
@@ -547,52 +547,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -655,7 +655,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -843,7 +843,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -858,139 +857,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -998,83 +997,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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/"
@@ -560,52 +560,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Sarrera diseinua" msgstr "Sarrera diseinua"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -668,7 +668,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -859,7 +859,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -874,139 +873,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1014,83 +1013,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+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-"
@@ -570,58 +570,58 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Tekstiobjekti" msgstr "Tekstiobjekti"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text box" msgid "Text box"
msgstr "Tekstiobjekti" msgstr "Tekstiobjekti"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "Viivakoodialue" msgstr "Viivakoodialue"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
#, fuzzy #, fuzzy
#| msgid "Barcode area" #| msgid "Barcode area"
msgid "Image area" msgid "Image area"
msgstr "Viivakoodialue" msgstr "Viivakoodialue"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "Tallennus epäonnistui." msgstr "Tallennus epäonnistui."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -684,7 +684,7 @@ msgstr "Käytä toista nimeä sisäisesti"
msgid "Click to close" msgid "Click to close"
msgstr "Sulje klikkaamalla" msgstr "Sulje klikkaamalla"
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: 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!"
@@ -880,7 +880,6 @@ msgid "Only available with a voucher"
msgstr "Saatavilla vain kupongilla" msgstr "Saatavilla vain kupongilla"
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "currently available: %s" #| msgid "currently available: %s"
@@ -901,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:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: pretix/static/pretixpresale/js/widget/widget.js:46
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "Close ticket shop" #| msgid "Close ticket shop"
@@ -932,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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: pretix/static/pretixpresale/js/widget/widget.js:59
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -994,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:61 #: pretix/static/pretixpresale/js/widget/widget.js:60
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1002,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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1050,84 +1049,84 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Ma" msgstr "Ma"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Ti" msgstr "Ti"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Ke" msgstr "Ke"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "To" msgstr "To"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Pe" msgstr "Pe"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "La" msgstr "La"
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "Su" msgstr "Su"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Tammikuu" msgstr "Tammikuu"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Helmikuu" msgstr "Helmikuu"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "Maaliskuu" msgstr "Maaliskuu"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "Huhtikuu" msgstr "Huhtikuu"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "Toukokuu" msgstr "Toukokuu"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: 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:88 #: 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:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "Elokuu" msgstr "Elokuu"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "Syyskuu" msgstr "Syyskuu"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Lokakuu" msgstr "Lokakuu"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "Marraskuu" msgstr "Marraskuu"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: 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
+61 -62
View File
@@ -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: 2025-02-25 10:10+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"
@@ -547,52 +547,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -655,7 +655,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -843,7 +843,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -858,139 +857,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -998,83 +997,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: French\n" "Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2025-01-16 10:32+0000\n" "PO-Revision-Date: 2025-01-16 10:32+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n" "Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -561,55 +561,55 @@ msgstr "absent"
msgid "Check-in QR" msgid "Check-in QR"
msgstr "Enregistrement QR code" msgstr "Enregistrement QR code"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
"Le fichier PDF généré en arrière-plan n'a pas pu être chargé pour la raison " "Le fichier PDF généré en arrière-plan n'a pas pu être chargé pour la raison "
"suivante :" "suivante :"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Groupe d'objets" msgstr "Groupe d'objets"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Objet textuel (obsolète)" msgstr "Objet textuel (obsolète)"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "Zone de texte" msgstr "Zone de texte"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "Zone de code-barres" msgstr "Zone de code-barres"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "Zone d'image" msgstr "Zone d'image"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Propulsé par pretix" msgstr "Propulsé par pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Objet" msgstr "Objet"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Conception des billets" msgstr "Conception des billets"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "L'enregistrement a échoué." msgstr "L'enregistrement a échoué."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
"Erreur lors du téléchargement de votre fichier PDF, veuillez réessayer." "Erreur lors du téléchargement de votre fichier PDF, veuillez réessayer."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
"Voulez-vous vraiment quitter l'éditeur sans sauvegarder vos modifications ?" "Voulez-vous vraiment quitter l'éditeur sans sauvegarder vos modifications ?"
@@ -676,7 +676,7 @@ msgstr "Utiliser un nom différent en interne"
msgid "Click to close" msgid "Click to close"
msgstr "Cliquez pour fermer" msgstr "Cliquez pour fermer"
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "Vous avez des modifications non sauvegardées !" msgstr "Vous avez des modifications non sauvegardées !"
@@ -867,7 +867,6 @@ msgid "Only available with a voucher"
msgstr "Disponible avec un bon de réduction" msgstr "Disponible avec un bon de réduction"
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "Pas encore disponible" msgstr "Pas encore disponible"
@@ -882,23 +881,23 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "Actuellement non disponible" msgstr "Actuellement non disponible"
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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 "quantité minimum à commander: %s" msgstr "quantité minimum à commander: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:43 #: pretix/static/pretixpresale/js/widget/widget.js:42
msgctxt "widget" msgctxt "widget"
msgid "Close ticket shop" msgid "Close ticket shop"
msgstr "Fermer la billetterie" msgstr "Fermer la billetterie"
#: pretix/static/pretixpresale/js/widget/widget.js:44 #: 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 "La billetterie n' a pas pu être chargée." msgstr "La billetterie n' a pas pu être chargée."
#: pretix/static/pretixpresale/js/widget/widget.js:45 #: 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 "
@@ -908,17 +907,17 @@ msgstr ""
"Veuillez ouvrir cette boutique de billets dans un nouvel onglet pour " "Veuillez ouvrir cette boutique de billets dans un nouvel onglet pour "
"continuer." "continuer."
#: pretix/static/pretixpresale/js/widget/widget.js:47 #: pretix/static/pretixpresale/js/widget/widget.js:46
msgctxt "widget" msgctxt "widget"
msgid "Open ticket shop" msgid "Open ticket shop"
msgstr "Ouvrir la billetterie" msgstr "Ouvrir la billetterie"
#: pretix/static/pretixpresale/js/widget/widget.js:48 #: 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 "Le panier n' a pas pu être créé. Veuillez réessayer plus tard" msgstr "Le panier n' a pas pu être créé. Veuillez réessayer plus tard"
#: pretix/static/pretixpresale/js/widget/widget.js:49 #: 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 "
@@ -928,12 +927,12 @@ msgstr ""
"d'utilisateurs dans cette boutique de billets. Veuillez cliquer sur " "d'utilisateurs dans cette boutique de billets. Veuillez cliquer sur "
"\"Continuer\" pour réessayer dans un nouvel onglet." "\"Continuer\" pour réessayer dans un nouvel onglet."
#: pretix/static/pretixpresale/js/widget/widget.js:51 #: pretix/static/pretixpresale/js/widget/widget.js:50
msgctxt "widget" msgctxt "widget"
msgid "Waiting list" msgid "Waiting list"
msgstr "Liste d'attente" msgstr "Liste d'attente"
#: pretix/static/pretixpresale/js/widget/widget.js:52 #: 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 "
@@ -942,87 +941,87 @@ msgstr ""
"Vous avez actuellement un panier actif pour cet événement. Si vous " "Vous avez actuellement un panier actif pour cet événement. Si vous "
"sélectionnez d'autres produits, ils seront ajoutés à votre panier." "sélectionnez d'autres produits, ils seront ajoutés à votre panier."
#: pretix/static/pretixpresale/js/widget/widget.js:54 #: pretix/static/pretixpresale/js/widget/widget.js:53
msgctxt "widget" msgctxt "widget"
msgid "Resume checkout" msgid "Resume checkout"
msgstr "Finaliser ma commande" msgstr "Finaliser ma commande"
#: pretix/static/pretixpresale/js/widget/widget.js:55 #: pretix/static/pretixpresale/js/widget/widget.js:54
msgctxt "widget" msgctxt "widget"
msgid "Redeem a voucher" msgid "Redeem a voucher"
msgstr "Utiliser un bon d'achat" msgstr "Utiliser un bon d'achat"
#: pretix/static/pretixpresale/js/widget/widget.js:56 #: pretix/static/pretixpresale/js/widget/widget.js:55
msgctxt "widget" msgctxt "widget"
msgid "Redeem" msgid "Redeem"
msgstr "Echanger" msgstr "Echanger"
#: pretix/static/pretixpresale/js/widget/widget.js:57 #: pretix/static/pretixpresale/js/widget/widget.js:56
msgctxt "widget" msgctxt "widget"
msgid "Voucher code" msgid "Voucher code"
msgstr "Code de réduction" msgstr "Code de réduction"
#: pretix/static/pretixpresale/js/widget/widget.js:58 #: pretix/static/pretixpresale/js/widget/widget.js:57
msgctxt "widget" msgctxt "widget"
msgid "Close" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
#: pretix/static/pretixpresale/js/widget/widget.js:59 #: pretix/static/pretixpresale/js/widget/widget.js:58
msgctxt "widget" msgctxt "widget"
msgid "Continue" msgid "Continue"
msgstr "Continuer" msgstr "Continuer"
#: pretix/static/pretixpresale/js/widget/widget.js:60 #: pretix/static/pretixpresale/js/widget/widget.js:59
msgctxt "widget" msgctxt "widget"
msgid "Show variants" msgid "Show variants"
msgstr "Afficher les variantes" msgstr "Afficher les variantes"
#: pretix/static/pretixpresale/js/widget/widget.js:61 #: pretix/static/pretixpresale/js/widget/widget.js:60
msgctxt "widget" msgctxt "widget"
msgid "Hide variants" msgid "Hide variants"
msgstr "Masquer les variantes" msgstr "Masquer les variantes"
#: pretix/static/pretixpresale/js/widget/widget.js:62 #: pretix/static/pretixpresale/js/widget/widget.js:61
msgctxt "widget" msgctxt "widget"
msgid "Choose a different event" msgid "Choose a different event"
msgstr "Choisissez un autre événement" msgstr "Choisissez un autre événement"
#: pretix/static/pretixpresale/js/widget/widget.js:63 #: pretix/static/pretixpresale/js/widget/widget.js:62
msgctxt "widget" msgctxt "widget"
msgid "Choose a different date" msgid "Choose a different date"
msgstr "Choisir une autre date" msgstr "Choisir une autre date"
#: pretix/static/pretixpresale/js/widget/widget.js:64 #: pretix/static/pretixpresale/js/widget/widget.js:63
msgctxt "widget" msgctxt "widget"
msgid "Back" msgid "Back"
msgstr "Retour" msgstr "Retour"
#: pretix/static/pretixpresale/js/widget/widget.js:65 #: pretix/static/pretixpresale/js/widget/widget.js:64
msgctxt "widget" msgctxt "widget"
msgid "Next month" msgid "Next month"
msgstr "Mois suivant" msgstr "Mois suivant"
#: pretix/static/pretixpresale/js/widget/widget.js:66 #: pretix/static/pretixpresale/js/widget/widget.js:65
msgctxt "widget" msgctxt "widget"
msgid "Previous month" msgid "Previous month"
msgstr "Moins précédent" msgstr "Moins précédent"
#: pretix/static/pretixpresale/js/widget/widget.js:67 #: pretix/static/pretixpresale/js/widget/widget.js:66
msgctxt "widget" msgctxt "widget"
msgid "Next week" msgid "Next week"
msgstr "La semaine prochaine" msgstr "La semaine prochaine"
#: pretix/static/pretixpresale/js/widget/widget.js:68 #: pretix/static/pretixpresale/js/widget/widget.js:67
msgctxt "widget" msgctxt "widget"
msgid "Previous week" msgid "Previous week"
msgstr "Semaine précédente" msgstr "Semaine précédente"
#: pretix/static/pretixpresale/js/widget/widget.js:69 #: pretix/static/pretixpresale/js/widget/widget.js:68
msgctxt "widget" msgctxt "widget"
msgid "Open seat selection" msgid "Open seat selection"
msgstr "Ouvrir la sélection de sièges" msgstr "Ouvrir la sélection de sièges"
#: pretix/static/pretixpresale/js/widget/widget.js:70 #: 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 "
@@ -1033,84 +1032,84 @@ msgstr ""
"vous le souhaitez, vous pouvez vous ajouter à la liste dattente. Nous vous " "vous le souhaitez, vous pouvez vous ajouter à la liste dattente. Nous vous "
"informerons alors si des places sont à nouveau disponibles." "informerons alors si des places sont à nouveau disponibles."
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: pretix/static/pretixpresale/js/widget/widget.js:70
msgctxt "widget" msgctxt "widget"
msgid "Load more" msgid "Load more"
msgstr "Charger plus" msgstr "Charger plus"
#: pretix/static/pretixpresale/js/widget/widget.js:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Lu" msgstr "Lu"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Ma" msgstr "Ma"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Me" msgstr "Me"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Je" msgstr "Je"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Ve" msgstr "Ve"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "Sa" msgstr "Sa"
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "Di" msgstr "Di"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Janvier" msgstr "Janvier"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Février" msgstr "Février"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "Mars" msgstr "Mars"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "Avril" msgstr "Avril"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "Mai" msgstr "Mai"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "Juin" msgstr "Juin"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "Juillet" msgstr "Juillet"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "Août" msgstr "Août"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "Septembre" msgstr "Septembre"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Octobre" msgstr "Octobre"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "Novembre" msgstr "Novembre"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "Décembre" msgstr "Décembre"
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2022-02-22 22:00+0000\n" "PO-Revision-Date: 2022-02-22 22:00+0000\n"
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n" "Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -574,57 +574,57 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "QR de validación" msgstr "QR de validación"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "O arquivo PDF de fondo non se puido cargar polo motivo seguinte:" msgstr "O arquivo PDF de fondo non se puido cargar polo motivo seguinte:"
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "Grupo de obxectos" msgstr "Grupo de obxectos"
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "Obxecto de texto" msgstr "Obxecto de texto"
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy #, fuzzy
#| msgid "Text object" #| msgid "Text object"
msgid "Text box" msgid "Text box"
msgstr "Obxecto de texto" msgstr "Obxecto de texto"
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "Área para código de barras" msgstr "Área para código de barras"
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "Área de imaxe" msgstr "Área de imaxe"
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "Desenvolto por Pretix" msgstr "Desenvolto por Pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "Obxecto" msgstr "Obxecto"
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "Deseño do tícket" msgstr "Deseño do tícket"
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "O gardado fallou." msgstr "O gardado fallou."
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
"Houbo un erro mentres se cargaba o arquivo PDF. Por favor, inténteo de novo." "Houbo un erro mentres se cargaba o arquivo PDF. Por favor, inténteo de novo."
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "Realmente desexa saír do editor sen gardar os cambios?" msgstr "Realmente desexa saír do editor sen gardar os cambios?"
@@ -691,7 +691,7 @@ msgstr "Usar un nome diferente internamente"
msgid "Click to close" msgid "Click to close"
msgstr "Click para cerrar" msgstr "Click para cerrar"
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "Tes cambios sen gardar!" msgstr "Tes cambios sen gardar!"
@@ -887,7 +887,6 @@ msgid "Only available with a voucher"
msgstr "Só dispoñible mediante vale" msgstr "Só dispoñible mediante vale"
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "currently available: %s" #| msgid "currently available: %s"
@@ -908,23 +907,23 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "dispoñible actualmente: %s" msgstr "dispoñible actualmente: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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 "cantidade mínima de pedido: %s" msgstr "cantidade mínima de pedido: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:43 #: pretix/static/pretixpresale/js/widget/widget.js:42
msgctxt "widget" msgctxt "widget"
msgid "Close ticket shop" msgid "Close ticket shop"
msgstr "Cerrar a tenda de tíckets" msgstr "Cerrar a tenda de tíckets"
#: pretix/static/pretixpresale/js/widget/widget.js:44 #: 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 "Non se puido cargar a tenda de tíckets." msgstr "Non se puido cargar a tenda de tíckets."
#: pretix/static/pretixpresale/js/widget/widget.js:45 #: 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 "
@@ -933,18 +932,18 @@ msgstr ""
"Actualmente hai moitas persoas usuarias na tenda de tíckets. Por favor, abra " "Actualmente hai moitas persoas usuarias na tenda de tíckets. Por favor, abra "
"a tenda nunha nova pestana para continuar." "a tenda nunha nova pestana para continuar."
#: pretix/static/pretixpresale/js/widget/widget.js:47 #: pretix/static/pretixpresale/js/widget/widget.js:46
msgctxt "widget" msgctxt "widget"
msgid "Open ticket shop" msgid "Open ticket shop"
msgstr "Abrir a tenda de tíckets" msgstr "Abrir a tenda de tíckets"
#: pretix/static/pretixpresale/js/widget/widget.js:48 #: 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 ""
"O carro de compras non se puido crear. Por favor, inténteo de novo máis tarde" "O carro de compras non se puido crear. Por favor, inténteo de novo máis tarde"
#: pretix/static/pretixpresale/js/widget/widget.js:49 #: 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 "
@@ -953,12 +952,12 @@ msgstr ""
"Non puidemos crear o seu carro debido a que hai moitas persoas usuarias na " "Non puidemos crear o seu carro debido a que hai moitas persoas usuarias na "
"tenda. Por favor, presione \"Continuar\" para intentalo nunha nova pestana." "tenda. Por favor, presione \"Continuar\" para intentalo nunha nova pestana."
#: pretix/static/pretixpresale/js/widget/widget.js:51 #: pretix/static/pretixpresale/js/widget/widget.js:50
msgctxt "widget" msgctxt "widget"
msgid "Waiting list" msgid "Waiting list"
msgstr "Lista de agarda" msgstr "Lista de agarda"
#: pretix/static/pretixpresale/js/widget/widget.js:52 #: 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 "
@@ -967,37 +966,37 @@ msgstr ""
"Xa ten un carro de compras activo para este evento. Se selecciona máis " "Xa ten un carro de compras activo para este evento. Se selecciona máis "
"produtos, estes engadiranse ao carro actual." "produtos, estes engadiranse ao carro actual."
#: pretix/static/pretixpresale/js/widget/widget.js:54 #: pretix/static/pretixpresale/js/widget/widget.js:53
msgctxt "widget" msgctxt "widget"
msgid "Resume checkout" msgid "Resume checkout"
msgstr "Continuar co pagamento" msgstr "Continuar co pagamento"
#: pretix/static/pretixpresale/js/widget/widget.js:55 #: pretix/static/pretixpresale/js/widget/widget.js:54
msgctxt "widget" msgctxt "widget"
msgid "Redeem a voucher" msgid "Redeem a voucher"
msgstr "Trocar un vale" msgstr "Trocar un vale"
#: pretix/static/pretixpresale/js/widget/widget.js:56 #: pretix/static/pretixpresale/js/widget/widget.js:55
msgctxt "widget" msgctxt "widget"
msgid "Redeem" msgid "Redeem"
msgstr "Trocar" msgstr "Trocar"
#: pretix/static/pretixpresale/js/widget/widget.js:57 #: pretix/static/pretixpresale/js/widget/widget.js:56
msgctxt "widget" msgctxt "widget"
msgid "Voucher code" msgid "Voucher code"
msgstr "Código do cupón" msgstr "Código do cupón"
#: pretix/static/pretixpresale/js/widget/widget.js:58 #: 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:59 #: 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:60 #: pretix/static/pretixpresale/js/widget/widget.js:59
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1005,7 +1004,7 @@ msgctxt "widget"
msgid "Show variants" msgid "Show variants"
msgstr "Ver variacións" msgstr "Ver variacións"
#: pretix/static/pretixpresale/js/widget/widget.js:61 #: pretix/static/pretixpresale/js/widget/widget.js:60
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
#| msgid "See variations" #| msgid "See variations"
@@ -1013,47 +1012,47 @@ msgctxt "widget"
msgid "Hide variants" msgid "Hide variants"
msgstr "Ver variacións" msgstr "Ver variacións"
#: pretix/static/pretixpresale/js/widget/widget.js:62 #: pretix/static/pretixpresale/js/widget/widget.js:61
msgctxt "widget" msgctxt "widget"
msgid "Choose a different event" msgid "Choose a different event"
msgstr "Elixir un evento distinto" msgstr "Elixir un evento distinto"
#: pretix/static/pretixpresale/js/widget/widget.js:63 #: pretix/static/pretixpresale/js/widget/widget.js:62
msgctxt "widget" msgctxt "widget"
msgid "Choose a different date" msgid "Choose a different date"
msgstr "Elixir unha data diferente" msgstr "Elixir unha data diferente"
#: pretix/static/pretixpresale/js/widget/widget.js:64 #: 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:65 #: pretix/static/pretixpresale/js/widget/widget.js:64
msgctxt "widget" msgctxt "widget"
msgid "Next month" msgid "Next month"
msgstr "Mes seguinte" msgstr "Mes seguinte"
#: pretix/static/pretixpresale/js/widget/widget.js:66 #: 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:67 #: pretix/static/pretixpresale/js/widget/widget.js:66
msgctxt "widget" msgctxt "widget"
msgid "Next week" msgid "Next week"
msgstr "Semana seguinte" msgstr "Semana seguinte"
#: pretix/static/pretixpresale/js/widget/widget.js:68 #: 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:69 #: 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 asentos" msgstr "Abrir selección de asentos"
#: pretix/static/pretixpresale/js/widget/widget.js:70 #: 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 "
@@ -1061,84 +1060,84 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: pretix/static/pretixpresale/js/widget/widget.js:70
msgctxt "widget" msgctxt "widget"
msgid "Load more" msgid "Load more"
msgstr "Cargar máis" msgstr "Cargar máis"
#: pretix/static/pretixpresale/js/widget/widget.js:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "Lu" msgstr "Lu"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "Mar" msgstr "Mar"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "Mér" msgstr "Mér"
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "Xo" msgstr "Xo"
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "Ve" msgstr "Ve"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: 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:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "Dom" msgstr "Dom"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "Xaneiro" msgstr "Xaneiro"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "Febreiro" msgstr "Febreiro"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "Marzo" msgstr "Marzo"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "Abril" msgstr "Abril"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "Maio" msgstr "Maio"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "Xuño" msgstr "Xuño"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "Xullo" msgstr "Xullo"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "Agosto" msgstr "Agosto"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "Setembro" msgstr "Setembro"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "Outubro" msgstr "Outubro"
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "Novembro" msgstr "Novembro"
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "Decembro" msgstr "Decembro"
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2021-09-24 13:54+0000\n" "PO-Revision-Date: 2021-09-24 13:54+0000\n"
"Last-Translator: ofirtro <ofir.tro@gmail.com>\n" "Last-Translator: ofirtro <ofir.tro@gmail.com>\n"
"Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -555,52 +555,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -663,7 +663,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -855,7 +855,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -870,139 +869,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1010,83 +1009,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+61 -62
View File
@@ -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: 2025-02-25 10:10+0000\n" "POT-Creation-Date: 2025-01-15 16:46+0000\n"
"PO-Revision-Date: 2024-11-17 00:00+0000\n" "PO-Revision-Date: 2024-11-17 00:00+0000\n"
"Last-Translator: Pavle Ergović <pavleergovic@gmail.com>\n" "Last-Translator: Pavle Ergović <pavleergovic@gmail.com>\n"
"Language-Team: Croatian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Croatian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -549,52 +549,52 @@ msgstr ""
msgid "Check-in QR" msgid "Check-in QR"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903 #: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:908 #: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:910 #: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box" msgid "Text box"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:912 #: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:914 #: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area" msgid "Image area"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:916 #: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:918 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object" msgid "Object"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:922 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1259 #: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1328 #: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1379 #: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1362 #: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr ""
@@ -657,7 +657,7 @@ msgstr ""
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1090 #: pretix/static/pretixcontrol/js/ui/main.js:1084
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr ""
@@ -845,7 +845,6 @@ msgid "Only available with a voucher"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr ""
@@ -860,139 +859,139 @@ msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: 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:43 #: 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:44 #: 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:45 #: 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:47 #: 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:48 #: 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:49 #: 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:51 #: 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:52 #: 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:54 #: 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:55 #: 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:56 #: 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:57 #: 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:58 #: 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:59 #: 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:60 #: 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:61 #: 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:62 #: 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:63 #: 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:64 #: 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:65 #: 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:66 #: 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:67 #: 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:68 #: 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:69 #: 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:70 #: 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 "
@@ -1000,83 +999,83 @@ msgid ""
"again." "again."
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: 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:73 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "Tu" msgid "Tu"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "Th" msgid "Th"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:77 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "Fr" msgid "Fr"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "Sa" msgid "Sa"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Su" msgid "Su"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "January" msgid "January"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "February" msgid "February"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "March" msgid "March"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "April" msgid "April"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "May" msgid "May"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "June" msgid "June"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "July" msgid "July"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "August" msgid "August"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "September" msgid "September"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "October" msgid "October"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:92 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "November" msgid "November"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:93 #: pretix/static/pretixpresale/js/widget/widget.js:92
msgid "December" msgid "December"
msgstr "" msgstr ""

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