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);