forked from CGM_Public/pretix_original
Compare commits
155
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bca1c10cc4 | ||
|
|
6f78085876 | ||
|
|
55588abd44 | ||
|
|
0da5305b08 | ||
|
|
6ede62a868 | ||
|
|
f7b4e37c95 | ||
|
|
3330c6fcd6 | ||
|
|
1c02616d75 | ||
|
|
86ae18564d | ||
|
|
a07a04d115 | ||
|
|
51e7c889ec | ||
|
|
4cd2381a5e | ||
|
|
6474240d49 | ||
|
|
0938bf3246 | ||
|
|
aad94f1b2a | ||
|
|
a677575eef | ||
|
|
9160e01333 | ||
|
|
d2b9fe475b | ||
|
|
cff9ae6b18 | ||
|
|
4fb49820af | ||
|
|
1f465ddddb | ||
|
|
1bda102d46 | ||
|
|
8066a7ed0f | ||
|
|
bc960ffde1 | ||
|
|
cbbbf44f1f | ||
|
|
28ab0d118c | ||
|
|
15710cbec9 | ||
|
|
4aaeee64d0 | ||
|
|
ffd3882aa8 | ||
|
|
36a90c4e76 | ||
|
|
098580ccf4 | ||
|
|
c0f8c9b9e4 | ||
|
|
a1a553eb52 | ||
|
|
18e1e7716c | ||
|
|
081d3a73fa | ||
|
|
4234a6440d | ||
|
|
a09275c582 | ||
|
|
a8099a1284 | ||
|
|
2f19b48f97 | ||
|
|
abbf7bdd69 | ||
|
|
6cf8c7d4f0 | ||
|
|
c6196f9900 | ||
|
|
cd7850337b | ||
|
|
0220965ca9 | ||
|
|
bae1512235 | ||
|
|
71f8a3ad3e | ||
|
|
24dd065839 | ||
|
|
08f0150177 | ||
|
|
367a4fc64e | ||
|
|
33ace8554b | ||
|
|
94cbb19db0 | ||
|
|
ea33c7b1b9 | ||
|
|
cba5fd4c27 | ||
|
|
297999a00e | ||
|
|
cbbf13e9e2 | ||
|
|
4437706494 | ||
|
|
3fff023a8a | ||
|
|
583429b6d9 | ||
|
|
61c12ca871 | ||
|
|
e3145b79d5 | ||
|
|
1d8f789c21 | ||
|
|
eb8e36e1eb | ||
|
|
21d8d93bed | ||
|
|
f2e09c020b | ||
|
|
ebe5647066 | ||
|
|
5b5e831e37 | ||
|
|
8a155d5fe3 | ||
|
|
2c67b82f4a | ||
|
|
7a2878657d | ||
|
|
90f9dd2bde | ||
|
|
6c292caa62 | ||
|
|
d3e73c4fc2 | ||
|
|
bfe0b218de | ||
|
|
0f44702640 | ||
|
|
8185175d14 | ||
|
|
8c24209e55 | ||
|
|
5c80b75d09 | ||
|
|
79c00dfa6c | ||
|
|
3793300d45 | ||
|
|
a70cd792c8 | ||
|
|
7c479c1df6 | ||
|
|
efd074a1ee | ||
|
|
7d27440003 | ||
|
|
269f7bf789 | ||
|
|
c96bfab70f | ||
|
|
ec63456b9a | ||
|
|
3a39eb3815 | ||
|
|
ce0ab8bd07 | ||
|
|
289496d6d2 | ||
|
|
abe45bccae | ||
|
|
a8893bdc96 | ||
|
|
cb76956887 | ||
|
|
809b971b4f | ||
|
|
d5f2f0e3af | ||
|
|
301d9de18e | ||
|
|
dcb1d920eb | ||
|
|
fabe476397 | ||
|
|
3101660a3e | ||
|
|
f8b677a2a9 | ||
|
|
15643f8dd5 | ||
|
|
fbaa0d667f | ||
|
|
50c5a2e8d9 | ||
|
|
7bc559acab | ||
|
|
c58a1aaa48 | ||
|
|
385c8c6ef1 | ||
|
|
d3457ce5b6 | ||
|
|
7087f783e6 | ||
|
|
8c8650090d | ||
|
|
12804ff1a0 | ||
|
|
4cb271868b | ||
|
|
9d546904e6 | ||
|
|
092b51f8f3 | ||
|
|
4a49519869 | ||
|
|
aa121b900e | ||
|
|
9e3ce4f1ec | ||
|
|
2e5385ca32 | ||
|
|
f5dfe31fdd | ||
|
|
032974e9ce | ||
|
|
31c086e2f0 | ||
|
|
3c4de2aecd | ||
|
|
8d9543c01e | ||
|
|
608d82ce4f | ||
|
|
7f0ed374b5 | ||
|
|
c7c9c95fbb | ||
|
|
5667da9ad2 | ||
|
|
558d0f1a4e | ||
|
|
0e832a7c41 | ||
|
|
7f948bf263 | ||
|
|
d4a32fd39d | ||
|
|
7bd5fc7ae0 | ||
|
|
36e8a4bf62 | ||
|
|
5ab01eb537 | ||
|
|
451ef2e734 | ||
|
|
2e657940bc | ||
|
|
6ef542837a | ||
|
|
619126bd24 | ||
|
|
1bdc49e087 | ||
|
|
cf4ee53f0d | ||
|
|
d742aa2f48 | ||
|
|
b7f693b934 | ||
|
|
c5ede32649 | ||
|
|
f543cf2da5 | ||
|
|
40cdb0c507 | ||
|
|
7a8b3d08df | ||
|
|
12a898476e | ||
|
|
2acf043872 | ||
|
|
062395dac1 | ||
|
|
6fc76d4122 | ||
|
|
859df96afc | ||
|
|
b95da484a0 | ||
|
|
d6d6b73a38 | ||
|
|
c8b8fba171 | ||
|
|
4580d6f710 | ||
|
|
2a19a423de | ||
|
|
409c1eef30 |
@@ -343,8 +343,8 @@ Endpoints
|
|||||||
Creates a new event with properties as set in the request body. The properties that are copied are: ``is_public``,
|
Creates a new event with properties as set in the request body. The properties that are copied are: ``is_public``,
|
||||||
``testmode``, ``has_subevents``, settings, plugin settings, items, variations, add-ons, quotas, categories, tax rules, questions.
|
``testmode``, ``has_subevents``, settings, plugin settings, items, variations, add-ons, quotas, categories, tax rules, questions.
|
||||||
|
|
||||||
If the ``plugins``, ``has_subevents`` and/or ``is_public`` fields are present in the post body this will determine their
|
If the ``plugins``, ``has_subevents``, ``meta_data`` and/or ``is_public`` fields are present in the post body this will
|
||||||
value. Otherwise their value will be copied from the existing event.
|
determine their value. Otherwise their value will be copied from the existing event.
|
||||||
|
|
||||||
Please note that you can only copy from events under the same organizer this way. Use the ``clone_from`` parameter
|
Please note that you can only copy from events under the same organizer this way. Use the ``clone_from`` parameter
|
||||||
when creating a new event for this instead.
|
when creating a new event for this instead.
|
||||||
|
|||||||
@@ -137,13 +137,17 @@ last_modified datetime Last modificati
|
|||||||
|
|
||||||
The ``event`` attribute has been added. The organizer-level endpoint has been added.
|
The ``event`` attribute has been added. The organizer-level endpoint has been added.
|
||||||
|
|
||||||
|
.. versionchanged:: 2023.9
|
||||||
|
|
||||||
|
The ``customer`` query parameter has been added.
|
||||||
|
|
||||||
.. versionchanged:: 2023.10
|
.. versionchanged:: 2023.10
|
||||||
|
|
||||||
The ``checkin_text`` attribute has been added.
|
The ``checkin_text`` attribute has been added.
|
||||||
|
|
||||||
.. versionchanged:: 2023.9
|
.. versionchanged:: 2024.1
|
||||||
|
|
||||||
The ``customer`` query parameter has been added.
|
The ``expires`` attribute can now be passed during order creation.
|
||||||
|
|
||||||
|
|
||||||
.. _order-position-resource:
|
.. _order-position-resource:
|
||||||
@@ -729,6 +733,8 @@ Updating order fields
|
|||||||
|
|
||||||
* ``valid_if_pending``
|
* ``valid_if_pending``
|
||||||
|
|
||||||
|
* ``expires``
|
||||||
|
|
||||||
**Example request**:
|
**Example request**:
|
||||||
|
|
||||||
.. sourcecode:: http
|
.. sourcecode:: http
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ transactions list of objects Transactions in
|
|||||||
├ checksum string Checksum computed from payer, reference, amount and
|
├ checksum string Checksum computed from payer, reference, amount and
|
||||||
date
|
date
|
||||||
├ payer string Payment source
|
├ payer string Payment source
|
||||||
|
├ external_id string Unique ID of the payment from an external source
|
||||||
├ reference string Payment reference
|
├ reference string Payment reference
|
||||||
├ amount string Payment amount
|
├ amount string Payment amount
|
||||||
├ iban string Payment IBAN
|
├ iban string Payment IBAN
|
||||||
@@ -85,6 +86,7 @@ Endpoints
|
|||||||
"date": "26.06.2017",
|
"date": "26.06.2017",
|
||||||
"payer": "John Doe",
|
"payer": "John Doe",
|
||||||
"order": null,
|
"order": null,
|
||||||
|
"external_id": null,
|
||||||
"iban": "",
|
"iban": "",
|
||||||
"bic": "",
|
"bic": "",
|
||||||
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
|
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
|
||||||
@@ -139,6 +141,7 @@ Endpoints
|
|||||||
"iban": "",
|
"iban": "",
|
||||||
"bic": "",
|
"bic": "",
|
||||||
"order": null,
|
"order": null,
|
||||||
|
"external_id": null,
|
||||||
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
|
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
|
||||||
"reference": "GUTSCHRIFT\r\nSAMPLECONF-NAB12 EREF: SAMPLECONF-NAB12\r\nIBAN: DE1234556…",
|
"reference": "GUTSCHRIFT\r\nSAMPLECONF-NAB12 EREF: SAMPLECONF-NAB12\r\nIBAN: DE1234556…",
|
||||||
"state": "nomatch",
|
"state": "nomatch",
|
||||||
|
|||||||
@@ -194,17 +194,23 @@ A complete record could look like this::
|
|||||||
|
|
||||||
v=spf1 a mx include:_spf.pretix.eu ~all
|
v=spf1 a mx include:_spf.pretix.eu ~all
|
||||||
|
|
||||||
Make sure to read up on the `SPF specification`_. If you want to authenticate your emails with DKIM, set up a DNS TXT
|
Make sure to read up on the `SPF specification`_.
|
||||||
record for the subdomain ``pretix._domainkey`` with the following contents::
|
|
||||||
|
|
||||||
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXrDk6lwOWX00e2MbiiJac6huI+gnzLf9N4G1FnBv3PXq8fz3i2q1szH72OF5mAlKm3zXO4cl/uxx+lfidS1ERbX6Bn9BRstBTQUKWC4JFj8Yk9+fwT7LWehDURazLdTzfsIjJFudLLvxtOKSaOCtMhbPX05DIhziaqVCBqgz/NQIDAQAB
|
If you want to authenticate your emails with `DKIM`_, set up a ``CNAME`` record for the subdomain ``pretix._domainkey``
|
||||||
|
pointing to ``dkim.pretix.eu``::
|
||||||
|
|
||||||
|
pretix._domainkey.mydomain.com. CNAME dkim.pretix.eu.
|
||||||
|
|
||||||
Then, please contact support@pretix.eu and we will enable DKIM for your domain on our mail servers.
|
Then, please contact support@pretix.eu and we will enable DKIM for your domain on our mail servers.
|
||||||
|
|
||||||
|
For senders with larger volumes, Google Mail also requires you to have a `DMARC`_ policy (that may however be ``p=none``).
|
||||||
|
|
||||||
.. note:: Many SMTP servers impose rate limits on the sent emails, such as a maximum number of emails sent per hour.
|
.. note:: Many SMTP servers impose rate limits on the sent emails, such as a maximum number of emails sent per hour.
|
||||||
These SMTP servers are often not suitable for use with pretix, in case you want to send an email to many
|
These SMTP servers are often not suitable for use with pretix, in case you want to send an email to many
|
||||||
hundreds or thousands of ticket buyers. Depending on how the rate limit is implemented, emails might be lost
|
hundreds or thousands of ticket buyers. Depending on how the rate limit is implemented, emails might be lost
|
||||||
in this case, as pretix only retries email delivery for a certain time period.
|
in this case, as pretix only retries email delivery for a certain time period.
|
||||||
|
|
||||||
|
.. _DKIM: https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
|
||||||
.. _Sender Policy Framework: https://en.wikipedia.org/wiki/Sender_Policy_Framework
|
.. _Sender Policy Framework: https://en.wikipedia.org/wiki/Sender_Policy_Framework
|
||||||
.. _SPF specification: http://www.open-spf.org/SPF_Record_Syntax
|
.. _SPF specification: http://www.open-spf.org/SPF_Record_Syntax
|
||||||
|
.. _DMARC: https://en.wikipedia.org/wiki/DMARC
|
||||||
@@ -138,7 +138,7 @@ the button-style of that checkbox with the one in the pretix shop, you can use t
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Due to compatibilty with existing widget installations, the default value for ``single-item-select``
|
Due to compatibility with existing widget installations, the default value for ``single-item-select``
|
||||||
is ``checkbox``. This might change in the future, so make sure, to set the attribute to
|
is ``checkbox``. This might change in the future, so make sure, to set the attribute to
|
||||||
``single-item-select="checkbox"`` if you need it.
|
``single-item-select="checkbox"`` if you need it.
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ settings. For example, if you set up a meta data property called "Promoted" that
|
|||||||
|
|
||||||
<pretix-widget event="https://pretix.eu/demo/series/" list-type="list" filter="attr[Promoted]=Yes"></pretix-widget>
|
<pretix-widget event="https://pretix.eu/demo/series/" list-type="list" filter="attr[Promoted]=Yes"></pretix-widget>
|
||||||
|
|
||||||
If you have enabled public filters in your meta data attribute configuration, a filter formshows up. To disable, use::
|
If you have enabled public filters in your meta data attribute configuration, a filter-form shows up. To disable, use::
|
||||||
|
|
||||||
<pretix-widget event="https://pretix.eu/demo/democon/" disable-filters></pretix-widget>
|
<pretix-widget event="https://pretix.eu/demo/democon/" disable-filters></pretix-widget>
|
||||||
|
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ to get a better plain text representation of your text. Note however, that for
|
|||||||
security reasons you can only use the following HTML elements::
|
security reasons you can only use the following HTML elements::
|
||||||
|
|
||||||
a, abbr, acronym, b, br, code, div, em, h1, h2,
|
a, abbr, acronym, b, br, code, div, em, h1, h2,
|
||||||
h3, h4, h5, h6, hr, i, li, ol, p, pre, span, strong,
|
h3, h4, h5, h6, hr, i, li, ol, p, pre, s, span, strong,
|
||||||
table, tbody, td, thead, tr, ul
|
table, tbody, td, thead, tr, ul
|
||||||
|
|
||||||
Additionally, only the following attributes are allowed on them::
|
Additionally, only the following attributes are allowed on them::
|
||||||
|
|||||||
+2
-2
@@ -59,7 +59,7 @@ dependencies = [
|
|||||||
"dnspython==2.3.*",
|
"dnspython==2.3.*",
|
||||||
"drf_ujson2==1.7.*",
|
"drf_ujson2==1.7.*",
|
||||||
"geoip2==4.*",
|
"geoip2==4.*",
|
||||||
"importlib_metadata==6.*", # Polyfill, we can probably drop this once we require Python 3.10+
|
"importlib_metadata==7.*", # Polyfill, we can probably drop this once we require Python 3.10+
|
||||||
"isoweek",
|
"isoweek",
|
||||||
"jsonschema",
|
"jsonschema",
|
||||||
"kombu==5.3.*",
|
"kombu==5.3.*",
|
||||||
@@ -97,7 +97,7 @@ dependencies = [
|
|||||||
"sepaxml==2.6.*",
|
"sepaxml==2.6.*",
|
||||||
"slimit",
|
"slimit",
|
||||||
"static3==0.7.*",
|
"static3==0.7.*",
|
||||||
"stripe==5.4.*",
|
"stripe==7.9.*",
|
||||||
"text-unidecode==1.*",
|
"text-unidecode==1.*",
|
||||||
"tlds>=2020041600",
|
"tlds>=2020041600",
|
||||||
"tqdm==4.*",
|
"tqdm==4.*",
|
||||||
|
|||||||
@@ -267,9 +267,10 @@ CACHE_LARGE_VALUES_ALIAS = 'default'
|
|||||||
FILE_UPLOAD_EXTENSIONS_IMAGE = (".png", ".jpg", ".gif", ".jpeg")
|
FILE_UPLOAD_EXTENSIONS_IMAGE = (".png", ".jpg", ".gif", ".jpeg")
|
||||||
PILLOW_FORMATS_IMAGE = ('PNG', 'GIF', 'JPEG')
|
PILLOW_FORMATS_IMAGE = ('PNG', 'GIF', 'JPEG')
|
||||||
|
|
||||||
FILE_UPLOAD_EXTENSIONS_FAVICON = (".ico", ".png", "jpg", ".gif", ".jpeg")
|
FILE_UPLOAD_EXTENSIONS_FAVICON = (".ico", ".png", ".jpg", ".gif", ".jpeg")
|
||||||
|
PILLOW_FORMATS_QUESTIONS_FAVICON = ('PNG', 'GIF', 'JPEG', 'ICO')
|
||||||
|
|
||||||
FILE_UPLOAD_EXTENSIONS_QUESTION_IMAGE = (".png", "jpg", ".gif", ".jpeg", ".bmp", ".tif", ".tiff", ".jfif")
|
FILE_UPLOAD_EXTENSIONS_QUESTION_IMAGE = (".png", ".jpg", ".gif", ".jpeg", ".bmp", ".tif", ".tiff", ".jfif")
|
||||||
PILLOW_FORMATS_QUESTIONS_IMAGE = ('PNG', 'GIF', 'JPEG', 'BMP', 'TIFF')
|
PILLOW_FORMATS_QUESTIONS_IMAGE = ('PNG', 'GIF', 'JPEG', 'BMP', 'TIFF')
|
||||||
|
|
||||||
FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT = (
|
FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT = (
|
||||||
@@ -278,3 +279,5 @@ FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT = (
|
|||||||
".bmp", ".tif", ".tiff"
|
".bmp", ".tif", ".tiff"
|
||||||
)
|
)
|
||||||
FILE_UPLOAD_EXTENSIONS_OTHER = FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT
|
FILE_UPLOAD_EXTENSIONS_OTHER = FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT
|
||||||
|
|
||||||
|
PRETIX_MAX_ORDER_SIZE = 500
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ MAIL_FROM_ORGANIZERS = 'invalid@invalid'
|
|||||||
FILE_UPLOAD_MAX_SIZE_EMAIL_AUTO_ATTACHMENT = 10
|
FILE_UPLOAD_MAX_SIZE_EMAIL_AUTO_ATTACHMENT = 10
|
||||||
FILE_UPLOAD_MAX_SIZE_EMAIL_ATTACHMENT = 10
|
FILE_UPLOAD_MAX_SIZE_EMAIL_ATTACHMENT = 10
|
||||||
FILE_UPLOAD_MAX_SIZE_IMAGE = 10
|
FILE_UPLOAD_MAX_SIZE_IMAGE = 10
|
||||||
|
FILE_UPLOAD_MAX_SIZE_FAVICON = 10
|
||||||
DEFAULT_CURRENCY = 'EUR'
|
DEFAULT_CURRENCY = 'EUR'
|
||||||
SECRET_KEY = "build-time-secret-key"
|
SECRET_KEY = "build-time-secret-key"
|
||||||
HAS_REDIS = False
|
HAS_REDIS = False
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ class CloneEventSerializer(EventSerializer):
|
|||||||
new_event = super().create({**validated_data, 'plugins': None})
|
new_event = super().create({**validated_data, 'plugins': None})
|
||||||
|
|
||||||
event = Event.objects.filter(slug=self.context['event'], organizer=self.context['organizer'].pk).first()
|
event = Event.objects.filter(slug=self.context['event'], organizer=self.context['organizer'].pk).first()
|
||||||
new_event.copy_data_from(event)
|
new_event.copy_data_from(event, skip_meta_data='meta_data' in validated_data)
|
||||||
|
|
||||||
if plugins is not None:
|
if plugins is not None:
|
||||||
new_event.set_active_plugins(plugins)
|
new_event.set_active_plugins(plugins)
|
||||||
|
|||||||
@@ -1035,13 +1035,14 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
|||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.fields['positions'].child.fields['voucher'].queryset = self.context['event'].vouchers.all()
|
self.fields['positions'].child.fields['voucher'].queryset = self.context['event'].vouchers.all()
|
||||||
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
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Order
|
model = Order
|
||||||
fields = ('code', 'status', 'testmode', 'email', 'phone', 'locale', 'payment_provider', 'fees', 'comment', 'sales_channel',
|
fields = ('code', 'status', 'testmode', 'email', 'phone', 'locale', 'payment_provider', 'fees', 'comment', 'sales_channel',
|
||||||
'invoice_address', 'positions', 'checkin_attention', 'checkin_text', 'payment_info', 'payment_date',
|
'invoice_address', 'positions', 'checkin_attention', 'checkin_text', 'payment_info', 'payment_date',
|
||||||
'consume_carts', 'force', 'send_email', 'simulate', 'customer', 'custom_followup_at',
|
'consume_carts', 'force', 'send_email', 'simulate', 'customer', 'custom_followup_at',
|
||||||
'require_approval', 'valid_if_pending')
|
'require_approval', 'valid_if_pending', 'expires')
|
||||||
|
|
||||||
def validate_payment_provider(self, pp):
|
def validate_payment_provider(self, pp):
|
||||||
if pp is None:
|
if pp is None:
|
||||||
@@ -1050,6 +1051,11 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
|||||||
raise ValidationError('The given payment provider is not known.')
|
raise ValidationError('The given payment provider is not known.')
|
||||||
return pp
|
return pp
|
||||||
|
|
||||||
|
def validate_expires(self, expires):
|
||||||
|
if expires < now():
|
||||||
|
raise ValidationError('Expiration date must be in the future.')
|
||||||
|
return expires
|
||||||
|
|
||||||
def validate_sales_channel(self, channel):
|
def validate_sales_channel(self, channel):
|
||||||
if channel not in get_all_sales_channels():
|
if channel not in get_all_sales_channels():
|
||||||
raise ValidationError('Unknown sales channel.')
|
raise ValidationError('Unknown sales channel.')
|
||||||
@@ -1071,6 +1077,10 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
|||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
'An order cannot be empty.'
|
'An order cannot be empty.'
|
||||||
)
|
)
|
||||||
|
if len(data) > settings.PRETIX_MAX_ORDER_SIZE:
|
||||||
|
raise ValidationError(
|
||||||
|
'Orders cannot have more than %(max)s positions.' % {'max': settings.PRETIX_MAX_ORDER_SIZE}
|
||||||
|
)
|
||||||
errs = [{} for p in data]
|
errs = [{} for p in data]
|
||||||
if any([p.get('positionid') for p in data]):
|
if any([p.get('positionid') for p in data]):
|
||||||
if not all([p.get('positionid') for p in data]):
|
if not all([p.get('positionid') for p in data]):
|
||||||
@@ -1356,7 +1366,8 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
|||||||
if validated_data.get('locale', None) is None:
|
if validated_data.get('locale', None) is None:
|
||||||
validated_data['locale'] = self.context['event'].settings.locale
|
validated_data['locale'] = self.context['event'].settings.locale
|
||||||
order = Order(event=self.context['event'], **validated_data)
|
order = Order(event=self.context['event'], **validated_data)
|
||||||
order.set_expires(subevents=[p.get('subevent') for p in positions_data])
|
if not validated_data.get('expires'):
|
||||||
|
order.set_expires(subevents=[p.get('subevent') for p in positions_data])
|
||||||
order.meta_info = "{}"
|
order.meta_info = "{}"
|
||||||
order.total = Decimal('0.00')
|
order.total = Decimal('0.00')
|
||||||
if validated_data.get('require_approval') is not None:
|
if validated_data.get('require_approval') is not None:
|
||||||
|
|||||||
@@ -152,11 +152,6 @@ class CheckinListViewSet(viewsets.ModelViewSet):
|
|||||||
@action(detail=True, methods=['POST'], url_name='failed_checkins')
|
@action(detail=True, methods=['POST'], url_name='failed_checkins')
|
||||||
@transaction.atomic()
|
@transaction.atomic()
|
||||||
def failed_checkins(self, *args, **kwargs):
|
def failed_checkins(self, *args, **kwargs):
|
||||||
additional_log_data = {}
|
|
||||||
if 'debug_data' in self.request.data:
|
|
||||||
# Intentionally undocumented, might be removed again
|
|
||||||
additional_log_data['debug_data'] = self.request.data.pop('debug_data')
|
|
||||||
|
|
||||||
serializer = FailedCheckinSerializer(
|
serializer = FailedCheckinSerializer(
|
||||||
data=self.request.data,
|
data=self.request.data,
|
||||||
context={'event': self.request.event}
|
context={'event': self.request.event}
|
||||||
@@ -199,16 +194,14 @@ class CheckinListViewSet(viewsets.ModelViewSet):
|
|||||||
'reason_explanation': c.error_explanation,
|
'reason_explanation': c.error_explanation,
|
||||||
'datetime': c.datetime,
|
'datetime': c.datetime,
|
||||||
'type': c.type,
|
'type': c.type,
|
||||||
'list': c.list.pk,
|
'list': c.list.pk
|
||||||
**additional_log_data,
|
|
||||||
}, user=self.request.user, auth=self.request.auth)
|
}, user=self.request.user, auth=self.request.auth)
|
||||||
else:
|
else:
|
||||||
self.request.event.log_action('pretix.event.checkin.unknown', data={
|
self.request.event.log_action('pretix.event.checkin.unknown', data={
|
||||||
'datetime': c.datetime,
|
'datetime': c.datetime,
|
||||||
'type': c.type,
|
'type': c.type,
|
||||||
'list': c.list.pk,
|
'list': c.list.pk,
|
||||||
'barcode': c.raw_barcode,
|
'barcode': c.raw_barcode
|
||||||
**additional_log_data,
|
|
||||||
}, user=self.request.user, auth=self.request.auth)
|
}, user=self.request.user, auth=self.request.auth)
|
||||||
|
|
||||||
return Response(serializer.data, status=201)
|
return Response(serializer.data, status=201)
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ class EventViewSet(viewsets.ModelViewSet):
|
|||||||
new_event = serializer.save(organizer=self.request.organizer)
|
new_event = serializer.save(organizer=self.request.organizer)
|
||||||
|
|
||||||
if copy_from:
|
if copy_from:
|
||||||
new_event.copy_data_from(copy_from)
|
new_event.copy_data_from(copy_from, skip_meta_data='meta_data' in serializer.validated_data)
|
||||||
|
|
||||||
if plugins is not None:
|
if plugins is not None:
|
||||||
new_event.set_active_plugins(plugins)
|
new_event.set_active_plugins(plugins)
|
||||||
|
|||||||
@@ -222,6 +222,8 @@ class OrderViewSetMixin:
|
|||||||
qs = qs.prefetch_related('refunds', 'refunds__payment')
|
qs = qs.prefetch_related('refunds', 'refunds__payment')
|
||||||
if 'invoice_address' not in self.request.GET.getlist('exclude'):
|
if 'invoice_address' not in self.request.GET.getlist('exclude'):
|
||||||
qs = qs.select_related('invoice_address')
|
qs = qs.select_related('invoice_address')
|
||||||
|
if 'customer' not in self.request.GET.getlist('exclude'):
|
||||||
|
qs = qs.select_related('customer')
|
||||||
|
|
||||||
qs = qs.prefetch_related(self._positions_prefetch(self.request))
|
qs = qs.prefetch_related(self._positions_prefetch(self.request))
|
||||||
return qs
|
return qs
|
||||||
|
|||||||
@@ -384,7 +384,7 @@ def register_default_webhook_events(sender, **kwargs):
|
|||||||
def notify_webhooks(logentry_ids: list):
|
def notify_webhooks(logentry_ids: list):
|
||||||
if not isinstance(logentry_ids, list):
|
if not isinstance(logentry_ids, list):
|
||||||
logentry_ids = [logentry_ids]
|
logentry_ids = [logentry_ids]
|
||||||
qs = LogEntry.all.select_related('event', 'event__organizer', 'organizer_link').filter(id__in=logentry_ids)
|
qs = LogEntry.all.select_related('event', 'event__organizer', 'organizer').filter(id__in=logentry_ids)
|
||||||
_org, _at, webhooks = None, None, None
|
_org, _at, webhooks = None, None, None
|
||||||
for logentry in qs:
|
for logentry in qs:
|
||||||
if not logentry.organizer:
|
if not logentry.organizer:
|
||||||
|
|||||||
@@ -28,4 +28,5 @@ from .items import * # noqa
|
|||||||
from .json import * # noqa
|
from .json import * # noqa
|
||||||
from .mail import * # noqa
|
from .mail import * # noqa
|
||||||
from .orderlist import * # noqa
|
from .orderlist import * # noqa
|
||||||
|
from .reusablemedia import * # noqa
|
||||||
from .waitinglist import * # noqa
|
from .waitinglist import * # noqa
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
#
|
||||||
|
# This file is part of pretix (Community Edition).
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||||
|
# Copyright (C) 2020-2021 rami.io GmbH and contributors
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
||||||
|
# Public License as published by the Free Software Foundation in version 3 of the License.
|
||||||
|
#
|
||||||
|
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||||
|
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||||
|
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||||
|
# this file, see <https://pretix.eu/about/en/license>.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||||
|
# <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
from django.dispatch import receiver
|
||||||
|
from django.utils.formats import date_format
|
||||||
|
from django.utils.translation import gettext_lazy as _, pgettext, pgettext_lazy
|
||||||
|
|
||||||
|
from ..exporter import ListExporter, OrganizerLevelExportMixin
|
||||||
|
from ..models import ReusableMedium
|
||||||
|
from ..signals import register_multievent_data_exporters
|
||||||
|
|
||||||
|
|
||||||
|
class ReusableMediaExporter(OrganizerLevelExportMixin, ListExporter):
|
||||||
|
identifier = 'reusablemedia'
|
||||||
|
verbose_name = _('Reusable media')
|
||||||
|
category = pgettext_lazy('export_category', 'Reusable media')
|
||||||
|
description = _('Download a spread sheet with the data of all reusable medias on your account.')
|
||||||
|
|
||||||
|
def iterate_list(self, form_data):
|
||||||
|
media = ReusableMedium.objects.filter(
|
||||||
|
organizer=self.organizer,
|
||||||
|
).select_related(
|
||||||
|
'customer', 'linked_orderposition', 'linked_giftcard',
|
||||||
|
).order_by('created')
|
||||||
|
|
||||||
|
headers = [
|
||||||
|
pgettext('reusable_medium', 'Media type'),
|
||||||
|
pgettext('reusable_medium', 'Identifier'),
|
||||||
|
_('Active'),
|
||||||
|
_('Expiration date'),
|
||||||
|
_('Customer account'),
|
||||||
|
_('Linked ticket'),
|
||||||
|
_('Linked gift card'),
|
||||||
|
_('Notes'),
|
||||||
|
]
|
||||||
|
|
||||||
|
yield headers
|
||||||
|
yield self.ProgressSetTotal(total=media.count())
|
||||||
|
|
||||||
|
for medium in media.iterator(chunk_size=1000):
|
||||||
|
row = [
|
||||||
|
medium.type,
|
||||||
|
medium.identifier,
|
||||||
|
_('Yes') if medium.active else _('No'),
|
||||||
|
date_format(medium.expires, 'SHORT_DATETIME_FORMAT') if medium.expires else '',
|
||||||
|
medium.customer.identifier if medium.customer_id else '',
|
||||||
|
f"{medium.linked_orderposition.order.code}-{medium.linked_orderposition.positionid}" if medium.linked_orderposition_id else '',
|
||||||
|
medium.linked_giftcard.secret if medium.linked_giftcard_id else '',
|
||||||
|
medium.notes,
|
||||||
|
]
|
||||||
|
yield row
|
||||||
|
|
||||||
|
def get_filename(self):
|
||||||
|
return f'{self.organizer.slug}_media'
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(register_multievent_data_exporters, dispatch_uid="multiexporter_reusablemedia")
|
||||||
|
def register_multievent_i_reusable_media_exporter(sender, **kwargs):
|
||||||
|
return ReusableMediaExporter
|
||||||
@@ -125,7 +125,7 @@ class NamePartsWidget(forms.MultiWidget):
|
|||||||
if fname == 'title' and self.titles:
|
if fname == 'title' and self.titles:
|
||||||
widgets.append(Select(attrs=a, choices=[('', '')] + [(d, d) for d in self.titles[1]]))
|
widgets.append(Select(attrs=a, choices=[('', '')] + [(d, d) for d in self.titles[1]]))
|
||||||
elif fname == 'salutation':
|
elif fname == 'salutation':
|
||||||
widgets.append(Select(attrs=a, choices=[('', '---')] + PERSON_NAME_SALUTATIONS))
|
widgets.append(Select(attrs=a, choices=[('', '---'), ('empty', '')] + PERSON_NAME_SALUTATIONS))
|
||||||
else:
|
else:
|
||||||
widgets.append(self.widget(attrs=a))
|
widgets.append(self.widget(attrs=a))
|
||||||
super().__init__(widgets, attrs)
|
super().__init__(widgets, attrs)
|
||||||
@@ -136,7 +136,10 @@ class NamePartsWidget(forms.MultiWidget):
|
|||||||
data = []
|
data = []
|
||||||
for i, field in enumerate(self.scheme['fields']):
|
for i, field in enumerate(self.scheme['fields']):
|
||||||
fname, label, size = field
|
fname, label, size = field
|
||||||
data.append(value.get(fname, ""))
|
fval = value.get(fname, "")
|
||||||
|
if fname == "salutation" and fname in value and fval == "":
|
||||||
|
fval = "empty"
|
||||||
|
data.append(fval)
|
||||||
if '_legacy' in value and not data[-1]:
|
if '_legacy' in value and not data[-1]:
|
||||||
data[-1] = value.get('_legacy', '')
|
data[-1] = value.get('_legacy', '')
|
||||||
elif not any(d for d in data) and '_scheme' in value:
|
elif not any(d for d in data) and '_scheme' in value:
|
||||||
@@ -190,7 +193,8 @@ class NamePartsFormField(forms.MultiValueField):
|
|||||||
data = {}
|
data = {}
|
||||||
data['_scheme'] = self.scheme_name
|
data['_scheme'] = self.scheme_name
|
||||||
for i, value in enumerate(data_list):
|
for i, value in enumerate(data_list):
|
||||||
data[self.scheme['fields'][i][0]] = value or ''
|
key = self.scheme['fields'][i][0]
|
||||||
|
data[key] = value or ''
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@@ -239,7 +243,7 @@ class NamePartsFormField(forms.MultiValueField):
|
|||||||
d.pop('validators', None)
|
d.pop('validators', None)
|
||||||
field = forms.ChoiceField(
|
field = forms.ChoiceField(
|
||||||
**d,
|
**d,
|
||||||
choices=[('', '---')] + PERSON_NAME_SALUTATIONS
|
choices=[('', '---'), ('empty', '')] + PERSON_NAME_SALUTATIONS
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
field = forms.CharField(**defaults)
|
field = forms.CharField(**defaults)
|
||||||
@@ -265,6 +269,9 @@ class NamePartsFormField(forms.MultiValueField):
|
|||||||
if sum(len(v) for v in value.values() if v) > 250:
|
if sum(len(v) for v in value.values() if v) > 250:
|
||||||
raise forms.ValidationError(_('Please enter a shorter name.'), code='max_length')
|
raise forms.ValidationError(_('Please enter a shorter name.'), code='max_length')
|
||||||
|
|
||||||
|
if value.get("salutation") == "empty":
|
||||||
|
value["salutation"] = ""
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -209,7 +209,10 @@ class SplitDateTimePickerWidget(forms.SplitDateTimeWidget):
|
|||||||
|
|
||||||
date_attrs['placeholder'] = lazy(date_placeholder, str)
|
date_attrs['placeholder'] = lazy(date_placeholder, str)
|
||||||
time_attrs['placeholder'] = lazy(time_placeholder, str)
|
time_attrs['placeholder'] = lazy(time_placeholder, str)
|
||||||
|
date_attrs['aria-label'] = _('Date')
|
||||||
|
time_attrs['aria-label'] = _('Time')
|
||||||
|
if 'aria-label' in attrs:
|
||||||
|
del attrs['aria-label']
|
||||||
widgets = (
|
widgets = (
|
||||||
forms.DateInput(attrs=date_attrs, format=date_format),
|
forms.DateInput(attrs=date_attrs, format=date_format),
|
||||||
forms.TimeInput(attrs=time_attrs, format=time_format),
|
forms.TimeInput(attrs=time_attrs, format=time_format),
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Generated by Django 4.2.4 on 2023-12-06 14:53
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("pretixbase", "0253_checkin_info"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="logentry",
|
||||||
|
name="organizer_link",
|
||||||
|
field=models.ForeignKey(
|
||||||
|
db_column="organizer_link_id",
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.PROTECT,
|
||||||
|
to="pretixbase.organizer",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.RenameField(
|
||||||
|
model_name="logentry",
|
||||||
|
old_name="organizer_link",
|
||||||
|
new_name="organizer",
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -115,7 +115,7 @@ class LoggingMixin:
|
|||||||
kwargs['api_token'] = api_token
|
kwargs['api_token'] = api_token
|
||||||
|
|
||||||
logentry = LogEntry(content_object=self, user=user, action_type=action, event=event,
|
logentry = LogEntry(content_object=self, user=user, action_type=action, event=event,
|
||||||
organizer_link_id=organizer_id, **kwargs)
|
organizer_id=organizer_id, **kwargs)
|
||||||
if isinstance(data, dict):
|
if isinstance(data, dict):
|
||||||
sensitivekeys = ['password', 'secret', 'api_key']
|
sensitivekeys = ['password', 'secret', 'api_key']
|
||||||
|
|
||||||
|
|||||||
@@ -280,7 +280,8 @@ class CheckinList(LoggedModel):
|
|||||||
'<', '<=', '>', '>=', '==', '!=', 'inList', 'isBefore', 'isAfter', 'or', 'and'
|
'<', '<=', '>', '>=', '==', '!=', 'inList', 'isBefore', 'isAfter', 'or', 'and'
|
||||||
}
|
}
|
||||||
allowed_operators = top_level_operators | {
|
allowed_operators = top_level_operators | {
|
||||||
'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before'
|
'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before', 'entries_days_since',
|
||||||
|
'entries_days_before',
|
||||||
}
|
}
|
||||||
allowed_vars = {
|
allowed_vars = {
|
||||||
'product', 'variation', 'now', 'now_isoweekday', 'entries_number', 'entries_today', 'entries_days',
|
'product', 'variation', 'now', 'now_isoweekday', 'entries_number', 'entries_today', 'entries_days',
|
||||||
@@ -309,7 +310,7 @@ class CheckinList(LoggedModel):
|
|||||||
raise ValidationError(f'Logic variable "{values[0]}" is currently not allowed.')
|
raise ValidationError(f'Logic variable "{values[0]}" is currently not allowed.')
|
||||||
return rules
|
return rules
|
||||||
|
|
||||||
if operator in ('entries_since', 'entries_before'):
|
if operator in ('entries_since', 'entries_before', 'entries_days_since', 'entries_days_before'):
|
||||||
if len(values) != 1 or "buildTime" not in values[0]:
|
if len(values) != 1 or "buildTime" not in values[0]:
|
||||||
raise ValidationError(f'Operator "{operator}" takes exactly one "buildTime" argument.')
|
raise ValidationError(f'Operator "{operator}" takes exactly one "buildTime" argument.')
|
||||||
|
|
||||||
|
|||||||
@@ -344,7 +344,7 @@ class Discount(LoggedModel):
|
|||||||
|
|
||||||
elif self.subevent_mode == self.SUBEVENT_MODE_SAME:
|
elif self.subevent_mode == self.SUBEVENT_MODE_SAME:
|
||||||
def key(idx):
|
def key(idx):
|
||||||
return positions[idx][1] # subevent_id
|
return positions[idx][1] or 0 # subevent_id
|
||||||
|
|
||||||
# Build groups of candidates with the same subevent, then apply our regular algorithm
|
# Build groups of candidates with the same subevent, then apply our regular algorithm
|
||||||
# to each group
|
# to each group
|
||||||
|
|||||||
@@ -775,7 +775,7 @@ class Event(EventMixin, LoggedModel):
|
|||||||
time(hour=23, minute=59, second=59)
|
time(hour=23, minute=59, second=59)
|
||||||
), tz)
|
), tz)
|
||||||
|
|
||||||
def copy_data_from(self, other):
|
def copy_data_from(self, other, skip_meta_data=False):
|
||||||
from pretix.presale.style import regenerate_css
|
from pretix.presale.style import regenerate_css
|
||||||
|
|
||||||
from ..signals import event_copy_data
|
from ..signals import event_copy_data
|
||||||
@@ -798,10 +798,11 @@ class Event(EventMixin, LoggedModel):
|
|||||||
self.save()
|
self.save()
|
||||||
self.log_action('pretix.object.cloned', data={'source': other.slug, 'source_id': other.pk})
|
self.log_action('pretix.object.cloned', data={'source': other.slug, 'source_id': other.pk})
|
||||||
|
|
||||||
for emv in EventMetaValue.objects.filter(event=other):
|
if not skip_meta_data:
|
||||||
emv.pk = None
|
for emv in EventMetaValue.objects.filter(event=other):
|
||||||
emv.event = self
|
emv.pk = None
|
||||||
emv.save(force_insert=True)
|
emv.event = self
|
||||||
|
emv.save(force_insert=True)
|
||||||
|
|
||||||
for fl in EventFooterLink.objects.filter(event=other):
|
for fl in EventFooterLink.objects.filter(event=other):
|
||||||
fl.pk = None
|
fl.pk = None
|
||||||
@@ -1063,7 +1064,7 @@ class Event(EventMixin, LoggedModel):
|
|||||||
providers[pp.identifier] = pp
|
providers[pp.identifier] = pp
|
||||||
|
|
||||||
self._cached_payment_providers = OrderedDict(sorted(
|
self._cached_payment_providers = OrderedDict(sorted(
|
||||||
providers.items(), key=lambda v: (-v[1].priority, str(v[1].verbose_name))
|
providers.items(), key=lambda v: (-v[1].priority, str(v[1].verbose_name).title())
|
||||||
))
|
))
|
||||||
return self._cached_payment_providers
|
return self._cached_payment_providers
|
||||||
|
|
||||||
|
|||||||
@@ -631,7 +631,7 @@ class Item(LoggedModel):
|
|||||||
null=True, blank=True, max_length=16,
|
null=True, blank=True, max_length=16,
|
||||||
verbose_name=_('Validity'),
|
verbose_name=_('Validity'),
|
||||||
help_text=_(
|
help_text=_(
|
||||||
'When setting up a regular event, or an event series with time slots, you typically to NOT need to change '
|
'When setting up a regular event, or an event series with time slots, you typically do NOT need to change '
|
||||||
'this value. The default setting means that the validity time of tickets will not be decided by the '
|
'this value. The default setting means that the validity time of tickets will not be decided by the '
|
||||||
'product, but by the event and check-in configuration. Only use the other options if you need them to '
|
'product, but by the event and check-in configuration. Only use the other options if you need them to '
|
||||||
'realize e.g. a booking of a year-long ticket with a dynamic start date. Note that the validity will be '
|
'realize e.g. a booking of a year-long ticket with a dynamic start date. Note that the validity will be '
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class LogEntry(models.Model):
|
|||||||
device = models.ForeignKey('Device', null=True, blank=True, on_delete=models.PROTECT)
|
device = models.ForeignKey('Device', null=True, blank=True, on_delete=models.PROTECT)
|
||||||
oauth_application = models.ForeignKey('pretixapi.OAuthApplication', null=True, blank=True, on_delete=models.PROTECT)
|
oauth_application = models.ForeignKey('pretixapi.OAuthApplication', null=True, blank=True, on_delete=models.PROTECT)
|
||||||
event = models.ForeignKey('Event', null=True, blank=True, on_delete=models.SET_NULL)
|
event = models.ForeignKey('Event', null=True, blank=True, on_delete=models.SET_NULL)
|
||||||
organizer_link = models.ForeignKey('Organizer', null=True, blank=True, on_delete=models.PROTECT)
|
organizer = models.ForeignKey('Organizer', null=True, blank=True, on_delete=models.PROTECT, db_column='organizer_link_id')
|
||||||
action_type = models.CharField(max_length=255)
|
action_type = models.CharField(max_length=255)
|
||||||
data = models.TextField(default='{}')
|
data = models.TextField(default='{}')
|
||||||
visible = models.BooleanField(default=True)
|
visible = models.BooleanField(default=True)
|
||||||
@@ -123,22 +123,6 @@ class LogEntry(models.Model):
|
|||||||
typepath = typepath.rsplit('.', 1)[0]
|
typepath = typepath.rsplit('.', 1)[0]
|
||||||
return no_type
|
return no_type
|
||||||
|
|
||||||
@cached_property
|
|
||||||
def organizer(self):
|
|
||||||
from .organizer import Organizer
|
|
||||||
|
|
||||||
if self.organizer_link:
|
|
||||||
return self.organizer_link
|
|
||||||
elif self.event:
|
|
||||||
return self.event.organizer
|
|
||||||
elif hasattr(self.content_object, 'event'):
|
|
||||||
return self.content_object.event.organizer
|
|
||||||
elif hasattr(self.content_object, 'organizer'):
|
|
||||||
return self.content_object.organizer
|
|
||||||
elif isinstance(self.content_object, Organizer):
|
|
||||||
return self.content_object
|
|
||||||
return None
|
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def display_object(self):
|
def display_object(self):
|
||||||
from . import (
|
from . import (
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ from datetime import datetime, time, timedelta
|
|||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from typing import Any, Dict, List, Union
|
from typing import Any, Dict, Iterable, List, Union
|
||||||
from zoneinfo import ZoneInfo
|
from zoneinfo import ZoneInfo
|
||||||
|
|
||||||
import dateutil
|
import dateutil
|
||||||
@@ -79,7 +79,7 @@ from pretix.base.i18n import language
|
|||||||
from pretix.base.models import Customer, User
|
from pretix.base.models import Customer, User
|
||||||
from pretix.base.reldate import RelativeDateWrapper
|
from pretix.base.reldate import RelativeDateWrapper
|
||||||
from pretix.base.settings import PERSON_NAME_SCHEMES
|
from pretix.base.settings import PERSON_NAME_SCHEMES
|
||||||
from pretix.base.signals import order_gracefully_delete
|
from pretix.base.signals import allow_ticket_download, order_gracefully_delete
|
||||||
|
|
||||||
from ...helpers import OF_SELF
|
from ...helpers import OF_SELF
|
||||||
from ...helpers.countries import CachedCountries, FastCountryField
|
from ...helpers.countries import CachedCountries, FastCountryField
|
||||||
@@ -1137,12 +1137,19 @@ class Order(LockModel, LoggedModel):
|
|||||||
attach_tickets=True,
|
attach_tickets=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def positions_with_tickets_ignoring_plugins(self):
|
||||||
|
return (op for op in self.positions.select_related('item') if op.generate_ticket)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def positions_with_tickets(self):
|
def positions_with_tickets(self):
|
||||||
for op in self.positions.select_related('item'):
|
signal_response = allow_ticket_download.send(self.event, order=self)
|
||||||
if not op.generate_ticket:
|
if all([r is True for rr, r in signal_response]):
|
||||||
continue
|
return self.positions_with_tickets_ignoring_plugins
|
||||||
yield op
|
elif any([r is False for rr, r in signal_response]):
|
||||||
|
return []
|
||||||
|
else:
|
||||||
|
return set.intersection(set(self.positions_with_tickets_ignoring_plugins), *[set(r) for rr, r in signal_response if isinstance(r, Iterable)])
|
||||||
|
|
||||||
def create_transactions(self, is_new=False, positions=None, fees=None, dt_now=None, migrated=False,
|
def create_transactions(self, is_new=False, positions=None, fees=None, dt_now=None, migrated=False,
|
||||||
_backfill_before_cancellation=False, save=True):
|
_backfill_before_cancellation=False, save=True):
|
||||||
@@ -2143,6 +2150,12 @@ class OrderRefund(models.Model):
|
|||||||
self.local_id = (self.order.refunds.aggregate(m=Max('local_id'))['m'] or 0) + 1
|
self.local_id = (self.order.refunds.aggregate(m=Max('local_id'))['m'] or 0) + 1
|
||||||
if 'update_fields' in kwargs:
|
if 'update_fields' in kwargs:
|
||||||
kwargs['update_fields'] = {'local_id'}.union(kwargs['update_fields'])
|
kwargs['update_fields'] = {'local_id'}.union(kwargs['update_fields'])
|
||||||
|
|
||||||
|
if self.state == OrderRefund.REFUND_STATE_DONE and not self.execution_date:
|
||||||
|
self.execution_date = now()
|
||||||
|
if 'update_fields' in kwargs:
|
||||||
|
kwargs['update_fields'] = {'execution_date'}.union(kwargs['update_fields'])
|
||||||
|
|
||||||
super().save(*args, **kwargs)
|
super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ from typing import List, Optional
|
|||||||
|
|
||||||
from celery.exceptions import MaxRetriesExceededError
|
from celery.exceptions import MaxRetriesExceededError
|
||||||
from django import forms
|
from django import forms
|
||||||
|
from django.conf import settings
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.db import DatabaseError, transaction
|
from django.db import DatabaseError, transaction
|
||||||
from django.db.models import Count, Exists, IntegerField, OuterRef, Q, Value
|
from django.db.models import Count, Exists, IntegerField, OuterRef, Q, Value
|
||||||
@@ -378,8 +379,9 @@ class CartManager:
|
|||||||
cartsize += sum([op.count for op in self._operations if isinstance(op, self.AddOperation) and not op.addon_to])
|
cartsize += sum([op.count for op in self._operations if isinstance(op, self.AddOperation) and not op.addon_to])
|
||||||
cartsize -= len([1 for op in self._operations if isinstance(op, self.RemoveOperation) if
|
cartsize -= len([1 for op in self._operations if isinstance(op, self.RemoveOperation) if
|
||||||
not op.position.addon_to_id])
|
not op.position.addon_to_id])
|
||||||
if cartsize > int(self.event.settings.max_items_per_order):
|
limit = min(int(self.event.settings.max_items_per_order), settings.PRETIX_MAX_ORDER_SIZE)
|
||||||
raise CartError(error_messages['max_items'] % self.event.settings.max_items_per_order)
|
if cartsize > limit:
|
||||||
|
raise CartError(error_messages['max_items'] % limit)
|
||||||
|
|
||||||
def _check_item_constraints(self, op, current_ops=[]):
|
def _check_item_constraints(self, op, current_ops=[]):
|
||||||
if isinstance(op, (self.AddOperation, self.ExtendOperation)):
|
if isinstance(op, (self.AddOperation, self.ExtendOperation)):
|
||||||
@@ -1297,10 +1299,23 @@ 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
|
||||||
# op.posiiton.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'])
|
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:
|
||||||
|
for a in op.position.addons.all():
|
||||||
|
if a.is_bundled and op.voucher.all_bundles_included and a.price:
|
||||||
|
a.listed_price = Decimal("0.00")
|
||||||
|
a.price_after_voucher = Decimal("0.00")
|
||||||
|
# a.price will be set in recompute_final_prices_and_taxes
|
||||||
|
a.save(update_fields=['listed_price', 'price_after_voucher'])
|
||||||
|
elif not a.is_bundled and op.voucher.all_addons_included and a.price and not a.custom_price_input:
|
||||||
|
a.listed_price = Decimal("0.00")
|
||||||
|
a.price_after_voucher = Decimal("0.00")
|
||||||
|
# op.positon.price will be set in recompute_final_prices_and_taxes
|
||||||
|
a.save(update_fields=['listed_price', 'price_after_voucher'])
|
||||||
|
|
||||||
for p in new_cart_positions:
|
for p in new_cart_positions:
|
||||||
if getattr(p, '_answers', None):
|
if getattr(p, '_answers', None):
|
||||||
if not p.pk: # We stored some to the database already before
|
if not p.pk: # We stored some to the database already before
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
# Unless required by applicable law or agreed to in writing, software distributed under the Apache License 2.0 is
|
# Unless required by applicable law or agreed to in writing, software distributed under the Apache License 2.0 is
|
||||||
# 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 logging
|
||||||
import os
|
import os
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from functools import partial, reduce
|
from functools import partial, reduce
|
||||||
@@ -65,6 +66,8 @@ from pretix.helpers.jsonlogic_query import (
|
|||||||
MinutesSince, tolerance,
|
MinutesSince, tolerance,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def _build_time(t=None, value=None, ev=None, now_dt=None):
|
def _build_time(t=None, value=None, ev=None, now_dt=None):
|
||||||
now_dt = now_dt or now()
|
now_dt = now_dt or now()
|
||||||
@@ -199,7 +202,7 @@ def _logic_explain(rules, ev, rule_data, now_dt=None):
|
|||||||
'var': values[0]["var"],
|
'var': values[0]["var"],
|
||||||
'rhs': values[1:],
|
'rhs': values[1:],
|
||||||
}
|
}
|
||||||
elif "entries_since" in values[0] or "entries_before" in values[0]:
|
elif any(t in values[0] for t in ("entries_since", "entries_before", "entries_days_since", "entries_days_before")):
|
||||||
_var_explanations[new_var_name] = {
|
_var_explanations[new_var_name] = {
|
||||||
'operator': operator,
|
'operator': operator,
|
||||||
'var': values[0],
|
'var': values[0],
|
||||||
@@ -277,11 +280,13 @@ def _logic_explain(rules, ev, rule_data, now_dt=None):
|
|||||||
var_weights[vname] = (500, 0)
|
var_weights[vname] = (500, 0)
|
||||||
var_texts[vname] = _('Wrong entrance gate')
|
var_texts[vname] = _('Wrong entrance gate')
|
||||||
elif var in ('entries_number', 'entries_today', 'entries_days', 'minutes_since_last_entry', 'minutes_since_first_entry', 'now_isoweekday') \
|
elif var in ('entries_number', 'entries_today', 'entries_days', 'minutes_since_last_entry', 'minutes_since_first_entry', 'now_isoweekday') \
|
||||||
or (isinstance(var, dict) and ("entries_since" in var or "entries_before" in var)):
|
or (isinstance(var, dict) and any(t in var for t in ("entries_since", "entries_before", "entries_days_since", "entries_days_before"))):
|
||||||
w = {
|
w = {
|
||||||
'minutes_since_first_entry': 80,
|
'minutes_since_first_entry': 80,
|
||||||
'minutes_since_last_entry': 90,
|
'minutes_since_last_entry': 90,
|
||||||
'entries_days': 100,
|
'entries_days': 100,
|
||||||
|
'entries_days_since': 105,
|
||||||
|
'entries_days_before': 105,
|
||||||
'entries_since': 110,
|
'entries_since': 110,
|
||||||
'entries_before': 110,
|
'entries_before': 110,
|
||||||
'entries_number': 120,
|
'entries_number': 120,
|
||||||
@@ -304,10 +309,12 @@ def _logic_explain(rules, ev, rule_data, now_dt=None):
|
|||||||
'entries_today': _('number of entries today'),
|
'entries_today': _('number of entries today'),
|
||||||
'entries_since': _('number of entries since {datetime}'),
|
'entries_since': _('number of entries since {datetime}'),
|
||||||
'entries_before': _('number of entries before {datetime}'),
|
'entries_before': _('number of entries before {datetime}'),
|
||||||
|
'entries_days_since': _('number of days with an entry since {datetime}'),
|
||||||
|
'entries_days_before': _('number of days with an entry before {datetime}'),
|
||||||
'now_isoweekday': _('week day'),
|
'now_isoweekday': _('week day'),
|
||||||
}
|
}
|
||||||
|
|
||||||
if isinstance(var, dict) and ("entries_since" in var or "entries_before" in var):
|
if isinstance(var, dict) and any(t in var for t in ("entries_since", "entries_before", "entries_days_since", "entries_days_before")):
|
||||||
varname = list(var.keys())[0]
|
varname = list(var.keys())[0]
|
||||||
cutoff = _build_time(*var[varname][0]['buildTime'], ev=ev, now_dt=now_dt).astimezone(ev.timezone)
|
cutoff = _build_time(*var[varname][0]['buildTime'], ev=ev, now_dt=now_dt).astimezone(ev.timezone)
|
||||||
if abs(now_dt - cutoff) < timedelta(hours=12):
|
if abs(now_dt - cutoff) < timedelta(hours=12):
|
||||||
@@ -407,6 +414,8 @@ def _get_logic_environment(ev, rule_data, now_dt):
|
|||||||
logic.add_operation('isAfter', lambda t1, t2, tol=None: is_before(t2, t1, tol))
|
logic.add_operation('isAfter', lambda t1, t2, tol=None: is_before(t2, t1, tol))
|
||||||
logic.add_operation('entries_since', lambda t1: rule_data.entries_since(t1))
|
logic.add_operation('entries_since', lambda t1: rule_data.entries_since(t1))
|
||||||
logic.add_operation('entries_before', lambda t1: rule_data.entries_before(t1))
|
logic.add_operation('entries_before', lambda t1: rule_data.entries_before(t1))
|
||||||
|
logic.add_operation('entries_days_since', lambda t1: rule_data.entries_days_since(t1))
|
||||||
|
logic.add_operation('entries_days_before', lambda t1: rule_data.entries_days_before(t1))
|
||||||
return logic
|
return logic
|
||||||
|
|
||||||
|
|
||||||
@@ -464,6 +473,32 @@ class LazyRuleVars:
|
|||||||
self.__cache['entries_before', cutoff] = self._position.checkins.filter(type=Checkin.TYPE_ENTRY, list=self._clist, datetime__lt=cutoff).count()
|
self.__cache['entries_before', cutoff] = self._position.checkins.filter(type=Checkin.TYPE_ENTRY, list=self._clist, datetime__lt=cutoff).count()
|
||||||
return self.__cache['entries_before', cutoff]
|
return self.__cache['entries_before', cutoff]
|
||||||
|
|
||||||
|
def entries_days_since(self, cutoff):
|
||||||
|
tz = self._clist.event.timezone
|
||||||
|
with override(tz):
|
||||||
|
if ('entries_days_since', cutoff) not in self.__cache:
|
||||||
|
self.__cache['entries_days_since', cutoff] = self._position.checkins.filter(
|
||||||
|
type=Checkin.TYPE_ENTRY,
|
||||||
|
list=self._clist,
|
||||||
|
datetime__gte=cutoff
|
||||||
|
).annotate(
|
||||||
|
day=TruncDate('datetime', tzinfo=tz)
|
||||||
|
).values('day').distinct().count()
|
||||||
|
return self.__cache['entries_days_since', cutoff]
|
||||||
|
|
||||||
|
def entries_days_before(self, cutoff):
|
||||||
|
tz = self._clist.event.timezone
|
||||||
|
with override(tz):
|
||||||
|
if ('entries_days_before', cutoff) not in self.__cache:
|
||||||
|
self.__cache['entries_days_before', cutoff] = self._position.checkins.filter(
|
||||||
|
type=Checkin.TYPE_ENTRY,
|
||||||
|
list=self._clist,
|
||||||
|
datetime__lt=cutoff
|
||||||
|
).annotate(
|
||||||
|
day=TruncDate('datetime', tzinfo=tz)
|
||||||
|
).values('day').distinct().count()
|
||||||
|
return self.__cache['entries_days_before', cutoff]
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def entries_days(self):
|
def entries_days(self):
|
||||||
tz = self._clist.event.timezone
|
tz = self._clist.event.timezone
|
||||||
@@ -530,7 +565,8 @@ class SQLLogic:
|
|||||||
"isBefore": partial(self.comparison_to_q, operator=LowerThan, modifier=partial(tolerance, sign=1)),
|
"isBefore": partial(self.comparison_to_q, operator=LowerThan, modifier=partial(tolerance, sign=1)),
|
||||||
"isAfter": partial(self.comparison_to_q, operator=GreaterThan, modifier=partial(tolerance, sign=-1)),
|
"isAfter": partial(self.comparison_to_q, operator=GreaterThan, modifier=partial(tolerance, sign=-1)),
|
||||||
}
|
}
|
||||||
self.expression_ops = {'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before'}
|
self.expression_ops = {'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before',
|
||||||
|
'entries_days_since', 'entries_days_before'}
|
||||||
|
|
||||||
def operation_to_expression(self, rule):
|
def operation_to_expression(self, rule):
|
||||||
if not isinstance(rule, dict):
|
if not isinstance(rule, dict):
|
||||||
@@ -608,6 +644,42 @@ class SQLLogic:
|
|||||||
Value(0),
|
Value(0),
|
||||||
output_field=IntegerField()
|
output_field=IntegerField()
|
||||||
)
|
)
|
||||||
|
elif operator == 'entries_days_since':
|
||||||
|
tz = self.list.event.timezone
|
||||||
|
return Coalesce(
|
||||||
|
Subquery(
|
||||||
|
Checkin.objects.filter(
|
||||||
|
position_id=OuterRef('pk'),
|
||||||
|
type=Checkin.TYPE_ENTRY,
|
||||||
|
list_id=self.list.pk,
|
||||||
|
datetime__gte=self.operation_to_expression(values[0]),
|
||||||
|
).annotate(
|
||||||
|
day=TruncDate('datetime', tzinfo=tz)
|
||||||
|
).values('position_id').order_by().annotate(
|
||||||
|
c=Count('day', distinct=True)
|
||||||
|
).values('c')
|
||||||
|
),
|
||||||
|
Value(0),
|
||||||
|
output_field=IntegerField()
|
||||||
|
)
|
||||||
|
elif operator == 'entries_days_before':
|
||||||
|
tz = self.list.event.timezone
|
||||||
|
return Coalesce(
|
||||||
|
Subquery(
|
||||||
|
Checkin.objects.filter(
|
||||||
|
position_id=OuterRef('pk'),
|
||||||
|
type=Checkin.TYPE_ENTRY,
|
||||||
|
list_id=self.list.pk,
|
||||||
|
datetime__lt=self.operation_to_expression(values[0]),
|
||||||
|
).annotate(
|
||||||
|
day=TruncDate('datetime', tzinfo=tz)
|
||||||
|
).values('position_id').order_by().annotate(
|
||||||
|
c=Count('day', distinct=True)
|
||||||
|
).values('c')
|
||||||
|
),
|
||||||
|
Value(0),
|
||||||
|
output_field=IntegerField()
|
||||||
|
)
|
||||||
elif operator == 'var':
|
elif operator == 'var':
|
||||||
if values[0] == 'now':
|
if values[0] == 'now':
|
||||||
return Value(now().astimezone(timezone.utc))
|
return Value(now().astimezone(timezone.utc))
|
||||||
@@ -964,7 +1036,16 @@ def perform_checkin(op: OrderPosition, clist: CheckinList, given_answers: dict,
|
|||||||
if type == Checkin.TYPE_ENTRY and clist.rules:
|
if type == Checkin.TYPE_ENTRY and clist.rules:
|
||||||
rule_data = LazyRuleVars(op, clist, dt, gate=gate)
|
rule_data = LazyRuleVars(op, clist, dt, gate=gate)
|
||||||
logic = _get_logic_environment(op.subevent or clist.event, rule_data, now_dt=dt)
|
logic = _get_logic_environment(op.subevent or clist.event, rule_data, now_dt=dt)
|
||||||
if not logic.apply(clist.rules, rule_data):
|
try:
|
||||||
|
logic_result = logic.apply(clist.rules, rule_data)
|
||||||
|
except Exception:
|
||||||
|
logger.exception("Check-in rule evaluation failed")
|
||||||
|
raise CheckInError(
|
||||||
|
_('Evaluation of custom rules has failed.'),
|
||||||
|
'rules',
|
||||||
|
)
|
||||||
|
|
||||||
|
if not logic_result:
|
||||||
if force:
|
if force:
|
||||||
force_used = True
|
force_used = True
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ def mail(email: Union[str, Sequence[str]], subject: str, template: Union[str, La
|
|||||||
if auto_email:
|
if auto_email:
|
||||||
headers['X-Auto-Response-Suppress'] = 'OOF, NRN, AutoReply, RN'
|
headers['X-Auto-Response-Suppress'] = 'OOF, NRN, AutoReply, RN'
|
||||||
headers['Auto-Submitted'] = 'auto-generated'
|
headers['Auto-Submitted'] = 'auto-generated'
|
||||||
|
headers.setdefault('X-Mailer', 'pretix')
|
||||||
|
|
||||||
with language(locale):
|
with language(locale):
|
||||||
if isinstance(context, dict) and event:
|
if isinstance(context, dict) and event:
|
||||||
@@ -573,8 +574,11 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
|||||||
except smtplib.SMTPRecipientsRefused as e:
|
except smtplib.SMTPRecipientsRefused as e:
|
||||||
smtp_codes = [a[0] for a in e.recipients.values()]
|
smtp_codes = [a[0] for a in e.recipients.values()]
|
||||||
|
|
||||||
if not any(c >= 500 for c in smtp_codes):
|
if not any(c >= 500 for c in smtp_codes) or any(b'Message is too large' in a[1] for a in e.recipients.values()):
|
||||||
# Not a permanent failure (mailbox full, service unavailable), retry later, but with large intervals
|
# This is not a permanent failure (mailbox full, service unavailable), retry later, but with large
|
||||||
|
# intervals. One would think that "Message is too lage" is a permanent failure, but apparently it is not.
|
||||||
|
# We have documented cases of emails to Microsoft returning the error occasionally and then later
|
||||||
|
# allowing the very same email.
|
||||||
try:
|
try:
|
||||||
self.retry(max_retries=5, countdown=[60, 300, 600, 1200, 1800, 1800][self.request.retries])
|
self.retry(max_retries=5, countdown=[60, 300, 600, 1200, 1800, 1800][self.request.retries])
|
||||||
except MaxRetriesExceededError:
|
except MaxRetriesExceededError:
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import csv
|
|||||||
import io
|
import io
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
|
from django.conf import settings as django_settings
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
@@ -91,7 +92,15 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
|||||||
user = User.objects.get(pk=user)
|
user = User.objects.get(pk=user)
|
||||||
with language(locale, event.settings.region):
|
with language(locale, event.settings.region):
|
||||||
cols = get_all_columns(event)
|
cols = get_all_columns(event)
|
||||||
parsed = parse_csv(cf.file, charset=charset)
|
try:
|
||||||
|
parsed = parse_csv(cf.file, charset=charset)
|
||||||
|
except UnicodeDecodeError as e:
|
||||||
|
raise DataImportError(
|
||||||
|
_(
|
||||||
|
'Error decoding special characters in your file: {message}').format(
|
||||||
|
message=str(e)
|
||||||
|
)
|
||||||
|
)
|
||||||
orders = []
|
orders = []
|
||||||
order = None
|
order = None
|
||||||
data = []
|
data = []
|
||||||
@@ -116,6 +125,11 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
|||||||
)
|
)
|
||||||
data.append(values)
|
data.append(values)
|
||||||
|
|
||||||
|
if settings['orders'] == 'one' and len(data) > django_settings.PRETIX_MAX_ORDER_SIZE:
|
||||||
|
raise DataImportError(
|
||||||
|
_('Orders cannot have more than %(max)s positions.') % {'max': django_settings.PRETIX_MAX_ORDER_SIZE}
|
||||||
|
)
|
||||||
|
|
||||||
# Prepare model objects. Yes, this might consume lots of RAM, but allows us to make the actual SQL transaction
|
# Prepare model objects. Yes, this might consume lots of RAM, but allows us to make the actual SQL transaction
|
||||||
# shorter. We'll see what works better in reality…
|
# shorter. We'll see what works better in reality…
|
||||||
lock_seats = []
|
lock_seats = []
|
||||||
|
|||||||
@@ -98,10 +98,9 @@ from pretix.base.services.pricing import (
|
|||||||
from pretix.base.services.quotas import QuotaAvailability
|
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 (
|
||||||
allow_ticket_download, order_approved, order_canceled, order_changed,
|
order_approved, order_canceled, order_changed, order_denied, order_expired,
|
||||||
order_denied, order_expired, order_fee_calculation, order_paid,
|
order_fee_calculation, order_paid, order_placed, order_split,
|
||||||
order_placed, order_split, order_valid_if_pending, periodic_task,
|
order_valid_if_pending, periodic_task, validate_order,
|
||||||
validate_order,
|
|
||||||
)
|
)
|
||||||
from pretix.celery_app import app
|
from pretix.celery_app import app
|
||||||
from pretix.helpers import OF_SELF
|
from pretix.helpers import OF_SELF
|
||||||
@@ -1408,23 +1407,16 @@ def send_download_reminders(sender, **kwargs):
|
|||||||
if o.download_reminder_sent:
|
if o.download_reminder_sent:
|
||||||
# Race condition
|
# Race condition
|
||||||
continue
|
continue
|
||||||
if not all([r for rr, r in allow_ticket_download.send(event, order=o)]):
|
positions = o.positions_with_tickets
|
||||||
|
if not list(positions):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not o.ticket_download_available:
|
if not o.ticket_download_available:
|
||||||
continue
|
continue
|
||||||
positions = o.positions.select_related('item')
|
|
||||||
|
|
||||||
if o.status != Order.STATUS_PAID:
|
if o.status != Order.STATUS_PAID:
|
||||||
if o.status != Order.STATUS_PENDING or o.require_approval or (not o.valid_if_pending and not o.event.settings.ticket_download_pending):
|
if o.status != Order.STATUS_PENDING or o.require_approval or (not o.valid_if_pending and not o.event.settings.ticket_download_pending):
|
||||||
continue
|
continue
|
||||||
send = False
|
|
||||||
for p in positions:
|
|
||||||
if p.generate_ticket:
|
|
||||||
send = True
|
|
||||||
break
|
|
||||||
if not send:
|
|
||||||
continue
|
|
||||||
|
|
||||||
with language(o.locale, o.event.settings.region):
|
with language(o.locale, o.event.settings.region):
|
||||||
o.download_reminder_sent = True
|
o.download_reminder_sent = True
|
||||||
@@ -1442,10 +1434,7 @@ def send_download_reminders(sender, **kwargs):
|
|||||||
logger.exception('Reminder email could not be sent')
|
logger.exception('Reminder email could not be sent')
|
||||||
|
|
||||||
if event.settings.mail_send_download_reminder_attendee:
|
if event.settings.mail_send_download_reminder_attendee:
|
||||||
for p in o.positions.all():
|
for p in o.positions_with_tickets:
|
||||||
if not p.generate_ticket:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if p.subevent_id:
|
if p.subevent_id:
|
||||||
reminder_date = (p.subevent.date_from - timedelta(days=days)).replace(
|
reminder_date = (p.subevent.date_from - timedelta(days=days)).replace(
|
||||||
hour=0, minute=0, second=0, microsecond=0
|
hour=0, minute=0, second=0, microsecond=0
|
||||||
@@ -1512,6 +1501,7 @@ class OrderChangeManager:
|
|||||||
"You need to select at least %(min)s items of the product %(product)s.",
|
"You need to select at least %(min)s items of the product %(product)s.",
|
||||||
"min"
|
"min"
|
||||||
),
|
),
|
||||||
|
'max_order_size': gettext_lazy('Orders cannot have more than %(max)s positions.'),
|
||||||
}
|
}
|
||||||
ItemOperation = namedtuple('ItemOperation', ('position', 'item', 'variation'))
|
ItemOperation = namedtuple('ItemOperation', ('position', 'item', 'variation'))
|
||||||
SubeventOperation = namedtuple('SubeventOperation', ('position', 'subevent'))
|
SubeventOperation = namedtuple('SubeventOperation', ('position', 'subevent'))
|
||||||
@@ -2599,6 +2589,14 @@ class OrderChangeManager:
|
|||||||
self.order.total = total + payment_fee
|
self.order.total = total + payment_fee
|
||||||
self.order.save()
|
self.order.save()
|
||||||
|
|
||||||
|
def _check_order_size(self):
|
||||||
|
if (len(self.order.positions.all()) + len([op for op in self._operations if isinstance(op, self.AddOperation)])) > settings.PRETIX_MAX_ORDER_SIZE:
|
||||||
|
raise OrderError(
|
||||||
|
self.error_messages['max_order_size'] % {
|
||||||
|
'max': settings.PRETIX_MAX_ORDER_SIZE,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
def _payment_fee_diff(self):
|
def _payment_fee_diff(self):
|
||||||
total = self.order.total + self._totaldiff
|
total = self.order.total + self._totaldiff
|
||||||
if self.open_payment:
|
if self.open_payment:
|
||||||
@@ -2739,6 +2737,7 @@ class OrderChangeManager:
|
|||||||
|
|
||||||
# finally, incorporate difference in payment fees
|
# finally, incorporate difference in payment fees
|
||||||
self._payment_fee_diff()
|
self._payment_fee_diff()
|
||||||
|
self._check_order_size()
|
||||||
|
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
locked_instance = Order.objects.select_for_update(of=OF_SELF).get(pk=self.order.pk)
|
locked_instance = Order.objects.select_for_update(of=OF_SELF).get(pk=self.order.pk)
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ def dictsum(*dicts) -> dict:
|
|||||||
|
|
||||||
def order_overview(
|
def order_overview(
|
||||||
event: Event, subevent: SubEvent=None, date_filter='', date_from=None, date_until=None, fees=False,
|
event: Event, subevent: SubEvent=None, date_filter='', date_from=None, date_until=None, fees=False,
|
||||||
admission_only=False, base_qs=None, base_fees_qs=None,
|
admission_only=False, base_qs=None, base_fees_qs=None, subevent_date_from=None, subevent_date_until=None
|
||||||
) -> Tuple[List[Tuple[ItemCategory, List[Item]]], Dict[str, Tuple[Decimal, Decimal]]]:
|
) -> Tuple[List[Tuple[ItemCategory, List[Item]]], Dict[str, Tuple[Decimal, Decimal]]]:
|
||||||
items = event.items.all().select_related(
|
items = event.items.all().select_related(
|
||||||
'category', # for re-grouping
|
'category', # for re-grouping
|
||||||
@@ -125,6 +125,11 @@ def order_overview(
|
|||||||
qs = qs.filter(subevent__in=subevent)
|
qs = qs.filter(subevent__in=subevent)
|
||||||
elif subevent:
|
elif subevent:
|
||||||
qs = qs.filter(subevent=subevent)
|
qs = qs.filter(subevent=subevent)
|
||||||
|
if subevent_date_from:
|
||||||
|
qs = qs.filter(subevent__date_from__gte=subevent_date_from)
|
||||||
|
if subevent_date_until:
|
||||||
|
qs = qs.filter(subevent__date_from__lt=subevent_date_until)
|
||||||
|
|
||||||
if admission_only:
|
if admission_only:
|
||||||
qs = qs.filter(item__admission=True)
|
qs = qs.filter(item__admission=True)
|
||||||
items = items.filter(admission=True)
|
items = items.filter(admission=True)
|
||||||
@@ -232,7 +237,7 @@ def order_overview(
|
|||||||
payment_cat_obj.name = _('Fees')
|
payment_cat_obj.name = _('Fees')
|
||||||
payment_items = []
|
payment_items = []
|
||||||
|
|
||||||
if subevent is None and fees:
|
if subevent is None and not subevent_date_from and not subevent_date_until and fees:
|
||||||
qs = OrderFee.all if base_fees_qs is None else base_fees_qs
|
qs = OrderFee.all if base_fees_qs is None else base_fees_qs
|
||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
order__event=event
|
order__event=event
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ from pretix.base.models import (
|
|||||||
)
|
)
|
||||||
from pretix.base.services.tasks import EventTask, ProfiledTask
|
from pretix.base.services.tasks import EventTask, ProfiledTask
|
||||||
from pretix.base.settings import PERSON_NAME_SCHEMES
|
from pretix.base.settings import PERSON_NAME_SCHEMES
|
||||||
from pretix.base.signals import allow_ticket_download, register_ticket_outputs
|
from pretix.base.signals import register_ticket_outputs
|
||||||
from pretix.celery_app import app
|
from pretix.celery_app import app
|
||||||
from pretix.helpers.database import rolledback_transaction
|
from pretix.helpers.database import rolledback_transaction
|
||||||
|
|
||||||
@@ -124,8 +124,8 @@ def preview(event: int, provider: str):
|
|||||||
|
|
||||||
|
|
||||||
def get_tickets_for_order(order, base_position=None):
|
def get_tickets_for_order(order, base_position=None):
|
||||||
can_download = all([r for rr, r in allow_ticket_download.send(order.event, order=order)])
|
positions = list(order.positions_with_tickets)
|
||||||
if not can_download:
|
if not positions:
|
||||||
return []
|
return []
|
||||||
if not order.ticket_download_available:
|
if not order.ticket_download_available:
|
||||||
return []
|
return []
|
||||||
@@ -135,10 +135,8 @@ def get_tickets_for_order(order, base_position=None):
|
|||||||
for receiver, response
|
for receiver, response
|
||||||
in register_ticket_outputs.send(order.event)
|
in register_ticket_outputs.send(order.event)
|
||||||
]
|
]
|
||||||
|
|
||||||
tickets = []
|
tickets = []
|
||||||
|
|
||||||
positions = list(order.positions_with_tickets)
|
|
||||||
if base_position:
|
if base_position:
|
||||||
# Only the given position and its children
|
# Only the given position and its children
|
||||||
positions = [
|
positions = [
|
||||||
@@ -202,7 +200,6 @@ def get_tickets_for_order(order, base_position=None):
|
|||||||
))
|
))
|
||||||
except:
|
except:
|
||||||
logger.exception('Failed to generate ticket.')
|
logger.exception('Failed to generate ticket.')
|
||||||
|
|
||||||
return tickets
|
return tickets
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -306,9 +306,11 @@ DEFAULTS = {
|
|||||||
'serializer_class': serializers.IntegerField,
|
'serializer_class': serializers.IntegerField,
|
||||||
'serializer_kwargs': dict(
|
'serializer_kwargs': dict(
|
||||||
min_value=1,
|
min_value=1,
|
||||||
|
max_value=settings.PRETIX_MAX_ORDER_SIZE,
|
||||||
),
|
),
|
||||||
'form_kwargs': dict(
|
'form_kwargs': dict(
|
||||||
min_value=1,
|
min_value=1,
|
||||||
|
max_value=settings.PRETIX_MAX_ORDER_SIZE,
|
||||||
required=True,
|
required=True,
|
||||||
label=_("Maximum number of items per order"),
|
label=_("Maximum number of items per order"),
|
||||||
help_text=_("Add-on products will not be counted.")
|
help_text=_("Add-on products will not be counted.")
|
||||||
@@ -2910,6 +2912,25 @@ Your {organizer} team""")) # noqa: W291
|
|||||||
label=_('Use header image also for events without an individually uploaded logo'),
|
label=_('Use header image also for events without an individually uploaded logo'),
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
'favicon': {
|
||||||
|
'default': None,
|
||||||
|
'type': File,
|
||||||
|
'form_class': ExtFileField,
|
||||||
|
'form_kwargs': dict(
|
||||||
|
label=_('Favicon'),
|
||||||
|
ext_whitelist=settings.FILE_UPLOAD_EXTENSIONS_FAVICON,
|
||||||
|
max_size=settings.FILE_UPLOAD_MAX_SIZE_FAVICON,
|
||||||
|
help_text=_('If you provide a favicon, we will show it instead of the default pretix icon. '
|
||||||
|
'We recommend a size of at least 200x200px to accommodate most devices.')
|
||||||
|
),
|
||||||
|
'serializer_class': UploadedFileField,
|
||||||
|
'serializer_kwargs': dict(
|
||||||
|
allowed_types=[
|
||||||
|
'image/png', 'image/jpeg', 'image/gif', 'image/x-icon', 'image/vnd.microsoft.icon',
|
||||||
|
],
|
||||||
|
max_size=settings.FILE_UPLOAD_MAX_SIZE_FAVICON,
|
||||||
|
)
|
||||||
|
},
|
||||||
'og_image': {
|
'og_image': {
|
||||||
'default': None,
|
'default': None,
|
||||||
'type': File,
|
'type': File,
|
||||||
|
|||||||
+39
-11
@@ -153,19 +153,47 @@ class BaseDataShredder:
|
|||||||
|
|
||||||
|
|
||||||
def shred_log_fields(logentry, banlist=None, whitelist=None):
|
def shred_log_fields(logentry, banlist=None, whitelist=None):
|
||||||
|
def _shred(d, banlist, whitelist):
|
||||||
|
shredded = False
|
||||||
|
if whitelist:
|
||||||
|
for k, v in d.items():
|
||||||
|
if k not in whitelist:
|
||||||
|
if isinstance(d[k], list):
|
||||||
|
newlist = []
|
||||||
|
for i in d[k]:
|
||||||
|
if isinstance(i, dict):
|
||||||
|
_shred(i, None, [None])
|
||||||
|
else:
|
||||||
|
i = '█'
|
||||||
|
newlist.append(i)
|
||||||
|
d[k] = newlist
|
||||||
|
elif isinstance(d[k], dict):
|
||||||
|
_shred(d[k], None, [None])
|
||||||
|
elif d[k]:
|
||||||
|
d[k] = '█'
|
||||||
|
shredded = True
|
||||||
|
elif banlist:
|
||||||
|
for k in banlist:
|
||||||
|
if k in d:
|
||||||
|
if isinstance(d[k], list):
|
||||||
|
newlist = []
|
||||||
|
for i in d[k]:
|
||||||
|
if isinstance(i, dict):
|
||||||
|
_shred(i, None, [None])
|
||||||
|
else:
|
||||||
|
i = '█'
|
||||||
|
newlist.append(i)
|
||||||
|
d[k] = newlist
|
||||||
|
elif isinstance(d[k], dict):
|
||||||
|
_shred(d[k], None, [None])
|
||||||
|
elif d[k]:
|
||||||
|
d[k] = '█'
|
||||||
|
shredded = True
|
||||||
|
return shredded
|
||||||
|
|
||||||
d = logentry.parsed_data
|
d = logentry.parsed_data
|
||||||
initial_data = copy.copy(d)
|
initial_data = copy.copy(d)
|
||||||
shredded = False
|
shredded = _shred(d, banlist, whitelist)
|
||||||
if whitelist:
|
|
||||||
for k, v in d.items():
|
|
||||||
if k not in whitelist:
|
|
||||||
d[k] = '█'
|
|
||||||
shredded = True
|
|
||||||
elif banlist:
|
|
||||||
for f in banlist:
|
|
||||||
if f in d:
|
|
||||||
d[f] = '█'
|
|
||||||
shredded = True
|
|
||||||
if d != initial_data:
|
if d != initial_data:
|
||||||
logentry.data = json.dumps(d)
|
logentry.data = json.dumps(d)
|
||||||
logentry.shredded = logentry.shredded or shredded
|
logentry.shredded = logentry.shredded or shredded
|
||||||
|
|||||||
@@ -646,7 +646,7 @@ allow_ticket_download = EventPluginSignal()
|
|||||||
Arguments: ``order``
|
Arguments: ``order``
|
||||||
|
|
||||||
This signal is sent out to check if tickets for an order can be downloaded. If any receiver returns false,
|
This signal is sent out to check if tickets for an order can be downloaded. If any receiver returns false,
|
||||||
a download will not be offered.
|
a download will not be offered. If a receiver returns a list of OrderPositions, only those will be downloadable.
|
||||||
|
|
||||||
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.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ ALLOWED_TAGS_SNIPPET = [
|
|||||||
'i',
|
'i',
|
||||||
'strong',
|
'strong',
|
||||||
'span',
|
'span',
|
||||||
|
'strike',
|
||||||
|
's',
|
||||||
# Update doc/user/markdown.rst if you change this!
|
# Update doc/user/markdown.rst if you change this!
|
||||||
]
|
]
|
||||||
ALLOWED_TAGS = ALLOWED_TAGS_SNIPPET + [
|
ALLOWED_TAGS = ALLOWED_TAGS_SNIPPET + [
|
||||||
|
|||||||
@@ -96,6 +96,9 @@ class BaseTicketOutput:
|
|||||||
"""
|
"""
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
def get_tickets_to_print(self, order):
|
||||||
|
return order.positions_with_tickets
|
||||||
|
|
||||||
def generate_order(self, order: Order) -> Tuple[str, str, str]:
|
def generate_order(self, order: Order) -> Tuple[str, str, str]:
|
||||||
"""
|
"""
|
||||||
This method is the same as order() but should not generate one file per order position
|
This method is the same as order() but should not generate one file per order position
|
||||||
@@ -116,7 +119,7 @@ class BaseTicketOutput:
|
|||||||
"""
|
"""
|
||||||
with tempfile.TemporaryDirectory() as d:
|
with tempfile.TemporaryDirectory() as d:
|
||||||
with ZipFile(os.path.join(d, 'tmp.zip'), 'w') as zipf:
|
with ZipFile(os.path.join(d, 'tmp.zip'), 'w') as zipf:
|
||||||
for pos in order.positions_with_tickets:
|
for pos in self.get_tickets_to_print(order):
|
||||||
fname, __, content = self.generate(pos)
|
fname, __, content = self.generate(pos)
|
||||||
zipf.writestr('{}-{}{}'.format(
|
zipf.writestr('{}-{}{}'.format(
|
||||||
order.code, pos.positionid, os.path.splitext(fname)[1]
|
order.code, pos.positionid, os.path.splitext(fname)[1]
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ from django.core.exceptions import PermissionDenied, ValidationError
|
|||||||
from django.core.files.uploadedfile import UploadedFile
|
from django.core.files.uploadedfile import UploadedFile
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.http import HttpResponse, JsonResponse, QueryDict
|
from django.http import HttpResponse, JsonResponse, QueryDict
|
||||||
from django.shortcuts import redirect, render
|
from django.shortcuts import render
|
||||||
from django.test import RequestFactory
|
from django.test import RequestFactory
|
||||||
from django.utils import timezone, translation
|
from django.utils import timezone, translation
|
||||||
from django.utils.datastructures import MultiValueDict
|
from django.utils.datastructures import MultiValueDict
|
||||||
@@ -47,6 +47,7 @@ from redis import ResponseError
|
|||||||
from pretix.base.models import CachedFile, User
|
from pretix.base.models import CachedFile, User
|
||||||
from pretix.base.services.tasks import ProfiledEventTask
|
from pretix.base.services.tasks import ProfiledEventTask
|
||||||
from pretix.celery_app import app
|
from pretix.celery_app import app
|
||||||
|
from pretix.helpers.http import redirect_to_url
|
||||||
|
|
||||||
logger = logging.getLogger('pretix.base.tasks')
|
logger = logging.getLogger('pretix.base.tasks')
|
||||||
|
|
||||||
@@ -152,7 +153,7 @@ class AsyncMixin:
|
|||||||
'redirect': self.get_success_url(value),
|
'redirect': self.get_success_url(value),
|
||||||
'message': str(self.get_success_message(value))
|
'message': str(self.get_success_message(value))
|
||||||
})
|
})
|
||||||
return redirect(self.get_success_url(value))
|
return redirect_to_url(self.get_success_url(value))
|
||||||
|
|
||||||
def error(self, exception):
|
def error(self, exception):
|
||||||
if isinstance(exception, PermissionDenied):
|
if isinstance(exception, PermissionDenied):
|
||||||
@@ -165,7 +166,7 @@ class AsyncMixin:
|
|||||||
'redirect': self.get_error_url(),
|
'redirect': self.get_error_url(),
|
||||||
'message': str(self.get_error_message(exception))
|
'message': str(self.get_error_message(exception))
|
||||||
})
|
})
|
||||||
return redirect(self.get_error_url())
|
return redirect_to_url(self.get_error_url())
|
||||||
|
|
||||||
def get_error_message(self, exception):
|
def get_error_message(self, exception):
|
||||||
if isinstance(exception, dict) and exception['exc_type'] in self.known_errortypes:
|
if isinstance(exception, dict) and exception['exc_type'] in self.known_errortypes:
|
||||||
@@ -203,7 +204,7 @@ class AsyncAction(AsyncMixin):
|
|||||||
return self.success(res.info)
|
return self.success(res.info)
|
||||||
else:
|
else:
|
||||||
return self.error(res.info)
|
return self.error(res.info)
|
||||||
return redirect(self.get_check_url(res.id, False))
|
return redirect_to_url(self.get_check_url(res.id, False))
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if 'async_id' in request.GET and settings.HAS_CELERY:
|
if 'async_id' in request.GET and settings.HAS_CELERY:
|
||||||
@@ -375,7 +376,7 @@ class AsyncFormView(AsyncMixin, FormView):
|
|||||||
return self.success(res.info)
|
return self.success(res.info)
|
||||||
else:
|
else:
|
||||||
return self.error(res.info)
|
return self.error(res.info)
|
||||||
return redirect(self.get_check_url(res.id, False))
|
return redirect_to_url(self.get_check_url(res.id, False))
|
||||||
|
|
||||||
|
|
||||||
class AsyncPostView(AsyncMixin, View):
|
class AsyncPostView(AsyncMixin, View):
|
||||||
@@ -478,4 +479,4 @@ class AsyncPostView(AsyncMixin, View):
|
|||||||
return self.success(res.info)
|
return self.success(res.info)
|
||||||
else:
|
else:
|
||||||
return self.error(res.info)
|
return self.error(res.info)
|
||||||
return redirect(self.get_check_url(res.id, False))
|
return redirect_to_url(self.get_check_url(res.id, False))
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ from pretix.base.forms.widgets import (
|
|||||||
from pretix.base.models import (
|
from pretix.base.models import (
|
||||||
Checkin, CheckinList, Device, Event, EventMetaProperty, EventMetaValue,
|
Checkin, CheckinList, Device, Event, EventMetaProperty, EventMetaValue,
|
||||||
Gate, Invoice, InvoiceAddress, Item, Order, OrderPayment, OrderPosition,
|
Gate, Invoice, InvoiceAddress, Item, Order, OrderPayment, OrderPosition,
|
||||||
OrderRefund, Organizer, Question, QuestionAnswer, SubEvent,
|
OrderRefund, Organizer, Question, QuestionAnswer, Quota, SubEvent,
|
||||||
SubEventMetaValue, Team, TeamAPIToken, TeamInvite, Voucher,
|
SubEventMetaValue, Team, TeamAPIToken, TeamInvite, Voucher,
|
||||||
)
|
)
|
||||||
from pretix.base.signals import register_payment_providers
|
from pretix.base.signals import register_payment_providers
|
||||||
@@ -230,6 +230,7 @@ class OrderFilterForm(FilterForm):
|
|||||||
('partially_paid', _('Partially paid')),
|
('partially_paid', _('Partially paid')),
|
||||||
('underpaid', _('Underpaid (but confirmed)')),
|
('underpaid', _('Underpaid (but confirmed)')),
|
||||||
('pendingpaid', _('Pending (but fully paid)')),
|
('pendingpaid', _('Pending (but fully paid)')),
|
||||||
|
('pendingnopayment', _('Pending (but no current payment)')),
|
||||||
)),
|
)),
|
||||||
(_('Approval process'), (
|
(_('Approval process'), (
|
||||||
('na', _('Approved, payment pending')),
|
('na', _('Approved, payment pending')),
|
||||||
@@ -327,6 +328,18 @@ class OrderFilterForm(FilterForm):
|
|||||||
Q(status__in=(Order.STATUS_EXPIRED, Order.STATUS_PENDING)) & Q(pending_sum_t__lte=0)
|
Q(status__in=(Order.STATUS_EXPIRED, Order.STATUS_PENDING)) & Q(pending_sum_t__lte=0)
|
||||||
& Q(require_approval=False)
|
& Q(require_approval=False)
|
||||||
)
|
)
|
||||||
|
elif s == 'pendingnopayment':
|
||||||
|
qs = qs.exclude(
|
||||||
|
Exists(
|
||||||
|
OrderPayment.objects.filter(
|
||||||
|
order=OuterRef('pk'),
|
||||||
|
state__in=(OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
).filter(
|
||||||
|
status=Order.STATUS_PENDING,
|
||||||
|
require_approval=False,
|
||||||
|
)
|
||||||
elif s == 'partially_paid':
|
elif s == 'partially_paid':
|
||||||
qs = Order.annotate_overpayments(qs, refunds=False, results=False, sums=True)
|
qs = Order.annotate_overpayments(qs, refunds=False, results=False, sums=True)
|
||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
@@ -578,11 +591,10 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
|||||||
widget=FilterNullBooleanSelect,
|
widget=FilterNullBooleanSelect,
|
||||||
label=_('At least one ticket with check-in'),
|
label=_('At least one ticket with check-in'),
|
||||||
)
|
)
|
||||||
checkin_attention = forms.NullBooleanField(
|
quota = SafeModelChoiceField(
|
||||||
|
queryset=Quota.objects.none(),
|
||||||
|
label=_('Affected quota'),
|
||||||
required=False,
|
required=False,
|
||||||
widget=FilterNullBooleanSelect,
|
|
||||||
label=_('Requires special attention'),
|
|
||||||
help_text=_('Only matches orders with the attention checkbox set directly for the order, not based on the product.'),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@@ -667,6 +679,17 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
|||||||
label=_('Ticket secret'),
|
label=_('Ticket secret'),
|
||||||
required=False
|
required=False
|
||||||
)
|
)
|
||||||
|
self.fields['quota'].queryset = self.event.quotas.all()
|
||||||
|
self.fields['quota'].widget = Select2(
|
||||||
|
attrs={
|
||||||
|
'data-model-select2': 'generic',
|
||||||
|
'data-select2-url': reverse('control:event.items.quotas.select2', kwargs={
|
||||||
|
'event': self.event.slug,
|
||||||
|
'organizer': self.event.organizer.slug,
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
self.fields['quota'].widget.choices = self.fields['quota'].choices
|
||||||
for q in self.event.questions.all():
|
for q in self.event.questions.all():
|
||||||
self.fields['question_{}'.format(q.pk)] = forms.CharField(
|
self.fields['question_{}'.format(q.pk)] = forms.CharField(
|
||||||
label=q.question,
|
label=q.question,
|
||||||
@@ -760,6 +783,12 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
|||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
all_positions__secret__icontains=fdata.get('ticket_secret')
|
all_positions__secret__icontains=fdata.get('ticket_secret')
|
||||||
).distinct()
|
).distinct()
|
||||||
|
if fdata.get('quota'):
|
||||||
|
quota = fdata['quota']
|
||||||
|
qs = qs.filter(
|
||||||
|
Q(all_positions__item__in=quota.items.all(), all_positions__variation__isnull=True) |
|
||||||
|
Q(all_positions__variation__in=quota.variations.all())
|
||||||
|
).distinct()
|
||||||
for q in self.event.questions.all():
|
for q in self.event.questions.all():
|
||||||
if fdata.get(f'question_{q.pk}'):
|
if fdata.get(f'question_{q.pk}'):
|
||||||
answers = QuestionAnswer.objects.filter(
|
answers = QuestionAnswer.objects.filter(
|
||||||
|
|||||||
@@ -614,6 +614,15 @@ class ItemUpdateForm(I18nModelForm):
|
|||||||
|
|
||||||
self.fields['free_price_suggestion'].widget.attrs['data-display-dependency'] = '#id_free_price'
|
self.fields['free_price_suggestion'].widget.attrs['data-display-dependency'] = '#id_free_price'
|
||||||
|
|
||||||
|
self.fields['validity_dynamic_start_choice'] = forms.TypedChoiceField(
|
||||||
|
label=_("Start of validity"),
|
||||||
|
choices=(
|
||||||
|
("False", _("Purchase date")),
|
||||||
|
("True", _("Date chosen by customer")),
|
||||||
|
),
|
||||||
|
coerce=lambda x: x == 'True',
|
||||||
|
)
|
||||||
|
|
||||||
qs = self.event.organizer.membership_types.all()
|
qs = self.event.organizer.membership_types.all()
|
||||||
if qs:
|
if qs:
|
||||||
self.fields['require_membership_types'].queryset = qs
|
self.fields['require_membership_types'].queryset = qs
|
||||||
@@ -661,7 +670,7 @@ class ItemUpdateForm(I18nModelForm):
|
|||||||
if d.get('grant_membership_type'):
|
if d.get('grant_membership_type'):
|
||||||
if not d['grant_membership_type'].transferable and not d['personalized']:
|
if not d['grant_membership_type'].transferable and not d['personalized']:
|
||||||
self.add_error(
|
self.add_error(
|
||||||
'personalized' if d['admission'] else 'admission',
|
'personalized' if d.get('admission') else 'admission',
|
||||||
_("Your product grants a non-transferable membership and should therefore be a personalized "
|
_("Your product grants a non-transferable membership and should therefore be a personalized "
|
||||||
"admission ticket. Otherwise customers might not be able to use the membership later. If you "
|
"admission ticket. Otherwise customers might not be able to use the membership later. If you "
|
||||||
"want the membership to be non-personalized, set the membership type to be transferable.")
|
"want the membership to be non-personalized, set the membership type to be transferable.")
|
||||||
|
|||||||
@@ -705,6 +705,7 @@ class OrderMailForm(forms.Form):
|
|||||||
)
|
)
|
||||||
self.fields['attach_invoices'].queryset = order.invoices.all()
|
self.fields['attach_invoices'].queryset = order.invoices.all()
|
||||||
self._set_field_placeholders('message', ['event', 'order'])
|
self._set_field_placeholders('message', ['event', 'order'])
|
||||||
|
self._set_field_placeholders('subject', ['event', 'order'])
|
||||||
|
|
||||||
|
|
||||||
class OrderPositionMailForm(OrderMailForm):
|
class OrderPositionMailForm(OrderMailForm):
|
||||||
@@ -720,6 +721,7 @@ class OrderPositionMailForm(OrderMailForm):
|
|||||||
initial=self.order.event.settings.mail_text_order_custom_mail.localize(self.order.locale),
|
initial=self.order.event.settings.mail_text_order_custom_mail.localize(self.order.locale),
|
||||||
)
|
)
|
||||||
self._set_field_placeholders('message', ['event', 'order', 'position'])
|
self._set_field_placeholders('message', ['event', 'order', 'position'])
|
||||||
|
self._set_field_placeholders('subject', ['event', 'order'])
|
||||||
|
|
||||||
|
|
||||||
class OrderRefundForm(forms.Form):
|
class OrderRefundForm(forms.Form):
|
||||||
|
|||||||
@@ -423,6 +423,7 @@ class OrganizerSettingsForm(SettingsForm):
|
|||||||
'organizer_link_back',
|
'organizer_link_back',
|
||||||
'organizer_logo_image_large',
|
'organizer_logo_image_large',
|
||||||
'organizer_logo_image_inherit',
|
'organizer_logo_image_inherit',
|
||||||
|
'favicon',
|
||||||
'giftcard_length',
|
'giftcard_length',
|
||||||
'giftcard_expiry_years',
|
'giftcard_expiry_years',
|
||||||
'locales',
|
'locales',
|
||||||
@@ -464,14 +465,6 @@ class OrganizerSettingsForm(SettingsForm):
|
|||||||
'can increase the size with the setting below. We recommend not using small details on the picture '
|
'can increase the size with the setting below. We recommend not using small details on the picture '
|
||||||
'as it will be resized on smaller screens.')
|
'as it will be resized on smaller screens.')
|
||||||
)
|
)
|
||||||
favicon = ExtFileField(
|
|
||||||
label=_('Favicon'),
|
|
||||||
ext_whitelist=settings.FILE_UPLOAD_EXTENSIONS_FAVICON,
|
|
||||||
required=False,
|
|
||||||
max_size=settings.FILE_UPLOAD_MAX_SIZE_FAVICON,
|
|
||||||
help_text=_('If you provide a favicon, we will show it instead of the default pretix icon. '
|
|
||||||
'We recommend a size of at least 200x200px to accommodate most devices.')
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
is_admin = kwargs.pop('is_admin', False)
|
is_admin = kwargs.pop('is_admin', False)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
# <https://www.gnu.org/licenses/>.
|
# <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
from bootstrap3.text import text_value
|
from bootstrap3.text import text_value
|
||||||
from django.forms import CheckboxInput
|
from django.forms import CheckboxInput, CheckboxSelectMultiple, RadioSelect
|
||||||
from django.forms.utils import flatatt
|
from django.forms.utils import flatatt
|
||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
@@ -30,7 +30,7 @@ from i18nfield.forms import I18nFormField
|
|||||||
from pretix.base.forms.renderers import FieldRenderer, InlineFieldRenderer
|
from pretix.base.forms.renderers import FieldRenderer, InlineFieldRenderer
|
||||||
|
|
||||||
|
|
||||||
def render_label(content, label_for=None, label_class=None, label_title='', optional=False):
|
def render_label(content, label_for=None, label_class=None, label_title='', label_id='', optional=False):
|
||||||
"""
|
"""
|
||||||
Render a label with content
|
Render a label with content
|
||||||
"""
|
"""
|
||||||
@@ -41,6 +41,8 @@ def render_label(content, label_for=None, label_class=None, label_title='', opti
|
|||||||
attrs['class'] = label_class
|
attrs['class'] = label_class
|
||||||
if label_title:
|
if label_title:
|
||||||
attrs['title'] = label_title
|
attrs['title'] = label_title
|
||||||
|
if label_id:
|
||||||
|
attrs['id'] = label_id
|
||||||
|
|
||||||
if text_value(content) == ' ':
|
if text_value(content) == ' ':
|
||||||
# Empty label, e.g. checkbox
|
# Empty label, e.g. checkbox
|
||||||
@@ -61,6 +63,7 @@ class ControlFieldRenderer(FieldRenderer):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
kwargs['layout'] = 'horizontal'
|
kwargs['layout'] = 'horizontal'
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
self.is_group_widget = isinstance(self.widget, (CheckboxSelectMultiple, RadioSelect, )) or (self.is_multi_widget and len(self.widget.widgets) > 1)
|
||||||
|
|
||||||
def add_label(self, html):
|
def add_label(self, html):
|
||||||
label = self.get_label()
|
label = self.get_label()
|
||||||
@@ -73,14 +76,29 @@ class ControlFieldRenderer(FieldRenderer):
|
|||||||
else:
|
else:
|
||||||
required = self.field.field.required
|
required = self.field.field.required
|
||||||
|
|
||||||
|
if self.is_group_widget:
|
||||||
|
label_for = ""
|
||||||
|
label_id = "legend-{}".format(self.field.html_name)
|
||||||
|
else:
|
||||||
|
label_for = self.field.id_for_label
|
||||||
|
label_id = ""
|
||||||
|
|
||||||
html = render_label(
|
html = render_label(
|
||||||
label,
|
label,
|
||||||
label_for=self.field.id_for_label,
|
label_for=label_for,
|
||||||
label_class=self.get_label_class(),
|
label_class=self.get_label_class(),
|
||||||
|
label_id=label_id,
|
||||||
optional=not required and not isinstance(self.widget, CheckboxInput)
|
optional=not required and not isinstance(self.widget, CheckboxInput)
|
||||||
) + html
|
) + html
|
||||||
return html
|
return html
|
||||||
|
|
||||||
|
def wrap_label_and_field(self, html):
|
||||||
|
if self.is_group_widget:
|
||||||
|
attrs = ' role="group" aria-labelledby="legend-{}"'.format(self.field.html_name)
|
||||||
|
else:
|
||||||
|
attrs = ''
|
||||||
|
return '<div class="{klass}"{attrs}>{html}</div>'.format(klass=self.get_form_group_class(), html=html, attrs=attrs)
|
||||||
|
|
||||||
|
|
||||||
class BulkEditMixin:
|
class BulkEditMixin:
|
||||||
|
|
||||||
|
|||||||
@@ -463,7 +463,8 @@ class RRuleFormSetForm(RRuleForm):
|
|||||||
|
|
||||||
RRuleFormSet = formset_factory(
|
RRuleFormSet = formset_factory(
|
||||||
RRuleFormSetForm,
|
RRuleFormSetForm,
|
||||||
can_order=False, can_delete=True, extra=1
|
min_num=1, validate_min=True,
|
||||||
|
can_order=False, can_delete=True, extra=0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ from urllib.parse import quote, urljoin, urlparse
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth import REDIRECT_FIELD_NAME, logout
|
from django.contrib.auth import REDIRECT_FIELD_NAME, logout
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404, redirect, resolve_url
|
from django.shortcuts import get_object_or_404, resolve_url
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.urls import get_script_prefix, resolve, reverse
|
from django.urls import get_script_prefix, resolve, reverse
|
||||||
from django.utils.encoding import force_str
|
from django.utils.encoding import force_str
|
||||||
@@ -46,6 +46,7 @@ from django_scopes import scope
|
|||||||
|
|
||||||
from pretix.base.models import Event, Organizer
|
from pretix.base.models import Event, Organizer
|
||||||
from pretix.base.models.auth import SuperuserPermissionSet, User
|
from pretix.base.models.auth import SuperuserPermissionSet, User
|
||||||
|
from pretix.helpers.http import redirect_to_url
|
||||||
from pretix.helpers.security import (
|
from pretix.helpers.security import (
|
||||||
SessionInvalid, SessionReauthRequired, assert_session_valid,
|
SessionInvalid, SessionReauthRequired, assert_session_valid,
|
||||||
)
|
)
|
||||||
@@ -118,7 +119,7 @@ class PermissionMiddleware:
|
|||||||
|
|
||||||
if hasattr(request, 'organizer'):
|
if hasattr(request, 'organizer'):
|
||||||
# If the user is on a organizer's subdomain, he should be redirected to pretix
|
# If the user is on a organizer's subdomain, he should be redirected to pretix
|
||||||
return redirect(urljoin(settings.SITE_URL, request.get_full_path()))
|
return redirect_to_url(urljoin(settings.SITE_URL, request.get_full_path()))
|
||||||
if url_name in self.EXCEPTIONS:
|
if url_name in self.EXCEPTIONS:
|
||||||
return self.get_response(request)
|
return self.get_response(request)
|
||||||
if not request.user.is_authenticated:
|
if not request.user.is_authenticated:
|
||||||
@@ -132,14 +133,14 @@ class PermissionMiddleware:
|
|||||||
return self._login_redirect(request)
|
return self._login_redirect(request)
|
||||||
except SessionReauthRequired:
|
except SessionReauthRequired:
|
||||||
if url_name not in ('user.reauth', 'auth.logout'):
|
if url_name not in ('user.reauth', 'auth.logout'):
|
||||||
return redirect(reverse('control:user.reauth') + '?next=' + quote(request.get_full_path()))
|
return redirect_to_url(reverse('control:user.reauth') + '?next=' + quote(request.get_full_path()))
|
||||||
|
|
||||||
if request.user.needs_password_change and url_name not in self.EXCEPTIONS_FORCED_PW_CHANGE:
|
if request.user.needs_password_change and url_name not in self.EXCEPTIONS_FORCED_PW_CHANGE:
|
||||||
return redirect(reverse('control:user.settings') + '?next=' + quote(request.get_full_path()))
|
return redirect_to_url(reverse('control:user.settings') + '?next=' + quote(request.get_full_path()))
|
||||||
|
|
||||||
if not request.user.require_2fa and settings.PRETIX_OBLIGATORY_2FA \
|
if not request.user.require_2fa and settings.PRETIX_OBLIGATORY_2FA \
|
||||||
and url_name not in self.EXCEPTIONS_2FA:
|
and url_name not in self.EXCEPTIONS_2FA and not request.user.needs_password_change:
|
||||||
return redirect(reverse('control:user.settings.2fa'))
|
return redirect_to_url(reverse('control:user.settings.2fa'))
|
||||||
|
|
||||||
if 'event' in url.kwargs and 'organizer' in url.kwargs:
|
if 'event' in url.kwargs and 'organizer' in url.kwargs:
|
||||||
if url.kwargs['organizer'] == '-' and url.kwargs['event'] == '-':
|
if url.kwargs['organizer'] == '-' and url.kwargs['event'] == '-':
|
||||||
@@ -152,7 +153,7 @@ class PermissionMiddleware:
|
|||||||
k = dict(url.kwargs)
|
k = dict(url.kwargs)
|
||||||
k['organizer'] = ev.organizer.slug
|
k['organizer'] = ev.organizer.slug
|
||||||
k['event'] = ev.slug
|
k['event'] = ev.slug
|
||||||
return redirect(reverse(url.view_name, kwargs=k, args=url.args))
|
return redirect_to_url(reverse(url.view_name, kwargs=k, args=url.args))
|
||||||
|
|
||||||
with scope(organizer=None):
|
with scope(organizer=None):
|
||||||
request.event = Event.objects.filter(
|
request.event = Event.objects.filter(
|
||||||
@@ -178,7 +179,7 @@ class PermissionMiddleware:
|
|||||||
"have no permission to administrate it."))
|
"have no permission to administrate it."))
|
||||||
k = dict(url.kwargs)
|
k = dict(url.kwargs)
|
||||||
k['organizer'] = org.slug
|
k['organizer'] = org.slug
|
||||||
return redirect(reverse(url.view_name, kwargs=k, args=url.args))
|
return redirect_to_url(reverse(url.view_name, kwargs=k, args=url.args))
|
||||||
|
|
||||||
request.organizer = Organizer.objects.filter(
|
request.organizer = Organizer.objects.filter(
|
||||||
slug=url.kwargs['organizer'],
|
slug=url.kwargs['organizer'],
|
||||||
|
|||||||
@@ -35,10 +35,11 @@
|
|||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
|
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.shortcuts import redirect
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
|
from pretix.helpers.http import redirect_to_url
|
||||||
|
|
||||||
|
|
||||||
def current_url(request):
|
def current_url(request):
|
||||||
if request.GET:
|
if request.GET:
|
||||||
@@ -135,7 +136,7 @@ def administrator_permission_required():
|
|||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
if not request.user.has_active_staff_session(request.session.session_key):
|
if not request.user.has_active_staff_session(request.session.session_key):
|
||||||
if request.user.is_staff:
|
if request.user.is_staff:
|
||||||
return redirect(reverse('control:user.sudo') + '?next=' + quote(current_url(request)))
|
return redirect_to_url(reverse('control:user.sudo') + '?next=' + quote(current_url(request)))
|
||||||
raise PermissionDenied(_('You do not have permission to view this content.'))
|
raise PermissionDenied(_('You do not have permission to view this content.'))
|
||||||
return function(request, *args, **kw)
|
return function(request, *args, **kw)
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|||||||
@@ -209,6 +209,7 @@
|
|||||||
{% bootstrap_field form.validity_fixed_until layout="control" %}
|
{% bootstrap_field form.validity_fixed_until layout="control" %}
|
||||||
</div>
|
</div>
|
||||||
<div data-display-dependency="#{{ form.validity_mode.id_for_label }}" data-display-dependency-value="dynamic">
|
<div data-display-dependency="#{{ form.validity_mode.id_for_label }}" data-display-dependency-value="dynamic">
|
||||||
|
{% bootstrap_field form.validity_dynamic_start_choice layout="control" %}
|
||||||
<div class="form-group metadata-group">
|
<div class="form-group metadata-group">
|
||||||
<label class="col-md-3 control-label">{% trans "Duration" %}</label>
|
<label class="col-md-3 control-label">{% trans "Duration" %}</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
@@ -231,8 +232,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% bootstrap_field form.validity_dynamic_start_choice layout="control" %}
|
<div data-display-dependency="#{{ form.validity_dynamic_start_choice.id_for_label }}" data-display-dependency-value="True">
|
||||||
<div data-display-dependency="#{{ form.validity_dynamic_start_choice.id_for_label }}">
|
|
||||||
{% trans "days" as t_days %}
|
{% trans "days" as t_days %}
|
||||||
{% bootstrap_field form.validity_dynamic_start_choice_day_limit addon_after=t_days layout="control" %}
|
{% bootstrap_field form.validity_dynamic_start_choice_day_limit addon_after=t_days layout="control" %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ def process_login(request, user, keep_logged_in):
|
|||||||
auth_login(request, user)
|
auth_login(request, user)
|
||||||
request.session['pretix_auth_login_time'] = int(time.time())
|
request.session['pretix_auth_login_time'] = int(time.time())
|
||||||
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||||
return redirect(next_url)
|
return redirect_to_url(next_url)
|
||||||
return redirect(reverse('control:index'))
|
return redirect('control:index')
|
||||||
|
|
||||||
|
|
||||||
def login(request):
|
def login(request):
|
||||||
@@ -149,7 +149,10 @@ def register(request):
|
|||||||
raise PermissionDenied('Registration is disabled')
|
raise PermissionDenied('Registration is disabled')
|
||||||
ctx = {}
|
ctx = {}
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
return redirect(request.GET.get("next", 'control:index'))
|
next_url = request.GET.get("next") or reverse("control:index")
|
||||||
|
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||||
|
return redirect_to_url(next_url)
|
||||||
|
return redirect("control:index")
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = RegistrationForm(data=request.POST)
|
form = RegistrationForm(data=request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
@@ -256,7 +259,10 @@ class Forgot(TemplateView):
|
|||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
return redirect(request.GET.get("next", 'control:index'))
|
next_url = request.GET.get("next") or reverse("control:index")
|
||||||
|
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||||
|
return redirect_to_url(next_url)
|
||||||
|
return redirect("control:index")
|
||||||
return super().get(request, *args, **kwargs)
|
return super().get(request, *args, **kwargs)
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
@@ -329,7 +335,10 @@ class Recover(TemplateView):
|
|||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
return redirect(request.GET.get("next", 'control:index'))
|
next_url = request.GET.get("next") or reverse("control:index")
|
||||||
|
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||||
|
return redirect_to_url(next_url)
|
||||||
|
return redirect("control:index")
|
||||||
try:
|
try:
|
||||||
user = User.objects.get(id=self.request.GET.get('id'), is_active=True, auth_backend='native')
|
user = User.objects.get(id=self.request.GET.get('id'), is_active=True, auth_backend='native')
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
@@ -453,7 +462,7 @@ class Login2FAView(TemplateView):
|
|||||||
del request.session['pretix_auth_2fa_time']
|
del request.session['pretix_auth_2fa_time']
|
||||||
if "next" in request.GET and url_has_allowed_host_and_scheme(request.GET.get("next"), allowed_hosts=None):
|
if "next" in request.GET and url_has_allowed_host_and_scheme(request.GET.get("next"), allowed_hosts=None):
|
||||||
return redirect_to_url(request.GET.get("next"))
|
return redirect_to_url(request.GET.get("next"))
|
||||||
return redirect(reverse('control:index'))
|
return redirect('control:index')
|
||||||
else:
|
else:
|
||||||
messages.error(request, _('Invalid code, please try again.'))
|
messages.error(request, _('Invalid code, please try again.'))
|
||||||
return redirect('control:auth.login.2fa')
|
return redirect('control:auth.login.2fa')
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
# 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/>.
|
||||||
#
|
#
|
||||||
|
import hashlib
|
||||||
import logging
|
import logging
|
||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
|
|
||||||
@@ -36,7 +37,8 @@ logger = logging.getLogger(__name__)
|
|||||||
class GeoCodeView(LoginRequiredMixin, View):
|
class GeoCodeView(LoginRequiredMixin, View):
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
q = self.request.GET.get('q')
|
q = self.request.GET.get('q')
|
||||||
cd = cache.get('geocode:{}'.format(q))
|
cache_key = 'geocode:{}'.format(hashlib.sha256(q.encode()).hexdigest())
|
||||||
|
cd = cache.get(cache_key)
|
||||||
if cd:
|
if cd:
|
||||||
return JsonResponse({
|
return JsonResponse({
|
||||||
'success': True,
|
'success': True,
|
||||||
@@ -61,7 +63,7 @@ class GeoCodeView(LoginRequiredMixin, View):
|
|||||||
'results': []
|
'results': []
|
||||||
}, status=200)
|
}, status=200)
|
||||||
|
|
||||||
cache.set('geocode:{}'.format(q), res, timeout=3600 * 6)
|
cache.set(cache_key, res, timeout=3600 * 6)
|
||||||
return JsonResponse({
|
return JsonResponse({
|
||||||
'success': True,
|
'success': True,
|
||||||
'results': res
|
'results': res
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ logger = logging.getLogger(__name__)
|
|||||||
def get_spf_record(hostname):
|
def get_spf_record(hostname):
|
||||||
try:
|
try:
|
||||||
r = dns.resolver.Resolver()
|
r = dns.resolver.Resolver()
|
||||||
for resp in r.query(hostname, 'TXT'):
|
for resp in r.resolve(hostname, 'TXT'):
|
||||||
data = b''.join(resp.strings).decode()
|
data = b''.join(resp.strings).decode()
|
||||||
if data.lower().strip().startswith('v=spf1 '): # RFC7208, section 4.5
|
if data.lower().strip().startswith('v=spf1 '): # RFC7208, section 4.5
|
||||||
return data
|
return data
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ from pretix.base.services.orderimport import import_orders, parse_csv
|
|||||||
from pretix.base.views.tasks import AsyncAction
|
from pretix.base.views.tasks import AsyncAction
|
||||||
from pretix.control.forms.orderimport import ProcessForm
|
from pretix.control.forms.orderimport import ProcessForm
|
||||||
from pretix.control.permissions import EventPermissionRequiredMixin
|
from pretix.control.permissions import EventPermissionRequiredMixin
|
||||||
|
from pretix.helpers.http import redirect_to_url
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
ENCODINGS = (
|
ENCODINGS = (
|
||||||
@@ -69,19 +70,19 @@ class ImportView(EventPermissionRequiredMixin, TemplateView):
|
|||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
if 'file' not in request.FILES:
|
if 'file' not in request.FILES:
|
||||||
return redirect(reverse('control:event.orders.import', kwargs={
|
return redirect_to_url(reverse('control:event.orders.import', kwargs={
|
||||||
'event': request.event.slug,
|
'event': request.event.slug,
|
||||||
'organizer': request.organizer.slug,
|
'organizer': request.organizer.slug,
|
||||||
}))
|
}))
|
||||||
if not request.FILES['file'].name.lower().endswith('.csv'):
|
if not request.FILES['file'].name.lower().endswith('.csv'):
|
||||||
messages.error(request, _('Please only upload CSV files.'))
|
messages.error(request, _('Please only upload CSV files.'))
|
||||||
return redirect(reverse('control:event.orders.import', kwargs={
|
return redirect_to_url(reverse('control:event.orders.import', kwargs={
|
||||||
'event': request.event.slug,
|
'event': request.event.slug,
|
||||||
'organizer': request.organizer.slug,
|
'organizer': request.organizer.slug,
|
||||||
}))
|
}))
|
||||||
if request.FILES['file'].size > settings.FILE_UPLOAD_MAX_SIZE_OTHER:
|
if request.FILES['file'].size > settings.FILE_UPLOAD_MAX_SIZE_OTHER:
|
||||||
messages.error(request, _('Please do not upload files larger than 10 MB.'))
|
messages.error(request, _('Please do not upload files larger than 10 MB.'))
|
||||||
return redirect(reverse('control:event.orders.import', kwargs={
|
return redirect_to_url(reverse('control:event.orders.import', kwargs={
|
||||||
'event': request.event.slug,
|
'event': request.event.slug,
|
||||||
'organizer': request.organizer.slug,
|
'organizer': request.organizer.slug,
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -74,7 +74,11 @@ class InList(Func):
|
|||||||
raise TypeError(f'Dynamic right-hand-site currently not implemented, found {type(self.source_expressions[1])}')
|
raise TypeError(f'Dynamic right-hand-site currently not implemented, found {type(self.source_expressions[1])}')
|
||||||
rhs, rhs_params = ['%s' for _ in self.source_expressions[1].value], [d for d in self.source_expressions[1].value]
|
rhs, rhs_params = ['%s' for _ in self.source_expressions[1].value], [d for d in self.source_expressions[1].value]
|
||||||
|
|
||||||
return '%s IN (%s)' % (lhs, ', '.join(rhs)), lhs_params + rhs_params
|
if rhs:
|
||||||
|
return '%s IN (%s)' % (lhs, ', '.join(rhs)), lhs_params + rhs_params
|
||||||
|
else:
|
||||||
|
# "IN ()" is not considered valid SQL by PostgreSQL (unlike SQLite)
|
||||||
|
return 'FALSE', []
|
||||||
|
|
||||||
|
|
||||||
def tolerance(b, tol=None, sign=1):
|
def tolerance(b, tol=None, sign=1):
|
||||||
|
|||||||
@@ -19,9 +19,11 @@
|
|||||||
# 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/>.
|
||||||
#
|
#
|
||||||
|
import types
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
from requests.adapters import HTTPAdapter
|
||||||
|
|
||||||
|
|
||||||
def monkeypatch_vobject_performance():
|
def monkeypatch_vobject_performance():
|
||||||
@@ -67,6 +69,26 @@ def monkeypatch_pillow_safer():
|
|||||||
Image.ID.remove("EPS")
|
Image.ID.remove("EPS")
|
||||||
|
|
||||||
|
|
||||||
|
def monkeypatch_requests_timeout():
|
||||||
|
"""
|
||||||
|
The requests package does not by default set a timeout for outgoing HTTP requests. This is dangerous especially since
|
||||||
|
celery tasks have no timeout on the task as a whole (as web requests do), so HTTP requests to a non-responding
|
||||||
|
external service could lead to a clogging of the entire celery queue.
|
||||||
|
"""
|
||||||
|
old_httpadapter_send = HTTPAdapter.send
|
||||||
|
|
||||||
|
def httpadapter_send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None, **kwargs):
|
||||||
|
if timeout is None:
|
||||||
|
timeout = 30
|
||||||
|
return types.MethodType(old_httpadapter_send, self)(
|
||||||
|
request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
HTTPAdapter.send = httpadapter_send
|
||||||
|
|
||||||
|
|
||||||
def monkeypatch_all_at_ready():
|
def monkeypatch_all_at_ready():
|
||||||
monkeypatch_vobject_performance()
|
monkeypatch_vobject_performance()
|
||||||
monkeypatch_pillow_safer()
|
monkeypatch_pillow_safer()
|
||||||
|
monkeypatch_requests_timeout()
|
||||||
|
|||||||
@@ -164,9 +164,9 @@ def resize_image(image, size):
|
|||||||
return image
|
return image
|
||||||
|
|
||||||
|
|
||||||
def create_thumbnail(sourcename, size):
|
def create_thumbnail(sourcename, size, formats=None):
|
||||||
source = default_storage.open(sourcename)
|
source = default_storage.open(sourcename)
|
||||||
image = Image.open(BytesIO(source.read()), formats=settings.PILLOW_FORMATS_QUESTIONS_IMAGE)
|
image = Image.open(BytesIO(source.read()), formats=formats or settings.PILLOW_FORMATS_QUESTIONS_IMAGE)
|
||||||
try:
|
try:
|
||||||
image.load()
|
image.load()
|
||||||
except:
|
except:
|
||||||
@@ -208,9 +208,9 @@ def create_thumbnail(sourcename, size):
|
|||||||
return t
|
return t
|
||||||
|
|
||||||
|
|
||||||
def get_thumbnail(source, size):
|
def get_thumbnail(source, size, formats=None):
|
||||||
# Assumes files are immutable
|
# Assumes files are immutable
|
||||||
try:
|
try:
|
||||||
return Thumbnail.objects.get(source=source, size=size)
|
return Thumbnail.objects.get(source=source, size=size)
|
||||||
except Thumbnail.DoesNotExist:
|
except Thumbnail.DoesNotExist:
|
||||||
return create_thumbnail(source, size)
|
return create_thumbnail(source, size, formats=formats)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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"
|
||||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -159,15 +159,15 @@ msgstr ""
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -515,44 +515,44 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -582,40 +582,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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/"
|
||||||
@@ -139,9 +139,9 @@ msgid "Continue"
|
|||||||
msgstr "المتابعة"
|
msgstr "المتابعة"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "جاري تأكيد الدفع الخاص بك …"
|
msgstr "جاري تأكيد الدفع الخاص بك …"
|
||||||
|
|
||||||
@@ -163,15 +163,15 @@ msgstr "الطلبات المدفوعة"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "إجمالي الإيرادات"
|
msgstr "إجمالي الإيرادات"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "جاري الاتصال بStripe …"
|
msgstr "جاري الاتصال بStripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "المجموع"
|
msgstr "المجموع"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "جاري الاتصال بالبنك الذي تتعامل معه …"
|
msgstr "جاري الاتصال بالبنك الذي تتعامل معه …"
|
||||||
|
|
||||||
@@ -541,44 +541,44 @@ msgstr "QR الدخول"
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "مجموعة من العناصر"
|
msgstr "مجموعة من العناصر"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "عنصر نص"
|
msgstr "عنصر نص"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "منطقة باركود"
|
msgstr "منطقة باركود"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "منطقة صورة"
|
msgstr "منطقة صورة"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "مدعوم من pretix"
|
msgstr "مدعوم من pretix"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "عنصر"
|
msgstr "عنصر"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "تصميم التذكرة"
|
msgstr "تصميم التذكرة"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "فشلت عملية الحفظ."
|
msgstr "فشلت عملية الحفظ."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 "هل تريد أن تغادر المحرر دون حفظ التعديلات؟"
|
||||||
|
|
||||||
@@ -608,40 +608,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr "تباين اللون سيئ للخلفية البيضاء، الرجاء اختيار لون غامق."
|
msgstr "تباين اللون سيئ للخلفية البيضاء، الرجاء اختيار لون غامق."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "البحث في الاستفسارات"
|
msgstr "البحث في الاستفسارات"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "الكل"
|
msgstr "الكل"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "لا شيء"
|
msgstr "لا شيء"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "المختارة فقط"
|
msgstr "المختارة فقط"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "قم باستخدم اسم مختلف داخليا"
|
msgstr "قم باستخدم اسم مختلف داخليا"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "اضغط لاغلاق الصفحة"
|
msgstr "اضغط لاغلاق الصفحة"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "لم تقم بحفظ التعديلات!"
|
msgstr "لم تقم بحفظ التعديلات!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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-"
|
||||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -160,15 +160,15 @@ msgstr ""
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -516,44 +516,44 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Disseny del tiquet"
|
msgstr "Disseny del tiquet"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -583,40 +583,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-09-15 06:00+0000\n"
|
"PO-Revision-Date: 2023-09-15 06:00+0000\n"
|
||||||
"Last-Translator: Michael <michael.happl@gmx.at>\n"
|
"Last-Translator: Michael <michael.happl@gmx.at>\n"
|
||||||
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
|||||||
msgstr "Pokračovat"
|
msgstr "Pokračovat"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Potvrzuji vaši platbu …"
|
msgstr "Potvrzuji vaši platbu …"
|
||||||
|
|
||||||
@@ -160,15 +160,15 @@ msgstr "Zaplacené objednávky"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Celkové příjmy"
|
msgstr "Celkové příjmy"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Kontaktuji Stripe …"
|
msgstr "Kontaktuji Stripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Celkem"
|
msgstr "Celkem"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Kontaktuji vaši banku …"
|
msgstr "Kontaktuji vaši banku …"
|
||||||
|
|
||||||
@@ -532,44 +532,44 @@ msgstr "Check-in QR kód"
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Skupina objektů"
|
msgstr "Skupina objektů"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Textový objekt"
|
msgstr "Textový objekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
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:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Oblast obrazu"
|
msgstr "Oblast obrazu"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
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:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Objekt"
|
msgstr "Objekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Design vstupenky"
|
msgstr "Design vstupenky"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
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:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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?"
|
||||||
|
|
||||||
@@ -602,40 +602,40 @@ msgstr ""
|
|||||||
"Tato barva je pro text na bílém pozadí špatně kontrastní, zvolte prosím "
|
"Tato barva je pro text na bílém pozadí špatně kontrastní, zvolte prosím "
|
||||||
"tmavší odstín."
|
"tmavší odstín."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Hledaný výraz"
|
msgstr "Hledaný výraz"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Všechny"
|
msgstr "Všechny"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Žádný"
|
msgstr "Žádný"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Pouze vybrané"
|
msgstr "Pouze vybrané"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Interně používat jiný název"
|
msgstr "Interně používat jiný název"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
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:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Máte neuložené změny!"
|
msgstr "Máte neuložené změny!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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"
|
||||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -160,15 +160,15 @@ msgstr ""
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -516,44 +516,44 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -583,40 +583,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2022-12-01 17:00+0000\n"
|
"PO-Revision-Date: 2022-12-01 17:00+0000\n"
|
||||||
"Last-Translator: Mie Frydensbjerg <mif@aarhus.dk>\n"
|
"Last-Translator: Mie Frydensbjerg <mif@aarhus.dk>\n"
|
||||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -140,9 +140,9 @@ msgid "Continue"
|
|||||||
msgstr "Fortsæt"
|
msgstr "Fortsæt"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Bekræfter din betaling …"
|
msgstr "Bekræfter din betaling …"
|
||||||
|
|
||||||
@@ -164,15 +164,15 @@ msgstr "Betalte bestillinger"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Omsætning i alt"
|
msgstr "Omsætning i alt"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Kontakter Stripe …"
|
msgstr "Kontakter Stripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Total"
|
msgstr "Total"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Kontakter din bank …"
|
msgstr "Kontakter din bank …"
|
||||||
|
|
||||||
@@ -552,46 +552,46 @@ msgstr "Check-in QR"
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Gruppe af objekter"
|
msgstr "Gruppe af objekter"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Tekstobjekt"
|
msgstr "Tekstobjekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "QR-kode-område"
|
msgstr "QR-kode-område"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
#, 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:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "Drevet af pretix"
|
msgstr "Drevet af pretix"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Objekt"
|
msgstr "Objekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Billetdesign"
|
msgstr "Billetdesign"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Gem fejlede."
|
msgstr "Gem fejlede."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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?"
|
||||||
@@ -622,40 +622,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Ingen"
|
msgstr "Ingen"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
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:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
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!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,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: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-11-28 15:36+0000\n"
|
"PO-Revision-Date: 2023-11-28 15:36+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/"
|
||||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
|||||||
msgstr "Fortfahren"
|
msgstr "Fortfahren"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Zahlung wird bestätigt …"
|
msgstr "Zahlung wird bestätigt …"
|
||||||
|
|
||||||
@@ -160,15 +160,15 @@ msgstr "Bezahlte Bestellungen"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Gesamtumsatz"
|
msgstr "Gesamtumsatz"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Kontaktiere Stripe …"
|
msgstr "Kontaktiere Stripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Gesamt"
|
msgstr "Gesamt"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Kontaktiere Ihre Bank …"
|
msgstr "Kontaktiere Ihre Bank …"
|
||||||
|
|
||||||
@@ -531,45 +531,45 @@ msgstr "Check-in-QR-Code"
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Gruppe von Objekten"
|
msgstr "Gruppe von Objekten"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Text-Objekt"
|
msgstr "Text-Objekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "QR-Code-Bereich"
|
msgstr "QR-Code-Bereich"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Bildbereich"
|
msgstr "Bildbereich"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
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:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Objekt"
|
msgstr "Objekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Ticket-Design"
|
msgstr "Ticket-Design"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Speichern fehlgeschlagen."
|
msgstr "Speichern fehlgeschlagen."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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?"
|
||||||
@@ -604,40 +604,40 @@ msgstr ""
|
|||||||
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
||||||
"Hintergrund. Bitte wählen Sie eine dunklere Farbe."
|
"Hintergrund. Bitte wählen Sie eine dunklere Farbe."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Suchbegriff"
|
msgstr "Suchbegriff"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Keine"
|
msgstr "Keine"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Nur ausgewählte"
|
msgstr "Nur ausgewählte"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr "Geben Sie eine Seitenzahl zwischen 1 und %(max)s ein."
|
msgstr "Geben Sie eine Seitenzahl zwischen 1 und %(max)s ein."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr "Ungültige Seitenzahl."
|
msgstr "Ungültige Seitenzahl."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Intern einen anderen Namen verwenden"
|
msgstr "Intern einen anderen Namen verwenden"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
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:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Sie haben ungespeicherte Änderungen!"
|
msgstr "Sie haben ungespeicherte Änderungen!"
|
||||||
|
|
||||||
|
|||||||
@@ -167,6 +167,7 @@ JavaScript
|
|||||||
JSON
|
JSON
|
||||||
Kategoriebeschreibung
|
Kategoriebeschreibung
|
||||||
Key
|
Key
|
||||||
|
Klarna
|
||||||
Kombitickets
|
Kombitickets
|
||||||
Kompatibilitätsmodus
|
Kompatibilitätsmodus
|
||||||
Konfigurations
|
Konfigurations
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,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: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-11-28 15:36+0000\n"
|
"PO-Revision-Date: 2023-11-28 15:36+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/"
|
||||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
|||||||
msgstr "Fortfahren"
|
msgstr "Fortfahren"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Zahlung wird bestätigt …"
|
msgstr "Zahlung wird bestätigt …"
|
||||||
|
|
||||||
@@ -160,15 +160,15 @@ msgstr "Bezahlte Bestellungen"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Gesamtumsatz"
|
msgstr "Gesamtumsatz"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Kontaktiere Stripe …"
|
msgstr "Kontaktiere Stripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Gesamt"
|
msgstr "Gesamt"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Kontaktiere deine Bank …"
|
msgstr "Kontaktiere deine Bank …"
|
||||||
|
|
||||||
@@ -530,45 +530,45 @@ msgstr "Check-in-QR-Code"
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Gruppe von Objekten"
|
msgstr "Gruppe von Objekten"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Text-Objekt"
|
msgstr "Text-Objekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "QR-Code-Bereich"
|
msgstr "QR-Code-Bereich"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Bildbereich"
|
msgstr "Bildbereich"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
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:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Objekt"
|
msgstr "Objekt"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Ticket-Design"
|
msgstr "Ticket-Design"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Speichern fehlgeschlagen."
|
msgstr "Speichern fehlgeschlagen."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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?"
|
||||||
@@ -603,40 +603,40 @@ msgstr ""
|
|||||||
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
||||||
"Hintergrund. Bitte wähle eine dunklere Farbe."
|
"Hintergrund. Bitte wähle eine dunklere Farbe."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Suchbegriff"
|
msgstr "Suchbegriff"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Keine"
|
msgstr "Keine"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Nur ausgewählte"
|
msgstr "Nur ausgewählte"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr "Gib eine Seitenzahl zwischen 1 und %(max)s ein."
|
msgstr "Gib eine Seitenzahl zwischen 1 und %(max)s ein."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr "Ungültige Seitenzahl."
|
msgstr "Ungültige Seitenzahl."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Intern einen anderen Namen verwenden"
|
msgstr "Intern einen anderen Namen verwenden"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
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:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Du hast ungespeicherte Änderungen!"
|
msgstr "Du hast ungespeicherte Änderungen!"
|
||||||
|
|
||||||
|
|||||||
@@ -167,6 +167,7 @@ JavaScript
|
|||||||
JSON
|
JSON
|
||||||
Kategoriebeschreibung
|
Kategoriebeschreibung
|
||||||
Key
|
Key
|
||||||
|
Klarna
|
||||||
Kombitickets
|
Kombitickets
|
||||||
Kompatibilitätsmodus
|
Kompatibilitätsmodus
|
||||||
Konfigurations
|
Konfigurations
|
||||||
|
|||||||
+972
-896
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 15:26+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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"
|
||||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -159,15 +159,15 @@ msgstr ""
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -515,44 +515,44 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -582,40 +582,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2019-10-03 19:00+0000\n"
|
"PO-Revision-Date: 2019-10-03 19:00+0000\n"
|
||||||
"Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n"
|
"Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n"
|
||||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -141,9 +141,9 @@ msgid "Continue"
|
|||||||
msgstr "Συνέχεια"
|
msgstr "Συνέχεια"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -165,15 +165,15 @@ msgstr "Πληρωμένες παραγγελίες"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Συνολικά κέρδη"
|
msgstr "Συνολικά κέρδη"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Επικοινωνία με το Stripe …"
|
msgstr "Επικοινωνία με το Stripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Σύνολο"
|
msgstr "Σύνολο"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Contacting Stripe …"
|
#| msgid "Contacting Stripe …"
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
@@ -566,46 +566,46 @@ msgid "The PDF background file could not be loaded for the following reason:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Το αρχείο φόντου PDF δεν ήταν δυνατό να φορτωθεί για τον ακόλουθο λόγο:"
|
"Το αρχείο φόντου PDF δεν ήταν δυνατό να φορτωθεί για τον ακόλουθο λόγο:"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Ομάδα αντικειμένων"
|
msgstr "Ομάδα αντικειμένων"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Αντικείμενο κειμένου"
|
msgstr "Αντικείμενο κειμένου"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "Περιοχή Barcode"
|
msgstr "Περιοχή Barcode"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
#, 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:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "Υποστηρίζεται από το Pretix"
|
msgstr "Υποστηρίζεται από το Pretix"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Αντικείμενο"
|
msgstr "Αντικείμενο"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Σχεδιασμός εισιτηρίων"
|
msgstr "Σχεδιασμός εισιτηρίων"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Η αποθήκευση απέτυχε."
|
msgstr "Η αποθήκευση απέτυχε."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
"Θέλετε πραγματικά να αφήσετε τον επεξεργαστή χωρίς να αποθηκεύσετε τις "
|
"Θέλετε πραγματικά να αφήσετε τον επεξεργαστή χωρίς να αποθηκεύσετε τις "
|
||||||
@@ -642,40 +642,40 @@ msgstr ""
|
|||||||
"Το χρώμα σας έχει κακή αντίθεση για κείμενο σε λευκό φόντο, επιλέξτε μια πιο "
|
"Το χρώμα σας έχει κακή αντίθεση για κείμενο σε λευκό φόντο, επιλέξτε μια πιο "
|
||||||
"σκούρα σκιά."
|
"σκούρα σκιά."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Όλα"
|
msgstr "Όλα"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Κανένας"
|
msgstr "Κανένας"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Χρησιμοποιήστε διαφορετικό όνομα εσωτερικά"
|
msgstr "Χρησιμοποιήστε διαφορετικό όνομα εσωτερικά"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Κάντε κλικ για να κλείσετε"
|
msgstr "Κάντε κλικ για να κλείσετε"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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"
|
||||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -159,15 +159,15 @@ msgstr ""
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -515,44 +515,44 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -582,40 +582,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
+3891
-3019
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-11-07 14:00+0000\n"
|
"PO-Revision-Date: 2023-11-07 14:00+0000\n"
|
||||||
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
|
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
|
||||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
|
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
|||||||
msgstr "Continuar"
|
msgstr "Continuar"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Confirmando el pago…"
|
msgstr "Confirmando el pago…"
|
||||||
|
|
||||||
@@ -162,15 +162,15 @@ msgstr "Órdenes pagadas"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Ingresos totales"
|
msgstr "Ingresos totales"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Contactando con Stripe…"
|
msgstr "Contactando con Stripe…"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Total"
|
msgstr "Total"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Contactando con el banco…"
|
msgstr "Contactando con el banco…"
|
||||||
|
|
||||||
@@ -535,46 +535,46 @@ 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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Grupo de objetos"
|
msgstr "Grupo de objetos"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Objeto de texto"
|
msgstr "Objeto de texto"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
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:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Área de imagen"
|
msgstr "Área de imagen"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
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:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Objeto"
|
msgstr "Objeto"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Diseño del ticket"
|
msgstr "Diseño del ticket"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "El guardado falló."
|
msgstr "El guardado falló."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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?"
|
||||||
|
|
||||||
@@ -608,40 +608,40 @@ msgstr ""
|
|||||||
"Tu color tiene mal contraste para un texto con fondo blanco, por favor, "
|
"Tu color tiene mal contraste para un texto con fondo blanco, por favor, "
|
||||||
"escoge un tono más oscuro."
|
"escoge un tono más oscuro."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Consultar búsqueda"
|
msgstr "Consultar búsqueda"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Ninguno"
|
msgstr "Ninguno"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Solamente seleccionados"
|
msgstr "Solamente seleccionados"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Usar un nombre diferente internamente"
|
msgstr "Usar un nombre diferente internamente"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Click para cerrar"
|
msgstr "Click para cerrar"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "¡Tienes cambios sin guardar!"
|
msgstr "¡Tienes cambios sin guardar!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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-"
|
||||||
@@ -141,9 +141,9 @@ msgid "Continue"
|
|||||||
msgstr "Jatka"
|
msgstr "Jatka"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Maksuasi vahvistetaan …"
|
msgstr "Maksuasi vahvistetaan …"
|
||||||
|
|
||||||
@@ -165,15 +165,15 @@ msgstr "Maksetut tilaukset"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Summa"
|
msgstr "Summa"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -538,46 +538,46 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Tekstiobjekti"
|
msgstr "Tekstiobjekti"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "Viivakoodialue"
|
msgstr "Viivakoodialue"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
#, 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:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Tallennus epäonnistui."
|
msgstr "Tallennus epäonnistui."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -607,40 +607,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Kaikki"
|
msgstr "Kaikki"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Käytä toista nimeä sisäisesti"
|
msgstr "Käytä toista nimeä sisäisesti"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Sulje klikkaamalla"
|
msgstr "Sulje klikkaamalla"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Sinulla on tallentamattomia muutoksia!"
|
msgstr "Sinulla on tallentamattomia muutoksia!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-09-11 10:00+0000\n"
|
"PO-Revision-Date: 2023-09-11 10:00+0000\n"
|
||||||
"Last-Translator: Ronan LE MEILLAT <ronan.le_meillat@highcanfly.club>\n"
|
"Last-Translator: Ronan LE MEILLAT <ronan.le_meillat@highcanfly.club>\n"
|
||||||
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
|||||||
msgstr "Continuer"
|
msgstr "Continuer"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Confirmation de votre paiement…"
|
msgstr "Confirmation de votre paiement…"
|
||||||
|
|
||||||
@@ -159,15 +159,15 @@ msgstr "Commandes payées"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Total des revenus"
|
msgstr "Total des revenus"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Communication avec Stripe …"
|
msgstr "Communication avec Stripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Total"
|
msgstr "Total"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Communication avec votre banque …"
|
msgstr "Communication avec votre banque …"
|
||||||
|
|
||||||
@@ -535,45 +535,45 @@ 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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Groupe d'objets"
|
msgstr "Groupe d'objets"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Objet texte"
|
msgstr "Objet texte"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "Zone de code-barres"
|
msgstr "Zone de code-barres"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Zone d'image"
|
msgstr "Zone d'image"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "Propulsé par pretix"
|
msgstr "Propulsé par pretix"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Objet"
|
msgstr "Objet"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Conception des billets"
|
msgstr "Conception des billets"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "L'enregistrement a échoué."
|
msgstr "L'enregistrement a échoué."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ?"
|
||||||
@@ -607,40 +607,40 @@ msgstr ""
|
|||||||
"Votre choix de couleur n'a pas un bon contraste avec du texte sur un fond "
|
"Votre choix de couleur n'a pas un bon contraste avec du texte sur un fond "
|
||||||
"blanc, SVP choisissez un ton plus sombre."
|
"blanc, SVP choisissez un ton plus sombre."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Requête de recherche"
|
msgstr "Requête de recherche"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Tous"
|
msgstr "Tous"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Aucun"
|
msgstr "Aucun"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Seuls les sélectionnés"
|
msgstr "Seuls les sélectionnés"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Utiliser un nom différent en interne"
|
msgstr "Utiliser un nom différent en interne"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Cliquez pour fermer"
|
msgstr "Cliquez pour fermer"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
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 !"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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-"
|
||||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
|||||||
msgstr "Continuar"
|
msgstr "Continuar"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Confirmando o pagamento…"
|
msgstr "Confirmando o pagamento…"
|
||||||
|
|
||||||
@@ -162,15 +162,15 @@ msgstr "Pedidos pagados"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Ingresos totais"
|
msgstr "Ingresos totais"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Contactando con Stripe…"
|
msgstr "Contactando con Stripe…"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Total"
|
msgstr "Total"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Contactando co banco…"
|
msgstr "Contactando co banco…"
|
||||||
|
|
||||||
@@ -538,45 +538,45 @@ msgstr "QR de validación"
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Grupo de obxectos"
|
msgstr "Grupo de obxectos"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Obxecto de texto"
|
msgstr "Obxecto de texto"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
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:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Área de imaxe"
|
msgstr "Área de imaxe"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "Desenvolto por Pretix"
|
msgstr "Desenvolto por Pretix"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Obxecto"
|
msgstr "Obxecto"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
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:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "O gardado fallou."
|
msgstr "O gardado fallou."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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?"
|
||||||
|
|
||||||
@@ -610,40 +610,40 @@ msgstr ""
|
|||||||
"A túa cor ten mal contraste para un texto con fondo branco. Por favor, "
|
"A túa cor ten mal contraste para un texto con fondo branco. Por favor, "
|
||||||
"escolle un ton máis escuro."
|
"escolle un ton máis escuro."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Consultar unha procura"
|
msgstr "Consultar unha procura"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Ningún"
|
msgstr "Ningún"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Soamente seleccionados"
|
msgstr "Soamente seleccionados"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Usar un nome diferente internamente"
|
msgstr "Usar un nome diferente internamente"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Click para cerrar"
|
msgstr "Click para cerrar"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Tes cambios sen gardar!"
|
msgstr "Tes cambios sen gardar!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+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/"
|
||||||
@@ -137,9 +137,9 @@ msgid "Continue"
|
|||||||
msgstr "המשך"
|
msgstr "המשך"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "מאמת את התשלום שלך…"
|
msgstr "מאמת את התשלום שלך…"
|
||||||
|
|
||||||
@@ -161,15 +161,15 @@ msgstr "הזמנות ששולמו"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "הכנסה כוללת"
|
msgstr "הכנסה כוללת"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "סה\"כ"
|
msgstr "סה\"כ"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "יוצר קשר עם הבנק שלך…"
|
msgstr "יוצר קשר עם הבנק שלך…"
|
||||||
|
|
||||||
@@ -523,44 +523,44 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -590,40 +590,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Automatically generated\n"
|
"Last-Translator: Automatically generated\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -159,15 +159,15 @@ msgstr ""
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -515,44 +515,44 @@ msgstr ""
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -582,40 +582,40 @@ msgid ""
|
|||||||
"darker shade."
|
"darker shade."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2020-01-24 08:00+0000\n"
|
"PO-Revision-Date: 2020-01-24 08:00+0000\n"
|
||||||
"Last-Translator: Prokaj Miklós <mixolid0@gmail.com>\n"
|
"Last-Translator: Prokaj Miklós <mixolid0@gmail.com>\n"
|
||||||
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix-"
|
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||||
@@ -141,9 +141,9 @@ msgid "Continue"
|
|||||||
msgstr "Folytatás"
|
msgstr "Folytatás"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "A fizetés megerősítése…"
|
msgstr "A fizetés megerősítése…"
|
||||||
|
|
||||||
@@ -165,15 +165,15 @@ msgstr "Kifizetett megrendelések"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Teljes bevétel"
|
msgstr "Teljes bevétel"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Kapcsolatfelvétel Stripe-pal…"
|
msgstr "Kapcsolatfelvétel Stripe-pal…"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Teljes"
|
msgstr "Teljes"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Kapcsolatfelvétel a bankjával…"
|
msgstr "Kapcsolatfelvétel a bankjával…"
|
||||||
|
|
||||||
@@ -558,46 +558,46 @@ msgstr "Check in QR"
|
|||||||
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 "A PDF háttér fájl nem tölthető be a következők miatt:"
|
msgstr "A PDF háttér fájl nem tölthető be a következők miatt:"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "tárgy csoport"
|
msgstr "tárgy csoport"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Szöveg"
|
msgstr "Szöveg"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "Vonalkód terület"
|
msgstr "Vonalkód terület"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Barcode area"
|
#| msgid "Barcode area"
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Vonalkód terület"
|
msgstr "Vonalkód terület"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "pretix által működtetett"
|
msgstr "pretix által működtetett"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "objektum"
|
msgstr "objektum"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Jegy design"
|
msgstr "Jegy design"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Mentés sikertelen."
|
msgstr "Mentés sikertelen."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
msgid "Error while uploading your PDF file, please try again."
|
msgid "Error while uploading your PDF file, please try again."
|
||||||
msgstr "Hiba a PDF fájl feltöltése közben, próbálja újra."
|
msgstr "Hiba a PDF fájl feltöltése közben, próbálja újra."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 "Biztosan ki akar lépni a szerkesztőből a változtatások mentése nélkül?"
|
msgstr "Biztosan ki akar lépni a szerkesztőből a változtatások mentése nélkül?"
|
||||||
|
|
||||||
@@ -630,40 +630,40 @@ msgstr ""
|
|||||||
"A választott színek kontrasztja elégtelen, kérjük válassz sötétebb "
|
"A választott színek kontrasztja elégtelen, kérjük válassz sötétebb "
|
||||||
"árnyalatot."
|
"árnyalatot."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Összes"
|
msgstr "Összes"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Semmi"
|
msgstr "Semmi"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Használj másik nevet"
|
msgstr "Használj másik nevet"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Bezárásért kattints"
|
msgstr "Bezárásért kattints"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Mentetlen változtatások!"
|
msgstr "Mentetlen változtatások!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-09-20 14:01+0000\n"
|
"PO-Revision-Date: 2023-09-20 14:01+0000\n"
|
||||||
"Last-Translator: Mahdia Aliyy <mahdlyy.k@gmail.com>\n"
|
"Last-Translator: Mahdia Aliyy <mahdlyy.k@gmail.com>\n"
|
||||||
"Language-Team: Indonesian <https://translate.pretix.eu/projects/pretix/"
|
"Language-Team: Indonesian <https://translate.pretix.eu/projects/pretix/"
|
||||||
@@ -140,9 +140,9 @@ msgid "Continue"
|
|||||||
msgstr "Lanjutkan"
|
msgstr "Lanjutkan"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Mengonfirmasi pembayaran Anda…"
|
msgstr "Mengonfirmasi pembayaran Anda…"
|
||||||
|
|
||||||
@@ -164,15 +164,15 @@ msgstr "Pesanan terbayar"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Total pendapatan"
|
msgstr "Total pendapatan"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Menghubungi Stripe…"
|
msgstr "Menghubungi Stripe…"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Total"
|
msgstr "Total"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Menghubungi bank Anda…"
|
msgstr "Menghubungi bank Anda…"
|
||||||
|
|
||||||
@@ -538,44 +538,44 @@ msgstr "QR masuk"
|
|||||||
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 "File latar belakang PDF tidak dapat dimuat karena alasan berikut:"
|
msgstr "File latar belakang PDF tidak dapat dimuat karena alasan berikut:"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Sekelompok objek"
|
msgstr "Sekelompok objek"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Objek teks"
|
msgstr "Objek teks"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "Area kode batang"
|
msgstr "Area kode batang"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Daerah gambar"
|
msgstr "Daerah gambar"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "Didukung oleh pretix"
|
msgstr "Didukung oleh pretix"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Obyek"
|
msgstr "Obyek"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Desain tiket"
|
msgstr "Desain tiket"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Gagal menyimpan."
|
msgstr "Gagal menyimpan."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
msgid "Error while uploading your PDF file, please try again."
|
msgid "Error while uploading your PDF file, please try again."
|
||||||
msgstr "Terjadi kesalahan saat mengunggah file PDF Anda, coba lagi."
|
msgstr "Terjadi kesalahan saat mengunggah file PDF Anda, coba lagi."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 ""
|
||||||
"Apakah Anda benar-benar ingin keluar dari editor tanpa menyimpan perubahan?"
|
"Apakah Anda benar-benar ingin keluar dari editor tanpa menyimpan perubahan?"
|
||||||
@@ -609,40 +609,40 @@ msgstr ""
|
|||||||
"Warna Anda memiliki kontras yang buruk untuk teks dengan latar belakang "
|
"Warna Anda memiliki kontras yang buruk untuk teks dengan latar belakang "
|
||||||
"putih, harap pilih warna yang lebih gelap."
|
"putih, harap pilih warna yang lebih gelap."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Permintaan pencarian"
|
msgstr "Permintaan pencarian"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Semua"
|
msgstr "Semua"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Tidak ada"
|
msgstr "Tidak ada"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Hanya dipilih"
|
msgstr "Hanya dipilih"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Gunakan nama yang berbeda secara internal"
|
msgstr "Gunakan nama yang berbeda secara internal"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Klik untuk menutup"
|
msgstr "Klik untuk menutup"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Anda memiliki perubahan yang belum disimpan!"
|
msgstr "Anda memiliki perubahan yang belum disimpan!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-05-18 01:00+0000\n"
|
"PO-Revision-Date: 2023-05-18 01:00+0000\n"
|
||||||
"Last-Translator: M C <micasadmail@gmail.com>\n"
|
"Last-Translator: M C <micasadmail@gmail.com>\n"
|
||||||
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
|
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
|||||||
msgstr "Continua"
|
msgstr "Continua"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "Stiamo processando il tuo pagamento …"
|
msgstr "Stiamo processando il tuo pagamento …"
|
||||||
|
|
||||||
@@ -162,15 +162,15 @@ msgstr "Ordini pagati"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "Ricavi totali"
|
msgstr "Ricavi totali"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "Sto contattando Stripe …"
|
msgstr "Sto contattando Stripe …"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "Totale"
|
msgstr "Totale"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "Sto contattando la tua banca …"
|
msgstr "Sto contattando la tua banca …"
|
||||||
|
|
||||||
@@ -535,44 +535,44 @@ msgstr "Check-in con QR"
|
|||||||
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 "Il file PDF di sfondo non può essere caricato per le seguenti ragioni:"
|
msgstr "Il file PDF di sfondo non può essere caricato per le seguenti ragioni:"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "Gruppo di oggetti"
|
msgstr "Gruppo di oggetti"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "Oggetto testo"
|
msgstr "Oggetto testo"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "Area codice a barra"
|
msgstr "Area codice a barra"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "Area immagini"
|
msgstr "Area immagini"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "Powered by Pretix"
|
msgstr "Powered by Pretix"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "Oggetto"
|
msgstr "Oggetto"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "Design biglietto"
|
msgstr "Design biglietto"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "Salvataggio fallito."
|
msgstr "Salvataggio fallito."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
msgid "Error while uploading your PDF file, please try again."
|
msgid "Error while uploading your PDF file, please try again."
|
||||||
msgstr "Errore durante il caricamento del tuo file PDF, prova di nuovo."
|
msgstr "Errore durante il caricamento del tuo file PDF, prova di nuovo."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 "Vuoi davvero abbandonare l'editor senza salvare le modifiche?"
|
msgstr "Vuoi davvero abbandonare l'editor senza salvare le modifiche?"
|
||||||
|
|
||||||
@@ -604,40 +604,40 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Il colore scelto non ha un buon contrasto, per favore scegline uno più scuro."
|
"Il colore scelto non ha un buon contrasto, per favore scegline uno più scuro."
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "Chiave di ricerca"
|
msgstr "Chiave di ricerca"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Tutto"
|
msgstr "Tutto"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Nessuno"
|
msgstr "Nessuno"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "Solo i selezionati"
|
msgstr "Solo i selezionati"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "Utilizza un nome diverso internamente"
|
msgstr "Utilizza un nome diverso internamente"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "Clicca per chiudere"
|
msgstr "Clicca per chiudere"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "Hai cambiamenti non salvati!"
|
msgstr "Hai cambiamenti non salvati!"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2022-03-15 00:00+0000\n"
|
"PO-Revision-Date: 2022-03-15 00:00+0000\n"
|
||||||
"Last-Translator: Yuriko Matsunami <y.matsunami@enobyte.com>\n"
|
"Last-Translator: Yuriko Matsunami <y.matsunami@enobyte.com>\n"
|
||||||
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
|
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
|||||||
msgstr "次へ"
|
msgstr "次へ"
|
||||||
|
|
||||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||||
msgid "Confirming your payment …"
|
msgid "Confirming your payment …"
|
||||||
msgstr "お支払い内容の確認"
|
msgstr "お支払い内容の確認"
|
||||||
|
|
||||||
@@ -162,15 +162,15 @@ msgstr "支払い済みの注文"
|
|||||||
msgid "Total revenue"
|
msgid "Total revenue"
|
||||||
msgstr "売上合計"
|
msgstr "売上合計"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||||
msgid "Contacting Stripe …"
|
msgid "Contacting Stripe …"
|
||||||
msgstr "お問い合わせはこちら"
|
msgstr "お問い合わせはこちら"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||||
msgid "Total"
|
msgid "Total"
|
||||||
msgstr "合計"
|
msgstr "合計"
|
||||||
|
|
||||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||||
msgid "Contacting your bank …"
|
msgid "Contacting your bank …"
|
||||||
msgstr "銀行へ問い合わせ中…"
|
msgstr "銀行へ問い合わせ中…"
|
||||||
|
|
||||||
@@ -537,44 +537,44 @@ msgstr "チェックイン用QRコード"
|
|||||||
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:648
|
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||||
msgid "Group of objects"
|
msgid "Group of objects"
|
||||||
msgstr "オブジェクトグループ"
|
msgstr "オブジェクトグループ"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||||
msgid "Text object"
|
msgid "Text object"
|
||||||
msgstr "テキストオブジェクト"
|
msgstr "テキストオブジェクト"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||||
msgid "Barcode area"
|
msgid "Barcode area"
|
||||||
msgstr "バーコードエリア"
|
msgstr "バーコードエリア"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||||
msgid "Image area"
|
msgid "Image area"
|
||||||
msgstr "画像エリア"
|
msgstr "画像エリア"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||||
msgid "Powered by pretix"
|
msgid "Powered by pretix"
|
||||||
msgstr "Pretixのイベントチケット売り場"
|
msgstr "Pretixのイベントチケット売り場"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||||
msgid "Object"
|
msgid "Object"
|
||||||
msgstr "オブジェクト"
|
msgstr "オブジェクト"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||||
msgid "Ticket design"
|
msgid "Ticket design"
|
||||||
msgstr "チケットのデザイン"
|
msgstr "チケットのデザイン"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||||
msgid "Saving failed."
|
msgid "Saving failed."
|
||||||
msgstr "保存できませんでした。"
|
msgstr "保存できませんでした。"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||||
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:1066
|
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||||
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 "変更内容を保存せずに編集を終了しますか?"
|
||||||
|
|
||||||
@@ -606,40 +606,40 @@ msgstr ""
|
|||||||
"このテキストカラーは白い背景とのコントラストがよくありません。暗い色に選び直"
|
"このテキストカラーは白い背景とのコントラストがよくありません。暗い色に選び直"
|
||||||
"してください。"
|
"してください。"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||||
msgid "Search query"
|
msgid "Search query"
|
||||||
msgstr "検索ワード"
|
msgstr "検索ワード"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "全"
|
msgstr "全"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "ない"
|
msgstr "ない"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||||
msgid "Selected only"
|
msgid "Selected only"
|
||||||
msgstr "選択したもののみ"
|
msgstr "選択したもののみ"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||||
msgid "Enter page number between 1 and %(max)s."
|
msgid "Enter page number between 1 and %(max)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||||
msgid "Invalid page number."
|
msgid "Invalid page number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||||
msgid "Use a different name internally"
|
msgid "Use a different name internally"
|
||||||
msgstr "内部で別の名前を使用してください"
|
msgstr "内部で別の名前を使用してください"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||||
msgid "Click to close"
|
msgid "Click to close"
|
||||||
msgstr "クリックして閉じる"
|
msgstr "クリックして閉じる"
|
||||||
|
|
||||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||||
msgid "You have unsaved changes!"
|
msgid "You have unsaved changes!"
|
||||||
msgstr "保存されていない変更があります!"
|
msgstr "保存されていない変更があります!"
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user