diff --git a/contao/languages/en/modules.php b/contao/languages/en/modules.php
new file mode 100644
index 0000000..b7da7ec
--- /dev/null
+++ b/contao/languages/en/modules.php
@@ -0,0 +1,10 @@
+ 'Yes-no question',
+ 'text' => 'Open question',
+ 'range' => 'Rating question',
+ 'choice' => 'Single/multiple choice',
+];
+$GLOBALS['TL_LANG']['tl_survey_content']['question'] = ['Question', 'Title or wording of the question.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['description'] = ['Description', 'Optional additional description for the question.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['question_legend'] = 'Question';
+$GLOBALS['TL_LANG']['tl_survey_content']['settings_legend'] = 'Settings';
+$GLOBALS['TL_LANG']['tl_survey_content']['mandatory'] = ['Required question', 'This question must be answered.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['published'] = ['Active', 'The question is shown in the survey.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['allowMaybe'] = ['Offer maybe', 'Adds the Maybe answer option to the yes-no question.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['jumpOnYes'] = ['Jump to question on yes', 'Jumps directly to this question when the answer is Yes.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['jumpOnNo'] = ['Jump to question on no', 'Jumps directly to this question when the answer is No.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['allowMultiple'] = ['Enable multiple choice', 'Allows multiple answers instead of a single selection.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption1'] = ['Answer 1', 'First possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption2'] = ['Answer 2', 'Second possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption3'] = ['Answer 3', 'Third possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption4'] = ['Answer 4', 'Fourth possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption5'] = ['Answer 5', 'Fifth possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption6'] = ['Answer 6', 'Sixth possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption7'] = ['Answer 7', 'Seventh possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption8'] = ['Answer 8', 'Eighth possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption9'] = ['Answer 9', 'Ninth possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['answerOption10'] = ['Answer 10', 'Tenth possible answer.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['rangeMin'] = ['Minimum value', 'Smallest value of the slider.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['rangeMax'] = ['Maximum value', 'Largest value of the slider.'];
+$GLOBALS['TL_LANG']['tl_survey_content']['rangeStep'] = ['Step size', 'Distance between the possible slider values.'];
\ No newline at end of file
diff --git a/contao/languages/en/tl_survey_editor.php b/contao/languages/en/tl_survey_editor.php
new file mode 100644
index 0000000..0120424
--- /dev/null
+++ b/contao/languages/en/tl_survey_editor.php
@@ -0,0 +1,4 @@
+Dieses Frontendmodul ist fuer eingeloggte Mitglieder gedacht. Nutzen Sie den normalen Contao-Mitgliederlogin auf einer geschuetzten Seite.
+
{{ 'survey.edit.login_required'|trans }}
{% elseif createMode %}
-
Neue Umfrage erstellen
-
Die Umfrage wird nach dem Anlegen automatisch dem eingeloggten Mitglied zugewiesen.
+
{{ 'survey.edit.create_title'|trans }}
+
{{ 'survey.edit.create_text'|trans }}
{{ form_start(surveyForm, {attr: {class: 'survey-form-grid'}}) }}
-
Titel{{ form_widget(surveyForm.title) }}{{ form_errors(surveyForm.title) }}
-
Beschreibung{{ form_widget(surveyForm.description) }}
-
{{ form_widget(surveyForm.published) }}Direkt veroeffentlichen
+
{{ 'survey.edit.label_title'|trans }}{{ form_widget(surveyForm.title) }}{{ form_errors(surveyForm.title) }}
+
{{ 'survey.edit.label_description'|trans }}{{ form_widget(surveyForm.description) }}
+
{{ form_widget(surveyForm.published) }}{{ 'survey.edit.publish_directly'|trans }}
{{ form_end(surveyForm) }}
{% else %}
{% set locked = survey.isLocked == '1' %}
-
Oeffentlicher Link {% if publicUrl %}
{{ publicUrl }} {% else %}Noch keine oeffentliche Seite hinterlegt.{% endif %}
-
Status {{ survey.published ? 'veroeffentlicht' : 'entwurf' }} {% if locked %}gesperrt {% endif %}
-
Bearbeitende {{ editors|length }} Mitglied(er)
+
{{ 'survey.edit.public_link'|trans }} {% if publicUrl %}
{{ publicUrl }} {% else %}{{ 'survey.edit.no_public_page'|trans }}{% endif %}
+
{{ 'survey.edit.status'|trans }} {{ survey.published ? 'survey.edit.published'|trans : 'survey.edit.draft'|trans }} {% if locked %}{{ 'survey.edit.locked'|trans }} {% endif %}
+
{{ 'survey.edit.editors'|trans }} {{ 'survey.edit.editors_count'|trans({'%count%': editors|length}) }}
{% if locked %}
- Die Umfrage ist strukturell gesperrt, weil bereits Antworten vorliegen. Stammdaten koennen weiter gepflegt werden, der Ablauf und die Fragen jedoch nicht.
+ {{ 'survey.edit.structure_locked'|trans }}
{% endif %}
-
Umfrage-Metadaten
+
{{ 'survey.edit.metadata'|trans }}
{{ form_start(surveyForm, {attr: {class: 'survey-form-grid'}}) }}
-
Titel{{ form_widget(surveyForm.title) }}{{ form_errors(surveyForm.title) }}
-
Beschreibung{{ form_widget(surveyForm.description) }}
-
{{ form_widget(surveyForm.published) }}Umfrage veroeffentlichen
-
Speichern
+
{{ 'survey.edit.label_title'|trans }}{{ form_widget(surveyForm.title) }}{{ form_errors(surveyForm.title) }}
+
{{ 'survey.edit.label_description'|trans }}{{ form_widget(surveyForm.description) }}
+
{{ form_widget(surveyForm.published) }}{{ 'survey.edit.publish_survey'|trans }}
+
{{ 'survey.edit.save'|trans }}
{{ form_end(surveyForm) }}
-
Bearbeitende Mitglieder
+
{{ 'survey.edit.editors_title'|trans }}
{% for editor in editors %}
@@ -64,26 +66,26 @@
{{ editor.email|striptags|trim }}
{% else %}
-
Keine Editoren hinterlegt.
+
{{ 'survey.edit.no_editors'|trans }}
{% endfor %}
-
Antworten und Ergebnisse
+
{{ 'survey.edit.responses_title'|trans }}
{% for submission in submissions %}
- {{ submission.answerCount }} Antworten
- {{ submission.isFinished ? 'abgeschlossen' : 'offen' }}
+ {{ 'survey.list.answers'|trans({'%count%': submission.answerCount}) }}
+ {{ submission.isFinished ? 'survey.edit.completed'|trans : 'survey.edit.open'|trans }}
- Begonnen: {{ submission.startedAt ? submission.startedAt|date('d.m.Y H:i') : 'unbekannt' }}
- Beendet: {{ submission.completedAt ? submission.completedAt|date('d.m.Y H:i') : 'unbekannt' }}
- Teilnahme-Code: {{ submission.token }}
+ {{ 'survey.edit.started_at'|trans }}: {{ submission.startedAt ? submission.startedAt|date('d.m.Y H:i') : 'survey.edit.unknown'|trans }}
+ {{ 'survey.edit.completed_at'|trans }}: {{ submission.completedAt ? submission.completedAt|date('d.m.Y H:i') : 'survey.edit.unknown'|trans }}
+ {{ 'survey.edit.participation_code'|trans }}: {{ submission.token }}
{% else %}
-
Es liegen noch keine Teilnahmen vor.
+
{{ 'survey.edit.no_submissions'|trans }}
{% endfor %}
@@ -91,39 +93,39 @@
-
Fragen bearbeiten {% if activeQuestionId %}Bearbeitungsmodus {% endif %}
+
{{ 'survey.edit.questions_title'|trans }} {% if activeQuestionId %}{{ 'survey.edit.edit_mode'|trans }} {% endif %}
{% if not locked %}
{% set questionType = questionForm.type.vars.value ?: 'yes_no_maybe' %}
{{ form_start(questionForm, {attr: {class: 'survey-form-grid'}}) }}
-
Fragetyp{{ form_widget(questionForm.type, {attr: {'data-survey-question-type': '1'}}) }}
-
Frage{{ form_widget(questionForm.question) }}{{ form_errors(questionForm.question) }}
-
Beschreibung{{ form_widget(questionForm.description) }}
-
{{ form_widget(questionForm.mandatory) }}Pflichtfrage
-
{{ form_widget(questionForm.published) }}Aktiv
-
{{ form_widget(questionForm.allowMaybe) }}Vielleicht anbieten
+
{{ 'survey.edit.label_type'|trans }}{{ form_widget(questionForm.type, {attr: {'data-survey-question-type': '1'}}) }}
+
{{ 'survey.edit.label_question'|trans }}{{ form_widget(questionForm.question) }}{{ form_errors(questionForm.question) }}
+
{{ 'survey.edit.label_description'|trans }}{{ form_widget(questionForm.description) }}
+
{{ form_widget(questionForm.mandatory) }}{{ 'survey.edit.mandatory'|trans }}
+
{{ form_widget(questionForm.published) }}{{ 'survey.edit.active'|trans }}
+
{{ form_widget(questionForm.allowMaybe) }}{{ 'survey.edit.allow_maybe'|trans }}
- Zur Frage springen bei Auswahl ja{{ form_widget(questionForm.jumpOnYes) }}
- Zur Frage springen bei Auswahl nein{{ form_widget(questionForm.jumpOnNo) }}
+ {{ 'survey.edit.jump_yes'|trans }}{{ form_widget(questionForm.jumpOnYes) }}
+ {{ 'survey.edit.jump_no'|trans }}{{ form_widget(questionForm.jumpOnNo) }}
-
{{ form_widget(questionForm.allowMultiple) }}Multiple-Choice aktivieren
+
{{ form_widget(questionForm.allowMultiple) }}{{ 'survey.edit.allow_multiple'|trans }}
- Antwort 1{{ form_widget(questionForm.answerOption1) }}
- Antwort 2{{ form_widget(questionForm.answerOption2) }}
- Antwort 3{{ form_widget(questionForm.answerOption3) }}
- Antwort 4{{ form_widget(questionForm.answerOption4) }}
- Antwort 5{{ form_widget(questionForm.answerOption5) }}
- Antwort 6{{ form_widget(questionForm.answerOption6) }}
- Antwort 7{{ form_widget(questionForm.answerOption7) }}
- Antwort 8{{ form_widget(questionForm.answerOption8) }}
- Antwort 9{{ form_widget(questionForm.answerOption9) }}
- Antwort 10{{ form_widget(questionForm.answerOption10) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 1}) }}{{ form_widget(questionForm.answerOption1) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 2}) }}{{ form_widget(questionForm.answerOption2) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 3}) }}{{ form_widget(questionForm.answerOption3) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 4}) }}{{ form_widget(questionForm.answerOption4) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 5}) }}{{ form_widget(questionForm.answerOption5) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 6}) }}{{ form_widget(questionForm.answerOption6) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 7}) }}{{ form_widget(questionForm.answerOption7) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 8}) }}{{ form_widget(questionForm.answerOption8) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 9}) }}{{ form_widget(questionForm.answerOption9) }}
+ {{ 'survey.edit.answer_option'|trans({'%number%': 10}) }}{{ form_widget(questionForm.answerOption10) }}
- Kleinster Wert{{ form_widget(questionForm.rangeMin) }}
- Groesster Wert{{ form_widget(questionForm.rangeMax) }}
- Schrittweite{{ form_widget(questionForm.rangeStep) }}
+ {{ 'survey.edit.range_min'|trans }}{{ form_widget(questionForm.rangeMin) }}
+ {{ 'survey.edit.range_max'|trans }}{{ form_widget(questionForm.rangeMax) }}
+ {{ 'survey.edit.range_step'|trans }}{{ form_widget(questionForm.rangeStep) }}
-
{{ activeQuestionId ? 'Frage aktualisieren' : 'Frage speichern' }}
+
{{ activeQuestionId ? 'survey.edit.update_question'|trans : 'survey.edit.save_question'|trans }}
{{ form_end(questionForm) }}
{% endif %}
@@ -132,60 +134,60 @@
{{ question.type }}
- {% if question.mandatory %}Pflicht {% endif %}
- {% if loop.first %}Start {% endif %}
+ {% if question.mandatory %}{{ 'survey.edit.mandatory_badge'|trans }} {% endif %}
+ {% if loop.first %}{{ 'survey.edit.start_badge'|trans }} {% endif %}
{{ question.question|striptags|trim }}
- {{ (question.description|striptags|trim) ?: 'Keine Zusatzbeschreibung.' }}
+ {{ (question.description|striptags|trim) ?: 'survey.edit.no_extra_description'|trans }}
{% if not locked %}
{% endif %}
{% else %}
-
Noch keine Fragen angelegt.
+
{{ 'survey.edit.no_questions'|trans }}
{% endfor %}
-
Sprungregeln {% if activeConditionId %}Bearbeitungsmodus {% endif %}
+
{{ 'survey.edit.conditions_title'|trans }} {% if activeConditionId %}{{ 'survey.edit.edit_mode'|trans }} {% endif %}
{% if not locked %}
{{ form_start(conditionForm, {attr: {class: 'survey-form-grid'}}) }}
-
Ausgangsfrage{{ form_widget(conditionForm.sourceQuestion) }}
-
Antwort{{ form_widget(conditionForm.answerValue) }}
-
Naechste Frage{{ form_widget(conditionForm.targetQuestion) }}
-
{{ activeConditionId ? 'Bedingung aktualisieren' : 'Bedingung speichern' }}
+
{{ 'survey.edit.source_question'|trans }}{{ form_widget(conditionForm.sourceQuestion) }}
+
{{ 'survey.edit.answer'|trans }}{{ form_widget(conditionForm.answerValue) }}
+
{{ 'survey.edit.next_question'|trans }}{{ form_widget(conditionForm.targetQuestion) }}
+
{{ activeConditionId ? 'survey.edit.update_condition'|trans : 'survey.edit.save_condition'|trans }}
{{ form_end(conditionForm) }}
{% endif %}
{% for condition in conditions %}
- Wenn Antwort = {{ condition.answerValue|striptags|trim }}
- {{ (condition.sourceQuestionLabel|striptags|trim) ?: ('Frage #' ~ condition.sourceQuestion) }}
- weiter zu {{ (condition.targetQuestionLabel|striptags|trim) ?: ('Frage #' ~ condition.targetQuestion) }}
+ {{ 'survey.edit.condition_prefix'|trans({'%value%': condition.answerValue|striptags|trim}) }}
+ {{ (condition.sourceQuestionLabel|striptags|trim) ?: 'survey.edit.question_fallback'|trans({'%id%': condition.sourceQuestion}) }}
+ {{ 'survey.edit.continue_to'|trans({'%target%': ((condition.targetQuestionLabel|striptags|trim) ?: ('survey.edit.question_fallback'|trans({'%id%': condition.targetQuestion})))}) }}
{% if not locked %}
{% endif %}
{% else %}
-
Noch keine Bedingungen definiert.
+
{{ 'survey.edit.no_conditions'|trans }}
{% endfor %}
diff --git a/contao/templates/frontend/member_survey_list.html.twig b/contao/templates/frontend/member_survey_list.html.twig
index bb51683..9f4cd44 100644
--- a/contao/templates/frontend/member_survey_list.html.twig
+++ b/contao/templates/frontend/member_survey_list.html.twig
@@ -1,3 +1,5 @@
+{% trans_default_domain 'messages' %}
+
{% include '@Survey/frontend/_survey_assets.html.twig' %}
{% include '@Survey/frontend/_survey_branding.html.twig' %}
@@ -11,11 +13,11 @@
{% endif %}
{% if loginRequired %}
-
Dieser Bereich verwendet den normalen Contao-Mitgliederlogin. Bitte binden Sie das Modul auf einer geschuetzten Seite oder mit einer separaten Login-Seite ein.
+
{{ 'survey.list.login_required'|trans }}
{% else %}
@@ -24,30 +26,30 @@
{{ survey.title|striptags|trim }}
- {{ survey.published ? 'veroeffentlicht' : 'Entwurf' }}
+ {{ survey.published ? 'survey.list.published'|trans : 'survey.list.draft'|trans }}
{% if survey.isLocked %}
- gesperrt
+ {{ 'survey.list.locked'|trans }}
{% endif %}
- {{ (survey.description|striptags|trim) ?: 'Keine Beschreibung hinterlegt.' }}
+ {{ (survey.description|striptags|trim) ?: 'survey.list.no_description'|trans }}
- {{ survey.questionCount }} Fragen
- {{ survey.answerCount }} Antworten
+ {{ 'survey.list.questions'|trans({'%count%': survey.questionCount}) }}
+ {{ 'survey.list.answers'|trans({'%count%': survey.answerCount}) }}
{% else %}
-
Dem eingeloggten Mitglied ist aktuell keine Umfrage zugewiesen.
+
{{ 'survey.list.empty'|trans }}
{% endfor %}
{% endif %}
diff --git a/contao/templates/frontend/show_survey.html.twig b/contao/templates/frontend/show_survey.html.twig
index e909755..263fc16 100644
--- a/contao/templates/frontend/show_survey.html.twig
+++ b/contao/templates/frontend/show_survey.html.twig
@@ -1,3 +1,5 @@
+{% trans_default_domain 'messages' %}
+
{% include '@Survey/frontend/_survey_assets.html.twig' %}
{% include '@Survey/frontend/_survey_branding.html.twig' %}
@@ -16,7 +18,7 @@
{{ survey.title|striptags|trim }}
{% if progress.total > 0 %}
{{ progress.current }}/{{ progress.total }} {% endif %}
- {{ (survey.description|striptags|trim) ?: 'Bitte beantworten Sie die folgenden Fragen. Jede Frage wird einzeln angezeigt.' }}
+ {{ (survey.description|striptags|trim) ?: 'survey.survey.default_description'|trans }}
{% if progress.total > 0 %}
@@ -25,8 +27,8 @@
{% if isComplete %}
- Vielen Dank fuers Ausfuellen.
- Ihre Antworten wurden anonym gespeichert. Es wurde keine Teilnehmeridentitaet mit diesem Umfrage-Durchlauf verknuepft.
+ {{ 'survey.survey.thanks_title'|trans }}
+ {{ 'survey.survey.thanks_text'|trans }}
{% if answers %}
{% for answer in answers %}
@@ -41,7 +43,7 @@
{% elseif question %}
- Frage {{ progress.current }}
+ {{ 'survey.survey.question_progress'|trans({'%current%': progress.current}) }}
{{ question.question|striptags|trim }}
{% if question.description|striptags|trim %}{{ question.description|striptags|trim }}
{% endif %}
@@ -52,7 +54,7 @@
{% for child in surveyForm.answer %}
{{ child.vars.label|striptags|trim }} {{ form_widget(child) }}
- Diese Antwort wird direkt fuer den weiteren Ablauf verwendet.
+ {{ 'survey.survey.answer_flow_hint'|trans }}
{% endfor %}
@@ -67,7 +69,7 @@
{% elseif question.type == 'range' %}
-
Aktueller Wert
+
{{ 'survey.survey.current_value'|trans }}
{{ question.rangeMin }}
{{ form_widget(surveyForm.answer, {attr: {'data-survey-range': '1', 'data-survey-range-target': 'survey-range-output-' ~ question.id}}) }}
@@ -78,7 +80,7 @@
{% endif %}
{{ form_errors(surveyForm.answer) }}
-
Weiter
+
{{ 'survey.survey.next'|trans }}
{{ form_end(surveyForm) }}
{% endif %}
diff --git a/contao/templates/frontend/show_survey_results.html.twig b/contao/templates/frontend/show_survey_results.html.twig
index f948d50..67b39ec 100644
--- a/contao/templates/frontend/show_survey_results.html.twig
+++ b/contao/templates/frontend/show_survey_results.html.twig
@@ -1,3 +1,5 @@
+{% trans_default_domain 'messages' %}
+
{% include '@Survey/frontend/_survey_assets.html.twig' %}
{% include '@Survey/frontend/_survey_branding.html.twig' %}
@@ -16,19 +18,19 @@
{{ survey.title|striptags|trim }}
- {{ completedSubmissionCount }} abgeschlossene Teilnahmen
- {{ questionResults|length }} Fragen
+ {{ 'survey.results.completed_submissions'|trans({'%count%': completedSubmissionCount}) }}
+ {{ 'survey.results.questions'|trans({'%count%': questionResults|length}) }}
- {{ (survey.description|striptags|trim) ?: 'Keine Beschreibung hinterlegt.' }}
+ {{ (survey.description|striptags|trim) ?: 'survey.results.no_description'|trans }}
{% if downloadUrl or pdfDownloadUrl %}
{% endif %}
@@ -39,8 +41,8 @@
{{ question.question|striptags|trim }}
- {{ question.totalAnswers }} Antworten
- {{ question.responseRate }}% Ruecklauf
+ {{ 'survey.results.answers'|trans({'%count%': question.totalAnswers}) }}
+ {{ 'survey.results.response_rate'|trans({'%rate%': question.responseRate}) }}
{% if question.description|striptags|trim %}
@@ -75,15 +77,15 @@
{% elseif question.type == 'range' %}
- Minimum
+ {{ 'survey.results.minimum'|trans }}
{{ question.minimum is not null ? question.minimum : '-' }}
- Maximum
+ {{ 'survey.results.maximum'|trans }}
{{ question.maximum is not null ? question.maximum : '-' }}
- Durchschnitt
+ {{ 'survey.results.average'|trans }}
{{ question.average is not null ? question.average : '-' }}
@@ -101,7 +103,7 @@
{% else %}
- Noch keine Bewertungen vorhanden.
+ {{ 'survey.results.no_ratings'|trans }}
{% endfor %}
{% else %}
@@ -126,7 +128,7 @@
{% for response in question.responses %}
{{ response|striptags|trim|nl2br }}
{% else %}
- Noch keine Freitextantworten vorhanden.
+ {{ 'survey.results.no_text_responses'|trans }}
{% endfor %}
{% endif %}
@@ -134,7 +136,7 @@
{% else %}
- Fuer diese Umfrage sind noch keine Fragen angelegt.
+ {{ 'survey.results.no_questions'|trans }}
{% endfor %}
{% endif %}
diff --git a/src/Resources/views/pdf/survey_results.html.twig b/src/Resources/views/pdf/survey_results.html.twig
index 3879768..e53a7fd 100644
--- a/src/Resources/views/pdf/survey_results.html.twig
+++ b/src/Resources/views/pdf/survey_results.html.twig
@@ -1,3 +1,5 @@
+{% trans_default_domain 'messages' %}
+
@@ -203,12 +205,12 @@
@@ -221,15 +223,15 @@
{% endif %}
- {{ question.totalAnswers }} Antworten
- {{ question.responseRate }}% Ruecklauf
+ {{ 'survey.pdf.answers'|trans({'%count%': question.totalAnswers}) }}
+ {{ 'survey.pdf.response_rate'|trans({'%rate%': question.responseRate}) }}
{% if question.pdfChartDataUri %}
{% if question.type == 'range' and question.pdfChartLegend %}
-
Die Punkte sind farblich den Werten in der Tabelle zugeordnet.
+
{{ 'survey.pdf.chart_hint'|trans }}
{% endif %}
{% endif %}
@@ -238,10 +240,10 @@
- Farbe
- Option
- Anzahl
- Anteil
+ {{ 'survey.pdf.color'|trans }}
+ {{ 'survey.pdf.option'|trans }}
+ {{ 'survey.pdf.count'|trans }}
+ {{ 'survey.pdf.share'|trans }}
@@ -254,7 +256,7 @@
{% else %}
- Noch keine Daten vorhanden.
+ {{ 'survey.pdf.no_data'|trans }}
{% endfor %}
@@ -263,14 +265,15 @@
Minimum
+ {{ 'survey.pdf.minimum'|trans({}, 'messages') }}
{{ question.minimum is not null ? question.minimum : '-' }}
- Maximum
+ {{ 'survey.pdf.maximum'|trans({}, 'messages') }}
{{ question.maximum is not null ? question.maximum : '-' }}
- Durchschnitt
+ {{ 'survey.pdf.average'|trans({}, 'messages') }}
{{ question.average is not null ? question.average : '-' }}
@@ -278,10 +281,10 @@
- Farbe
- Wert
- Anzahl
- Anteil
+ {{ 'survey.pdf.color'|trans }}
+ {{ 'survey.pdf.value'|trans }}
+ {{ 'survey.pdf.count'|trans }}
+ {{ 'survey.pdf.share'|trans }}
@@ -294,7 +297,7 @@
{% else %}
- Noch keine Bewertungen vorhanden.
+ {{ 'survey.pdf.no_ratings'|trans }}
{% endfor %}
@@ -304,10 +307,10 @@
- Farbe
- Antwortgruppe
- Anzahl
- Anteil
+ {{ 'survey.pdf.color'|trans }}
+ {{ 'survey.pdf.answer_group'|trans }}
+ {{ 'survey.pdf.count'|trans }}
+ {{ 'survey.pdf.share'|trans }}
@@ -327,18 +330,18 @@
{% for response in question.responses %}
{{ response|striptags|trim }}
{% else %}
- Noch keine Freitextantworten vorhanden.
+ {{ 'survey.pdf.no_text_responses'|trans }}
{% endfor %}
{% endif %}
{% else %}
- Keine Fragen vorhanden
- Fuer diese Umfrage sind noch keine Fragen angelegt.
+ {{ 'survey.pdf.no_questions_title'|trans }}
+ {{ 'survey.pdf.no_questions_text'|trans }}
{% endfor %}
-
+
\ No newline at end of file
diff --git a/translations/messages.de.yaml b/translations/messages.de.yaml
new file mode 100644
index 0000000..b2e1cda
--- /dev/null
+++ b/translations/messages.de.yaml
@@ -0,0 +1,125 @@
+survey:
+ list:
+ login_required: "Dieser Bereich verwendet den normalen Contao-Mitgliederlogin. Bitte binden Sie das Modul auf einer geschützten Seite oder mit einer separaten Login-Seite ein."
+ create: "Neue Umfrage anlegen"
+ published: "veröffentlicht"
+ draft: "Entwurf"
+ locked: "gesperrt"
+ no_description: "Keine Beschreibung hinterlegt."
+ questions: "%count% Fragen"
+ answers: "%count% Antworten"
+ edit: "Bearbeiten"
+ public_view: "Öffentliche Ansicht"
+ show_results: "Ergebnisse anzeigen"
+ empty: "Dem eingeloggten Mitglied ist aktuell keine Umfrage zugewiesen."
+ edit:
+ login_required: "Dieses Frontendmodul ist für eingeloggte Mitglieder gedacht. Nutzen Sie den normalen Contao-Mitgliederlogin auf einer geschützten Seite."
+ create_title: "Neue Umfrage erstellen"
+ create_text: "Die Umfrage wird nach dem Anlegen automatisch dem eingeloggten Mitglied zugewiesen."
+ label_title: "Titel"
+ label_description: "Beschreibung"
+ publish_directly: "Direkt veröffentlichen"
+ create_submit: "Umfrage erstellen"
+ back_to_list: "Zur Liste"
+ public_view_open: "Öffentliche Ansicht öffnen"
+ public_link: "Öffentlicher Link"
+ no_public_page: "Noch keine öffentliche Seite hinterlegt."
+ status: "Status"
+ editors: "Bearbeitende"
+ editors_count: "%count% Mitglied(er)"
+ published: "veröffentlicht"
+ draft: "Entwurf"
+ locked: "gesperrt"
+ structure_locked: "Die Umfrage ist strukturell gesperrt, weil bereits Antworten vorliegen. Stammdaten können weiter gepflegt werden, der Ablauf und die Fragen jedoch nicht."
+ metadata: "Umfrage-Metadaten"
+ publish_survey: "Umfrage veröffentlichen"
+ save: "Speichern"
+ editors_title: "Bearbeitende Mitglieder"
+ no_editors: "Keine Editoren hinterlegt."
+ responses_title: "Antworten und Ergebnisse"
+ completed: "abgeschlossen"
+ open: "offen"
+ started_at: "Begonnen"
+ completed_at: "Beendet"
+ unknown: "unbekannt"
+ participation_code: "Teilnahme-Code"
+ no_submissions: "Es liegen noch keine Teilnahmen vor."
+ questions_title: "Fragen bearbeiten"
+ edit_mode: "Bearbeitungsmodus"
+ label_type: "Fragetyp"
+ label_question: "Frage"
+ mandatory: "Pflichtfrage"
+ active: "Aktiv"
+ allow_maybe: "Vielleicht anbieten"
+ jump_yes: "Zur Frage springen bei Auswahl ja"
+ jump_no: "Zur Frage springen bei Auswahl nein"
+ allow_multiple: "Multiple-Choice aktivieren"
+ answer_option: "Antwort %number%"
+ range_min: "Kleinster Wert"
+ range_max: "Größter Wert"
+ range_step: "Schrittweite"
+ update_question: "Frage aktualisieren"
+ save_question: "Frage speichern"
+ mandatory_badge: "Pflicht"
+ start_badge: "Start"
+ no_extra_description: "Keine Zusatzbeschreibung."
+ delete_question_confirm: "Frage wirklich löschen?"
+ delete: "Löschen"
+ no_questions: "Noch keine Fragen angelegt."
+ conditions_title: "Sprungregeln"
+ source_question: "Ausgangsfrage"
+ answer: "Antwort"
+ next_question: "Nächste Frage"
+ update_condition: "Bedingung aktualisieren"
+ save_condition: "Bedingung speichern"
+ condition_prefix: "Wenn Antwort = %value%"
+ continue_to: "weiter zu %target%"
+ question_fallback: "Frage #%id%"
+ edit_condition: "Bearbeiten"
+ delete_condition_confirm: "Bedingung wirklich löschen?"
+ no_conditions: "Noch keine Bedingungen definiert."
+ survey:
+ default_description: "Bitte beantworten Sie die folgenden Fragen. Jede Frage wird einzeln angezeigt."
+ thanks_title: "Vielen Dank fürs Ausfüllen."
+ thanks_text: "Ihre Antworten wurden anonym gespeichert. Es wurde keine Teilnehmeridentität mit diesem Umfrage-Durchlauf verknüpft."
+ question_progress: "Frage %current%"
+ answer_flow_hint: "Diese Antwort wird direkt für den weiteren Ablauf verwendet."
+ current_value: "Aktueller Wert"
+ next: "Weiter"
+ results:
+ no_description: "Keine Beschreibung hinterlegt."
+ completed_submissions: "%count% abgeschlossene Teilnahmen"
+ questions: "%count% Fragen"
+ download_excel: "Ergebnisse als Excel herunterladen"
+ download_pdf: "Ergebnisse als PDF herunterladen"
+ answers: "%count% Antworten"
+ response_rate: "%rate%% Rücklauf"
+ minimum: "Minimum"
+ maximum: "Maximum"
+ average: "Durchschnitt"
+ no_ratings: "Noch keine Bewertungen vorhanden."
+ no_text_responses: "Noch keine Freitextantworten vorhanden."
+ no_questions: "Für diese Umfrage sind noch keine Fragen angelegt."
+ pdf:
+ no_description: "Keine Beschreibung hinterlegt."
+ completed_submissions: "%count% abgeschlossene Teilnahmen"
+ questions: "%count% Fragen"
+ export_prefix: "Export %date%"
+ answers: "%count% Antworten"
+ response_rate: "%rate%% Rücklauf"
+ minimum: "Minimum"
+ maximum: "Maximum"
+ average: "Durchschnitt"
+ chart_hint: "Die Punkte sind farblich den Werten in der Tabelle zugeordnet."
+ color: "Farbe"
+ option: "Option"
+ value: "Wert"
+ answer_group: "Antwortgruppe"
+ count: "Anzahl"
+ share: "Anteil"
+ no_data: "Noch keine Daten vorhanden."
+ no_ratings: "Noch keine Bewertungen vorhanden."
+ no_text_responses: "Noch keine Freitextantworten vorhanden."
+ no_questions_title: "Keine Fragen vorhanden"
+ no_questions_text: "Für diese Umfrage sind noch keine Fragen angelegt."
+ footer: "PDF-Export des Survey-Bundles"
diff --git a/translations/messages.en.yaml b/translations/messages.en.yaml
new file mode 100644
index 0000000..0b016e4
--- /dev/null
+++ b/translations/messages.en.yaml
@@ -0,0 +1,125 @@
+survey:
+ list:
+ login_required: "This area uses the regular Contao member login. Please place the module on a protected page or provide a separate login page."
+ create: "Create new survey"
+ published: "published"
+ draft: "Draft"
+ locked: "locked"
+ no_description: "No description available."
+ questions: "%count% questions"
+ answers: "%count% answers"
+ edit: "Edit"
+ public_view: "Public view"
+ show_results: "Show results"
+ empty: "There is currently no survey assigned to the logged-in member."
+ edit:
+ login_required: "This frontend module is intended for logged-in members. Please use the regular Contao member login on a protected page."
+ create_title: "Create new survey"
+ create_text: "The survey will automatically be assigned to the logged-in member after creation."
+ label_title: "Title"
+ label_description: "Description"
+ publish_directly: "Publish immediately"
+ create_submit: "Create survey"
+ back_to_list: "Back to list"
+ public_view_open: "Open public view"
+ public_link: "Public link"
+ no_public_page: "No public page configured yet."
+ status: "Status"
+ editors: "Editors"
+ editors_count: "%count% member(s)"
+ published: "published"
+ draft: "draft"
+ locked: "locked"
+ structure_locked: "The survey structure is locked because answers already exist. Master data can still be maintained, but the flow and questions can no longer be changed."
+ metadata: "Survey metadata"
+ publish_survey: "Publish survey"
+ save: "Save"
+ editors_title: "Editing members"
+ no_editors: "No editors configured."
+ responses_title: "Answers and results"
+ completed: "completed"
+ open: "open"
+ started_at: "Started"
+ completed_at: "Completed"
+ unknown: "unknown"
+ participation_code: "Participation code"
+ no_submissions: "No participations yet."
+ questions_title: "Edit questions"
+ edit_mode: "Edit mode"
+ label_type: "Question type"
+ label_question: "Question"
+ mandatory: "Required question"
+ active: "Active"
+ allow_maybe: "Offer maybe"
+ jump_yes: "Jump to question on yes"
+ jump_no: "Jump to question on no"
+ allow_multiple: "Enable multiple choice"
+ answer_option: "Answer %number%"
+ range_min: "Minimum value"
+ range_max: "Maximum value"
+ range_step: "Step size"
+ update_question: "Update question"
+ save_question: "Save question"
+ mandatory_badge: "Required"
+ start_badge: "Start"
+ no_extra_description: "No additional description."
+ delete_question_confirm: "Delete this question?"
+ delete: "Delete"
+ no_questions: "No questions created yet."
+ conditions_title: "Jump rules"
+ source_question: "Source question"
+ answer: "Answer"
+ next_question: "Next question"
+ update_condition: "Update condition"
+ save_condition: "Save condition"
+ condition_prefix: "If answer = %value%"
+ continue_to: "continue to %target%"
+ question_fallback: "Question #%id%"
+ edit_condition: "Edit"
+ delete_condition_confirm: "Delete this condition?"
+ no_conditions: "No conditions defined yet."
+ survey:
+ default_description: "Please answer the following questions. Each question is shown individually."
+ thanks_title: "Thank you for completing the survey."
+ thanks_text: "Your answers have been stored anonymously. No participant identity was linked to this survey run."
+ question_progress: "Question %current%"
+ answer_flow_hint: "This answer is used directly for the further flow."
+ current_value: "Current value"
+ next: "Next"
+ results:
+ no_description: "No description available."
+ completed_submissions: "%count% completed participations"
+ questions: "%count% questions"
+ download_excel: "Download results as Excel"
+ download_pdf: "Download results as PDF"
+ answers: "%count% answers"
+ response_rate: "%rate%% response rate"
+ minimum: "Minimum"
+ maximum: "Maximum"
+ average: "Average"
+ no_ratings: "No ratings available yet."
+ no_text_responses: "No free-text responses available yet."
+ no_questions: "No questions have been created for this survey yet."
+ pdf:
+ no_description: "No description available."
+ completed_submissions: "%count% completed participations"
+ questions: "%count% questions"
+ export_prefix: "Export %date%"
+ answers: "%count% answers"
+ response_rate: "%rate%% response rate"
+ minimum: "Minimum"
+ maximum: "Maximum"
+ average: "Average"
+ chart_hint: "The points are color-coded to match the values in the table."
+ color: "Color"
+ option: "Option"
+ value: "Value"
+ answer_group: "Answer group"
+ count: "Count"
+ share: "Share"
+ no_data: "No data available yet."
+ no_ratings: "No ratings available yet."
+ no_text_responses: "No free-text responses available yet."
+ no_questions_title: "No questions available"
+ no_questions_text: "No questions have been created for this survey yet."
+ footer: "Survey bundle PDF export"