c7439e4822
Behebt die Fehler aus der Kunden-Testrunde (Praktikantin, Juli 2026):
- Ergebnisreihenfolge: Fragen werden vor dem Finalisieren nach _sorting
sortiert. finalizeQuestionResult entfernt _sorting, daher fiel die
bisherige Nachsortierung auf den alphabetischen Fallback zurück. Online,
PDF und Excel folgen jetzt derselben Frage-Sortierung.
- Excel-Export: Eigene Fragetext-Zeile über den Antwortspalten (je Frage
über die zugehörigen Spalten zusammengeführt). Zuvor fehlte der Fragetext.
- Range-Ergebnis: Verteilung deckt die komplette Skala rangeMin..rangeMax in
rangeStep-Schritten ab, damit die X-Achse linear und vollständig ist
(vorher nur tatsächlich vorkommende Werte in gleichen Abständen).
- Teilnahmen/Rücklauf pro Frage als absolute Zahlen ("X von Y beantwortet",
"Z übersprungen") statt reiner Prozent-Rücklaufquote.
- Freitextantworten gruppiert: jede Antwort einmal mit exakter Häufigkeit,
ohne Prozentangaben und ohne Doppel-Auflistung.
- Frontend-Liste: "Link kopieren"-Button (absolute Reader-URL) für
veröffentlichte Umfragen; Aktiv-Umschalter mit Textlabel statt nur Punkt;
Aktionslinks öffnen im selben Tab statt in neuen Tabs.
- Duplizieren: Titel-Kollisionsprüfung ohne Ausschluss der Quell-ID, damit
aus "... - Kopie" korrekt "... - Kopie 2" wird statt eines Dubletten-Titels.
Der internalNote-Fehler beim Anlegen/Duplizieren war ein fehlendes
DB-Schema-Update (Spalte tl_survey.internalNote) und wurde per
contao:migrate auf der Testumgebung nachgezogen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
166 lines
6.7 KiB
YAML
166 lines
6.7 KiB
YAML
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"
|
||
duplicate: "Duplicate"
|
||
duplicate_confirm: "Are you sure you want to duplicate the survey \"%title%\" with all questions?"
|
||
delete: "Delete"
|
||
delete_confirm: "Delete this survey? This will permanently remove all questions, answers, and results as well. Alternatively, you can simply deactivate the survey temporarily."
|
||
delete_confirm_second: "Are you really sure?"
|
||
published: "published"
|
||
draft: "Draft"
|
||
locked: "locked"
|
||
active: "active"
|
||
inactive: "inactive"
|
||
questions: "%count% questions"
|
||
participations: "%count% participations"
|
||
edit: "Edit"
|
||
public_view: "Public view"
|
||
copy_link: "Copy link"
|
||
copy_link_done: "Link copied!"
|
||
active_state: "Active"
|
||
inactive_state: "Deactivated"
|
||
draft_view: "Draft view"
|
||
show_results: "Show results"
|
||
publish: "Publish survey"
|
||
publish_done: "Survey published"
|
||
publish_help: "Publish survey. No further changes will be possible afterwards."
|
||
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."
|
||
entry_not_allowed: "This page cannot be opened directly. Please switch to edit mode via the survey list."
|
||
create_title: "Create new survey"
|
||
label_title: "Title"
|
||
label_survey_title: "Survey title"
|
||
label_description: "Description"
|
||
create_submit: "Create survey"
|
||
back_to_list: "Back to list"
|
||
editors: "Editors"
|
||
editors_count: "%count% member(s)"
|
||
published: "published"
|
||
draft: "draft"
|
||
locked: "locked"
|
||
structure_locked: "The questions of this survey are locked because the survey was published or first participations already exist. The metadata can still be maintained."
|
||
publish_confirm: "Are you really sure? After the survey has been published, no further changes will be possible!"
|
||
deactivate_survey: "Temporarily deactivate survey"
|
||
activate_survey: "Reactivate survey"
|
||
save: "Save"
|
||
save_metadata: "Save metadata"
|
||
save_this_question: "Save this question"
|
||
save_new_question: "Save new question"
|
||
dirty_metadata: "Unsaved changes in metadata"
|
||
dirty_question: "Unsaved changes in this question"
|
||
dirty_new_question: "Unsaved changes in the new question"
|
||
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."
|
||
new_question: "Create new question"
|
||
reorder_question: "Reorder question"
|
||
save_question_order: "Save new order"
|
||
open_question: "Open accordion"
|
||
close_question: "Close accordion"
|
||
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_type_yes_no_maybe: "Yes/No/Maybe"
|
||
question_type_choice: "Choice"
|
||
question_type_range: "Rating"
|
||
question_type_text: "Free text"
|
||
answer_yes: "Yes"
|
||
answer_no: "No"
|
||
answer_maybe: "Maybe"
|
||
question_progress: "Question %current%"
|
||
jump_to: "continue to question %position%: %label%"
|
||
current_value: "Current value"
|
||
back: "Back"
|
||
next: "Next"
|
||
preview_badge: "Draft"
|
||
preview_notice: "This is a draft view. Answers can be tested, but they will not be stored."
|
||
preview_thanks_text: "The test run is complete. Answers were not stored."
|
||
results:
|
||
no_description: "No description available."
|
||
completed_submissions: "%count% completed participations"
|
||
participations: "%count% participations"
|
||
questions: "%count% questions"
|
||
download_excel: "Download results as Excel"
|
||
download_pdf: "Download results as PDF"
|
||
answers: "%count% answers"
|
||
answered: "%count% of %total% answered"
|
||
skipped: "%count% skipped"
|
||
answer_count: "%count%×"
|
||
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"
|
||
participations: "%count% participations"
|
||
questions: "%count% questions"
|
||
export_prefix: "Export %date%"
|
||
answers: "%count% answers"
|
||
answered: "%count% of %total% answered"
|
||
skipped: "%count% skipped"
|
||
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"
|