diff --git a/src/pretix/base/pdf.py b/src/pretix/base/pdf.py index 20cb190c7f..995b9ec0f7 100644 --- a/src/pretix/base/pdf.py +++ b/src/pretix/base/pdf.py @@ -34,6 +34,7 @@ from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfgen.canvas import Canvas from reportlab.platypus import Paragraph +from pretix.base.i18n import language from pretix.base.invoice import ThumbnailingImageReader from pretix.base.models import Order, OrderPosition from pretix.base.settings import PERSON_NAME_SCHEMES @@ -407,7 +408,11 @@ class Renderer: def _get_ev(self, op, order): return op.subevent or order.event - def _get_text_content(self, op: OrderPosition, order: Order, o: dict): + def _get_text_content(self, op: OrderPosition, order: Order, o: dict, inner=False): + if o.get('locale', None) and not inner: + with language(o['locale']): + return self._get_text_content(op, order, o, True) + ev = self._get_ev(op, order) if not o['content']: return '(error)' diff --git a/src/pretix/control/templates/pretixcontrol/pdf/index.html b/src/pretix/control/templates/pretixcontrol/pdf/index.html index 3d9f195f6d..97c62bd790 100644 --- a/src/pretix/control/templates/pretixcontrol/pdf/index.html +++ b/src/pretix/control/templates/pretixcontrol/pdf/index.html @@ -198,11 +198,24 @@

- After you changed the page size, you need to create a new empty background. If you - want to use a custom background, it already needs to have the correct size. + {% blocktrans trimmed %} + After you changed the page size, you need to create a new empty background. If you + want to use a custom background, it already needs to have the correct size. + {% endblocktrans %}

+
+
+
+ +
+

diff --git a/src/pretix/control/views/pdf.py b/src/pretix/control/views/pdf.py index b2f6d86179..2a44d57fa5 100644 --- a/src/pretix/control/views/pdf.py +++ b/src/pretix/control/views/pdf.py @@ -4,6 +4,7 @@ import mimetypes from datetime import timedelta from io import BytesIO +from django.conf import settings from django.core.files import File from django.core.files.base import ContentFile from django.core.files.storage import default_storage @@ -217,6 +218,7 @@ class BaseEditorView(EventPermissionRequiredMixin, TemplateView): ctx['variables'] = self.get_variables() ctx['layout'] = json.dumps(self.get_current_layout()) ctx['title'] = self.title + ctx['locales'] = [p for p in settings.LANGUAGES if p[0] in self.request.event.settings.locales] return ctx diff --git a/src/pretix/static/pretixcontrol/js/ui/editor.js b/src/pretix/static/pretixcontrol/js/ui/editor.js index 0bb4188d8d..a22d448ef3 100644 --- a/src/pretix/static/pretixcontrol/js/ui/editor.js +++ b/src/pretix/static/pretixcontrol/js/ui/editor.js @@ -119,6 +119,7 @@ var editor = { var col = (new fabric.Color(o.getFill()))._source; d.push({ type: "textarea", + locale: $("#pdf-info-locale").val(), left: editor._px2mm(left).toFixed(2), bottom: editor._px2mm(editor.pdf_viewport.height - o.height - top).toFixed(2), fontsize: editor._px2pt(o.getFontSize()).toFixed(1), @@ -178,6 +179,10 @@ var editor = { } else { o.setText(editor._get_text_sample(d.content)); } + if (d.locale) { + // The data format allows to set the locale per text field but we currently only expose a global field + $("#pdf-info-locale").val(d.locale); + } } var new_top = editor.pdf_viewport.height - editor._mm2px(d.bottom) - (o.height * o.scaleY);