forked from CGM_Public/pretix_original
Compare commits
93
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
48356ea19e | ||
|
|
6fa91b37ab | ||
|
|
d7aae65777 | ||
|
|
dbd971cc22 | ||
|
|
6d4aba6e3d | ||
|
|
4755e7af0e | ||
|
|
f476ce7696 | ||
|
|
bf85789efd | ||
|
|
3fbd63e80a | ||
|
|
2af60b499f | ||
|
|
b74371bef1 | ||
|
|
9f8ba28cda | ||
|
|
44a7bfceab | ||
|
|
5af9be6ef0 | ||
|
|
b809d93bdc | ||
|
|
d5a8d71ed3 | ||
|
|
d481574d42 | ||
|
|
0593172146 | ||
|
|
64a5361dba | ||
|
|
5622c1ddaa | ||
|
|
73c29fc3b9 | ||
|
|
c73f2f77cf | ||
|
|
55a0db3a32 | ||
|
|
a47768312b | ||
|
|
cf272bf575 | ||
|
|
f3e0e7f4ac | ||
|
|
5a06f9416c | ||
|
|
606e3f1c0f | ||
|
|
e38ae32028 | ||
|
|
b74e2fa3e1 | ||
|
|
c79a7002a6 | ||
|
|
1ebbae2b5b | ||
|
|
7db3b47889 | ||
|
|
b7ac8fc4ef | ||
|
|
c1a830e54d | ||
|
|
2178dee6db | ||
|
|
266104f4af | ||
|
|
d10afbd080 | ||
|
|
1e78bfbc4c | ||
|
|
08356feea1 | ||
|
|
b124cb6aad | ||
|
|
cb5182f21c | ||
|
|
011487404c | ||
|
|
7703c04954 | ||
|
|
58f331ba1f | ||
|
|
91a3993cef | ||
|
|
4969c12c0a | ||
|
|
0b319d201c | ||
|
|
eceeb9caa7 | ||
|
|
3c17d05d05 | ||
|
|
1c17c35b16 | ||
|
|
f9ea9de078 | ||
|
|
4dd6e1a19f | ||
|
|
4cb9d76281 | ||
|
|
f8cc31b120 | ||
|
|
b241adb7d0 | ||
|
|
7b1558b22e | ||
|
|
488f731396 | ||
|
|
b8b02de283 | ||
|
|
c4a5a9a84d | ||
|
|
4e5fbacf6d | ||
|
|
7fe31634e6 | ||
|
|
f25c233e91 | ||
|
|
5cf28f1b81 | ||
|
|
d08216d8c5 | ||
|
|
4a28689690 | ||
|
|
958f75b109 | ||
|
|
81f58456e5 | ||
|
|
4d9dfa88fe | ||
|
|
ea792e76b2 | ||
|
|
5c448279f0 | ||
|
|
e3fa1aed7f | ||
|
|
b164cf44c0 | ||
|
|
7bc79337c3 | ||
|
|
5d8ba189fa | ||
|
|
1ea1c1789c | ||
|
|
1a6edae769 | ||
|
|
c4950e714d | ||
|
|
407728cc55 | ||
|
|
9fe25544c1 | ||
|
|
8133061fe1 | ||
|
|
288ac50600 | ||
|
|
e7657a3dd3 | ||
|
|
b659534772 | ||
|
|
c11ebb1391 | ||
|
|
b20557a996 | ||
|
|
e4a0bba3bc | ||
|
|
c369ba5f60 | ||
|
|
2c876057bf | ||
|
|
b70c1b02c2 | ||
|
|
01d736361d | ||
|
|
7627e4b548 | ||
|
|
541e7412e1 |
@@ -1,202 +0,0 @@
|
||||
Führe den vollständigen Upstream-Merge-Workflow für pretix_cgo durch. Gehe dabei strikt Schritt für Schritt vor und warte an den markierten Stellen auf Bestätigung.
|
||||
|
||||
---
|
||||
|
||||
## Schritt 1 – Master aktualisieren
|
||||
|
||||
```bash
|
||||
git checkout master
|
||||
git pull
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schritt 2 – Upstream-Tags holen & neuesten Tag ermitteln
|
||||
|
||||
```bash
|
||||
git fetch upstream --tags
|
||||
```
|
||||
|
||||
Bestimme danach den neuesten upstream-Tag (Format `vYYYY.M.P`, **ohne** das `.0`-Suffix unserer eigenen Tags):
|
||||
|
||||
```bash
|
||||
git tag --sort=-version:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -1
|
||||
```
|
||||
|
||||
Merke dir diesen Tag als `UPSTREAM_TAG` (z.B. `v2026.5.0`) und leite daraus den Branch-Namen ab: `upstream/2026.5.0` (ohne führendes `v`).
|
||||
|
||||
---
|
||||
|
||||
## Schritt 3 – Branch erstellen
|
||||
|
||||
```bash
|
||||
git checkout -b upstream/<VERSION> tags/<UPSTREAM_TAG>
|
||||
# Beispiel: git checkout -b upstream/2026.5.0 tags/v2026.5.0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schritt 4 – Master mergen (immer, nicht optional)
|
||||
|
||||
```bash
|
||||
git merge master
|
||||
```
|
||||
|
||||
Bei Merge-Konflikten: Konflikte anzeigen und gemeinsam mit dem Nutzer lösen, bevor es weitergeht.
|
||||
|
||||
---
|
||||
|
||||
## Schritt 5 – Branch pushen & MR anlegen
|
||||
|
||||
Push mit Push Option, damit Gitea direkt einen MR anlegt:
|
||||
|
||||
```bash
|
||||
git push --set-upstream origin upstream/<VERSION> -o merge_request.create
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schritt 6 – Gender-Prüfung in den deutschen Übersetzungen
|
||||
|
||||
**Erst nach dem Merge mit master** die folgenden vier Dateien auf gegenderte Sprache prüfen:
|
||||
|
||||
- `src/pretix/locale/de/LC_MESSAGES/django.po`
|
||||
- `src/pretix/locale/de/LC_MESSAGES/djangojs.po`
|
||||
- `src/pretix/locale/de_Informal/LC_MESSAGES/django.po`
|
||||
- `src/pretix/locale/de_Informal/LC_MESSAGES/djangojs.po`
|
||||
|
||||
Suche in den `msgstr`-Zeilen (und den zugehörigen `msgid`-Zeilen für Kontext) nach folgenden Mustern:
|
||||
|
||||
| Muster | Beispiele |
|
||||
|--------|-----------|
|
||||
| Binneni mit `*` | `Teilnehmer*in`, `Käufer*innen` |
|
||||
| Binneni mit `:` | `Teilnehmer:in`, `Käufer:innen` |
|
||||
| Binneni mit `_` | `Teilnehmer_in`, `Käufer_innen` |
|
||||
| Binneni mit `(in)` | `Teilnehmer(in)`, `Käufer(innen)` |
|
||||
| Partizip-Plural auf `-enden` | `Teilnehmenden`, `Helfenden`, `Organisierenden`, `Bestellenden`, `Buchenden`, `Zahlenden` |
|
||||
|
||||
**Ausgabe der Befunde:** Zeige für jeden Treffer:
|
||||
1. Datei + Zeilennummer
|
||||
2. Den vollständigen `msgstr`-Block (mehrzeilig wenn nötig) als Kontext
|
||||
3. Den konkreten Vorschlag für die Ersetzung (z.B. `Teilnehmer*in` → `Teilnehmer`, `Teilnehmenden` → `Teilnehmer`)
|
||||
|
||||
Warte dann auf Freigabe durch den Nutzer, bevor Änderungen vorgenommen werden.
|
||||
|
||||
Nach Freigabe: Korrekturen direkt in den Dateien vornehmen und committen:
|
||||
|
||||
```bash
|
||||
git add src/pretix/locale/de/ src/pretix/locale/de_Informal/
|
||||
git commit -m "Remove gendered language from de/de_Informal translations"
|
||||
git push
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schritt 7 – Warten auf Merge-Bestätigung
|
||||
|
||||
**Hier pausieren.** Den Nutzer auffordern zu bestätigen, sobald der MR auf Gitea gemergt wurde.
|
||||
|
||||
---
|
||||
|
||||
## Schritt 8 – Master aktualisieren und neuen Tag vergeben
|
||||
|
||||
Nach Bestätigung:
|
||||
|
||||
```bash
|
||||
git checkout master
|
||||
git pull
|
||||
```
|
||||
|
||||
Den neuen Tag ableiten: `<UPSTREAM_TAG>.0` **ohne führendes `v`** (z.B. `v2026.5.0` → `2026.5.0.0`):
|
||||
|
||||
```bash
|
||||
git tag <VERSION>.0
|
||||
# Beispiel: git tag 2026.5.0.0
|
||||
git push origin <VERSION>.0
|
||||
```
|
||||
|
||||
Ausgabe: Bestätigung mit dem neuen Tag und kurzem Status.
|
||||
|
||||
---
|
||||
|
||||
## Schritt 9 – Warten auf Build-Pipeline
|
||||
|
||||
Nutze den Gitea MCP Server, um den Pipeline-Lauf für den soeben gepushten Tag zu überwachen:
|
||||
|
||||
- **Repo:** `CGM_Public` / `pretix_cgo`
|
||||
- **Methode:** `mcp__gitea__actions_run_read` mit `method: list_runs`
|
||||
- Warte, bis ein Run mit dem passenden Ref (`refs/tags/<NEUER_TAG>`) den Status `success` erreicht.
|
||||
- Prüfe alle ~30 Sekunden erneut und zeige dem Nutzer den aktuellen Status (running / success / failure).
|
||||
- Bei `failure`: sofort stoppen und dem Nutzer melden.
|
||||
|
||||
Erst wenn der Build erfolgreich (`success`) abgeschlossen ist, weitermachen.
|
||||
|
||||
---
|
||||
|
||||
## Schritt 10 – cgm72 GitOps-Update
|
||||
|
||||
Im GitOps-Repo unter `../OrtlerstrasseGitOps/` (liegt immer neben dem pretix_cgo-Repo):
|
||||
|
||||
1. In `pretix-cgm72/pretix-deployment.yaml` den Image-Tag aktualisieren:
|
||||
- Suche: `cr.ortlerstrasse.de/cgo/pretix:<ALTER_TAG>`
|
||||
- Ersetze mit: `cr.ortlerstrasse.de/cgo/pretix:<NEUER_TAG>` (= der in Schritt 8 gesetzte Git-Tag, z.B. `2026.5.0.0`)
|
||||
|
||||
2. Committen und pushen (im OrtlerstrasseGitOps-Verzeichnis):
|
||||
|
||||
```bash
|
||||
git -C ../OrtlerstrasseGitOps add pretix-cgm72/pretix-deployment.yaml
|
||||
git -C ../OrtlerstrasseGitOps commit -m "Update pretix-cgm72 to <NEUER_TAG>"
|
||||
git -C ../OrtlerstrasseGitOps push
|
||||
```
|
||||
|
||||
Der GitOps-Operator wendet das YAML automatisch via `kubectl apply` an und rollt den Container neu aus.
|
||||
|
||||
---
|
||||
|
||||
## Schritt 11 – cgm72: Container-Neustart abwarten und Loginseite prüfen
|
||||
|
||||
Warte, bis der Container neu gestartet ist, und prüfe dann die Loginseite:
|
||||
|
||||
- **URL:** `https://anmeldung.christliche-gemeinde.de/`
|
||||
- **Prüfung:** HTTP 200 und die Seite enthält typische Pretix-Inhalte (z.B. Stichwort „pretix" oder ein Login-Formular im Body)
|
||||
|
||||
Methode: Nutze `mcp__claude_ai_Simon_Fetch__fetch_page` (oder `curl -sI`), um die URL alle ~30 Sekunden abzurufen. Erwarte einen kurzen Ausfall während des Neustarts – warte danach auf eine erfolgreiche Antwort.
|
||||
|
||||
Zeige dem Nutzer das Ergebnis (Status-Code + kurzen Seitenausschnitt als Bestätigung).
|
||||
|
||||
---
|
||||
|
||||
## Schritt 12 – Manuelle Bestätigung für cgm72
|
||||
|
||||
**Hier pausieren.** Den Nutzer auffordern zu bestätigen, dass cgm72 korrekt funktioniert (`https://anmeldung.christliche-gemeinde.de/`), bevor mit sola fortgefahren wird.
|
||||
|
||||
---
|
||||
|
||||
## Schritt 13 – sola GitOps-Update
|
||||
|
||||
Im GitOps-Repo unter `../OrtlerstrasseGitOps/` (liegt immer neben dem pretix_cgo-Repo):
|
||||
|
||||
1. In `pretix-sola/pretix-deployment.yaml` den Image-Tag aktualisieren:
|
||||
- Suche: `cr.ortlerstrasse.de/cgo/pretix:<ALTER_TAG>`
|
||||
- Ersetze mit: `cr.ortlerstrasse.de/cgo/pretix:<NEUER_TAG>`
|
||||
|
||||
2. Committen und pushen:
|
||||
|
||||
```bash
|
||||
git -C ../OrtlerstrasseGitOps add pretix-sola/pretix-deployment.yaml
|
||||
git -C ../OrtlerstrasseGitOps commit -m "Update pretix-sola to <NEUER_TAG>"
|
||||
git -C ../OrtlerstrasseGitOps push
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schritt 14 – sola: Container-Neustart abwarten und Loginseite prüfen
|
||||
|
||||
Warte, bis der Container neu gestartet ist, und prüfe dann die Loginseite:
|
||||
|
||||
- **URL:** `https://anmeldung.sola-muenchen.de`
|
||||
- **Prüfung:** HTTP 200 und die Seite enthält typische Pretix-Inhalte
|
||||
|
||||
Methode: wie in Schritt 11.
|
||||
|
||||
Ausgabe: Bestätigung mit kurzem Abschluss-Status des gesamten Workflows.
|
||||
@@ -1,31 +0,0 @@
|
||||
name: Build Deploy email notification tool
|
||||
run-name: ${{ gitea.actor }} building new version of the email notification tool
|
||||
on:
|
||||
push: # Baut bei jedem Push (Branches + Tags)
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
Apply-Kubernetes-Resources:
|
||||
runs-on: podman
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Login to Docker Registry
|
||||
run: podman login -u ${{ secrets.REGISTRY_USERNAME }} -p ${{ secrets.REGISTRY_TOKEN }} cr.ortlerstrasse.de
|
||||
|
||||
- name: Set Docker Image Tag
|
||||
run: |
|
||||
if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then
|
||||
echo "TAG_NAME=${{ gitea.ref_name }}" >> $GITHUB_ENV
|
||||
else
|
||||
echo "TAG_NAME=latest" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: Build Docker image
|
||||
run: podman build -t cr.ortlerstrasse.de/cgo/pretix:${{ env.TAG_NAME }} .
|
||||
|
||||
- name: Push Docker image
|
||||
run: |
|
||||
podman push cr.ortlerstrasse.de/cgo/pretix:${{ env.TAG_NAME }}
|
||||
echo "Image pushed successfully: cr.ortlerstrasse.de/cgo/pretix:${{ env.TAG_NAME }}"
|
||||
+1
-2
@@ -61,8 +61,7 @@ RUN pip3 install -U \
|
||||
cd /pretix && \
|
||||
PRETIX_DOCKER_BUILD=TRUE pip3 install \
|
||||
-e ".[memcached]" \
|
||||
gunicorn django-extensions ipython \
|
||||
pretix-oidc && \
|
||||
gunicorn django-extensions ipython && \
|
||||
rm -rf ~/.cache/pip
|
||||
|
||||
RUN chmod +x /usr/local/bin/pretix && \
|
||||
|
||||
@@ -71,6 +71,8 @@ Checking a ticket in
|
||||
:>json object questions: List of questions to be answered for check-in, only set on status ``"incomplete"``.
|
||||
:>json object media_policy: Reusable media policy (see documentation on items), only set on status ``"exchange"``.
|
||||
:>json object media_type: Reusable media type (see documentation on items), only set on status ``"exchange"``.
|
||||
:>json boolean simulate: Do not actually perform the check-in, only simulate the response. The ``position`` response
|
||||
object will not reflect the simulated changes.
|
||||
|
||||
**Example request**:
|
||||
|
||||
|
||||
@@ -2038,7 +2038,7 @@ Manipulating individual positions
|
||||
|
||||
* ``order`` (mandatory, specified as a string mapping to a ``code``)
|
||||
|
||||
* ``addon_to`` (optional, specified as an integer mapping to the ``positionid`` of the parent position)
|
||||
* ``addon_to`` (optional, specified as an integer mapping to ``positionid`` - the number of the position within the order, see :ref:`_order-position-resource` - of the parent position)
|
||||
|
||||
* ``item`` (mandatory)
|
||||
|
||||
@@ -2348,7 +2348,7 @@ otherwise, such as splitting an order or changing fees.
|
||||
"subevent": 562,
|
||||
"seat": "seat-guid-2",
|
||||
"price": "99.99",
|
||||
"addon_to": 12374,
|
||||
"addon_to": 1,
|
||||
"attendee_name": "Peter",
|
||||
}
|
||||
],
|
||||
|
||||
@@ -65,6 +65,7 @@ valid_date_max date Maximum value f
|
||||
valid_datetime_min datetime Minimum value for date and time questions (optional)
|
||||
valid_datetime_max datetime Maximum value for date and time questions (optional)
|
||||
valid_file_portrait boolean Turn on file validation for portrait photos
|
||||
valid_string_length_min integer Minimum length for string questions (optional)
|
||||
valid_string_length_max integer Maximum length for string questions (optional)
|
||||
dependency_question integer Internal ID of a different question. The current
|
||||
question will only be shown if the question given in
|
||||
@@ -130,6 +131,7 @@ Endpoints
|
||||
"valid_date_max": null,
|
||||
"valid_datetime_min": null,
|
||||
"valid_datetime_max": null,
|
||||
"valid_string_length_min": null,
|
||||
"valid_string_length_max": null,
|
||||
"valid_file_portrait": false,
|
||||
"dependency_question": null,
|
||||
@@ -211,6 +213,7 @@ Endpoints
|
||||
"valid_datetime_min": null,
|
||||
"valid_datetime_max": null,
|
||||
"valid_file_portrait": false,
|
||||
"valid_string_length_min": null,
|
||||
"valid_string_length_max": null,
|
||||
"dependency_question": null,
|
||||
"dependency_value": null,
|
||||
@@ -315,6 +318,7 @@ Endpoints
|
||||
"valid_datetime_min": null,
|
||||
"valid_datetime_max": null,
|
||||
"valid_file_portrait": false,
|
||||
"valid_string_length_min": null,
|
||||
"valid_string_length_max": null,
|
||||
"options": [
|
||||
{
|
||||
@@ -399,6 +403,7 @@ Endpoints
|
||||
"valid_datetime_min": null,
|
||||
"valid_datetime_max": null,
|
||||
"valid_file_portrait": false,
|
||||
"valid_string_length_min": null,
|
||||
"valid_string_length_max": null,
|
||||
"options": [
|
||||
{
|
||||
|
||||
+5
-5
@@ -33,12 +33,12 @@ dependencies = [
|
||||
"bleach==6.4.*",
|
||||
"celery==5.6.*",
|
||||
"chardet==5.2.*",
|
||||
"cryptography>=49.0.0",
|
||||
"cryptography>=50.0.0",
|
||||
"css-inline==0.21.*",
|
||||
"defusedcsv>=3.0.0",
|
||||
"dnspython==2.*",
|
||||
"Django[argon2]==5.2.*",
|
||||
"django-bootstrap3==26.1",
|
||||
"django-bootstrap3==26.2",
|
||||
"django-compressor==4.6.0",
|
||||
"django-countries==9.0.*",
|
||||
"django-filter==26.1",
|
||||
@@ -48,7 +48,7 @@ dependencies = [
|
||||
"django-hijack==3.7.*",
|
||||
"django-i18nfield==1.11.*",
|
||||
"django-libsass==0.9",
|
||||
"django-localflavor==5.0",
|
||||
"django-localflavor==5.1",
|
||||
"django-markup",
|
||||
"django-oauth-toolkit==2.3.*",
|
||||
"django-otp==1.7.*",
|
||||
@@ -67,7 +67,7 @@ dependencies = [
|
||||
"kombu==5.6.*",
|
||||
"libsass==0.23.*",
|
||||
"lxml",
|
||||
"markdown==3.10.2", # 3.3.5 requires importlib-metadata>=4.4, but django-bootstrap3 requires importlib-metadata<3.
|
||||
"markdown==3.10.3", # 3.3.5 requires importlib-metadata>=4.4, but django-bootstrap3 requires importlib-metadata<3.
|
||||
# We can upgrade markdown again once django-bootstrap3 upgrades or once we drop Python 3.6 and 3.7
|
||||
"mt-940==4.30.*",
|
||||
"oauthlib==3.3.*",
|
||||
@@ -94,7 +94,7 @@ dependencies = [
|
||||
"redis==7.4.*",
|
||||
"reportlab==5.0.*",
|
||||
"requests==2.34.*",
|
||||
"sentry-sdk==2.66.*",
|
||||
"sentry-sdk==2.68.*",
|
||||
"sepaxml==2.7.*",
|
||||
"stripe==7.9.*",
|
||||
"text-unidecode==1.*",
|
||||
|
||||
@@ -19,4 +19,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
__version__ = "2026.7.0"
|
||||
__version__ = "2026.8.0.dev0"
|
||||
|
||||
@@ -104,6 +104,7 @@ ALL_LANGUAGES = [
|
||||
('gl', _('Galician')),
|
||||
('el', _('Greek')),
|
||||
('he', _('Hebrew')),
|
||||
('hu', _('Hungarian')),
|
||||
('id', _('Indonesian')),
|
||||
('it', _('Italian')),
|
||||
('ja', _('Japanese')),
|
||||
|
||||
@@ -20,8 +20,11 @@
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
import logging
|
||||
from datetime import timedelta
|
||||
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.db import DatabaseError
|
||||
from django.utils.timezone import now
|
||||
from django_scopes import scopes_disabled
|
||||
from rest_framework import exceptions
|
||||
from rest_framework.authentication import TokenAuthentication
|
||||
@@ -30,6 +33,7 @@ from pretix.api.auth.devicesecurity import (
|
||||
FullAccessSecurityProfile, get_all_security_profiles,
|
||||
)
|
||||
from pretix.base.models import Device
|
||||
from pretix.base.models.devices import DeviceLastSeen
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -42,7 +46,7 @@ class DeviceTokenAuthentication(TokenAuthentication):
|
||||
model = self.get_model()
|
||||
try:
|
||||
with scopes_disabled():
|
||||
device = model.objects.select_related('organizer').get(api_token=key)
|
||||
device = model.objects.select_related('organizer', 'last_seen').get(api_token=key)
|
||||
except model.DoesNotExist:
|
||||
raise exceptions.AuthenticationFailed('Invalid token.')
|
||||
|
||||
@@ -53,6 +57,7 @@ class DeviceTokenAuthentication(TokenAuthentication):
|
||||
logging.warning(f'Connection attempt of revoked device {device.pk}.')
|
||||
raise exceptions.AuthenticationFailed('Device access has been revoked.')
|
||||
|
||||
self._update_last_seen(device)
|
||||
return AnonymousUser(), device
|
||||
|
||||
def authenticate(self, request):
|
||||
@@ -63,3 +68,22 @@ class DeviceTokenAuthentication(TokenAuthentication):
|
||||
if not profile.is_allowed(request):
|
||||
raise exceptions.PermissionDenied('Request denied by device security profile.')
|
||||
return r
|
||||
|
||||
def _update_last_seen(self, device: Device):
|
||||
try:
|
||||
try:
|
||||
last_seen_obj = device.last_seen
|
||||
except DeviceLastSeen.DoesNotExist:
|
||||
# First request from device, create model, ignore result. Use get_or_create to be safe
|
||||
# against concurrent create requests
|
||||
DeviceLastSeen.objects.get_or_create(device=device, last_seen=now())
|
||||
else:
|
||||
if now() - last_seen_obj.last_seen < timedelta(seconds=10):
|
||||
# We don't need to know the last seen info of a device to more precision than this,
|
||||
# so we can avoid some database writes if the device is bursting a lot of requests.
|
||||
return
|
||||
last_seen_obj.last_seen = now()
|
||||
last_seen_obj.save(update_fields=["last_seen"])
|
||||
except DatabaseError:
|
||||
# Do not stop the request from happening
|
||||
logger.exception("Database error while updating last_seen")
|
||||
|
||||
@@ -115,7 +115,7 @@ class PretixScanSecurityProfile(AllowListSecurityProfile):
|
||||
('GET', 'api-v1:event.settings'),
|
||||
('POST', 'api-v1:upload'),
|
||||
('POST', 'api-v1:checkinrpc.redeem'),
|
||||
('POST', 'api-v1:checkinrpc.annull'),
|
||||
('POST', 'api-v1:checkinrpc.annul'),
|
||||
('GET', 'api-v1:checkinrpc.search'),
|
||||
('GET', 'api-v1:reusablemedium-list'),
|
||||
('POST', 'api-v1:reusablemedium-lookup'),
|
||||
@@ -154,7 +154,7 @@ class PretixScanNoSyncNoSearchSecurityProfile(AllowListSecurityProfile):
|
||||
('GET', 'api-v1:event.settings'),
|
||||
('POST', 'api-v1:upload'),
|
||||
('POST', 'api-v1:checkinrpc.redeem'),
|
||||
('POST', 'api-v1:checkinrpc.annull'),
|
||||
('POST', 'api-v1:checkinrpc.annul'),
|
||||
('GET', 'api-v1:checkinrpc.search'),
|
||||
)
|
||||
|
||||
@@ -191,7 +191,7 @@ class PretixScanNoSyncSecurityProfile(AllowListSecurityProfile):
|
||||
('GET', 'api-v1:event.settings'),
|
||||
('POST', 'api-v1:upload'),
|
||||
('POST', 'api-v1:checkinrpc.redeem'),
|
||||
('POST', 'api-v1:checkinrpc.annull'),
|
||||
('POST', 'api-v1:checkinrpc.annul'),
|
||||
('GET', 'api-v1:checkinrpc.search'),
|
||||
)
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@ class CheckinRPCRedeemInputSerializer(serializers.Serializer):
|
||||
answers = serializers.JSONField(required=False, allow_null=True)
|
||||
exchange_medium_type = serializers.ChoiceField(required=False, choices=MEDIA_TYPES)
|
||||
exchange_medium_identifier = serializers.CharField(required=False)
|
||||
simulate = serializers.BooleanField(default=False, required=False)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
@@ -702,8 +702,12 @@ class TaxRuleSerializer(CountryFieldMixin, I18nAwareModelSerializer):
|
||||
return super().save(**kwargs)
|
||||
|
||||
def validate_default(self, value):
|
||||
if not value and self.instance.default:
|
||||
raise ValidationError("You can't remove the default property, instead set it on another tax rule.")
|
||||
if not value:
|
||||
if self.instance:
|
||||
if self.instance.default:
|
||||
raise ValidationError("You can't remove the default property, instead set it on another tax rule.")
|
||||
elif not self.context["event"].tax_rules.exists():
|
||||
raise ValidationError("You can't remove the default property as there is only one tax rule.")
|
||||
return value
|
||||
|
||||
|
||||
|
||||
@@ -550,7 +550,7 @@ class QuestionSerializer(I18nAwareModelSerializer):
|
||||
'ask_during_checkin', 'show_during_checkin', 'identifier', 'dependency_question', 'dependency_values',
|
||||
'hidden', 'dependency_value', 'print_on_invoice', 'help_text', 'valid_number_min',
|
||||
'valid_number_max', 'valid_date_min', 'valid_date_max', 'valid_datetime_min', 'valid_datetime_max',
|
||||
'valid_string_length_max', 'valid_file_portrait')
|
||||
'valid_string_length_max', 'valid_string_length_min', 'valid_file_portrait')
|
||||
|
||||
def validate_identifier(self, value):
|
||||
Question._clean_identifier(self.context['event'], value, self.instance)
|
||||
@@ -619,7 +619,7 @@ class QuestionSerializer(I18nAwareModelSerializer):
|
||||
options_data = validated_data.pop('options') if 'options' in validated_data else []
|
||||
items = validated_data.pop('items', [])
|
||||
|
||||
question = Question.objects.create(**validated_data)
|
||||
question = Question.objects.create(**validated_data, container_type=Question.ContainerType.ORDERPOSITION)
|
||||
question.items.set(items)
|
||||
for opt_data in options_data:
|
||||
QuestionOption.objects.create(question=question, **opt_data)
|
||||
|
||||
@@ -426,6 +426,8 @@ class TeamSerializer(serializers.ModelSerializer):
|
||||
for k, v in OLD_TO_NEW_ORGANIZER_MIGRATION.items():
|
||||
if full_data.get(k) is True:
|
||||
data["limit_organizer_permissions"].update({kk: True for kk in v})
|
||||
for key in list(k for k in data if k.startswith("can_")):
|
||||
del data[key]
|
||||
|
||||
if full_data.get('limit_events') and full_data.get('all_events'):
|
||||
raise ValidationError('Do not set both limit_events and all_events.')
|
||||
|
||||
@@ -139,6 +139,7 @@ class CheckinListViewSet(viewsets.ModelViewSet):
|
||||
)
|
||||
return qs
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -153,6 +154,7 @@ class CheckinListViewSet(viewsets.ModelViewSet):
|
||||
ctx['event'] = self.request.event
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -837,6 +839,11 @@ def _redeem_process(*, checkinlists, raw_barcode, answers_data, datetime, force,
|
||||
)
|
||||
|
||||
if exchange_medium_identifier: # other fields are filled, see CheckinRPCRedeemInputSerializer.validate
|
||||
if simulate:
|
||||
raise CheckInError(
|
||||
gettext('You cannot simulate a medium exchange.'),
|
||||
'error'
|
||||
)
|
||||
with transaction.atomic():
|
||||
# Do exchange and check-in atomically, i.e. both succeed or both fail
|
||||
medium = perform_media_exchange(
|
||||
@@ -1064,6 +1071,7 @@ class CheckinRPCRedeemView(views.APIView):
|
||||
legacy_url_support=False,
|
||||
exchange_medium_type=s.validated_data.get('exchange_medium_type'),
|
||||
exchange_medium_identifier=s.validated_data.get('exchange_medium_identifier'),
|
||||
simulate=s.validated_data.get('simulate'),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under the License.
|
||||
|
||||
from django.db import transaction
|
||||
from django_filters.rest_framework import DjangoFilterBackend, FilterSet
|
||||
from django_scopes import scopes_disabled
|
||||
from rest_framework import viewsets
|
||||
@@ -64,6 +65,7 @@ class DiscountViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
'limit_sales_channels',
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -78,6 +80,7 @@ class DiscountViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
ctx['event'] = self.request.event
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -87,6 +90,7 @@ class DiscountViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied('You cannot delete this discount because it already has '
|
||||
|
||||
@@ -257,6 +257,7 @@ class EventViewSet(viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
copy_from = None
|
||||
if 'clone_from' in self.request.GET:
|
||||
@@ -320,6 +321,7 @@ class EventViewSet(viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied('The event can not be deleted as it already contains orders. Please set \'live\''
|
||||
@@ -355,6 +357,7 @@ class CloneEventViewSet(viewsets.ModelViewSet):
|
||||
ctx['organizer'] = self.request.organizer
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
# Weird edge case: Requires settings permission on the event (to read) but also on the organizer (two write)
|
||||
perm_holder = (self.request.auth if isinstance(self.request.auth, (Device, TeamAPIToken))
|
||||
@@ -513,6 +516,7 @@ class SubEventViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
resp['X-Page-Generated'] = date
|
||||
return resp
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
original_data = self.get_serializer(instance=serializer.instance).data
|
||||
super().perform_update(serializer)
|
||||
@@ -529,6 +533,7 @@ class SubEventViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -538,6 +543,7 @@ class SubEventViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied('The sub-event can not be deleted as it has already been used in orders. Please set'
|
||||
@@ -566,6 +572,7 @@ class TaxRuleViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
def get_queryset(self):
|
||||
return self.request.event.tax_rules.all()
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
super().perform_update(serializer)
|
||||
serializer.instance.log_action(
|
||||
@@ -575,6 +582,7 @@ class TaxRuleViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -584,6 +592,7 @@ class TaxRuleViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied('This tax rule can not be deleted as it is currently in use.')
|
||||
@@ -757,6 +766,7 @@ class SeatViewSet(ConditionalListView, UpdateModelMixin, viewsets.ReadOnlyModelV
|
||||
}
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
super().perform_update(serializer)
|
||||
serializer.instance.event.log_action(
|
||||
@@ -766,6 +776,7 @@ class SeatViewSet(ConditionalListView, UpdateModelMixin, viewsets.ReadOnlyModelV
|
||||
data={"seats": [serializer.instance.pk]},
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def bulk_change_blocked(self, blocked):
|
||||
s = SeatBulkBlockInputSerializer(
|
||||
data=self.request.data,
|
||||
|
||||
@@ -23,6 +23,7 @@ from datetime import timedelta
|
||||
|
||||
from celery.result import AsyncResult
|
||||
from django.conf import settings
|
||||
from django.db import transaction
|
||||
from django.http import Http404
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils.functional import cached_property
|
||||
@@ -45,7 +46,8 @@ from pretix.base.models import (
|
||||
)
|
||||
from pretix.base.models.organizer import TeamQuerySet
|
||||
from pretix.base.services.export import (
|
||||
export, init_event_exporters, init_organizer_exporters, multiexport,
|
||||
ExportError, export, init_event_exporters, init_organizer_exporters,
|
||||
multiexport,
|
||||
)
|
||||
from pretix.helpers.http import ChunkBasedFileResponse
|
||||
|
||||
@@ -149,8 +151,11 @@ class EventExportersViewSet(ExportersMixin, viewsets.ViewSet):
|
||||
))
|
||||
exporters = []
|
||||
for ex in sorted(raw_exporters, key=lambda ex: str(ex.verbose_name)):
|
||||
ex._serializer = JobRunSerializer(exporter=ex)
|
||||
exporters.append(ex)
|
||||
try:
|
||||
ex._serializer = JobRunSerializer(exporter=ex)
|
||||
exporters.append(ex)
|
||||
except ExportError:
|
||||
pass
|
||||
return exporters
|
||||
|
||||
def do_export(self, cf, instance, data):
|
||||
@@ -180,8 +185,11 @@ class OrganizerExportersViewSet(ExportersMixin, viewsets.ViewSet):
|
||||
))
|
||||
exporters = []
|
||||
for ex in sorted(raw_exporters, key=lambda ex: str(ex.verbose_name)):
|
||||
ex._serializer = JobRunSerializer(exporter=ex)
|
||||
exporters.append(ex)
|
||||
try:
|
||||
ex._serializer = JobRunSerializer(exporter=ex)
|
||||
exporters.append(ex)
|
||||
except ExportError:
|
||||
pass
|
||||
return exporters
|
||||
|
||||
def do_export(self, cf, instance, data):
|
||||
@@ -220,6 +228,7 @@ class ScheduledEventExportViewSet(ScheduledExportersViewSet):
|
||||
qs = self.request.event.scheduled_exports
|
||||
return qs.select_related("owner")
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
if not self.request.user.is_authenticated:
|
||||
raise PermissionDenied('Creation of exports requires user-specific API access.')
|
||||
@@ -250,6 +259,7 @@ class ScheduledEventExportViewSet(ScheduledExportersViewSet):
|
||||
))
|
||||
return {e.identifier: e for e in exporters}
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
if not self.request.user.is_authenticated or self.request.user != serializer.instance.owner:
|
||||
# This is to prevent a possible privilege escalation where user A creates a scheduled export and
|
||||
@@ -275,6 +285,7 @@ class ScheduledEventExportViewSet(ScheduledExportersViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
self.request.event.log_action(
|
||||
'pretix.event.export.schedule.deleted',
|
||||
@@ -302,6 +313,7 @@ class ScheduledOrganizerExportViewSet(ScheduledExportersViewSet):
|
||||
qs = self.request.organizer.scheduled_exports
|
||||
return qs.select_related("owner")
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
if not self.request.user.is_authenticated:
|
||||
raise PermissionDenied('Creation of exports requires user-specific API access.')
|
||||
@@ -332,6 +344,7 @@ class ScheduledOrganizerExportViewSet(ScheduledExportersViewSet):
|
||||
))
|
||||
return {e.identifier: e for e in exporters}
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
if not self.request.user.is_authenticated or self.request.user != serializer.instance.owner:
|
||||
# This is to prevent a possible privilege escalation where user A creates a scheduled export and
|
||||
@@ -382,6 +395,7 @@ class ScheduledOrganizerExportViewSet(ScheduledExportersViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
self.request.organizer.log_action(
|
||||
'pretix.organizer.export.schedule.deleted',
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
# License for the specific language governing permissions and limitations under the License.
|
||||
|
||||
import django_filters
|
||||
from django.db import transaction
|
||||
from django.db.models import Q
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils.functional import cached_property
|
||||
@@ -109,6 +110,7 @@ class ItemViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
'limit_sales_channels', 'variations__limit_sales_channels', 'program_times'
|
||||
).all()
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -123,6 +125,7 @@ class ItemViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
ctx['event'] = self.request.event
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
original_data = self.get_serializer(instance=serializer.instance).data
|
||||
|
||||
@@ -139,6 +142,7 @@ class ItemViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied('This item cannot be deleted because it has already been ordered '
|
||||
@@ -183,6 +187,7 @@ class ItemVariationViewSet(viewsets.ModelViewSet):
|
||||
ctx['event'] = self.request.event
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
item = self.item
|
||||
if not item.has_variations:
|
||||
@@ -197,6 +202,7 @@ class ItemVariationViewSet(viewsets.ModelViewSet):
|
||||
{'value': serializer.instance.value})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.item.log_action(
|
||||
@@ -207,6 +213,7 @@ class ItemVariationViewSet(viewsets.ModelViewSet):
|
||||
{'value': serializer.instance.value})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied('This variation cannot be deleted because it has already been ordered '
|
||||
@@ -249,6 +256,7 @@ class ItemBundleViewSet(viewsets.ModelViewSet):
|
||||
ctx['item'] = self.item
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
item = get_object_or_404(Item, pk=self.kwargs['item'], event=self.request.event)
|
||||
serializer.save(base_item=item)
|
||||
@@ -259,6 +267,7 @@ class ItemBundleViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.base_item.log_action(
|
||||
@@ -268,6 +277,7 @@ class ItemBundleViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
super().perform_destroy(instance)
|
||||
instance.base_item.log_action(
|
||||
@@ -303,6 +313,7 @@ class ItemProgramTimeViewSet(viewsets.ModelViewSet):
|
||||
ctx['item'] = self.item
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
item = get_object_or_404(Item, pk=self.kwargs['item'], event=self.request.event)
|
||||
serializer.save(item=item)
|
||||
@@ -313,6 +324,7 @@ class ItemProgramTimeViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.item.log_action(
|
||||
@@ -322,6 +334,7 @@ class ItemProgramTimeViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
super().perform_destroy(instance)
|
||||
instance.item.log_action(
|
||||
@@ -354,6 +367,7 @@ class ItemAddOnViewSet(viewsets.ModelViewSet):
|
||||
ctx['item'] = self.item
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
item = self.item
|
||||
category = get_object_or_404(ItemCategory, pk=self.request.data['addon_category'])
|
||||
@@ -365,6 +379,7 @@ class ItemAddOnViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.base_item.log_action(
|
||||
@@ -374,6 +389,7 @@ class ItemAddOnViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
super().perform_destroy(instance)
|
||||
instance.base_item.log_action(
|
||||
@@ -403,6 +419,7 @@ class ItemCategoryViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
def get_queryset(self):
|
||||
return self.request.event.categories.all()
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -417,6 +434,7 @@ class ItemCategoryViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
ctx['event'] = self.request.event
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -426,6 +444,7 @@ class ItemCategoryViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
for item in instance.items.all():
|
||||
item.category = None
|
||||
@@ -456,8 +475,12 @@ class QuestionViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
write_permission = 'event.items:write'
|
||||
|
||||
def get_queryset(self):
|
||||
return self.request.event.questions.prefetch_related('options').all()
|
||||
return self.request.event.questions.filter(
|
||||
# the container_type parameter is undocumented, this API is going to change in a later release
|
||||
container_type=self.request.GET.get('container_type', Question.ContainerType.ORDERPOSITION),
|
||||
).prefetch_related('options').all()
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -472,6 +495,7 @@ class QuestionViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
ctx['event'] = self.request.event
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -481,6 +505,7 @@ class QuestionViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
data=self.request.data
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
instance.log_action(
|
||||
'pretix.event.question.deleted',
|
||||
@@ -509,6 +534,7 @@ class QuestionOptionViewSet(viewsets.ModelViewSet):
|
||||
ctx['question'] = get_object_or_404(Question, pk=self.kwargs['question'], event=self.request.event)
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
q = get_object_or_404(Question, pk=self.kwargs['question'], event=self.request.event)
|
||||
serializer.save(question=q)
|
||||
@@ -519,6 +545,7 @@ class QuestionOptionViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.question.log_action(
|
||||
@@ -528,6 +555,7 @@ class QuestionOptionViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
instance.question.log_action(
|
||||
'pretix.event.question.option.deleted',
|
||||
@@ -586,6 +614,7 @@ class QuotaViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
serializer = self.get_serializer(page, many=True)
|
||||
return self.get_paginated_response(serializer.data)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -608,6 +637,7 @@ class QuotaViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
ctx['request'] = self.request
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
original_data = self.get_serializer(instance=serializer.instance).data
|
||||
|
||||
@@ -663,6 +693,7 @@ class QuotaViewSet(ConditionalListView, viewsets.ModelViewSet):
|
||||
)
|
||||
serializer.instance.rebuild_cache()
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
instance.log_action(
|
||||
'pretix.event.quota.deleted',
|
||||
|
||||
@@ -394,6 +394,7 @@ class TeamViewSet(viewsets.ModelViewSet):
|
||||
)
|
||||
return inst
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
instance.log_action('pretix.team.deleted', user=self.request.user, auth=self.request.auth)
|
||||
instance.delete()
|
||||
@@ -693,6 +694,7 @@ class MembershipTypeViewSet(viewsets.ModelViewSet):
|
||||
ctx['organizer'] = self.request.organizer
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied("Can only be deleted if unused.")
|
||||
@@ -833,6 +835,7 @@ class SalesChannelViewSet(viewsets.ModelViewSet):
|
||||
)
|
||||
return inst
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if not instance.allow_delete():
|
||||
raise PermissionDenied("Can only be deleted if unused.")
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
import django_filters
|
||||
from django.db import transaction
|
||||
from django_filters.rest_framework import DjangoFilterBackend, FilterSet
|
||||
from django_scopes import scopes_disabled
|
||||
from rest_framework import viewsets
|
||||
@@ -62,6 +63,7 @@ class WaitingListViewSet(viewsets.ModelViewSet):
|
||||
ctx['event'] = self.request.event
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(event=self.request.event)
|
||||
serializer.instance.log_action(
|
||||
@@ -70,6 +72,7 @@ class WaitingListViewSet(viewsets.ModelViewSet):
|
||||
auth=self.request.auth,
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
if serializer.instance.voucher:
|
||||
raise PermissionDenied('This entry can not be changed as it has already been assigned a voucher.')
|
||||
@@ -80,6 +83,7 @@ class WaitingListViewSet(viewsets.ModelViewSet):
|
||||
auth=self.request.auth,
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
if instance.voucher:
|
||||
raise PermissionDenied('This entry can not be deleted as it has already been assigned a voucher.')
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
import django_filters
|
||||
from django.db import transaction
|
||||
from django_filters.rest_framework import DjangoFilterBackend, FilterSet
|
||||
from rest_framework import viewsets
|
||||
|
||||
@@ -48,6 +49,7 @@ class WebHookViewSet(viewsets.ModelViewSet):
|
||||
ctx['organizer'] = self.request.organizer
|
||||
return ctx
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_create(self, serializer):
|
||||
inst = serializer.save(organizer=self.request.organizer)
|
||||
self.request.organizer.log_action(
|
||||
@@ -57,6 +59,7 @@ class WebHookViewSet(viewsets.ModelViewSet):
|
||||
data=merge_dicts(self.request.data, {'id': inst.pk})
|
||||
)
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_update(self, serializer):
|
||||
inst = serializer.save(organizer=self.request.organizer)
|
||||
self.request.organizer.log_action(
|
||||
@@ -67,6 +70,7 @@ class WebHookViewSet(viewsets.ModelViewSet):
|
||||
)
|
||||
return inst
|
||||
|
||||
@transaction.atomic()
|
||||
def perform_destroy(self, instance):
|
||||
self.request.organizer.log_action(
|
||||
'pretix.webhook.changed',
|
||||
|
||||
@@ -28,6 +28,5 @@ from .items import * # noqa
|
||||
from .json import * # noqa
|
||||
from .mail import * # noqa
|
||||
from .orderlist import * # noqa
|
||||
from .relevant_orderlist import * # noqa
|
||||
from .reusablemedia import * # noqa
|
||||
from .waitinglist import * # noqa
|
||||
|
||||
@@ -89,7 +89,7 @@ class OrderListExporter(MultiSheetListExporter):
|
||||
description = gettext_lazy('Download a spreadsheet of all orders. The spreadsheet will include three sheets, one '
|
||||
'with a line for every order, one with a line for every order position, and one with '
|
||||
'a line for every additional fee charged in an order.')
|
||||
featured = False
|
||||
featured = True
|
||||
repeatable_read = False
|
||||
|
||||
@cached_property
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+511
-424
@@ -36,6 +36,7 @@ import copy
|
||||
import json
|
||||
import logging
|
||||
import re
|
||||
from collections import namedtuple
|
||||
from datetime import timedelta
|
||||
from decimal import Decimal
|
||||
from io import BytesIO
|
||||
@@ -636,449 +637,273 @@ class PortraitImageField(SizeValidationMixin, ExtValidationMixin, forms.FileFiel
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
||||
FakeQuestion = namedtuple(
|
||||
'FakeQuestion', 'id question position required help_text container_type', defaults=('', Question.ContainerType.ORDERPOSITION)
|
||||
)
|
||||
|
||||
|
||||
def get_fake_attendee_questions(settings):
|
||||
fq = []
|
||||
sqo = settings.system_question_order
|
||||
|
||||
if settings.attendee_names_asked:
|
||||
fq.append(FakeQuestion('attendee_name_parts', _('Attendee name'), sqo.get('attendee_name_parts', 0), settings.attendee_names_required))
|
||||
|
||||
if settings.attendee_emails_asked:
|
||||
fq.append(FakeQuestion('attendee_email', _('Attendee email'), sqo.get('attendee_email', 0), settings.attendee_emails_required))
|
||||
|
||||
if settings.attendee_company_asked:
|
||||
fq.append(FakeQuestion('company', _('Company'), sqo.get('company', 0), settings.attendee_company_required))
|
||||
|
||||
if settings.attendee_addresses_asked:
|
||||
fq.append(FakeQuestion('street', _('Street'), sqo.get('street', 0), settings.attendee_addresses_required))
|
||||
fq.append(FakeQuestion('zipcode', _('ZIP code'), sqo.get('zipcode', 0), settings.attendee_addresses_required))
|
||||
fq.append(FakeQuestion('city', _('City'), sqo.get('city', 0), settings.attendee_addresses_required))
|
||||
fq.append(FakeQuestion('state', _('State'), sqo.get('country', 0), settings.attendee_addresses_required))
|
||||
fq.append(FakeQuestion('country', _('Country'), sqo.get('country', 0), settings.attendee_addresses_required))
|
||||
return fq
|
||||
|
||||
|
||||
class BaseQuestionsForm(forms.Form):
|
||||
"""
|
||||
This form class is responsible for asking order-related questions. This includes
|
||||
the attendee name for admission tickets, if the corresponding setting is enabled,
|
||||
as well as additional questions defined by the organizer.
|
||||
This is the base form class responsible for asking order- or ticket-related questions.
|
||||
"""
|
||||
address_validation = False
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""
|
||||
Takes two additional keyword arguments:
|
||||
|
||||
:param cartpos: The cart position the form should be for
|
||||
:param event: The event this belongs to
|
||||
"""
|
||||
request = kwargs.pop('request', None)
|
||||
cartpos = self.cartpos = kwargs.pop('cartpos', None)
|
||||
orderpos = self.orderpos = kwargs.pop('orderpos', None)
|
||||
pos = cartpos or orderpos
|
||||
item = pos.item
|
||||
questions = pos.item.questions_to_ask
|
||||
event = kwargs.pop('event')
|
||||
self.all_optional = kwargs.pop('all_optional', False)
|
||||
self.attendee_addresses_required = event.settings.attendee_addresses_required and not self.all_optional
|
||||
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if cartpos and item.validity_mode == Item.VALIDITY_MODE_DYNAMIC and item.validity_dynamic_start_choice:
|
||||
if item.validity_dynamic_start_choice_day_limit:
|
||||
max_date = time_machine_now().astimezone(event.timezone) + timedelta(days=item.validity_dynamic_start_choice_day_limit)
|
||||
else:
|
||||
max_date = None
|
||||
min_date = time_machine_now()
|
||||
def build_user_question_field(self, request, event, answerlist, q):
|
||||
# Do we already have an answer? Provide it as the initial value
|
||||
answers = [a for a in answerlist if a.question_id == q.id]
|
||||
if answers:
|
||||
initial = answers[0]
|
||||
else:
|
||||
initial = None
|
||||
if (item.require_membership or (pos.variation and pos.variation.require_membership)) and pos.used_membership:
|
||||
if pos.used_membership.date_start >= time_machine_now():
|
||||
initial = min_date = pos.used_membership.date_start
|
||||
max_date = min(max_date, pos.used_membership.date_end) if max_date else pos.used_membership.date_end
|
||||
if item.validity_dynamic_duration_months or item.validity_dynamic_duration_days:
|
||||
attrs = {}
|
||||
if max_date:
|
||||
attrs['data-max'] = max_date.date().isoformat()
|
||||
if min_date:
|
||||
attrs['data-min'] = min_date.date().isoformat()
|
||||
self.fields['requested_valid_from'] = forms.DateField(
|
||||
label=_('Start date'),
|
||||
help_text='' if initial else _('If you keep this empty, the ticket will be valid starting at the time of purchase.'),
|
||||
required=bool(initial),
|
||||
initial=pos.requested_valid_from or initial,
|
||||
widget=DatePickerWidget(attrs),
|
||||
validators=([MaxDateValidator(max_date.date())] if max_date else []) + [MinDateValidator(min_date.date())]
|
||||
)
|
||||
tz = ZoneInfo(event.settings.timezone)
|
||||
required = q.required and not self.all_optional
|
||||
if q.type == Question.TYPE_BOOLEAN:
|
||||
if required:
|
||||
# For some reason, django-bootstrap3 does not set the required attribute
|
||||
# itself.
|
||||
widget = forms.CheckboxInput(attrs={'required': 'required'})
|
||||
else:
|
||||
self.fields['requested_valid_from'] = forms.SplitDateTimeField(
|
||||
label=_('Start date'),
|
||||
help_text='' if initial else _('If you keep this empty, the ticket will be valid starting at the time of purchase.'),
|
||||
required=bool(initial),
|
||||
initial=pos.requested_valid_from or initial,
|
||||
widget=SplitDateTimePickerWidget(
|
||||
time_format=get_format_without_seconds('TIME_INPUT_FORMATS'),
|
||||
min_date=min_date,
|
||||
max_date=max_date
|
||||
),
|
||||
validators=([MaxDateTimeValidator(max_date)] if max_date else []) + [MinDateTimeValidator(min_date)]
|
||||
)
|
||||
widget = forms.CheckboxInput()
|
||||
|
||||
add_fields = {}
|
||||
if initial:
|
||||
initialbool = (initial.answer == "True")
|
||||
else:
|
||||
initialbool = False
|
||||
|
||||
if item.ask_attendee_data and event.settings.attendee_names_asked:
|
||||
add_fields['attendee_name_parts'] = NamePartsFormField(
|
||||
max_length=255,
|
||||
required=event.settings.attendee_names_required and not self.all_optional,
|
||||
scheme=event.settings.name_scheme,
|
||||
titles=event.settings.name_scheme_titles,
|
||||
label=_('Attendee name'),
|
||||
initial=(cartpos.attendee_name_parts if cartpos else orderpos.attendee_name_parts),
|
||||
field = forms.BooleanField(
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
initial=initialbool, widget=widget,
|
||||
)
|
||||
if item.ask_attendee_data and event.settings.attendee_emails_asked:
|
||||
add_fields['attendee_email'] = forms.EmailField(
|
||||
required=event.settings.attendee_emails_required and not self.all_optional,
|
||||
label=_('Attendee email'),
|
||||
initial=(cartpos.attendee_email if cartpos else orderpos.attendee_email),
|
||||
widget=forms.EmailInput(
|
||||
attrs={
|
||||
'autocomplete': 'email'
|
||||
}
|
||||
)
|
||||
elif q.type == Question.TYPE_NUMBER:
|
||||
field = forms.DecimalField(
|
||||
label=escape(q.question), required=required,
|
||||
min_value=q.valid_number_min or Decimal('0.00'),
|
||||
max_value=q.valid_number_max,
|
||||
help_text=rich_text(q.help_text),
|
||||
initial=initial.answer if initial else None,
|
||||
)
|
||||
if item.ask_attendee_data and event.settings.attendee_company_asked:
|
||||
add_fields['company'] = forms.CharField(
|
||||
required=event.settings.attendee_company_required and not self.all_optional,
|
||||
label=_('Company'),
|
||||
max_length=255,
|
||||
initial=(cartpos.company if cartpos else orderpos.company),
|
||||
elif q.type == Question.TYPE_STRING:
|
||||
field = forms.CharField(
|
||||
label=escape(q.question), required=required,
|
||||
min_length=q.valid_string_length_min,
|
||||
max_length=q.valid_string_length_max,
|
||||
help_text=rich_text(q.help_text),
|
||||
initial=initial.answer if initial else None,
|
||||
)
|
||||
|
||||
if item.ask_attendee_data and event.settings.attendee_addresses_asked:
|
||||
add_fields['street'] = forms.CharField(
|
||||
required=self.attendee_addresses_required,
|
||||
label=_('Address'),
|
||||
widget=forms.Textarea(attrs={
|
||||
'rows': 2,
|
||||
'placeholder': _('Street and Number'),
|
||||
'autocomplete': 'street-address'
|
||||
}),
|
||||
initial=(cartpos.street if cartpos else orderpos.street),
|
||||
elif q.type == Question.TYPE_TEXT:
|
||||
field = forms.CharField(
|
||||
label=escape(q.question), required=required,
|
||||
min_length=q.valid_string_length_min,
|
||||
max_length=q.valid_string_length_max,
|
||||
help_text=rich_text(q.help_text),
|
||||
widget=forms.Textarea,
|
||||
initial=initial.answer if initial else None,
|
||||
)
|
||||
add_fields['zipcode'] = forms.CharField(
|
||||
required=False,
|
||||
max_length=30,
|
||||
label=_('ZIP code'),
|
||||
initial=(cartpos.zipcode if cartpos else orderpos.zipcode),
|
||||
widget=forms.TextInput(attrs={
|
||||
'autocomplete': 'postal-code',
|
||||
}),
|
||||
)
|
||||
add_fields['city'] = forms.CharField(
|
||||
required=False,
|
||||
label=_('City'),
|
||||
max_length=255,
|
||||
initial=(cartpos.city if cartpos else orderpos.city),
|
||||
widget=forms.TextInput(attrs={
|
||||
'autocomplete': 'address-level2',
|
||||
}),
|
||||
)
|
||||
country = (cartpos.country if cartpos else orderpos.country) or guess_country_from_request(request, event)
|
||||
add_fields['country'] = CountryField(
|
||||
countries=CachedCountries
|
||||
elif q.type == Question.TYPE_COUNTRYCODE:
|
||||
field = CountryField(
|
||||
countries=CachedCountries,
|
||||
blank=True, null=True, blank_label=' ',
|
||||
).formfield(
|
||||
required=self.attendee_addresses_required,
|
||||
label=_('Country'),
|
||||
initial=country,
|
||||
widget=forms.Select(attrs={
|
||||
'autocomplete': 'country',
|
||||
'data-trigger-address-info': 'on',
|
||||
}),
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
widget=forms.Select,
|
||||
empty_label=' ',
|
||||
initial=initial.answer if initial else (
|
||||
guess_country_from_request(request, event) if required else None),
|
||||
)
|
||||
c = [('', '---')]
|
||||
fprefix = str(self.prefix) + '-' if self.prefix is not None and self.prefix != '-' else ''
|
||||
cc = None
|
||||
state = None
|
||||
if fprefix + 'country' in self.data:
|
||||
cc = str(self.data[fprefix + 'country'])
|
||||
elif country:
|
||||
cc = str(country)
|
||||
if cc and cc in COUNTRIES_WITH_STATE_IN_ADDRESS:
|
||||
types, form = COUNTRIES_WITH_STATE_IN_ADDRESS[cc]
|
||||
statelist = [s for s in pycountry.subdivisions.get(country_code=cc) if s.type in types]
|
||||
c += sorted([(s.code[3:], s.name) for s in statelist], key=lambda s: s[1])
|
||||
state = (cartpos.state if cartpos else orderpos.state)
|
||||
elif fprefix + 'state' in self.data:
|
||||
self.data = self.data.copy()
|
||||
del self.data[fprefix + 'state']
|
||||
|
||||
add_fields['state'] = forms.ChoiceField(
|
||||
label=pgettext_lazy('address', 'State'),
|
||||
required=False,
|
||||
choices=c,
|
||||
initial=state,
|
||||
widget=forms.Select(attrs={
|
||||
'autocomplete': 'address-level1',
|
||||
}),
|
||||
elif q.type == Question.TYPE_CHOICE:
|
||||
field = forms.ModelChoiceField(
|
||||
queryset=q.options,
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
widget=forms.Select,
|
||||
to_field_name='identifier',
|
||||
empty_label='',
|
||||
initial=initial.options.first() if initial else None,
|
||||
)
|
||||
add_fields['state'].widget.is_required = True
|
||||
|
||||
field_positions = list(
|
||||
[
|
||||
(n, event.settings.system_question_order.get(n if n != 'state' else 'country', 0))
|
||||
for n in add_fields.keys()
|
||||
]
|
||||
)
|
||||
|
||||
for q in questions:
|
||||
# Do we already have an answer? Provide it as the initial value
|
||||
answers = [a for a in pos.answerlist if a.question_id == q.id]
|
||||
if answers:
|
||||
initial = answers[0]
|
||||
elif q.type == Question.TYPE_CHOICE_MULTIPLE:
|
||||
field = forms.ModelMultipleChoiceField(
|
||||
queryset=q.options,
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
to_field_name='identifier',
|
||||
widget=QuestionCheckboxSelectMultiple,
|
||||
initial=initial.options.all() if initial else None,
|
||||
)
|
||||
elif q.type == Question.TYPE_FILE:
|
||||
if q.valid_file_portrait:
|
||||
field = PortraitImageField(
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
initial=initial.file if initial else None,
|
||||
widget=PortraitImageWidget(answer=initial, request=request,
|
||||
attrs={'data-portrait-photo': 'true'}),
|
||||
)
|
||||
else:
|
||||
initial = None
|
||||
tz = ZoneInfo(event.settings.timezone)
|
||||
help_text = rich_text(q.help_text)
|
||||
label = escape(q.question) # django-bootstrap3 calls mark_safe
|
||||
required = q.required and not self.all_optional
|
||||
if q.type == Question.TYPE_BOOLEAN:
|
||||
if required:
|
||||
# For some reason, django-bootstrap3 does not set the required attribute
|
||||
# itself.
|
||||
widget = forms.CheckboxInput(attrs={'required': 'required'})
|
||||
else:
|
||||
widget = forms.CheckboxInput()
|
||||
|
||||
if initial:
|
||||
initialbool = (initial.answer == "True")
|
||||
else:
|
||||
initialbool = False
|
||||
|
||||
field = forms.BooleanField(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
initial=initialbool, widget=widget,
|
||||
field = ExtFileField(
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
initial=initial.file if initial else None,
|
||||
widget=UploadedFileWidget(answer=initial, request=request),
|
||||
ext_whitelist=settings.FILE_UPLOAD_EXTENSIONS_OTHER,
|
||||
max_size=settings.FILE_UPLOAD_MAX_SIZE_OTHER,
|
||||
)
|
||||
elif q.type == Question.TYPE_NUMBER:
|
||||
field = forms.DecimalField(
|
||||
label=label, required=required,
|
||||
min_value=q.valid_number_min or Decimal('0.00'),
|
||||
max_value=q.valid_number_max,
|
||||
help_text=help_text,
|
||||
initial=initial.answer if initial else None,
|
||||
)
|
||||
elif q.type == Question.TYPE_STRING:
|
||||
field = forms.CharField(
|
||||
label=label, required=required,
|
||||
max_length=q.valid_string_length_max,
|
||||
help_text=help_text,
|
||||
initial=initial.answer if initial else None,
|
||||
)
|
||||
elif q.type == Question.TYPE_TEXT:
|
||||
field = forms.CharField(
|
||||
label=label, required=required,
|
||||
max_length=q.valid_string_length_max,
|
||||
help_text=help_text,
|
||||
widget=forms.Textarea,
|
||||
initial=initial.answer if initial else None,
|
||||
)
|
||||
elif q.type == Question.TYPE_COUNTRYCODE:
|
||||
field = CountryField(
|
||||
countries=CachedCountries,
|
||||
blank=True, null=True, blank_label=' ',
|
||||
).formfield(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
widget=forms.Select,
|
||||
empty_label=' ',
|
||||
initial=initial.answer if initial else (guess_country_from_request(request, event) if required else None),
|
||||
)
|
||||
elif q.type == Question.TYPE_CHOICE:
|
||||
field = forms.ModelChoiceField(
|
||||
queryset=q.options,
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
widget=forms.Select,
|
||||
to_field_name='identifier',
|
||||
empty_label='',
|
||||
initial=initial.options.first() if initial else None,
|
||||
)
|
||||
elif q.type == Question.TYPE_CHOICE_MULTIPLE:
|
||||
field = forms.ModelMultipleChoiceField(
|
||||
queryset=q.options,
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
to_field_name='identifier',
|
||||
widget=QuestionCheckboxSelectMultiple,
|
||||
initial=initial.options.all() if initial else None,
|
||||
)
|
||||
elif q.type == Question.TYPE_FILE:
|
||||
if q.valid_file_portrait:
|
||||
field = PortraitImageField(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
initial=initial.file if initial else None,
|
||||
widget=PortraitImageWidget(position=pos, event=event, answer=initial, attrs={'data-portrait-photo': 'true'}),
|
||||
elif q.type == Question.TYPE_DATE:
|
||||
attrs = {}
|
||||
if q.valid_date_min:
|
||||
attrs['data-min'] = q.valid_date_min.isoformat()
|
||||
if q.valid_date_max:
|
||||
attrs['data-max'] = q.valid_date_max.isoformat()
|
||||
help_text = q.help_text
|
||||
if not help_text:
|
||||
if q.valid_date_min and q.valid_date_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date between {min} and {max}.'),
|
||||
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
|
||||
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
|
||||
)
|
||||
else:
|
||||
field = ExtFileField(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
initial=initial.file if initial else None,
|
||||
widget=UploadedFileWidget(position=pos, event=event, answer=initial),
|
||||
ext_whitelist=settings.FILE_UPLOAD_EXTENSIONS_OTHER,
|
||||
max_size=settings.FILE_UPLOAD_MAX_SIZE_OTHER,
|
||||
elif q.valid_date_min:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date no earlier than {min}.'),
|
||||
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
|
||||
)
|
||||
elif q.type == Question.TYPE_DATE:
|
||||
attrs = {}
|
||||
if q.valid_date_min:
|
||||
attrs['data-min'] = q.valid_date_min.isoformat()
|
||||
if q.valid_date_max:
|
||||
attrs['data-max'] = q.valid_date_max.isoformat()
|
||||
if not help_text:
|
||||
if q.valid_date_min and q.valid_date_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date between {min} and {max}.'),
|
||||
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
|
||||
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
|
||||
)
|
||||
elif q.valid_date_min:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date no earlier than {min}.'),
|
||||
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
|
||||
)
|
||||
elif q.valid_date_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date no later than {max}.'),
|
||||
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
|
||||
)
|
||||
if initial and initial.answer:
|
||||
try:
|
||||
_initial = dateutil.parser.parse(initial.answer).date()
|
||||
except dateutil.parser.ParserError:
|
||||
_initial = None
|
||||
else:
|
||||
elif q.valid_date_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date no later than {max}.'),
|
||||
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
|
||||
)
|
||||
if initial and initial.answer:
|
||||
try:
|
||||
_initial = dateutil.parser.parse(initial.answer).date()
|
||||
except dateutil.parser.ParserError:
|
||||
_initial = None
|
||||
field = forms.DateField(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
initial=_initial,
|
||||
widget=DatePickerWidget(attrs),
|
||||
)
|
||||
if q.valid_date_min:
|
||||
field.validators.append(MinDateValidator(q.valid_date_min))
|
||||
if q.valid_date_max:
|
||||
field.validators.append(MaxDateValidator(q.valid_date_max))
|
||||
elif q.type == Question.TYPE_TIME:
|
||||
if initial and initial.answer:
|
||||
try:
|
||||
_initial = dateutil.parser.parse(initial.answer).time()
|
||||
except dateutil.parser.ParserError:
|
||||
_initial = None
|
||||
else:
|
||||
else:
|
||||
_initial = None
|
||||
field = forms.DateField(
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(help_text),
|
||||
initial=_initial,
|
||||
widget=DatePickerWidget(attrs),
|
||||
)
|
||||
if q.valid_date_min:
|
||||
field.validators.append(MinDateValidator(q.valid_date_min))
|
||||
if q.valid_date_max:
|
||||
field.validators.append(MaxDateValidator(q.valid_date_max))
|
||||
elif q.type == Question.TYPE_TIME:
|
||||
if initial and initial.answer:
|
||||
try:
|
||||
_initial = dateutil.parser.parse(initial.answer).time()
|
||||
except dateutil.parser.ParserError:
|
||||
_initial = None
|
||||
field = forms.TimeField(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
initial=_initial,
|
||||
widget=TimePickerWidget(without_seconds=True),
|
||||
)
|
||||
elif q.type == Question.TYPE_DATETIME:
|
||||
if not help_text:
|
||||
if q.valid_datetime_min and q.valid_datetime_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date and time between {min} and {max}.'),
|
||||
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
|
||||
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
|
||||
)
|
||||
elif q.valid_datetime_min:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date and time no earlier than {min}.'),
|
||||
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
|
||||
)
|
||||
elif q.valid_datetime_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date and time no later than {max}.'),
|
||||
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
|
||||
)
|
||||
else:
|
||||
_initial = None
|
||||
field = forms.TimeField(
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
initial=_initial,
|
||||
widget=TimePickerWidget(without_seconds=True),
|
||||
)
|
||||
elif q.type == Question.TYPE_DATETIME:
|
||||
help_text = q.help_text
|
||||
if not help_text:
|
||||
if q.valid_datetime_min and q.valid_datetime_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date and time between {min} and {max}.'),
|
||||
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
|
||||
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
|
||||
)
|
||||
elif q.valid_datetime_min:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date and time no earlier than {min}.'),
|
||||
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
|
||||
)
|
||||
elif q.valid_datetime_max:
|
||||
help_text = format_lazy(
|
||||
_('Please enter a date and time no later than {max}.'),
|
||||
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
|
||||
)
|
||||
|
||||
if initial and initial.answer:
|
||||
try:
|
||||
_initial = dateutil.parser.parse(initial.answer).astimezone(tz)
|
||||
except dateutil.parser.ParserError:
|
||||
_initial = None
|
||||
else:
|
||||
if initial and initial.answer:
|
||||
try:
|
||||
_initial = dateutil.parser.parse(initial.answer).astimezone(tz)
|
||||
except dateutil.parser.ParserError:
|
||||
_initial = None
|
||||
else:
|
||||
_initial = None
|
||||
|
||||
field = SplitDateTimeField(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
initial=_initial,
|
||||
widget=SplitDateTimePickerWidget(
|
||||
time_format=get_format_without_seconds('TIME_INPUT_FORMATS'),
|
||||
min_date=q.valid_datetime_min,
|
||||
max_date=q.valid_datetime_max
|
||||
),
|
||||
)
|
||||
if q.valid_datetime_min:
|
||||
field.validators.append(MinDateTimeValidator(q.valid_datetime_min))
|
||||
if q.valid_datetime_max:
|
||||
field.validators.append(MaxDateTimeValidator(q.valid_datetime_max))
|
||||
elif q.type == Question.TYPE_PHONENUMBER:
|
||||
if initial:
|
||||
try:
|
||||
initial = PhoneNumber().from_string(initial.answer)
|
||||
except NumberParseException:
|
||||
initial = None
|
||||
field = SplitDateTimeField(
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(help_text),
|
||||
initial=_initial,
|
||||
widget=SplitDateTimePickerWidget(
|
||||
time_format=get_format_without_seconds('TIME_INPUT_FORMATS'),
|
||||
min_date=q.valid_datetime_min,
|
||||
max_date=q.valid_datetime_max
|
||||
),
|
||||
)
|
||||
if q.valid_datetime_min:
|
||||
field.validators.append(MinDateTimeValidator(q.valid_datetime_min))
|
||||
if q.valid_datetime_max:
|
||||
field.validators.append(MaxDateTimeValidator(q.valid_datetime_max))
|
||||
elif q.type == Question.TYPE_PHONENUMBER:
|
||||
if initial:
|
||||
try:
|
||||
initial = PhoneNumber().from_string(initial.answer)
|
||||
except NumberParseException:
|
||||
initial = None
|
||||
|
||||
if not initial:
|
||||
phone_prefix = guess_phone_prefix_from_request(request, event)
|
||||
if phone_prefix:
|
||||
initial = "+{}.".format(phone_prefix)
|
||||
if not initial:
|
||||
phone_prefix = guess_phone_prefix_from_request(request, event)
|
||||
if phone_prefix:
|
||||
initial = "+{}.".format(phone_prefix)
|
||||
|
||||
field = PhoneNumberField(
|
||||
label=label, required=required,
|
||||
help_text=help_text,
|
||||
# We now exploit an implementation detail in PhoneNumberPrefixWidget to allow us to pass just
|
||||
# a country code but no number as an initial value. It's a bit hacky, but should be stable for
|
||||
# the future.
|
||||
initial=initial,
|
||||
widget=WrappedPhoneNumberPrefixWidget()
|
||||
)
|
||||
field.question = q
|
||||
if answers:
|
||||
# Cache the answer object for later use
|
||||
field.answer = answers[0]
|
||||
field = PhoneNumberField(
|
||||
label=escape(q.question), required=required,
|
||||
help_text=rich_text(q.help_text),
|
||||
# We now exploit an implementation detail in PhoneNumberPrefixWidget to allow us to pass just
|
||||
# a country code but no number as an initial value. It's a bit hacky, but should be stable for
|
||||
# the future.
|
||||
initial=initial,
|
||||
widget=WrappedPhoneNumberPrefixWidget()
|
||||
)
|
||||
field.question = q
|
||||
if answers:
|
||||
# Cache the answer object for later use
|
||||
field.answer = answers[0]
|
||||
|
||||
if q.dependency_question_id:
|
||||
field.widget.attrs['data-question-dependency'] = q.dependency_question_id
|
||||
field.widget.attrs['data-question-dependency-values'] = escapejson_attr(json.dumps(q.dependency_values))
|
||||
if q.type != 'M':
|
||||
field.widget.attrs['required'] = q.required and not self.all_optional
|
||||
field._required = q.required and not self.all_optional
|
||||
field.required = False
|
||||
|
||||
add_fields['question_%s' % q.id] = field
|
||||
field_positions.append(('question_%s' % q.id, q.position))
|
||||
|
||||
field_positions.sort(key=lambda e: e[1])
|
||||
for fname, p in field_positions:
|
||||
self.fields[fname] = add_fields[fname]
|
||||
|
||||
responses = question_form_fields.send(sender=event, position=pos)
|
||||
data = pos.meta_info_data
|
||||
for r, response in sorted(responses, key=lambda r: str(r[0])):
|
||||
for key, value in response.items():
|
||||
# We need to be this explicit, since OrderedDict.update does not retain ordering
|
||||
self.fields[key] = value
|
||||
value.initial = data.get('question_form_data', {}).get(key)
|
||||
|
||||
for k, v in self.fields.items():
|
||||
if isinstance(v.widget, forms.MultiWidget):
|
||||
for w in v.widget.widgets:
|
||||
autocomplete = w.attrs.get('autocomplete', '')
|
||||
if autocomplete.strip() == "off":
|
||||
w.attrs['autocomplete'] = 'off'
|
||||
else:
|
||||
w.attrs['autocomplete'] = 'section-{} '.format(self.prefix) + autocomplete
|
||||
if v.widget.attrs.get('autocomplete') or k == 'attendee_name_parts':
|
||||
autocomplete = v.widget.attrs.get('autocomplete', '')
|
||||
if autocomplete.strip() == "off":
|
||||
v.widget.attrs['autocomplete'] = 'off'
|
||||
else:
|
||||
v.widget.attrs['autocomplete'] = 'section-{} '.format(self.prefix) + autocomplete
|
||||
|
||||
def clean(self):
|
||||
from pretix.base.addressvalidation import \
|
||||
validate_address # local import to prevent impact on startup time
|
||||
|
||||
d = super().clean()
|
||||
|
||||
if self.address_validation:
|
||||
self.cleaned_data = d = validate_address(d, all_optional=not self.attendee_addresses_required)
|
||||
|
||||
if d.get('street') and d.get('country') and str(d['country']) in COUNTRIES_WITH_STATE_IN_ADDRESS:
|
||||
if not d.get('state'):
|
||||
self.add_error('state', _('This field is required.'))
|
||||
if q.dependency_question_id:
|
||||
field.widget.attrs['data-question-dependency'] = q.dependency_question_id
|
||||
field.widget.attrs['data-question-dependency-values'] = escapejson_attr(json.dumps(q.dependency_values))
|
||||
if q.type != 'M':
|
||||
field.widget.attrs['required'] = q.required and not self.all_optional
|
||||
field._required = q.required and not self.all_optional
|
||||
field.required = False
|
||||
return field
|
||||
|
||||
def check_user_questions(self, d):
|
||||
question_cache = {f.question.pk: f.question for f in self.fields.values() if getattr(f, 'question', None)}
|
||||
|
||||
def question_is_visible(parentid, qvals):
|
||||
@@ -1123,6 +948,268 @@ class BaseQuestionsForm(forms.Form):
|
||||
if 'question_%d' % q.pk in d and d['question_%d' % q.pk] is False:
|
||||
d['question_%d' % q.pk] = None
|
||||
|
||||
|
||||
class OrderLevelQuestionsForm(BaseQuestionsForm):
|
||||
def __init__(self, container, *args, **kwargs):
|
||||
"""
|
||||
Takes two additional keyword arguments:
|
||||
|
||||
:param checkoutsession: The checkout session the form should be for
|
||||
:param order: The order the form should be for
|
||||
:param event: The event this belongs to
|
||||
"""
|
||||
request = kwargs.pop('request', None)
|
||||
event = kwargs.pop('event')
|
||||
self.all_optional = kwargs.pop('all_optional', False)
|
||||
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
questions = Question.objects.filter(
|
||||
event=event, container_type=Question.ContainerType.ORDER,
|
||||
ask_during_checkin=False, hidden=False,
|
||||
).order_by('position')
|
||||
answerlist = container.answers.prefetch_related('options')
|
||||
|
||||
for q in questions:
|
||||
self.fields['question_%s' % q.id] = self.build_user_question_field(request, event, answerlist, q)
|
||||
|
||||
def clean(self):
|
||||
d = super().clean()
|
||||
self.check_user_questions(d)
|
||||
return d
|
||||
|
||||
|
||||
class TicketLevelQuestionsForm(BaseQuestionsForm):
|
||||
"""
|
||||
This form class is responsible for asking ticket-related questions. This includes
|
||||
the attendee name for admission tickets, if the corresponding setting is enabled,
|
||||
as well as additional questions defined by the organizer.
|
||||
"""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""
|
||||
Takes two additional keyword arguments:
|
||||
|
||||
:param cartpos: The cart position the form should be for
|
||||
:param event: The event this belongs to
|
||||
"""
|
||||
request = kwargs.pop('request', None)
|
||||
cartpos = self.cartpos = kwargs.pop('cartpos', None)
|
||||
orderpos = self.orderpos = kwargs.pop('orderpos', None)
|
||||
pos = cartpos or orderpos
|
||||
item = pos.item
|
||||
event = kwargs.pop('event')
|
||||
self.all_optional = kwargs.pop('all_optional', False)
|
||||
self.attendee_addresses_required = event.settings.attendee_addresses_required and not self.all_optional
|
||||
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if cartpos and item.validity_mode == Item.VALIDITY_MODE_DYNAMIC and item.validity_dynamic_start_choice:
|
||||
self.fields['requested_valid_from'] = self.build_requested_valid_from_field(event, pos, item)
|
||||
|
||||
questions = []
|
||||
if item.ask_attendee_data:
|
||||
questions += get_fake_attendee_questions(event.settings)
|
||||
questions += pos.item.questions_to_ask
|
||||
|
||||
questions.sort(key=lambda q: q.position)
|
||||
|
||||
for q in questions:
|
||||
if isinstance(q, FakeQuestion):
|
||||
self.fields[q.id] = self.build_system_question_field(request, event, pos, q)
|
||||
else:
|
||||
self.fields['question_%s' % q.id] = self.build_user_question_field(request, event, pos.answerlist, q)
|
||||
|
||||
responses = question_form_fields.send(sender=event, position=pos)
|
||||
data = pos.meta_info_data
|
||||
for r, response in sorted(responses, key=lambda r: str(r[0])):
|
||||
for key, value in response.items():
|
||||
# We need to be this explicit, since OrderedDict.update does not retain ordering
|
||||
self.fields[key] = value
|
||||
value.initial = data.get('question_form_data', {}).get(key)
|
||||
|
||||
for k, v in self.fields.items():
|
||||
if isinstance(v.widget, forms.MultiWidget):
|
||||
for w in v.widget.widgets:
|
||||
autocomplete = w.attrs.get('autocomplete', '')
|
||||
if autocomplete.strip() == "off":
|
||||
w.attrs['autocomplete'] = 'off'
|
||||
else:
|
||||
w.attrs['autocomplete'] = 'section-{} '.format(self.prefix) + autocomplete
|
||||
if v.widget.attrs.get('autocomplete') or k == 'attendee_name_parts':
|
||||
autocomplete = v.widget.attrs.get('autocomplete', '')
|
||||
if autocomplete.strip() == "off":
|
||||
v.widget.attrs['autocomplete'] = 'off'
|
||||
else:
|
||||
v.widget.attrs['autocomplete'] = 'section-{} '.format(self.prefix) + autocomplete
|
||||
|
||||
def build_requested_valid_from_field(self, event, pos, item):
|
||||
if item.validity_dynamic_start_choice_day_limit:
|
||||
max_date = time_machine_now().astimezone(event.timezone) + timedelta(days=item.validity_dynamic_start_choice_day_limit)
|
||||
else:
|
||||
max_date = None
|
||||
min_date = time_machine_now()
|
||||
initial = None
|
||||
if (item.require_membership or (pos.variation and pos.variation.require_membership)) and pos.used_membership:
|
||||
if pos.used_membership.date_start >= time_machine_now():
|
||||
initial = min_date = pos.used_membership.date_start
|
||||
max_date = min(max_date, pos.used_membership.date_end) if max_date else pos.used_membership.date_end
|
||||
if item.validity_dynamic_duration_months or item.validity_dynamic_duration_days:
|
||||
attrs = {}
|
||||
if max_date:
|
||||
attrs['data-max'] = max_date.date().isoformat()
|
||||
if min_date:
|
||||
attrs['data-min'] = min_date.date().isoformat()
|
||||
return forms.DateField(
|
||||
label=_('Start date'),
|
||||
help_text='' if initial else _('If you keep this empty, the ticket will be valid starting at the time of purchase.'),
|
||||
required=bool(initial),
|
||||
initial=pos.requested_valid_from or initial,
|
||||
widget=DatePickerWidget(attrs),
|
||||
validators=([MaxDateValidator(max_date.date())] if max_date else []) + [MinDateValidator(min_date.date())]
|
||||
)
|
||||
else:
|
||||
return forms.SplitDateTimeField(
|
||||
label=_('Start date'),
|
||||
help_text='' if initial else _('If you keep this empty, the ticket will be valid starting at the time of purchase.'),
|
||||
required=bool(initial),
|
||||
initial=pos.requested_valid_from or initial,
|
||||
widget=SplitDateTimePickerWidget(
|
||||
time_format=get_format_without_seconds('TIME_INPUT_FORMATS'),
|
||||
min_date=min_date,
|
||||
max_date=max_date
|
||||
),
|
||||
validators=([MaxDateTimeValidator(max_date)] if max_date else []) + [MinDateTimeValidator(min_date)]
|
||||
)
|
||||
|
||||
def build_system_question_field(self, request, event, pos, qc):
|
||||
field_name = qc.id
|
||||
if field_name == 'attendee_name_parts':
|
||||
return NamePartsFormField(
|
||||
max_length=255,
|
||||
required=qc.required and not self.all_optional,
|
||||
scheme=event.settings.name_scheme,
|
||||
titles=event.settings.name_scheme_titles,
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
initial=pos.attendee_name_parts,
|
||||
)
|
||||
if field_name == 'attendee_email':
|
||||
return forms.EmailField(
|
||||
required=qc.required and not self.all_optional,
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
initial=pos.attendee_email,
|
||||
widget=forms.EmailInput(
|
||||
attrs={
|
||||
'autocomplete': 'email'
|
||||
}
|
||||
)
|
||||
)
|
||||
if field_name == 'company':
|
||||
return forms.CharField(
|
||||
required=qc.required and not self.all_optional,
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
max_length=255,
|
||||
initial=pos.company,
|
||||
)
|
||||
|
||||
if field_name == 'street':
|
||||
return forms.CharField(
|
||||
required=qc.required and not self.all_optional,
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
widget=forms.Textarea(attrs={
|
||||
'rows': 2,
|
||||
'placeholder': _('Street and Number'),
|
||||
'autocomplete': 'street-address'
|
||||
}),
|
||||
initial=pos.street,
|
||||
)
|
||||
if field_name == 'zipcode':
|
||||
return forms.CharField(
|
||||
required=False,
|
||||
max_length=30,
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
initial=pos.zipcode,
|
||||
widget=forms.TextInput(attrs={
|
||||
'autocomplete': 'postal-code',
|
||||
}),
|
||||
)
|
||||
if field_name == 'city':
|
||||
return forms.CharField(
|
||||
required=False,
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
max_length=255,
|
||||
initial=pos.city,
|
||||
widget=forms.TextInput(attrs={
|
||||
'autocomplete': 'address-level2',
|
||||
}),
|
||||
)
|
||||
if field_name == 'country':
|
||||
country = pos.country or guess_country_from_request(request, event)
|
||||
return CountryField(
|
||||
countries=CachedCountries
|
||||
).formfield(
|
||||
required=qc.required and not self.all_optional,
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
initial=country,
|
||||
widget=forms.Select(attrs={
|
||||
'autocomplete': 'country',
|
||||
'data-trigger-address-info': 'on',
|
||||
}),
|
||||
)
|
||||
if field_name == 'state':
|
||||
country = pos.country or guess_country_from_request(request, event)
|
||||
c = [('', '---')]
|
||||
fprefix = str(self.prefix) + '-' if self.prefix is not None and self.prefix != '-' else ''
|
||||
cc = None
|
||||
state = None
|
||||
if fprefix + 'country' in self.data:
|
||||
cc = str(self.data[fprefix + 'country'])
|
||||
elif country:
|
||||
cc = str(country)
|
||||
if cc and cc in COUNTRIES_WITH_STATE_IN_ADDRESS:
|
||||
types, form = COUNTRIES_WITH_STATE_IN_ADDRESS[cc]
|
||||
statelist = [s for s in pycountry.subdivisions.get(country_code=cc) if s.type in types]
|
||||
c += sorted([(s.code[3:], s.name) for s in statelist], key=lambda s: s[1])
|
||||
state = (pos.state)
|
||||
elif fprefix + 'state' in self.data:
|
||||
self.data = self.data.copy()
|
||||
del self.data[fprefix + 'state']
|
||||
|
||||
field = forms.ChoiceField(
|
||||
label=escape(qc.question),
|
||||
help_text=rich_text(qc.help_text),
|
||||
required=False,
|
||||
choices=c,
|
||||
initial=state,
|
||||
widget=forms.Select(attrs={
|
||||
'autocomplete': 'address-level1',
|
||||
}),
|
||||
)
|
||||
field.widget.is_required = True
|
||||
return field
|
||||
|
||||
def clean(self):
|
||||
from pretix.base.addressvalidation import \
|
||||
validate_address # local import to prevent impact on startup time
|
||||
|
||||
d = super().clean()
|
||||
|
||||
if self.address_validation:
|
||||
self.cleaned_data = d = validate_address(d, all_optional=not self.attendee_addresses_required)
|
||||
|
||||
if d.get('street') and d.get('country') and str(d['country']) in COUNTRIES_WITH_STATE_IN_ADDRESS:
|
||||
if not d.get('state'):
|
||||
self.add_error('state', _('This field is required.'))
|
||||
|
||||
self.check_user_questions(d)
|
||||
|
||||
return d
|
||||
|
||||
|
||||
@@ -1201,15 +1288,15 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
||||
if not self.ask_vat_id:
|
||||
del self.fields['vat_id']
|
||||
elif self.validate_vat_id:
|
||||
self.fields['vat_id'].help_text = '<br/>'.join([
|
||||
str(_('Optional, but depending on the country you reside in we might need to charge you '
|
||||
'additional taxes if you do not enter it.')),
|
||||
])
|
||||
self.fields['vat_id'].help_text = _(
|
||||
'Optional, but depending on the country you reside in we might need to charge you '
|
||||
'additional taxes if you do not enter it.'
|
||||
)
|
||||
else:
|
||||
self.fields['vat_id'].help_text = '<br/>'.join([
|
||||
str(_('Optional, but it might be required for you to claim tax benefits on your invoice '
|
||||
'depending on your and the seller’s country of residence.')),
|
||||
])
|
||||
self.fields['vat_id'].help_text = _(
|
||||
'Optional, but it might be required for you to claim tax benefits on your invoice '
|
||||
'depending on your and the seller’s country of residence.'
|
||||
)
|
||||
|
||||
transmission_type_choices = [
|
||||
(t.identifier, t.public_name) for t in get_transmission_types()
|
||||
@@ -1295,8 +1382,8 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
||||
del self.fields['beneficiary']
|
||||
|
||||
if event.settings.invoice_address_custom_field:
|
||||
self.fields['custom_field'].label = event.settings.invoice_address_custom_field
|
||||
self.fields['custom_field'].help_text = event.settings.invoice_address_custom_field_helptext
|
||||
self.fields['custom_field'].label = escape(event.settings.invoice_address_custom_field)
|
||||
self.fields['custom_field'].help_text = rich_text(event.settings.invoice_address_custom_field_helptext)
|
||||
else:
|
||||
del self.fields['custom_field']
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ from pretix.helpers.i18n import (
|
||||
get_format_without_seconds, get_javascript_format,
|
||||
get_javascript_format_without_seconds,
|
||||
)
|
||||
from pretix.helpers.safedownload import get_token
|
||||
|
||||
|
||||
def replace_arabic_numbers(inp):
|
||||
@@ -157,36 +158,26 @@ class TimePickerWidget(forms.TimeInput):
|
||||
|
||||
class UploadedFileWidget(forms.ClearableFileInput):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.position = kwargs.pop('position')
|
||||
self.event = kwargs.pop('event')
|
||||
self.answer = kwargs.pop('answer')
|
||||
self.request = kwargs.pop('request')
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class FakeFile:
|
||||
def __init__(self, file, position, event, answer):
|
||||
def __init__(self, file, answer, request):
|
||||
self.file = file
|
||||
self.position = position
|
||||
self.event = event
|
||||
self.answer = answer
|
||||
self.request = request
|
||||
|
||||
def __str__(self):
|
||||
return os.path.basename(self.file.name).split('.', 1)[-1]
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
from pretix.base.models import OrderPosition
|
||||
from pretix.multidomain.urlreverse import eventreverse
|
||||
|
||||
if isinstance(self.position, OrderPosition):
|
||||
return eventreverse(self.event, 'presale:event.order.download.answer', kwargs={
|
||||
'order': self.position.order.code,
|
||||
'secret': self.position.order.secret,
|
||||
'answer': self.answer.pk,
|
||||
})
|
||||
token = get_token(self.request, self.answer)
|
||||
if self.request.resolver_match.namespace == 'control':
|
||||
return self.answer.backend_file_url + '?token=' + token
|
||||
else:
|
||||
return eventreverse(self.event, 'presale:event.cart.download.answer', kwargs={
|
||||
'answer': self.answer.pk,
|
||||
})
|
||||
return self.answer.frontend_file_url + '?token=' + token
|
||||
|
||||
def get_context(self, name, value, attrs):
|
||||
# Browsers can't recognize that the server already has a file uploaded
|
||||
@@ -199,7 +190,7 @@ class UploadedFileWidget(forms.ClearableFileInput):
|
||||
|
||||
def format_value(self, value):
|
||||
if self.is_initial(value):
|
||||
return self.FakeFile(value, self.position, self.event, self.answer)
|
||||
return self.FakeFile(value, self.answer, self.request)
|
||||
|
||||
|
||||
class SplitDateTimePickerWidget(forms.SplitDateTimeWidget):
|
||||
@@ -314,3 +305,18 @@ class BusinessBooleanRadio(forms.RadioSelect):
|
||||
'False': False,
|
||||
False: False,
|
||||
}.get(value)
|
||||
|
||||
|
||||
class OptionAttrsSelect(forms.Select):
|
||||
def __init__(self, *args, option_attrs=None, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.option_attrs = option_attrs or {}
|
||||
|
||||
def create_option(self, name, value, label, selected, index, subindex=None, attrs=None):
|
||||
option = super().create_option(
|
||||
name, value, label, selected, index, subindex=subindex, attrs=attrs
|
||||
)
|
||||
extra = self.option_attrs.get(str(value))
|
||||
if extra:
|
||||
option["attrs"].update(extra)
|
||||
return option
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# Generated by Django 5.2.16 on 2026-08-05 08:00
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
import pretix.helpers.database
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("pretixbase", "0306_alter_eventmetaproperty_unique_together"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="DeviceLastSeen",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True, primary_key=True, serialize=False
|
||||
),
|
||||
),
|
||||
("last_seen", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"device",
|
||||
models.OneToOneField(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="pretixbase.device",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name="devicelastseen",
|
||||
index=pretix.helpers.database.BrinIndexIgnoredOnSQLite(
|
||||
models.F("last_seen"),
|
||||
autosummarize=True,
|
||||
name="pretixbase_device_last_seen",
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,63 @@
|
||||
# Generated by Django 4.2.17 on 2025-01-01 20:25
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("pretixbase", "0307_devicelastseen"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="CheckoutSession",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True, primary_key=True, serialize=False
|
||||
),
|
||||
),
|
||||
("cart_id", models.CharField(max_length=255, unique=True)),
|
||||
("created", models.DateTimeField(auto_now_add=True)),
|
||||
("testmode", models.BooleanField(default=False)),
|
||||
("session_data", models.JSONField(default=dict)),
|
||||
(
|
||||
"customer",
|
||||
models.ForeignKey(
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name="checkout_sessions",
|
||||
to="pretixbase.customer",
|
||||
),
|
||||
),
|
||||
(
|
||||
"event",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="checkout_sessions",
|
||||
to="pretixbase.event",
|
||||
),
|
||||
),
|
||||
(
|
||||
"sales_channel",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="pretixbase.saleschannel",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="invoiceaddress",
|
||||
name="checkout_session",
|
||||
field=models.OneToOneField(
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="invoice_address",
|
||||
to="pretixbase.checkoutsession",
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,33 @@
|
||||
# Generated by Django 5.2.15 on 2026-08-07 20:01
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pretixbase', '0308_checkoutsession_invoiceaddress_checkout_session'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='question',
|
||||
name='container_type',
|
||||
field=models.CharField(default='P', max_length=5),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='questionanswer',
|
||||
name='checkoutsession',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='pretixbase.checkoutsession'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='questionanswer',
|
||||
name='order',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='pretixbase.order'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='questionanswer',
|
||||
unique_together={('cartposition', 'question'), ('checkoutsession', 'question'), ('order', 'question'), ('orderposition', 'question')},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 5.2.12 on 2026-08-19 11:31
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("pretixbase", "0309_alter_questionanswer_unique_together_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="question",
|
||||
name="valid_string_length_min",
|
||||
field=models.PositiveIntegerField(null=True),
|
||||
),
|
||||
]
|
||||
@@ -33,6 +33,7 @@ from django.db.models.aggregates import Sum
|
||||
from django.db.models.expressions import OuterRef, Subquery
|
||||
from django.db.models.functions.comparison import Coalesce
|
||||
from django.utils.crypto import get_random_string, salted_hmac
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import gettext_lazy as _, pgettext_lazy
|
||||
from django_scopes import ScopedManager, scopes_disabled
|
||||
@@ -409,6 +410,17 @@ class AttendeeProfile(models.Model):
|
||||
|
||||
return '\n'.join([str(p).strip() for p in parts if p and str(p).strip()])
|
||||
|
||||
@cached_property
|
||||
def answers_key_to_index(self):
|
||||
return {a.get('field_name'): i for i, a in enumerate(self.answers)}
|
||||
|
||||
def store_answer(self, answer_dict):
|
||||
k = answer_dict['field_name']
|
||||
if k in self.answers_key_to_index:
|
||||
self.answers[self.answers_key_to_index[k]] = answer_dict
|
||||
else:
|
||||
self.answers.append(answer_dict)
|
||||
|
||||
|
||||
def generate_client_id():
|
||||
return get_random_string(40)
|
||||
|
||||
@@ -20,11 +20,13 @@
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
import string
|
||||
from datetime import timedelta
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models
|
||||
from django.db.models import Max
|
||||
from django.utils.crypto import get_random_string
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_scopes import ScopedManager, scopes_disabled
|
||||
|
||||
@@ -32,6 +34,7 @@ from pretix.base.models import LoggedModel
|
||||
from pretix.base.permissions import (
|
||||
AnyPermissionOf, assert_valid_event_permission,
|
||||
)
|
||||
from pretix.helpers import BrinIndexIgnoredOnSQLite
|
||||
|
||||
|
||||
@scopes_disabled()
|
||||
@@ -287,3 +290,27 @@ class Device(LoggedModel):
|
||||
return self.get_events_with_any_permission()
|
||||
else:
|
||||
return self.organizer.events.none()
|
||||
|
||||
|
||||
class DeviceLastSeen(models.Model):
|
||||
# This is a separate model since we expect it to get A LOT of writes and PostgreSQL always
|
||||
# writes full rows and then needs to update all indexes on the row, so this is going to save a
|
||||
# lot of write traffic on the databse
|
||||
device = models.OneToOneField("Device", on_delete=models.CASCADE, related_name="last_seen")
|
||||
last_seen = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
indexes = [
|
||||
BrinIndexIgnoredOnSQLite(
|
||||
# BRIN indexes are highly efficient on lots of updates, especially of chronological data
|
||||
# and especially if we later want to query them by range, as we likely want to.
|
||||
"last_seen",
|
||||
name="pretixbase_device_last_seen",
|
||||
autosummarize=True
|
||||
)
|
||||
]
|
||||
|
||||
@property
|
||||
def is_recent(self):
|
||||
# pretixSCAN/pretixPOS sync every 5 minutes, so 7 minutes can be considered "offline"
|
||||
return now() - self.last_seen < timedelta(minutes=7)
|
||||
|
||||
@@ -736,7 +736,7 @@ class Event(EventMixin, LoggedModel):
|
||||
self.settings.mail_send_order_paid_attendee = True
|
||||
self.settings.mail_send_order_approved_attendee = True
|
||||
self.settings.mail_send_order_approved_free_attendee = True
|
||||
self.settings.mail_text_download_reminder_attendee = True
|
||||
self.settings.mail_send_download_reminder_attendee = True
|
||||
|
||||
@property
|
||||
def social_image(self):
|
||||
|
||||
@@ -50,7 +50,7 @@ from dateutil.tz import datetime_exists
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.validators import (
|
||||
MaxLengthValidator, MinValueValidator, RegexValidator,
|
||||
MaxLengthValidator, MinLengthValidator, MinValueValidator, RegexValidator,
|
||||
)
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
@@ -1606,6 +1606,9 @@ class Question(LoggedModel):
|
||||
:param dependency_values: The values that `dependency_question` needs to be set to for this question to be applicable.
|
||||
:type dependency_values: list[str]
|
||||
"""
|
||||
class ContainerType(models.TextChoices):
|
||||
ORDER = "O", _("Order")
|
||||
ORDERPOSITION = "P", _("Order position")
|
||||
TYPE_NUMBER = "N"
|
||||
TYPE_STRING = "S"
|
||||
TYPE_TEXT = "T"
|
||||
@@ -1641,6 +1644,12 @@ class Question(LoggedModel):
|
||||
related_name="questions",
|
||||
on_delete=models.CASCADE
|
||||
)
|
||||
container_type = models.CharField(
|
||||
max_length=5,
|
||||
choices=ContainerType.choices,
|
||||
verbose_name=_("Asked on"),
|
||||
default=ContainerType.ORDERPOSITION,
|
||||
)
|
||||
question = I18nTextField(
|
||||
verbose_name=_("Question")
|
||||
)
|
||||
@@ -1722,6 +1731,11 @@ class Question(LoggedModel):
|
||||
valid_datetime_max = models.DateTimeField(null=True, blank=True,
|
||||
verbose_name=_('Maximum value'),
|
||||
help_text=_('Currently not supported in our apps and during check-in'))
|
||||
valid_string_length_min = models.PositiveIntegerField(null=True, blank=True,
|
||||
verbose_name=_('Minimum length'),
|
||||
help_text=_(
|
||||
'Currently not supported in our apps and during check-in'
|
||||
))
|
||||
valid_string_length_max = models.PositiveIntegerField(null=True, blank=True,
|
||||
verbose_name=_('Maximum length'),
|
||||
help_text=_(
|
||||
@@ -1876,6 +1890,11 @@ class Question(LoggedModel):
|
||||
else:
|
||||
raise ValidationError(_('Unknown country code.'))
|
||||
elif self.type in (Question.TYPE_STRING, Question.TYPE_TEXT):
|
||||
if self.valid_string_length_min is not None and len(answer) < self.valid_string_length_min:
|
||||
raise ValidationError(MinLengthValidator.message % {
|
||||
'limit_value': self.valid_string_length_min,
|
||||
'show_value': len(answer)
|
||||
})
|
||||
if self.valid_string_length_max is not None and len(answer) > self.valid_string_length_max:
|
||||
raise ValidationError(MaxLengthValidator.message % {
|
||||
'limit_value': self.valid_string_length_max,
|
||||
@@ -1897,6 +1916,8 @@ class Question(LoggedModel):
|
||||
raise ValidationError(_("The maximum date must not be before the minimum value."))
|
||||
if self.valid_number_max and self.valid_number_min and self.valid_number_min > self.valid_number_max:
|
||||
raise ValidationError(_("The maximum value must not be lower than the minimum value."))
|
||||
if self.valid_string_length_max and self.valid_string_length_min and self.valid_string_length_min > self.valid_string_length_max:
|
||||
raise ValidationError(_("The maximum length must not be shorter than the minimum length."))
|
||||
super().clean()
|
||||
|
||||
def clean_type_change(self, old_type, new_type):
|
||||
|
||||
@@ -628,9 +628,14 @@ class Order(LockModel, LoggedModel):
|
||||
def set_expires(self, now_dt=None, subevents=None):
|
||||
now_dt = now_dt or now()
|
||||
tz = ZoneInfo(self.event.settings.timezone)
|
||||
mode = self.event.settings.get('payment_term_mode')
|
||||
|
||||
sales_channel_suffix = "_" + self.sales_channel.identifier.replace(".", "_")
|
||||
if not (mode := self.event.settings.get(f'payment_term_mode{sales_channel_suffix}')):
|
||||
mode = self.event.settings.get('payment_term_mode')
|
||||
sales_channel_suffix = ""
|
||||
|
||||
if mode == 'days':
|
||||
exp_by_date = now_dt.astimezone(tz) + timedelta(days=self.event.settings.get('payment_term_days', as_type=int))
|
||||
exp_by_date = now_dt.astimezone(tz) + timedelta(days=self.event.settings.get(f'payment_term_days{sales_channel_suffix}', as_type=int))
|
||||
exp_by_date = exp_by_date.astimezone(tz).replace(hour=23, minute=59, second=59, microsecond=0)
|
||||
if self.event.settings.get('payment_term_weekdays'):
|
||||
if exp_by_date.weekday() == 5:
|
||||
@@ -638,7 +643,7 @@ class Order(LockModel, LoggedModel):
|
||||
elif exp_by_date.weekday() == 6:
|
||||
exp_by_date += timedelta(days=1)
|
||||
elif mode == 'minutes':
|
||||
exp_by_date = now_dt.astimezone(tz) + timedelta(minutes=self.event.settings.get('payment_term_minutes', as_type=int))
|
||||
exp_by_date = now_dt.astimezone(tz) + timedelta(minutes=self.event.settings.get(f'payment_term_minutes{sales_channel_suffix}', as_type=int))
|
||||
else:
|
||||
raise ValueError("'payment_term_mode' has an invalid value '{}'.".format(mode))
|
||||
|
||||
@@ -1304,10 +1309,9 @@ class Order(LockModel, LoggedModel):
|
||||
|
||||
def answerfile_name(instance, filename: str) -> str:
|
||||
secret = get_random_string(length=32, allowed_chars=string.ascii_letters + string.digits)
|
||||
event = (instance.cartposition if instance.cartposition else instance.orderposition.order).event
|
||||
return 'cachedfiles/answers/{org}/{ev}/{secret}.{filename}'.format(
|
||||
org=event.organizer.slug,
|
||||
ev=event.slug,
|
||||
org=instance.event.organizer.slug,
|
||||
ev=instance.event.slug,
|
||||
secret=secret,
|
||||
filename=escape_uri_path(filename),
|
||||
)
|
||||
@@ -1336,6 +1340,14 @@ class QuestionAnswer(models.Model):
|
||||
'CartPosition', null=True, blank=True,
|
||||
related_name='answers', on_delete=models.CASCADE
|
||||
)
|
||||
order = models.ForeignKey(
|
||||
'Order', null=True, blank=True,
|
||||
related_name='answers', on_delete=models.CASCADE
|
||||
)
|
||||
checkoutsession = models.ForeignKey(
|
||||
'CheckoutSession', null=True, blank=True,
|
||||
related_name='answers', on_delete=models.CASCADE
|
||||
)
|
||||
question = models.ForeignKey(
|
||||
Question, related_name='answers', on_delete=models.CASCADE
|
||||
)
|
||||
@@ -1351,16 +1363,21 @@ class QuestionAnswer(models.Model):
|
||||
objects = ScopedManager(organizer='question__event__organizer')
|
||||
|
||||
class Meta:
|
||||
unique_together = [['orderposition', 'question'], ['cartposition', 'question']]
|
||||
unique_together = [
|
||||
['orderposition', 'question'],
|
||||
['cartposition', 'question'],
|
||||
['order', 'question'],
|
||||
['checkoutsession', 'question'],
|
||||
]
|
||||
|
||||
@property
|
||||
def backend_file_url(self):
|
||||
if self.file:
|
||||
if self.orderposition:
|
||||
if self.associated_order:
|
||||
return reverse('control:event.order.download.answer', kwargs={
|
||||
'code': self.orderposition.order.code,
|
||||
'event': self.orderposition.order.event.slug,
|
||||
'organizer': self.orderposition.order.event.organizer.slug,
|
||||
'code': self.associated_order.code,
|
||||
'event': self.associated_order.event.slug,
|
||||
'organizer': self.associated_order.event.organizer.slug,
|
||||
'answer': self.pk,
|
||||
})
|
||||
return ""
|
||||
@@ -1370,14 +1387,14 @@ class QuestionAnswer(models.Model):
|
||||
from pretix.multidomain.urlreverse import eventreverse
|
||||
|
||||
if self.file:
|
||||
if self.orderposition:
|
||||
url = eventreverse(self.orderposition.order.event, 'presale:event.order.download.answer', kwargs={
|
||||
'order': self.orderposition.order.code,
|
||||
'secret': self.orderposition.order.secret,
|
||||
if self.associated_order:
|
||||
url = eventreverse(self.associated_order.event, 'presale:event.order.download.answer', kwargs={
|
||||
'order': self.associated_order.code,
|
||||
'secret': self.associated_order.secret,
|
||||
'answer': self.pk,
|
||||
})
|
||||
else:
|
||||
url = eventreverse(self.cartposition.event, 'presale:event.cart.download.answer', kwargs={
|
||||
url = eventreverse(self.event, 'presale:event.cart.download.answer', kwargs={
|
||||
'answer': self.pk,
|
||||
})
|
||||
|
||||
@@ -1392,6 +1409,24 @@ class QuestionAnswer(models.Model):
|
||||
def file_name(self):
|
||||
return self.file.name.split('.', 1)[-1]
|
||||
|
||||
@property
|
||||
def associated_order(self):
|
||||
if self.orderposition:
|
||||
return self.orderposition.order
|
||||
elif self.order:
|
||||
return self.order
|
||||
|
||||
@property
|
||||
def event(self):
|
||||
if self.orderposition:
|
||||
return self.orderposition.order.event
|
||||
elif self.cartposition:
|
||||
return self.cartposition.event
|
||||
elif self.order:
|
||||
return self.order.event
|
||||
elif self.checkoutsession:
|
||||
return self.checkoutsession.event
|
||||
|
||||
def __str__(self):
|
||||
return self.to_string(use_cached=True)
|
||||
|
||||
@@ -3177,6 +3212,39 @@ class Transaction(models.Model):
|
||||
return self.tax_value_includes_rounding_correction * self.count
|
||||
|
||||
|
||||
class CheckoutSession(models.Model):
|
||||
"""
|
||||
A checkout session optionally bundles cart positions with additional information. This is historically
|
||||
not required in pretix and currently only used in the Storefront API.
|
||||
"""
|
||||
event = models.ForeignKey(
|
||||
Event,
|
||||
verbose_name=_("Event"),
|
||||
related_name="checkout_sessions",
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
cart_id = models.CharField(
|
||||
max_length=255, unique=True,
|
||||
verbose_name=_("Cart ID (e.g. session key)"),
|
||||
)
|
||||
created = models.DateTimeField(
|
||||
verbose_name=_("Date"),
|
||||
auto_now_add=True,
|
||||
)
|
||||
customer = models.ForeignKey(
|
||||
Customer,
|
||||
related_name='checkout_sessions',
|
||||
null=True, blank=True,
|
||||
on_delete=models.SET_NULL,
|
||||
)
|
||||
sales_channel = models.ForeignKey(
|
||||
"SalesChannel",
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
testmode = models.BooleanField(default=False)
|
||||
session_data = models.JSONField(default=dict)
|
||||
|
||||
|
||||
class CartPosition(AbstractPosition):
|
||||
"""
|
||||
A cart position is similar to an order line, except that it is not
|
||||
@@ -3381,6 +3449,13 @@ class CartPosition(AbstractPosition):
|
||||
|
||||
class InvoiceAddress(models.Model):
|
||||
last_modified = models.DateTimeField(auto_now=True)
|
||||
checkout_session = models.OneToOneField(
|
||||
CheckoutSession,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name='invoice_address',
|
||||
on_delete=models.CASCADE
|
||||
)
|
||||
order = models.OneToOneField(Order, null=True, blank=True, related_name='invoice_address', on_delete=models.CASCADE)
|
||||
customer = models.ForeignKey(
|
||||
Customer,
|
||||
|
||||
@@ -330,9 +330,24 @@ class BasePaymentProvider:
|
||||
payment method. This returns ``False`` by default which is no guarantee that
|
||||
aborting a pending payment can never happen, it just hides the frontend button
|
||||
to avoid users accidentally committing double payments.
|
||||
If the decision doesn't depend on the specific payment, then only implementing
|
||||
``abort_pending_allowed`` is enough, ``payment_abort_pending_allowed(payment: OrderPayment)``
|
||||
is expected to take this into account.
|
||||
As a consumer only evaluate ``payment_abort_pending_allowed(payment: OrderPayment)``
|
||||
to check if aborting this pending payment is possible.
|
||||
"""
|
||||
return False
|
||||
|
||||
def _payment_abort_pending_allowed(self, payment: OrderPayment) -> bool:
|
||||
"""
|
||||
Experimental: This might change during upcomming releases.
|
||||
Whether or not a user can abort a payment in pending state to switch to another
|
||||
payment method. This returns ``self.abort_pending_allowed`` by default which is
|
||||
no guarantee that aborting a pending payment can never happen, it just hides the
|
||||
frontend button to avoid users accidentally committing double payments.
|
||||
"""
|
||||
return self.abort_pending_allowed
|
||||
|
||||
@property
|
||||
def requires_invoice_immediately(self):
|
||||
"""
|
||||
@@ -1019,10 +1034,12 @@ class BasePaymentProvider:
|
||||
On success, you should set ``payment.state = OrderPayment.PAYMENT_STATE_CANCELED`` (or call the super method).
|
||||
On failure, you should raise a PaymentException.
|
||||
"""
|
||||
if payment.state == OrderPayment.PAYMENT_STATE_PENDING and not self.abort_pending_allowed:
|
||||
raise PaymentException(_(
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
))
|
||||
|
||||
if payment.state == OrderPayment.PAYMENT_STATE_PENDING:
|
||||
if not self._payment_abort_pending_allowed(payment):
|
||||
raise PaymentException(_(
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
))
|
||||
|
||||
payment.state = OrderPayment.PAYMENT_STATE_CANCELED
|
||||
payment.save(update_fields=['state'])
|
||||
|
||||
+373
-155
@@ -19,30 +19,245 @@
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
import copy
|
||||
import datetime
|
||||
import os
|
||||
import warnings
|
||||
from collections import namedtuple
|
||||
from typing import Union
|
||||
from dataclasses import dataclass
|
||||
from typing import (
|
||||
TYPE_CHECKING, Iterable, List, Literal, Optional, Tuple, Union, cast,
|
||||
)
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
from dateutil import parser
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models
|
||||
from django.forms.widgets import Widget
|
||||
from django.utils.formats import get_format
|
||||
from django.utils.functional import lazy
|
||||
from django.utils.functional import Promise, lazy
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
||||
BASE_CHOICES = (
|
||||
('date_from', _('Event start')),
|
||||
('date_to', _('Event end')),
|
||||
('date_admission', _('Event admission')),
|
||||
('presale_start', _('Presale start')),
|
||||
('presale_end', _('Presale end')),
|
||||
)
|
||||
from pretix.base.forms.widgets import OptionAttrsSelect
|
||||
|
||||
RelativeDate = namedtuple('RelativeDate', ['days', 'minutes', 'time', 'is_after', 'base_date_name'], defaults=(0, None, None, False, 'date_from'))
|
||||
if TYPE_CHECKING:
|
||||
from .models import Event, Order, SubEvent
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class BaseChoice:
|
||||
base: Literal["event", "order"]
|
||||
attribute: str
|
||||
text: Promise
|
||||
supports_before: bool
|
||||
supports_after: bool
|
||||
|
||||
@property
|
||||
def key(self) -> str:
|
||||
key = f"{self.base}__{self.attribute}"
|
||||
return key
|
||||
|
||||
@staticmethod
|
||||
def find(objects: Iterable["BaseChoice"], key: str) -> "BaseChoice":
|
||||
if "__" in key:
|
||||
choice = next((obj for obj in objects if obj.key == key), None)
|
||||
else:
|
||||
# fallback for RelativeDateFields stored, before support for bases other than event was added
|
||||
choice = next((obj for obj in objects if obj.attribute == key and obj.base == "event"), None)
|
||||
|
||||
if choice is None:
|
||||
raise TypeError(f"key {key} must be a valid key in BASE_CHOICES")
|
||||
|
||||
return choice
|
||||
|
||||
|
||||
BASE_CHOICES: List[BaseChoice] = [
|
||||
BaseChoice('event', 'date_from', _('Event start'), True, True),
|
||||
BaseChoice('event', 'date_to', _('Event end'), True, True),
|
||||
BaseChoice('event', 'date_admission', _('Event admission'), True, True),
|
||||
BaseChoice('event', 'presale_start', _('Presale start'), True, True),
|
||||
BaseChoice('event', 'presale_end', _('Presale end'), True, True),
|
||||
BaseChoice('order', 'datetime', _('Order creation'), False, True),
|
||||
BaseChoice('order', 'expires', _('Order expiry'), True, True),
|
||||
]
|
||||
|
||||
EVENT_BASE_CHOICES = [
|
||||
x for x in BASE_CHOICES if x.base == 'event'
|
||||
]
|
||||
|
||||
ORDER_BASE_CHOICES = [
|
||||
x for x in BASE_CHOICES if x.base == 'order'
|
||||
]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class RelativeDate:
|
||||
"""
|
||||
This contains information on a date that is defined in relation to a fixed base point.
|
||||
This means that the underlying data is a fixed date as the base point and a number of days or a time interval
|
||||
to calculate the date.
|
||||
|
||||
The list of valid base date choices is defined in BASE_CHOICES.
|
||||
If the base_date_name is not set, the date_from attribute of Event is used.
|
||||
"""
|
||||
|
||||
days: int = 0
|
||||
minutes: Optional[int] = None
|
||||
time: Optional[datetime.time] = None
|
||||
is_after: bool = False
|
||||
base_date_name: str = 'event__date_from__'
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
if self.is_after and not self._choice.supports_after:
|
||||
raise ValueError(
|
||||
"The selected base date and attribute combination does not support relative dates placed after the base date"
|
||||
)
|
||||
if not self.is_after and not self._choice.supports_before:
|
||||
raise ValueError(
|
||||
"The selected base date and attribute combination does not support relative dates placed before the base date")
|
||||
|
||||
@property
|
||||
def _choice(self):
|
||||
return BaseChoice.find(BASE_CHOICES, self.base_date_name)
|
||||
|
||||
@property
|
||||
def key(self):
|
||||
return self._choice.key
|
||||
|
||||
def __eq__(self, o: object) -> bool:
|
||||
if not isinstance(o, RelativeDate):
|
||||
return False
|
||||
return self.to_string() == o.to_string()
|
||||
|
||||
def _resolve_date(self, base: "Event | Order | SubEvent") -> Tuple[datetime.datetime, ZoneInfo]:
|
||||
"""
|
||||
Resolves the datetime and timezone information of this RelativeDate object in relation to the provided reference.
|
||||
|
||||
:param base: the reference which should be used to resolve the relative date
|
||||
:return:
|
||||
"""
|
||||
from .models import Event, Order, SubEvent
|
||||
|
||||
choice = self._choice
|
||||
|
||||
if choice.base == "order" and isinstance(base, Order):
|
||||
event = base.event
|
||||
base_date = getattr(base, choice.attribute)
|
||||
elif choice.base == "event" and isinstance(base, SubEvent):
|
||||
event = base.event
|
||||
base_date = (getattr(base, choice.attribute) or
|
||||
getattr(base.event, choice.attribute) or
|
||||
base.date_from)
|
||||
elif choice.base == "event" and isinstance(base, Event):
|
||||
event = base
|
||||
base_date = getattr(base, choice.attribute) or event.date_from
|
||||
else:
|
||||
raise TypeError("The base defined by data does not match the passed in base")
|
||||
|
||||
tz = ZoneInfo(event.settings.timezone)
|
||||
return base_date, tz
|
||||
|
||||
def date(self, base: "Event | Order | SubEvent") -> datetime.date:
|
||||
"""
|
||||
Resolves the effective date of this RelativeDate object in relation to the provided reference.
|
||||
|
||||
:param base: the reference which should be used to resolve the date
|
||||
:return: datetime.date
|
||||
"""
|
||||
if self.minutes is not None:
|
||||
raise ValueError('A minute-based relative datetime can not be used as a date')
|
||||
|
||||
base_date, tz = self._resolve_date(base)
|
||||
|
||||
if self.is_after:
|
||||
new_date = base_date.astimezone(tz) + datetime.timedelta(days=self.days)
|
||||
else:
|
||||
new_date = base_date.astimezone(tz) - datetime.timedelta(days=self.days)
|
||||
return new_date.date()
|
||||
|
||||
def datetime(self, base: "Event | Order | SubEvent") -> datetime.datetime:
|
||||
"""
|
||||
Resolves the effective datetime of this RelativeDate object in relation to the provided reference.
|
||||
|
||||
:param base: the reference which should be used to resolve the datetime
|
||||
:return: datetime.datetime
|
||||
"""
|
||||
base_date, tz = self._resolve_date(base)
|
||||
|
||||
if self.minutes is not None:
|
||||
if self.is_after:
|
||||
return base_date.astimezone(tz) + datetime.timedelta(minutes=self.minutes)
|
||||
else:
|
||||
return base_date.astimezone(tz) - datetime.timedelta(minutes=self.minutes)
|
||||
else:
|
||||
if self.is_after:
|
||||
new_date = (base_date.astimezone(tz) + datetime.timedelta(days=self.days)).astimezone(tz)
|
||||
else:
|
||||
new_date = (base_date.astimezone(tz) - datetime.timedelta(days=self.days)).astimezone(tz)
|
||||
if self.time:
|
||||
new_date = new_date.replace(
|
||||
hour=self.time.hour,
|
||||
minute=self.time.minute,
|
||||
second=self.time.second
|
||||
)
|
||||
new_date = new_date.astimezone(tz)
|
||||
return new_date
|
||||
|
||||
def to_string(self) -> str:
|
||||
if self.minutes is not None:
|
||||
return 'RELDATE/minutes/{}/{}/{}'.format( #
|
||||
self.minutes,
|
||||
self._choice.key,
|
||||
'after' if self.is_after else '',
|
||||
)
|
||||
return 'RELDATE/{}/{}/{}/{}'.format( #
|
||||
self.days,
|
||||
self.time.strftime('%H:%M:%S') if self.time else '-',
|
||||
self._choice.key,
|
||||
'after' if self.is_after else '',
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_string(cls, input: str):
|
||||
if not input.startswith('RELDATE/'):
|
||||
raise TypeError("Invalid input for RelativeDate.from_string()")
|
||||
|
||||
parts = input.split('/')
|
||||
if parts[1] == 'minutes':
|
||||
data = RelativeDate(
|
||||
days=0,
|
||||
minutes=int(parts[2]),
|
||||
base_date_name=parts[3],
|
||||
time=None,
|
||||
is_after=len(parts) > 4 and parts[4] == "after",
|
||||
)
|
||||
else:
|
||||
if parts[2] == '-':
|
||||
time = None
|
||||
else:
|
||||
timeparts = parts[2].split(':')
|
||||
time = datetime.time(hour=int(timeparts[0]), minute=int(timeparts[1]), second=int(timeparts[2]))
|
||||
try:
|
||||
data = RelativeDate(
|
||||
days=int(parts[1] or 0),
|
||||
base_date_name=parts[3],
|
||||
time=time,
|
||||
minutes=None,
|
||||
is_after=len(parts) > 4 and parts[4] == "after",
|
||||
)
|
||||
except ValueError:
|
||||
data = RelativeDate(
|
||||
days=0,
|
||||
base_date_name=parts[3],
|
||||
time=time,
|
||||
minutes=None,
|
||||
is_after=len(parts) > 4 and parts[4] == "after",
|
||||
)
|
||||
|
||||
return data
|
||||
|
||||
|
||||
class RelativeDateWrapper:
|
||||
@@ -50,130 +265,53 @@ class RelativeDateWrapper:
|
||||
This contains information on a date that might be relative to an event. This means
|
||||
that the underlying data is either a fixed date or a number of days and a wall clock
|
||||
time to calculate the date based on a base point.
|
||||
|
||||
The base point can be the date_from, date_to, date_admission, presale_start or presale_end
|
||||
attribute of an event or subevent. If the respective attribute is not set, ``date_from``
|
||||
will be used.
|
||||
"""
|
||||
|
||||
def __init__(self, data: Union[datetime.datetime, RelativeDate]):
|
||||
self.data = data
|
||||
|
||||
def date(self, event) -> datetime.date:
|
||||
from .models import SubEvent
|
||||
def date(self, base: "Event | Order | SubEvent") -> datetime.date:
|
||||
"""
|
||||
If the RelativeDateWrapper wraps a RelativeDate object:
|
||||
Resolves the effective date of this object in relation to the provided reference.
|
||||
If the RelativeDateWrapper wraps an absolute date or datetime:
|
||||
Returns the wrapped absolute date.
|
||||
|
||||
:param base: the reference which should be used to resolve the date in case it is a relative date.
|
||||
:return: datetime.date
|
||||
"""
|
||||
if isinstance(self.data, datetime.datetime):
|
||||
return self.data.date()
|
||||
elif isinstance(self.data, datetime.date):
|
||||
return self.data
|
||||
else:
|
||||
if self.data.minutes is not None:
|
||||
raise ValueError('A minute-based relative datetime can not be used as a date')
|
||||
return self.data.date(base)
|
||||
|
||||
tz = ZoneInfo(event.settings.timezone)
|
||||
if isinstance(event, SubEvent):
|
||||
base_date = (
|
||||
getattr(event, self.data.base_date_name)
|
||||
or getattr(event.event, self.data.base_date_name)
|
||||
or event.date_from
|
||||
)
|
||||
else:
|
||||
base_date = getattr(event, self.data.base_date_name) or event.date_from
|
||||
|
||||
if self.data.is_after:
|
||||
new_date = base_date.astimezone(tz) + datetime.timedelta(days=self.data.days)
|
||||
else:
|
||||
new_date = base_date.astimezone(tz) - datetime.timedelta(days=self.data.days)
|
||||
return new_date.date()
|
||||
|
||||
def datetime(self, event) -> datetime.datetime:
|
||||
from .models import SubEvent
|
||||
def datetime(self, base: "Event | Order | SubEvent") -> datetime.datetime:
|
||||
"""
|
||||
If the RelativeDateWrapper wraps a RelativeDate object:
|
||||
Resolves the effective datetime of this object in relation to the provided reference.
|
||||
If the RelativeDateWrapper wraps an absolute date or datetime:
|
||||
Returns the wrapped absolute datetime.
|
||||
|
||||
:param base: the reference which should be used to resolve the datetime in case it is a relative datetime.
|
||||
:return: datetime.datetime
|
||||
"""
|
||||
if isinstance(self.data, (datetime.datetime, datetime.date)):
|
||||
return self.data
|
||||
else:
|
||||
tz = ZoneInfo(event.settings.timezone)
|
||||
if isinstance(event, SubEvent):
|
||||
base_date = (
|
||||
getattr(event, self.data.base_date_name)
|
||||
or getattr(event.event, self.data.base_date_name)
|
||||
or event.date_from
|
||||
)
|
||||
else:
|
||||
base_date = getattr(event, self.data.base_date_name) or event.date_from
|
||||
|
||||
if self.data.minutes is not None:
|
||||
if self.data.is_after:
|
||||
return base_date.astimezone(tz) + datetime.timedelta(minutes=self.data.minutes)
|
||||
else:
|
||||
return base_date.astimezone(tz) - datetime.timedelta(minutes=self.data.minutes)
|
||||
else:
|
||||
if self.data.is_after:
|
||||
new_date = (base_date.astimezone(tz) + datetime.timedelta(days=self.data.days)).astimezone(tz)
|
||||
else:
|
||||
new_date = (base_date.astimezone(tz) - datetime.timedelta(days=self.data.days)).astimezone(tz)
|
||||
if self.data.time:
|
||||
new_date = new_date.replace(
|
||||
hour=self.data.time.hour,
|
||||
minute=self.data.time.minute,
|
||||
second=self.data.time.second
|
||||
)
|
||||
new_date = new_date.astimezone(tz)
|
||||
return new_date
|
||||
return self.data.datetime(base)
|
||||
|
||||
def to_string(self) -> str:
|
||||
if isinstance(self.data, (datetime.datetime, datetime.date)):
|
||||
return self.data.isoformat()
|
||||
else:
|
||||
if self.data.minutes is not None:
|
||||
return 'RELDATE/minutes/{}/{}/{}'.format( #
|
||||
self.data.minutes,
|
||||
self.data.base_date_name,
|
||||
'after' if self.data.is_after else '',
|
||||
)
|
||||
return 'RELDATE/{}/{}/{}/{}'.format( #
|
||||
self.data.days,
|
||||
self.data.time.strftime('%H:%M:%S') if self.data.time else '-',
|
||||
self.data.base_date_name,
|
||||
'after' if self.data.is_after else '',
|
||||
)
|
||||
return self.data.to_string()
|
||||
|
||||
@classmethod
|
||||
def from_string(cls, input: str):
|
||||
if input.startswith('RELDATE/'):
|
||||
parts = input.split('/')
|
||||
if parts[1] == 'minutes':
|
||||
data = RelativeDate(
|
||||
days=0,
|
||||
minutes=int(parts[2]),
|
||||
base_date_name=parts[3],
|
||||
time=None,
|
||||
is_after=len(parts) > 4 and parts[4] == "after",
|
||||
)
|
||||
else:
|
||||
if parts[2] == '-':
|
||||
time = None
|
||||
else:
|
||||
timeparts = parts[2].split(':')
|
||||
time = datetime.time(hour=int(timeparts[0]), minute=int(timeparts[1]), second=int(timeparts[2]))
|
||||
try:
|
||||
data = RelativeDate(
|
||||
days=int(parts[1] or 0),
|
||||
base_date_name=parts[3],
|
||||
time=time,
|
||||
minutes=None,
|
||||
is_after=len(parts) > 4 and parts[4] == "after",
|
||||
)
|
||||
except ValueError:
|
||||
data = RelativeDate(
|
||||
days=0,
|
||||
base_date_name=parts[3],
|
||||
time=time,
|
||||
minutes=None,
|
||||
is_after=len(parts) > 4 and parts[4] == "after",
|
||||
)
|
||||
if data.base_date_name not in [k[0] for k in BASE_CHOICES]:
|
||||
raise ValueError('{} is not a valid base date'.format(data.base_date_name))
|
||||
data = RelativeDate.from_string(input)
|
||||
else:
|
||||
data = parser.parse(input)
|
||||
return RelativeDateWrapper(data)
|
||||
@@ -187,7 +325,6 @@ BEFORE_AFTER_CHOICE = (
|
||||
('after', _('after')),
|
||||
)
|
||||
|
||||
|
||||
reldatetimeparts = namedtuple('reldatetimeparts', (
|
||||
"status", # 0
|
||||
"absolute", # 1
|
||||
@@ -202,6 +339,14 @@ reldatetimeparts = namedtuple('reldatetimeparts', (
|
||||
reldatetimeparts.indizes = reldatetimeparts(*range(9))
|
||||
|
||||
|
||||
def _get_choices(base_choices: List[BaseChoice]) -> List[Tuple[str, Promise]]:
|
||||
return [(c.key, c.text) for c in base_choices]
|
||||
|
||||
|
||||
def _get_choice_validation_obj(choices: List[BaseChoice]):
|
||||
return {c.key: {"data-supports-before": c.supports_before, "data-supports-after": c.supports_after} for c in choices}
|
||||
|
||||
|
||||
class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
template_name = 'pretixbase/forms/widgets/reldatetime.html'
|
||||
parts = reldatetimeparts
|
||||
@@ -209,6 +354,7 @@ class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.status_choices = kwargs.pop('status_choices')
|
||||
base_choices = kwargs.pop('base_choices')
|
||||
choices = _get_choices(base_choices)
|
||||
|
||||
def placeholder_datetime_format():
|
||||
df = get_format('DATETIME_INPUT_FORMATS')[0]
|
||||
@@ -220,21 +366,29 @@ class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
tf = get_format('TIME_INPUT_FORMATS')[0]
|
||||
return datetime.time(8, 30, 0).strftime(tf)
|
||||
|
||||
widgets = reldatetimeparts(
|
||||
widgets = cast(dict[str, Widget | type[Widget]], cast(object, reldatetimeparts(
|
||||
status=forms.RadioSelect(choices=self.status_choices),
|
||||
absolute=forms.DateTimeInput(
|
||||
attrs={'placeholder': lazy(placeholder_datetime_format, str), 'class': 'datetimepicker'}
|
||||
),
|
||||
rel_days_number=forms.NumberInput(),
|
||||
rel_mins_relationto=forms.Select(choices=base_choices),
|
||||
rel_mins_relationto=OptionAttrsSelect(
|
||||
attrs={'data-relative-choice': True},
|
||||
choices=choices,
|
||||
option_attrs=_get_choice_validation_obj(base_choices)
|
||||
),
|
||||
rel_days_timeofday=forms.TimeInput(
|
||||
attrs={'placeholder': lazy(placeholder_time_format, str), '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),
|
||||
)
|
||||
rel_days_relationto=OptionAttrsSelect(
|
||||
attrs={'data-relative-choice': True},
|
||||
choices=choices,
|
||||
option_attrs=_get_choice_validation_obj(base_choices)
|
||||
),
|
||||
rel_mins_relation=forms.Select(attrs={'data-relation-choice': True}, choices=BEFORE_AFTER_CHOICE),
|
||||
rel_days_relation=forms.Select(attrs={'data-relation-choice': True}, choices=BEFORE_AFTER_CHOICE),
|
||||
)))
|
||||
super().__init__(widgets=widgets, *args, **kwargs)
|
||||
|
||||
def decompress(self, value):
|
||||
@@ -247,10 +401,10 @@ class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
status="unset",
|
||||
absolute=None,
|
||||
rel_days_number=1,
|
||||
rel_mins_relationto="date_from",
|
||||
rel_mins_relationto="event__date_from",
|
||||
rel_days_timeofday=None,
|
||||
rel_mins_number=0,
|
||||
rel_days_relationto="date_from",
|
||||
rel_days_relationto="event__date_from",
|
||||
rel_mins_relation="before",
|
||||
rel_days_relation="before"
|
||||
)
|
||||
@@ -259,10 +413,10 @@ class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
status="absolute",
|
||||
absolute=value.data,
|
||||
rel_days_number=1,
|
||||
rel_mins_relationto="date_from",
|
||||
rel_mins_relationto="event__date_from",
|
||||
rel_days_timeofday=None,
|
||||
rel_mins_number=0,
|
||||
rel_days_relationto="date_from",
|
||||
rel_days_relationto="event__date_from",
|
||||
rel_mins_relation="before",
|
||||
rel_days_relation="before"
|
||||
)
|
||||
@@ -271,10 +425,10 @@ class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
status="relative_minutes",
|
||||
absolute=None,
|
||||
rel_days_number=None,
|
||||
rel_mins_relationto=value.data.base_date_name,
|
||||
rel_mins_relationto=value.data.key,
|
||||
rel_days_timeofday=None,
|
||||
rel_mins_number=value.data.minutes,
|
||||
rel_days_relationto=value.data.base_date_name,
|
||||
rel_days_relationto=value.data.key,
|
||||
rel_mins_relation="after" if value.data.is_after else "before",
|
||||
rel_days_relation="after" if value.data.is_after else "before"
|
||||
)
|
||||
@@ -282,10 +436,10 @@ class RelativeDateTimeWidget(forms.MultiWidget):
|
||||
status="relative",
|
||||
absolute=None,
|
||||
rel_days_number=value.data.days,
|
||||
rel_mins_relationto=value.data.base_date_name,
|
||||
rel_mins_relationto=value.data.key,
|
||||
rel_days_timeofday=value.data.time,
|
||||
rel_mins_number=0,
|
||||
rel_days_relationto=value.data.base_date_name,
|
||||
rel_days_relationto=value.data.key,
|
||||
rel_mins_relation="after" if value.data.is_after else "before",
|
||||
rel_days_relation="after" if value.data.is_after else "before"
|
||||
)
|
||||
@@ -309,17 +463,41 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
('relative', _('Relative date:')),
|
||||
('relative_minutes', _('Relative time:')),
|
||||
]
|
||||
self.relative_to_order = kwargs.pop('relative_to_order', False)
|
||||
|
||||
possible_choices = copy.deepcopy(EVENT_BASE_CHOICES)
|
||||
if self.relative_to_order:
|
||||
possible_choices.extend(ORDER_BASE_CHOICES)
|
||||
|
||||
if kwargs.get('limit_choices'):
|
||||
limit = kwargs.pop('limit_choices')
|
||||
choices = [(k, v) for k, v in BASE_CHOICES if k in limit]
|
||||
else:
|
||||
choices = BASE_CHOICES
|
||||
if any(["__" not in l for l in limit]):
|
||||
_warn_skips = (str(os.path.dirname(__file__)),)
|
||||
|
||||
warnings.warn(
|
||||
message="Please prefix limit_choices with the base the attributes refer to, for example event__date_from",
|
||||
category=DeprecationWarning,
|
||||
skip_file_prefixes=_warn_skips
|
||||
)
|
||||
|
||||
possible_choices = [
|
||||
c for c in possible_choices if
|
||||
# new base case as we want limit_choices to be expressed as base__attribute
|
||||
(c.key in limit) or
|
||||
# fallback for old event based entries
|
||||
# if the base is an event, then using only attribute is fine
|
||||
(c.base == "event" and c.attribute in limit)
|
||||
]
|
||||
|
||||
if not kwargs.get('required', True):
|
||||
status_choices.insert(0, ('unset', _('Not set')))
|
||||
|
||||
choices = _get_choices(possible_choices)
|
||||
|
||||
fields = reldatetimeparts(
|
||||
status=forms.ChoiceField(
|
||||
choices=status_choices,
|
||||
required=True
|
||||
required=True,
|
||||
),
|
||||
absolute=forms.DateTimeField(
|
||||
required=False
|
||||
@@ -329,7 +507,7 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
),
|
||||
rel_mins_relationto=forms.ChoiceField(
|
||||
choices=choices,
|
||||
required=False
|
||||
required=False,
|
||||
),
|
||||
rel_days_timeofday=forms.TimeField(
|
||||
required=False,
|
||||
@@ -339,7 +517,7 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
),
|
||||
rel_days_relationto=forms.ChoiceField(
|
||||
choices=choices,
|
||||
required=False
|
||||
required=False,
|
||||
),
|
||||
rel_mins_relation=forms.ChoiceField(
|
||||
choices=BEFORE_AFTER_CHOICE,
|
||||
@@ -350,8 +528,9 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
required=False
|
||||
),
|
||||
)
|
||||
|
||||
if 'widget' not in kwargs:
|
||||
kwargs['widget'] = RelativeDateTimeWidget(status_choices=status_choices, base_choices=choices)
|
||||
kwargs['widget'] = RelativeDateTimeWidget(status_choices=status_choices, base_choices=possible_choices)
|
||||
kwargs.pop('max_length', 0)
|
||||
kwargs.pop('empty_value', 0)
|
||||
super().__init__(
|
||||
@@ -359,21 +538,24 @@ 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 = [
|
||||
(k, v) for k, v in BASE_CHOICES if getattr(event, k, None)
|
||||
]
|
||||
possible_choices = copy.deepcopy(EVENT_BASE_CHOICES)
|
||||
if self.relative_to_order:
|
||||
possible_choices.extend(ORDER_BASE_CHOICES)
|
||||
|
||||
possible_choices = possible_choices
|
||||
choices = _get_choices(possible_choices)
|
||||
|
||||
self.widget.widgets[reldatetimeparts.indizes.rel_days_relationto].choices = choices
|
||||
self.widget.widgets[reldatetimeparts.indizes.rel_mins_relationto].choices = choices
|
||||
|
||||
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.status == 'unset':
|
||||
return None
|
||||
elif data.status == 'absolute':
|
||||
return RelativeDateWrapper(data.absolute)
|
||||
elif data.status == 'relative_minutes':
|
||||
return RelativeDateWrapper(RelativeDate(
|
||||
days=0,
|
||||
@@ -404,6 +586,18 @@ class RelativeDateTimeField(forms.MultiValueField):
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
elif data.status == 'relative_minutes' and (data.rel_mins_number is None or not data.rel_mins_relationto):
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
elif data.status == 'relative':
|
||||
choice = BaseChoice.find(BASE_CHOICES, data.rel_days_relationto)
|
||||
if data.rel_days_relation == "before" and not choice.supports_before:
|
||||
raise ValidationError(_('A relative date cannot be expressed as "before" for "{}"'.format(choice.text)))
|
||||
elif data.status == 'relative' and data.rel_days_relation == "after" and not choice.supports_after:
|
||||
raise ValidationError(_('A relative date cannot be expressed as "after" for "{}"'.format(choice.text)))
|
||||
elif data.status == 'relative_minutes':
|
||||
choice = BaseChoice.find(BASE_CHOICES, data.rel_days_relationto)
|
||||
if data.rel_days_relation == "before" and not choice.supports_before:
|
||||
raise ValidationError(_('A relative time cannot be expressed as "before" for "{}"'.format(choice.text)))
|
||||
elif data.rel_days_relation == "after" and not choice.supports_after:
|
||||
raise ValidationError(_('A relative time cannot be expressed as "after" for "{}"'.format(choice.text)))
|
||||
|
||||
return super().clean(value)
|
||||
|
||||
@@ -424,15 +618,20 @@ class RelativeDateWidget(RelativeDateTimeWidget):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.status_choices = kwargs.pop('status_choices')
|
||||
widgets = reldateparts(
|
||||
self.base_choices = kwargs.pop('base_choices')
|
||||
widgets = cast(dict[str, Widget | type[Widget]], cast(object, reldateparts(
|
||||
status=forms.RadioSelect(choices=self.status_choices),
|
||||
absolute=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),
|
||||
)
|
||||
rel_days_relationto=OptionAttrsSelect(
|
||||
choices=self.base_choices,
|
||||
option_attrs=_get_choice_validation_obj(self.base_choices),
|
||||
attrs={'data-relative-choice': True},
|
||||
),
|
||||
rel_days_relation=forms.Select(choices=BEFORE_AFTER_CHOICE, attrs={'data-relation-choice': True},),
|
||||
)))
|
||||
forms.MultiWidget.__init__(self, widgets=widgets, *args, **kwargs)
|
||||
|
||||
def decompress(self, value):
|
||||
@@ -460,7 +659,7 @@ class RelativeDateWidget(RelativeDateTimeWidget):
|
||||
status="relative",
|
||||
absolute=None,
|
||||
rel_days_number=value.data.days,
|
||||
rel_days_relationto=value.data.base_date_name,
|
||||
rel_days_relationto=value.data.key,
|
||||
rel_days_relation="after" if value.data.is_after else "before"
|
||||
)
|
||||
|
||||
@@ -474,6 +673,15 @@ class RelativeDateField(RelativeDateTimeField):
|
||||
]
|
||||
if not kwargs.get('required', True):
|
||||
status_choices.insert(0, ('unset', _('Not set')))
|
||||
|
||||
self.relative_to_order = kwargs.pop('relative_to_order', False)
|
||||
|
||||
possible_choices = copy.deepcopy(EVENT_BASE_CHOICES)
|
||||
if self.relative_to_order:
|
||||
possible_choices.extend(ORDER_BASE_CHOICES)
|
||||
|
||||
choices = _get_choices(possible_choices)
|
||||
|
||||
fields = reldateparts(
|
||||
status=forms.ChoiceField(
|
||||
choices=status_choices,
|
||||
@@ -486,33 +694,37 @@ class RelativeDateField(RelativeDateTimeField):
|
||||
required=False
|
||||
),
|
||||
rel_days_relationto=forms.ChoiceField(
|
||||
choices=BASE_CHOICES,
|
||||
required=False
|
||||
choices=choices,
|
||||
required=False,
|
||||
),
|
||||
rel_days_relation=forms.ChoiceField(
|
||||
choices=BEFORE_AFTER_CHOICE,
|
||||
required=False
|
||||
),
|
||||
)
|
||||
|
||||
if 'widget' not in kwargs:
|
||||
kwargs['widget'] = RelativeDateWidget(status_choices=status_choices, base_choices=BASE_CHOICES)
|
||||
kwargs['widget'] = RelativeDateWidget(status_choices=status_choices, base_choices=possible_choices)
|
||||
forms.MultiValueField.__init__(
|
||||
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)
|
||||
choices = [
|
||||
(c.key, c.text) for c in EVENT_BASE_CHOICES if getattr(event, c.attribute, None)
|
||||
]
|
||||
if self.relative_to_order:
|
||||
choices += [(c.key, c.text) for c in ORDER_BASE_CHOICES]
|
||||
self.widget.widgets[reldateparts.indizes.rel_days_relationto].choices = choices
|
||||
|
||||
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.status == 'unset':
|
||||
return None
|
||||
elif data.status == 'absolute':
|
||||
return RelativeDateWrapper(data.absolute)
|
||||
else:
|
||||
return RelativeDateWrapper(RelativeDate(
|
||||
days=data.rel_days_number,
|
||||
@@ -525,8 +737,14 @@ class RelativeDateField(RelativeDateTimeField):
|
||||
data = reldateparts(*value)
|
||||
if data.status == 'absolute' and not data.absolute:
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
elif data.status == 'relative' and (data.rel_days_number is None or not data.rel_days_relationto):
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
if data.status == 'relative':
|
||||
choice = BaseChoice.find(BASE_CHOICES, data.rel_days_relationto)
|
||||
if data.rel_days_number is None or not data.rel_days_relationto:
|
||||
raise ValidationError(self.error_messages['incomplete'])
|
||||
elif data.rel_days_relation == "before" and not choice.supports_before:
|
||||
raise ValidationError(_('A relative date cannot be expressed as "before" for "{}"'.format(choice.text)))
|
||||
elif data.rel_days_relation == "after" and not choice.supports_after:
|
||||
raise ValidationError(_('A relative date cannot be expressed as "after" for "{}"'.format(choice.text)))
|
||||
|
||||
return forms.MultiValueField.clean(self, value)
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ from django.utils.translation import (
|
||||
)
|
||||
from django_scopes import scopes_disabled
|
||||
|
||||
from pretix.base.decimal import round_decimal
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.media import MEDIA_TYPES
|
||||
from pretix.base.models import (
|
||||
@@ -60,7 +61,7 @@ from pretix.base.models import (
|
||||
Seat, SeatCategoryMapping, Voucher,
|
||||
)
|
||||
from pretix.base.models.event import SubEvent
|
||||
from pretix.base.models.orders import OrderFee
|
||||
from pretix.base.models.orders import CheckoutSession, OrderFee
|
||||
from pretix.base.models.tax import TaxRule
|
||||
from pretix.base.reldate import RelativeDateWrapper
|
||||
from pretix.base.services.checkin import _save_answers
|
||||
@@ -471,6 +472,16 @@ class CartManager:
|
||||
if term_last < time_machine_now(self.real_now_dt):
|
||||
raise CartError(error_messages['payment_ended'])
|
||||
|
||||
def _ensure_checkout_session(self):
|
||||
CheckoutSession.objects.get_or_create(
|
||||
event=self.event,
|
||||
cart_id=self.cart_id,
|
||||
defaults={
|
||||
"sales_channel": self._sales_channel,
|
||||
"testmode": self.event.testmode,
|
||||
},
|
||||
)
|
||||
|
||||
def _extend_expiry_of_valid_existing_positions(self):
|
||||
# real_now_dt is initialized at CartManager instantiation, so it's slightly in the past. Add a small
|
||||
# delta to reduce risk of extending already expired CartPositions.
|
||||
@@ -916,6 +927,8 @@ class CartManager:
|
||||
if custom_price > 99_999_999_999:
|
||||
raise CartError(error_messages['price_too_high'])
|
||||
|
||||
custom_price = round_decimal(custom_price, currency=self.event.currency)
|
||||
|
||||
op = self.AddOperation(
|
||||
count=i['count'],
|
||||
item=item,
|
||||
@@ -1038,6 +1051,8 @@ class CartManager:
|
||||
if custom_price > 99_999_999_999:
|
||||
raise CartError(error_messages['price_too_high'])
|
||||
|
||||
custom_price = round_decimal(custom_price, currency=self.event.currency)
|
||||
|
||||
# Fix positions with wrong price (TODO: happens out-of-cartmanager-transaction and therefore a little hacky)
|
||||
for ca in current_addons[cp][a['item'], a['variation']]:
|
||||
if ca.listed_price != listed_price:
|
||||
@@ -1554,6 +1569,7 @@ class CartManager:
|
||||
|
||||
def commit(self):
|
||||
self._check_presale_dates()
|
||||
self._ensure_checkout_session()
|
||||
self._check_max_cart_size()
|
||||
|
||||
err = self._delete_out_of_timeframe()
|
||||
|
||||
@@ -40,7 +40,7 @@ import dateutil
|
||||
import dateutil.parser
|
||||
from dateutil.tz import datetime_exists
|
||||
from django.core.files import File
|
||||
from django.db import IntegrityError, transaction
|
||||
from django.db import IntegrityError
|
||||
from django.db.models import (
|
||||
BooleanField, Case, Count, ExpressionWrapper, F, IntegerField, Max, Min,
|
||||
OuterRef, Q, Subquery, TextField, Value, When,
|
||||
@@ -59,6 +59,7 @@ from pretix.base.models import (
|
||||
)
|
||||
from pretix.base.signals import checkin_created, periodic_task
|
||||
from pretix.helpers import OF_SELF
|
||||
from pretix.helpers.database import conditional_atomic
|
||||
from pretix.helpers.jsonlogic import Logic
|
||||
from pretix.helpers.jsonlogic_boolalg import convert_to_dnf
|
||||
from pretix.helpers.jsonlogic_query import (
|
||||
@@ -891,6 +892,7 @@ def _save_answers(op, answers, given_answers):
|
||||
qa.answer = answer
|
||||
qa.save(update_fields=['answer'])
|
||||
qa.options.clear()
|
||||
return qa
|
||||
|
||||
written = False
|
||||
for q, a in given_answers.items():
|
||||
@@ -1043,10 +1045,10 @@ def perform_checkin(op: OrderPosition, clist: CheckinList, given_answers: dict,
|
||||
if not simulate:
|
||||
_save_answers(op, answers, given_answers)
|
||||
|
||||
with transaction.atomic():
|
||||
with conditional_atomic(not simulate):
|
||||
# Lock order positions, if it is an entry. We don't need it for exits, as a race condition wouldn't be problematic
|
||||
opqs = OrderPosition.all.select_related("order", "item")
|
||||
if type != Checkin.TYPE_EXIT:
|
||||
if type != Checkin.TYPE_EXIT and not simulate:
|
||||
opqs = opqs.select_for_update(of=OF_SELF)
|
||||
op = opqs.get(pk=op.pk)
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ from pretix.base.models.customers import CustomerSSOGrant
|
||||
|
||||
from ..models import CachedFile, CartPosition, InvoiceAddress
|
||||
from ..models.auth import UserKnownLoginSource
|
||||
from ..models.orders import CheckoutSession
|
||||
from ..signals import periodic_task
|
||||
|
||||
|
||||
@@ -43,6 +44,10 @@ def clean_cart_positions(sender, **kwargs):
|
||||
cp.delete()
|
||||
for cp in CartPosition.objects.filter(expires__lt=now() - timedelta(days=14), addon_to__isnull=True):
|
||||
cp.delete()
|
||||
for cs in CheckoutSession.objects.filter(created__lt=now() - timedelta(days=14)).exclude(
|
||||
Exists(CartPosition.objects.filter(cart_id=OuterRef("cart_id")))
|
||||
):
|
||||
cs.delete()
|
||||
for ia in InvoiceAddress.objects.filter(order__isnull=True, customer__isnull=True, last_modified__lt=now() - timedelta(days=14)):
|
||||
ia.delete()
|
||||
|
||||
|
||||
@@ -48,12 +48,12 @@ from celery.exceptions import MaxRetriesExceededError
|
||||
from django.conf import settings
|
||||
from django.core.cache import cache
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
from django.db import models, transaction
|
||||
from django.db.models import (
|
||||
Count, Exists, F, IntegerField, Max, Min, OuterRef, Q, QuerySet, Sum,
|
||||
Value,
|
||||
Count, Exists, F, IntegerField, Max, Min, OuterRef, Q, QuerySet, Subquery,
|
||||
Sum, Value,
|
||||
)
|
||||
from django.db.models.functions import Coalesce, Greatest
|
||||
from django.db.models.functions import Cast, Greatest
|
||||
from django.db.transaction import get_connection
|
||||
from django.dispatch import receiver
|
||||
from django.utils.functional import cached_property
|
||||
@@ -71,10 +71,10 @@ from pretix.base.models import (
|
||||
Membership, Order, OrderPayment, OrderPosition, Quota, Seat,
|
||||
SeatCategoryMapping, User, Voucher,
|
||||
)
|
||||
from pretix.base.models.event import SubEvent
|
||||
from pretix.base.models.event import Event_SettingsStore, SubEvent
|
||||
from pretix.base.models.orders import (
|
||||
BlockedTicketSecret, InvoiceAddress, OrderFee, OrderRefund,
|
||||
generate_secret,
|
||||
BlockedTicketSecret, CheckoutSession, InvoiceAddress, OrderFee,
|
||||
OrderRefund, generate_secret,
|
||||
)
|
||||
from pretix.base.models.organizer import SalesChannel, TeamAPIToken
|
||||
from pretix.base.models.tax import TAXED_ZERO, TaxedPrice, TaxRule
|
||||
@@ -1030,7 +1030,8 @@ def _apply_rounding_and_fees(positions: List[CartPosition], payment_requests: Li
|
||||
def _create_order(event: Event, *, email: str, positions: List[CartPosition], now_dt: datetime,
|
||||
payment_requests: List[dict], sales_channel: SalesChannel, locale: str=None,
|
||||
address: InvoiceAddress=None, meta_info: dict=None, shown_total=None,
|
||||
customer=None, valid_if_pending=False, api_meta: dict=None, tax_rounding_mode=None):
|
||||
customer=None, valid_if_pending=False, api_meta: dict=None, tax_rounding_mode=None,
|
||||
cart_id: str=None):
|
||||
payments = []
|
||||
|
||||
try:
|
||||
@@ -1113,6 +1114,14 @@ def _create_order(event: Event, *, email: str, positions: List[CartPosition], no
|
||||
if meta_info:
|
||||
for msg in meta_info.get('confirm_messages', []):
|
||||
order.log_action('pretix.event.order.consent', data={'msg': msg})
|
||||
if cart_id:
|
||||
try:
|
||||
session = CheckoutSession.objects.get(event=event, cart_id=cart_id)
|
||||
except CheckoutSession.DoesNotExist:
|
||||
pass
|
||||
else:
|
||||
session.answers.update(order=order, checkoutsession=None)
|
||||
session.delete()
|
||||
|
||||
order_placed.send(event, order=order, bulk=False)
|
||||
return order, payments
|
||||
@@ -1160,7 +1169,7 @@ def _order_placed_email_attendee(event: Event, order: Order, position: OrderPosi
|
||||
|
||||
def _perform_order(event: Event, payment_requests: List[dict], position_ids: List[str],
|
||||
email: str, locale: str, address: int, meta_info: dict=None, sales_channel: str='web',
|
||||
shown_total=None, customer=None, api_meta: dict=None, tax_rounding_mode=None):
|
||||
shown_total=None, customer=None, api_meta: dict=None, tax_rounding_mode=None, cart_id: str=None):
|
||||
for p in payment_requests:
|
||||
p['pprov'] = event.get_payment_providers(cached=True)[p['provider']]
|
||||
if not p['pprov']:
|
||||
@@ -1267,6 +1276,7 @@ def _perform_order(event: Event, payment_requests: List[dict], position_ids: Lis
|
||||
valid_if_pending=valid_if_pending,
|
||||
api_meta=api_meta,
|
||||
tax_rounding_mode=tax_rounding_mode,
|
||||
cart_id=cart_id,
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -1494,83 +1504,104 @@ def send_expiry_warnings(sender, **kwargs):
|
||||
@scopes_disabled()
|
||||
def send_download_reminders(sender, **kwargs):
|
||||
today = now().replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
qs = Order.objects.annotate(
|
||||
first_date=Coalesce(
|
||||
Min('all_positions__subevent__date_from'),
|
||||
F('event__date_from')
|
||||
|
||||
events = Event.objects.filter(
|
||||
Q(has_subevents=False, date_from__gte=now()) |
|
||||
(Q(has_subevents=True) & Q(Exists(
|
||||
SubEvent.objects.filter(event_id=OuterRef('id'), date_from__gte=now())
|
||||
)))
|
||||
).annotate(
|
||||
reminder_days=Subquery(
|
||||
Event_SettingsStore.objects.filter(
|
||||
object=OuterRef('id'),
|
||||
key='mail_days_download_reminder'
|
||||
).exclude(
|
||||
value="None"
|
||||
).annotate(
|
||||
val=Cast(F("value"), output_field=models.IntegerField()),
|
||||
).values("val")
|
||||
)
|
||||
).filter(
|
||||
download_reminder_sent=False,
|
||||
datetime__lte=now() - timedelta(hours=2),
|
||||
first_date__gte=today,
|
||||
).only(
|
||||
'pk', 'event_id', 'sales_channel', 'datetime',
|
||||
).order_by('event_id')
|
||||
event_id = None
|
||||
days = None
|
||||
event = None
|
||||
reminder_days__isnull=False,
|
||||
).order_by()
|
||||
|
||||
for o in qs:
|
||||
if o.event_id != event_id:
|
||||
days = o.event.settings.get('mail_days_download_reminder', as_type=int)
|
||||
event = o.event
|
||||
event_id = o.event_id
|
||||
for event in events.iterator(chunk_size=10_000):
|
||||
qs = event.orders.filter(
|
||||
download_reminder_sent=False,
|
||||
datetime__lte=now() - timedelta(hours=2),
|
||||
)
|
||||
|
||||
if days is None:
|
||||
continue
|
||||
|
||||
if o.sales_channel.identifier not in event.settings.mail_sales_channel_download_reminder:
|
||||
continue
|
||||
|
||||
reminder_date = (o.first_date - timedelta(days=days)).replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
if now() < reminder_date or o.datetime > reminder_date:
|
||||
continue
|
||||
|
||||
with transaction.atomic():
|
||||
o = Order.objects.select_for_update(of=OF_SELF).get(pk=o.pk)
|
||||
if o.download_reminder_sent:
|
||||
# Race condition
|
||||
continue
|
||||
positions = list(o.positions_with_tickets)
|
||||
if not positions:
|
||||
if event.has_subevents:
|
||||
qs = qs.annotate(
|
||||
first_date=Min('all_positions__subevent__date_from')
|
||||
).filter(
|
||||
Q(first_date__gte=today)
|
||||
)
|
||||
else:
|
||||
event_reminder_date = (event.date_from - timedelta(days=event.reminder_days)).replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
if now() < event_reminder_date:
|
||||
continue
|
||||
|
||||
if not o.ticket_download_available:
|
||||
qs = qs.only(
|
||||
'pk', 'event_id', 'sales_channel', 'datetime',
|
||||
).order_by()
|
||||
|
||||
for o in qs:
|
||||
if o.sales_channel.identifier not in event.settings.mail_sales_channel_download_reminder:
|
||||
continue
|
||||
|
||||
if o.status != Order.STATUS_PAID:
|
||||
if o.status != Order.STATUS_PENDING or o.require_approval or (not o.valid_if_pending and not o.event.settings.ticket_download_pending):
|
||||
if event.has_subevents:
|
||||
reminder_date = ((o.first_date or event.date_from) - timedelta(days=event.reminder_days)).replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
else:
|
||||
reminder_date = event_reminder_date
|
||||
if now() < reminder_date or o.datetime > reminder_date:
|
||||
continue
|
||||
|
||||
with transaction.atomic():
|
||||
o = Order.objects.select_for_update(of=OF_SELF).get(pk=o.pk)
|
||||
if o.download_reminder_sent:
|
||||
# Race condition
|
||||
continue
|
||||
positions = list(o.positions_with_tickets)
|
||||
if not positions:
|
||||
continue
|
||||
|
||||
with language(o.locale, o.event.settings.region):
|
||||
o.download_reminder_sent = True
|
||||
o.save(update_fields=['download_reminder_sent'])
|
||||
email_template = event.settings.mail_text_download_reminder
|
||||
email_subject = event.settings.mail_subject_download_reminder
|
||||
email_context = get_email_context(event=event, order=o)
|
||||
o.send_mail(
|
||||
email_subject, email_template, email_context,
|
||||
'pretix.event.order.email.download_reminder_sent',
|
||||
attach_tickets=True
|
||||
)
|
||||
if not o.ticket_download_available:
|
||||
continue
|
||||
|
||||
if event.settings.mail_send_download_reminder_attendee:
|
||||
for p in positions:
|
||||
if p.subevent_id:
|
||||
reminder_date = (p.subevent.date_from - timedelta(days=days)).replace(
|
||||
hour=0, minute=0, second=0, microsecond=0
|
||||
)
|
||||
if now() < reminder_date:
|
||||
continue
|
||||
if p.addon_to_id is None and p.attendee_email and p.attendee_email != o.email:
|
||||
email_template = event.settings.mail_text_download_reminder_attendee
|
||||
email_subject = event.settings.mail_subject_download_reminder_attendee
|
||||
email_context = get_email_context(event=event, order=o, position=p)
|
||||
o.send_mail(
|
||||
email_subject, email_template, email_context,
|
||||
'pretix.event.order.email.download_reminder_sent',
|
||||
attach_tickets=True, position=p
|
||||
)
|
||||
if o.status != Order.STATUS_PAID:
|
||||
if o.status != Order.STATUS_PENDING or o.require_approval or (not o.valid_if_pending and not o.event.settings.ticket_download_pending):
|
||||
continue
|
||||
|
||||
with language(o.locale, o.event.settings.region):
|
||||
o.download_reminder_sent = True
|
||||
o.save(update_fields=['download_reminder_sent'])
|
||||
email_template = event.settings.mail_text_download_reminder
|
||||
email_subject = event.settings.mail_subject_download_reminder
|
||||
email_context = get_email_context(event=event, order=o)
|
||||
o.send_mail(
|
||||
email_subject, email_template, email_context,
|
||||
'pretix.event.order.email.download_reminder_sent',
|
||||
attach_tickets=True
|
||||
)
|
||||
|
||||
if event.settings.mail_send_download_reminder_attendee:
|
||||
for p in positions:
|
||||
if p.subevent_id:
|
||||
reminder_date = (p.subevent.date_from - timedelta(days=event.reminder_days)).replace(
|
||||
hour=0, minute=0, second=0, microsecond=0
|
||||
)
|
||||
if now() < reminder_date:
|
||||
continue
|
||||
if p.addon_to_id is None and p.attendee_email and p.attendee_email != o.email:
|
||||
email_template = event.settings.mail_text_download_reminder_attendee
|
||||
email_subject = event.settings.mail_subject_download_reminder_attendee
|
||||
email_context = get_email_context(event=event, order=o, position=p)
|
||||
o.send_mail(
|
||||
email_subject, email_template, email_context,
|
||||
'pretix.event.order.email.download_reminder_sent',
|
||||
attach_tickets=True, position=p
|
||||
)
|
||||
|
||||
|
||||
def notify_user_changed_order(order, user=None, auth=None, invoices=[]):
|
||||
@@ -3169,12 +3200,12 @@ class OrderChangeManager:
|
||||
def perform_order(self, event: Event, payments: List[dict], positions: List[str],
|
||||
email: str=None, locale: str=None, address: int=None, meta_info: dict=None,
|
||||
sales_channel: str='web', shown_total=None, customer=None, override_now_dt: datetime=None,
|
||||
api_meta: dict=None):
|
||||
api_meta: dict=None, cart_id: str=None):
|
||||
with language(locale), time_machine_now_assigned(override_now_dt):
|
||||
try:
|
||||
try:
|
||||
return _perform_order(event, payments, positions, email, locale, address, meta_info,
|
||||
sales_channel, shown_total, customer, api_meta)
|
||||
sales_channel, shown_total, customer, api_meta, cart_id=cart_id)
|
||||
except LockTimeoutException:
|
||||
self.retry()
|
||||
except (MaxRetriesExceededError, LockTimeoutException):
|
||||
@@ -3438,7 +3469,7 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
|
||||
}
|
||||
)
|
||||
|
||||
new_invoice_created = False
|
||||
new_invoice = None
|
||||
if recreate_invoices:
|
||||
# Lock to prevent duplicate invoice creation
|
||||
order = Order.objects.select_for_update(of=OF_SELF).get(pk=order.pk)
|
||||
@@ -3449,13 +3480,16 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
|
||||
if has_active_invoice and order.total != oldtotal:
|
||||
try:
|
||||
generate_cancellation(i)
|
||||
generate_invoice(order)
|
||||
new_invoice = generate_invoice(order)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
new_invoice_created = True
|
||||
else:
|
||||
order.log_action('pretix.event.order.invoice.generated', data={
|
||||
'invoice': new_invoice.pk
|
||||
})
|
||||
|
||||
elif (not has_active_invoice or order.invoice_dirty) and invoice_qualified(order):
|
||||
if order.event.settings.get('invoice_generate') == 'True' or (
|
||||
@@ -3465,10 +3499,9 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
|
||||
try:
|
||||
if has_active_invoice:
|
||||
generate_cancellation(i)
|
||||
i = generate_invoice(order)
|
||||
new_invoice_created = True
|
||||
new_invoice = generate_invoice(order)
|
||||
order.log_action('pretix.event.order.invoice.generated', data={
|
||||
'invoice': i.pk
|
||||
'invoice': new_invoice.pk
|
||||
})
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
@@ -3476,8 +3509,11 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
|
||||
"exception": str(e)
|
||||
})
|
||||
|
||||
if new_invoice and invoice_transmission_separately(new_invoice):
|
||||
transmit_invoice.apply_async(args=(order.event_id, new_invoice.pk, False))
|
||||
|
||||
order.create_transactions()
|
||||
return old_fee, new_fee, fee, new_payment, new_invoice_created
|
||||
return old_fee, new_fee, fee, new_payment, bool(new_invoice)
|
||||
|
||||
|
||||
@receiver(order_paid, dispatch_uid="pretixbase_order_paid_giftcards")
|
||||
|
||||
@@ -561,6 +561,22 @@ def base_placeholders(sender, **kwargs):
|
||||
'event_location', ['event_or_subevent'], lambda event_or_subevent: str(event_or_subevent.location or ''),
|
||||
lambda event: str(event.location or ''),
|
||||
),
|
||||
SimpleFunctionalTextPlaceholder(
|
||||
'event_begin_time', ['event_or_subevent'],
|
||||
lambda event_or_subevent:
|
||||
date_format(event_or_subevent.date_from.astimezone(event_or_subevent.timezone), 'TIME_FORMAT')
|
||||
if event_or_subevent.date_from
|
||||
else '',
|
||||
lambda event: date_format(event.date_from.astimezone(event.timezone), 'TIME_FORMAT') if event.date_from else '',
|
||||
),
|
||||
SimpleFunctionalTextPlaceholder(
|
||||
'event_end_time', ['event_or_subevent'],
|
||||
lambda event_or_subevent:
|
||||
date_format(event_or_subevent.date_to.astimezone(event_or_subevent.timezone), 'TIME_FORMAT')
|
||||
if event_or_subevent.date_to
|
||||
else '',
|
||||
lambda event: date_format(event.date_to.astimezone(event.timezone), 'TIME_FORMAT') if event.date_to else '',
|
||||
),
|
||||
SimpleFunctionalTextPlaceholder(
|
||||
'event_admission_time', ['event_or_subevent'],
|
||||
lambda event_or_subevent:
|
||||
@@ -801,11 +817,10 @@ def get_available_placeholders(event, base_parameters, rich=False):
|
||||
return params
|
||||
|
||||
|
||||
def get_sample_context(event, context_parameters, rich=True):
|
||||
def prepare_sample_context_for_preview(placeholder_to_sample):
|
||||
context_dict = {}
|
||||
lbl = _('This value will be replaced based on dynamic parameters.')
|
||||
for k, v in get_available_placeholders(event, context_parameters, rich=rich).items():
|
||||
sample = v.render_sample(event)
|
||||
for k, sample in placeholder_to_sample.items():
|
||||
if isinstance(sample, PlainHtmlAlternativeString):
|
||||
context_dict[k] = PlainHtmlAlternativeString(
|
||||
'<{el} class="placeholder" title="{title}">{plain}</{el}>'.format(
|
||||
@@ -830,3 +845,12 @@ def get_sample_context(event, context_parameters, rich=True):
|
||||
escape(sample)
|
||||
))
|
||||
return context_dict
|
||||
|
||||
|
||||
def get_sample_context(event, context_parameters, rich=True):
|
||||
return prepare_sample_context_for_preview(
|
||||
{
|
||||
k: v.render_sample(event)
|
||||
for k, v in get_available_placeholders(event, context_parameters, rich=rich).items()
|
||||
}
|
||||
)
|
||||
|
||||
@@ -193,7 +193,7 @@ class QuotaAvailability:
|
||||
lock_name = '_'.join([str(p) for p in sorted([q.pk for q in quotas])])
|
||||
if rc.exists(f'quotas:availabilitycachewrite:{lock_name}{self._cache_key_suffix}'):
|
||||
return
|
||||
rc.setex(f'quotas:availabilitycachewrite:{lock_name}{self._cache_key_suffix}', '1', 10)
|
||||
rc.set(f'quotas:availabilitycachewrite:{lock_name}{self._cache_key_suffix}', '1', ex=10)
|
||||
|
||||
update = defaultdict(list)
|
||||
for q in quotas:
|
||||
|
||||
@@ -933,6 +933,23 @@ DEFAULTS = {
|
||||
"is over. You can use it to describe other options to get a ticket, such as a box office.")
|
||||
)
|
||||
},
|
||||
'event_list_empty_text': {
|
||||
'default': LazyI18nString.from_gettext(
|
||||
gettext_noop('No dates match your criteria.'),
|
||||
),
|
||||
'type': LazyI18nString,
|
||||
'form_class': I18nFormField,
|
||||
'serializer_class': I18nField,
|
||||
'form_kwargs': dict(
|
||||
label=pgettext_lazy("subevents", "Text for empty date results"),
|
||||
widget=I18nMarkdownTextarea,
|
||||
widget_kwargs={'attrs': {'rows': '2'}},
|
||||
help_text=pgettext_lazy("subevents", "This text will be shown if the calendar or list of dates is empty, "
|
||||
"e.g. because a month does not contain any dates or a filter chosen by the user does "
|
||||
"not find any results. You can use this to advertise ways to get in touch with you to "
|
||||
"arrange further dates. We do not recommend more than one or two sentences.")
|
||||
)
|
||||
},
|
||||
'payment_explanation': {
|
||||
'default': '',
|
||||
'type': LazyI18nString,
|
||||
@@ -979,12 +996,12 @@ DEFAULTS = {
|
||||
'form_class': forms.IntegerField,
|
||||
'serializer_class': serializers.IntegerField,
|
||||
'write_permission': 'event.settings.payment:write',
|
||||
'form_kwargs': dict(
|
||||
'form_kwargs': lambda suffix="", parent=0: dict(
|
||||
label=_('Payment term in days'),
|
||||
widget=forms.NumberInput(
|
||||
attrs={
|
||||
'data-display-dependency': '#id_payment_term_mode_0',
|
||||
'data-required-if': '#id_payment_term_mode_0'
|
||||
'data-display-dependency': f'#id_payment_term_mode{suffix}_{parent}',
|
||||
'data-required-if': f'#id_payment_term_mode{suffix}_{parent}'
|
||||
},
|
||||
),
|
||||
help_text=_("The number of days after placing an order the user has to pay to preserve their reservation. If "
|
||||
@@ -1023,7 +1040,7 @@ DEFAULTS = {
|
||||
'form_class': forms.IntegerField,
|
||||
'serializer_class': serializers.IntegerField,
|
||||
'write_permission': 'event.settings.payment:write',
|
||||
'form_kwargs': dict(
|
||||
'form_kwargs': lambda suffix="", parent=1: dict(
|
||||
label=_('Payment term in minutes'),
|
||||
help_text=_("The number of minutes after placing an order the user has to pay to preserve their reservation. "
|
||||
"Only use this if you exclusively offer real-time payment methods. Please note that for technical reasons, "
|
||||
@@ -1032,8 +1049,8 @@ DEFAULTS = {
|
||||
MaxValueValidator(1440)],
|
||||
widget=forms.NumberInput(
|
||||
attrs={
|
||||
'data-display-dependency': '#id_payment_term_mode_1',
|
||||
'data-required-if': '#id_payment_term_mode_1'
|
||||
'data-display-dependency': f'#id_payment_term_mode{suffix}_{parent}',
|
||||
'data-required-if': f'#id_payment_term_mode{suffix}_{parent}'
|
||||
},
|
||||
),
|
||||
),
|
||||
@@ -2930,7 +2947,7 @@ Your {event} team""")) # noqa: W291
|
||||
},
|
||||
'mail_days_download_reminder': {
|
||||
'type': int,
|
||||
'default': None
|
||||
'default': None # when this default is changed, send_download_reminders needs to change
|
||||
},
|
||||
'mail_send_download_reminder_attendee': {
|
||||
'type': bool,
|
||||
|
||||
+112
-72
@@ -32,18 +32,21 @@ from django.utils.functional import cached_property
|
||||
from django.utils.timezone import make_aware
|
||||
|
||||
from pretix.base.forms.questions import (
|
||||
BaseInvoiceAddressForm, BaseInvoiceNameForm, BaseQuestionsForm,
|
||||
BaseInvoiceAddressForm, BaseInvoiceNameForm, OrderLevelQuestionsForm,
|
||||
TicketLevelQuestionsForm,
|
||||
)
|
||||
from pretix.base.models import (
|
||||
CartPosition, InvoiceAddress, OrderPosition, Question, QuestionAnswer,
|
||||
QuestionOption,
|
||||
)
|
||||
from pretix.base.models.customers import AttendeeProfile
|
||||
from pretix.base.models.orders import CheckoutSession, Order
|
||||
from pretix.presale.signals import contact_form_fields_overrides
|
||||
|
||||
|
||||
class BaseQuestionsViewMixin:
|
||||
form_class = BaseQuestionsForm
|
||||
order_form_class = OrderLevelQuestionsForm
|
||||
orderposition_form_class = TicketLevelQuestionsForm
|
||||
all_optional = False
|
||||
|
||||
@cached_property
|
||||
@@ -56,6 +59,28 @@ class BaseQuestionsViewMixin:
|
||||
def question_form_kwargs(self, cr):
|
||||
return {}
|
||||
|
||||
@property
|
||||
def order_question_container(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
@cached_property
|
||||
def order_questions_form(self):
|
||||
container = self.order_question_container
|
||||
if container is None:
|
||||
return None
|
||||
kwargs = {} # self.question_form_kwargs(cr)
|
||||
form = self.order_form_class(
|
||||
event=self.request.event,
|
||||
prefix='order',
|
||||
request=self.request,
|
||||
container=container,
|
||||
all_optional=self.all_optional,
|
||||
data=(self.request.POST if self.request.method == 'POST' else None),
|
||||
files=(self.request.FILES if self.request.method == 'POST' else None),
|
||||
**kwargs
|
||||
)
|
||||
return form
|
||||
|
||||
@cached_property
|
||||
def forms(self):
|
||||
"""
|
||||
@@ -69,15 +94,17 @@ class BaseQuestionsViewMixin:
|
||||
orderpos = cr if isinstance(cr, OrderPosition) else None
|
||||
|
||||
kwargs = self.question_form_kwargs(cr)
|
||||
form = self.form_class(event=self.request.event,
|
||||
prefix=cr.id,
|
||||
request=self.request,
|
||||
cartpos=cartpos,
|
||||
orderpos=orderpos,
|
||||
all_optional=self.all_optional,
|
||||
data=(self.request.POST if self.request.method == 'POST' else None),
|
||||
files=(self.request.FILES if self.request.method == 'POST' else None),
|
||||
**kwargs)
|
||||
form = self.orderposition_form_class(
|
||||
event=self.request.event,
|
||||
prefix=cr.id,
|
||||
request=self.request,
|
||||
cartpos=cartpos,
|
||||
orderpos=orderpos,
|
||||
all_optional=self.all_optional,
|
||||
data=(self.request.POST if self.request.method == 'POST' else None),
|
||||
files=(self.request.FILES if self.request.method == 'POST' else None),
|
||||
**kwargs
|
||||
)
|
||||
form.pos = cartpos or orderpos
|
||||
form.show_copy_answers_to_addon_button = form.pos.addon_to and (
|
||||
set(form.pos.addon_to.item.questions.all()) & set(form.pos.item.questions.all()) or
|
||||
@@ -130,8 +157,38 @@ class BaseQuestionsViewMixin:
|
||||
|
||||
def save(self):
|
||||
failed = False
|
||||
if self.order_questions_form:
|
||||
if not self.order_questions_form.is_valid():
|
||||
failed = True
|
||||
else:
|
||||
checkoutsession = self.order_question_container if isinstance(self.order_question_container, CheckoutSession) else None
|
||||
order = self.order_question_container if isinstance(self.order_question_container, Order) else None
|
||||
for k, v in self.order_questions_form.cleaned_data.items():
|
||||
if k.startswith('question_'):
|
||||
field = self.order_questions_form.fields[k]
|
||||
if hasattr(field, 'answer'):
|
||||
# We already have a cached answer object, so we don't
|
||||
# have to create a new one
|
||||
if v == '' or v is None or (isinstance(field, forms.FileField) and v is False) \
|
||||
or (isinstance(v, QuerySet) and not v.exists()):
|
||||
if field.answer.file:
|
||||
field.answer.file.delete()
|
||||
field.answer.delete()
|
||||
else:
|
||||
self._save_to_answer(field, field.answer, v)
|
||||
field.answer.save()
|
||||
elif v != '' and v is not None:
|
||||
self._upsert_answer(
|
||||
field, v,
|
||||
checkoutsession=checkoutsession,
|
||||
order=order,
|
||||
question=field.question,
|
||||
)
|
||||
|
||||
for form in self.forms:
|
||||
meta_info = form.pos.meta_info_data
|
||||
cartposition = form.pos if isinstance(form.pos, CartPosition) else None
|
||||
orderposition = form.pos if isinstance(form.pos, OrderPosition) else None
|
||||
# Every form represents a CartPosition or OrderPosition with questions attached
|
||||
if not form.is_valid():
|
||||
failed = True
|
||||
@@ -140,10 +197,8 @@ class BaseQuestionsViewMixin:
|
||||
prof = AttendeeProfile.objects.filter(
|
||||
customer=self.cart_customer, pk=form.cleaned_data.get('saved_id')
|
||||
).first() or AttendeeProfile(customer=getattr(self, 'cart_customer', None))
|
||||
answers_key_to_index = {a.get('field_name'): i for i, a in enumerate(prof.answers)}
|
||||
else:
|
||||
prof = AttendeeProfile(customer=getattr(self, 'cart_customer', None))
|
||||
answers_key_to_index = {}
|
||||
|
||||
# This form was correctly filled, so we store the data as
|
||||
# answers to the questions / in the CartPosition object
|
||||
@@ -181,64 +236,19 @@ class BaseQuestionsViewMixin:
|
||||
else:
|
||||
self._save_to_answer(field, field.answer, v)
|
||||
field.answer.save()
|
||||
if isinstance(field, forms.ModelMultipleChoiceField) or isinstance(field, forms.ModelChoiceField):
|
||||
answer_value = {o.identifier: str(o) for o in field.answer.options.all()}
|
||||
elif isinstance(field, forms.BooleanField):
|
||||
answer_value = bool(field.answer.answer)
|
||||
else:
|
||||
answer_value = str(field.answer.answer)
|
||||
answer_dict = {
|
||||
'field_name': k,
|
||||
'field_label': str(field.label),
|
||||
'value': answer_value,
|
||||
'question_type': field.question.type,
|
||||
'question_identifier': field.question.identifier,
|
||||
}
|
||||
if k in answers_key_to_index:
|
||||
prof.answers[answers_key_to_index[k]] = answer_dict
|
||||
else:
|
||||
prof.answers.append(answer_dict)
|
||||
|
||||
answer_dict = self._build_answer_dict(field, field.answer, k)
|
||||
prof.store_answer(answer_dict)
|
||||
elif v != '' and v is not None:
|
||||
answer = QuestionAnswer(
|
||||
cartposition=(form.pos if isinstance(form.pos, CartPosition) else None),
|
||||
orderposition=(form.pos if isinstance(form.pos, OrderPosition) else None),
|
||||
answer = self._upsert_answer(
|
||||
field, v,
|
||||
cartposition=cartposition,
|
||||
orderposition=orderposition,
|
||||
question=field.question,
|
||||
)
|
||||
try:
|
||||
self._save_to_answer(field, answer, v)
|
||||
answer.save()
|
||||
except IntegrityError:
|
||||
# Since we prefill ``field.answer`` at form creation time, there's a possible race condition
|
||||
# here if the users submits their save request a second time while the first one is still running,
|
||||
# thus leading to duplicate QuestionAnswer objects. Since Django doesn't support UPSERT, the "proper"
|
||||
# fix would be a transaction with select_for_update(), or at least fetching using get_or_create here
|
||||
# again. However, both of these approaches have a significant performance overhead for *all* requests,
|
||||
# while the issue happens very very rarely. So we opt for just catching the error and retrying properly.
|
||||
answer = QuestionAnswer.objects.get(
|
||||
cartposition=(form.pos if isinstance(form.pos, CartPosition) else None),
|
||||
orderposition=(form.pos if isinstance(form.pos, OrderPosition) else None),
|
||||
question=field.question,
|
||||
)
|
||||
self._save_to_answer(field, answer, v)
|
||||
answer.save()
|
||||
|
||||
if isinstance(field, forms.ModelMultipleChoiceField) or isinstance(field, forms.ModelChoiceField):
|
||||
answer_value = {o.identifier: str(o) for o in answer.options.all()}
|
||||
elif isinstance(field, forms.BooleanField):
|
||||
answer_value = bool(answer.answer)
|
||||
else:
|
||||
answer_value = str(answer.answer)
|
||||
answer_dict = {
|
||||
'field_name': k,
|
||||
'field_label': str(field.label),
|
||||
'value': answer_value,
|
||||
'question_type': field.question.type,
|
||||
'question_identifier': field.question.identifier,
|
||||
}
|
||||
if k in answers_key_to_index:
|
||||
prof.answers[answers_key_to_index[k]] = answer_dict
|
||||
else:
|
||||
prof.answers.append(answer_dict)
|
||||
answer_dict = self._build_answer_dict(field, answer, k)
|
||||
prof.store_answer(answer_dict)
|
||||
|
||||
else:
|
||||
field = form.fields[k]
|
||||
@@ -257,10 +267,7 @@ class BaseQuestionsViewMixin:
|
||||
'question_type': None,
|
||||
'question_identifier': None,
|
||||
}
|
||||
if k in answers_key_to_index:
|
||||
prof.answers[answers_key_to_index[k]] = answer_dict
|
||||
else:
|
||||
prof.answers.append(answer_dict)
|
||||
prof.store_answer(answer_dict)
|
||||
|
||||
form.pos.meta_info = json.dumps(meta_info)
|
||||
form.pos.save()
|
||||
@@ -271,6 +278,23 @@ class BaseQuestionsViewMixin:
|
||||
|
||||
return not failed
|
||||
|
||||
def _upsert_answer(self, field, v, **answer_kwargs):
|
||||
answer = QuestionAnswer(**answer_kwargs)
|
||||
try:
|
||||
self._save_to_answer(field, answer, v)
|
||||
answer.save()
|
||||
except IntegrityError:
|
||||
# Since we prefill ``field.answer`` at form creation time, there's a possible race condition
|
||||
# here if the users submits their save request a second time while the first one is still running,
|
||||
# thus leading to duplicate QuestionAnswer objects. Since Django doesn't support UPSERT, the "proper"
|
||||
# fix would be a transaction with select_for_update(), or at least fetching using get_or_create here
|
||||
# again. However, both of these approaches have a significant performance overhead for *all* requests,
|
||||
# while the issue happens very very rarely. So we opt for just catching the error and retrying properly.
|
||||
answer = QuestionAnswer.objects.get(**answer_kwargs)
|
||||
self._save_to_answer(field, answer, v)
|
||||
answer.save()
|
||||
return answer
|
||||
|
||||
def _save_to_answer(self, field, answer, value):
|
||||
if isinstance(field, forms.ModelMultipleChoiceField):
|
||||
answstr = ", ".join([str(o) for o in value])
|
||||
@@ -294,6 +318,21 @@ class BaseQuestionsViewMixin:
|
||||
else:
|
||||
answer.answer = value
|
||||
|
||||
def _build_answer_dict(self, field, answer, k):
|
||||
if isinstance(field, forms.ModelMultipleChoiceField) or isinstance(field, forms.ModelChoiceField):
|
||||
answer_value = {o.identifier: str(o) for o in answer.options.all()}
|
||||
elif isinstance(field, forms.BooleanField):
|
||||
answer_value = bool(answer.answer)
|
||||
else:
|
||||
answer_value = str(answer.answer)
|
||||
return {
|
||||
'field_name': k,
|
||||
'field_label': str(field.label),
|
||||
'value': answer_value,
|
||||
'question_type': field.question.type,
|
||||
'question_identifier': field.question.identifier,
|
||||
}
|
||||
|
||||
|
||||
class OrderQuestionsViewMixin(BaseQuestionsViewMixin):
|
||||
invoice_form_class = BaseInvoiceAddressForm
|
||||
@@ -309,7 +348,7 @@ class OrderQuestionsViewMixin(BaseQuestionsViewMixin):
|
||||
def positions(self):
|
||||
qqs = self.request.event.questions.all()
|
||||
if self.only_user_visible:
|
||||
qqs = qqs.filter(ask_during_checkin=False, hidden=False)
|
||||
qqs = qqs.filter(ask_during_checkin=False, hidden=False, container_type=Question.ContainerType.ORDERPOSITION)
|
||||
return list(self.order.positions.select_related(
|
||||
'item', 'variation'
|
||||
).prefetch_related(
|
||||
@@ -397,6 +436,7 @@ class OrderQuestionsViewMixin(BaseQuestionsViewMixin):
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['order'] = self.order
|
||||
ctx['order_questions_form'] = self.order_questions_form
|
||||
ctx['formgroups'] = self.formdict.items()
|
||||
ctx['invoice_form'] = self.invoice_form
|
||||
ctx['invoice_address_asked'] = self.address_asked
|
||||
|
||||
@@ -600,6 +600,7 @@ class EventSettingsForm(EventSettingsValidationMixin, FormPlaceholderMixin, Sett
|
||||
'imprint_url',
|
||||
'checkout_email_helptext',
|
||||
'presale_has_ended_text',
|
||||
'event_list_empty_text',
|
||||
'voucher_explanation_text',
|
||||
'checkout_success_text',
|
||||
'show_dates_on_frontpage',
|
||||
@@ -734,6 +735,7 @@ class EventSettingsForm(EventSettingsValidationMixin, FormPlaceholderMixin, Sett
|
||||
del self.fields['event_list_available_only']
|
||||
del self.fields['event_list_filters']
|
||||
del self.fields['event_calendar_future_only']
|
||||
del self.fields['event_list_empty_text']
|
||||
self.fields['primary_font'].choices = [('Open Sans', 'Open Sans')] + sorted([
|
||||
(a, FontSelect.FontOption(title=a, data=v)) for a, v in get_fonts(self.event, pdf_support_required=False).items()
|
||||
], key=lambda a: a[0])
|
||||
@@ -856,6 +858,50 @@ class PaymentSettingsForm(EventSettingsValidationMixin, SettingsForm):
|
||||
'tax_rule_payment',
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
self.term_channel_fields = {}
|
||||
for c in self.obj.organizer.sales_channels.all():
|
||||
if c.type_instance.payment_restrictions_supported and c.identifier != "web":
|
||||
# At the moment, it seems sufficient to allow this for the same channel types as other payment settings
|
||||
# We can always introduce more flags later if needed
|
||||
suffix = '_' + c.identifier.replace(".", "_")
|
||||
self.term_channel_fields[c] = [
|
||||
'payment_term_mode' + suffix,
|
||||
'payment_term_days' + suffix,
|
||||
'payment_term_minutes' + suffix,
|
||||
]
|
||||
self.fields['payment_term_mode' + suffix] = DEFAULTS['payment_term_mode']['form_class'](
|
||||
label=_("Payment term"),
|
||||
widget=forms.RadioSelect,
|
||||
required=False,
|
||||
choices=(
|
||||
('', _("same as above")),
|
||||
('days', _("different payment term in days")),
|
||||
('minutes', _("different payment term in minutes"))
|
||||
),
|
||||
)
|
||||
self.fields['payment_term_days' + suffix] = DEFAULTS['payment_term_days']['form_class'](
|
||||
required=False,
|
||||
**DEFAULTS['payment_term_days']['form_kwargs'](suffix, 1),
|
||||
)
|
||||
self.fields['payment_term_minutes' + suffix] = DEFAULTS['payment_term_minutes']['form_class'](
|
||||
required=False,
|
||||
**DEFAULTS['payment_term_minutes']['form_kwargs'](suffix, 2),
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
data = super().clean()
|
||||
for c in self.term_channel_fields.keys():
|
||||
suffix = '_' + c.identifier.replace(".", "_")
|
||||
mode = self.cleaned_data.get(f'payment_term_mode{suffix}')
|
||||
if mode == 'days' and self.cleaned_data.get(f'payment_term_days{suffix}') is None:
|
||||
raise ValidationError({f'payment_term_days{suffix}': _("This field is required.")})
|
||||
if mode == 'minutes' and self.cleaned_data.get(f'payment_term_minutes{suffix}') is None:
|
||||
raise ValidationError({f'payment_term_minutes{suffix}': _("This field is required.")})
|
||||
return data
|
||||
|
||||
def clean_payment_term_days(self):
|
||||
value = self.cleaned_data.get('payment_term_days')
|
||||
if self.cleaned_data.get('payment_term_mode') == 'days' and value is None:
|
||||
|
||||
@@ -153,11 +153,19 @@ class QuestionForm(I18nModelForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['items'].queryset = self.instance.event.items.all()
|
||||
self.fields['items'].required = True
|
||||
if self.instance.container_type == Question.ContainerType.ORDERPOSITION:
|
||||
self.fields['items'].queryset = self.instance.event.items.all()
|
||||
self.fields['items'].required = True
|
||||
else:
|
||||
del self.fields['items']
|
||||
del self.fields['ask_during_checkin']
|
||||
del self.fields['show_during_checkin']
|
||||
del self.fields['print_on_invoice']
|
||||
self.fields['dependency_question'].widget.attrs['data-container-type'] = self.instance.container_type
|
||||
self.fields['dependency_question'].queryset = self.instance.event.questions.filter(
|
||||
type__in=(Question.TYPE_BOOLEAN, Question.TYPE_CHOICE, Question.TYPE_CHOICE_MULTIPLE),
|
||||
ask_during_checkin=False
|
||||
ask_during_checkin=False,
|
||||
container_type=self.instance.container_type,
|
||||
)
|
||||
if self.instance.pk:
|
||||
self.fields['dependency_question'].queryset = self.fields['dependency_question'].queryset.exclude(
|
||||
@@ -243,6 +251,7 @@ class QuestionForm(I18nModelForm):
|
||||
'valid_date_min',
|
||||
'valid_date_max',
|
||||
'valid_file_portrait',
|
||||
'valid_string_length_min',
|
||||
'valid_string_length_max',
|
||||
]
|
||||
widgets = {
|
||||
|
||||
@@ -94,14 +94,14 @@ class SubEventBulkForm(SubEventForm):
|
||||
label=_('Start of presale'),
|
||||
help_text=_('Optional. No products will be sold before this date.'),
|
||||
required=False,
|
||||
limit_choices=('date_from', 'date_to'),
|
||||
limit_choices=('event__date_from', 'event__date_to'),
|
||||
)
|
||||
rel_presale_end = RelativeDateTimeField(
|
||||
label=_('End of presale'),
|
||||
help_text=_('Optional. No products will be sold after this date. If you do not set this value, the presale '
|
||||
'will end after the end date of your event.'),
|
||||
required=False,
|
||||
limit_choices=('date_from', 'date_to'),
|
||||
limit_choices=('event__date_from', 'event__date_to'),
|
||||
)
|
||||
skip_if_overlap = forms.BooleanField(
|
||||
label=pgettext_lazy('subevent', 'Skip dates that overlap with any existing date'),
|
||||
@@ -333,12 +333,12 @@ class BulkSubEventItemForm(SubEventItemForm):
|
||||
rel_available_from = RelativeDateTimeField(
|
||||
label=_('Available from'),
|
||||
required=False,
|
||||
limit_choices=('date_from', 'date_to'),
|
||||
limit_choices=('event__date_from', 'event__date_to'),
|
||||
)
|
||||
rel_available_until = RelativeDateTimeField(
|
||||
label=_('Available until'),
|
||||
required=False,
|
||||
limit_choices=('date_from', 'date_to'),
|
||||
limit_choices=('event__date_from', 'event__date_to'),
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -355,12 +355,12 @@ class BulkSubEventItemVariationForm(SubEventItemVariationForm):
|
||||
rel_available_from = RelativeDateTimeField(
|
||||
label=_('Available from'),
|
||||
required=False,
|
||||
limit_choices=('date_from', 'date_to'),
|
||||
limit_choices=('event__date_from', 'event__date_to'),
|
||||
)
|
||||
rel_available_until = RelativeDateTimeField(
|
||||
label=_('Available_until'),
|
||||
required=False,
|
||||
limit_choices=('date_from', 'date_to'),
|
||||
limit_choices=('event__date_from', 'event__date_to'),
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
<script type="text/javascript" src="{% static "leaflet/leaflet.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "pretixcontrol/js/ui/geo.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "pretixbase/js/details.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "pretixbase/js/reldate.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "pretixbase/js/asynctask.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "sortable/Sortable.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "colorpicker/bootstrap-colorpicker.js" %}"></script>
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load bootstrap3 %}
|
||||
{% load getitem %}
|
||||
{% block inside %}
|
||||
<h1>{% trans "Payment settings" %}</h1>
|
||||
<form action="" method="post" class="form-horizontal form-plugins">
|
||||
<form action="" method="post" class="form-horizontal">
|
||||
{% csrf_token %}
|
||||
<div class="tabbed-form">
|
||||
<fieldset>
|
||||
@@ -71,14 +72,37 @@
|
||||
{% bootstrap_form_errors form layout="control" %}
|
||||
{% bootstrap_field form.payment_term_mode layout="control" %}
|
||||
{% bootstrap_field form.payment_term_days layout="control" %}
|
||||
{% bootstrap_field form.payment_term_weekdays layout="control" %}
|
||||
{% bootstrap_field form.payment_term_minutes layout="control" %}
|
||||
{% bootstrap_field form.payment_term_weekdays layout="control" %}
|
||||
{% bootstrap_field form.payment_term_last layout="control" %}
|
||||
{% bootstrap_field form.payment_term_expire_automatically layout="control" %}
|
||||
{% trans "days" context "unit" as days %}
|
||||
{% bootstrap_field form.payment_term_expire_delay_days layout="control" addon_after=days %}
|
||||
{% bootstrap_field form.payment_term_accept_late layout="control" %}
|
||||
{% bootstrap_field form.payment_pending_hidden layout="control" %}
|
||||
|
||||
{% for c, fields in form.term_channel_fields.items %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">
|
||||
{% if "." in c.icon %}
|
||||
<img src="{% static c.icon %}" class="fa-like-image"
|
||||
data-toggle="tooltip" title="{{ c.type_instance.verbose_name }}">
|
||||
{% else %}
|
||||
<span class="fa fa-fw fa-{{ c.icon }} text-muted"
|
||||
data-toggle="tooltip" title="{{ c.type_instance.verbose_name }}"></span>
|
||||
{% endif %}
|
||||
{{ c.label }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% for f in fields %}
|
||||
{% bootstrap_field form|getitem:f layout="control" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{% trans "Advanced" %}</legend>
|
||||
|
||||
@@ -275,6 +275,9 @@
|
||||
{% bootstrap_field sform.event_calendar_future_only layout="control" %}
|
||||
{% endif %}
|
||||
{% bootstrap_field sform.low_availability_percentage layout="control" addon_after="%" %}
|
||||
{% if sform.event_list_empty_text %}
|
||||
{% bootstrap_field sform.event_list_empty_text layout="control" %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
<h4>{% trans "Order details" %}</h4>
|
||||
|
||||
@@ -13,9 +13,11 @@
|
||||
{% blocktrans with url=edit_url|add:"#tab-0-1-open" %}If you want to keep the answers, <a href="{{url}}">edit the question</a> and set it to hidden.{% endblocktrans %}
|
||||
</p>
|
||||
</div>
|
||||
{% for item in dependent %}
|
||||
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{{ item }}</a></li>
|
||||
{% endfor %}
|
||||
<ul>
|
||||
{% for item in dependent %}
|
||||
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{{ item }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<div class="form-group submit-group">
|
||||
<a href="{% url "control:event.items.questions" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default btn-cancel">
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
<legend>{% trans "General" %}</legend>
|
||||
{% bootstrap_field form.question layout="control" %}
|
||||
{% bootstrap_field form.type layout="control" %}
|
||||
{% bootstrap_field form.items layout="control" %}
|
||||
{% if form.items %}
|
||||
{% bootstrap_field form.items layout="control" %}
|
||||
{% endif %}
|
||||
{% bootstrap_field form.required layout="control" %}
|
||||
<div class="alert alert-info alert-required-boolean">
|
||||
{% blocktrans trimmed %}
|
||||
@@ -45,6 +47,7 @@
|
||||
{% bootstrap_field form.valid_datetime_max layout="control" %}
|
||||
</div>
|
||||
<div id="valid-string">
|
||||
{% bootstrap_field form.valid_string_length_min layout="control" %}
|
||||
{% bootstrap_field form.valid_string_length_max layout="control" %}
|
||||
</div>
|
||||
<div id="valid-file">
|
||||
@@ -128,10 +131,16 @@
|
||||
<legend>{% trans "Advanced" %}</legend>
|
||||
{% bootstrap_field form.help_text layout="control" %}
|
||||
{% bootstrap_field form.identifier layout="control" %}
|
||||
{% bootstrap_field form.ask_during_checkin layout="control" %}
|
||||
{% bootstrap_field form.show_during_checkin layout="control" %}
|
||||
{% if form.ask_during_checkin %}
|
||||
{% bootstrap_field form.ask_during_checkin layout="control" %}
|
||||
{% endif %}
|
||||
{% if form.show_during_checkin %}
|
||||
{% bootstrap_field form.show_during_checkin layout="control" %}
|
||||
{% endif %}
|
||||
{% bootstrap_field form.hidden layout="control" %}
|
||||
{% bootstrap_field form.print_on_invoice layout="control" %}
|
||||
{% if form.print_on_invoice %}
|
||||
{% bootstrap_field form.print_on_invoice layout="control" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-md-3 control-label" for="id_dependency_question">
|
||||
|
||||
@@ -10,11 +10,26 @@
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% csrf_token %}
|
||||
{% if 'event.items:write' in request.eventpermset %}
|
||||
<p>
|
||||
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new question" %}
|
||||
</a>
|
||||
</p>
|
||||
|
||||
{% if request.event.settings.feature_flag_order_level_questions %}
|
||||
{% if 'event.items:write' in request.eventpermset %}
|
||||
<p>
|
||||
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}?container_type=P" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new per-ticket question" %}
|
||||
</a>
|
||||
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}?container_type=O" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new order-level question" %}
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<h2>{% trans "Per-ticket questions" %}</h2>
|
||||
<p>{% trans "These questions are asked for every ticket, so possibly multiple times in the same order." %}</p>
|
||||
{% else %}
|
||||
{% if 'event.items:write' in request.eventpermset %}
|
||||
<p>
|
||||
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}?container_type=P" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new question" %}
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-quotas">
|
||||
@@ -32,8 +47,8 @@
|
||||
<th class="action-col-2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody data-dnd-url="{% url "control:event.items.questions.reorder" organizer=request.event.organizer.slug event=request.event.slug %}">
|
||||
{% for q in questions %}
|
||||
<tbody data-dnd-url="{% url "control:event.items.questions.reorder" organizer=request.event.organizer.slug event=request.event.slug %}?container_type=P">
|
||||
{% for q in questions %}{% if q.container_type == "P" %}
|
||||
<tr data-dnd-id="{{ q.id }}">
|
||||
<td>
|
||||
<strong>
|
||||
@@ -63,7 +78,6 @@
|
||||
{% if q.pk and q.ask_during_checkin %}
|
||||
<span class="fa fa-check-square text-muted" data-toggle="tooltip" title="{% trans "Ask during check-in" %}"></span>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
<td>
|
||||
{% if q.pk and q.hidden %}
|
||||
@@ -102,8 +116,90 @@
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{% if request.event.settings.feature_flag_order_level_questions %}
|
||||
<h2>
|
||||
{% trans "Per-order questions" %}
|
||||
<small><span class="label label-info" title="
|
||||
{% trans "This functionality is in active development and expected to change significantly over the coming months." %}
|
||||
{% trans "Per-order questions are currently not supported and will not be displayed in pretixPOS." %}
|
||||
" data-toggle="tooltip">
|
||||
<span class="fa fa-flask" aria-hidden="true"></span>
|
||||
{% trans "Experimental feature" %}
|
||||
</span></small>
|
||||
</h2>
|
||||
<p>{% trans "These questions are asked once per order." %}</p>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-quotas">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Question" %}</th>
|
||||
<th>{% trans "Type" %}</th>
|
||||
<th class="iconcol"></th>
|
||||
<th class="iconcol"></th>
|
||||
<th class="iconcol"></th>
|
||||
{% if 'event.items:write' in request.eventpermset %}
|
||||
<th class="action-col-2"></th>
|
||||
{% endif %}
|
||||
<th class="action-col-2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody data-dnd-url="{% url "control:event.items.questions.reorder" organizer=request.event.organizer.slug event=request.event.slug %}?container_type=O">
|
||||
{% for q in questions %}{% if q.container_type == "O" %}
|
||||
<tr data-dnd-id="{{ q.id }}">
|
||||
<td>
|
||||
<strong>
|
||||
{{ q.question }}
|
||||
</strong><br>
|
||||
<small class="text-muted">{{ q.identifier }}</small>
|
||||
</td>
|
||||
<td>
|
||||
{% if q.pk %}
|
||||
{{ q.get_type_display }}
|
||||
{% else %}
|
||||
{% trans "System question" %}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if q.required %}
|
||||
<span class="fa fa-exclamation-circle text-muted" data-toggle="tooltip" title="{% trans "Required question" %}"></span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if q.pk and q.ask_during_checkin %}
|
||||
<span class="fa fa-check-square text-muted" data-toggle="tooltip" title="{% trans "Ask during check-in" %}"></span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if q.pk and q.hidden %}
|
||||
<span class="fa fa-eye-slash text-muted" data-toggle="tooltip" title="{% trans "Hidden question" %}"></span>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% if 'event.items:write' in request.eventpermset %}
|
||||
<td class="dnd-container">
|
||||
</td>
|
||||
{% endif %}
|
||||
<td class="text-right flip">
|
||||
{% if q.pk %}
|
||||
{% if 'event.items:write' in request.eventpermset %}
|
||||
<a href="{% url "control:event.items.questions.edit" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}" class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
||||
<a href="{% url "control:event.items.questions.delete" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if 'event.settings.general:write' in request.eventpermset %}
|
||||
<a href="{% url "control:event.settings" organizer=request.event.organizer.slug event=request.event.slug %}#tab-0-2-open"
|
||||
class="btn btn-default btn-sm"><i class="fa fa-wrench"></i></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -35,6 +35,18 @@
|
||||
</div>
|
||||
</details>
|
||||
{% endif %}
|
||||
{% if order_questions_form.fields %}
|
||||
<details class="panel panel-default" open>
|
||||
<summary class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<strong>{% trans "Additional order information" %}</strong>
|
||||
</h4>
|
||||
</summary>
|
||||
<div class="panel-body">
|
||||
{% bootstrap_form order_questions_form layout="horizontal" %}
|
||||
</div>
|
||||
</details>
|
||||
{% endif %}
|
||||
{% for pos, forms in formgroups %}
|
||||
<details class="panel panel-default" open>
|
||||
<summary class="panel-heading">
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{% load safelink %}
|
||||
{% load i18n %}
|
||||
{% load rich_text %}
|
||||
{% if answer %}
|
||||
{% if answer.file %}
|
||||
<span class="fa fa-file"></span>
|
||||
<a href="{{ answer.backend_file_url }}?token={% answer_token request answer %}">
|
||||
{{ answer.file_name }}
|
||||
</a>
|
||||
<span class="label label-danger" data-toggle="tooltip"
|
||||
title="{% trans "This file has been uploaded by a user and could contain viruses or other malicious content." %}">
|
||||
{% trans "UNSAFE" %}
|
||||
</span>
|
||||
{% if answer.is_image %}
|
||||
<br>
|
||||
<a href="{{ answer.backend_file_url }}?token={% answer_token request answer %}" data-lightbox="order"
|
||||
class="answer-thumb">
|
||||
<img src="{{ answer.backend_file_url }}?token={% answer_token request answer %}">
|
||||
</a>
|
||||
{% endif %}
|
||||
{% elif question.type == "M" %}
|
||||
{{ answer.to_string_i18n|rich_text_snippet }}
|
||||
{% else %}
|
||||
{{ answer.to_string_i18n|linebreaksbr }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<em>{% trans "not answered" %}</em>
|
||||
{% endif %}
|
||||
@@ -427,6 +427,14 @@
|
||||
</form>
|
||||
</dd>
|
||||
{% endif %}
|
||||
|
||||
{% if order.answers.all %}
|
||||
<hr>
|
||||
{% endif %}
|
||||
{% for ans in order.answers.all %}
|
||||
<dt>{{ ans.question.internal_name|default:ans.question.question }}</dt>
|
||||
<dd>{% include "pretixcontrol/order/fragment_question_answer.html" with request=request question=ans.question answer=ans %}</dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
@@ -664,31 +672,7 @@
|
||||
{% endif %}
|
||||
</dt>
|
||||
<dd>
|
||||
{% if q.answer %}
|
||||
{% if q.answer.file %}
|
||||
<span class="fa fa-file"></span>
|
||||
<a href="{{ q.answer.backend_file_url }}?token={% answer_token request q.answer %}">
|
||||
{{ q.answer.file_name }}
|
||||
</a>
|
||||
<span class="label label-danger" data-toggle="tooltip"
|
||||
title="{% trans "This file has been uploaded by a user and could contain viruses or other malicious content." %}">
|
||||
{% trans "UNSAFE" %}
|
||||
</span>
|
||||
{% if q.answer.is_image %}
|
||||
<br>
|
||||
<a href="{{ q.answer.backend_file_url }}?token={% answer_token request q.answer %}" data-lightbox="order"
|
||||
class="answer-thumb">
|
||||
<img src="{{ q.answer.backend_file_url }}?token={% answer_token request q.answer %}">
|
||||
</a>
|
||||
{% endif %}
|
||||
{% elif q.type == "M" %}
|
||||
{{ q.answer.to_string_i18n|rich_text_snippet }}
|
||||
{% else %}
|
||||
{{ q.answer.to_string_i18n|linebreaksbr }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<em>{% trans "not answered" %}</em>
|
||||
{% endif %}
|
||||
{% include "pretixcontrol/order/fragment_question_answer.html" with request=request question=q answer=q.answer %}
|
||||
</dd>
|
||||
{% endfor %}
|
||||
{% for q in line.additional_fields %}
|
||||
|
||||
@@ -118,6 +118,10 @@
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<span class="fa fa-fw {% if d.last_seen and d.last_seen.is_recent %}fa-check-circle text-success{% else %}fa-circle text-danger{% endif %}"
|
||||
data-toggle="tooltip"
|
||||
title="{% if d.last_seen %}{% blocktrans with time=d.last_seen.last_seen|date:"SHORT_DATETIME_FORMAT" %}Last seen: {{ time }}{% endblocktrans %}{% else %}{% trans "No recent contact" %}{% endif %}"
|
||||
></span>
|
||||
{{ d.device_id }}
|
||||
</td>
|
||||
<td>
|
||||
@@ -125,6 +129,7 @@
|
||||
<del>{% endif %}
|
||||
{{ d.name }}
|
||||
{% if d.revoked %}</del>{% endif %}
|
||||
|
||||
{% if d.gate %}
|
||||
<br>
|
||||
<small class="text-muted">{{ d.gate.name }}</small>
|
||||
|
||||
@@ -65,6 +65,7 @@ from pretix.api.serializers.item import (
|
||||
ItemVariationSerializer,
|
||||
)
|
||||
from pretix.base.forms import I18nFormSet
|
||||
from pretix.base.forms.questions import get_fake_attendee_questions
|
||||
from pretix.base.models import (
|
||||
CartPosition, Item, ItemCategory, ItemProgramTime, ItemVariation, LogEntry,
|
||||
OrderPosition, Question, QuestionAnswer, QuestionOption, Quota,
|
||||
@@ -426,7 +427,7 @@ def reorder_categories(request, organizer, event):
|
||||
|
||||
|
||||
FakeQuestion = namedtuple(
|
||||
'FakeQuestion', 'id question position required'
|
||||
'FakeQuestion', 'id question position required container_type'
|
||||
)
|
||||
|
||||
|
||||
@@ -440,85 +441,8 @@ class QuestionList(ListView):
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
questions = []
|
||||
|
||||
if self.request.event.settings.attendee_names_asked:
|
||||
questions.append(
|
||||
FakeQuestion(
|
||||
id='attendee_name_parts',
|
||||
question=_('Attendee name'),
|
||||
position=self.request.event.settings.system_question_order.get(
|
||||
'attendee_name_parts', 0
|
||||
),
|
||||
required=self.request.event.settings.attendee_names_required,
|
||||
)
|
||||
)
|
||||
|
||||
if self.request.event.settings.attendee_emails_asked:
|
||||
questions.append(
|
||||
FakeQuestion(
|
||||
id='attendee_email',
|
||||
question=_('Attendee email'),
|
||||
position=self.request.event.settings.system_question_order.get(
|
||||
'attendee_email', 0
|
||||
),
|
||||
required=self.request.event.settings.attendee_emails_required,
|
||||
)
|
||||
)
|
||||
|
||||
if self.request.event.settings.attendee_company_asked:
|
||||
questions.append(
|
||||
FakeQuestion(
|
||||
id='company',
|
||||
question=_('Company'),
|
||||
position=self.request.event.settings.system_question_order.get(
|
||||
'company', 0
|
||||
),
|
||||
required=self.request.event.settings.attendee_company_required,
|
||||
)
|
||||
)
|
||||
|
||||
if self.request.event.settings.attendee_addresses_asked:
|
||||
questions.append(
|
||||
FakeQuestion(
|
||||
id='street',
|
||||
question=_('Street'),
|
||||
position=self.request.event.settings.system_question_order.get(
|
||||
'street', 0
|
||||
),
|
||||
required=self.request.event.settings.attendee_addresses_required,
|
||||
)
|
||||
)
|
||||
questions.append(
|
||||
FakeQuestion(
|
||||
id='zipcode',
|
||||
question=_('ZIP code'),
|
||||
position=self.request.event.settings.system_question_order.get(
|
||||
'zipcode', 0
|
||||
),
|
||||
required=self.request.event.settings.attendee_addresses_required,
|
||||
)
|
||||
)
|
||||
questions.append(
|
||||
FakeQuestion(
|
||||
id='city',
|
||||
question=_('City'),
|
||||
position=self.request.event.settings.system_question_order.get(
|
||||
'city', 0
|
||||
),
|
||||
required=self.request.event.settings.attendee_addresses_required,
|
||||
)
|
||||
)
|
||||
questions.append(
|
||||
FakeQuestion(
|
||||
id='country',
|
||||
question=_('Country'),
|
||||
position=self.request.event.settings.system_question_order.get(
|
||||
'country', 0
|
||||
),
|
||||
required=self.request.event.settings.attendee_addresses_required,
|
||||
)
|
||||
)
|
||||
questions = get_fake_attendee_questions(self.request.event.settings)
|
||||
|
||||
questions += list(ctx['questions'])
|
||||
questions.sort(key=lambda q: q.position)
|
||||
@@ -535,14 +459,16 @@ def reorder_questions(request, organizer, event):
|
||||
except (JSONDecodeError, KeyError, ValueError):
|
||||
return HttpResponseBadRequest("expected JSON: {ids:[]}")
|
||||
|
||||
qs = request.event.questions.filter(container_type=request.GET['container_type'])
|
||||
|
||||
# filter system_questions - normal questions are int/digit, system_questions strings
|
||||
custom_question_ids = [i for i in ids if i.isdigit()]
|
||||
input_questions = list(request.event.questions.filter(id__in=custom_question_ids))
|
||||
input_questions = list(qs.filter(id__in=custom_question_ids))
|
||||
|
||||
if len(input_questions) != len(custom_question_ids):
|
||||
raise Http404(_("Some of the provided object ids are invalid."))
|
||||
|
||||
if len(input_questions) != request.event.questions.count():
|
||||
if len(input_questions) != qs.count():
|
||||
raise Http404(_("Not all objects have been selected."))
|
||||
|
||||
for q in input_questions:
|
||||
@@ -556,18 +482,19 @@ def reorder_questions(request, organizer, event):
|
||||
}
|
||||
)
|
||||
|
||||
system_question_order = {}
|
||||
for s in ('attendee_name_parts', 'attendee_email', 'company', 'street', 'zipcode', 'city', 'country'):
|
||||
if s in ids:
|
||||
system_question_order[s] = ids.index(s)
|
||||
else:
|
||||
system_question_order[s] = -1
|
||||
request.event.settings.system_question_order = system_question_order
|
||||
request.event.log_action(
|
||||
'pretix.event.settings', user=request.user, data={
|
||||
'system_question_order': system_question_order,
|
||||
}
|
||||
)
|
||||
if request.GET['container_type'] == Question.ContainerType.ORDERPOSITION:
|
||||
system_question_order = {}
|
||||
for s in ('attendee_name_parts', 'attendee_email', 'company', 'street', 'zipcode', 'city', 'country'):
|
||||
if s in ids:
|
||||
system_question_order[s] = ids.index(s)
|
||||
else:
|
||||
system_question_order[s] = -1
|
||||
request.event.settings.system_question_order = system_question_order
|
||||
request.event.log_action(
|
||||
'pretix.event.settings', user=request.user, data={
|
||||
'system_question_order': system_question_order,
|
||||
}
|
||||
)
|
||||
|
||||
return HttpResponse()
|
||||
|
||||
@@ -805,6 +732,9 @@ class QuestionCreate(EventPermissionRequiredMixin, QuestionMixin, CreateView):
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super().get_form_kwargs()
|
||||
kwargs['instance'] = Question(event=self.request.event)
|
||||
kwargs['instance'].container_type = self.request.GET.get('container_type', Question.ContainerType.ORDERPOSITION)
|
||||
if kwargs['instance'].container_type not in Question.ContainerType.values:
|
||||
raise PermissionDenied
|
||||
return kwargs
|
||||
|
||||
def get_success_url(self) -> str:
|
||||
|
||||
@@ -269,8 +269,8 @@ class MailSettingsSetupView(TemplateView):
|
||||
if settings.MAIL_CUSTOM_SENDER_DMARC_REQUIRED:
|
||||
dmarc_record = get_dmarc_record(hostname)
|
||||
if not dmarc_record:
|
||||
spf_warning = _(
|
||||
'We did not find DMARC record for your domain. This means that there is a very high chance '
|
||||
dmarc_warning = _(
|
||||
'We did not find a DMARC record for your domain. This means that there is a very high chance '
|
||||
'most of the emails will be rejected or marked as spam. You should update the DNS settings '
|
||||
'of your domain.'
|
||||
)
|
||||
|
||||
@@ -382,7 +382,7 @@ class OrderOverpaidRefundBulkActionView(BaseOrderBulkActionView):
|
||||
'provider': refund.provider,
|
||||
}, user=self.request.user)
|
||||
payment.payment_provider.execute_refund(refund)
|
||||
return True
|
||||
return bool(proposals)
|
||||
except (ValueError, PaymentException):
|
||||
return False
|
||||
|
||||
@@ -2008,7 +2008,10 @@ class OrderChange(OrderView):
|
||||
'issued_gift_cards',
|
||||
'addons',
|
||||
).annotate(
|
||||
_seat_allowed=Exists(SeatCategoryMapping.objects.filter(subevent=OuterRef("subevent"), product=OuterRef("item")))
|
||||
_seat_allowed=Exists(SeatCategoryMapping.objects.filter(
|
||||
subevent=OuterRef("subevent") if self.request.event.has_subevents else None,
|
||||
product=OuterRef("item"))
|
||||
)
|
||||
))
|
||||
for p in positions:
|
||||
p.form = OrderPositionChangeForm(
|
||||
@@ -2226,6 +2229,10 @@ class OrderModifyInformation(OrderQuestionsViewMixin, OrderView):
|
||||
only_user_visible = False
|
||||
all_optional = True
|
||||
|
||||
@property
|
||||
def order_question_container(self):
|
||||
return self.order
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['other_form'] = self.other_form
|
||||
@@ -2587,7 +2594,11 @@ class AnswerDownload(EventPermissionRequiredMixin, OrderViewMixin, ListView):
|
||||
answid = kwargs.get('answer')
|
||||
token = request.GET.get('token', '')
|
||||
|
||||
answer = get_object_or_404(QuestionAnswer, orderposition__order=self.order, id=answid)
|
||||
answer = get_object_or_404(
|
||||
QuestionAnswer,
|
||||
Q(orderposition__order=self.order) | Q(order=self.order),
|
||||
id=answid
|
||||
)
|
||||
if not answer.file:
|
||||
raise Http404()
|
||||
if not check_token(request, answer, token):
|
||||
@@ -2597,7 +2608,7 @@ class AnswerDownload(EventPermissionRequiredMixin, OrderViewMixin, ListView):
|
||||
resp = FileResponse(answer.file, content_type=ftype or 'application/binary')
|
||||
resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}"'.format(
|
||||
self.request.event.slug.upper(), self.order.code,
|
||||
answer.orderposition.positionid,
|
||||
answer.orderposition.positionid if answer.orderposition else '',
|
||||
os.path.basename(answer.file.name).split('.', 1)[1]
|
||||
)
|
||||
return resp
|
||||
|
||||
@@ -108,6 +108,9 @@ from pretix.base.services.export import (
|
||||
init_organizer_exporters, multiexport, scheduled_organizer_export,
|
||||
)
|
||||
from pretix.base.services.mail import mail, prefix_subject
|
||||
from pretix.base.services.placeholders import (
|
||||
prepare_sample_context_for_preview,
|
||||
)
|
||||
from pretix.base.templatetags.rich_text import markdown_compile_email
|
||||
from pretix.base.views.tasks import AsyncAction
|
||||
from pretix.control.forms.exports import ScheduledOrganizerExportForm
|
||||
@@ -345,16 +348,11 @@ class MailSettingsPreview(OrganizerPermissionRequiredMixin, View):
|
||||
|
||||
# get all supported placeholders with dummy values
|
||||
def placeholders(self, item):
|
||||
ctx = {}
|
||||
for p, s in MailSettingsForm(obj=self.request.organizer)._get_sample_context(
|
||||
MailSettingsForm.base_context[item]).items():
|
||||
if s.strip().startswith('*'):
|
||||
ctx[p] = s
|
||||
else:
|
||||
ctx[p] = '<span class="placeholder" title="{}">{}</span>'.format(
|
||||
_('This value will be replaced based on dynamic parameters.'),
|
||||
s
|
||||
)
|
||||
ctx = prepare_sample_context_for_preview(
|
||||
MailSettingsForm(obj=self.request.organizer)._get_sample_context(
|
||||
MailSettingsForm.base_context[item]
|
||||
)
|
||||
)
|
||||
return self.SafeDict(ctx)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
@@ -1210,7 +1208,7 @@ class DeviceQueryMixin:
|
||||
def get_queryset(self):
|
||||
qs = self.request.organizer.devices.prefetch_related(
|
||||
'limit_events', 'gate',
|
||||
).order_by('revoked', '-device_id')
|
||||
).select_related('last_seen').order_by('revoked', '-device_id')
|
||||
|
||||
if 'device' in self.request_data and '__ALL' not in self.request_data:
|
||||
qs = qs.filter(
|
||||
|
||||
@@ -431,7 +431,7 @@ class SubEventEditorMixin(MetaDataEditorMixin):
|
||||
days = (self.copy_from.date_from.astimezone(tz).date() - value.astimezone(tz).date()).days
|
||||
return RelativeDateWrapper(RelativeDate(
|
||||
days=abs(days),
|
||||
base_date_name='date_from',
|
||||
base_date_name='event__date_from',
|
||||
time=value.astimezone(tz).time(),
|
||||
minutes=None,
|
||||
is_after=days < 0,
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
import contextlib
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.postgres.indexes import BrinIndex
|
||||
from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured
|
||||
from django.db import connection, transaction
|
||||
from django.db.models import (
|
||||
@@ -285,3 +286,30 @@ def get_deterministic_ordering(model, ordering):
|
||||
# on the primary key to provide total ordering.
|
||||
ordering.append("-pk")
|
||||
return ordering
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def conditional_atomic(do_atomic, **kwargs):
|
||||
if do_atomic:
|
||||
with transaction.atomic(**kwargs):
|
||||
yield
|
||||
else:
|
||||
yield
|
||||
|
||||
|
||||
class IgnoreOnSQLiteMixin:
|
||||
# Mixin to allow defining PostgreSQL-specific indexes that will just not be created
|
||||
# on SQLite. SQLite is supported for testing only anyways!
|
||||
def create_sql(self, model, schema_editor, *args, **kwargs):
|
||||
if "sqlite" in settings.DATABASES["default"]["ENGINE"]:
|
||||
return ""
|
||||
return super().create_sql(model, schema_editor, *args, **kwargs)
|
||||
|
||||
def remove_sql(self, model, schema_editor, **kwargs):
|
||||
if "sqlite" in settings.DATABASES["default"]["ENGINE"]:
|
||||
return ""
|
||||
return super().remove_sql(model, schema_editor, **kwargs)
|
||||
|
||||
|
||||
class BrinIndexIgnoredOnSQLite(IgnoreOnSQLiteMixin, BrinIndex):
|
||||
pass
|
||||
|
||||
@@ -24,17 +24,21 @@ import hashlib
|
||||
from django.core.signing import BadSignature, TimestampSigner
|
||||
|
||||
|
||||
class SafeDownloadSigner(TimestampSigner):
|
||||
pass
|
||||
|
||||
|
||||
def get_token(request, answer):
|
||||
if not request.session.session_key:
|
||||
request.session.create()
|
||||
payload = '{}:{}'.format(request.session.session_key, answer.pk)
|
||||
signer = TimestampSigner()
|
||||
signer = SafeDownloadSigner()
|
||||
return signer.sign(hashlib.sha1(payload.encode()).hexdigest())
|
||||
|
||||
|
||||
def check_token(request, answer, token):
|
||||
payload = hashlib.sha1('{}:{}'.format(request.session.session_key, answer.pk).encode()).hexdigest()
|
||||
signer = TimestampSigner()
|
||||
signer = SafeDownloadSigner()
|
||||
try:
|
||||
return payload == signer.unsign(token, max_age=3600 * 24)
|
||||
except BadSignature:
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-07-15 14:20+0000\n"
|
||||
"Last-Translator: Llewelyn Barkhuizen <llewelyn@akademia.ac.za>\n"
|
||||
"Language-Team: Afrikaans <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr ""
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -410,6 +414,10 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -838,8 +846,7 @@ msgstr ""
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -856,7 +863,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1587,9 +1593,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1601,8 +1606,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1610,8 +1614,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1634,8 +1637,7 @@ msgstr ""
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1663,8 +1665,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2451,7 +2452,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -2956,13 +2958,11 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
@@ -2995,6 +2995,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5321,6 +5331,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5358,6 +5372,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -5957,10 +5975,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6869,7 +6883,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7596,6 +7610,14 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order creation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order expiry"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7620,6 +7642,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8705,7 +8747,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9286,6 +9328,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12427,6 +12488,22 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18577,6 +18654,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20228,6 +20306,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20244,6 +20340,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20766,6 +20882,13 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
msgid "Additional order information"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20793,6 +20916,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21048,25 +21188,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22304,6 +22429,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25179,10 +25313,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25328,7 +25458,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25718,7 +25848,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27760,6 +27891,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -27985,8 +28139,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30719,10 +30876,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31120,6 +31273,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -89,6 +89,10 @@ msgstr ""
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -408,6 +412,10 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -836,8 +844,7 @@ msgstr ""
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -854,7 +861,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1585,9 +1591,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1599,8 +1604,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1608,8 +1612,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1632,8 +1635,7 @@ msgstr ""
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1661,8 +1663,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2449,7 +2450,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -2954,13 +2956,11 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
@@ -2993,6 +2993,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5319,6 +5329,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5356,6 +5370,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -5955,10 +5973,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6867,7 +6881,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7594,6 +7608,14 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order creation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order expiry"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7618,6 +7640,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8703,7 +8745,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9284,6 +9326,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12425,6 +12486,22 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18575,6 +18652,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20226,6 +20304,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20242,6 +20338,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20764,6 +20880,13 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
msgid "Additional order information"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20791,6 +20914,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21046,25 +21186,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22302,6 +22427,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25177,10 +25311,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25326,7 +25456,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25716,7 +25846,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27758,6 +27889,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -27983,8 +28137,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30717,10 +30874,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31118,6 +31271,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-07-20 08:01+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix/ar/"
|
||||
@@ -92,6 +92,10 @@ msgstr "اليونانية"
|
||||
msgid "Hebrew"
|
||||
msgstr "العبرية"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "الأندونيسية"
|
||||
@@ -421,6 +425,12 @@ msgstr "الوسيط متصل بحدث آخر"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "لا يمكنك استبدال هذا الطلب (مقاس متوسط بمقاس متوسط)."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "Product does not support medium exchange."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "هذا المنتج لا يدعم استبدال الحجم المتوسط."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -866,8 +876,7 @@ msgstr "معلومات عن الحدث أو التاريخ"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -884,7 +893,6 @@ msgstr "المشارك"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "البريد الإلكتروني للمشارك"
|
||||
@@ -1635,9 +1643,8 @@ msgid "Invoice sender:"
|
||||
msgstr "مرسل الفاتورة:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1649,8 +1656,7 @@ msgstr "العنوان"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "الرمز البريدي"
|
||||
|
||||
@@ -1658,8 +1664,7 @@ msgstr "الرمز البريدي"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "المدينة"
|
||||
|
||||
@@ -1682,8 +1687,7 @@ msgstr "الولاية"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1711,8 +1715,7 @@ msgstr "مستلم الفاتورة:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2521,7 +2524,8 @@ msgstr "حالات الدفع"
|
||||
msgid "Refund states"
|
||||
msgstr "حالات استعادة المبلغ"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3039,14 +3043,12 @@ msgstr ""
|
||||
"قم بتحميل صورة صالحة. الملف الذي قمت بتحميله ليس صورة أو هو صورة تالفة."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "إذا تركت هذا الحقل فارغًا، فستكون التذكرة صالحة اعتبارًا من وقت الشراء."
|
||||
msgid "Street"
|
||||
msgstr "الشارع"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "الشارع والرقم"
|
||||
msgid "State"
|
||||
msgstr "ولاية"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, python-brace-format
|
||||
@@ -3078,6 +3080,16 @@ msgstr "يرجى إدخال تاريخ ووقت لا يسبقان {min}."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "يرجى إدخال تاريخ ووقت لا يتجاوزان {max}."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "إذا تركت هذا الحقل فارغًا، فستكون التذكرة صالحة اعتبارًا من وقت الشراء."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "الشارع والرقم"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5620,6 +5632,10 @@ msgstr "النوع الذي تم اختياره لا ينتمي إلى هذا ا
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "يجب أن يكون العدد مساويا للصفر أو أكبر منه."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "حالة الطلب"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "رقم"
|
||||
@@ -5657,6 +5673,10 @@ msgstr "التاريخ والوقت"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "رمز البلد (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6299,10 +6319,6 @@ msgstr "بطاقة هدايا"
|
||||
msgid "Value"
|
||||
msgstr "القيمة"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "حالة الطلب"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "معرف عربة التسوق (مثل مفتاح الجلسة)"
|
||||
@@ -7297,8 +7313,11 @@ msgid "The payment for this invoice has already been received."
|
||||
msgstr "تم استلام دفعة هذه الفاتورة سابقا."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This payment is already being processed and can not be canceled any more."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "يجري حالياً معالجة عملية الدفع هذه، ولا يمكن إلغاؤها في الوقت الحالي."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8060,6 +8079,18 @@ msgstr "بداية إعلان ما قبل البيع"
|
||||
msgid "Presale end"
|
||||
msgstr "نهاية إعلان ما قبل البيع"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order email"
|
||||
msgid "Order creation"
|
||||
msgstr "البريد الإلكتروني الخاص بالطلب"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "الطلب منتهي الصلاحية"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "قبل"
|
||||
@@ -8084,6 +8115,26 @@ msgstr "وقت نسبي:"
|
||||
msgid "Not set"
|
||||
msgstr "غير محدد"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "عشوائي (افتراضي، يعمل مع جميع تطبيقات pretix)"
|
||||
@@ -9446,7 +9497,7 @@ msgstr "تم خصم المبلغ من بطاقتك."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "يرجى تحويل المبلغ إلى هذا الحساب المصرفي: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "سيتم استبدال هذه القيمة بناءً على معلمات ديناميكية."
|
||||
|
||||
@@ -10142,6 +10193,25 @@ msgstr ""
|
||||
"لهذه الفعالية. يمكنك استخدامه لوصف الخيارات الأخرى للحصول على تذكرة ، على "
|
||||
"سبيل المثال شباك التذاكر."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "نص للتوجيه"
|
||||
@@ -13966,6 +14036,30 @@ msgstr ""
|
||||
"لقد قمت بتعيين صلاحية بطاقات الهدايا لتكون صالحة لمدة {} سنوات بالإضافة إلى "
|
||||
"السنة التي تم إصدار البطاقة فيها."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "يوم الدفع او الاستحقاق"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "(Same as above)"
|
||||
msgid "same as above"
|
||||
msgstr "(كما ورد أعلاه)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "مدة السداد بالأيام"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "مدة السداد بالدقائق"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr "الأسعار شاملة الضريبة"
|
||||
@@ -20716,6 +20810,7 @@ msgid "Top recommendation"
|
||||
msgstr "التوصية الأولى"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "ميزة تجريبية"
|
||||
@@ -22576,6 +22671,30 @@ msgstr ""
|
||||
"أسئلة تسمح الحضور لملء بيانات إضافية عن تذاكرهم. إذا كنت توفير الغذاء، قد "
|
||||
"يكون مثال واحد أن يسأل المستخدمين حول المتطلبات الغذائية."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "إنشاء سؤال جديد"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "إنشاء سؤال جديد"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "مسألة الحذف"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "إنشاء سؤال جديد"
|
||||
@@ -22592,6 +22711,30 @@ msgstr "طرح خلال التسجيل في مكتب الاستقبال"
|
||||
msgid "All personalized products"
|
||||
msgstr "جميع المنتجات المخصصة"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "تضمين الأسئلة"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "تمت إعادة ترتيب السؤال."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -23178,6 +23321,15 @@ msgstr "معلومات الفاتورة"
|
||||
msgid "(optional)"
|
||||
msgstr "(اختياري)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "معلومة اضافية"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "أجل حذف"
|
||||
@@ -23207,6 +23359,25 @@ msgstr "نعم، وتنكر ترتيب"
|
||||
msgid "Extend payment term"
|
||||
msgstr "تمديد فترة السداد"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"وقد تم تحميل هذا الملف من قبل المستخدم، ويمكن أن تحتوي على فيروسات أو غيرها "
|
||||
"من المحتويات الضارة."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "UNSAFE"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "بلا جواب"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -23479,27 +23650,10 @@ msgstr "%(datetime_range)s صالح"
|
||||
msgid "Ticket page"
|
||||
msgstr "صفحة التذاكر"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "بلا جواب"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "سوف يتم طرح هذا السؤال أثناء التسجيل في مكتب الاستقبال."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"وقد تم تحميل هذا الملف من قبل المستخدم، ويمكن أن تحتوي على فيروسات أو غيرها "
|
||||
"من المحتويات الضارة."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "UNSAFE"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -24852,6 +25006,16 @@ msgstr "توصيل جهاز"
|
||||
msgid "Hardware model"
|
||||
msgstr "نموذج الأجهزة"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "البداية: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "لم يتم تهيئة بعد"
|
||||
@@ -28045,10 +28209,6 @@ msgstr "تم تحديث ترتيب الفئات."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "لم يتم تحديد جميع العناصر."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "الشارع"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "عدم وجود مسألة المطلوبة."
|
||||
@@ -28265,7 +28425,7 @@ msgstr ""
|
||||
#| "You should update the DNS settings of your domain to include this system "
|
||||
#| "in the SPF record."
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -28706,7 +28866,8 @@ msgstr "الموضوع: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "وقد اصطف رسالتك وسوف يتم ارسالهم الى {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -30934,6 +31095,29 @@ msgstr ""
|
||||
"امنح عملاءك إمكانية الشراء الآن (حتى حد معين) والدفع على أقساط متعددة أو في "
|
||||
"غضون 30 يومًا. وأنت، بصفتك التاجر، ستحصل على أموالك على الفور."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- تلقائي --"
|
||||
@@ -31184,11 +31368,12 @@ msgstr "يرجى اختيار طريقة الدفع."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"لقد فشلت محاولتنا لتنفيذ عملية الدفع الخاصة بك عبر PayPal. يرجى المحاولة مرة "
|
||||
"أخرى أو الاتصال بنا."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -34214,10 +34399,6 @@ msgstr[5] "تم استخدام هذه التذكرة %(count)s مرة."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "لم يتم تقديم اسم الحضور"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "الصورة التي قمت بتحميلها سابقًا"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "تم تخفيض سعر هذا المنتج بسبب خصم تلقائي."
|
||||
@@ -34651,6 +34832,10 @@ msgstr "%(value)sبدون ضرائب"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "تحديد السعر بـ %(currency)s لـ %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "الصورة التي قمت بتحميلها سابقًا"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -36381,6 +36566,13 @@ msgstr "الوصول إلى الكتابة"
|
||||
msgid "Kosovo"
|
||||
msgstr "كوسوفو"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "لقد فشلت محاولتنا لتنفيذ عملية الدفع الخاصة بك عبر PayPal. يرجى المحاولة "
|
||||
#~ "مرة أخرى أو الاتصال بنا."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "جميع الإجراءات"
|
||||
|
||||
@@ -36504,9 +36696,6 @@ msgstr "كوسوفو"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "الرجاء إدخال اسم أقصر."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "ولاية"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
@@ -37097,9 +37286,6 @@ msgstr "كوسوفو"
|
||||
#~ msgid "Badge design"
|
||||
#~ msgstr "تصميم شارة"
|
||||
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(كما ورد أعلاه)"
|
||||
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "الترجمة في التنمية"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2024-12-11 01:00+0000\n"
|
||||
"Last-Translator: Neriman Memmedli <nerim4n@pm.me>\n"
|
||||
"Language-Team: Azerbaijani <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Yunanca"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "İndoneziya dili"
|
||||
@@ -410,6 +414,10 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -838,8 +846,7 @@ msgstr ""
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -856,7 +863,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1587,9 +1593,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1601,8 +1606,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1610,8 +1614,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1634,8 +1637,7 @@ msgstr ""
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1663,8 +1665,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2451,7 +2452,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -2956,13 +2958,11 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
@@ -2995,6 +2995,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5321,6 +5331,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5358,6 +5372,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -5957,10 +5975,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6869,7 +6883,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7596,6 +7610,14 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order creation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order expiry"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7620,6 +7642,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8705,7 +8747,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9286,6 +9328,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12427,6 +12488,22 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18577,6 +18654,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20228,6 +20306,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20244,6 +20340,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20766,6 +20882,13 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
msgid "Additional order information"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20793,6 +20916,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21048,25 +21188,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22304,6 +22429,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25179,10 +25313,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25328,7 +25458,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25718,7 +25848,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27762,6 +27893,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -27987,8 +28141,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30721,10 +30878,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31122,6 +31275,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-06-25 14:00+0000\n"
|
||||
"Last-Translator: Kim Lozano <joaquim.lozano@upc.edu>\n"
|
||||
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Grec"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -460,6 +464,12 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "No podeu modificar aquesta comanda."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot change this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "No podeu modificar aquesta comanda."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -959,8 +969,7 @@ msgstr "Enviar registre"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -979,7 +988,6 @@ msgstr "Nom de l'assistent"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Correu electrònic de l'assistent"
|
||||
@@ -1799,9 +1807,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Emissor de la factura:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1813,8 +1820,7 @@ msgstr "Adreça"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Codi postal"
|
||||
|
||||
@@ -1822,8 +1828,7 @@ msgstr "Codi postal"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Ciutat"
|
||||
|
||||
@@ -1846,8 +1851,7 @@ msgstr "Estat"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1875,8 +1879,7 @@ msgstr "Receptor de la factura:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2735,7 +2738,8 @@ msgstr "Estats del pagament"
|
||||
msgid "Refund states"
|
||||
msgstr "Estats del reemborsament"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3283,14 +3287,14 @@ msgstr ""
|
||||
"està corromput."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
msgid "Street"
|
||||
msgstr "Carrer"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Carrer i número"
|
||||
#, fuzzy
|
||||
#| msgid "Status"
|
||||
msgid "State"
|
||||
msgstr "Estat"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3327,6 +3331,16 @@ msgstr "Si us plau, introduïu un canal de venda vàlid."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Si us plau, introduïu un nom més curt."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Carrer i número"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -6046,6 +6060,10 @@ msgstr "La variació triada no pertany a aquest element."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "El recompte ha de ser igual o major que zero."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Posició de la comanda"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Número"
|
||||
@@ -6083,6 +6101,10 @@ msgstr "Dia i hora"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Codi de país (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
#, fuzzy
|
||||
#| msgid "The property name may only contain letters, numbers and underscores."
|
||||
@@ -6748,10 +6770,6 @@ msgstr "Targeta regal"
|
||||
msgid "Value"
|
||||
msgstr "Valor"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Posició de la comanda"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "Identificador del carretó (ex. clau de sessió)"
|
||||
@@ -7771,7 +7789,7 @@ msgstr "Ja s'ha rebut el pagament per a aquesta factura."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8633,6 +8651,18 @@ msgstr "Inici de la prevenda"
|
||||
msgid "Presale end"
|
||||
msgstr "Finalització de la prevenda"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order details"
|
||||
msgid "Order creation"
|
||||
msgstr "Detalls de la comanda"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Ha expirat la comanda"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "days before"
|
||||
@@ -8659,6 +8689,26 @@ msgstr "Temps relatiu:"
|
||||
msgid "Not set"
|
||||
msgstr "No s'ha establert"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Aleatori (per defecte, funciona amb totes les apps de pretix)"
|
||||
@@ -10003,7 +10053,7 @@ msgstr ""
|
||||
"Si us plau, feu una transferència a aquest compte bancari: "
|
||||
"9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -10743,6 +10793,25 @@ msgstr ""
|
||||
"la finestra de temps de venda. Podeu utilitzar-ho per descriure altres "
|
||||
"opcions per obtenir un tiquet, com per exemple una oficina."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Text de guia"
|
||||
@@ -14757,6 +14826,30 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Data de pagament"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "(Same as above)"
|
||||
msgid "same as above"
|
||||
msgstr "(Igual que aquí al damunt)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Termini de pagament en dies"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Termini de pagament en minuts"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "including all taxes"
|
||||
@@ -21746,6 +21839,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
#, fuzzy
|
||||
#| msgid "Use feature"
|
||||
@@ -23594,6 +23688,30 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Crear una nova pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Crear una nova pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Esborrar pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "Crear una nova pregunta"
|
||||
@@ -23612,6 +23730,30 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr "Tots els productes d'admissió"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Required question"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Pregunta obligatòria"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The task has been completed."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "S'ha completat la tasca."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -24158,6 +24300,15 @@ msgstr "Dades de la factura"
|
||||
msgid "(optional)"
|
||||
msgstr "(opcional)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Meta information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Informació meta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "Esborrar comanda"
|
||||
@@ -24185,6 +24336,23 @@ msgstr "Sí, denegar la comanda"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Ampliar el termini de pagament"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -24479,25 +24647,10 @@ msgstr "Entrada: %(datetime)s"
|
||||
msgid "Ticket page"
|
||||
msgstr "Tiquet"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -25887,6 +26040,16 @@ msgstr "Connectar un dispositiu"
|
||||
msgid "Hardware model"
|
||||
msgstr "Model de hardware"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Inici: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Encara no està inicialitzat"
|
||||
@@ -29031,10 +29194,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "Aquesta posició de la comanda s'ha cancel·lat."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Carrer"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -29182,7 +29341,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -29616,7 +29775,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -31911,6 +32071,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
#, fuzzy
|
||||
#| msgid "Stripe account"
|
||||
@@ -32177,8 +32360,11 @@ msgstr "Si us plau, trieu com voleu fer el pagament."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -35320,10 +35506,6 @@ msgstr[1] "Ja s'ha validat aquest tiquet."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Mostres els noms dels assistents a les factures"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -35779,6 +35961,10 @@ msgstr "Valor total (sense imposts)"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -37705,11 +37891,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Si us plau, introduïu un nom més curt."
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Status"
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Estat"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
@@ -38154,9 +38335,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Badge design"
|
||||
#~ msgstr "Disseny de la tarja d'identificació"
|
||||
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(Igual que aquí al damunt)"
|
||||
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "Traducció en progrés"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-01-29 19:42+0000\n"
|
||||
"Last-Translator: Jiří Pastrňák <jiri@pastrnak.email>\n"
|
||||
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix/cs/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Řečtina"
|
||||
msgid "Hebrew"
|
||||
msgstr "Hebrejština"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonéština"
|
||||
@@ -438,6 +442,12 @@ msgstr "Médium je napojené na jinou událost"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Tuto objednávku nelze změnit."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot change this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Tuto objednávku nelze změnit."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -901,8 +911,7 @@ msgstr "Odeslat informace o obnovení"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -921,7 +930,6 @@ msgstr "Jméno účastníka"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Email účastníka"
|
||||
@@ -1708,9 +1716,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Odesílatel faktury:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1722,8 +1729,7 @@ msgstr "Adresa"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "PSČ"
|
||||
|
||||
@@ -1731,8 +1737,7 @@ msgstr "PSČ"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Město"
|
||||
|
||||
@@ -1755,8 +1760,7 @@ msgstr "Stát"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1784,8 +1788,7 @@ msgstr "Příjemce faktury:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2598,7 +2601,8 @@ msgstr "Stavy platby"
|
||||
msgid "Refund states"
|
||||
msgstr "Stavy vrácení peněz"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3117,16 +3121,12 @@ msgstr ""
|
||||
"byl poškozený."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Pokud toto políčko necháte prázdné, bude vstupenka platná od okamžiku "
|
||||
"zakoupení."
|
||||
msgid "Street"
|
||||
msgstr "Ulice"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Ulice a číslo popisné"
|
||||
msgid "State"
|
||||
msgstr "Stav"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3163,6 +3163,18 @@ msgstr "Zadejte prosím platný prodejní kanál."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Zadejte prosím správný výsledek."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Pokud toto políčko necháte prázdné, bude vstupenka platná od okamžiku "
|
||||
"zakoupení."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Ulice a číslo popisné"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5725,6 +5737,10 @@ msgstr "Tato varianta nepatří k tomuto produktu."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Počet musí být alespoň nula."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Objednaný produkt"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Číslo"
|
||||
@@ -5762,6 +5778,10 @@ msgstr "Datum a čas"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Země (ISO3166-1-alpha-2-kód zemí)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6420,10 +6440,6 @@ msgstr "Dárkový poukaz"
|
||||
msgid "Value"
|
||||
msgstr "Hodnota"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Objednaný produkt"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "ID košíku (např. klíč relace)"
|
||||
@@ -7414,7 +7430,7 @@ msgstr "Platba za tuto fakturu již byla přijata."
|
||||
#, fuzzy
|
||||
#| msgid "This payment can not be canceled at the moment."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Tuto platbu nelze dočasně zrušit."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8212,6 +8228,18 @@ msgstr "Zahájení předprodeje"
|
||||
msgid "Presale end"
|
||||
msgstr "Konec předprodeje"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order details"
|
||||
msgid "Order creation"
|
||||
msgstr "Podrobnosti o objednávce"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Objednávka vypršela"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "před"
|
||||
@@ -8236,6 +8264,26 @@ msgstr "Relativní čas:"
|
||||
msgid "Not set"
|
||||
msgstr "Nenastaveno"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Náhodný (výchozí, funguje se všemi aplikacemi pretix)"
|
||||
@@ -9529,7 +9577,7 @@ msgstr "Částka byla stržena z vaší karty."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "Peníze prosím převeďte na tento bankovní účet: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -10228,6 +10276,25 @@ msgstr ""
|
||||
"prodeje pro tuto akci. Můžete jej použít k popisu dalších možností, jak "
|
||||
"získat vstupenku, například na pokladně."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Nápověda"
|
||||
@@ -14111,6 +14178,30 @@ msgstr ""
|
||||
"Nastavili jste platnost dárkových karet na {} let plus rok vydání dárkové "
|
||||
"karty."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Datum splatnosti"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "(Same as above)"
|
||||
msgid "same as above"
|
||||
msgstr "(Stejně jako výše)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Doba splatnosti ve dnech"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Platební lhůta v minutách"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Price including add-ons"
|
||||
@@ -20975,6 +21066,7 @@ msgid "Top recommendation"
|
||||
msgstr "Doporučené rozšíření"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "Experimentální funkce"
|
||||
@@ -22720,6 +22812,30 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new customer"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Vytvořit nového zákazníka"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new event"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Vytvořit novou událost"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Smazat otázku"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -22736,6 +22852,30 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr "Všechny personalizované produkty"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Zobrazit otázky"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "Otázka byla přeřazena."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -23276,6 +23416,15 @@ msgstr "Fakturační údaje"
|
||||
msgid "(optional)"
|
||||
msgstr "(volitelné)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Další informace"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -23303,6 +23452,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "NEZABEZPEČENÉ"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "není odpovězeno"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -23579,25 +23745,10 @@ msgstr "Platný %(datetime_range)s"
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "není odpovězeno"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "NEZABEZPEČENÉ"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -24925,6 +25076,16 @@ msgstr "Připojit zařízení"
|
||||
msgid "Hardware model"
|
||||
msgstr "Model hardwaru"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Začátek: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Zatím neinicializováno"
|
||||
@@ -27992,10 +28153,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Ulice"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -28187,7 +28344,7 @@ msgstr ""
|
||||
#| "You should update the DNS settings of your domain to include this system "
|
||||
#| "in the SPF record."
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -28593,7 +28750,8 @@ msgstr "Předmět: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -30772,6 +30930,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Automaticky --"
|
||||
@@ -31009,13 +31190,13 @@ msgid "Please select how you want to pay."
|
||||
msgstr "Vyberte, jak chcete platit."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Náš pokus o provedení vaší platby přes PayPal se nezdařil. Zkuste to prosím "
|
||||
"znovu nebo kontaktujte nás."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -33950,10 +34131,6 @@ msgstr[2] "Vstupenka byla použita %(count)s krát."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Nebylo uvedeno žádné jméno účastníka"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Obrázek, který jste předtím nahráli"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "Cena tohoto produktu byla snížena díky automatické slevě."
|
||||
@@ -34380,6 +34557,10 @@ msgstr "%(value)s Celková cena (bez DPH)"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Nastavení ceny v %(currency)s pro %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Obrázek, který jste předtím nahráli"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -36150,6 +36331,14 @@ msgstr "Přístup k zápisu"
|
||||
msgid "Kosovo"
|
||||
msgstr "Kosovo"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Náš pokus o provedení vaší platby přes PayPal se nezdařil. Zkuste to "
|
||||
#~ "prosím znovu nebo kontaktujte nás."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Všechny akce"
|
||||
|
||||
@@ -36247,9 +36436,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Ve jméně není dovoleno používat speciální znaky."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Stav"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
@@ -36796,9 +36982,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "minutes before"
|
||||
#~ msgstr "Minuty před"
|
||||
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(Stejně jako výše)"
|
||||
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "Překlad je v průběhu"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2023-11-14 11:00+0000\n"
|
||||
"Last-Translator: Charliecoleg <DM229135@colegsirgar.ac.uk>\n"
|
||||
"Language-Team: Welsh <https://translate.pretix.eu/projects/pretix/pretix/cy/"
|
||||
@@ -92,6 +92,10 @@ msgstr "Groeg"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesaidd"
|
||||
@@ -415,6 +419,10 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -853,8 +861,7 @@ msgstr ""
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -871,7 +878,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1609,9 +1615,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1623,8 +1628,7 @@ msgstr "Cyfeiriad"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1632,8 +1636,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Dinas"
|
||||
|
||||
@@ -1656,8 +1659,7 @@ msgstr "Talaith"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1685,8 +1687,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2473,7 +2474,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -2978,14 +2980,15 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
#, fuzzy
|
||||
#| msgctxt "address"
|
||||
#| msgid "State"
|
||||
msgid "State"
|
||||
msgstr "Talaith"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, python-brace-format
|
||||
@@ -3017,6 +3020,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5349,6 +5362,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5386,6 +5403,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -5985,10 +6006,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6904,7 +6921,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7640,6 +7657,16 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Create"
|
||||
msgid "Order creation"
|
||||
msgstr "Creu"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order expiry"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7664,6 +7691,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8761,7 +8808,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9342,6 +9389,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12498,6 +12564,24 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment"
|
||||
msgid "Payment term"
|
||||
msgstr "Taliad"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18686,6 +18770,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20370,6 +20455,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20386,6 +20489,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20914,6 +21037,15 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional fee"
|
||||
msgid "Additional order information"
|
||||
msgstr "Ffi ychwanegol"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20941,6 +21073,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "ANNIOGEL"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21196,25 +21345,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "ANNIOGEL"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22466,6 +22600,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25367,10 +25510,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25524,7 +25663,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25914,7 +26053,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27971,6 +28111,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -28196,8 +28359,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30946,10 +31112,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31356,6 +31518,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-06 15:52+0000\n"
|
||||
"PO-Revision-Date: 2026-04-22 18:00+0000\n"
|
||||
"PO-Revision-Date: 2026-07-31 18:00+0000\n"
|
||||
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
|
||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
"da/>\n"
|
||||
@@ -16,7 +16,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.17\n"
|
||||
"X-Generator: Weblate 2026.7.1\n"
|
||||
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js
|
||||
msgid "Marked as paid"
|
||||
@@ -1306,62 +1306,62 @@ msgstr ""
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "January"
|
||||
msgstr "Januar"
|
||||
msgstr "januar"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "February"
|
||||
msgstr "Februar"
|
||||
msgstr "februar"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "March"
|
||||
msgstr "Marts"
|
||||
msgstr "marts"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "April"
|
||||
msgstr "April"
|
||||
msgstr "april"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "May"
|
||||
msgstr "Maj"
|
||||
msgstr "maj"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "June"
|
||||
msgstr "Juni"
|
||||
msgstr "juni"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "July"
|
||||
msgstr "Juli"
|
||||
msgstr "juli"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "August"
|
||||
msgstr "August"
|
||||
msgstr "august"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "September"
|
||||
msgstr "September"
|
||||
msgstr "september"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "October"
|
||||
msgstr "Oktober"
|
||||
msgstr "oktober"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "November"
|
||||
msgstr "November"
|
||||
msgstr "november"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgid "December"
|
||||
msgstr "December"
|
||||
msgstr "december"
|
||||
|
||||
#~ msgid "iDEAL"
|
||||
#~ msgstr "iDEAL"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -153,11 +153,11 @@ msgstr "Bezahlte Bestellungen"
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
|
||||
msgid "Attendees (ordered)"
|
||||
msgstr "Teilnehmer (bestellt)"
|
||||
msgstr "Teilnehmende (bestellt)"
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
|
||||
msgid "Attendees (paid)"
|
||||
msgstr "Teilnehmer (bezahlt)"
|
||||
msgstr "Teilnehmende (bezahlt)"
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
|
||||
msgid "Total revenue"
|
||||
|
||||
@@ -293,6 +293,7 @@ Pago
|
||||
parsen
|
||||
Pay
|
||||
PayPal
|
||||
PayPals
|
||||
PayPal-Account
|
||||
PayPal-Accounts
|
||||
PayPal-Konto
|
||||
@@ -340,6 +341,7 @@ pretix-Kontos
|
||||
pretix-Logo
|
||||
pretix-Logos
|
||||
pretix-Plugins
|
||||
pretixPOS
|
||||
pretixPRINT
|
||||
pretixPRINT-Version
|
||||
pretixSCAN
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -153,11 +153,11 @@ msgstr "Bezahlte Bestellungen"
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
|
||||
msgid "Attendees (ordered)"
|
||||
msgstr "Teilnehmer (bestellt)"
|
||||
msgstr "Teilnehmende (bestellt)"
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
|
||||
msgid "Attendees (paid)"
|
||||
msgstr "Teilnehmer (bezahlt)"
|
||||
msgstr "Teilnehmende (bezahlt)"
|
||||
|
||||
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
|
||||
msgid "Total revenue"
|
||||
|
||||
@@ -293,6 +293,7 @@ Pago
|
||||
parsen
|
||||
Pay
|
||||
PayPal
|
||||
PayPals
|
||||
PayPal-Account
|
||||
PayPal-Accounts
|
||||
PayPal-Konto
|
||||
@@ -340,6 +341,7 @@ pretix-Kontos
|
||||
pretix-Logo
|
||||
pretix-Logos
|
||||
pretix-Plugins
|
||||
pretixPOS
|
||||
pretixPRINT
|
||||
pretixPRINT-Version
|
||||
pretixSCAN
|
||||
|
||||
+210
-53
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -90,6 +90,10 @@ msgstr ""
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -409,6 +413,10 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -837,8 +845,7 @@ msgstr ""
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -855,7 +862,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1586,9 +1592,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1600,8 +1605,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1609,8 +1613,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1633,8 +1636,7 @@ msgstr ""
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1662,8 +1664,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2450,7 +2451,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -2955,13 +2957,11 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
@@ -2994,6 +2994,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5320,6 +5330,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5357,6 +5371,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -5956,10 +5974,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6868,7 +6882,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7595,6 +7609,14 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order creation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order expiry"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7619,6 +7641,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8704,7 +8746,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9285,6 +9327,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12426,6 +12487,22 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18576,6 +18653,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20227,6 +20305,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20243,6 +20339,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20765,6 +20881,13 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
msgid "Additional order information"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20792,6 +20915,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21047,25 +21187,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22303,6 +22428,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25178,10 +25312,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25327,7 +25457,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25717,7 +25847,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27759,6 +27890,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -27984,8 +28138,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30718,10 +30875,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31119,6 +31272,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-02-25 23:00+0000\n"
|
||||
"Last-Translator: David Ibáñez Cerdeira <dibanez@gmail.com>\n"
|
||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/"
|
||||
@@ -93,6 +93,10 @@ msgstr ""
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -471,6 +475,12 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Δεν μπορείτε να ακυρώσετε αυτήν την παραγγελία."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot cancel this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Δεν μπορείτε να ακυρώσετε αυτήν την παραγγελία."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -989,8 +999,7 @@ msgstr "Αποστολή πληροφοριών ανάκτησης"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -1009,7 +1018,6 @@ msgstr "Όνομα συμμετεχόντος"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Email συμμετεχόντος"
|
||||
@@ -1849,9 +1857,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Αποστολέας τιμολογίου:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1863,8 +1870,7 @@ msgstr "Διεύθυνση έδρας"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Ταχυδρομικός Κώδικας"
|
||||
|
||||
@@ -1872,8 +1878,7 @@ msgstr "Ταχυδρομικός Κώδικας"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Πόλη"
|
||||
|
||||
@@ -1898,8 +1903,7 @@ msgstr "Κατάσταση"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1927,8 +1931,7 @@ msgstr "Αποδέκτης τιμολογίου:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2811,7 +2814,8 @@ msgstr "Ημερομηνία πληρωμής"
|
||||
msgid "Refund states"
|
||||
msgstr "Κατάσταση επιστροφής χρημάτων"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3377,14 +3381,16 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
#, fuzzy
|
||||
#| msgid "Street address"
|
||||
msgid "Street"
|
||||
msgstr "Διεύθυνση"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Οδός και Αριθμός"
|
||||
#, fuzzy
|
||||
#| msgid "Status"
|
||||
msgid "State"
|
||||
msgstr "Κατάσταση"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3421,6 +3427,16 @@ msgstr "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Παρακαλώ εισάγετε το όνομά σας."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Οδός και Αριθμός"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -6273,6 +6289,10 @@ msgstr "Η επιλεγμένη παραλλαγή δεν ανήκει σε αυ
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Η μέτρηση πρέπει να είναι ίση ή μεγαλύτερη από μηδέν."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Θέση παραγγελείας"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Αριθμός"
|
||||
@@ -6310,6 +6330,10 @@ msgstr "Ημερομηνία και ώρα"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Κωδικός χώρας (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
#, fuzzy
|
||||
#| msgid "The property name may only contain letters, numbers and underscores."
|
||||
@@ -6995,10 +7019,6 @@ msgstr "Δωροκάρτα"
|
||||
msgid "Value"
|
||||
msgstr "Αξία"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Θέση παραγγελείας"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -8066,7 +8086,7 @@ msgstr "Η πληρωμή για αυτό το τιμολόγιο έχει ήδ
|
||||
#, fuzzy
|
||||
#| msgid "This payment can not be canceled at the moment."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Αυτή η πληρωμή δεν μπορεί να ακυρωθεί αυτήν τη στιγμή."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8960,6 +8980,18 @@ msgstr "Έναρξη presale"
|
||||
msgid "Presale end"
|
||||
msgstr "Τέλος presale"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order details"
|
||||
msgid "Order creation"
|
||||
msgstr "Λεπτομέρειες παραγγελίας"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Η παραγγελία έληξε"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "days before"
|
||||
@@ -8988,6 +9020,26 @@ msgstr "Σχετική ημερομηνία:"
|
||||
msgid "Not set"
|
||||
msgstr "Δεν ρυθμίστηκε"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -10378,7 +10430,7 @@ msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
"Μεταφέρετε χρήματα σε αυτόν τον τραπεζικό λογαριασμό: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -11124,6 +11176,25 @@ msgstr ""
|
||||
"Μπορείτε να το χρησιμοποιήσετε για να περιγράψετε άλλες επιλογές για να "
|
||||
"λάβετε ένα εισιτήριο, όπως ένα ταμείο θεάτρου."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Κείμενο καθοδήγησης"
|
||||
@@ -15230,6 +15301,30 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Ημερομηνία πληρωμής"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "(Same as above)"
|
||||
msgid "same as above"
|
||||
msgstr "(Ιδια όπως παραπάνω)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Διάρκεια πληρωμής σε ημέρες"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Διάρκεια πληρωμής σε ημέρες"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "including all taxes"
|
||||
@@ -22706,6 +22801,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
#, fuzzy
|
||||
#| msgid "Features"
|
||||
@@ -24761,6 +24857,30 @@ msgstr ""
|
||||
"δεδομένα σχετικά με το εισιτήριό τους. Εάν παρέχετε τρόφιμα, ένα παράδειγμα "
|
||||
"μπορεί να είναι να ζητήσετε από τους χρήστες σας τις διατροφικές απαιτήσεις."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Δημιουργία μιας νέας ερώτησης"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Δημιουργία μιας νέας ερώτησης"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Διαγραφή ερώτησης"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "Δημιουργία μιας νέας ερώτησης"
|
||||
@@ -24781,6 +24901,30 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr "Ολα τα προϊόντα"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Συμπεριλάβετε ερωτήσεις"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been deleted."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "Η ερώτηση έχει διαγραφεί."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -25385,6 +25529,15 @@ msgstr "Πληροφορίες τιμολογίου"
|
||||
msgid "(optional)"
|
||||
msgstr "(προαιρετικά)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Επιπλέον πληροφορίες"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "Διαγραφή παραγγελίας"
|
||||
@@ -25414,6 +25567,25 @@ msgstr "Ναι, κατάργηση παραγγελίας"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Διευρύνετε τον όρο πληρωμής"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Αυτό το αρχείο έχει μεταφορτωθεί από έναν χρήστη και μπορεί να περιέχει ιούς "
|
||||
"ή άλλο κακόβουλο περιεχόμενο."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "ΕΠΙΣΦΑΛΗΣ"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "Δεν απαντήθηκε"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -25734,27 +25906,10 @@ msgstr "Είσοδος: %(datetime)s"
|
||||
msgid "Ticket page"
|
||||
msgstr "Όνομα εισιτηρίου"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "Δεν απαντήθηκε"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "Αυτή η ερώτηση θα ζητηθεί κατά το check-in."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Αυτό το αρχείο έχει μεταφορτωθεί από έναν χρήστη και μπορεί να περιέχει ιούς "
|
||||
"ή άλλο κακόβουλο περιεχόμενο."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "ΕΠΙΣΦΑΛΗΣ"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -27238,6 +27393,16 @@ msgstr "Συνδέστε μια συσκευή"
|
||||
msgid "Hardware model"
|
||||
msgstr "Μοντέλο υλικού(Hardware model)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Έναρξη: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Δεν έχει αρχικοποιηθεί ακόμα"
|
||||
@@ -30733,12 +30898,6 @@ msgstr "Η σειρά των κατηγοριών έχει ενημερωθεί.
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "Η ερώτηση έχει διαγραφεί."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
#, fuzzy
|
||||
#| msgid "Street address"
|
||||
msgid "Street"
|
||||
msgstr "Διεύθυνση"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "Η ζητούμενη ερώτηση δεν υπάρχει."
|
||||
@@ -30905,7 +31064,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -31393,7 +31552,8 @@ msgstr "Θέμα: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "Το μήνυμά σας έχει τεθεί σε αναμονή και θα σταλεί στο {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -33892,6 +34052,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
#, fuzzy
|
||||
#| msgid "Customer actions"
|
||||
@@ -34171,16 +34354,13 @@ msgid "Please select how you want to pay."
|
||||
msgstr "Επιλέξτε τον τρόπο πληρωμής."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Our attempt to execute your Payment via PayPal has failed. Please try "
|
||||
#| "again or contact us."
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Η προσπάθειά μας να εκτελέσουμε την πληρωμή σας μέσω του PayPal απέτυχε. "
|
||||
"Δοκιμάστε ξανά ή επικοινωνήστε μαζί μας."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
#, fuzzy
|
||||
@@ -37551,10 +37731,6 @@ msgstr[1] "Αυτό το εισιτήριο έχει ήδη εξαργυρωθε
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Εμφάνιση των ονομάτων των συμμετεχόντων στα τιμολόγια"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -38050,6 +38226,10 @@ msgstr "Συνολική αξία (χωρίς φόρους)"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Τροποποιήστε την τιμή για %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -40023,6 +40203,17 @@ msgstr "Πρόσβαση για εγγραφή"
|
||||
msgid "Kosovo"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid ""
|
||||
#~| "Our attempt to execute your Payment via PayPal has failed. Please try "
|
||||
#~| "again or contact us."
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Η προσπάθειά μας να εκτελέσουμε την πληρωμή σας μέσω του PayPal απέτυχε. "
|
||||
#~ "Δοκιμάστε ξανά ή επικοινωνήστε μαζί μας."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Όλες οι ενέργειες"
|
||||
|
||||
@@ -40153,11 +40344,6 @@ msgstr ""
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Παρακαλώ εισάγετε το όνομά σας."
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Status"
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Κατάσταση"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
@@ -40747,9 +40933,6 @@ msgstr ""
|
||||
#~ msgid "Badge design"
|
||||
#~ msgstr "Σχέδιο badge"
|
||||
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(Ιδια όπως παραπάνω)"
|
||||
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "Μετάφραση σε εξέλιξη"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -89,6 +89,10 @@ msgstr ""
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -408,6 +412,10 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -836,8 +844,7 @@ msgstr ""
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -854,7 +861,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1585,9 +1591,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1599,8 +1604,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1608,8 +1612,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1632,8 +1635,7 @@ msgstr ""
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1661,8 +1663,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2449,7 +2450,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -2954,13 +2956,11 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
@@ -2993,6 +2993,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5319,6 +5329,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5356,6 +5370,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -5955,10 +5973,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6867,7 +6881,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7594,6 +7608,14 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order creation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order expiry"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7618,6 +7640,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8703,7 +8745,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9284,6 +9326,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12425,6 +12486,22 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18575,6 +18652,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20226,6 +20304,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20242,6 +20338,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20764,6 +20880,13 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
msgid "Additional order information"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20791,6 +20914,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21046,25 +21186,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22302,6 +22427,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25177,10 +25311,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25326,7 +25456,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25716,7 +25846,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27758,6 +27889,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -27983,8 +28137,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30717,10 +30874,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31118,6 +31271,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-07-08 16:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Griego"
|
||||
msgid "Hebrew"
|
||||
msgstr "Hebreo"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesio"
|
||||
@@ -434,6 +438,12 @@ msgstr "Medio conectado a otro evento"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "No se puede cambiar un medio por otro."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "Product does not support medium exchange."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Este producto no admite el cambio de medio."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -888,8 +898,7 @@ msgstr "Información sobre el evento o la fecha"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -906,7 +915,6 @@ msgstr "Participante"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Correo electrónico del participante"
|
||||
@@ -1663,9 +1671,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Remitente de la factura:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1677,8 +1684,7 @@ msgstr "Dirección"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Código postal"
|
||||
|
||||
@@ -1686,8 +1692,7 @@ msgstr "Código postal"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Ciudad"
|
||||
|
||||
@@ -1710,8 +1715,7 @@ msgstr "Estado"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1739,8 +1743,7 @@ msgstr "Destinatario de la factura:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2555,7 +2558,8 @@ msgstr "Estado de pagos"
|
||||
msgid "Refund states"
|
||||
msgstr "Estado del reembolso"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3083,16 +3087,12 @@ msgstr ""
|
||||
"corrupta."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Si mantienes este campo vacío, la entrada será válida empezando en el "
|
||||
"momento de la compra."
|
||||
msgid "Street"
|
||||
msgstr "Dirección"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Calle y número"
|
||||
msgid "State"
|
||||
msgstr "Estado o provincia"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, python-brace-format
|
||||
@@ -3124,6 +3124,18 @@ msgstr "Introduzca una fecha y hora no anteriores a {min}."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Introduzca una fecha y hora que no sea posterior a {max}."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Si mantienes este campo vacío, la entrada será válida empezando en el "
|
||||
"momento de la compra."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Calle y número"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5768,6 +5780,10 @@ msgstr "La variación escogida no pertenece a este artículo."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Se requiere que la cantidad sea igual o mayor que cero."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Posición del pedido"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Número"
|
||||
@@ -5805,6 +5821,10 @@ msgstr "Fecha y hora"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Código de país (ISO 3166-1 alfa-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6463,10 +6483,6 @@ msgstr "Tarjeta de regalo"
|
||||
msgid "Value"
|
||||
msgstr "Valor"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Posición del pedido"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "ID de carrito (p. ej. clave de sesión)"
|
||||
@@ -7507,8 +7523,11 @@ msgid "The payment for this invoice has already been received."
|
||||
msgstr "El pago de esta factura ya se ha recibido."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This payment is already being processed and can not be canceled any more."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Este pago ya se está procesando y ya no se puede cancelar."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8282,6 +8301,18 @@ msgstr "Inicio de la preventa"
|
||||
msgid "Presale end"
|
||||
msgstr "Fin de la preventa"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order email"
|
||||
msgid "Order creation"
|
||||
msgstr "Correo electrónico del pedido"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Pedido caducado"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "antes"
|
||||
@@ -8306,6 +8337,26 @@ msgstr "Tiempo relativo:"
|
||||
msgid "Not set"
|
||||
msgstr "No fijado"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -9600,7 +9651,7 @@ msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
"Por favor, transfiera dinero a esta cuenta bancaria: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "Este valor se reemplazará en base a parámetros dinámicos."
|
||||
|
||||
@@ -10332,6 +10383,25 @@ msgstr ""
|
||||
"período de ventas designado para este evento. Puede usarlo para describir "
|
||||
"otras opciones para obtener una entrada, por ejemplo en una taquilla física."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Texto guía"
|
||||
@@ -14289,6 +14359,30 @@ msgstr ""
|
||||
"Ha configurado las tarjetas de regalo para que sean válidas {} años más el "
|
||||
"año en el que se emite la tarjeta de regalo."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Fecha de pago"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "(Same as above)"
|
||||
msgid "same as above"
|
||||
msgstr "(Lo mismo que arriba)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Plazo de pago en días"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Plazo de pago en minutos"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr "Precios con impuestos incluidos"
|
||||
@@ -21239,6 +21333,7 @@ msgid "Top recommendation"
|
||||
msgstr "Recomendación top"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "Funcionalidad experimental"
|
||||
@@ -23166,6 +23261,30 @@ msgstr ""
|
||||
"entrada. Si usted proporciona alimentos, un ejemplo podría ser preguntar a "
|
||||
"sus usuarios acerca de las necesidades dietéticas."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Crear una nueva pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Crear una nueva pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Borrar pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "Crear una nueva pregunta"
|
||||
@@ -23182,6 +23301,30 @@ msgstr "Preguntar durante el check-in"
|
||||
msgid "All personalized products"
|
||||
msgstr "Todos los productos personalizados"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Incluir preguntas"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "La pregunta ha sido reordenada."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -23783,6 +23926,15 @@ msgstr "Datos de la factura"
|
||||
msgid "(optional)"
|
||||
msgstr "(opcional)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Información adicional"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "Eliminar pedido"
|
||||
@@ -23812,6 +23964,25 @@ msgstr "Sí, denegar pedido"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Ampliar la condición de pago"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Este archivo ha sido cargado por un usuario y puede contener virus u otros "
|
||||
"contenidos maliciosos."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "INSEGURO"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "sin respuesta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -24092,27 +24263,10 @@ msgstr "%(datetime_range)s válidos"
|
||||
msgid "Ticket page"
|
||||
msgstr "Página de entrada"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "sin respuesta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "Esta pregunta se hará durante el check-in."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Este archivo ha sido cargado por un usuario y puede contener virus u otros "
|
||||
"contenidos maliciosos."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "INSEGURO"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -25480,6 +25634,16 @@ msgstr "Conectar un dispositivo"
|
||||
msgid "Hardware model"
|
||||
msgstr "Modelo del Hardware"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Inicio: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Todavía no inicializado"
|
||||
@@ -28774,10 +28938,6 @@ msgstr "El orden de las categorías ha sido actualizado."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "No se han seleccionado todos los objetos."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Dirección"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "La pregunta solicitada no existe."
|
||||
@@ -28979,7 +29139,7 @@ msgstr ""
|
||||
#| "You should update the DNS settings of your domain to include this system "
|
||||
#| "in the SPF record."
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -29438,7 +29598,8 @@ msgstr "Asunto: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "Su mensaje ha sido puesto en cola y será enviado a {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -31737,6 +31898,29 @@ msgstr ""
|
||||
"determinado) y pagar en múltiples cuotas o en un plazo de 30 días. Usted, "
|
||||
"como comerciante, recibirá su dinero de inmediato."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Automático --"
|
||||
@@ -31998,11 +32182,12 @@ msgstr "Por favor, seleccione cómo desea pagar."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Nuestro intento de ejecutar su pago a través de PayPal ha fallado. Por favor "
|
||||
"inténtelo de nuevo o contáctenos."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -35072,10 +35257,6 @@ msgstr[1] "Esta entrada se ha utilizado %(count)s veces."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "No se facilitó el nombre del asistente"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "La imagen que subiste anteriormente"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "El precio de este producto se redujo debido a un descuento automático."
|
||||
@@ -35508,6 +35689,10 @@ msgstr "%(value)s sin impuestos"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Establecer precio en %(currency)s para %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "La imagen que subiste anteriormente"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -37285,6 +37470,13 @@ msgstr "Acceso de escritura"
|
||||
msgid "Kosovo"
|
||||
msgstr "Kosovo"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Nuestro intento de ejecutar su pago a través de PayPal ha fallado. Por "
|
||||
#~ "favor inténtelo de nuevo o contáctenos."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Todas las acciones"
|
||||
|
||||
@@ -37425,9 +37617,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Por favor, no use caracteres especiales en los nombres."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Estado o provincia"
|
||||
|
||||
#~ msgid "Program times: date and time"
|
||||
#~ msgstr "Horarios del programa: fecha y hora"
|
||||
|
||||
@@ -38282,9 +38471,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Badge design"
|
||||
#~ msgstr "Diseño de la insignia"
|
||||
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(Lo mismo que arriba)"
|
||||
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "Traducción en desarrollo"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2025-07-18 01:00+0000\n"
|
||||
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
|
||||
"Language-Team: Spanish (Latin America) <https://translate.pretix.eu/projects/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Griego"
|
||||
msgid "Hebrew"
|
||||
msgstr "Hebreo"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesio"
|
||||
@@ -437,6 +441,10 @@ msgstr "Medio conectado a otro evento"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -902,8 +910,7 @@ msgstr "La información del pedido cambió"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -920,7 +927,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1704,9 +1710,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Remitente de la factura:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1718,8 +1723,7 @@ msgstr "Dirección"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Código Postal"
|
||||
|
||||
@@ -1727,8 +1731,7 @@ msgstr "Código Postal"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Ciudad"
|
||||
|
||||
@@ -1751,8 +1754,7 @@ msgstr "Estado"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1780,8 +1782,7 @@ msgstr "Destinatario de la factura:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2586,7 +2587,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3093,14 +3095,15 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
#, fuzzy
|
||||
#| msgctxt "address"
|
||||
#| msgid "State"
|
||||
msgid "State"
|
||||
msgstr "Estado"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, python-brace-format
|
||||
@@ -3132,6 +3135,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5481,6 +5494,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5518,6 +5535,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6121,10 +6142,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -7035,7 +7052,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7781,6 +7798,18 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order total"
|
||||
msgid "Order creation"
|
||||
msgstr "Pedido total"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Orden caducada"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7805,6 +7834,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8894,7 +8943,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9475,6 +9524,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12631,6 +12699,24 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment provider"
|
||||
msgid "Payment term"
|
||||
msgstr "Proveedor de pago"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18824,6 +18910,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20477,6 +20564,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20493,6 +20598,28 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Order positions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Posiciones de pedido"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -21017,6 +21144,15 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Order information changed"
|
||||
msgid "Additional order information"
|
||||
msgstr "La información del pedido cambió"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -21044,6 +21180,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21299,25 +21452,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22555,6 +22693,16 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Item name"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Nombre del artículo"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25451,10 +25599,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25600,7 +25744,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25992,7 +26136,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -28045,6 +28190,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -28270,8 +28438,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -31005,10 +31176,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31406,6 +31573,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2025-12-24 00:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: Estonian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr ""
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -410,6 +414,10 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -838,8 +846,7 @@ msgstr ""
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -856,7 +863,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1587,9 +1593,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1601,8 +1606,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1610,8 +1614,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1634,8 +1637,7 @@ msgstr ""
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1663,8 +1665,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2451,7 +2452,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -2956,13 +2958,11 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
@@ -2995,6 +2995,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5321,6 +5331,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5358,6 +5372,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -5957,10 +5975,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6869,7 +6883,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7596,6 +7610,14 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order creation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "Order expiry"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7620,6 +7642,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8705,7 +8747,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9286,6 +9328,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12427,6 +12488,22 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18577,6 +18654,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20228,6 +20306,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20244,6 +20340,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20766,6 +20882,13 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
msgid "Additional order information"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20793,6 +20916,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21048,25 +21188,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22304,6 +22429,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25181,10 +25315,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25330,7 +25460,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25720,7 +25850,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27762,6 +27893,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -27987,8 +28141,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30721,10 +30878,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31122,6 +31275,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"PO-Revision-Date: 2026-07-29 11:04+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-08-24 14:30+0000\n"
|
||||
"Last-Translator: Albizuri <oier@puntu.eus>\n"
|
||||
"Language-Team: Basque <https://translate.pretix.eu/projects/pretix/pretix/eu/"
|
||||
">\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 2026.7.1\n"
|
||||
"X-Generator: Weblate 2026.8.1\n"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "English"
|
||||
@@ -91,6 +91,10 @@ msgstr "Greziera"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesiera"
|
||||
@@ -441,6 +445,12 @@ msgstr "Bitartekaria beste ekitaldi batera konektatuta dago"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Ezin duzu eskaera hau aldatu."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot change this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Ezin duzu eskaera hau aldatu."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -908,8 +918,7 @@ msgstr "Zure kontuaren informazioa eguneratu"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -928,7 +937,6 @@ msgstr "Bertaratuko den pertsonaren izena"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Bertaratuko den pertsonaren e-maila"
|
||||
@@ -1722,9 +1730,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Faktura igorlea:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1736,8 +1743,7 @@ msgstr "Helbidea"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Posta-kodea"
|
||||
|
||||
@@ -1745,8 +1751,7 @@ msgstr "Posta-kodea"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Herria"
|
||||
|
||||
@@ -1769,8 +1774,7 @@ msgstr "Herrialdea"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1798,8 +1802,7 @@ msgstr "Faktura hartzailea:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2615,7 +2618,8 @@ msgstr "Ordainketen egoerak"
|
||||
msgid "Refund states"
|
||||
msgstr "Itzulketen egoerak"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3144,16 +3148,12 @@ msgstr ""
|
||||
"hondatuta dago."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
"Atal hau hutsik lagatzen baduzu, erosketa egiten den unetik aurrera balioko "
|
||||
"du sarrerak."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Kalea eta Zenbakia"
|
||||
msgid "State"
|
||||
msgstr "Herrialdea"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3190,6 +3190,18 @@ msgstr "Mesedez, sartu baliozko salmenta-kanal bat."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Mesedez sartu emaitza zuzena."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Atal hau hutsik lagatzen baduzu, erosketa egiten den unetik aurrera balioko "
|
||||
"du sarrerak."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Kalea eta Zenbakia"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5842,6 +5854,10 @@ msgstr "Hautatutako bariazioa ez da artikulu honetakoa."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Zenbaketak zero edo handiagoa izan behar du."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Eskaeraren posizioa"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Zenbakia"
|
||||
@@ -5879,6 +5895,10 @@ msgstr "Data eta ordua"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Herrialdearen kodea (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6541,10 +6561,6 @@ msgstr "Opari-txartela"
|
||||
msgid "Value"
|
||||
msgstr "Balioa"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Eskaeraren posizioa"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "Orgaren IDa (adibidez, saio-gakoa)"
|
||||
@@ -6572,10 +6588,8 @@ msgid "This reference will be printed on your invoice for your convenience."
|
||||
msgstr "Erreferentzia hori zure fakturan inprimatuko da, erosoagoa izan dadin."
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
#, fuzzy
|
||||
#| msgid "Transaction time"
|
||||
msgid "Transmission type"
|
||||
msgstr "Transakzioaren ordua"
|
||||
msgstr "Komunikazio kanala"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html
|
||||
@@ -7572,7 +7586,7 @@ msgstr "Jaso dugu faktura honen ordainketa."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8362,6 +8376,18 @@ msgstr "Aurresalmentaren hasiera"
|
||||
msgid "Presale end"
|
||||
msgstr "Aurresalmentaren amaiera"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order total"
|
||||
msgid "Order creation"
|
||||
msgstr "Eskaerak guztira"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Eskaera iraungi da"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "aurrekoa"
|
||||
@@ -8386,6 +8412,26 @@ msgstr "Ordu erlatiboa:"
|
||||
msgid "Not set"
|
||||
msgstr "Finkatu gabe"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Ausazkoa (lehenespenez, pretix aplikazio guztiekin funtzionatzen du)"
|
||||
@@ -9680,7 +9726,7 @@ msgstr "Zenbatekoa zure txartelean kargatu da."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "Mesedez, transferitu dirua banku-kontu honetara 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -10409,6 +10455,25 @@ msgstr ""
|
||||
"ezarritako salmenta-epea amaitutakoan. Sarrera bat lortzeko beste aukera "
|
||||
"batzuk deskribatzeko erabil dezakezu, adibidez, leihatila bat."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Laguntza-testua"
|
||||
@@ -12242,7 +12307,7 @@ msgid "Order canceled: {code}"
|
||||
msgstr "Eskaera ezeztatua: {code}"
|
||||
|
||||
#: pretix/base/settings.py
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -12266,7 +12331,7 @@ msgstr ""
|
||||
"{url}\n"
|
||||
"\n"
|
||||
"Agur bero bat,\n"
|
||||
"PUNTUEUS"
|
||||
"{event} taldea"
|
||||
|
||||
#: pretix/base/settings.py
|
||||
#, python-brace-format
|
||||
@@ -13542,15 +13607,13 @@ msgid "Contact:"
|
||||
msgstr "Kontaktua:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/order_details.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "You are receiving this email because you placed an order for {event}."
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are receiving this email because you placed an order for "
|
||||
"<strong>%(event)s</strong>."
|
||||
msgstr ""
|
||||
"Mezu elektroniko hau jasotzen ari zara eskaera bat egin duzulako {event}"
|
||||
"(e)rako."
|
||||
"Mezu elektroniko hau jasotzen ari zara eskaera bat egin duzulako "
|
||||
"<strong>%(event)s</strong>(e)rako."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/order_details.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
@@ -13567,7 +13630,7 @@ msgstr ""
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
msgstr "Xehetasunak"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/order_details.html
|
||||
#: pretix/presale/templates/pretixpresale/event/base.html
|
||||
@@ -14379,6 +14442,28 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Set payment term"
|
||||
msgid "Payment term"
|
||||
msgstr "Ordainketa epea finkatu"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Ordaintzeko epea, egunetan"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Ordaintzeko epea minututan"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Price including add-ons"
|
||||
@@ -20695,6 +20780,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -22371,6 +22457,30 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new check-in rule"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Izen-emate arau berri bat sortu"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new rule"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Arau berria sortu"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Galderak sartu"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -22387,6 +22497,30 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Galderak sartu"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Require a phone number per order"
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "Eskatu telefono zenbakia eskaera bakoitzeko"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -22916,6 +23050,15 @@ msgstr "Fakturazio datuak"
|
||||
msgid "(optional)"
|
||||
msgstr "(hautazkoa)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Informazio gehigarria"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -22943,6 +23086,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -23215,25 +23375,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -24486,6 +24631,16 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Hasiera: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -27434,10 +27589,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -27585,7 +27736,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -27981,7 +28132,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -30253,6 +30405,29 @@ msgstr ""
|
||||
"epetan edo 30 egunetan ordaintzeko aukera. Zuk, saltzaile gisa, berehala "
|
||||
"jasotzen duzu zure dirua."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Automatikoa --"
|
||||
@@ -30510,11 +30685,12 @@ msgstr "Hautatu nola ordaindu nahi duzun."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Ordainketa PayPal bidez egiteko gure saiakerak huts egin du. Mesedez saiatu "
|
||||
"berriro edo jarri gurekin harremanetan."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -33635,10 +33811,6 @@ msgstr[1] "Sarrera hau %(count)s aldiz erabili da."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Ez da bertaratuko den pertsonaren izena adierazi"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Lehenago igo duzun irudia"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -34080,6 +34252,10 @@ msgstr "%(value)s zergarik gabe"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "%(item)s-(e)rako %(currency)s)tan zehaztutako prezioa"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Lehenago igo duzun irudia"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -35862,6 +36038,13 @@ msgstr "Idatzi sarbidea"
|
||||
msgid "Kosovo"
|
||||
msgstr "Kosovo"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Ordainketa PayPal bidez egiteko gure saiakerak huts egin du. Mesedez "
|
||||
#~ "saiatu berriro edo jarri gurekin harremanetan."
|
||||
|
||||
#, python-brace-format
|
||||
#~ msgid "<a target=\"_blank\" rel=\"noopener\" href=\"{docs_url}\">{text}</a>"
|
||||
#~ msgstr ""
|
||||
@@ -35928,9 +36111,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Ez erabili karaktere berezirik izenetan."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Herrialdea"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2025-10-04 10:10+0000\n"
|
||||
"Last-Translator: Sebastian Bożek <sebastian@log-mar.pl>\n"
|
||||
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr "kreikka"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "indonesia"
|
||||
@@ -438,6 +442,12 @@ msgstr "Väline yhdistetty toiseen tapahtumaan"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Tätä tilausta ei voi muuttaa."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot change this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Tätä tilausta ei voi muuttaa."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -910,8 +920,7 @@ msgstr "Asiakkaan tilitiedot"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -930,7 +939,6 @@ msgstr "Osallistujan nimi"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Osallistujan sähköposti"
|
||||
@@ -1721,9 +1729,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Laskun lähettäjä:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1735,8 +1742,7 @@ msgstr "Osoite"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Postinumero"
|
||||
|
||||
@@ -1744,8 +1750,7 @@ msgstr "Postinumero"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Kaupunki"
|
||||
|
||||
@@ -1768,8 +1773,7 @@ msgstr "Maakunta"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1797,8 +1801,7 @@ msgstr "Laskun vastaanottaja:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2615,7 +2618,8 @@ msgstr "Maksutilat"
|
||||
msgid "Refund states"
|
||||
msgstr "Palautustilat"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3138,14 +3142,12 @@ msgstr ""
|
||||
"Lataa kelvollinen kuva. Lataamasi tiedosto ei ole kuva tai se on vioittunut."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Jos jätät tämän tyhjäksi, lippu on voimassa ostopaikasta alkaen."
|
||||
msgid "Street"
|
||||
msgstr "Katu"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Tie ja numero"
|
||||
msgid "State"
|
||||
msgstr "Osavaltio/Maakunta"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3182,6 +3184,16 @@ msgstr "Syötä kelvollinen myyntikanava."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Syötä oikea tulos."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Jos jätät tämän tyhjäksi, lippu on voimassa ostopaikasta alkaen."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Tie ja numero"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5822,6 +5834,10 @@ msgstr "Valittu variaatio ei kuulu tähän tuotteeseen."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Luvun on oltava nolla tai suurempi kuin nolla."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Tilausjärjestys"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Numero"
|
||||
@@ -5859,6 +5875,10 @@ msgstr "Päiväys ja aika"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Maakohtainen koodi (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6523,10 +6543,6 @@ msgstr "Lahjakortti"
|
||||
msgid "Value"
|
||||
msgstr "Arvo"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Tilausjärjestys"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "Korin ID (esim. istuntoavain)"
|
||||
@@ -7556,7 +7572,7 @@ msgstr "Tämän laskun maksu on jo vastaanotettu."
|
||||
#, fuzzy
|
||||
#| msgid "This refund can not be canceled at the moment."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Tätä hyvitystä ei voi perua tällä hetkellä."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8343,6 +8359,18 @@ msgstr "Ennakkomyynnin alku"
|
||||
msgid "Presale end"
|
||||
msgstr "Ennakkomyynnin loppu"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order total"
|
||||
msgid "Order creation"
|
||||
msgstr "Tilauksen summa"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Tilaus vanhentunut"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "ennen"
|
||||
@@ -8367,6 +8395,26 @@ msgstr "Suhteellinen aika:"
|
||||
msgid "Not set"
|
||||
msgstr "Ei asetettu"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Satunnainen (oletusarvo, toimii kaikkien pretix-sovellusten kanssa)"
|
||||
@@ -9641,7 +9689,7 @@ msgstr "Summa on veloitettu kortiltasi."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "Ole hyvä ja siirrä raha tälle tilille: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "Tämä arvo korvataan dynaamisten parametrien perusteella."
|
||||
|
||||
@@ -10354,6 +10402,25 @@ msgstr ""
|
||||
"myyntiaika on ohi. Voit käyttää sitä kuvaamaan muita vaihtoehtoja lipun "
|
||||
"saamiseksi, kuten lipputulot."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Ohjeen teksti"
|
||||
@@ -14304,6 +14371,28 @@ msgid ""
|
||||
msgstr ""
|
||||
"Olet asettanut lahjakortit olemaan voimassa myötämisvuoden lisäksi {} vuotta."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Set payment term"
|
||||
msgid "Payment term"
|
||||
msgstr "Aseta maksuehto"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Maksuehto päivinä"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Maksuaika minuuteissa"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Price including add-ons"
|
||||
@@ -20636,6 +20725,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -22308,6 +22398,30 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new customer"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Luo uusi käyttäjä"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new rule"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Uuden säännön luominen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Sisällytä kysymykset"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -22324,6 +22438,30 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr "Kaikki henkilöidyt tuotteet"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Sisällytä kysymykset"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "Kysymys on uudelleenjärjestetty."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -22851,6 +22989,15 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr "(valinnainen)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Lisätiedot"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -22878,6 +23025,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -23150,25 +23314,10 @@ msgstr "Voimassa %(datetime_range)s"
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -24429,6 +24578,16 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Alkaa: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -27383,10 +27542,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "Kaikkia kohteita ei ole valittu."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Katu"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -27536,7 +27691,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -27934,7 +28089,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -30157,6 +30313,29 @@ msgstr ""
|
||||
"Tarjoa asiakkaillesi mahdollisuus ostaa nyt (tiettyyn rajaan asti) ja maksaa "
|
||||
"useissa erissä tai 30 päivän kuluessa. Sinä kauppiaana saat rahasi heti."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Automaattinen --"
|
||||
@@ -30414,11 +30593,12 @@ msgstr "Valitse maksutapa."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Yrityksemme suorittaa maksusi PayPalin kautta on epäonnistunut. Yritä "
|
||||
"uudelleen tai ota meihin yhteyttä."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -33485,10 +33665,6 @@ msgstr[1] "Tämä lippu on käytetty %(count)s kertaa."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Osallistujan nimi puuttuu"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Aiemmin lataamasi kuva"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "Tämän tuotteen hintaa alennettiin automaattisen alennuksen vuoksi."
|
||||
@@ -33923,6 +34099,10 @@ msgstr "%(value)s ilman veroja"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Anna %(item)s hinta %(currency)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Aiemmin lataamasi kuva"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -35686,6 +35866,13 @@ msgstr "Kirjoita käyttöoikeudet"
|
||||
msgid "Kosovo"
|
||||
msgstr "Kosovo"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Yrityksemme suorittaa maksusi PayPalin kautta on epäonnistunut. Yritä "
|
||||
#~ "uudelleen tai ota meihin yhteyttä."
|
||||
|
||||
#, python-brace-format
|
||||
#~ msgid "<a target=\"_blank\" rel=\"noopener\" href=\"{docs_url}\">{text}</a>"
|
||||
#~ msgstr ""
|
||||
@@ -35756,9 +35943,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Älä käytä erikoismerkkejä nimissä."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Osavaltio/Maakunta"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2025-02-13 22:00+0000\n"
|
||||
"Last-Translator: Andrias Magnussen <andrias.magnussen@om.org>\n"
|
||||
"Language-Team: Faroese <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Grikst"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesiskt"
|
||||
@@ -433,6 +437,10 @@ msgstr "Media er knýtt at øðrum tiltaki"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -873,8 +881,7 @@ msgstr "Bíleggingar upplýsingar broyttir"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -891,7 +898,6 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr ""
|
||||
@@ -1636,9 +1642,8 @@ msgid "Invoice sender:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1650,8 +1655,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr ""
|
||||
|
||||
@@ -1659,8 +1663,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1683,8 +1686,7 @@ msgstr ""
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1712,8 +1714,7 @@ msgstr ""
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2504,7 +2505,8 @@ msgstr ""
|
||||
msgid "Refund states"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3009,13 +3011,11 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
@@ -3048,6 +3048,16 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5378,6 +5388,10 @@ msgstr ""
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
@@ -5415,6 +5429,10 @@ msgstr ""
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6014,10 +6032,6 @@ msgstr ""
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr ""
|
||||
@@ -6926,7 +6940,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7662,6 +7676,18 @@ msgstr ""
|
||||
msgid "Presale end"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order denied"
|
||||
msgid "Order creation"
|
||||
msgstr "Bílegging avvíst"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Bílegging útgingin"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr ""
|
||||
@@ -7686,6 +7712,26 @@ msgstr ""
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -8773,7 +8819,7 @@ msgstr ""
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr ""
|
||||
|
||||
@@ -9354,6 +9400,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr ""
|
||||
@@ -12497,6 +12562,24 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment confirmed"
|
||||
msgid "Payment term"
|
||||
msgstr "Gjald váttað"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in days"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "different payment term in minutes"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr ""
|
||||
@@ -18676,6 +18759,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr ""
|
||||
@@ -20327,6 +20411,24 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new order-level question"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-ticket questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr ""
|
||||
@@ -20343,6 +20445,26 @@ msgstr ""
|
||||
msgid "All personalized products"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Per-order questions"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -20865,6 +20987,15 @@ msgstr ""
|
||||
msgid "(optional)"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Order information changed"
|
||||
msgid "Additional order information"
|
||||
msgstr "Bíleggingar upplýsingar broyttir"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr ""
|
||||
@@ -20892,6 +21023,23 @@ msgstr ""
|
||||
msgid "Extend payment term"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -21147,25 +21295,10 @@ msgstr ""
|
||||
msgid "Ticket page"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -22403,6 +22536,15 @@ msgstr ""
|
||||
msgid "Hardware model"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, python-format
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr ""
|
||||
@@ -25284,10 +25426,6 @@ msgstr ""
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr ""
|
||||
@@ -25433,7 +25571,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -25825,7 +25963,8 @@ msgstr ""
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -27877,6 +28016,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr ""
|
||||
@@ -28102,8 +28264,11 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
@@ -30838,10 +31003,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr ""
|
||||
@@ -31239,6 +31400,10 @@ msgstr ""
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
|
||||
@@ -3,9 +3,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"PO-Revision-Date: 2026-07-08 16:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-08-11 17:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix/fr/"
|
||||
">\n"
|
||||
"Language: fr\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 2026.6.1\n"
|
||||
"X-Generator: Weblate 2026.8.1\n"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "English"
|
||||
@@ -87,6 +87,10 @@ msgstr "Grec"
|
||||
msgid "Hebrew"
|
||||
msgstr "Hébreu"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonésien"
|
||||
@@ -433,6 +437,12 @@ msgstr "Média connecté à un autre événement"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Il n'est pas possible d'échanger un support contre un autre support."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "Product does not support medium exchange."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Ce produit ne permet pas de changer de support."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -887,8 +897,7 @@ msgstr "Informations sur l'événement ou la date"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -905,7 +914,6 @@ msgstr "Participant"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "E-mail du participant"
|
||||
@@ -1392,10 +1400,8 @@ msgid "Membership type"
|
||||
msgstr "Type d’adhésion"
|
||||
|
||||
#: pretix/base/exporters/customers.py
|
||||
#, fuzzy
|
||||
#| msgid "Purchase time"
|
||||
msgid "Purchase ticket"
|
||||
msgstr "Heure d'achat"
|
||||
msgstr "Achat de billet"
|
||||
|
||||
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/exporters/waitinglist.py pretix/base/forms/questions.py
|
||||
@@ -1412,10 +1418,8 @@ msgid "Start date"
|
||||
msgstr "Date de début"
|
||||
|
||||
#: pretix/base/exporters/customers.py
|
||||
#, fuzzy
|
||||
#| msgid "Start time from"
|
||||
msgid "Start time"
|
||||
msgstr "Heure de début à partir de"
|
||||
msgstr "Heure de début"
|
||||
|
||||
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/exporters/waitinglist.py pretix/base/models/memberships.py
|
||||
@@ -1428,10 +1432,8 @@ msgid "End date"
|
||||
msgstr "Date de fin"
|
||||
|
||||
#: pretix/base/exporters/customers.py
|
||||
#, fuzzy
|
||||
#| msgid "End: %(time)s"
|
||||
msgid "End time"
|
||||
msgstr "Fin : %(time)s"
|
||||
msgstr "Heure de fin"
|
||||
|
||||
#: pretix/base/exporters/dekodi.py pretix/base/exporters/invoices.py
|
||||
msgctxt "export_category"
|
||||
@@ -1663,9 +1665,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Expéditeur de facture :"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1677,8 +1678,7 @@ msgstr "Adresse"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Code postal"
|
||||
|
||||
@@ -1686,8 +1686,7 @@ msgstr "Code postal"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Ville"
|
||||
|
||||
@@ -1710,8 +1709,7 @@ msgstr "État"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1739,8 +1737,7 @@ msgstr "Destinataire de facture :"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2557,7 +2554,8 @@ msgstr "Etats du paiement"
|
||||
msgid "Refund states"
|
||||
msgstr "Etats des remboursements"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3087,16 +3085,12 @@ msgstr ""
|
||||
"pas une image, soit est une image corrompue."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Si vous laissez ce champ vide, le billet sera valable à partir du moment de "
|
||||
"l'achat."
|
||||
msgid "Street"
|
||||
msgstr "Rue"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Rue et numéro"
|
||||
msgid "State"
|
||||
msgstr "État"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, python-brace-format
|
||||
@@ -3129,6 +3123,18 @@ msgstr ""
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Veuillez saisir une date et une heure au plus tard le {max}."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Si vous laissez ce champ vide, le billet sera valable à partir du moment de "
|
||||
"l'achat."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Rue et numéro"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -4686,15 +4692,11 @@ msgid "This event is remote or partially remote."
|
||||
msgstr "Cet événement est éloigné ou partiellement éloigné."
|
||||
|
||||
#: pretix/base/models/event.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This will be used to let users know if the event is in a different "
|
||||
#| "timezone and let’s us calculate users’ local times."
|
||||
msgid ""
|
||||
"This will be used to let users know if the event is in a different timezone, "
|
||||
"and to let us calculate the local time of a user."
|
||||
msgstr ""
|
||||
"Elle sera utilisée pour indiquer aux utilisateurs si l'événement se déroule "
|
||||
"Ce sera utilisée pour indiquer aux utilisateurs si l'événement se déroule "
|
||||
"dans un autre fuseau horaire et nous permettra de calculer l'heure locale "
|
||||
"des utilisateurs."
|
||||
|
||||
@@ -5346,7 +5348,7 @@ msgstr ""
|
||||
"Si cette option est définie, le produit ne sera vendu que dans le cadre de "
|
||||
"produits groupés. <strong>Ne cochez pas</strong> cette option si vous "
|
||||
"souhaitez utiliser ce produit pour des offres groupées, pas en tant que "
|
||||
"produit complémentaire."
|
||||
"produit complémentaire !"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid ""
|
||||
@@ -5788,6 +5790,10 @@ msgstr "Cette variante n'appartient pas à ce produit."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Le nombre doit être égal ou supérieur à zéro."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Position de l'ordre"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Nombre"
|
||||
@@ -5825,6 +5831,10 @@ msgstr "Date et heure"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Code pays (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6493,10 +6503,6 @@ msgstr "Carte-cadeau"
|
||||
msgid "Value"
|
||||
msgstr "Valeur"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Position de l'ordre"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "ID du panier (par ex. clé de session)"
|
||||
@@ -7549,8 +7555,11 @@ msgid "The payment for this invoice has already been received."
|
||||
msgstr "Le paiement de cette facture a déjà été reçu."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This payment is already being processed and can not be canceled any more."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr ""
|
||||
"Ce paiement est déjà en cours de traitement et ne peut plus être annulé."
|
||||
|
||||
@@ -7680,14 +7689,12 @@ msgid "This gift card was used in the meantime. Please try again."
|
||||
msgstr "Cette carte-cadeau a été utilisée entre-temps. Veuillez réessayer."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This payment provider does not exist or the respective plugin is disabled."
|
||||
msgid ""
|
||||
"This payment provider exists for historical purposes only and is no longer "
|
||||
"usable."
|
||||
msgstr ""
|
||||
"Ce fournisseur de paiement n’existe pas ou le plugin respectif est désactivé."
|
||||
"Ce fournisseur de paiement n’existe que pour des raisons d'archivage et ne "
|
||||
"peut plus être utilisé."
|
||||
|
||||
#: pretix/base/pdf.py
|
||||
msgid "Ticket code (barcode content)"
|
||||
@@ -8332,6 +8339,18 @@ msgstr "Début de la prévente"
|
||||
msgid "Presale end"
|
||||
msgstr "Fin de la prévente"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order email"
|
||||
msgid "Order creation"
|
||||
msgstr "E-mail de la commande"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Commande expirée"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "avant"
|
||||
@@ -8356,6 +8375,26 @@ msgstr "Heure relative :"
|
||||
msgid "Not set"
|
||||
msgstr "Non réglé"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Aléatoire (par défaut, fonctionne avec toutes les applications pretix)"
|
||||
@@ -9606,16 +9645,12 @@ msgstr ""
|
||||
"émettre une carte-cadeau."
|
||||
|
||||
#: pretix/base/services/orders.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You cannot change the price of a position that has been used to issue a "
|
||||
#| "gift card."
|
||||
msgid ""
|
||||
"You cannot change the ticket secret of a position that has been used to "
|
||||
"issue a gift card."
|
||||
msgstr ""
|
||||
"Vous ne pouvez pas modifier le prix d’une position qui a été utilisée pour "
|
||||
"émettre une carte-cadeau."
|
||||
"Vous ne pouvez pas modifier la clé secrète d'un billet pour une position qui "
|
||||
"a été utilisée pour émettre une carte-cadeau."
|
||||
|
||||
#: pretix/base/services/orders.py
|
||||
#, python-brace-format
|
||||
@@ -9660,7 +9695,7 @@ msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
"Veuillez virer de l'argent sur ce compte bancaire : 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "Cette valeur sera remplacée en fonction des paramètres dynamiques."
|
||||
|
||||
@@ -10393,6 +10428,25 @@ msgstr ""
|
||||
"désigné pour cet événement terminé. Vous pouvez l’utiliser pour décrire "
|
||||
"d’autres options pour obtenir un billet, comme une billetterie."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Texte d’aide"
|
||||
@@ -14424,6 +14478,30 @@ msgstr ""
|
||||
"Vous avez configuré les cartes cadeaux pour qu’elles soient valides {} ans "
|
||||
"plus l’année d’émission de la carte-cadeau."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Date de paiement"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "(Same as above)"
|
||||
msgid "same as above"
|
||||
msgstr "(identique à ce qui précède)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Délai de paiement en jours"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Délai de paiement en minutes"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr "Prix TTC"
|
||||
@@ -15433,10 +15511,8 @@ msgid "Source"
|
||||
msgstr "Source"
|
||||
|
||||
#: pretix/control/forms/filter.py
|
||||
#, fuzzy
|
||||
#| msgid "All vouchers"
|
||||
msgid "All sources"
|
||||
msgstr "Tous les bons de réduction"
|
||||
msgstr "Toutes les sources"
|
||||
|
||||
#: pretix/control/forms/filter.py
|
||||
msgid "Team actions"
|
||||
@@ -15447,16 +15523,12 @@ msgid "Customer actions"
|
||||
msgstr "Actions des clients"
|
||||
|
||||
#: pretix/control/forms/filter.py
|
||||
#, fuzzy
|
||||
#| msgid "Device status"
|
||||
msgid "Device actions"
|
||||
msgstr "Statut de l'appareil"
|
||||
msgstr "Actions de l'appareil"
|
||||
|
||||
#: pretix/control/forms/filter.py
|
||||
#, fuzzy
|
||||
#| msgid "Order email"
|
||||
msgid "User email"
|
||||
msgstr "E-mail de la commande"
|
||||
msgstr "E-mail de l'utilisateur"
|
||||
|
||||
#: pretix/control/forms/filter.py pretix/control/navigation.py
|
||||
msgid "All users"
|
||||
@@ -17005,40 +17077,32 @@ msgid ""
|
||||
"because at least one of the selected vouchers has already been redeemed "
|
||||
"%(max_redeemed)s times."
|
||||
msgstr ""
|
||||
"Vous ne pouvez pas réduire le maximum d'utilisation à %(max_usages)s, car au "
|
||||
"moins un des bon sélectionnés à déjà été utilisé %(max_redeemed)s fois."
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You cannot create a voucher that blocks quota as the selected product or "
|
||||
#| "quota is currently sold out or completely reserved."
|
||||
msgid ""
|
||||
"You cannot create a voucher that allows selection of a quota but has no date "
|
||||
"selected."
|
||||
msgstr ""
|
||||
"Vous ne pouvez pas créer de bon qui bloque le quota car le produit ou le "
|
||||
"quota sélectionné est actuellement épuisé ou entièrement réservé."
|
||||
"Vous ne pouvez pas créer de bon qui autorise la selection d'un quota mais "
|
||||
"qui n'a pas de date seélectionnée."
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
#, fuzzy
|
||||
#| msgid "The selected product does not allow to select a seat."
|
||||
msgid "The selected quota does not match the selected subevent."
|
||||
msgstr "Le produit sélectionné ne permet pas de sélectionner un siège."
|
||||
msgstr "Le quota sélectionné ne concorde pas avec l'évènement sélectionné."
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "There is not enough quota available on quota \"{}\" to perform the "
|
||||
#| "operation."
|
||||
msgid "There is no sufficient quota available to perform this change."
|
||||
msgstr ""
|
||||
"Il n'y a pas assez de quota disponible sur le quota \"{}\" pour effectuer "
|
||||
"l'opération."
|
||||
msgstr "Il n'y a pas assez de quota disponible pour effectuer le changement."
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
msgid ""
|
||||
"Changing the maximum number of usages in bulk is not supported if any of the "
|
||||
"selected vouchers is assigned a seat."
|
||||
msgstr ""
|
||||
"Changer le nombre maximum d'utilisation en série n'est pas supporté si un "
|
||||
"des bon sélectionnés à déjà une place attitrée."
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
msgctxt "subevent"
|
||||
@@ -17046,18 +17110,24 @@ msgid ""
|
||||
"Changing the date in bulk is not supported if any of the selected vouchers "
|
||||
"is assigned a seat."
|
||||
msgstr ""
|
||||
"Changer la date en série n'est pas supporté si un des bon sélectionnés à "
|
||||
"déjà une place attitrée."
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
msgid ""
|
||||
"Changing the product to a quota is not supported if any of the selected "
|
||||
"vouchers is assigned a seat."
|
||||
msgstr ""
|
||||
"Changer le produit d'un quota n'est pas supporté si un des bon sélectionnés "
|
||||
"à déjà une place attitrée."
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
msgid ""
|
||||
"This change cannot be completed because not all assigned seats of the "
|
||||
"vouchers are still available"
|
||||
msgstr ""
|
||||
"Ce changement ne peut pas être effectué car certaines places de ce bon ne "
|
||||
"sont plus disponibles"
|
||||
|
||||
#: pretix/control/forms/vouchers.py
|
||||
msgid "Codes"
|
||||
@@ -20501,10 +20571,10 @@ msgstr ""
|
||||
"système. Super !"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup_simple.html
|
||||
#, fuzzy
|
||||
#| msgid "Your new SPF record could look like this:"
|
||||
msgid "Your new DKIM record should be set up as a CNAME record like this:"
|
||||
msgstr "Votre nouvel enregistrement SPF pourrait ressembler à ceci :"
|
||||
msgstr ""
|
||||
"Votre nouvel enregistrement DKIM doit être configuré comme un enregistrement "
|
||||
"CNAME comme ceci :"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup_simple.html
|
||||
#, fuzzy
|
||||
@@ -20516,10 +20586,8 @@ msgstr ""
|
||||
"système. Super !"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup_simple.html
|
||||
#, fuzzy
|
||||
#| msgid "Your new SPF record could look like this:"
|
||||
msgid "Your new DMARC record could look like this:"
|
||||
msgstr "Votre nouvel enregistrement SPF pourrait ressembler à ceci :"
|
||||
msgstr "Votre nouvel enregistrement DMARC pourrait ressembler à ceci :"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup_simple.html
|
||||
#, fuzzy
|
||||
@@ -21398,6 +21466,7 @@ msgid "Top recommendation"
|
||||
msgstr "Recommandation principale"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "Fonctionalité expérimentale"
|
||||
@@ -22251,10 +22320,8 @@ msgid "The quick brown fox jumps over the lazy dog."
|
||||
msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ex."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/fragment_log_filter_form.html
|
||||
#, fuzzy
|
||||
#| msgid "Specific seat"
|
||||
msgid "Specific object selected"
|
||||
msgstr "Siège spécifique"
|
||||
msgstr "Objet spécifique sélectionné"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/fragment_quota_box.html
|
||||
#: pretix/control/templates/pretixcontrol/fragment_quota_box_paid.html
|
||||
@@ -23339,6 +23406,30 @@ msgstr ""
|
||||
"exemple pourrait être de demander à vos utilisateurs quels sont leurs "
|
||||
"besoins alimentaires."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Créer une nouvelle question"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Créer une nouvelle question"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Supprimer la question"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "Créer une nouvelle question"
|
||||
@@ -23355,6 +23446,30 @@ msgstr "Demander lors de l’enregistrement"
|
||||
msgid "All personalized products"
|
||||
msgstr "Tous les produits personnalisés"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Inclure des questions"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "La question a été réordonnée."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -23887,6 +24002,9 @@ msgid ""
|
||||
"Ticket secrets of order positions that have been used to issue a gift card "
|
||||
"can not be changed. Only the link will be changed in this case."
|
||||
msgstr ""
|
||||
"La clé secrète de la position d'un commande qui a été utilisée pour "
|
||||
"distribuer une carte cadeau ne peut pas être changée. Seul le lien sera "
|
||||
"changé dans ce cas."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change.html
|
||||
msgid ""
|
||||
@@ -23958,6 +24076,15 @@ msgstr "Facturation"
|
||||
msgid "(optional)"
|
||||
msgstr "(optionnel)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Informations complémentaires"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "Supprimer la commande"
|
||||
@@ -23987,6 +24114,25 @@ msgstr "Oui, refuser la commande"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Prolonger le délai de paiement"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Ce fichier a été chargé par un utilisateur et peut contenir des virus ou "
|
||||
"tout autre contenu malveillant."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "PEU SÛR"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "pas de réponse"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -24269,27 +24415,10 @@ msgstr "%(datetime_range)s valides"
|
||||
msgid "Ticket page"
|
||||
msgstr "Page de ticket"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "pas de réponse"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "Cette question sera posée lors de l'enregistrement."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Ce fichier a été chargé par un utilisateur et peut contenir des virus ou "
|
||||
"tout autre contenu malveillant."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "PEU SÛR"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -25669,6 +25798,16 @@ msgstr "Connecter un appareil"
|
||||
msgid "Hardware model"
|
||||
msgstr "Modèle de matériel"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Début : %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Pas encore initialisé"
|
||||
@@ -28039,10 +28178,8 @@ msgstr ""
|
||||
"associé au produit est épuisé !"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk_edit.html
|
||||
#, fuzzy
|
||||
#| msgid "Create multiple vouchers"
|
||||
msgid "Change multiple vouchers"
|
||||
msgstr "Créer plusieurs bons"
|
||||
msgstr "Changer plusieurs bons"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/delete.html
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/detail.html
|
||||
@@ -28452,6 +28589,10 @@ msgid ""
|
||||
"team. If you want to add a different user or create a new account, log out "
|
||||
"and click the invitation link again."
|
||||
msgstr ""
|
||||
"Vous ne pouvez pas accepter l'invitation pour \"{}\" car vous faites déjà "
|
||||
"parti de cette équipe. Si vous voulez ajouter un utilisateur différent ou "
|
||||
"créer un nouveau compte, déconnectez-vous puis cliquez une fois de plus sur "
|
||||
"le lien d'invitation."
|
||||
|
||||
#: pretix/control/views/auth.py
|
||||
#, python-brace-format
|
||||
@@ -28995,10 +29136,6 @@ msgstr "Le classement des catégories a été mis à jour."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "Tous les objets n’ont pas été sélectionnés."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Rue"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "La question demandée n'existe pas."
|
||||
@@ -29200,7 +29337,7 @@ msgstr ""
|
||||
#| "You should update the DNS settings of your domain to include this system "
|
||||
#| "in the SPF record."
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -29666,7 +29803,8 @@ msgstr "Sujet : {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "Votre message a été mis en file d'attente et sera envoyé à {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -31990,6 +32128,29 @@ msgstr ""
|
||||
"certaine limite) et de payer en plusieurs fois ou dans les 30 jours. Vous, "
|
||||
"en tant que commerçant, recevez votre argent tout de suite."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Automatique --"
|
||||
@@ -32260,11 +32421,12 @@ msgstr "Veuillez choisir comment vous voulez payer."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Notre tentative d'exécution de votre paiement via PayPal a échoué. Veuillez "
|
||||
"réessayer ou nous contacter."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -32517,24 +32679,21 @@ msgid "Base redirection URLs"
|
||||
msgstr "URLs de redirection de base"
|
||||
|
||||
#: pretix/plugins/returnurl/views.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Redirection will only be allowed to URLs that start with one of these "
|
||||
#| "prefixes. Enter one or more allowed URL prefix per line. URL prefixes "
|
||||
#| "must include a slash after the hostname."
|
||||
msgid ""
|
||||
"Redirection will only be allowed to URLs that start with one of these "
|
||||
"prefixes. Enter one allowed URL prefix per line. URL prefixes must include a "
|
||||
"slash after the hostname."
|
||||
msgstr ""
|
||||
"La redirection ne sera autorisée que vers les URL qui commencent par l'un de "
|
||||
"ces préfixes. Saisissez un ou plusieurs préfixes d'URL autorisés par ligne. "
|
||||
"Les préfixes d'URL doivent inclure une barre oblique après le nom d'hôte."
|
||||
"ces préfixes. Saisissez un préfixes d'URL autorisés par ligne. Les préfixes "
|
||||
"d'URL doivent inclure une barre oblique après le nom d'hôte."
|
||||
|
||||
#: pretix/plugins/returnurl/views.py
|
||||
msgid ""
|
||||
"All values must be URLs that include at last one slash after the hostname."
|
||||
msgstr ""
|
||||
"Toutes les valeurs doivent être des URL qui incluent un slash après un nom "
|
||||
"d'hôte."
|
||||
|
||||
#: pretix/plugins/sendmail/apps.py
|
||||
msgid "Send out emails to all your customers or specific groups of customers."
|
||||
@@ -34943,7 +35102,7 @@ msgstr "Passer une commande"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
msgid "Submit registration"
|
||||
msgstr "Valider"
|
||||
msgstr "Effectuer la réservation"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html
|
||||
msgid "Log in with a customer account"
|
||||
@@ -35359,10 +35518,6 @@ msgstr[1] "Ce billet a été utilisé %(count)s fois."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Aucun nom de participant fourni"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "L'image que vous avez précédemment téléchargée"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "Le prix de ce produit a été réduit en raison d’une remise automatique."
|
||||
@@ -35502,7 +35657,7 @@ msgstr "Vider le panier"
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher_form.html
|
||||
msgid "Redeem a voucher"
|
||||
msgstr "Échanger un bon"
|
||||
msgstr "Valider un code promotionnel"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html
|
||||
msgid "We're applying this voucher to your cart..."
|
||||
@@ -35800,6 +35955,10 @@ msgstr "%(value)s hors taxes"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Définir le prix en %(currency)s pour %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "L'image que vous avez précédemment téléchargée"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -37619,6 +37778,13 @@ msgstr "Accès en écriture"
|
||||
msgid "Kosovo"
|
||||
msgstr "Kosovo"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Notre tentative d'exécution de votre paiement via PayPal a échoué. "
|
||||
#~ "Veuillez réessayer ou nous contacter."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Toutes les actions"
|
||||
|
||||
@@ -37759,9 +37925,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Merci de ne pas utiliser de caractères spéciaux dans les noms."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "État"
|
||||
|
||||
#~ msgid "Program times: date and time"
|
||||
#~ msgstr "Horaires du programme : date et heure"
|
||||
|
||||
@@ -38494,9 +38657,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Badge design"
|
||||
#~ msgstr "Conception du badge"
|
||||
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(identique à ce qui précède)"
|
||||
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "Traduction en développement"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgstr ""
|
||||
"Project-Id-Version: French\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-06 15:52+0000\n"
|
||||
"PO-Revision-Date: 2026-07-08 16:00+0000\n"
|
||||
"Last-Translator: Joram Schwartzmann <schwartzmann@pretix.eu>\n"
|
||||
"PO-Revision-Date: 2026-08-09 06:00+0000\n"
|
||||
"Last-Translator: Julien <julien@circusiloveyou.com>\n"
|
||||
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
"fr/>\n"
|
||||
"Language: fr\n"
|
||||
@@ -16,7 +16,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 2026.6.1\n"
|
||||
"X-Generator: Weblate 2026.8.1\n"
|
||||
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js
|
||||
msgid "Marked as paid"
|
||||
@@ -1051,13 +1051,13 @@ msgstr "Finaliser ma commande"
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgctxt "widget"
|
||||
msgid "Redeem a voucher"
|
||||
msgstr "Utiliser un bon d'achat"
|
||||
msgstr "Utiliser un code promotionnel"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
msgctxt "widget"
|
||||
msgid "Redeem"
|
||||
msgstr "Echanger"
|
||||
msgstr "Valider"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js
|
||||
#: pretix/static/pretixpresale/widget/src/i18n.ts
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-04-21 11:05+0000\n"
|
||||
"Last-Translator: Sandra Rial Pérez <sandrarial@gestiontickets.online>\n"
|
||||
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Griego"
|
||||
msgid "Hebrew"
|
||||
msgstr "Hebreo"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesio"
|
||||
@@ -428,6 +432,11 @@ msgstr "O medio conectou a outro acontecemento"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "No puede cancelar este pedido."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "No puede cancelar este pedido."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -880,8 +889,7 @@ msgstr "Información do evento ou da data"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -898,7 +906,6 @@ msgstr "Asistente"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Correo electrónico do asistente"
|
||||
@@ -1654,9 +1661,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Emisor da factura:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1668,8 +1674,7 @@ msgstr "Enderezo"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Código postal"
|
||||
|
||||
@@ -1677,8 +1682,7 @@ msgstr "Código postal"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Cidade"
|
||||
|
||||
@@ -1701,8 +1705,7 @@ msgstr "País"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1730,8 +1733,7 @@ msgstr "Destinatario da factura:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2542,7 +2544,8 @@ msgstr "Estado do pagamento"
|
||||
msgid "Refund states"
|
||||
msgstr "Estado do reembolso"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3068,15 +3071,14 @@ msgstr ""
|
||||
"estaba danado."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Se o deixas baleiro, o billete será válido a partir do momento da compra."
|
||||
#, fuzzy
|
||||
msgid "Street"
|
||||
msgstr "Dirección"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Rúa e Número"
|
||||
#, fuzzy
|
||||
msgid "State"
|
||||
msgstr "Estado"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, python-brace-format
|
||||
@@ -3108,6 +3110,17 @@ msgstr "Introduza unha data e unha hora non anteriores a {min}."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Introduza unha data e unha hora non posteriores a {max}."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr ""
|
||||
"Se o deixas baleiro, o billete será válido a partir do momento da compra."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Rúa e Número"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5819,6 +5832,11 @@ msgstr "La variación escogida no pertenece a este item."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "El conteo necesita ser igual o mayor que cero."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
#, fuzzy
|
||||
msgid "Order position"
|
||||
msgstr "Posición de la orden"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
#, fuzzy
|
||||
msgid "Number"
|
||||
@@ -5865,6 +5883,10 @@ msgstr "Fecha y hora"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Código de país (ISO 3166-1 alfa-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
#, fuzzy
|
||||
#| msgid "The property name may only contain letters, numbers and underscores."
|
||||
@@ -6572,11 +6594,6 @@ msgstr "Tarxeta de regalo"
|
||||
msgid "Value"
|
||||
msgstr "Valor"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
#, fuzzy
|
||||
msgid "Order position"
|
||||
msgstr "Posición de la orden"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
#, fuzzy
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
@@ -7667,7 +7684,7 @@ msgstr "El pago de esta factura ya se ha recibido."
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Este pago no puede ser cancelado en este momento."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8542,6 +8559,18 @@ msgstr "Inicio preventa"
|
||||
msgid "Presale end"
|
||||
msgstr "Fin preventa"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order email"
|
||||
msgid "Order creation"
|
||||
msgstr "Correo electrónico de pedido"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Pedido expirado"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
msgid "before"
|
||||
@@ -8571,6 +8600,26 @@ msgstr "Fecha relativa:"
|
||||
msgid "Not set"
|
||||
msgstr "No fijado"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr ""
|
||||
@@ -9885,7 +9934,7 @@ msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr ""
|
||||
"Por favor, transfira a cantidade a esta conta bancaria: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
#, fuzzy
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "Este valor se reemplazará en base a parámetros dinámicos."
|
||||
@@ -10618,6 +10667,25 @@ msgstr ""
|
||||
"período de ventas designado para este evento. Puede usarlo para describir "
|
||||
"otras opciones para obtener un boleto, por ejemplo una taquilla física."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
#, fuzzy
|
||||
msgid "Guidance text"
|
||||
@@ -14664,6 +14732,26 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "Payment term"
|
||||
msgstr "Fecha de pago"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "same as above"
|
||||
msgstr "(Lo mismo que arriba)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "different payment term in days"
|
||||
msgstr "Plazo de pago en días"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Plazo de pago en días"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "Prices including tax"
|
||||
@@ -21999,6 +22087,7 @@ msgid "Top recommendation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
#, fuzzy
|
||||
msgid "Experimental feature"
|
||||
@@ -24033,6 +24122,27 @@ msgstr ""
|
||||
"entrada. Si usted proporciona alimentos, un ejemplo podría ser preguntar a "
|
||||
"sus usuarios acerca de las necesidades dietéticas."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Crear una nueva pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Crear una nueva pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Borrar pregunta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
msgid "Create a new question"
|
||||
@@ -24053,6 +24163,28 @@ msgstr "Preguntar durante el registro"
|
||||
msgid "All personalized products"
|
||||
msgstr "Todos los productos"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
msgid "Per-order questions"
|
||||
msgstr "Incluir preguntas"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "La pregunta ha sido eliminada."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, fuzzy, python-format
|
||||
@@ -24693,6 +24825,14 @@ msgstr "Datos da factura"
|
||||
msgid "(optional)"
|
||||
msgstr "(opcional)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
msgid "Additional order information"
|
||||
msgstr "Información meta"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
#, fuzzy
|
||||
msgid "Delete order"
|
||||
@@ -24728,6 +24868,27 @@ msgstr "Sí, denegar orden"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Ampliar la condición de pago"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Este archivo ha sido cargado por un usuario y puede contener virus u otros "
|
||||
"contenidos maliciosos."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#, fuzzy
|
||||
msgid "UNSAFE"
|
||||
msgstr "INSEGURO"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "Non contestou"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, fuzzy, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -25030,30 +25191,11 @@ msgstr "Entrada: %(datetime)s"
|
||||
msgid "Ticket page"
|
||||
msgstr "Nombre del ticket"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "Non contestou"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, fuzzy
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "Esta pregunta se hará durante el registro."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Este archivo ha sido cargado por un usuario y puede contener virus u otros "
|
||||
"contenidos maliciosos."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, fuzzy
|
||||
msgid "UNSAFE"
|
||||
msgstr "INSEGURO"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -26544,6 +26686,16 @@ msgstr "Conectar un dispositivo"
|
||||
msgid "Hardware model"
|
||||
msgstr "Modelo del Hardware"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Inicio: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy
|
||||
msgid "Not yet initialized"
|
||||
@@ -30051,11 +30203,6 @@ msgstr "El orden de las categorías ha sido actualizado."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "La pregunta ha sido eliminada."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
#, fuzzy
|
||||
msgid "Street"
|
||||
msgstr "Dirección"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
#, fuzzy
|
||||
msgid "The requested question does not exist."
|
||||
@@ -30225,7 +30372,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -30710,7 +30857,8 @@ msgstr "Asunto: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "Su mensaje ha sido puesto en cola y será enviado a {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -33197,6 +33345,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
#, fuzzy
|
||||
msgid "-- Automatic --"
|
||||
@@ -33466,13 +33637,13 @@ msgid "Please select how you want to pay."
|
||||
msgstr "Por favor, seleccione como desexa pagar."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Nuestro intento de ejecutar su pago a través de PayPal ha fallado. Por "
|
||||
"favor, inténtelo de nuevo o póngase en contacto con nosotros."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
#, fuzzy
|
||||
@@ -36727,10 +36898,6 @@ msgstr[1] "Este ticket ya ha sido canjeado."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Non se facilitou o nome da persoa asistente"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "O prezo deste produto reduciuse debido a un desconto automático."
|
||||
@@ -37181,6 +37348,10 @@ msgstr "Valor total (sen impostos)"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -38999,6 +39170,14 @@ msgstr "Acceso de escritura"
|
||||
msgid "Kosovo"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Nuestro intento de ejecutar su pago a través de PayPal ha fallado. Por "
|
||||
#~ "favor, inténtelo de nuevo o póngase en contacto con nosotros."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Todas las acciones"
|
||||
@@ -39117,10 +39296,6 @@ msgstr ""
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Por favor, non utilice caracteres especiais nos nomes."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Estado"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Program times: date and time"
|
||||
#~ msgstr "Fecha y hora de impresión"
|
||||
@@ -39674,10 +39849,6 @@ msgstr ""
|
||||
#~ msgid "Badge design"
|
||||
#~ msgstr "Diseño de la insignia"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(Lo mismo que arriba)"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "Traducción en desarrollo"
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HE PRETIX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-02-09 21:00+0000\n"
|
||||
"Last-Translator: roi belotsercovsky <rbelotsercovsky@gmail.com>\n"
|
||||
"Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix/he/"
|
||||
@@ -86,6 +86,10 @@ msgstr "יוונית"
|
||||
msgid "Hebrew"
|
||||
msgstr "עברית"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "אינדונזית"
|
||||
@@ -418,6 +422,12 @@ msgstr "מדיה מחוברת לאירוע אחר"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "אינך יכול לשנות הזמנה זו."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot change this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "אינך יכול לשנות הזמנה זו."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -865,8 +875,7 @@ msgstr "מידע על האירוע או התאריך"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -883,7 +892,6 @@ msgstr "משתתף"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "דוא\"ל משתתף"
|
||||
@@ -1631,9 +1639,8 @@ msgid "Invoice sender:"
|
||||
msgstr "שולח החשבונית:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1645,8 +1652,7 @@ msgstr "כתובת"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "מיקוד"
|
||||
|
||||
@@ -1654,8 +1660,7 @@ msgstr "מיקוד"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "עיר"
|
||||
|
||||
@@ -1678,8 +1683,7 @@ msgstr "מחוז / מדינה"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1707,8 +1711,7 @@ msgstr "מקבל החשבונית:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2512,7 +2515,8 @@ msgstr "מצבי תשלום"
|
||||
msgid "Refund states"
|
||||
msgstr "מצבי החזר"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3021,14 +3025,12 @@ msgid ""
|
||||
msgstr "העלה תמונה חוקית. הקובץ שהעלית אינו תמונה או שהוא פגום."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "אם תשאיר שדה זה ריק, הכרטיס יהיה בתוקף מרגע הרכישה."
|
||||
msgid "Street"
|
||||
msgstr "רחוב"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "רחוב ומספר"
|
||||
msgid "State"
|
||||
msgstr "מדינה"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3065,6 +3067,16 @@ msgstr "אנא הזן ערוץ מכירות תקין."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "אנא הזן את הקוד של כרטיס המתנה שלך."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "אם תשאיר שדה זה ריק, הכרטיס יהיה בתוקף מרגע הרכישה."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "רחוב ומספר"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5605,6 +5617,10 @@ msgstr "הוריאציה שנבחרה אינה שייכת לפריט זה."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "הכמות צריכה להיות שווה או גדולה מאפס."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "עמדת הזמנה"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "מספר"
|
||||
@@ -5642,6 +5658,10 @@ msgstr "תאריך ושעה"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "קוד מדינה (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6278,10 +6298,6 @@ msgstr "כרטיס מתנה"
|
||||
msgid "Value"
|
||||
msgstr "ערך"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "עמדת הזמנה"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "מזהה עגלה (למשל session key)"
|
||||
@@ -7256,8 +7272,11 @@ msgid "The payment for this invoice has already been received."
|
||||
msgstr "התשלום עבור החשבונית הזו כבר התקבל."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This payment is already being processed and can not be canceled any more."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "התשלום הזה כבר בעיבוד ולא ניתן לבטלו יותר."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8059,6 +8078,18 @@ msgstr "תחילת מכירה מוקדמת"
|
||||
msgid "Presale end"
|
||||
msgstr "סיום מכירה מוקדמת"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order email"
|
||||
msgid "Order creation"
|
||||
msgstr "דוא\"ל הזמנה"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "תוקף ההזמנה פג"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "לפני"
|
||||
@@ -8083,6 +8114,26 @@ msgstr "שעה יחסית:"
|
||||
msgid "Not set"
|
||||
msgstr "לא הוגדר"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "אקראי (ברירת מחדל, מתאים לכל אפליקציות pretix)"
|
||||
@@ -9317,7 +9368,7 @@ msgstr "הסכום חויב מהכרטיס שלך."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "אנא העבר כסף לחשבון הבנק הבא: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "ערך זה יוחלף לפי פרמטרים דינמיים."
|
||||
|
||||
@@ -10006,6 +10057,25 @@ msgstr ""
|
||||
"נגמרה. תוכל להשתמש בו כדי להסביר אפשרויות נוספות לרכישת כרטיס, כמו קופות "
|
||||
"במקום."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "טקסט הנחיה"
|
||||
@@ -13835,6 +13905,28 @@ msgid ""
|
||||
msgstr ""
|
||||
"הגדרת שכרטיסי המתנה יהיו בתוקף למשך {} שנים בנוסף לשנה בה מונפק כרטיס המתנה."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "תאריך תשלום"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "מועד תשלום בימים"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "משך זמן התשלום בדקות"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "including all taxes"
|
||||
@@ -20568,6 +20660,7 @@ msgid "Top recommendation"
|
||||
msgstr "המלצה מובילה"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "פיצ'ר ניסיוני"
|
||||
@@ -22408,6 +22501,30 @@ msgstr ""
|
||||
"שאלות מאפשרות למשתתפים שלך למלא מידע נוסף על הכרטיסים שלהם. לדוגמה, אם יש "
|
||||
"הסעדה, ניתן לשאול על דרישות תזונתיות."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "יצירת שאלה חדשה"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "יצירת שאלה חדשה"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "מחק שאלה"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "יצירת שאלה חדשה"
|
||||
@@ -22424,6 +22541,30 @@ msgstr "לשאול בזמן הצ'ק-אין"
|
||||
msgid "All personalized products"
|
||||
msgstr "כל המוצרים המותאמים אישית"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "כלול שאלות"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "סדר השאלות שונה."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -22998,6 +23139,15 @@ msgstr "פרטי חשבונית"
|
||||
msgid "(optional)"
|
||||
msgstr "(אופציונלי)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "מידע נוסף"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "מחק הזמנה"
|
||||
@@ -23027,6 +23177,23 @@ msgstr "כן, דחה הזמנה"
|
||||
msgid "Extend payment term"
|
||||
msgstr "הארך מועד תשלום"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr "קובץ זה הועלה על ידי משתמש ועלול להכיל וירוסים או תוכן מסוכן אחר."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "לא בטוח"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "לא נענה"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -23311,25 +23478,10 @@ msgstr "בתוקף %(datetime_range)s"
|
||||
msgid "Ticket page"
|
||||
msgstr "דף כרטיס"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "לא נענה"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "שאלה זו תישאל במהלך הצ'ק-אין."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr "קובץ זה הועלה על ידי משתמש ועלול להכיל וירוסים או תוכן מסוכן אחר."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "לא בטוח"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -24664,6 +24816,16 @@ msgstr "חבר מכשיר"
|
||||
msgid "Hardware model"
|
||||
msgstr "מודל חומרה"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "התחלה: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "עדיין לא אותחל"
|
||||
@@ -27857,10 +28019,6 @@ msgstr "סדר הקטגוריות עודכן."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "לא נבחרו כל הפריטים."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "רחוב"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "השאלה המבוקשת אינה קיימת."
|
||||
@@ -28051,7 +28209,7 @@ msgstr ""
|
||||
#| "You should update the DNS settings of your domain to include this system "
|
||||
#| "in the SPF record."
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -28482,7 +28640,8 @@ msgstr "נושא: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "ההודעה שלך נכנסה לתור ותישלח אל {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -30674,6 +30833,29 @@ msgstr ""
|
||||
"הצע ללקוחותיך אפשרות לקנות עכשיו (עד מגבלה מסוימת) ולשלם במספר תשלומים או "
|
||||
"תוך 30 יום. אתה, כסוחר, מקבל את כספך מיד."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- אוטומטי --"
|
||||
@@ -30918,9 +31100,12 @@ msgstr "אנא בחר כיצד תרצה לשלם."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
msgstr "הניסיון לחייב את התשלום שלך דרך PayPal נכשל. נסה שוב או צור איתנו קשר."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -33883,10 +34068,6 @@ msgstr[2] "כרטיס זה שומש %(count)s פעמים."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "לא סופק שם משתתף"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "התמונה שהעלית קודם"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "מחיר מוצר זה הופחת בשל הנחה אוטומטית."
|
||||
@@ -34304,6 +34485,10 @@ msgstr "%(value)s ללא מע\"מ"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "הגדר מחיר ב-%(currency)s עבור %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "התמונה שהעלית קודם"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -36001,6 +36186,12 @@ msgstr "גישה לכתיבה"
|
||||
msgid "Kosovo"
|
||||
msgstr "קוסובו"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "הניסיון לחייב את התשלום שלך דרך PayPal נכשל. נסה שוב או צור איתנו קשר."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "כל הפעולות"
|
||||
|
||||
@@ -36145,9 +36336,6 @@ msgstr "קוסובו"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "אנא אל תשתמש בתווים מיוחדים בשמות."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "מדינה"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2025-03-04 16:16+0000\n"
|
||||
"Last-Translator: Martin Gross <gross@rami.io>\n"
|
||||
"Language-Team: Croatian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -92,6 +92,10 @@ msgstr "Grčki"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonezijski"
|
||||
@@ -444,6 +448,12 @@ msgstr "Medij povezan s drugim događajem"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Ne možete mijenjati ovu narudžbu."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot change this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Ne možete mijenjati ovu narudžbu."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -914,8 +924,7 @@ msgstr "Pošalji informacije za oporavak"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -934,7 +943,6 @@ msgstr "Ime sudionika"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "E-pošta sudionika"
|
||||
@@ -1726,9 +1734,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Pošiljatelj računa:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1740,8 +1747,7 @@ msgstr "Adresa"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Poštanski broj"
|
||||
|
||||
@@ -1749,8 +1755,7 @@ msgstr "Poštanski broj"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Grad"
|
||||
|
||||
@@ -1773,8 +1778,7 @@ msgstr "Država"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1802,8 +1806,7 @@ msgstr "Primatelj računa:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2617,7 +2620,8 @@ msgstr "Stanja plaćanja"
|
||||
msgid "Refund states"
|
||||
msgstr "Stanja povrata"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3144,14 +3148,12 @@ msgstr ""
|
||||
"bila oštećena slika."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Ako ovo ostavite prazno, ulaznica će biti valjana od trenutka kupnje."
|
||||
msgid "Street"
|
||||
msgstr "Ulica"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Ulica i broj"
|
||||
msgid "State"
|
||||
msgstr "Država"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3188,6 +3190,16 @@ msgstr "Molimo unesite valjani prodajni kanal."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Molimo unesite točan rezultat."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Ako ovo ostavite prazno, ulaznica će biti valjana od trenutka kupnje."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Ulica i broj"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5830,6 +5842,10 @@ msgstr "Odabrana varijacija ne pripada ovoj stavci."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Broj mora biti jednak ili veći od nule."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Pozicija narudžbe"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Broj"
|
||||
@@ -5867,6 +5883,10 @@ msgstr "Datum i vrijeme"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Kod države (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6504,10 +6524,6 @@ msgstr "Poklon bon"
|
||||
msgid "Value"
|
||||
msgstr "Vrijednost"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Pozicija narudžbe"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "ID košarice (npr. ključ sesije)"
|
||||
@@ -7463,7 +7479,7 @@ msgstr "Plaćanje za ovaj račun je već primljeno."
|
||||
#, fuzzy
|
||||
#| msgid "This payment can not be canceled at the moment."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Ovo plaćanje trenutno ne može biti otkazano."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8251,6 +8267,18 @@ msgstr "Početak pretprodaje"
|
||||
msgid "Presale end"
|
||||
msgstr "Kraj pretprodaje"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order details"
|
||||
msgid "Order creation"
|
||||
msgstr "Detalji narudžbe"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Narudžba istekla"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "prije"
|
||||
@@ -8275,6 +8303,26 @@ msgstr "Relativno vrijeme:"
|
||||
msgid "Not set"
|
||||
msgstr "Nije postavljeno"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Nasumično (zadano, radi sa svim pretix aplikacijama)"
|
||||
@@ -9458,7 +9506,7 @@ msgstr "Iznos je naplaćen na vašu karticu."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "Molimo prenesite novac na ovaj bankovni račun: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "Ova vrijednost bit će zamijenjena na temelju dinamičkih parametara."
|
||||
|
||||
@@ -10081,6 +10129,25 @@ msgid ""
|
||||
"to get a ticket, such as a box office."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Tekst upute"
|
||||
@@ -13366,6 +13433,28 @@ msgid ""
|
||||
"card is issued in."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Datum plaćanja"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Rok plaćanja u danima"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Rok plaćanja u minutama"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "including all taxes"
|
||||
@@ -19698,6 +19787,7 @@ msgid "Top recommendation"
|
||||
msgstr "Top preporuka"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "Eksperimentalna značajka"
|
||||
@@ -21378,6 +21468,30 @@ msgid ""
|
||||
"dietary requirements."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Kreiraj novo pitanje"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Kreiraj novo pitanje"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Izbriši pitanje"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "Kreiraj novo pitanje"
|
||||
@@ -21394,6 +21508,30 @@ msgstr "Pitaj tijekom check-ina"
|
||||
msgid "All personalized products"
|
||||
msgstr "Svi personalizirani proizvodi"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Uključi pitanja"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "Pitanje je ponovno naručeno."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -21923,6 +22061,15 @@ msgstr "Informacije o računu"
|
||||
msgid "(optional)"
|
||||
msgstr "(neobavezno)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Dodatne informacije"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "Izbriši narudžbu"
|
||||
@@ -21950,6 +22097,23 @@ msgstr "Da, odbij narudžbu"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Produži rok plaćanja"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "NESIGURNO"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "nije odgovoreno"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -22226,25 +22390,10 @@ msgstr "Vrijedi %(datetime_range)s"
|
||||
msgid "Ticket page"
|
||||
msgstr "Stranica ulaznice"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "nije odgovoreno"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "Ovo pitanje će biti postavljeno tijekom prijave."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "NESIGURNO"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -23505,6 +23654,16 @@ msgstr "Poveži uređaj"
|
||||
msgid "Hardware model"
|
||||
msgstr "Model hardvera"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Početak: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Još nije inicijalizirano"
|
||||
@@ -26475,10 +26634,6 @@ msgstr "Redoslijed kategorija je ažuriran."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "Nisu svi objekti odabrani."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Ulica"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "Traženo pitanje ne postoji."
|
||||
@@ -26631,7 +26786,7 @@ msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -27029,7 +27184,8 @@ msgstr "Predmet: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "Vaša poruka je stavljena u red i bit će poslana na {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -29179,6 +29335,29 @@ msgid ""
|
||||
"getting your money right away."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Automatski --"
|
||||
@@ -29420,11 +29599,12 @@ msgstr "Molimo odaberite način plaćanja."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Naš pokušaj izvršenja vašeg plaćanja putem PayPala nije uspio. Molimo "
|
||||
"pokušajte ponovno ili nas kontaktirajte."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -32342,10 +32522,6 @@ msgstr[1] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Nije navedeno ime sudionika"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Slika koju ste prethodno prenijeli"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "Cijena ovog proizvoda smanjena je zbog automatskog popusta."
|
||||
@@ -32765,6 +32941,10 @@ msgstr "%(value)s bez poreza"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Postavite cijenu u %(currency)s za %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Slika koju ste prethodno prenijeli"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -34470,6 +34650,13 @@ msgstr "Pravo pisanja"
|
||||
msgid "Kosovo"
|
||||
msgstr "Kosovo"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Naš pokušaj izvršenja vašeg plaćanja putem PayPala nije uspio. Molimo "
|
||||
#~ "pokušajte ponovno ili nas kontaktirajte."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Sve radnje"
|
||||
|
||||
@@ -34543,9 +34730,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Molimo nemojte koristiti posebne znakove u imenima."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Država"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"PO-Revision-Date: 2026-07-23 15:35+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2026-08-01 21:00+0000\n"
|
||||
"Last-Translator: szurofkamarciidfbe08444ef04788 <szurofkamarcii@gmail.com>\n"
|
||||
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"hu/>\n"
|
||||
@@ -91,6 +91,10 @@ msgstr "görög"
|
||||
msgid "Hebrew"
|
||||
msgstr "Héber"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr "indonéz"
|
||||
@@ -421,6 +425,12 @@ msgstr "A médium rendezvényhez csatlakoztatása megtörtént"
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Nem cserélhet adathordozót adathordozóra."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "Product does not support medium exchange."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "A termék nem támogatja az adathordozó-cserét."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -874,8 +884,7 @@ msgstr "Esemény vagy időpont adatai"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -892,7 +901,6 @@ msgstr "Résztvevő"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "Résztvevő e-mail címe"
|
||||
@@ -1377,10 +1385,8 @@ msgid "Membership type"
|
||||
msgstr "Tagságtípus"
|
||||
|
||||
#: pretix/base/exporters/customers.py
|
||||
#, fuzzy
|
||||
#| msgid "Purchase time"
|
||||
msgid "Purchase ticket"
|
||||
msgstr "Vásárlás időpontja"
|
||||
msgstr "Jegy vásárlása"
|
||||
|
||||
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/exporters/waitinglist.py pretix/base/forms/questions.py
|
||||
@@ -1397,10 +1403,8 @@ msgid "Start date"
|
||||
msgstr "Kezdő dátum"
|
||||
|
||||
#: pretix/base/exporters/customers.py
|
||||
#, fuzzy
|
||||
#| msgid "Start time from"
|
||||
msgid "Start time"
|
||||
msgstr "Kezdési időpont ettől"
|
||||
msgstr "Kezdési időpont"
|
||||
|
||||
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/exporters/waitinglist.py pretix/base/models/memberships.py
|
||||
@@ -1413,10 +1417,8 @@ msgid "End date"
|
||||
msgstr "Záró dátum"
|
||||
|
||||
#: pretix/base/exporters/customers.py
|
||||
#, fuzzy
|
||||
#| msgid "End: %(time)s"
|
||||
msgid "End time"
|
||||
msgstr "Vége: %(time)s"
|
||||
msgstr "Záró időpont"
|
||||
|
||||
#: pretix/base/exporters/dekodi.py pretix/base/exporters/invoices.py
|
||||
msgctxt "export_category"
|
||||
@@ -1647,9 +1649,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Számla kibocsátója:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1661,8 +1662,7 @@ msgstr "Cím"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Irányítószám"
|
||||
|
||||
@@ -1670,8 +1670,7 @@ msgstr "Irányítószám"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Település"
|
||||
|
||||
@@ -1694,8 +1693,7 @@ msgstr "Állam/tartomány"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1723,8 +1721,7 @@ msgstr "Számla címzettje:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2539,7 +2536,8 @@ msgstr "Fizetési állapotok"
|
||||
msgid "Refund states"
|
||||
msgstr "Visszatérítési állapotok"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3063,14 +3061,15 @@ msgstr ""
|
||||
"volt."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Ha üresen hagyja, a jegy a vásárlás időpontjától kezdve lesz érvényes."
|
||||
msgid "Street"
|
||||
msgstr "Utca"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Utca és házszám"
|
||||
#, fuzzy
|
||||
#| msgctxt "address"
|
||||
#| msgid "State"
|
||||
msgid "State"
|
||||
msgstr "Állam/tartomány"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, python-brace-format
|
||||
@@ -3102,6 +3101,16 @@ msgstr "Kérjük, adjon meg egy {min}-nél nem korábbi dátumot és időpontot.
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Kérjük, adjon meg egy {max}-nál nem későbbi dátumot és időpontot."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Ha üresen hagyja, a jegy a vásárlás időpontjától kezdve lesz érvényes."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Utca és házszám"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -4641,10 +4650,6 @@ msgid "This event is remote or partially remote."
|
||||
msgstr "Ez az rendezvény távoli vagy részben távoli."
|
||||
|
||||
#: pretix/base/models/event.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This will be used to let users know if the event is in a different "
|
||||
#| "timezone and let’s us calculate users’ local times."
|
||||
msgid ""
|
||||
"This will be used to let users know if the event is in a different timezone, "
|
||||
"and to let us calculate the local time of a user."
|
||||
@@ -5728,6 +5733,10 @@ msgstr "A kiválasztott változat nem ehhez a termékhez tartozik."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "A darabszámnak nullával egyenlőnek vagy annál nagyobbnak kell lennie."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Rendelési tétel"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Szám"
|
||||
@@ -5765,6 +5774,10 @@ msgstr "Dátum és idő"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Országkód (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6425,10 +6438,6 @@ msgstr "Ajándékutalvány"
|
||||
msgid "Value"
|
||||
msgstr "Érték"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Rendelési tétel"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "Kosárazonosító (pl. munkamenet-kulcs)"
|
||||
@@ -7453,8 +7462,11 @@ msgid "The payment for this invoice has already been received."
|
||||
msgstr "A számla már ki lett fizetve."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This payment is already being processed and can not be canceled any more."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Ez a fizetés már feldolgozás alatt áll, és többé nem törölhető."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -7578,15 +7590,11 @@ msgid "This gift card was used in the meantime. Please try again."
|
||||
msgstr "Ezt az ajándékkártyát időközben felhasználták. Kérjük, próbálja újra."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "This payment provider does not exist or the respective plugin is disabled."
|
||||
msgid ""
|
||||
"This payment provider exists for historical purposes only and is no longer "
|
||||
"usable."
|
||||
msgstr ""
|
||||
"Ez a fizetési szolgáltató nem létezik, vagy a hozzá tartozó bővítmény le van "
|
||||
"tiltva."
|
||||
"Ez a fizetési szolgáltató egy korábbi funkció volt, már nem használható."
|
||||
|
||||
#: pretix/base/pdf.py
|
||||
msgid "Ticket code (barcode content)"
|
||||
@@ -8231,6 +8239,18 @@ msgstr "Elővétel kezdete"
|
||||
msgid "Presale end"
|
||||
msgstr "Elővétel vége"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order email"
|
||||
msgid "Order creation"
|
||||
msgstr "Rendelés e-mail címe"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Rendelés lejárt"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
msgid "before"
|
||||
msgstr "előtt"
|
||||
@@ -8255,6 +8275,26 @@ msgstr "Relatív idő:"
|
||||
msgid "Not set"
|
||||
msgstr "Nincs beállítva"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Véletlenszerű (alapértelmezett, minden pretix alkalmazással működik)"
|
||||
@@ -9533,7 +9573,7 @@ msgstr "Az összeget terheltük a kártyájára."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "Kérjük, utalja el az összeget erre a bankszámlára: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "Ez az érték dinamikus paraméterek alapján kerül helyettesítésre."
|
||||
|
||||
@@ -10242,6 +10282,25 @@ msgstr ""
|
||||
"értékesítési időszaka lejárt. Használhatja arra, hogy leírja a jegyszerzés "
|
||||
"egyéb lehetőségeit, például egy jegypénztárat."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Útmutató szöveg"
|
||||
@@ -14199,6 +14258,28 @@ msgstr ""
|
||||
"Úgy állította be, hogy az ajándékutalványok a kiállítás évén felül még {} "
|
||||
"évig érvényesek legyenek."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Fizetés dátuma"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "same as above"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Fizetési határidő napokban"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Fizetési határidő percekben"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
msgid "Prices including tax"
|
||||
msgstr "Adót tartalmazó árak"
|
||||
@@ -21109,6 +21190,7 @@ msgid "Top recommendation"
|
||||
msgstr "Legjobban ajánlott"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "Kísérleti funkció"
|
||||
@@ -23012,6 +23094,30 @@ msgstr ""
|
||||
"jegyükkel kapcsolatban. Ha étkezést biztosít, egy példa lehet, ha megkérdezi "
|
||||
"a felhasználóit az étkezési igényeikről."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Új kérdés létrehozása"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Új kérdés létrehozása"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Kérdés törlése"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "Új kérdés létrehozása"
|
||||
@@ -23028,6 +23134,30 @@ msgstr "Kérdezze meg beléptetéskor"
|
||||
msgid "All personalized products"
|
||||
msgstr "Minden személyre szabott termék"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Kérdések belefoglalása"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "A kiválasztott \"{seat}\" ülés nem elérhető."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -23627,6 +23757,15 @@ msgstr "Számlainformáció"
|
||||
msgid "(optional)"
|
||||
msgstr "(nem kötelező megadni)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "További információk"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "Rendelés törlése"
|
||||
@@ -23656,6 +23795,25 @@ msgstr "Igen, rendelés elutasítása"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Fizetési határidő meghosszabbítása"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Ezt a fájlt egy felhasználó töltötte fel, ezért vírusokat vagy más "
|
||||
"rosszindulatú tartalmat tartalmazhat."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "NEM BIZTONSÁGOS"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "nincs megválaszolva"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -23935,27 +24093,10 @@ msgstr "Érvényes %(datetime_range)s"
|
||||
msgid "Ticket page"
|
||||
msgstr "Jegyoldal"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "nincs megválaszolva"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "Ez a kérdés a beléptetés során kerül feltevésre."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"Ezt a fájlt egy felhasználó töltötte fel, ezért vírusokat vagy más "
|
||||
"rosszindulatú tartalmat tartalmazhat."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "NEM BIZTONSÁGOS"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -25318,6 +25459,16 @@ msgstr "Eszköz csatlakoztatása"
|
||||
msgid "Hardware model"
|
||||
msgstr "Hardvermodell"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Kezdés: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Még nincs inicializálva"
|
||||
@@ -28573,10 +28724,6 @@ msgstr "A kategóriák sorrendje frissítve lett."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "A kiválasztott \"{seat}\" ülés nem elérhető."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Utca"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "A kért kérdés nem létezik."
|
||||
@@ -28772,7 +28919,7 @@ msgstr ""
|
||||
#| "You should update the DNS settings of your domain to include this system "
|
||||
#| "in the SPF record."
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -29231,7 +29378,8 @@ msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr ""
|
||||
"Az üzenete a küldési sorba került, és el lesz küldve a következő címre: {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -31518,6 +31666,29 @@ msgstr ""
|
||||
"összeghatárig), és több részletben vagy 30 napon belül fizessenek. Ön, mint "
|
||||
"kereskedő, azonnal megkapja a pénzét."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Automatikus --"
|
||||
@@ -31778,11 +31949,12 @@ msgstr "Kérlek válassz fizetésőeszközt."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"A fizetés PayPalon keresztüli végrehajtására tett kísérletünk sikertelen "
|
||||
"volt. Kérjük, próbálja újra, vagy vegye fel velünk a kapcsolatot."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -34832,10 +35004,6 @@ msgstr[1] "Ez a jegy fel lett már használva ennyiszer: %(count)s."
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Nincs megadva látogató név"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "A korábban feltöltött kép"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "Ennek a terméknek az ára egy automatikus kedvezmény miatt csökkent."
|
||||
@@ -35262,6 +35430,10 @@ msgstr "nettó %(value)s"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Ár beállítása %(currency)s pénznemben ehhez: %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "A korábban feltöltött kép"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -37013,6 +37185,13 @@ msgstr "Írási jog"
|
||||
msgid "Kosovo"
|
||||
msgstr "Koszovó"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "A fizetés PayPalon keresztüli végrehajtására tett kísérletünk sikertelen "
|
||||
#~ "volt. Kérjük, próbálja újra, vagy vegye fel velünk a kapcsolatot."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Összes művelet"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
|
||||
"POT-Creation-Date: 2026-08-24 15:35+0000\n"
|
||||
"PO-Revision-Date: 2023-11-18 15:00+0000\n"
|
||||
"Last-Translator: liimee <git.taaa@fedora.email>\n"
|
||||
"Language-Team: Indonesian <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -91,6 +91,10 @@ msgstr "Yunani"
|
||||
msgid "Hebrew"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
@@ -450,6 +454,12 @@ msgstr ""
|
||||
msgid "You cannot exchange a medium for a medium."
|
||||
msgstr "Anda tidak dapat mengubah urutan ini."
|
||||
|
||||
#: pretix/api/views/checkin.py
|
||||
#, fuzzy
|
||||
#| msgid "You cannot change this order."
|
||||
msgid "You cannot simulate a medium exchange."
|
||||
msgstr "Anda tidak dapat mengubah urutan ini."
|
||||
|
||||
#: pretix/api/views/oauth.py pretix/control/logdisplay.py
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@@ -918,8 +928,7 @@ msgstr "Kirim informasi pemulihan"
|
||||
#: pretix/control/forms/organizer.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/views/item.py pretix/plugins/badges/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/badges/exporters.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/ticketoutputpdf/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_change_form.html
|
||||
@@ -938,7 +947,6 @@ msgstr "Nama peserta"
|
||||
#: pretix/base/forms/questions.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/base/pdf.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "Attendee email"
|
||||
msgstr "email peserta"
|
||||
@@ -1730,9 +1738,8 @@ msgid "Invoice sender:"
|
||||
msgstr "Pengirim faktur:"
|
||||
|
||||
#: pretix/base/exporters/invoices.py pretix/base/exporters/orderlist.py
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/base/modelimport_orders.py pretix/base/models/customers.py
|
||||
#: pretix/base/models/orders.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
@@ -1744,8 +1751,7 @@ msgstr "Alamat"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "ZIP code"
|
||||
msgstr "Kode Pos"
|
||||
|
||||
@@ -1753,8 +1759,7 @@ msgstr "Kode Pos"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/base/models/customers.py pretix/base/models/orders.py
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
msgid "City"
|
||||
msgstr "Kota"
|
||||
|
||||
@@ -1777,8 +1782,7 @@ msgstr "Negara"
|
||||
#: pretix/base/settings.py pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Country"
|
||||
@@ -1806,8 +1810,7 @@ msgstr "Penerima tagihan:"
|
||||
#: pretix/base/forms/questions.py pretix/base/modelimport_orders.py
|
||||
#: pretix/control/forms/filter.py
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/views/item.py pretix/plugins/checkinlists/exporters.py
|
||||
#: pretix/plugins/reports/exporters.py
|
||||
#: pretix/plugins/checkinlists/exporters.py pretix/plugins/reports/exporters.py
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html
|
||||
msgid "Company"
|
||||
@@ -2626,7 +2629,8 @@ msgstr "Status pembayaran"
|
||||
msgid "Refund states"
|
||||
msgstr "Status pengembalian dana"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/orders.py
|
||||
#: pretix/base/exporters/orderlist.py pretix/base/models/items.py
|
||||
#: pretix/base/models/orders.py
|
||||
#: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html
|
||||
@@ -3156,14 +3160,12 @@ msgstr ""
|
||||
"rusak."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Jika kamu mengosongkannya, tiket akan berlaku mulai saat pembelian."
|
||||
msgid "Street"
|
||||
msgstr "Jalan"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Jalan dan nomor"
|
||||
msgid "State"
|
||||
msgstr "Negara"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
#, fuzzy, python-brace-format
|
||||
@@ -3200,6 +3202,16 @@ msgstr "Silakan masukkan saluran penjualan yang valid."
|
||||
msgid "Please enter a date and time no later than {max}."
|
||||
msgstr "Silakan masukkan hasil yang benar."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"If you keep this empty, the ticket will be valid starting at the time of "
|
||||
"purchase."
|
||||
msgstr "Jika kamu mengosongkannya, tiket akan berlaku mulai saat pembelian."
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid "Street and Number"
|
||||
msgstr "Jalan dan nomor"
|
||||
|
||||
#: pretix/base/forms/questions.py
|
||||
msgid ""
|
||||
"Optional, but depending on the country you reside in we might need to charge "
|
||||
@@ -5890,6 +5902,10 @@ msgstr "Variasi yang dipilih bukan milik item ini."
|
||||
msgid "The count needs to be equal to or greater than zero."
|
||||
msgstr "Hitungannya harus sama dengan atau lebih besar dari nol."
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Posisi pesanan"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Number"
|
||||
msgstr "Nomor"
|
||||
@@ -5927,6 +5943,10 @@ msgstr "Tanggal dan waktu"
|
||||
msgid "Country code (ISO 3166-1 alpha-2)"
|
||||
msgstr "Kode negara (ISO 3166-1 alpha-2)"
|
||||
|
||||
#: pretix/base/models/items.py
|
||||
msgid "Asked on"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py pretix/base/models/organizer.py
|
||||
msgid ""
|
||||
"The identifier may only contain letters, numbers, dots, dashes, and "
|
||||
@@ -6611,10 +6631,6 @@ msgstr "Kartu ucapan"
|
||||
msgid "Value"
|
||||
msgstr "Nilai"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Order position"
|
||||
msgstr "Posisi pesanan"
|
||||
|
||||
#: pretix/base/models/orders.py
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "ID Keranjang (misalnya kunci sesi)"
|
||||
@@ -7650,7 +7666,7 @@ msgstr "Pembayaran untuk faktur ini telah diterima."
|
||||
#, fuzzy
|
||||
#| msgid "This payment can not be canceled at the moment."
|
||||
msgid ""
|
||||
"This payment is already being processed and can not be canceled any more."
|
||||
"This payment is already being processed and cannot be canceled any more."
|
||||
msgstr "Pembayaran ini tidak dapat dibatalkan saat ini."
|
||||
|
||||
#: pretix/base/payment.py
|
||||
@@ -8458,6 +8474,18 @@ msgstr "Awal pra-penjualan"
|
||||
msgid "Presale end"
|
||||
msgstr "Akhir pra-penjualan"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order details"
|
||||
msgid "Order creation"
|
||||
msgstr "Detail pesanan"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "Order expired"
|
||||
msgid "Order expiry"
|
||||
msgstr "Pesanan sudah habis masa berlakunya"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, fuzzy
|
||||
#| msgid "days before"
|
||||
@@ -8484,6 +8512,26 @@ msgstr "Waktu relatif:"
|
||||
msgid "Not set"
|
||||
msgstr "Tidak diatur"
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative date cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"before\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/reldate.py
|
||||
#, python-brace-format
|
||||
msgid "A relative time cannot be expressed as \"after\" for \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/secrets.py
|
||||
msgid "Random (default, works with all pretix apps)"
|
||||
msgstr "Acak (default, berfungsi dengan semua aplikasi pretix)"
|
||||
@@ -9786,7 +9834,7 @@ msgstr "Jumlah tersebut telah dibebankan ke kartu kamu."
|
||||
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
|
||||
msgstr "Silakan transfer uang ke rekening bank ini: 9999-9999-9999-9999"
|
||||
|
||||
#: pretix/base/services/placeholders.py pretix/control/views/organizer.py
|
||||
#: pretix/base/services/placeholders.py
|
||||
msgid "This value will be replaced based on dynamic parameters."
|
||||
msgstr "Nilai ini akan diganti berdasarkan parameter dinamis."
|
||||
|
||||
@@ -10510,6 +10558,25 @@ msgstr ""
|
||||
"yang ditentukan untuk acara ini berakhir. Kamu dapat menggunakannya untuk "
|
||||
"menjelaskan pilihan lain untuk mendapatkan tiket, seperti box office."
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "No dates match your criteria."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid "Text for empty date results"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgctxt "subevents"
|
||||
msgid ""
|
||||
"This text will be shown if the calendar or list of dates is empty, e.g. "
|
||||
"because a month does not contain any dates or a filter chosen by the user "
|
||||
"does not find any results. You can use this to advertise ways to get in "
|
||||
"touch with you to arrange further dates. We do not recommend more than one "
|
||||
"or two sentences."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py
|
||||
msgid "Guidance text"
|
||||
msgstr "Teks panduan"
|
||||
@@ -14548,6 +14615,30 @@ msgstr ""
|
||||
"Anda telah mengonfigurasi kartu hadiah agar berlaku {} tahun ditambah tahun "
|
||||
"penerbitan kartu hadiah."
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment date"
|
||||
msgid "Payment term"
|
||||
msgstr "Tanggal pembayaran"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "(Same as above)"
|
||||
msgid "same as above"
|
||||
msgstr "(Sama seperti di atas)"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in days"
|
||||
msgid "different payment term in days"
|
||||
msgstr "Jangka waktu pembayaran dalam beberapa hari"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Payment term in minutes"
|
||||
msgid "different payment term in minutes"
|
||||
msgstr "Jangka waktu pembayaran dalam hitungan menit"
|
||||
|
||||
#: pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "including all taxes"
|
||||
@@ -21558,6 +21649,7 @@ msgid "Top recommendation"
|
||||
msgstr "Rekomendasi teratas"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/plugins.html
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#: pretix/control/templates/pretixcontrol/organizers/plugins.html
|
||||
msgid "Experimental feature"
|
||||
msgstr "Fitur eksperimental"
|
||||
@@ -23513,6 +23605,30 @@ msgstr ""
|
||||
"mereka. Jika kamu menyediakan makanan, salah satu contohnya adalah "
|
||||
"menanyakan kepada pengguna kamu tentang persyaratan diet."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new per-ticket question"
|
||||
msgstr "Buat pertanyaan baru"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Create a new question"
|
||||
msgid "Create a new order-level question"
|
||||
msgstr "Buat pertanyaan baru"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Delete question"
|
||||
msgid "Per-ticket questions"
|
||||
msgstr "Hapus pertanyaan"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"These questions are asked for every ticket, so possibly multiple times in "
|
||||
"the same order."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid "Create a new question"
|
||||
msgstr "Buat pertanyaan baru"
|
||||
@@ -23529,6 +23645,30 @@ msgstr "Tanyakan saat check-in"
|
||||
msgid "All personalized products"
|
||||
msgstr "Semua produk yang dipersonalisasi"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "Include questions"
|
||||
msgid "Per-order questions"
|
||||
msgstr "Sertakan pertanyaan"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"This functionality is in active development and expected to change "
|
||||
"significantly over the coming months."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
msgid ""
|
||||
"Per-order questions are currently not supported and will not be displayed in "
|
||||
"pretixPOS."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html
|
||||
#, fuzzy
|
||||
#| msgid "The question has been reordered."
|
||||
msgid "These questions are asked once per order."
|
||||
msgstr "Pertanyaannya telah disusun ulang."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/quota.html
|
||||
#: pretix/control/templates/pretixcontrol/items/quota_edit.html
|
||||
#, python-format
|
||||
@@ -24130,6 +24270,15 @@ msgstr "Informasi faktur"
|
||||
msgid "(optional)"
|
||||
msgstr "(opsional)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/change_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html
|
||||
#: pretix/presale/templates/pretixpresale/event/order_modify.html
|
||||
#, fuzzy
|
||||
#| msgid "Additional information"
|
||||
msgid "Additional order information"
|
||||
msgstr "Informasi tambahan"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/delete.html
|
||||
msgid "Delete order"
|
||||
msgstr "Hapus pesanan"
|
||||
@@ -24160,6 +24309,25 @@ msgstr "Ya, tolak pesanan"
|
||||
msgid "Extend payment term"
|
||||
msgstr "Perpanjang jangka waktu pembayaran"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"File ini telah diunggah oleh pengguna dan mungkin berisi virus atau konten "
|
||||
"berbahaya lainnya."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "TIDAK AMAN"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/fragment_question_answer.html
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "not answered"
|
||||
msgstr "tidak dijawab"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#, python-format
|
||||
msgid "Order details: %(code)s"
|
||||
@@ -24456,27 +24624,10 @@ msgstr "%(datetime_range)s yang valid"
|
||||
msgid "Ticket page"
|
||||
msgstr "Halaman tiket"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "not answered"
|
||||
msgstr "tidak dijawab"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "This question will be asked during check-in."
|
||||
msgstr "Pertanyaan ini akan ditanyakan saat check-in."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid ""
|
||||
"This file has been uploaded by a user and could contain viruses or other "
|
||||
"malicious content."
|
||||
msgstr ""
|
||||
"File ini telah diunggah oleh pengguna dan mungkin berisi virus atau konten "
|
||||
"berbahaya lainnya."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
msgid "UNSAFE"
|
||||
msgstr "TIDAK AMAN"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html
|
||||
#: pretix/control/templates/pretixcontrol/orders/overview.html
|
||||
#: pretix/plugins/reports/accountingreport.py
|
||||
@@ -25879,6 +26030,16 @@ msgstr "Hubungkan perangkat"
|
||||
msgid "Hardware model"
|
||||
msgstr "Model perangkat keras"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Begin: %(time)s"
|
||||
msgid "Last seen: %(time)s"
|
||||
msgstr "Mulai: %(time)s"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "No recent contact"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/devices.html
|
||||
msgid "Not yet initialized"
|
||||
msgstr "Belum diinisialisasi"
|
||||
@@ -29239,10 +29400,6 @@ msgstr "Urutan kategori telah diperbarui."
|
||||
msgid "Not all objects have been selected."
|
||||
msgstr "Tidak semua objek telah dipilih."
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "Street"
|
||||
msgstr "Jalan"
|
||||
|
||||
#: pretix/control/views/item.py
|
||||
msgid "The requested question does not exist."
|
||||
msgstr "Pertanyaan yang diminta tidak ada."
|
||||
@@ -29442,7 +29599,7 @@ msgstr ""
|
||||
#| "You should update the DNS settings of your domain to include this system "
|
||||
#| "in the SPF record."
|
||||
msgid ""
|
||||
"We did not find DMARC record for your domain. This means that there is a "
|
||||
"We did not find a DMARC record for your domain. This means that there is a "
|
||||
"very high chance most of the emails will be rejected or marked as spam. You "
|
||||
"should update the DNS settings of your domain."
|
||||
msgstr ""
|
||||
@@ -29901,7 +30058,8 @@ msgstr "Subjek: {subject}"
|
||||
msgid "Your message has been queued and will be sent to {}."
|
||||
msgstr "Pesan kamu telah dimasukkan ke dalam antrean dan akan dikirim ke {}."
|
||||
|
||||
#: pretix/control/views/orders.py pretix/presale/views/order.py
|
||||
#: pretix/control/views/orders.py pretix/presale/views/cart.py
|
||||
#: pretix/presale/views/order.py
|
||||
msgid ""
|
||||
"This link is no longer valid. Please go back, refresh the page, and try "
|
||||
"again."
|
||||
@@ -32302,6 +32460,29 @@ msgstr ""
|
||||
"batas tertentu) dan membayar dalam beberapa kali angsuran atau dalam waktu "
|
||||
"30 hari. Kamu, sebagai pedagang, segera mendapatkan uang Anda."
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Allow further payments during compliance hold"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"PayPals fraud prevention might block processing of individual payments for a "
|
||||
"considerable amount of time. The payment is marked as \"pending\" during "
|
||||
"this time window. You can allow your customers to start another payment "
|
||||
"attempts during that window. This might result in them being charged twice "
|
||||
"if the original payment is approved."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "Timeout further payment attempts"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid ""
|
||||
"Time duration in minutes after which another payment attempt is possible, "
|
||||
"while the last payment is still under investigation."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/payment.py
|
||||
msgid "-- Automatic --"
|
||||
msgstr "-- Otomatis --"
|
||||
@@ -32550,16 +32731,13 @@ msgid "Please select how you want to pay."
|
||||
msgstr "Silakan pilih cara pembayaran yang kamu inginkan."
|
||||
|
||||
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Our attempt to execute your Payment via PayPal has failed. Please try "
|
||||
#| "again or contact us."
|
||||
msgid ""
|
||||
"Our attempt to execute your payment via PayPal has failed. Please try again "
|
||||
"or contact us."
|
||||
"Your payment is being processed by PayPal. This takes longer than usual. You "
|
||||
"can wait until PayPal acknowledges the payment or you can try paying again "
|
||||
"with this or another payment method. This might result in you being charged "
|
||||
"twice in case PayPal allows your initial payment attempt. Please contact us "
|
||||
"to resolve this case."
|
||||
msgstr ""
|
||||
"Upaya kami untuk mengeksekusi Pembayaran kamu melalui PayPal telah gagal. "
|
||||
"Silakan coba lagi atau hubungi kami."
|
||||
|
||||
#: pretix/plugins/paypal2/views.py
|
||||
msgid ""
|
||||
@@ -35639,10 +35817,6 @@ msgstr[0] ""
|
||||
msgid "No attendee name provided"
|
||||
msgstr "Tidak ada nama peserta yang disediakan"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Gambar yang kamu unggah sebelumnya"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
|
||||
msgid "The price of this product was reduced because of an automatic discount."
|
||||
msgstr "Harga produk ini diturunkan karena diskon otomatis."
|
||||
@@ -36083,6 +36257,10 @@ msgstr "%(value)s tanpa pajak"
|
||||
msgid "Set price in %(currency)s for %(item)s"
|
||||
msgstr "Tetapkan harga dalam %(currency)s untuk %(item)s"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
|
||||
msgid "The image you previously uploaded"
|
||||
msgstr "Gambar yang kamu unggah sebelumnya"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html
|
||||
#, python-format
|
||||
msgid "%(num)s currently available"
|
||||
@@ -37931,6 +38109,17 @@ msgstr "Akses tulis"
|
||||
msgid "Kosovo"
|
||||
msgstr "Kosovo"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid ""
|
||||
#~| "Our attempt to execute your Payment via PayPal has failed. Please try "
|
||||
#~| "again or contact us."
|
||||
#~ msgid ""
|
||||
#~ "Our attempt to execute your payment via PayPal has failed. Please try "
|
||||
#~ "again or contact us."
|
||||
#~ msgstr ""
|
||||
#~ "Upaya kami untuk mengeksekusi Pembayaran kamu melalui PayPal telah gagal. "
|
||||
#~ "Silakan coba lagi atau hubungi kami."
|
||||
|
||||
#~ msgid "All actions"
|
||||
#~ msgstr "Semua tindakan"
|
||||
|
||||
@@ -38049,9 +38238,6 @@ msgstr "Kosovo"
|
||||
#~ msgid "Please do not use special characters in names."
|
||||
#~ msgstr "Harap jangan menggunakan karakter khusus dalam nama."
|
||||
|
||||
#~ msgid "State"
|
||||
#~ msgstr "Negara"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Printing date and time"
|
||||
#~ msgid "Program times: date and time"
|
||||
@@ -38739,8 +38925,5 @@ msgstr "Kosovo"
|
||||
#~ msgid "Badge design"
|
||||
#~ msgstr "Desain lencana"
|
||||
|
||||
#~ msgid "(Same as above)"
|
||||
#~ msgstr "(Sama seperti di atas)"
|
||||
|
||||
#~ msgid "Translation in development"
|
||||
#~ msgstr "Terjemahan dalam pengembangan"
|
||||
|
||||
+7326
-3330
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user