forked from CGM_Public/pretix_original
Compare commits
2 Commits
reldatetim
...
invoice-us
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc097f2c9e | ||
|
|
a83a6bb809 |
@@ -855,7 +855,7 @@ Generating new secrets
|
||||
|
||||
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/regenerate_secrets/
|
||||
|
||||
Triggers generation of new ``secret`` and ``ẁeb_secret`` attributes for both the order and all order positions.
|
||||
Triggers generation of new ``secret`` attributes for both the order and all order positions.
|
||||
|
||||
**Example request**:
|
||||
|
||||
@@ -886,7 +886,7 @@ Generating new secrets
|
||||
|
||||
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orderpositions/(id)/regenerate_secrets/
|
||||
|
||||
Triggers generation of a new ``secret`` and ``web_secret`` attribute for a single order position.
|
||||
Triggers generation of a new ``secret`` attribute for a single order position.
|
||||
|
||||
**Example request**:
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ dependencies = [
|
||||
"bleach==6.2.*",
|
||||
"celery==5.4.*",
|
||||
"chardet==5.2.*",
|
||||
"cryptography>=44.0.0",
|
||||
"cryptography>=3.4.2",
|
||||
"css-inline==0.14.*",
|
||||
"defusedcsv>=1.1.0",
|
||||
"Django[argon2]==4.2.*,>=4.2.15",
|
||||
@@ -72,9 +72,9 @@ dependencies = [
|
||||
"packaging",
|
||||
"paypalrestsdk==1.13.*",
|
||||
"paypal-checkout-serversdk==1.0.*",
|
||||
"PyJWT==2.10.*",
|
||||
"PyJWT==2.9.*",
|
||||
"phonenumberslite==8.13.*",
|
||||
"Pillow==11.1.*",
|
||||
"Pillow==11.0.*",
|
||||
"pretix-plugin-build",
|
||||
"protobuf==5.29.*",
|
||||
"psycopg2-binary",
|
||||
|
||||
@@ -94,7 +94,6 @@ ALL_LANGUAGES = [
|
||||
('el', _('Greek')),
|
||||
('id', _('Indonesian')),
|
||||
('it', _('Italian')),
|
||||
('ja', _('Japanese')),
|
||||
('lv', _('Latvian')),
|
||||
('nb-no', _('Norwegian Bokmål')),
|
||||
('pl', _('Polish')),
|
||||
|
||||
@@ -103,7 +103,7 @@ class SalesChannelMigrationMixin:
|
||||
]
|
||||
})
|
||||
|
||||
if set(data["sales_channels"]) == all_channels:
|
||||
if data["sales_channels"] == all_channels:
|
||||
data["all_sales_channels"] = True
|
||||
data["limit_sales_channels"] = []
|
||||
else:
|
||||
|
||||
@@ -437,8 +437,7 @@ class CloneEventSerializer(EventSerializer):
|
||||
testmode = validated_data.pop('testmode', None)
|
||||
has_subevents = validated_data.pop('has_subevents', None)
|
||||
tz = validated_data.pop('timezone', None)
|
||||
all_sales_channels = validated_data.pop('all_sales_channels', None)
|
||||
limit_sales_channels = validated_data.pop('limit_sales_channels', None)
|
||||
sales_channels = validated_data.pop('sales_channels', None)
|
||||
date_admission = validated_data.pop('date_admission', None)
|
||||
new_event = super().create({**validated_data, 'plugins': None})
|
||||
|
||||
@@ -451,9 +450,8 @@ class CloneEventSerializer(EventSerializer):
|
||||
new_event.is_public = is_public
|
||||
if testmode is not None:
|
||||
new_event.testmode = testmode
|
||||
if all_sales_channels is not None or limit_sales_channels is not None:
|
||||
new_event.all_sales_channels = all_sales_channels
|
||||
new_event.limit_sales_channels.set(limit_sales_channels)
|
||||
if sales_channels is not None:
|
||||
new_event.sales_channels = sales_channels
|
||||
if has_subevents is not None:
|
||||
new_event.has_subevents = has_subevents
|
||||
if has_subevents is not None:
|
||||
|
||||
@@ -619,7 +619,7 @@ class QuotaViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
def availability(self, request, *args, **kwargs):
|
||||
quota = self.get_object()
|
||||
|
||||
qa = QuotaAvailability(full_results=True)
|
||||
qa = QuotaAvailability()
|
||||
qa.queue(quota)
|
||||
qa.compute()
|
||||
avail = qa.results[quota]
|
||||
|
||||
@@ -602,7 +602,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
|
||||
order.status in (Order.STATUS_PAID, Order.STATUS_PENDING)
|
||||
and order.invoices.filter(is_cancellation=True).count() >= order.invoices.filter(is_cancellation=False).count()
|
||||
)
|
||||
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'True') or not invoice_qualified(order):
|
||||
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'user_paid', 'True') or not invoice_qualified(order):
|
||||
return Response(
|
||||
{'detail': _('You cannot generate an invoice for this order.')},
|
||||
status=status.HTTP_400_BAD_REQUEST
|
||||
@@ -647,8 +647,6 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
|
||||
order = self.get_object()
|
||||
order.secret = generate_secret()
|
||||
for op in order.all_positions.all():
|
||||
op.web_secret = generate_secret()
|
||||
op.save(update_fields=["web_secret"])
|
||||
assign_ticket_secret(
|
||||
request.event, op, force_invalidate=True, save=True
|
||||
)
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
# Generated by Django 4.2.17 on 2025-01-13 14:55
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("pretixbase", "0274_tax_codes"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="question",
|
||||
name="valid_number_max",
|
||||
field=models.DecimalField(decimal_places=6, max_digits=30, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="question",
|
||||
name="valid_number_min",
|
||||
field=models.DecimalField(decimal_places=6, max_digits=30, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1718,10 +1718,10 @@ class Question(LoggedModel):
|
||||
'Question', null=True, blank=True, on_delete=models.SET_NULL, related_name='dependent_questions'
|
||||
)
|
||||
dependency_values = MultiStringField(default=[])
|
||||
valid_number_min = models.DecimalField(decimal_places=6, max_digits=30, null=True, blank=True,
|
||||
valid_number_min = models.DecimalField(decimal_places=6, max_digits=16, null=True, blank=True,
|
||||
verbose_name=_('Minimum value'),
|
||||
help_text=_('Currently not supported in our apps and during check-in'))
|
||||
valid_number_max = models.DecimalField(decimal_places=6, max_digits=30, null=True, blank=True,
|
||||
valid_number_max = models.DecimalField(decimal_places=6, max_digits=16, null=True, blank=True,
|
||||
verbose_name=_('Maximum value'),
|
||||
help_text=_('Currently not supported in our apps and during check-in'))
|
||||
valid_date_min = models.DateField(null=True, blank=True,
|
||||
|
||||
@@ -1087,7 +1087,7 @@ class Order(LockModel, LoggedModel):
|
||||
|
||||
for i, op in enumerate(positions):
|
||||
if op.seat:
|
||||
if not op.seat.is_available(ignore_orderpos=op, sales_channel=self.sales_channel.identifier):
|
||||
if not op.seat.is_available(ignore_orderpos=op):
|
||||
raise Quota.QuotaExceededException(error_messages['seat_unavailable'].format(seat=op.seat))
|
||||
if force:
|
||||
continue
|
||||
|
||||
@@ -185,104 +185,43 @@ BEFORE_AFTER_CHOICE = (
|
||||
)
|
||||
|
||||
|
||||
reldatetimeparts = namedtuple('reldatetimeparts', (
|
||||
"status", # 0
|
||||
"absolute", # 1
|
||||
"rel_days_number", # 2
|
||||
"rel_mins_relationto", # 3
|
||||
"rel_days_timeofday", # 4
|
||||
"rel_mins_number", # 5
|
||||
"rel_days_relationto", # 6
|
||||
"rel_mins_relation", # 7
|
||||
"rel_days_relation" # 8
|
||||
))
|
||||
reldatetimeparts.indizes = reldatetimeparts(*range(9))
|
||||
|
||||
|
||||
class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
template_name = 'pretixbase/forms/widgets/reldatetime.html'
|
||||
parts = reldatetimeparts
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.status_choices = kwargs.pop('status_choices')
|
||||
base_choices = kwargs.pop('base_choices')
|
||||
widgets = reldatetimeparts(
|
||||
status=forms.RadioSelect(choices=self.status_choices),
|
||||
absolute=forms.DateTimeInput(
|
||||
widgets = (
|
||||
forms.RadioSelect(choices=self.status_choices),
|
||||
forms.DateTimeInput(
|
||||
attrs={'class': 'datetimepicker'}
|
||||
),
|
||||
rel_days_number=forms.NumberInput(),
|
||||
rel_mins_relationto=forms.Select(choices=base_choices),
|
||||
rel_days_timeofday=forms.TimeInput(attrs={'placeholder': _('Time'), 'class': 'timepickerfield'}),
|
||||
rel_mins_number=forms.NumberInput(),
|
||||
rel_days_relationto=forms.Select(choices=base_choices),
|
||||
rel_mins_relation=forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||
rel_days_relation=forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||
forms.NumberInput(),
|
||||
forms.Select(choices=base_choices),
|
||||
forms.TimeInput(attrs={'placeholder': _('Time'), 'class': 'timepickerfield'}),
|
||||
forms.NumberInput(),
|
||||
forms.Select(choices=base_choices),
|
||||
forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||
forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||
)
|
||||
super().__init__(widgets=widgets, *args, **kwargs)
|
||||
|
||||
def decompress(self, value):
|
||||
if isinstance(value, str):
|
||||
value = RelativeDateWrapper.from_string(value)
|
||||
if isinstance(value, reldatetimeparts):
|
||||
return value
|
||||
if not value:
|
||||
return reldatetimeparts(
|
||||
status="unset",
|
||||
absolute=None,
|
||||
rel_days_number=1,
|
||||
rel_mins_relationto="date_from",
|
||||
rel_days_timeofday=None,
|
||||
rel_mins_number=0,
|
||||
rel_days_relationto="date_from",
|
||||
rel_mins_relation="before",
|
||||
rel_days_relation="before"
|
||||
)
|
||||
return ['unset', None, 1, 'date_from', None, 0, "date_from", "before", "before"]
|
||||
elif isinstance(value.data, (datetime.datetime, datetime.date)):
|
||||
return reldatetimeparts(
|
||||
status="absolute",
|
||||
absolute=value.data,
|
||||
rel_days_number=1,
|
||||
rel_mins_relationto="date_from",
|
||||
rel_days_timeofday=None,
|
||||
rel_mins_number=0,
|
||||
rel_days_relationto="date_from",
|
||||
rel_mins_relation="before",
|
||||
rel_days_relation="before"
|
||||
)
|
||||
return ['absolute', value.data, 1, 'date_from', None, 0, "date_from", "before", "before"]
|
||||
elif value.data.minutes is not None:
|
||||
return reldatetimeparts(
|
||||
status="relative_minutes",
|
||||
absolute=None,
|
||||
rel_days_number=None,
|
||||
rel_mins_relationto=value.data.base_date_name,
|
||||
rel_days_timeofday=None,
|
||||
rel_mins_number=value.data.minutes,
|
||||
rel_days_relationto=value.data.base_date_name,
|
||||
rel_mins_relation="after" if value.data.is_after else "before",
|
||||
rel_days_relation="after" if value.data.is_after else "before"
|
||||
)
|
||||
return reldatetimeparts(
|
||||
status="relative",
|
||||
absolute=None,
|
||||
rel_days_number=value.data.days,
|
||||
rel_mins_relationto=value.data.base_date_name,
|
||||
rel_days_timeofday=value.data.time,
|
||||
rel_mins_number=0,
|
||||
rel_days_relationto=value.data.base_date_name,
|
||||
rel_mins_relation="after" if value.data.is_after else "before",
|
||||
rel_days_relation="after" if value.data.is_after else "before"
|
||||
)
|
||||
return ['relative_minutes', None, None, value.data.base_date_name, None, value.data.minutes, value.data.base_date_name,
|
||||
"after" if value.data.is_after else "before", "after" if value.data.is_after else "before"]
|
||||
return ['relative', None, value.data.days, value.data.base_date_name, value.data.time, 0, value.data.base_date_name,
|
||||
"after" if value.data.is_after else "before", "after" if value.data.is_after else "before"]
|
||||
|
||||
def get_context(self, name, value, attrs):
|
||||
ctx = super().get_context(name, value, attrs)
|
||||
ctx['required'] = self.status_choices[0][0] == 'unset'
|
||||
|
||||
ctx['rendered_subwidgets'] = self.parts(*(
|
||||
self._render(w['template_name'], {**ctx, 'widget': w})
|
||||
for w in ctx['widget']['subwidgets']
|
||||
))._asdict()
|
||||
|
||||
return ctx
|
||||
|
||||
|
||||
@@ -300,36 +239,36 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
choices = BASE_CHOICES
|
||||
if not kwargs.get('required', True):
|
||||
status_choices.insert(0, ('unset', _('Not set')))
|
||||
fields = reldatetimeparts(
|
||||
status=forms.ChoiceField(
|
||||
fields = (
|
||||
forms.ChoiceField(
|
||||
choices=status_choices,
|
||||
required=True
|
||||
),
|
||||
absolute=forms.DateTimeField(
|
||||
forms.DateTimeField(
|
||||
required=False
|
||||
),
|
||||
rel_days_number=forms.IntegerField(
|
||||
forms.IntegerField(
|
||||
required=False
|
||||
),
|
||||
rel_mins_relationto=forms.ChoiceField(
|
||||
forms.ChoiceField(
|
||||
choices=choices,
|
||||
required=False
|
||||
),
|
||||
rel_days_timeofday=forms.TimeField(
|
||||
forms.TimeField(
|
||||
required=False,
|
||||
),
|
||||
rel_mins_number=forms.IntegerField(
|
||||
forms.IntegerField(
|
||||
required=False
|
||||
),
|
||||
rel_days_relationto=forms.ChoiceField(
|
||||
forms.ChoiceField(
|
||||
choices=choices,
|
||||
required=False
|
||||
),
|
||||
rel_mins_relation=forms.ChoiceField(
|
||||
forms.ChoiceField(
|
||||
choices=BEFORE_AFTER_CHOICE,
|
||||
required=False
|
||||
),
|
||||
rel_days_relation=forms.ChoiceField(
|
||||
forms.ChoiceField(
|
||||
choices=BEFORE_AFTER_CHOICE,
|
||||
required=False
|
||||
),
|
||||
@@ -343,36 +282,32 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
)
|
||||
|
||||
def set_event(self, event):
|
||||
self.widget.widgets[reldatetimeparts.indizes.rel_days_relationto].choices = [
|
||||
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
||||
]
|
||||
self.widget.widgets[reldatetimeparts.indizes.rel_mins_relationto].choices = [
|
||||
self.widget.widgets[3].choices = [
|
||||
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
||||
]
|
||||
|
||||
def compress(self, data_list):
|
||||
if not data_list:
|
||||
return None
|
||||
data = reldatetimeparts(*data_list)
|
||||
if data.status == 'absolute':
|
||||
return RelativeDateWrapper(data.absolute)
|
||||
elif data.status == 'unset':
|
||||
if data_list[0] == 'absolute':
|
||||
return RelativeDateWrapper(data_list[1])
|
||||
elif data_list[0] == 'unset':
|
||||
return None
|
||||
elif data.status == 'relative_minutes':
|
||||
elif data_list[0] == 'relative_minutes':
|
||||
return RelativeDateWrapper(RelativeDate(
|
||||
days=0,
|
||||
base_date_name=data.rel_mins_relationto,
|
||||
base_date_name=data_list[3],
|
||||
time=None,
|
||||
minutes=data.rel_mins_number,
|
||||
is_after=data.rel_mins_relation == "after",
|
||||
minutes=data_list[5],
|
||||
is_after=data_list[7] == "after",
|
||||
))
|
||||
else:
|
||||
return RelativeDateWrapper(RelativeDate(
|
||||
days=data.rel_days_number,
|
||||
base_date_name=data.rel_days_relationto,
|
||||
time=data.rel_days_timeofday,
|
||||
days=data_list[2],
|
||||
base_date_name=data_list[6],
|
||||
time=data_list[4],
|
||||
minutes=None,
|
||||
is_after=data.rel_days_relation == "after",
|
||||
is_after=data_list[8] == "after",
|
||||
))
|
||||
|
||||
def has_changed(self, initial, data):
|
||||
@@ -381,41 +316,29 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
return super().has_changed(initial, data)
|
||||
|
||||
def clean(self, value):
|
||||
data = reldatetimeparts(*value)
|
||||
if data.status == 'absolute' and not data.absolute:
|
||||
if value[0] == 'absolute' and not value[1]:
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
elif data.status == 'relative' and (data.rel_days_number is None or not data.rel_days_relationto):
|
||||
elif value[0] == 'relative' and (value[2] is None or not value[3]):
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
elif data.status == 'relative_minutes' and (data.rel_mins_number is None or not data.rel_mins_relationto):
|
||||
elif value[0] == 'relative_minutes' and (value[5] is None or not value[3]):
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
|
||||
return super().clean(value)
|
||||
|
||||
|
||||
reldateparts = namedtuple('reldateparts', (
|
||||
"status", # 0
|
||||
"absolute", # 1
|
||||
"rel_days_number", # 2
|
||||
"rel_days_relationto", # 3
|
||||
"rel_days_relation", # 4
|
||||
))
|
||||
reldateparts.indizes = reldateparts(*range(5))
|
||||
|
||||
|
||||
class RelativeDateWidget(RelativeDateTimeWidget):
|
||||
template_name = 'pretixbase/forms/widgets/reldate.html'
|
||||
parts = reldateparts
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.status_choices = kwargs.pop('status_choices')
|
||||
widgets = reldateparts(
|
||||
status=forms.RadioSelect(choices=self.status_choices),
|
||||
absolute=forms.DateInput(
|
||||
widgets = (
|
||||
forms.RadioSelect(choices=self.status_choices),
|
||||
forms.DateInput(
|
||||
attrs={'class': 'datepickerfield'}
|
||||
),
|
||||
rel_days_number=forms.NumberInput(),
|
||||
rel_days_relationto=forms.Select(choices=kwargs.pop('base_choices')),
|
||||
rel_days_relation=forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||
forms.NumberInput(),
|
||||
forms.Select(choices=kwargs.pop('base_choices')),
|
||||
forms.Select(choices=BEFORE_AFTER_CHOICE),
|
||||
)
|
||||
forms.MultiWidget.__init__(self, widgets=widgets, *args, **kwargs)
|
||||
|
||||
@@ -423,30 +346,10 @@ class RelativeDateWidget(RelativeDateTimeWidget):
|
||||
if isinstance(value, str):
|
||||
value = RelativeDateWrapper.from_string(value)
|
||||
if not value:
|
||||
return reldateparts(
|
||||
status="unset",
|
||||
absolute=None,
|
||||
rel_days_number=1,
|
||||
rel_days_relationto="date_from",
|
||||
rel_days_relation="before"
|
||||
)
|
||||
if isinstance(value, reldateparts):
|
||||
return value
|
||||
return ['unset', None, 1, 'date_from', 'before']
|
||||
elif isinstance(value.data, (datetime.datetime, datetime.date)):
|
||||
return reldateparts(
|
||||
status="absolute",
|
||||
absolute=value.data,
|
||||
rel_days_number=1,
|
||||
rel_days_relationto="date_from",
|
||||
rel_days_relation="before"
|
||||
)
|
||||
return reldateparts(
|
||||
status="relative",
|
||||
absolute=None,
|
||||
rel_days_number=value.data.days,
|
||||
rel_days_relationto=value.data.base_date_name,
|
||||
rel_days_relation="after" if value.data.is_after else "before"
|
||||
)
|
||||
return ['absolute', value.data, 1, 'date_from', 'before']
|
||||
return ['relative', None, value.data.days, value.data.base_date_name, "after" if value.data.is_after else "before"]
|
||||
|
||||
|
||||
class RelativeDateField(RelativeDateTimeField):
|
||||
@@ -458,22 +361,22 @@ class RelativeDateField(RelativeDateTimeField):
|
||||
]
|
||||
if not kwargs.get('required', True):
|
||||
status_choices.insert(0, ('unset', _('Not set')))
|
||||
fields = reldateparts(
|
||||
status=forms.ChoiceField(
|
||||
fields = (
|
||||
forms.ChoiceField(
|
||||
choices=status_choices,
|
||||
required=True
|
||||
),
|
||||
absolute=forms.DateField(
|
||||
forms.DateField(
|
||||
required=False
|
||||
),
|
||||
rel_days_number=forms.IntegerField(
|
||||
forms.IntegerField(
|
||||
required=False
|
||||
),
|
||||
rel_days_relationto=forms.ChoiceField(
|
||||
forms.ChoiceField(
|
||||
choices=BASE_CHOICES,
|
||||
required=False
|
||||
),
|
||||
rel_days_relation=forms.ChoiceField(
|
||||
forms.ChoiceField(
|
||||
choices=BEFORE_AFTER_CHOICE,
|
||||
required=False
|
||||
),
|
||||
@@ -484,35 +387,28 @@ class RelativeDateField(RelativeDateTimeField):
|
||||
self, fields=fields, require_all_fields=False, *args, **kwargs
|
||||
)
|
||||
|
||||
def set_event(self, event):
|
||||
self.widget.widgets[reldateparts.indizes.rel_days_relationto].choices = [
|
||||
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
||||
]
|
||||
|
||||
def compress(self, data_list):
|
||||
if not data_list:
|
||||
return None
|
||||
data = reldateparts(*data_list)
|
||||
if data.status == 'absolute':
|
||||
return RelativeDateWrapper(data.absolute)
|
||||
elif data.status == 'unset':
|
||||
if data_list[0] == 'absolute':
|
||||
return RelativeDateWrapper(data_list[1])
|
||||
elif data_list[0] == 'unset':
|
||||
return None
|
||||
else:
|
||||
return RelativeDateWrapper(RelativeDate(
|
||||
days=data.rel_days_number,
|
||||
base_date_name=data.rel_days_relationto,
|
||||
days=data_list[2],
|
||||
base_date_name=data_list[3],
|
||||
time=None, minutes=None,
|
||||
is_after=data.rel_days_relation == "after"
|
||||
is_after=data_list[4] == "after"
|
||||
))
|
||||
|
||||
def clean(self, value):
|
||||
data = reldateparts(*value)
|
||||
if data.status == 'absolute' and not data.absolute:
|
||||
if value[0] == 'absolute' and not value[1]:
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
elif data.status == 'relative' and (data.rel_days_number is None or not data.rel_days_relationto):
|
||||
elif value[0] == 'relative' and (value[2] is None or not value[3]):
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
|
||||
return forms.MultiValueField.clean(self, value)
|
||||
return super().clean(value)
|
||||
|
||||
|
||||
class ModelRelativeDateTimeField(models.CharField):
|
||||
|
||||
@@ -2425,8 +2425,6 @@ class OrderChangeManager:
|
||||
elif isinstance(op, self.SplitOperation):
|
||||
split_positions.append(op.position)
|
||||
elif isinstance(op, self.RegenerateSecretOperation):
|
||||
op.position.web_secret = generate_secret()
|
||||
op.position.save(update_fields=["web_secret"])
|
||||
assign_ticket_secret(
|
||||
event=self.event, position=op.position, force_invalidate=True, save=True
|
||||
)
|
||||
@@ -2533,7 +2531,6 @@ class OrderChangeManager:
|
||||
'new_order': split_order.code,
|
||||
})
|
||||
op.order = split_order
|
||||
op.web_secret = generate_secret()
|
||||
assign_ticket_secret(
|
||||
self.event, position=op, force_invalidate=True,
|
||||
)
|
||||
|
||||
@@ -1040,6 +1040,7 @@ DEFAULTS = {
|
||||
('False', _('Do not generate invoices')),
|
||||
('admin', _('Only manually in admin panel')),
|
||||
('user', _('Automatically on user request')),
|
||||
('user_paid', _('Automatically on user request for paid orders')),
|
||||
('True', _('Automatically for all created orders')),
|
||||
('paid', _('Automatically on payment or when required by payment method')),
|
||||
),
|
||||
@@ -1052,6 +1053,7 @@ DEFAULTS = {
|
||||
('paid', _('Automatically after payment or when required by payment method')),
|
||||
('True', _('Automatically before payment for all created orders')),
|
||||
('user', _('Automatically on user request')),
|
||||
('user_paid', _('Automatically on user request for paid orders')),
|
||||
('admin', _('Only manually in admin panel')),
|
||||
),
|
||||
help_text=_("Invoices will never be automatically generated for free orders.")
|
||||
@@ -3557,8 +3559,8 @@ PERSON_NAME_SCHEMES = OrderedDict([
|
||||
str(p) for p in [d.get('family_name', ''), d.get('given_name', '')] if p
|
||||
),
|
||||
'sample': {
|
||||
'family_name': '孫',
|
||||
'given_name': '文',
|
||||
'given_name': '泽东',
|
||||
'family_name': '毛',
|
||||
'_scheme': 'family_nospace_given',
|
||||
},
|
||||
}),
|
||||
@@ -3609,8 +3611,8 @@ PERSON_NAME_SCHEMES = OrderedDict([
|
||||
'concatenation': lambda d: str(d.get('full_name', '')),
|
||||
'concatenation_all_components': lambda d: str(d.get('full_name', '')) + " (" + d.get('latin_transcription', '') + ")",
|
||||
'sample': {
|
||||
'full_name': '山田花子',
|
||||
'latin_transcription': 'Yamada Hanako',
|
||||
'full_name': '庄司',
|
||||
'latin_transcription': 'Shōji',
|
||||
'_scheme': 'full_transcription',
|
||||
},
|
||||
}),
|
||||
@@ -3701,7 +3703,6 @@ COUNTRIES_WITH_STATE_IN_ADDRESS = {
|
||||
'BR': (['State'], 'short'),
|
||||
'CA': (['Province', 'Territory'], 'short'),
|
||||
# 'CN': (['Province', 'Autonomous region', 'Munincipality'], 'long'),
|
||||
'JP': (['Prefecture'], 'long'),
|
||||
'MY': (['State', 'Federal territory'], 'long'),
|
||||
'MX': (['State', 'Federal district'], 'short'),
|
||||
'US': (['State', 'Outlying area', 'District'], 'short'),
|
||||
|
||||
@@ -9,11 +9,12 @@
|
||||
{{ selopt.label }}
|
||||
</label>
|
||||
{% if selopt.value == "absolute" %}
|
||||
{{ rendered_subwidgets.absolute }}
|
||||
{% include widget.subwidgets.1.template_name with widget=widget.subwidgets.1 %}
|
||||
{% elif selopt.value == "relative" %}
|
||||
{% blocktrans trimmed with number=rendered_subwidgets.rel_days_number relation=rendered_subwidgets.rel_days_relation relation_to=rendered_subwidgets.rel_days_relationto %}
|
||||
{{ number }} days {{ relation }} {{ relation_to }}
|
||||
{% endblocktrans %}
|
||||
{% include widget.subwidgets.2.template_name with widget=widget.subwidgets.2 %}
|
||||
{% trans "days" %}
|
||||
{% include widget.subwidgets.4.template_name with widget=widget.subwidgets.4 %}
|
||||
{% include widget.subwidgets.3.template_name with widget=widget.subwidgets.3 %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
@@ -9,15 +9,19 @@
|
||||
{{ selopt.label }}
|
||||
</label>
|
||||
{% if selopt.value == "absolute" %}
|
||||
{{ rendered_subwidgets.absolute }}
|
||||
{% include widget.subwidgets.1.template_name with widget=widget.subwidgets.1 %}
|
||||
{% elif selopt.value == "relative_minutes" %}
|
||||
{% blocktrans trimmed with number=rendered_subwidgets.rel_mins_number relation=rendered_subwidgets.rel_mins_relation relation_to=rendered_subwidgets.rel_mins_relationto %}
|
||||
{{ number }} minutes {{ relation }} {{ relation_to }}
|
||||
{% endblocktrans %}
|
||||
{% include widget.subwidgets.5.template_name with widget=widget.subwidgets.5 %}
|
||||
{% trans "minutes" %}
|
||||
{% include widget.subwidgets.7.template_name with widget=widget.subwidgets.7 %}
|
||||
{% include widget.subwidgets.3.template_name with widget=widget.subwidgets.3 %}
|
||||
{% elif selopt.value == "relative" %}
|
||||
{% blocktrans trimmed with number=rendered_subwidgets.rel_days_number relation=rendered_subwidgets.rel_days_relation relation_to=rendered_subwidgets.rel_days_relationto time_of_day=rendered_subwidgets.rel_days_timeofday %}
|
||||
{{ number }} days {{ relation }} {{ relation_to }} at {{ time_of_day }}
|
||||
{% endblocktrans %}
|
||||
{% include widget.subwidgets.2.template_name with widget=widget.subwidgets.2 %}
|
||||
{% trans "days" %}
|
||||
{% include widget.subwidgets.8.template_name with widget=widget.subwidgets.8 %}
|
||||
{% include widget.subwidgets.6.template_name with widget=widget.subwidgets.6 %}
|
||||
{% trans "at" %}
|
||||
{% include widget.subwidgets.4.template_name with widget=widget.subwidgets.4 %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
@@ -490,9 +490,7 @@ class OrderPositionChangeForm(forms.Form):
|
||||
)
|
||||
operation_secret = forms.BooleanField(
|
||||
required=False,
|
||||
label=_('Generate a new secret'),
|
||||
help_text=_('This affects both the ticket secret (often used as a QR code) as well as the link used to '
|
||||
'individually access the ticket.')
|
||||
label=_('Generate a new secret')
|
||||
)
|
||||
operation_cancel = forms.BooleanField(
|
||||
required=False,
|
||||
|
||||
@@ -479,7 +479,7 @@ class OrderView(EventPermissionRequiredMixin, DetailView):
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
|
||||
self.request.event.settings.invoice_generate in ('admin', 'user', 'paid', 'True')
|
||||
self.request.event.settings.invoice_generate in ('admin', 'user', 'paid', 'user_paid', 'True')
|
||||
) and self.order.status in (Order.STATUS_PAID, Order.STATUS_PENDING) and (
|
||||
not self.order.invoices.exists()
|
||||
or self.order.invoices.filter(is_cancellation=True).count() >= self.order.invoices.filter(is_cancellation=False).count()
|
||||
@@ -1584,7 +1584,7 @@ class OrderInvoiceCreate(OrderView):
|
||||
order.status in (Order.STATUS_PAID, Order.STATUS_PENDING)
|
||||
and order.invoices.filter(is_cancellation=True).count() >= order.invoices.filter(is_cancellation=False).count()
|
||||
)
|
||||
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'True') or not invoice_qualified(order):
|
||||
if self.request.event.settings.get('invoice_generate') not in ('admin', 'user', 'paid', 'user_paid', 'True') or not invoice_qualified(order):
|
||||
messages.error(self.request, _('You cannot generate an invoice for this order.'))
|
||||
elif has_inv:
|
||||
messages.error(self.request, _('An invoice for this order already exists.'))
|
||||
@@ -2241,8 +2241,6 @@ class OrderContactChange(OrderView):
|
||||
changed = True
|
||||
self.order.secret = generate_secret()
|
||||
for op in self.order.all_positions.all():
|
||||
op.web_secret = generate_secret()
|
||||
op.save(update_fields=["web_secret"])
|
||||
assign_ticket_secret(
|
||||
self.request.event, position=op, force_invalidate=True, save=True
|
||||
)
|
||||
|
||||
@@ -4,8 +4,8 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-14 09:56+0000\n"
|
||||
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
|
||||
"PO-Revision-Date: 2024-11-04 13:44+0000\n"
|
||||
"Last-Translator: Katrine Tella <ktl@hjoerring.dk>\n"
|
||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/da/"
|
||||
">\n"
|
||||
"Language: da\n"
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.8.1\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -20841,7 +20841,7 @@ msgstr "Nej, gå tilbage"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/approve.html:25
|
||||
msgid "Yes, approve order"
|
||||
msgstr "Ja, godkend bestilling"
|
||||
msgstr "Ja, annullér bestilling"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/cancel.html:6
|
||||
#: pretix/control/templates/pretixcontrol/order/cancel.html:10
|
||||
|
||||
@@ -5,8 +5,8 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-10 10:00+0000\n"
|
||||
"Last-Translator: Martin Gross <gross@rami.io>\n"
|
||||
"PO-Revision-Date: 2024-12-16 16:15+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/de/"
|
||||
">\n"
|
||||
"Language: de\n"
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.8.4\n"
|
||||
"X-Poedit-Bookmarks: -1,-1,904,-1,-1,-1,-1,-1,-1,-1\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
@@ -19542,7 +19542,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Wenn Sie komplexere Funktionen wie zusätzliche Produkte, Produktvarianten "
|
||||
"oder freie Kontingentstrukturen nutzen wollen, können Sie dies später über "
|
||||
"den Konfigurationsbereich „Produkte“ in der linken Navigationsleiste tun. "
|
||||
"den Konfigurationsbereich \"Produkte\" in der linken Navigationsleiste tun. "
|
||||
"Keine Sorge, alles was Sie hier eingeben, können Sie später noch ändern."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:132
|
||||
@@ -32366,7 +32366,7 @@ msgstr "Wir versuchen nun, diese Zusatzprodukte für Sie zu buchen!"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:28
|
||||
msgid "Additional options for"
|
||||
msgstr "Zusätzliche Optionen für"
|
||||
msgstr "Zusätzliche Einstellungen für"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:64
|
||||
msgid "More recommendations"
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-10 10:00+0000\n"
|
||||
"Last-Translator: Martin Gross <gross@rami.io>\n"
|
||||
"PO-Revision-Date: 2024-12-16 16:28+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
|
||||
"pretix/pretix/de_Informal/>\n"
|
||||
"Language: de_Informal\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.8.4\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -19511,7 +19511,7 @@ msgstr ""
|
||||
"Wenn du komplexere Funktionen wie zusätzliche Produkte, Produktvarianten "
|
||||
"oder freie Kontingentstrukturen nutzen willst, kannst du dies später über "
|
||||
"den Konfigurationsbereich \"Produkte\" in der linken Navigationsleiste tun. "
|
||||
"Keine Sorge, alles was du hier eingibst, kannst du später noch ändern."
|
||||
"Keine Sorge, alles was du hier gibst, kannst du später noch ändern."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:132
|
||||
#: pretix/control/views/event.py:357
|
||||
@@ -19524,7 +19524,7 @@ msgid ""
|
||||
"your event, but if you're in a hurry and want to get started quickly, here's "
|
||||
"a short version:"
|
||||
msgstr ""
|
||||
"Wir empfehlen, dass du dir die Zeit nimmst und die Einstellungen deiner "
|
||||
"Wir empfehlen, dass du dich die Zeit nimmst und die Einstellungen deiner "
|
||||
"Veranstaltungen in Ruhe durchgehst. Wenn du aber schnell loslegen willst, "
|
||||
"ist hier die Kurzversion:"
|
||||
|
||||
@@ -32309,7 +32309,7 @@ msgstr "Wir versuchen nun, diese Zusatzprodukte für dich zu buchen!"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:28
|
||||
msgid "Additional options for"
|
||||
msgstr "Zusätzliche Optionen für"
|
||||
msgstr "Zusätzliche Einstellungen für"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:64
|
||||
msgid "More recommendations"
|
||||
|
||||
@@ -8,16 +8,16 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2024-12-22 00:00+0000\n"
|
||||
"Last-Translator: Dimitris Tsimpidis <tsimpidisd@gmail.com>\n"
|
||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/>"
|
||||
"\n"
|
||||
"PO-Revision-Date: 2024-05-31 15:52+0000\n"
|
||||
"Last-Translator: danijossnet <danijoss@yahoo.com>\n"
|
||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/"
|
||||
">\n"
|
||||
"Language: el\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.5.5\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -36881,8 +36881,8 @@ msgid ""
|
||||
"If you're looking to configure this installation, please <a %(a_attr)s>head "
|
||||
"over here</a>."
|
||||
msgstr ""
|
||||
"Αν θέλετε να διαμορφώσετε αυτήν την εγκατάσταση, παρακαλούμε να <a %(a_attr)"
|
||||
"s>κατευθυνθείτε εδώ</a>."
|
||||
"Αν θέλετε να διαμορφώσετε αυτήν την εγκατάσταση, παρακαλούμε να "
|
||||
"%(a_attr)sκατευθυνθείτε εδώ</a>."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/index.html:24
|
||||
msgid "Enjoy!"
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2024-12-22 00:00+0000\n"
|
||||
"Last-Translator: Dimitris Tsimpidis <tsimpidisd@gmail.com>\n"
|
||||
"PO-Revision-Date: 2019-10-03 19:00+0000\n"
|
||||
"Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n"
|
||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
"el/>\n"
|
||||
"Language: el\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 3.5.1\n"
|
||||
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||
@@ -31,7 +31,7 @@ msgstr "Σχόλιο:"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:34
|
||||
msgid "PayPal"
|
||||
msgstr "PayPal"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
|
||||
msgid "Venmo"
|
||||
@@ -64,7 +64,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
|
||||
msgid "SEPA Direct Debit"
|
||||
msgstr "Τραπεζική μεταφορά"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:43
|
||||
msgid "Bancontact"
|
||||
@@ -79,8 +79,10 @@ msgid "SOFORT"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
|
||||
#, fuzzy
|
||||
#| msgid "Yes"
|
||||
msgid "eps"
|
||||
msgstr "EPS"
|
||||
msgstr "Ναι"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
|
||||
msgid "MyBank"
|
||||
@@ -145,11 +147,11 @@ msgstr "Συνέχεια"
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:317
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:341
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Επιβεβαίωση πληρωμής…"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:254
|
||||
msgid "Payment method unavailable"
|
||||
msgstr "Μη διαθέσιμος τρόπος πληρωμής"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
|
||||
@@ -174,8 +176,10 @@ msgid "Total"
|
||||
msgstr "Σύνολο"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:291
|
||||
#, fuzzy
|
||||
#| msgid "Contacting Stripe …"
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Επικοινωνία με την τράπεζα …"
|
||||
msgstr "Επικοινωνία με το Stripe …"
|
||||
|
||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:30
|
||||
msgid "Select a check-in list"
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-04 19:00+0000\n"
|
||||
"Last-Translator: Hector <hector@demandaeventos.es>\n"
|
||||
"PO-Revision-Date: 2024-12-17 18:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"es/>\n"
|
||||
"Language: es\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.8.4\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -121,11 +121,11 @@ msgstr "Ruso"
|
||||
|
||||
#: pretix/_base_settings.py:104
|
||||
msgid "Slovak"
|
||||
msgstr "Eslovaco"
|
||||
msgstr "eslovaco"
|
||||
|
||||
#: pretix/_base_settings.py:105
|
||||
msgid "Swedish"
|
||||
msgstr "Sueco"
|
||||
msgstr "sueco"
|
||||
|
||||
#: pretix/_base_settings.py:106
|
||||
msgid "Spanish"
|
||||
@@ -162,38 +162,37 @@ msgstr "pretixSCAN (solo en línea, sin sincronización de pedidos)"
|
||||
|
||||
#: pretix/api/models.py:39 pretix/base/models/customers.py:402
|
||||
msgid "Application name"
|
||||
msgstr "Nombre de aplicación"
|
||||
msgstr "Nombre de Aplicación"
|
||||
|
||||
#: pretix/api/models.py:42 pretix/base/models/customers.py:421
|
||||
msgid "Redirection URIs"
|
||||
msgstr "URI de redirección"
|
||||
msgstr "URI de Redirección"
|
||||
|
||||
#: pretix/api/models.py:43 pretix/base/models/customers.py:422
|
||||
msgid "Allowed URIs list, space separated"
|
||||
msgstr "Lista de URIs permitidas, separadas por espacio"
|
||||
msgstr "Lista de URI permitida, separada por espacio"
|
||||
|
||||
#: pretix/api/models.py:47
|
||||
msgid "Allowed Post Logout URIs list, space separated"
|
||||
msgstr ""
|
||||
"Lista de URIs después del cierre de sesión permitidas, separadas por espacios"
|
||||
msgstr "Lista de URI permitidas, separadas por espacios"
|
||||
|
||||
#: pretix/api/models.py:51 pretix/base/models/customers.py:406
|
||||
#: pretix/plugins/paypal/payment.py:113 pretix/plugins/paypal2/payment.py:110
|
||||
msgid "Client ID"
|
||||
msgstr "ID de cliente"
|
||||
msgstr "ID Cliente"
|
||||
|
||||
#: pretix/api/models.py:55
|
||||
msgid "Client secret"
|
||||
msgstr "Secreto de cliente"
|
||||
msgstr "Clave Secreta"
|
||||
|
||||
#: pretix/api/models.py:116
|
||||
msgid "Enable webhook"
|
||||
msgstr "Habilitar webhooks"
|
||||
msgstr "Habilitar webhook"
|
||||
|
||||
#: pretix/api/models.py:117
|
||||
#: pretix/control/templates/pretixcontrol/organizers/webhooks.html:36
|
||||
msgid "Target URL"
|
||||
msgstr "URL de destino"
|
||||
msgstr "URL destino"
|
||||
|
||||
#: pretix/api/models.py:118 pretix/base/models/devices.py:122
|
||||
#: pretix/base/models/organizer.py:286
|
||||
@@ -221,7 +220,7 @@ msgstr "Comentario"
|
||||
|
||||
#: pretix/api/serializers/cart.py:168 pretix/api/serializers/order.py:1384
|
||||
msgid "The product \"{}\" is not assigned to a quota."
|
||||
msgstr "El producto \"{}\" no está asignado a una cuota."
|
||||
msgstr "El producto \"{}\" no tiene asignada una cuota."
|
||||
|
||||
#: pretix/api/serializers/checkin.py:65 pretix/base/models/event.py:1667
|
||||
#: pretix/base/models/items.py:1905 pretix/base/models/items.py:2163
|
||||
@@ -266,11 +265,11 @@ msgstr "Plugin restringido: '{name}'."
|
||||
#: pretix/api/serializers/item.py:359
|
||||
#, python-brace-format
|
||||
msgid "Item meta data property '{name}' does not exist."
|
||||
msgstr "La propiedad '{name}' de metadatos del elemento no existe."
|
||||
msgstr "Los metadatos de propiedad '{name}' no existe."
|
||||
|
||||
#: pretix/api/serializers/item.py:207 pretix/control/forms/item.py:1269
|
||||
msgid "The bundled item must not be the same item as the bundling one."
|
||||
msgstr "El artículo agrupado no debe ser el mismo que el del paquete."
|
||||
msgstr "El artículo en el paquete no debe ser el paquete."
|
||||
|
||||
#: pretix/api/serializers/item.py:210 pretix/control/forms/item.py:1271
|
||||
msgid "The bundled item must not have bundles on its own."
|
||||
@@ -281,8 +280,8 @@ msgid ""
|
||||
"Updating add-ons, bundles, or variations via PATCH/PUT is not supported. "
|
||||
"Please use the dedicated nested endpoint."
|
||||
msgstr ""
|
||||
"Actualizar los add-ons, paquetes o variaciones por medio de PATCH/PUT no "
|
||||
"está soportado. Por favor, use el endpoint dedicado para esta finalidad."
|
||||
"Actualizando los add-ons, paquetes o variaciones por medio de PATCH/PUT no "
|
||||
"es soportado. Use un punto dedicado para esta finalidad."
|
||||
|
||||
#: pretix/api/serializers/item.py:306
|
||||
msgid "Only admission products can currently be personalized."
|
||||
@@ -305,13 +304,12 @@ msgid ""
|
||||
"Updating options via PATCH/PUT is not supported. Please use the dedicated "
|
||||
"nested endpoint."
|
||||
msgstr ""
|
||||
"Actualizando las opciones por medio de PATCH/PUT no está soportado. Por "
|
||||
"favor, use el endpoint dedicado para esta finalidad."
|
||||
"Actualizando las opciones por medio de PATCH/PUT no es soportado. Use un "
|
||||
"punto dedicado para esta finalidad."
|
||||
|
||||
#: pretix/api/serializers/item.py:533 pretix/control/forms/item.py:177
|
||||
msgid "Question cannot depend on a question asked during check-in."
|
||||
msgstr ""
|
||||
"La pregunta no puede depender de otra pregunta realizada durante el check-in."
|
||||
msgstr "La pregunta no debe depender de otra realizada durante el check-in."
|
||||
|
||||
#: pretix/api/serializers/item.py:538 pretix/control/forms/item.py:182
|
||||
msgid "Circular dependency between questions detected."
|
||||
@@ -319,7 +317,7 @@ msgstr "Se ha detectado una dependencia circular entre las preguntas."
|
||||
|
||||
#: pretix/api/serializers/item.py:543 pretix/control/forms/item.py:191
|
||||
msgid "This type of question cannot be asked during check-in."
|
||||
msgstr "Este tipo de pregunta no se puede preguntar durante el check-in."
|
||||
msgstr "Este tipo de pregunta no se puede hacer durante el check-in."
|
||||
|
||||
#: pretix/api/serializers/item.py:546 pretix/control/forms/item.py:199
|
||||
msgid "This type of question cannot be shown during check-in."
|
||||
@@ -330,19 +328,19 @@ msgid ""
|
||||
"A medium with the same identifier and type already exists in your organizer "
|
||||
"account."
|
||||
msgstr ""
|
||||
"Un medio con el mismo identificador y tipo ya existe en tu cuenta de "
|
||||
"organizador."
|
||||
"Ya existe un medio con el mismo identificador en tu cuenta de organizador o "
|
||||
"en otra afiliada."
|
||||
|
||||
#: pretix/api/serializers/order.py:78
|
||||
#, python-brace-format
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" no es una opción valida."
|
||||
msgstr "\"{input}\" no es una entrada valida."
|
||||
|
||||
#: pretix/api/serializers/order.py:1345 pretix/api/views/cart.py:224
|
||||
#: pretix/base/services/orders.py:1530
|
||||
#, python-brace-format
|
||||
msgid "The selected seat \"{seat}\" is not available."
|
||||
msgstr "El asiento seleccionado {seat} no está disponible."
|
||||
msgstr "La butaca seleccionada {seat} no está disponible."
|
||||
|
||||
#: pretix/api/serializers/order.py:1371 pretix/api/serializers/order.py:1378
|
||||
msgid "The product \"{}\" is not available on this date."
|
||||
@@ -353,12 +351,12 @@ msgid ""
|
||||
"There is not enough quota available on quota \"{}\" to perform the operation."
|
||||
msgstr ""
|
||||
"No hay suficiente cuota disponible en la cuota \"{}\" para realizar esta "
|
||||
"operación."
|
||||
"operacion."
|
||||
|
||||
#: pretix/api/serializers/organizer.py:103
|
||||
#: pretix/control/forms/organizer.py:888 pretix/presale/forms/customer.py:445
|
||||
msgid "An account with this email address is already registered."
|
||||
msgstr "Una cuenta con esta dirección de correo electrónico ya está registrada."
|
||||
msgstr "Una cuenta con esta dirección de correo ya está registrada."
|
||||
|
||||
#: pretix/api/serializers/organizer.py:236
|
||||
#: pretix/control/forms/organizer.py:737
|
||||
@@ -366,13 +364,13 @@ msgid ""
|
||||
"A gift card with the same secret already exists in your or an affiliated "
|
||||
"organizer account."
|
||||
msgstr ""
|
||||
"Una tarjeta regalo con el mismo secreto ya existe en tu cuenta de "
|
||||
"Ya existe una tarjeta regalo con el mismo secreto en tu cuenta de "
|
||||
"organizador o en otra afiliada."
|
||||
|
||||
#: pretix/api/serializers/organizer.py:327
|
||||
#: pretix/control/views/organizer.py:769
|
||||
msgid "pretix account invitation"
|
||||
msgstr "Invitación a la cuenta pretix"
|
||||
msgstr "invitación a la cuenta pretix"
|
||||
|
||||
#: pretix/api/serializers/organizer.py:349
|
||||
#: pretix/control/views/organizer.py:868
|
||||
@@ -388,7 +386,7 @@ msgstr "Este usuario ya tiene permisos para este equipo."
|
||||
msgid ""
|
||||
"The specified voucher has already been used the maximum number of times."
|
||||
msgstr ""
|
||||
"El vale de compra utilizado ya ha sido utilizado el máximo número de veces "
|
||||
"El vale de compra empleado ya ha sido utilizado el número máximo de veces "
|
||||
"permitido."
|
||||
|
||||
#: pretix/api/views/checkin.py:610 pretix/api/views/checkin.py:617
|
||||
@@ -407,7 +405,7 @@ msgstr ""
|
||||
#: pretix/api/views/order.py:607 pretix/control/views/orders.py:1588
|
||||
#: pretix/presale/views/order.py:742 pretix/presale/views/order.py:815
|
||||
msgid "You cannot generate an invoice for this order."
|
||||
msgstr "No puedes generar una factura para este pedido."
|
||||
msgstr "No se puede generar una factura para este pedido."
|
||||
|
||||
#: pretix/api/views/order.py:612 pretix/control/views/orders.py:1590
|
||||
#: pretix/presale/views/order.py:744 pretix/presale/views/order.py:817
|
||||
@@ -428,7 +426,7 @@ msgstr ""
|
||||
|
||||
#: pretix/api/webhooks.py:237 pretix/base/notifications.py:233
|
||||
msgid "New order placed"
|
||||
msgstr "Se hizo un nuevo pedido"
|
||||
msgstr "Se hizo nuevo pedido"
|
||||
|
||||
#: pretix/api/webhooks.py:241 pretix/base/notifications.py:239
|
||||
msgid "New order requires approval"
|
||||
@@ -455,7 +453,7 @@ msgstr "Pedido caducado"
|
||||
|
||||
#: pretix/api/webhooks.py:261
|
||||
msgid "Order expiry date changed"
|
||||
msgstr "Fecha de caducidad del pedido modificada"
|
||||
msgstr "Se ha modificado la fecha de caducidad del pedido"
|
||||
|
||||
#: pretix/api/webhooks.py:265 pretix/base/notifications.py:269
|
||||
msgid "Order information changed"
|
||||
@@ -463,16 +461,16 @@ msgstr "Información de pedido modificada"
|
||||
|
||||
#: pretix/api/webhooks.py:269 pretix/base/notifications.py:275
|
||||
msgid "Order contact address changed"
|
||||
msgstr "Dirección de contacto del pedido modificada"
|
||||
msgstr "Cambiar la dirección de contacto del pedido"
|
||||
|
||||
#: pretix/api/webhooks.py:273 pretix/base/notifications.py:281
|
||||
#: pretix/control/templates/pretixcontrol/event/mail.html:102
|
||||
msgid "Order changed"
|
||||
msgstr "Pedido cambiado"
|
||||
msgstr "Perdido cambiado"
|
||||
|
||||
#: pretix/api/webhooks.py:277
|
||||
msgid "Refund of payment created"
|
||||
msgstr "Orden de devolución de pago creada"
|
||||
msgstr "Devolución del pago creado"
|
||||
|
||||
#: pretix/api/webhooks.py:281 pretix/base/notifications.py:293
|
||||
msgid "External refund of payment"
|
||||
@@ -496,23 +494,23 @@ msgstr "Devolución fallida del pago"
|
||||
|
||||
#: pretix/api/webhooks.py:301
|
||||
msgid "Payment confirmed"
|
||||
msgstr "Pago confirmado"
|
||||
msgstr "Pago confimado"
|
||||
|
||||
#: pretix/api/webhooks.py:305
|
||||
msgid "Order approved"
|
||||
msgstr "Pedido aprobado"
|
||||
msgstr "Perdido aprobado"
|
||||
|
||||
#: pretix/api/webhooks.py:309
|
||||
msgid "Order denied"
|
||||
msgstr "Pedido denegado"
|
||||
msgstr "Perdido denegado"
|
||||
|
||||
#: pretix/api/webhooks.py:313
|
||||
msgid "Order deleted"
|
||||
msgstr "Pedido eliminado"
|
||||
msgstr "Perdido borrado"
|
||||
|
||||
#: pretix/api/webhooks.py:317
|
||||
msgid "Ticket checked in"
|
||||
msgstr "Entrada escaneada"
|
||||
msgstr "Entrada comprobada"
|
||||
|
||||
#: pretix/api/webhooks.py:321
|
||||
msgid "Ticket check-in reverted"
|
||||
@@ -533,7 +531,7 @@ msgstr "Evento eliminado"
|
||||
#: pretix/api/webhooks.py:337
|
||||
msgctxt "subevent"
|
||||
msgid "Event series date added"
|
||||
msgstr "Fechas de la serie de eventos añadidas"
|
||||
msgstr "Fecha de inicio de la serie de eventos creada"
|
||||
|
||||
#: pretix/api/webhooks.py:341
|
||||
msgctxt "subevent"
|
||||
@@ -571,15 +569,15 @@ msgstr "Modo de pruebas de la tienda ha sido desactivado"
|
||||
|
||||
#: pretix/api/webhooks.py:370
|
||||
msgid "Waiting list entry added"
|
||||
msgstr "Elemento agregado a la lista de espera"
|
||||
msgstr "Agregado a la lista de espera"
|
||||
|
||||
#: pretix/api/webhooks.py:374
|
||||
msgid "Waiting list entry changed"
|
||||
msgstr "Elemento de la lista de espera cambiado"
|
||||
msgstr "Entrada a la lista de espera"
|
||||
|
||||
#: pretix/api/webhooks.py:378
|
||||
msgid "Waiting list entry deleted"
|
||||
msgstr "Elemento de la lista de espera eliminado"
|
||||
msgstr "Entrada a la lista de espera eliminada"
|
||||
|
||||
#: pretix/api/webhooks.py:382
|
||||
msgid "Waiting list entry received voucher"
|
||||
@@ -612,11 +610,11 @@ msgstr "Este campo es obligatorio."
|
||||
|
||||
#: pretix/base/addressvalidation.py:213
|
||||
msgid "Enter a postal code in the format XXX."
|
||||
msgstr "Ingresa el código postal en el formato XXXXX."
|
||||
msgstr "Ingresa el código postal en el formato XXX."
|
||||
|
||||
#: pretix/base/addressvalidation.py:222 pretix/base/addressvalidation.py:224
|
||||
msgid "Enter a postal code in the format XXXX."
|
||||
msgstr "Ingresa un código postal en el formato XXXXX."
|
||||
msgstr "Ingresa un código postal en el formato XXX."
|
||||
|
||||
#: pretix/base/auth.py:146
|
||||
#, python-brace-format
|
||||
@@ -657,7 +655,7 @@ msgstr "Contraseña"
|
||||
|
||||
#: pretix/base/auth.py:176 pretix/base/auth.py:183
|
||||
msgid "Your password must contain both numeric and alphabetic characters."
|
||||
msgstr "Su contraseña debe contener caracteres alfanuméricos."
|
||||
msgstr "Su contraseña debe contener caracteres numéricos y alfabéticos."
|
||||
|
||||
#: pretix/base/auth.py:202 pretix/base/auth.py:212
|
||||
#, python-format
|
||||
@@ -689,7 +687,7 @@ msgstr ""
|
||||
#: pretix/base/context.py:45
|
||||
#, python-brace-format
|
||||
msgid "powered by {name} based on <a {a_attr}>pretix</a>"
|
||||
msgstr "desarrollado por {name} basado en <a {a_attr}>pretix</a>"
|
||||
msgstr "hecho posible por {name} basado en <a {a_attr}>pretix</a>"
|
||||
|
||||
#: pretix/base/context.py:52
|
||||
#, python-format
|
||||
@@ -703,7 +701,7 @@ msgstr "Código fuente"
|
||||
#: pretix/base/customersso/oidc.py:61
|
||||
#, python-brace-format
|
||||
msgid "Configuration option \"{name}\" is missing."
|
||||
msgstr "La opción de configuración \"{name}\" falta."
|
||||
msgstr "La opción de configuración \"{name}\" no existe."
|
||||
|
||||
#: pretix/base/customersso/oidc.py:69 pretix/base/customersso/oidc.py:74
|
||||
#, python-brace-format
|
||||
@@ -723,7 +721,7 @@ msgstr "Proveedor SSO incompatible: \"{error}\"."
|
||||
#: pretix/base/customersso/oidc.py:111
|
||||
#, python-brace-format
|
||||
msgid "You are not requesting \"{scope}\"."
|
||||
msgstr "No estas solicitando \"{scope}\"."
|
||||
msgstr "No esta solicitando \"{scope}\"."
|
||||
|
||||
#: pretix/base/customersso/oidc.py:117
|
||||
#, python-brace-format
|
||||
@@ -731,8 +729,8 @@ msgid ""
|
||||
"You are requesting scope \"{scope}\" but provider only supports these: "
|
||||
"{scopes}."
|
||||
msgstr ""
|
||||
"Estás solicitando la funcionalidad \"{scope}\", pero el proveedor solo "
|
||||
"admite estos: {scopes}."
|
||||
"Está solicitando el scope \"{scope}\", pero el proveedor solo admite estos: "
|
||||
"{scopes}."
|
||||
|
||||
#: pretix/base/customersso/oidc.py:127
|
||||
#, python-brace-format
|
||||
@@ -740,7 +738,7 @@ msgid ""
|
||||
"You are requesting field \"{field}\" but provider only supports these: "
|
||||
"{fields}."
|
||||
msgstr ""
|
||||
"Estás solicitando el campo \"{field}\", pero el proveedor solo admite estos: "
|
||||
"Está solicitando el campo \"{field}\", pero el proveedor solo admite estos: "
|
||||
"{fields}."
|
||||
|
||||
#: pretix/base/customersso/oidc.py:137
|
||||
@@ -759,7 +757,7 @@ msgstr ""
|
||||
#: pretix/presale/views/customer.py:862
|
||||
#, python-brace-format
|
||||
msgid "Login was not successful. Error message: \"{error}\"."
|
||||
msgstr "El inicio de sesión no tuvo éxito. Mensaje de error: \"{error}\"."
|
||||
msgstr "El inicio de sesión no fue exitoso. Mensaje de error: \"{error}\"."
|
||||
|
||||
#: pretix/base/customersso/oidc.py:236
|
||||
msgid ""
|
||||
@@ -810,7 +808,7 @@ msgstr "Excel combinado (.xlsx)"
|
||||
|
||||
#: pretix/base/exporters/answers.py:54
|
||||
msgid "Question answer file uploads"
|
||||
msgstr "Subida de archivo de preguntas y respuestas"
|
||||
msgstr "Cargas de archivos de respuestas a preguntas"
|
||||
|
||||
#: pretix/base/exporters/answers.py:55 pretix/base/exporters/json.py:52
|
||||
#: pretix/base/exporters/mail.py:53 pretix/base/exporters/orderlist.py:87
|
||||
@@ -893,12 +891,12 @@ msgstr "Todas las fechas"
|
||||
#: pretix/base/exporters/customers.py:49 pretix/control/navigation.py:606
|
||||
#: pretix/control/templates/pretixcontrol/organizers/edit.html:132
|
||||
msgid "Customer accounts"
|
||||
msgstr "Cuentas de clientes"
|
||||
msgstr "Cuenta de cliente"
|
||||
|
||||
#: pretix/base/exporters/customers.py:51
|
||||
msgctxt "export_category"
|
||||
msgid "Customer accounts"
|
||||
msgstr "Cuentas de clientes"
|
||||
msgstr "Cuenta de cliente"
|
||||
|
||||
#: pretix/base/exporters/customers.py:52
|
||||
msgid "Download a spreadsheet of all currently registered customer accounts."
|
||||
@@ -912,7 +910,7 @@ msgstr ""
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:36
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_base.html:37
|
||||
msgid "Customer ID"
|
||||
msgstr "ID de cliente"
|
||||
msgstr "ID Cliente"
|
||||
|
||||
#: pretix/base/exporters/customers.py:65
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html:32
|
||||
@@ -1109,7 +1107,7 @@ msgstr ""
|
||||
#: pretix/base/exporters/dekodi.py:105
|
||||
#, python-brace-format
|
||||
msgid "Event ticket {event}-{code}"
|
||||
msgstr "Entrada para el evento {event}-{code}"
|
||||
msgstr "Entrada para evento {event}-{code}"
|
||||
|
||||
#: pretix/base/exporters/dekodi.py:234 pretix/base/exporters/invoices.py:74
|
||||
#: pretix/base/exporters/orderlist.py:128
|
||||
@@ -1204,12 +1202,12 @@ msgstr "Hora de admisión"
|
||||
#: pretix/base/exporters/events.py:65 pretix/base/models/event.py:598
|
||||
#: pretix/base/models/event.py:1484 pretix/control/forms/subevents.py:93
|
||||
msgid "Start of presale"
|
||||
msgstr "Inicio de la preventa"
|
||||
msgstr "Inicio de preventa"
|
||||
|
||||
#: pretix/base/exporters/events.py:66 pretix/base/models/event.py:592
|
||||
#: pretix/base/models/event.py:1478 pretix/control/forms/subevents.py:99
|
||||
msgid "End of presale"
|
||||
msgstr "Finalización de la preventa"
|
||||
msgstr "Finalización de preventa"
|
||||
|
||||
#: pretix/base/exporters/events.py:67 pretix/base/exporters/invoices.py:351
|
||||
#: pretix/base/models/event.py:604 pretix/base/models/event.py:1490
|
||||
@@ -1219,7 +1217,7 @@ msgstr "Ubicación"
|
||||
#: pretix/base/exporters/events.py:68 pretix/base/models/event.py:607
|
||||
#: pretix/base/models/event.py:1493
|
||||
msgid "Latitude"
|
||||
msgstr "Latitud"
|
||||
msgstr "Lalitud"
|
||||
|
||||
#: pretix/base/exporters/events.py:69 pretix/base/models/event.py:615
|
||||
#: pretix/base/models/event.py:1501
|
||||
@@ -1246,7 +1244,7 @@ msgstr "Comentario interno"
|
||||
#: pretix/control/templates/pretixcontrol/orders/refunds.html:50
|
||||
#: pretix/control/templates/pretixcontrol/search/payments.html:93
|
||||
msgid "Payment provider"
|
||||
msgstr "Proveedor de pago"
|
||||
msgstr "Proveedor de pagos"
|
||||
|
||||
#: pretix/base/exporters/invoices.py:84 pretix/base/exporters/invoices.py:86
|
||||
#: pretix/control/forms/filter.py:206 pretix/control/forms/filter.py:1020
|
||||
@@ -1272,7 +1270,7 @@ msgstr "Todas las facturas"
|
||||
#: pretix/base/exporters/invoices.py:127
|
||||
msgid "Download all invoices created by the system as a ZIP file of PDF files."
|
||||
msgstr ""
|
||||
"Descargue todas las facturas creadas por el sistema en un archivo ZIP de "
|
||||
"Descargue todas las facturas creadas por el sistema como un archivo ZIP de "
|
||||
"archivos PDF."
|
||||
|
||||
#: pretix/base/exporters/invoices.py:178
|
||||
@@ -1446,7 +1444,7 @@ msgstr "País"
|
||||
|
||||
#: pretix/base/exporters/invoices.py:211 pretix/base/exporters/invoices.py:337
|
||||
msgid "Tax ID"
|
||||
msgstr "CIF"
|
||||
msgstr "IVA-ID"
|
||||
|
||||
#: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:220
|
||||
#: pretix/base/exporters/invoices.py:338 pretix/base/exporters/invoices.py:346
|
||||
@@ -1490,7 +1488,7 @@ msgstr "Destinatario de la factura:"
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:83
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:307
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
msgstr "Compañía"
|
||||
|
||||
#: pretix/base/exporters/invoices.py:215 pretix/base/exporters/invoices.py:341
|
||||
msgid "Street address"
|
||||
@@ -3420,7 +3418,7 @@ msgstr "Formato de facturas predeterminado (carta de estilo europeo)"
|
||||
#: pretix/base/invoice.py:947
|
||||
msgctxt "invoice"
|
||||
msgid "(Please quote at all times.)"
|
||||
msgstr "(Por favor cite en todo momento.)"
|
||||
msgstr "{Por favor, siempre seleccionar quota.}"
|
||||
|
||||
#: pretix/base/invoice.py:994
|
||||
msgid "Simplified invoice renderer"
|
||||
@@ -4567,13 +4565,13 @@ msgstr "Transacción manual"
|
||||
#, python-format
|
||||
msgctxt "invoice"
|
||||
msgid "Tax ID: %s"
|
||||
msgstr "CIF: %s"
|
||||
msgstr "IVA-ID: %s"
|
||||
|
||||
#: pretix/base/models/invoices.py:191 pretix/base/services/invoices.py:139
|
||||
#, python-format
|
||||
msgctxt "invoice"
|
||||
msgid "VAT-ID: %s"
|
||||
msgstr "CIF: %s"
|
||||
msgstr "IVA-ID: %s"
|
||||
|
||||
#: pretix/base/models/items.py:93
|
||||
msgid "Category name"
|
||||
@@ -5969,7 +5967,7 @@ msgstr "Tarifa de envío"
|
||||
|
||||
#: pretix/base/models/orders.py:2286
|
||||
msgid "Service fee"
|
||||
msgstr "Gastos de gestión"
|
||||
msgstr "Tarifa por servicio"
|
||||
|
||||
#: pretix/base/models/orders.py:2287
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:156
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -8,16 +8,16 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2024-12-27 11:45+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/"
|
||||
"pretix-js/ja/>\n"
|
||||
"PO-Revision-Date: 2022-03-15 00:00+0000\n"
|
||||
"Last-Translator: Yuriko Matsunami <y.matsunami@enobyte.com>\n"
|
||||
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
"js/ja/>\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 4.8\n"
|
||||
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||
@@ -35,28 +35,28 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
|
||||
msgid "Venmo"
|
||||
msgstr "Venmo"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:36
|
||||
#: pretix/static/pretixpresale/js/walletdetection.js:38
|
||||
msgid "Apple Pay"
|
||||
msgstr "Apple Pay"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:37
|
||||
msgid "Itaú"
|
||||
msgstr "Itaú"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:38
|
||||
msgid "PayPal Credit"
|
||||
msgstr "PayPalクレジット"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:39
|
||||
msgid "Credit Card"
|
||||
msgstr "クレジットカード"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:40
|
||||
msgid "PayPal Pay Later"
|
||||
msgstr "PayPal後払い"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
|
||||
msgid "iDEAL"
|
||||
@@ -76,15 +76,17 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:45
|
||||
msgid "SOFORT"
|
||||
msgstr "SOFORT"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
|
||||
#, fuzzy
|
||||
#| msgid "Yes"
|
||||
msgid "eps"
|
||||
msgstr "eps"
|
||||
msgstr "はい"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
|
||||
msgid "MyBank"
|
||||
msgstr "MyBank"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:48
|
||||
msgid "Przelewy24"
|
||||
@@ -92,35 +94,35 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:49
|
||||
msgid "Verkkopankki"
|
||||
msgstr "Verkkopankki"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:50
|
||||
msgid "PayU"
|
||||
msgstr "PayU"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:51
|
||||
msgid "BLIK"
|
||||
msgstr "BLIK"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:52
|
||||
msgid "Trustly"
|
||||
msgstr "Trustly"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:53
|
||||
msgid "Zimpler"
|
||||
msgstr "Zimpler"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:54
|
||||
msgid "Maxima"
|
||||
msgstr "Maxima"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:55
|
||||
msgid "OXXO"
|
||||
msgstr "OXXO"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:56
|
||||
msgid "Boleto"
|
||||
msgstr "Boleto"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:57
|
||||
msgid "WeChat Pay"
|
||||
@@ -128,7 +130,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:58
|
||||
msgid "Mercado Pago"
|
||||
msgstr "Mercado Pago"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:167
|
||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:50
|
||||
@@ -142,11 +144,11 @@ msgstr "次へ"
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:317
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:341
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "お支払いの確認中…"
|
||||
msgstr "お支払い内容の確認"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:254
|
||||
msgid "Payment method unavailable"
|
||||
msgstr "支払い方法が利用できません"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
|
||||
@@ -164,7 +166,7 @@ msgstr "売上合計"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Stripeに接続中…"
|
||||
msgstr "お問い合わせはこちら"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
msgid "Total"
|
||||
@@ -212,11 +214,11 @@ msgstr "入口"
|
||||
|
||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:39
|
||||
msgid "Exit"
|
||||
msgstr "退出"
|
||||
msgstr "出口"
|
||||
|
||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:40
|
||||
msgid "Scan a ticket or search and press return…"
|
||||
msgstr "チケットのスキャン又は検索を行い、リターンを押す…"
|
||||
msgstr "チケットのスキャンや検索を行い、エンターキーで確定してください"
|
||||
|
||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:41
|
||||
msgid "Load more"
|
||||
@@ -237,7 +239,7 @@ msgstr "キャンセル"
|
||||
|
||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:46
|
||||
msgid "Confirmed"
|
||||
msgstr "確認済み"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:47
|
||||
msgid "Approval pending"
|
||||
@@ -443,7 +445,7 @@ msgstr "の後"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:40
|
||||
msgid "="
|
||||
msgstr "="
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:99
|
||||
msgid "Product"
|
||||
@@ -463,11 +465,11 @@ msgstr "現在の日時"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:115
|
||||
msgid "Current day of the week (1 = Monday, 7 = Sunday)"
|
||||
msgstr "現在の曜日 (1 = 月曜日, 7 = 日曜日)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:119
|
||||
msgid "Current entry status"
|
||||
msgstr "現在の登録ステータス"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:123
|
||||
msgid "Number of previous entries"
|
||||
@@ -478,32 +480,40 @@ msgid "Number of previous entries since midnight"
|
||||
msgstr "0時から現在までの入力件数"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:131
|
||||
#, fuzzy
|
||||
#| msgid "Number of previous entries"
|
||||
msgid "Number of previous entries since"
|
||||
msgstr "この時点から今までの入力件数"
|
||||
msgstr "これまでの入力件数"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:135
|
||||
#, fuzzy
|
||||
#| msgid "Number of previous entries"
|
||||
msgid "Number of previous entries before"
|
||||
msgstr "この時点より前に入力された件数"
|
||||
msgstr "これまでの入力件数"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:139
|
||||
msgid "Number of days with a previous entry"
|
||||
msgstr "これまでの入力日数"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:143
|
||||
#, fuzzy
|
||||
#| msgid "Number of days with a previous entry"
|
||||
msgid "Number of days with a previous entry since"
|
||||
msgstr "この時点より後に入力が行われた日数"
|
||||
msgstr "これまでの入力日数"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:147
|
||||
#, fuzzy
|
||||
#| msgid "Number of days with a previous entry"
|
||||
msgid "Number of days with a previous entry before"
|
||||
msgstr "この時点より前に入力が行われた日数"
|
||||
msgstr "これまでの入力日数"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:151
|
||||
msgid "Minutes since last entry (-1 on first entry)"
|
||||
msgstr "最後の登録からの経過分数(最初の登録は-1)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:155
|
||||
msgid "Minutes since first entry (-1 on first entry)"
|
||||
msgstr "最初のとうろくからの経過分数(最初の登録は-1)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:182
|
||||
msgid "All of the conditions below (AND)"
|
||||
@@ -547,17 +557,17 @@ msgstr "分"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:192
|
||||
msgid "Duplicate"
|
||||
msgstr "複製"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:193
|
||||
msgctxt "entry_status"
|
||||
msgid "present"
|
||||
msgstr "出席"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:194
|
||||
msgctxt "entry_status"
|
||||
msgid "absent"
|
||||
msgstr "欠席"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:171
|
||||
msgid "Check-in QR"
|
||||
@@ -572,8 +582,10 @@ msgid "Group of objects"
|
||||
msgstr "オブジェクトグループ"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:899
|
||||
#, fuzzy
|
||||
#| msgid "Text object"
|
||||
msgid "Text object (deprecated)"
|
||||
msgstr "テキストオブジェクト (廃止済)"
|
||||
msgstr "テキストオブジェクト"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:901
|
||||
#, fuzzy
|
||||
@@ -661,11 +673,11 @@ msgstr "選択したもののみ"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:808
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr "1以上%(max)s以下のページ番号を入力。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:811
|
||||
msgid "Invalid page number."
|
||||
msgstr "無効なページ番号。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:969
|
||||
msgid "Use a different name internally"
|
||||
@@ -744,44 +756,49 @@ msgstr "現地時間:"
|
||||
|
||||
#: pretix/static/pretixpresale/js/walletdetection.js:39
|
||||
msgid "Google Pay"
|
||||
msgstr "Google Pay"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:16
|
||||
msgctxt "widget"
|
||||
msgid "Quantity"
|
||||
msgstr "数量"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:17
|
||||
msgctxt "widget"
|
||||
msgid "Decrease quantity"
|
||||
msgstr "数量を減らす"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:18
|
||||
msgctxt "widget"
|
||||
msgid "Increase quantity"
|
||||
msgstr "数量を増やす"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:19
|
||||
msgctxt "widget"
|
||||
msgid "Price"
|
||||
msgstr "価格"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||
#, fuzzy
|
||||
#| msgid "Selected only"
|
||||
msgctxt "widget"
|
||||
msgid "Select"
|
||||
msgstr "選択"
|
||||
msgstr "選択したもののみ"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||
#, javascript-format
|
||||
#, fuzzy, javascript-format
|
||||
#| msgid "Selected only"
|
||||
msgctxt "widget"
|
||||
msgid "Select %s"
|
||||
msgstr "%sを選択"
|
||||
msgstr "選択したもののみ"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:22
|
||||
#, javascript-format
|
||||
#, fuzzy, javascript-format
|
||||
#| msgctxt "widget"
|
||||
#| msgid "See variations"
|
||||
msgctxt "widget"
|
||||
msgid "Select variant %s"
|
||||
msgstr "バリアント %sを選択"
|
||||
msgstr "バリエーションを確認する"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:23
|
||||
msgctxt "widget"
|
||||
@@ -845,19 +862,25 @@ msgid "Only available with a voucher"
|
||||
msgstr "クーポンをお持ちの方のみ"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:35
|
||||
#, fuzzy
|
||||
#| msgctxt "widget"
|
||||
#| msgid "currently available: %s"
|
||||
msgctxt "widget"
|
||||
msgid "Not yet available"
|
||||
msgstr "提供開始前"
|
||||
msgstr "現在%s使用可能"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:36
|
||||
msgctxt "widget"
|
||||
msgid "Not available anymore"
|
||||
msgstr "今後の提供不可"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:37
|
||||
#, fuzzy
|
||||
#| msgctxt "widget"
|
||||
#| msgid "currently available: %s"
|
||||
msgctxt "widget"
|
||||
msgid "Currently not available"
|
||||
msgstr "現時点で提供不可"
|
||||
msgstr "現在%s使用可能"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:38
|
||||
#, javascript-format
|
||||
@@ -892,7 +915,7 @@ msgstr "チケットショップを開く"
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||
msgctxt "widget"
|
||||
msgid "The cart could not be created. Please try again later"
|
||||
msgstr "カートが作成できません。後ほど再度お試しください"
|
||||
msgstr "カートの作成に失敗しました。再試行してください。"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:45
|
||||
msgctxt "widget"
|
||||
@@ -906,7 +929,7 @@ msgstr ""
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:47
|
||||
msgctxt "widget"
|
||||
msgid "Waiting list"
|
||||
msgstr "空席待ちリスト"
|
||||
msgstr "待機リスト"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:48
|
||||
msgctxt "widget"
|
||||
@@ -948,14 +971,20 @@ msgid "Continue"
|
||||
msgstr "続ける"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:56
|
||||
#, fuzzy
|
||||
#| msgctxt "widget"
|
||||
#| msgid "See variations"
|
||||
msgctxt "widget"
|
||||
msgid "Show variants"
|
||||
msgstr "バリエーションを表示"
|
||||
msgstr "バリエーションを確認する"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:57
|
||||
#, fuzzy
|
||||
#| msgctxt "widget"
|
||||
#| msgid "See variations"
|
||||
msgctxt "widget"
|
||||
msgid "Hide variants"
|
||||
msgstr "バリエーションを隠す"
|
||||
msgstr "バリエーションを確認する"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:58
|
||||
msgctxt "widget"
|
||||
@@ -1004,9 +1033,6 @@ msgid ""
|
||||
"add yourself to the waiting list. We will then notify if seats are available "
|
||||
"again."
|
||||
msgstr ""
|
||||
"現在、一部またはすべてのカテゴリでチケットが売り切れています。ご希望に応じて"
|
||||
"、ご自身で空席待ちリストに追加することができます。その後、空席が出来次第お知"
|
||||
"らせします。"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:67
|
||||
msgctxt "widget"
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-11 21:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"PO-Revision-Date: 2023-04-06 02:00+0000\n"
|
||||
"Last-Translator: 전윤수 <jeonyunsoo123@gmail.com>\n"
|
||||
"Language-Team: Korean <https://translate.pretix.eu/projects/pretix/pretix/ko/"
|
||||
">\n"
|
||||
"Language: ko\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 4.16.4\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -163,15 +163,17 @@ msgstr "어플리케이션 이름"
|
||||
|
||||
#: pretix/api/models.py:42 pretix/base/models/customers.py:421
|
||||
msgid "Redirection URIs"
|
||||
msgstr "리다이렉션 URI"
|
||||
msgstr "리다이렉션URI"
|
||||
|
||||
#: pretix/api/models.py:43 pretix/base/models/customers.py:422
|
||||
msgid "Allowed URIs list, space separated"
|
||||
msgstr "허용된 URI 리스트, 스페이스로 구분"
|
||||
|
||||
#: pretix/api/models.py:47
|
||||
#, fuzzy
|
||||
#| msgid "Allowed URIs list, space separated"
|
||||
msgid "Allowed Post Logout URIs list, space separated"
|
||||
msgstr "공백으로 구분된 허용된 로그아웃 후 URI 목록"
|
||||
msgstr "허용된 URI 리스트, 스페이스로 구분"
|
||||
|
||||
#: pretix/api/models.py:51 pretix/base/models/customers.py:406
|
||||
#: pretix/plugins/paypal/payment.py:113 pretix/plugins/paypal2/payment.py:110
|
||||
@@ -199,7 +201,7 @@ msgstr "모든 이벤트 (향후 생성될 이벤트들도 포함)"
|
||||
#: pretix/api/models.py:119 pretix/base/models/devices.py:123
|
||||
#: pretix/base/models/organizer.py:287
|
||||
msgid "Limit to events"
|
||||
msgstr "이러한 이벤트로 제한하다"
|
||||
msgstr "다음 이벤트로 제한하기"
|
||||
|
||||
#: pretix/api/models.py:120 pretix/base/exporters/orderlist.py:284
|
||||
#: pretix/base/exporters/orderlist.py:1077
|
||||
@@ -17952,8 +17954,10 @@ msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/global_sysreport.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Generate tickets"
|
||||
msgid "Generate report"
|
||||
msgstr "보고서를 생성"
|
||||
msgstr "티켓 생성"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/global_update.html:7
|
||||
msgid "Update check results"
|
||||
@@ -19891,8 +19895,11 @@ msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/orders/bulk_action.html:5
|
||||
#: pretix/control/templates/pretixcontrol/orders/bulk_action.html:7
|
||||
#, fuzzy
|
||||
#| msgid "1 order"
|
||||
#| msgid_plural "%(s)s orders"
|
||||
msgid "Modify orders"
|
||||
msgstr "주문을 수정"
|
||||
msgstr "%(s)s개 주문"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/orders/bulk_action.html:12
|
||||
#, python-format
|
||||
@@ -22084,8 +22091,11 @@ msgid "Begin"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/index.html:176
|
||||
#, fuzzy
|
||||
#| msgid "1 order"
|
||||
#| msgid_plural "%(s)s orders"
|
||||
msgid "Show orders"
|
||||
msgstr "주문을 표시"
|
||||
msgstr "%(s)s개 주문"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/index.html:187
|
||||
msgctxt "subevent"
|
||||
@@ -26618,8 +26628,10 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/returnurl/views.py:37
|
||||
#, fuzzy
|
||||
#| msgid "Redirection URIs"
|
||||
msgid "Base redirection URLs"
|
||||
msgstr "기본 리다이렉션 URL"
|
||||
msgstr "리다이렉션URI"
|
||||
|
||||
#: pretix/plugins/returnurl/views.py:38
|
||||
msgid ""
|
||||
@@ -27303,8 +27315,10 @@ msgid "Publishable key"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:280
|
||||
#, fuzzy
|
||||
#| msgid "Generate tickets"
|
||||
msgid "Generate API keys"
|
||||
msgstr "API 키 생성"
|
||||
msgstr "티켓 생성"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:282
|
||||
msgid ""
|
||||
@@ -28481,8 +28495,11 @@ msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/base.html:127
|
||||
#: pretix/presale/templates/pretixpresale/event/base.html:201
|
||||
#, fuzzy
|
||||
#| msgid "This ticket has been used once."
|
||||
#| msgid_plural "This ticket has been used %(count)s times."
|
||||
msgid "This ticket shop is currently in test mode."
|
||||
msgstr "이 티켓 상점은 현재 테스트 모드입니다."
|
||||
msgstr "티켓이 %(count)s회 사용되었습니다."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/base.html:130
|
||||
#: pretix/presale/templates/pretixpresale/event/base.html:204
|
||||
@@ -29744,8 +29761,11 @@ msgid "Shop offline"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/offline.html:9
|
||||
#, fuzzy
|
||||
#| msgid "This ticket has been used once."
|
||||
#| msgid_plural "This ticket has been used %(count)s times."
|
||||
msgid "This ticket shop is currently turned off."
|
||||
msgstr "이 티켓 상점은 현재 비활성화되어 있습니다."
|
||||
msgstr "티켓이 %(count)s회 사용되었습니다."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/offline.html:10
|
||||
msgid "It is only accessible to authenticated team members."
|
||||
@@ -30188,8 +30208,11 @@ msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/position_modify.html:5
|
||||
#: pretix/presale/templates/pretixpresale/event/position_modify.html:8
|
||||
#, fuzzy
|
||||
#| msgid "1 order"
|
||||
#| msgid_plural "%(s)s orders"
|
||||
msgid "Modify ticket"
|
||||
msgstr "티켓 수정"
|
||||
msgstr "%(s)s개 주문"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/resend_link.html:4
|
||||
#: pretix/presale/templates/pretixpresale/event/resend_link.html:11
|
||||
@@ -30715,7 +30738,7 @@ msgstr ""
|
||||
|
||||
#: pretix/presale/views/cart.py:546
|
||||
msgid "The products have been successfully added to your cart."
|
||||
msgstr "제품이 장바구니에 성공적으로 추가되었습니다."
|
||||
msgstr "성공적으로 추가되었습니다."
|
||||
|
||||
#: pretix/presale/views/cart.py:570 pretix/presale/views/event.py:537
|
||||
#: pretix/presale/views/widget.py:377
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2024-12-29 22:00+0000\n"
|
||||
"Last-Translator: Wiktor Przybylski <wikprzybylski@gmail.com>\n"
|
||||
"PO-Revision-Date: 2024-10-29 21:00+0000\n"
|
||||
"Last-Translator: Anarion Dunedain <anarion80@gmail.com>\n"
|
||||
"Language-Team: Polish <https://translate.pretix.eu/projects/pretix/pretix/pl/"
|
||||
">\n"
|
||||
"Language: pl\n"
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.8.1\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -3077,7 +3077,7 @@ msgstr "Proszę wprowadzić nazwę firmy."
|
||||
|
||||
#: pretix/base/forms/questions.py:1176
|
||||
msgid "You need to provide your name."
|
||||
msgstr "Proszę wprowadzić swoje imię i nazwisko."
|
||||
msgstr "Proszę wprowadzić swoję imie i nazwisko."
|
||||
|
||||
#: pretix/base/forms/user.py:51 pretix/control/forms/users.py:43
|
||||
msgid ""
|
||||
@@ -10866,7 +10866,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Witaj,\n"
|
||||
"\n"
|
||||
"Płatność za {event} się powiodła. Dziękujemy!\n"
|
||||
"Płatność za {event} się powiodła. Dziękujmy!\n"
|
||||
"\n"
|
||||
"{payment_info}\n"
|
||||
"\n"
|
||||
@@ -19747,8 +19747,10 @@ msgid "Calculation"
|
||||
msgstr "Anulowanie"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:64
|
||||
#, fuzzy
|
||||
#| msgid "Reason:"
|
||||
msgid "Reason"
|
||||
msgstr "Powód"
|
||||
msgstr "Powód:"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:137
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:251
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-10 20:00+0000\n"
|
||||
"Last-Translator: David Vaz <davidmgvaz@gmail.com>\n"
|
||||
"PO-Revision-Date: 2024-12-13 08:00+0000\n"
|
||||
"Last-Translator: Vasco Baleia <vb2003.12@gmail.com>\n"
|
||||
"Language-Team: Portuguese (Portugal) <https://translate.pretix.eu/projects/"
|
||||
"pretix/pretix/pt_PT/>\n"
|
||||
"Language: pt_PT\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.8.4\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -34876,7 +34876,7 @@ msgstr "Nenhuma associação é armazenada em sua conta."
|
||||
#| msgid "+ %(count)s invited"
|
||||
msgid "%(counter)s item"
|
||||
msgid_plural "%(counter)s items"
|
||||
msgstr[0] "+%(count)s convidado"
|
||||
msgstr[0] "+%(count)s convidados"
|
||||
msgstr[1] "+%(count)s convidados"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:78
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-04 01:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"PO-Revision-Date: 2024-08-02 23:00+0000\n"
|
||||
"Last-Translator: baris gormez <vbgormez@gmail.com>\n"
|
||||
"Language-Team: Turkish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"tr/>\n"
|
||||
"Language: tr\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.6.2\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -465,7 +465,7 @@ msgstr "Siparişin süresi doldu"
|
||||
|
||||
#: pretix/api/webhooks.py:261
|
||||
msgid "Order expiry date changed"
|
||||
msgstr "Siparişin son kullanma tarihi değiştirildi"
|
||||
msgstr "Siparişin son tarihi değiştirildi."
|
||||
|
||||
#: pretix/api/webhooks.py:265 pretix/base/notifications.py:269
|
||||
msgid "Order information changed"
|
||||
@@ -494,11 +494,11 @@ msgstr "Müşteri tarafından iade talep edildi"
|
||||
|
||||
#: pretix/api/webhooks.py:289
|
||||
msgid "Refund of payment completed"
|
||||
msgstr "Ödemenin iadesi tamamlandı"
|
||||
msgstr "Ödeme iadesi tamamlandı."
|
||||
|
||||
#: pretix/api/webhooks.py:293
|
||||
msgid "Refund of payment canceled"
|
||||
msgstr "Ödemenin iadesi iptal edildi"
|
||||
msgstr "İade iptal edildi."
|
||||
|
||||
#: pretix/api/webhooks.py:297
|
||||
msgid "Refund of payment failed"
|
||||
@@ -1041,8 +1041,10 @@ msgid "Name"
|
||||
msgstr "Ad"
|
||||
|
||||
#: pretix/base/exporters/customers.py:77 pretix/base/models/customers.py:99
|
||||
#, fuzzy
|
||||
#| msgid "This account is inactive."
|
||||
msgid "Account active"
|
||||
msgstr "Hesap aktif"
|
||||
msgstr "Bu hesap aktif değildir."
|
||||
|
||||
#: pretix/base/exporters/customers.py:78 pretix/base/models/customers.py:100
|
||||
#, fuzzy
|
||||
@@ -1190,13 +1192,17 @@ msgstr ""
|
||||
"tarihinin her zaman sipariş veya ödeme tarihine uygun olmadığını unutmayın."
|
||||
|
||||
#: pretix/base/exporters/events.py:47
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgid "Event data"
|
||||
msgstr "Etkinlik verileri"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/base/exporters/events.py:48
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgctxt "export_category"
|
||||
msgid "Event data"
|
||||
msgstr "Etkinlik verileri"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/base/exporters/events.py:49
|
||||
msgid ""
|
||||
@@ -1851,7 +1857,7 @@ msgstr "Bekleme listesi"
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:171
|
||||
#: pretix/control/templates/pretixcontrol/subevents/detail.html:149
|
||||
msgid "Available from"
|
||||
msgstr "Şuradan temin edilebilir"
|
||||
msgstr "Mevcut"
|
||||
|
||||
#: pretix/base/exporters/items.py:81 pretix/base/models/discount.py:85
|
||||
#: pretix/base/models/items.py:229 pretix/base/models/items.py:285
|
||||
@@ -4373,8 +4379,10 @@ msgid "Profile data (name, addresses)"
|
||||
msgstr "Yeni bir tarih oluştur"
|
||||
|
||||
#: pretix/base/models/customers.py:414
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgid "Client type"
|
||||
msgstr "Müşteri türü"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/base/models/customers.py:417
|
||||
#, fuzzy
|
||||
@@ -8219,8 +8227,10 @@ msgstr ""
|
||||
|
||||
#: pretix/base/services/cancelevent.py:229
|
||||
#: pretix/base/services/cancelevent.py:287
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgid "Event canceled"
|
||||
msgstr "Etkinlik iptal edildi"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/base/services/cart.py:101 pretix/base/services/modelimport.py:194
|
||||
#: pretix/base/services/orders.py:150
|
||||
@@ -9069,9 +9079,6 @@ msgid ""
|
||||
"place at {date}, however you already used the same membership for a "
|
||||
"different ticket at the same time."
|
||||
msgstr ""
|
||||
"{date}'de gerçekleşen bir etkinlik için \"{type}\" türünde bir üyelik "
|
||||
"kullanmaya çalışıyorsunuz, ancak aynı üyeliği aynı anda farklı bir bilet "
|
||||
"için zaten kullandınız."
|
||||
|
||||
#: pretix/base/services/modelimport.py:53
|
||||
#, python-brace-format
|
||||
@@ -10828,7 +10835,7 @@ msgstr "Seçilen ürün aktif değil veya fiyat ayarlı değil."
|
||||
|
||||
#: pretix/base/settings.py:1659
|
||||
msgid "Hide all unavailable dates from calendar or list views"
|
||||
msgstr "Takvim veya liste görünümlerinden tüm uygun olmayan tarihleri gizle"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py:1660 pretix/base/settings.py:1671
|
||||
msgid ""
|
||||
@@ -11285,8 +11292,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Merhaba,\n"
|
||||
"\n"
|
||||
"Bu mesajı size bağlantıyı göndermemizi istediğiniz için alıyorsunuz\n"
|
||||
"to your order for {event}.\n"
|
||||
"Bu mesajı size {event} etkinliğine ait siparişiniz ile ilgili bağlantıyı "
|
||||
"göndermemizi istediğiniz için aldınız\n"
|
||||
"\n"
|
||||
"Bu adresten sipariş ayrıntılarınızı değiştirebilir ve siparişinizin durumunu "
|
||||
"görebilirsiniz\n"
|
||||
@@ -14136,12 +14143,12 @@ msgid "Text (if an incomplete payment was received)"
|
||||
msgstr "Siparişiniz için ödeme alındı: {code}"
|
||||
|
||||
#: pretix/control/forms/event.py:1169
|
||||
#, fuzzy
|
||||
#| msgid "This plugin allows you to receive payments via bank transfer "
|
||||
msgid ""
|
||||
"This email only applies to payment methods that can receive incomplete "
|
||||
"payments, such as bank transfer."
|
||||
msgstr ""
|
||||
"Bu e-posta yalnızca banka havalesi gibi eksik ödemeler alabilen ödeme "
|
||||
"yöntemleri için geçerlidir."
|
||||
msgstr "Bu eklenti banka havalesi yoluyla ödeme almanızı sağlar "
|
||||
|
||||
#: pretix/control/forms/event.py:1237
|
||||
msgid ""
|
||||
@@ -14935,8 +14942,10 @@ msgid "Date filter"
|
||||
msgstr "Tarih geçmişi"
|
||||
|
||||
#: pretix/control/forms/filter.py:2332 pretix/plugins/reports/exporters.py:690
|
||||
#, fuzzy
|
||||
#| msgid "Filter by tag"
|
||||
msgid "Filter by…"
|
||||
msgstr "Filtrele…"
|
||||
msgstr "Etikete göre filtrele"
|
||||
|
||||
#: pretix/control/forms/filter.py:2334 pretix/plugins/reports/exporters.py:692
|
||||
#, fuzzy
|
||||
@@ -15992,10 +16001,6 @@ msgid ""
|
||||
"series is only partially canceled since it consists of tickets for multiple "
|
||||
"dates."
|
||||
msgstr ""
|
||||
"Seçilen ücret türleri iade edilmeyecek, bunun yerine iptal ücretine "
|
||||
"eklenecektir. Bir etkinlik serisindeki bir sipariş, birden fazla tarih için "
|
||||
"biletlerden oluştuğu için yalnızca kısmen iptal edildiğinde ücretler asla "
|
||||
"iade edilmez."
|
||||
|
||||
#: pretix/control/forms/orders.py:905
|
||||
#, fuzzy
|
||||
@@ -16186,9 +16191,11 @@ msgid "This will be attached to every email."
|
||||
msgstr "Bu her e-postaya eklenecektir. Mevcut yer tutucuları: {event}"
|
||||
|
||||
#: pretix/control/forms/organizer.py:681
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgctxt "webhooks"
|
||||
msgid "Event types"
|
||||
msgstr "Etkinlik türleri"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/control/forms/organizer.py:713
|
||||
#, fuzzy
|
||||
@@ -16711,9 +16718,9 @@ msgid "Position #{posid} created: {item} ({price})."
|
||||
msgstr "Poziyon #{posid} oluşturuldu: {item} ({price})."
|
||||
|
||||
#: pretix/control/logdisplay.py:162
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgid "A new secret has been generated for position #{posid}."
|
||||
msgstr "#{Posid} pozisyonu için yeni bir sır oluşturuldu."
|
||||
msgstr "Pozisyon #{posid} için yeni bir sır oluşturuldu"
|
||||
|
||||
#: pretix/control/logdisplay.py:166
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -18362,8 +18369,10 @@ msgstr "Soruyu sil"
|
||||
|
||||
#: pretix/control/navigation.py:494
|
||||
#: pretix/control/templates/pretixcontrol/organizers/properties.html:5
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgid "Event metadata"
|
||||
msgstr "Olay meta verileri"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/control/navigation.py:515
|
||||
#: pretix/control/templates/pretixcontrol/organizers/webhooks.html:6
|
||||
@@ -19531,8 +19540,10 @@ msgid "Valid check-in"
|
||||
msgstr "Check-in listeleri"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:68
|
||||
#, fuzzy
|
||||
#| msgid "Meta information"
|
||||
msgid "Additional information required"
|
||||
msgstr "Ek bilgi gerekli"
|
||||
msgstr "Meta bilgisi"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:70
|
||||
msgid ""
|
||||
@@ -19709,8 +19720,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Merhaba,\n"
|
||||
"\n"
|
||||
"Bu, pretix hesabınızın hesap bilgilerinin\n"
|
||||
"Değişti. Özellikle, aşağıdaki değişiklikler yapılmıştır:\n"
|
||||
"pretix hesabınızdaki bilgiler değiştiği için bu e-postayı aldınız. Aşağıdaki "
|
||||
"değişiklikler gerçekleşti:\n"
|
||||
"\n"
|
||||
"%(messages)s\n"
|
||||
"\n"
|
||||
@@ -19970,9 +19981,6 @@ msgid ""
|
||||
"event and only retain the financial information such as the number and type "
|
||||
"of tickets sold."
|
||||
msgstr ""
|
||||
"İsimler ve e-posta adresleri gibi kişisel verileri etkinliğinizden "
|
||||
"kaldırabilir ve yalnızca satılan bilet sayısı ve türü gibi finansal "
|
||||
"bilgileri saklayabilirsiniz."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:76
|
||||
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:89
|
||||
@@ -20072,8 +20080,11 @@ msgid "Failed to retrieve geo coordinates"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/fragment_geodata_autoupdate.html:5
|
||||
#, fuzzy
|
||||
#| msgctxt "subevent"
|
||||
#| msgid "No dates"
|
||||
msgid "Retrieving geo coordinates …"
|
||||
msgstr "Coğrafi koordinatlar alınıyor …"
|
||||
msgstr "Tarih yok"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/fragment_geodata_autoupdate.html:6
|
||||
#, fuzzy
|
||||
@@ -20980,10 +20991,6 @@ msgid ""
|
||||
"quota, you might run into situations where people are sent an email from the "
|
||||
"waiting list but still are unable to book a seat."
|
||||
msgstr ""
|
||||
"Bekleme listesi, kullanılabilirliği esas olarak kotalara göre belirler. Bir "
|
||||
"oturma planı kullanıyorsanız ve mevcut koltuk sayınız mevcut kotadan azsa, "
|
||||
"insanlara bekleme listesinden bir e-posta gönderildiği ancak yine de bir "
|
||||
"koltuk ayırtamadıkları durumlarla karşılaşabilirsiniz."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:366
|
||||
msgid ""
|
||||
@@ -21004,8 +21011,10 @@ msgid "Manage waiting list"
|
||||
msgstr "Bekleme listesini etkinleştir"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:396
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgid "Item metadata"
|
||||
msgstr "Öğe meta verileri"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:398
|
||||
#, fuzzy
|
||||
@@ -21381,8 +21390,10 @@ msgstr ""
|
||||
"tarih ve saat ayarları ve etkinlik adını içeren metinler."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/events/create_foundation.html:7
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgid "Event type"
|
||||
msgstr "Etkinlik türü"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/events/create_foundation.html:13
|
||||
msgid "Singular event or non-event shop"
|
||||
@@ -24879,10 +24890,6 @@ msgid ""
|
||||
"data such as event metadata and POS transactions will persist until you "
|
||||
"uninstall or reset the software manually."
|
||||
msgstr ""
|
||||
"Cihaz yazılımı destekliyorsa, siparişler gibi kişisel veriler bir sonraki "
|
||||
"senkronizasyon denemesinde cihazdan silinecektir. Olay meta verileri ve POS "
|
||||
"işlemleri gibi kişisel olmayan veriler, yazılımı manuel olarak kaldırana "
|
||||
"veya sıfırlayana kadar devam edecektir."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html:10
|
||||
msgid ""
|
||||
@@ -25337,10 +25344,10 @@ msgid ""
|
||||
"can later set for your events and re-use in places like ticket layouts. This "
|
||||
"is an useful timesaver if you create lots and lots of events."
|
||||
msgstr ""
|
||||
"Burada, daha sonra etkinlikleriniz için ayarlayabileceğiniz ve bilet "
|
||||
"Burada daha sonra etkinlikleriniz için ayarlayabileceğiniz ve bilet "
|
||||
"düzenleri gibi yerlerde yeniden kullanabileceğiniz bir dizi meta veri "
|
||||
"özelliği (yani değişkenler) tanımlayabilirsiniz. Bu, çok sayıda etkinlik "
|
||||
"oluşturursanız yararlı bir zaman tasarrufudur."
|
||||
"özelliği (yani değişkenler) tanımlayabilirsiniz. Çok sayıda etkinlik "
|
||||
"oluşturursanız, bu yararlı bir zaman çizelgesidir."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/properties.html:15
|
||||
#: pretix/control/templates/pretixcontrol/organizers/property_edit.html:9
|
||||
@@ -25948,8 +25955,10 @@ msgstr "E-posta içeriği"
|
||||
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:20
|
||||
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:34
|
||||
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Bancontact"
|
||||
msgid "Content"
|
||||
msgstr "Içerik"
|
||||
msgstr "Bancontact"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/pdf/index.html:270
|
||||
#: pretix/control/templates/pretixcontrol/pdf/placeholders.html:50
|
||||
@@ -27436,7 +27445,11 @@ msgid "Quota unlimited"
|
||||
msgstr "Kota adı"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:240
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " Waiting, product %(num)sx available\n"
|
||||
#| " "
|
||||
msgid ""
|
||||
"\n"
|
||||
" Waiting, product %(num)sx "
|
||||
@@ -27444,8 +27457,8 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Bekliyor, ürün %(num)sx mevcut\n"
|
||||
" "
|
||||
" Bekliyor, ürün %(num)sx mevcut\n"
|
||||
" "
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:246
|
||||
msgid "Waiting, product unavailable"
|
||||
@@ -27808,7 +27821,7 @@ msgstr "Yakında"
|
||||
msgid "{num} order"
|
||||
msgid_plural "{num} orders"
|
||||
msgstr[0] "{num} sipariş"
|
||||
msgstr[1] "{num} siparişler"
|
||||
msgstr[1] "{num} sipariş"
|
||||
|
||||
#: pretix/control/views/discounts.py:67 pretix/control/views/discounts.py:109
|
||||
#: pretix/control/views/discounts.py:214
|
||||
@@ -27891,9 +27904,10 @@ msgid "invalid item"
|
||||
msgstr "geçersiz öğe"
|
||||
|
||||
#: pretix/control/views/event.py:802
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Your order: {code}"
|
||||
msgid "Your order: %(code)s"
|
||||
msgstr "Siparişiniz: %(code)s"
|
||||
msgstr "Siparişiniz: {code}"
|
||||
|
||||
#: pretix/control/views/event.py:811
|
||||
msgid "Unknown email renderer."
|
||||
@@ -29807,8 +29821,10 @@ msgid "Only include tickets for dates on or after this date."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/badges/exporters.py:472
|
||||
#, fuzzy
|
||||
#| msgid "Event date"
|
||||
msgid "End event date"
|
||||
msgstr "Etkinlik bitiş tarihi"
|
||||
msgstr "Etkinlik tarihi"
|
||||
|
||||
#: pretix/plugins/badges/exporters.py:475
|
||||
#, fuzzy
|
||||
@@ -35568,8 +35584,8 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" %(Datetime)s için takvim\n"
|
||||
" "
|
||||
" Bekliyor, ürün %(num)sx mevcut\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:48
|
||||
msgid "Your cart, general information, add products to your cart"
|
||||
@@ -36387,7 +36403,9 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" %(start_date)s'den\n"
|
||||
" ……………………………………………"
|
||||
"itibaren %(start_date)s\n"
|
||||
"………………………………………\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:12
|
||||
@@ -36423,15 +36441,22 @@ msgid "to"
|
||||
msgstr "için"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:119
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " from "
|
||||
#| "%(start_date)s\n"
|
||||
#| " "
|
||||
msgid ""
|
||||
"\n"
|
||||
" from %(start_date)s\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" %(start_date)s'den\n"
|
||||
" "
|
||||
" ……………………………………………"
|
||||
"itibaren %(start_date)s\n"
|
||||
"………………………………………\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:5
|
||||
#, fuzzy
|
||||
@@ -36514,15 +36539,22 @@ msgid "Save selection"
|
||||
msgstr "Veri seçimi"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:82
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " from "
|
||||
#| "%(start_date)s\n"
|
||||
#| " "
|
||||
msgid ""
|
||||
"\n"
|
||||
" from %(start_date)s\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" %(start_date)s'den\n"
|
||||
" "
|
||||
" ……………………………………………"
|
||||
"itibaren %(start_date)s\n"
|
||||
"………………………………………\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/index.html:7
|
||||
msgid "Hello!"
|
||||
@@ -36977,8 +37009,10 @@ msgid "This feature is only available in test mode."
|
||||
msgstr "Bu geri ödeme şu anda işleme alınamaz."
|
||||
|
||||
#: pretix/presale/views/event.py:985
|
||||
#, fuzzy
|
||||
#| msgid "This account is inactive."
|
||||
msgid "Time machine disabled!"
|
||||
msgstr "Zaman makinesi devre dışı!"
|
||||
msgstr "Bu hesap aktif değildir."
|
||||
|
||||
#: pretix/presale/views/order.py:368 pretix/presale/views/order.py:433
|
||||
#: pretix/presale/views/order.py:514
|
||||
|
||||
@@ -8,16 +8,16 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2024-12-25 23:27+0000\n"
|
||||
"Last-Translator: Aarni Heinonen <vamoosev@gmail.com>\n"
|
||||
"Language-Team: Chinese (Simplified Han script) <https://translate.pretix.eu/"
|
||||
"projects/pretix/pretix/zh_Hans/>\n"
|
||||
"PO-Revision-Date: 2024-04-10 23:00+0000\n"
|
||||
"Last-Translator: Shiiko <shiiko@xlclan.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <https://translate.pretix.eu/projects/"
|
||||
"pretix/pretix/zh_Hans/>\n"
|
||||
"Language: zh_Hans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -37,11 +37,11 @@ msgstr "阿拉伯语"
|
||||
|
||||
#: pretix/_base_settings.py:83
|
||||
msgid "Basque"
|
||||
msgstr "巴斯克语"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:84
|
||||
msgid "Catalan"
|
||||
msgstr "加泰罗尼亚语"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:85
|
||||
msgid "Chinese (simplified)"
|
||||
@@ -99,7 +99,7 @@ msgstr "拉脱维亚语"
|
||||
|
||||
#: pretix/_base_settings.py:98
|
||||
msgid "Norwegian Bokmål"
|
||||
msgstr "挪威语"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:99
|
||||
msgid "Polish"
|
||||
@@ -123,11 +123,11 @@ msgstr "俄语"
|
||||
|
||||
#: pretix/_base_settings.py:104
|
||||
msgid "Slovak"
|
||||
msgstr "斯洛伐克语"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:105
|
||||
msgid "Swedish"
|
||||
msgstr "瑞典语"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:106
|
||||
msgid "Spanish"
|
||||
@@ -172,8 +172,10 @@ msgid "Allowed URIs list, space separated"
|
||||
msgstr "允许的 URIs 列表, 用空格分隔"
|
||||
|
||||
#: pretix/api/models.py:47
|
||||
#, fuzzy
|
||||
#| msgid "Allowed URIs list, space separated"
|
||||
msgid "Allowed Post Logout URIs list, space separated"
|
||||
msgstr "允许的注销后 URI 列表,以空格分隔"
|
||||
msgstr "允许的 URIs 列表, 用空格分隔"
|
||||
|
||||
#: pretix/api/models.py:51 pretix/base/models/customers.py:406
|
||||
#: pretix/plugins/paypal/payment.py:113 pretix/plugins/paypal2/payment.py:110
|
||||
@@ -245,9 +247,10 @@ msgid "Meta data property '{name}' does not exist."
|
||||
msgstr "元数据属性“{name}”不存在."
|
||||
|
||||
#: pretix/api/serializers/event.py:249 pretix/api/serializers/event.py:552
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Meta data property '{name}' does not exist."
|
||||
msgid "Meta data property '{name}' does not allow value '{value}'."
|
||||
msgstr "元数据属性“{name}”不允许值“{value}”。"
|
||||
msgstr "元数据属性“{name}”不存在."
|
||||
|
||||
#: pretix/api/serializers/event.py:293
|
||||
#, python-brace-format
|
||||
|
||||
@@ -8,16 +8,16 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-16 14:20+0000\n"
|
||||
"PO-Revision-Date: 2025-01-04 19:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: Chinese (Traditional Han script) <https://translate.pretix.eu/"
|
||||
"projects/pretix/pretix/zh_Hant/>\n"
|
||||
"PO-Revision-Date: 2024-01-22 17:08+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: Chinese (Traditional) <https://translate.pretix.eu/projects/"
|
||||
"pretix/pretix/zh_Hant/>\n"
|
||||
"Language: zh_Hant\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.3.1\n"
|
||||
|
||||
#: pretix/_base_settings.py:79
|
||||
msgid "English"
|
||||
@@ -37,11 +37,11 @@ msgstr "阿拉伯語"
|
||||
|
||||
#: pretix/_base_settings.py:83
|
||||
msgid "Basque"
|
||||
msgstr "巴斯克語"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:84
|
||||
msgid "Catalan"
|
||||
msgstr "嘉泰羅尼亞語"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:85
|
||||
msgid "Chinese (simplified)"
|
||||
@@ -85,7 +85,7 @@ msgstr "希臘語"
|
||||
|
||||
#: pretix/_base_settings.py:95
|
||||
msgid "Indonesian"
|
||||
msgstr "印尼語"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:96
|
||||
msgid "Italian"
|
||||
@@ -97,7 +97,7 @@ msgstr "拉脫維亞語"
|
||||
|
||||
#: pretix/_base_settings.py:98
|
||||
msgid "Norwegian Bokmål"
|
||||
msgstr "挪威博克馬爾語"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:99
|
||||
msgid "Polish"
|
||||
@@ -121,11 +121,11 @@ msgstr "俄語"
|
||||
|
||||
#: pretix/_base_settings.py:104
|
||||
msgid "Slovak"
|
||||
msgstr "斯洛伐克語"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:105
|
||||
msgid "Swedish"
|
||||
msgstr "瑞典語"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py:106
|
||||
msgid "Spanish"
|
||||
@@ -582,8 +582,10 @@ msgid "Customer account changed"
|
||||
msgstr "客戶帳戶電子郵件更改"
|
||||
|
||||
#: pretix/api/webhooks.py:394
|
||||
#, fuzzy
|
||||
#| msgid "The customer account has been anonymized."
|
||||
msgid "Customer account anonymized"
|
||||
msgstr "客戶帳戶已匿名化"
|
||||
msgstr "客戶帳戶已匿名化。"
|
||||
|
||||
#: pretix/base/addressvalidation.py:100 pretix/base/addressvalidation.py:103
|
||||
#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:960
|
||||
@@ -645,7 +647,7 @@ msgstr "密碼"
|
||||
|
||||
#: pretix/base/auth.py:176 pretix/base/auth.py:183
|
||||
msgid "Your password must contain both numeric and alphabetic characters."
|
||||
msgstr "您的密碼必須包含數字和字母字元。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/auth.py:202 pretix/base/auth.py:212
|
||||
#, python-format
|
||||
@@ -653,7 +655,7 @@ msgid "Your password may not be the same as your previous password."
|
||||
msgid_plural ""
|
||||
"Your password may not be the same as one of your %(history_length)s previous "
|
||||
"passwords."
|
||||
msgstr[0] "您的密碼可能與您之前的 %(history_length)s密碼之一不同。"
|
||||
msgstr[0] ""
|
||||
|
||||
#: pretix/base/channels.py:168
|
||||
msgid "Online shop"
|
||||
@@ -661,13 +663,13 @@ msgstr "網上商店"
|
||||
|
||||
#: pretix/base/channels.py:174
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/channels.py:175
|
||||
msgid ""
|
||||
"API sales channels come with no built-in functionality, but may be used for "
|
||||
"custom integrations."
|
||||
msgstr "API銷售渠道沒有內建功能,但可用於自定義整合。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/context.py:45
|
||||
#, python-brace-format
|
||||
@@ -2887,7 +2889,7 @@ msgstr "優惠券代碼"
|
||||
#: pretix/base/forms/__init__.py:118
|
||||
#, python-brace-format
|
||||
msgid "You can use {markup_name} in this field."
|
||||
msgstr "您可以在此欄位中使用{markup_name}。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/__init__.py:178
|
||||
#, python-format
|
||||
@@ -3087,8 +3089,6 @@ msgid ""
|
||||
"up. Please note: to use literal \"{\" or \"}\", you need to double them as "
|
||||
"\"{{\" and \"}}\"."
|
||||
msgstr ""
|
||||
"您的佔位符語法有誤。 請檢查佔位符上的開頭“{”和結尾“}”花括號是否匹配。 "
|
||||
"請注意:要使用字面“{”或“}”,您需要將它們加倍為“{{”和“}}”。"
|
||||
|
||||
#: pretix/base/forms/validators.py:72 pretix/control/views/event.py:758
|
||||
#, fuzzy, python-format
|
||||
@@ -3097,9 +3097,10 @@ msgid "Invalid placeholder: {%(value)s}"
|
||||
msgstr "無效的佔位元: %(value)s)s"
|
||||
|
||||
#: pretix/base/forms/widgets.py:68
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Sample city"
|
||||
msgid "Sample: %s"
|
||||
msgstr "範例: %s"
|
||||
msgstr "範例城市"
|
||||
|
||||
#: pretix/base/forms/widgets.py:71
|
||||
#, python-brace-format
|
||||
@@ -3338,7 +3339,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/invoice.py:858
|
||||
msgid "Default invoice renderer (European-style letter)"
|
||||
msgstr "預設發票渲染器(歐式信件)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/invoice.py:947
|
||||
msgctxt "invoice"
|
||||
@@ -3347,13 +3348,14 @@ msgstr "(請隨時報價)"
|
||||
|
||||
#: pretix/base/invoice.py:994
|
||||
msgid "Simplified invoice renderer"
|
||||
msgstr "簡化的發票渲染器"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/invoice.py:1013
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Event date range"
|
||||
msgctxt "invoice"
|
||||
msgid "Event date: {date_range}"
|
||||
msgstr "活動日期: {date_range}"
|
||||
msgstr "活動日期區間"
|
||||
|
||||
#: pretix/base/media.py:71
|
||||
msgid "Barcode / QR-Code"
|
||||
@@ -3574,8 +3576,10 @@ msgid "Maximum usages"
|
||||
msgstr "最大使用量"
|
||||
|
||||
#: pretix/base/modelimport_vouchers.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Maximum number of items per order"
|
||||
msgid "The maximum number of usages must be set."
|
||||
msgstr "必須設定最大使用次數。"
|
||||
msgstr "每項訂單的最大商品數量"
|
||||
|
||||
#: pretix/base/modelimport_vouchers.py:88 pretix/base/models/vouchers.py:205
|
||||
msgid "Minimum usages"
|
||||
@@ -3610,7 +3614,7 @@ msgstr "優惠券價值"
|
||||
|
||||
#: pretix/base/modelimport_vouchers.py:165
|
||||
msgid "It is pointless to set a value without a price mode."
|
||||
msgstr "在沒有價格模式的情況下設定值是沒有意義的。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/modelimport_vouchers.py:237 pretix/base/models/items.py:2081
|
||||
#: pretix/base/models/vouchers.py:272
|
||||
@@ -3739,18 +3743,18 @@ msgstr ""
|
||||
#: pretix/base/models/checkin.py:65
|
||||
msgctxt "checkin"
|
||||
msgid "Ignore check-ins on this list in statistics"
|
||||
msgstr "忽略統計中此列表中的簽到"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/checkin.py:69
|
||||
msgctxt "checkin"
|
||||
msgid "Tickets with a check-in on this list should be considered \"used\""
|
||||
msgstr "此列表中有簽到的門票應被視為「已使用」"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/checkin.py:70
|
||||
msgid ""
|
||||
"This is relevant in various situations, e.g. for deciding if a ticket can "
|
||||
"still be canceled by the customer."
|
||||
msgstr "這與各種情況有關,例如用於決定客戶是否仍然可以取消門票。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/checkin.py:74
|
||||
msgctxt "checkin"
|
||||
@@ -4061,8 +4065,7 @@ msgid ""
|
||||
"By default, the discount is applied across the same selection of products "
|
||||
"than the condition for the discount given above. If you want, you can "
|
||||
"however also select a different selection of products."
|
||||
msgstr "預設情況下,折扣適用於與上述折扣條件相同的產品選擇。 "
|
||||
"然而,如果您願意,您也可以選擇不同的產品。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/discount.py:138
|
||||
#, fuzzy
|
||||
@@ -4353,7 +4356,7 @@ msgstr "對客戶顯示簽到次數"
|
||||
msgid ""
|
||||
"This field will be shown to filter events in the public event list and "
|
||||
"calendar."
|
||||
msgstr "將顯示此欄位,以過濾公共活動列表和日曆中的活動。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/event.py:1731 pretix/control/forms/organizer.py:269
|
||||
#: pretix/control/forms/organizer.py:273
|
||||
@@ -5896,8 +5899,10 @@ msgid "Team members"
|
||||
msgstr "團隊成員"
|
||||
|
||||
#: pretix/base/models/organizer.py:289
|
||||
#, fuzzy
|
||||
#| msgid "Do you really want to disable two-factor authentication?"
|
||||
msgid "Require all members of this team to use two-factor authentication"
|
||||
msgstr "要求該團隊的所有成員使用雙因素身份驗證"
|
||||
msgstr "你真的要禁用兩步驟驗證嗎?"
|
||||
|
||||
#: pretix/base/models/organizer.py:290
|
||||
msgid ""
|
||||
@@ -7817,9 +7822,10 @@ msgid "number of entries before {datetime}"
|
||||
msgstr "今日條目數數量"
|
||||
|
||||
#: pretix/base/services/checkin.py:320
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "number of entries today"
|
||||
msgid "number of days with an entry since {datetime}"
|
||||
msgstr "自 {datetime}以來條目的天數"
|
||||
msgstr "今日條目數數量"
|
||||
|
||||
#: pretix/base/services/checkin.py:321
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -13801,8 +13807,10 @@ msgstr ""
|
||||
"的所有部分,VIP區除外。"
|
||||
|
||||
#: pretix/control/forms/item.py:664
|
||||
#, fuzzy
|
||||
#| msgid "The ordered product \"{item}\" is no longer available."
|
||||
msgid "Show product with info on why it’s unavailable"
|
||||
msgstr "顯示產品,並瞭解為什麼它不可用"
|
||||
msgstr "訂購的產品“{item}”不再可用。"
|
||||
|
||||
#: pretix/control/forms/item.py:677
|
||||
msgid ""
|
||||
@@ -18873,8 +18881,10 @@ msgid "Calculation"
|
||||
msgstr "取消"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:64
|
||||
#, fuzzy
|
||||
#| msgid "Reason:"
|
||||
msgid "Reason"
|
||||
msgstr "理由"
|
||||
msgstr "理由:"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:137
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:251
|
||||
@@ -19946,8 +19956,11 @@ msgid ""
|
||||
msgstr "目前不可用,因為已設定此產品的有限時間範圍"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/discounts.html:111
|
||||
#, fuzzy
|
||||
#| msgctxt "discount"
|
||||
#| msgid "Condition"
|
||||
msgid "Condition:"
|
||||
msgstr "條件:"
|
||||
msgstr "條件"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/discounts.html:126
|
||||
msgid "Applies to:"
|
||||
@@ -22009,8 +22022,10 @@ msgid "Channel type"
|
||||
msgstr "掃描"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/channel_delete.html:5
|
||||
#, fuzzy
|
||||
#| msgid "Sales channel"
|
||||
msgid "Delete sales channel:"
|
||||
msgstr "銷售管道:"
|
||||
msgstr "銷售管道"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/channel_delete.html:10
|
||||
#, fuzzy
|
||||
@@ -22029,8 +22044,10 @@ msgid ""
|
||||
msgstr "無法刪除此成員資格,因為它已在訂單中使用。將其結束日期更改為過去。"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/channel_edit.html:6
|
||||
#, fuzzy
|
||||
#| msgid "Sales channel"
|
||||
msgid "Sales channel:"
|
||||
msgstr "銷售管道:"
|
||||
msgstr "銷售管道"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/channels.html:8
|
||||
msgid ""
|
||||
@@ -26437,8 +26454,10 @@ msgid "Login from new source detected"
|
||||
msgstr "未檢測到訂購號"
|
||||
|
||||
#: pretix/helpers/security.py:170
|
||||
#, fuzzy
|
||||
#| msgid "Unknown country code."
|
||||
msgid "Unknown country"
|
||||
msgstr "未知國家"
|
||||
msgstr "未知國家代碼."
|
||||
|
||||
#: pretix/multidomain/models.py:36
|
||||
#, fuzzy
|
||||
@@ -29466,7 +29485,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:350 pretix/plugins/stripe/payment.py:1552
|
||||
msgid "Alipay"
|
||||
msgstr "支付寶"
|
||||
msgstr "Alipay"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:358 pretix/plugins/stripe/payment.py:1564
|
||||
msgid "Bancontact"
|
||||
@@ -30051,12 +30070,16 @@ msgid "Enter the entity number, reference number, and amount."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:25
|
||||
#, fuzzy
|
||||
#| msgid "Invoice number"
|
||||
msgid "Entity number:"
|
||||
msgstr "公司編號:"
|
||||
msgstr "發票編號"
|
||||
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:26
|
||||
#, fuzzy
|
||||
#| msgid "Reference code"
|
||||
msgid "Reference number:"
|
||||
msgstr "參考代碼:"
|
||||
msgstr "參考代碼"
|
||||
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:35
|
||||
msgid ""
|
||||
@@ -31133,9 +31156,10 @@ msgstr "新價格:"
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:176
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:329
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:331
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Modify price for %(item)s"
|
||||
msgid "Modify price for %(item)s, at least %(price)s"
|
||||
msgstr "修改%(item)s的價格,至少 %(price)s"
|
||||
msgstr "修改%(item)s 的價格"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:153
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:294
|
||||
@@ -31239,12 +31263,16 @@ msgid "Enter a voucher code below to buy this product."
|
||||
msgstr "在下面輸入優惠券代碼以購買此票。"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:10
|
||||
#, fuzzy
|
||||
#| msgid "Not available"
|
||||
msgid "Not available yet."
|
||||
msgstr "尚不可用。"
|
||||
msgstr "無法使用"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:14
|
||||
#, fuzzy
|
||||
#| msgid "Not available"
|
||||
msgid "Not available any more."
|
||||
msgstr "不再可用。"
|
||||
msgstr "無法使用"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:19
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:85
|
||||
@@ -32587,7 +32615,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" 從 %(start_date)s\n"
|
||||
" from %(start_date)s\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:12
|
||||
@@ -33104,8 +33132,10 @@ msgid "This feature is only available in test mode."
|
||||
msgstr "此禮品卡只能在測試模式下使用。"
|
||||
|
||||
#: pretix/presale/views/event.py:985
|
||||
#, fuzzy
|
||||
#| msgid "This account is disabled."
|
||||
msgid "Time machine disabled!"
|
||||
msgstr "時間機器被禁用!"
|
||||
msgstr "此帳戶已禁用。"
|
||||
|
||||
#: pretix/presale/views/order.py:368 pretix/presale/views/order.py:433
|
||||
#: pretix/presale/views/order.py:514
|
||||
@@ -33236,12 +33266,14 @@ msgid ""
|
||||
msgstr "你不能將自己添加到候補名單中,因為該商品目前有貨。"
|
||||
|
||||
#: pretix/presale/views/waiting.py:180
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "We've added you to the waiting list. You will receive an email as soon as "
|
||||
#| "this product gets available again."
|
||||
msgid ""
|
||||
"We've added you to the waiting list. We will send an email to {email} as "
|
||||
"soon as this product gets available again."
|
||||
msgstr "我們已將您列入候補名單。 "
|
||||
"一旦該產品再次上市,我們將立即向{email}傳送電子郵件。"
|
||||
msgstr "我們已將你添加到候補名單中。 一旦該產品再次,您將收到一封電子郵件。"
|
||||
|
||||
#: pretix/presale/views/waiting.py:208
|
||||
msgid "We could not find you on our waiting list."
|
||||
|
||||
@@ -289,7 +289,7 @@ def _render_nup(input_files: List[str], num_pages: int, output_file: BytesIO, op
|
||||
pass
|
||||
|
||||
try:
|
||||
badges_pdf = PdfReader(input_files.pop(0))
|
||||
badges_pdf = PdfReader(input_files.pop())
|
||||
offset = 0
|
||||
for i, chunk_indices in enumerate(_chunks(range(num_pages), badges_per_page * max_nup_pages)):
|
||||
chunk = []
|
||||
@@ -298,7 +298,7 @@ def _render_nup(input_files: List[str], num_pages: int, output_file: BytesIO, op
|
||||
# file has beforehand
|
||||
if j - offset >= len(badges_pdf.pages):
|
||||
offset += len(badges_pdf.pages)
|
||||
badges_pdf = PdfReader(input_files.pop(0))
|
||||
badges_pdf = PdfReader(input_files.pop())
|
||||
chunk.append(badges_pdf.pages[j - offset])
|
||||
# Reset some internal state from pypdf. This will make it a little slower, but will prevent us from
|
||||
# running out of memory if we process a really large file.
|
||||
|
||||
@@ -37,7 +37,7 @@ class PayPalEnvironment(VendorPayPalEnvironment):
|
||||
'payer_id': self.merchant_id
|
||||
},
|
||||
key=None,
|
||||
algorithm="none",
|
||||
algorithm=None,
|
||||
)
|
||||
return ""
|
||||
|
||||
|
||||
@@ -743,7 +743,7 @@ class SSOLoginReturnView(RedirectBackMixin, View):
|
||||
popup_origin,
|
||||
)
|
||||
|
||||
nonce, redirect_to = re.split("[%#§]", request.GET['state'], maxsplit=1) # Allow § and # for backwards-compatibility for a while
|
||||
nonce, redirect_to = re.split("[%#§]", request.GET['state'], 1) # Allow § and # for backwards-compatibility for a while
|
||||
|
||||
if nonce != request.session.get(f'pretix_customerauth_{self.provider.pk}_nonce'):
|
||||
return self._fail(
|
||||
|
||||
@@ -710,7 +710,7 @@ def can_generate_invoice(event, order, ignore_payments=False):
|
||||
and (
|
||||
event.settings.get('invoice_generate') in ('user', 'True')
|
||||
or (
|
||||
event.settings.get('invoice_generate') == 'paid'
|
||||
event.settings.get('invoice_generate') in ('paid', 'user_paid')
|
||||
and order.status == Order.STATUS_PAID
|
||||
)
|
||||
) and (
|
||||
|
||||
14
src/pretix/static/npm_dir/package-lock.json
generated
14
src/pretix/static/npm_dir/package-lock.json
generated
@@ -11,7 +11,7 @@
|
||||
"@babel/core": "^7.26.0",
|
||||
"@babel/preset-env": "^7.26.0",
|
||||
"@rollup/plugin-babel": "^6.0.4",
|
||||
"@rollup/plugin-node-resolve": "^16.0.0",
|
||||
"@rollup/plugin-node-resolve": "^15.3.0",
|
||||
"rollup": "^2.79.1",
|
||||
"rollup-plugin-vue": "^5.0.1",
|
||||
"vue": "^2.7.16",
|
||||
@@ -1522,9 +1522,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-node-resolve": {
|
||||
"version": "16.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz",
|
||||
"integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==",
|
||||
"version": "15.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz",
|
||||
"integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==",
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.0.1",
|
||||
"@types/resolve": "1.20.2",
|
||||
@@ -4761,9 +4761,9 @@
|
||||
}
|
||||
},
|
||||
"@rollup/plugin-node-resolve": {
|
||||
"version": "16.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz",
|
||||
"integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==",
|
||||
"version": "15.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz",
|
||||
"integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==",
|
||||
"requires": {
|
||||
"@rollup/pluginutils": "^5.0.1",
|
||||
"@types/resolve": "1.20.2",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"@babel/core": "^7.26.0",
|
||||
"@babel/preset-env": "^7.26.0",
|
||||
"@rollup/plugin-babel": "^6.0.4",
|
||||
"@rollup/plugin-node-resolve": "^16.0.0",
|
||||
"@rollup/plugin-node-resolve": "^15.3.0",
|
||||
"vue": "^2.7.16",
|
||||
"rollup": "^2.79.1",
|
||||
"rollup-plugin-vue": "^5.0.1",
|
||||
|
||||
@@ -169,7 +169,7 @@ pre[lang=is], input[lang=is], textarea[lang=is], div[lang=is] { background-image
|
||||
pre[lang=it], input[lang=it], textarea[lang=it], div[lang=it] { background-image: url(static('pretixbase/img/flags/it.png')); }
|
||||
pre[lang=jm], input[lang=jm], textarea[lang=jm], div[lang=jm] { background-image: url(static('pretixbase/img/flags/jm.png')); }
|
||||
pre[lang=jo], input[lang=jo], textarea[lang=jo], div[lang=jo] { background-image: url(static('pretixbase/img/flags/jo.png')); }
|
||||
pre[lang=ja], input[lang=ja], textarea[lang=ja], div[lang=ja] { background-image: url(static('pretixbase/img/flags/jp.png')); }
|
||||
pre[lang=jp], input[lang=jp], textarea[lang=jp], div[lang=jp] { background-image: url(static('pretixbase/img/flags/jp.png')); }
|
||||
pre[lang=ke], input[lang=ke], textarea[lang=ke], div[lang=ke] { background-image: url(static('pretixbase/img/flags/ke.png')); }
|
||||
pre[lang=kg], input[lang=kg], textarea[lang=kg], div[lang=kg] { background-image: url(static('pretixbase/img/flags/kg.png')); }
|
||||
pre[lang=kh], input[lang=kh], textarea[lang=kh], div[lang=kh] { background-image: url(static('pretixbase/img/flags/kh.png')); }
|
||||
|
||||
@@ -497,51 +497,6 @@ def test_event_create_with_clone(token_client, organizer, event, meta_prop, urls
|
||||
assert cloned_event.plugins == ""
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@pytest.mark.parametrize("urlstyle", [
|
||||
'/api/v1/organizers/{}/events/{}/clone/',
|
||||
'/api/v1/organizers/{}/events/?clone_from={}',
|
||||
])
|
||||
def test_event_create_with_clone_migrate_sales_channels(token_client, organizer, event, meta_prop, urlstyle):
|
||||
with scopes_disabled():
|
||||
all_channels = list(organizer.sales_channels.values_list("identifier", flat=True))
|
||||
resp = token_client.post(
|
||||
urlstyle.format(organizer.slug, event.slug),
|
||||
{
|
||||
"name": {
|
||||
"de": "Demo Konference 2020 Test",
|
||||
"en": "Demo Conference 2020 Test"
|
||||
},
|
||||
"live": False,
|
||||
"testmode": True,
|
||||
"currency": "EUR",
|
||||
"date_from": "2018-12-27T10:00:00Z",
|
||||
"date_to": "2018-12-28T10:00:00Z",
|
||||
"date_admission": "2018-12-27T08:00:00Z",
|
||||
"is_public": False,
|
||||
"presale_start": None,
|
||||
"presale_end": None,
|
||||
"location": None,
|
||||
"slug": "2030",
|
||||
"sales_channels": all_channels,
|
||||
"meta_data": {
|
||||
"type": "Workshop"
|
||||
},
|
||||
"plugins": [
|
||||
"pretix.plugins.ticketoutputpdf"
|
||||
],
|
||||
"timezone": "Europe/Vienna"
|
||||
},
|
||||
format='json'
|
||||
)
|
||||
|
||||
assert resp.status_code == 201
|
||||
with scopes_disabled():
|
||||
cloned_event = Event.objects.get(organizer=organizer.pk, slug='2030')
|
||||
assert cloned_event.all_sales_channels
|
||||
assert not cloned_event.limit_sales_channels.exists()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_event_create_with_clone_unknown_source(user, user_client, organizer, event):
|
||||
with scopes_disabled():
|
||||
|
||||
@@ -526,7 +526,6 @@ def test_order_regenerate_secrets(token_client, organizer, event, order):
|
||||
s = order.secret
|
||||
with scopes_disabled():
|
||||
ps = order.positions.first().secret
|
||||
psw = order.positions.first().web_secret
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/{}/regenerate_secrets/'.format(
|
||||
organizer.slug, event.slug, order.code
|
||||
@@ -537,7 +536,6 @@ def test_order_regenerate_secrets(token_client, organizer, event, order):
|
||||
assert s != order.secret
|
||||
with scopes_disabled():
|
||||
assert ps != order.positions.first().secret
|
||||
assert psw != order.positions.first().web_secret
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -545,7 +543,6 @@ def test_position_regenerate_secrets(token_client, organizer, event, order):
|
||||
with scopes_disabled():
|
||||
p = order.positions.first()
|
||||
ps = p.secret
|
||||
psw = p.web_secret
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orderpositions/{}/regenerate_secrets/'.format(
|
||||
organizer.slug, event.slug, p.pk,
|
||||
@@ -555,7 +552,6 @@ def test_position_regenerate_secrets(token_client, organizer, event, order):
|
||||
p.refresh_from_db()
|
||||
with scopes_disabled():
|
||||
assert ps != p.secret
|
||||
assert psw != p.web_secret
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
@@ -1133,49 +1133,6 @@ def test_order_mark_paid_expired_seat_taken(client, env):
|
||||
assert o.status == Order.STATUS_EXPIRED
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_mark_paid_expired_blocked(client, env):
|
||||
with scopes_disabled():
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
o.expires = now() - timedelta(days=5)
|
||||
o.status = Order.STATUS_EXPIRED
|
||||
o.sales_channel = env[0].organizer.sales_channels.get(identifier="bar")
|
||||
olddate = o.expires
|
||||
o.save()
|
||||
seat_a1 = env[0].seats.create(seat_number="A1", product=env[3], seat_guid="A1", blocked=True)
|
||||
p = o.positions.first()
|
||||
p.seat = seat_a1
|
||||
p.save()
|
||||
|
||||
q = Quota.objects.create(event=env[0], size=100)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
'force': 'on'
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in response.content
|
||||
with scopes_disabled():
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
assert o.expires.strftime("%Y-%m-%d %H:%M:%S") == olddate.strftime("%Y-%m-%d %H:%M:%S")
|
||||
assert o.status == Order.STATUS_EXPIRED
|
||||
|
||||
env[0].settings.seating_allow_blocked_seats_for_channel = ["bar"]
|
||||
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
'force': 'on'
|
||||
}, follow=True)
|
||||
assert b'alert-success' in response.content
|
||||
with scopes_disabled():
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
assert o.status == Order.STATUS_PAID
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_go_lowercase(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
|
||||
@@ -1604,8 +1604,6 @@ class EventLocaleTest(EventTestMixin, SoupTest):
|
||||
self.event.settings.locales = ['de', 'en']
|
||||
self.event.settings.locale = 'de'
|
||||
self.event.settings.timezone = 'UTC'
|
||||
self.event.date_from = datetime.datetime(2024, 12, 26, 14, 0, tzinfo=datetime.timezone.utc)
|
||||
self.event.save()
|
||||
|
||||
def test_german_by_default(self):
|
||||
response = self.client.get(
|
||||
@@ -1621,7 +1619,7 @@ class EventLocaleTest(EventTestMixin, SoupTest):
|
||||
'/%s/%s/' % (self.orga.slug, self.event.slug)
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn('Thu, Dec. 26th,', response.rendered_content)
|
||||
self.assertIn('Fri, Dec. 26th,', response.rendered_content)
|
||||
self.assertIn('14:00', response.rendered_content)
|
||||
|
||||
def test_english_region_US(self):
|
||||
@@ -1631,7 +1629,7 @@ class EventLocaleTest(EventTestMixin, SoupTest):
|
||||
'/%s/%s/' % (self.orga.slug, self.event.slug)
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn('Thu, Dec. 26th,', response.rendered_content)
|
||||
self.assertIn('Fri, Dec. 26th,', response.rendered_content)
|
||||
self.assertIn('2 p.m.', response.rendered_content)
|
||||
|
||||
def test_german_region_US(self):
|
||||
@@ -1641,5 +1639,5 @@ class EventLocaleTest(EventTestMixin, SoupTest):
|
||||
'/%s/%s/' % (self.orga.slug, self.event.slug)
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn('Do, 26. Dezember', response.rendered_content)
|
||||
self.assertIn('Fr, 26. Dezember', response.rendered_content)
|
||||
self.assertIn('14:00', response.rendered_content)
|
||||
|
||||
@@ -874,6 +874,21 @@ class OrdersTest(BaseOrdersTest):
|
||||
{}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_invoice_create_onlypaid(self):
|
||||
self.event.settings.set('invoice_generate', 'user_paid')
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
self.order.status = Order.STATUS_PAID
|
||||
self.order.save()
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
with scopes_disabled():
|
||||
assert self.order.invoices.exists()
|
||||
|
||||
def test_invoice_create_duplicate(self):
|
||||
self.event.settings.set('invoice_generate', 'user')
|
||||
with scopes_disabled():
|
||||
|
||||
Reference in New Issue
Block a user