// CompetenceTrack — i18n (German + English) // Simple translation system: t(key) returns the string for the current locale type TranslationDict = Record; const de: TranslationDict = { // App branding 'app.name': 'CompetenceTrack', 'app.subtitle': 'Freie Kompetenz- & Benotungsplattform für Schulen', 'app.tagline': 'Open-Source Software für kompetenzorientierte Beurteilung', // Navigation 'nav.dashboard': 'Dashboard', 'nav.classes': 'Klassen & Schüler', 'nav.competencies': 'Kompetenzraster', 'nav.progress': 'Lernfortschritt', 'nav.flower': 'Kompetenzblume', 'nav.assessments': 'Leistungsüberprüfungen', 'nav.grading': 'Benotung', 'nav.reports': 'Berichte', 'nav.student-detail': 'Schülerprofil', // Common actions 'action.save': 'Speichern', 'action.cancel': 'Abbrechen', 'action.delete': 'Löschen', 'action.edit': 'Bearbeiten', 'action.add': 'Hinzufügen', 'action.create': 'Erstellen', 'action.search': 'Suchen', 'action.filter': 'Filtern', 'action.export': 'Exportieren', 'action.close': 'Schließen', 'action.back': 'Zurück', 'action.next': 'Weiter', 'action.confirm': 'Bestätigen', 'action.refresh': 'Aktualisieren', 'action.download': 'Herunterladen', 'action.preview': 'Vorschau', 'action.assign': 'Zuweisen', 'action.select': 'Auswählen', 'action.view': 'Anzeigen', 'action.print': 'Drucken', 'action.generate': 'Erzeugen', 'action.finalize': 'Finalisieren', 'action.override': 'Überschreiben', 'action.log_entry': 'Eintrag loggen', 'action.create_assessment': 'Überprüfung erstellen', 'action.generate_report': 'Bericht erstellen', // Auth 'auth.login': 'Anmelden', 'auth.register': 'Registrieren', 'auth.logout': 'Abmelden', 'auth.email': 'E-Mail', 'auth.password': 'Passwort', 'auth.firstName': 'Vorname', 'auth.lastName': 'Nachname', 'auth.login_title': 'Bei CompetenceTrack anmelden', 'auth.register_title': 'Neues Konto erstellen', 'auth.login_subtitle': 'Geben Sie Ihre Zugangsdaten ein', 'auth.register_subtitle': 'Erstellen Sie ein kostenloses Konto', 'auth.no_account': 'Noch kein Konto?', 'auth.has_account': 'Bereits ein Konto?', 'auth.error.invalid_credentials': 'Ungültige Zugangsdaten', 'auth.error.email_exists': 'E-Mail bereits registriert', 'auth.error.generic': 'Ein Fehler ist aufgetreten', 'auth.welcome_back': 'Willkommen zurück', // Form labels 'label.name': 'Name', 'label.date': 'Datum', 'label.note': 'Bemerkung', 'label.score': 'Punktzahl', 'label.level': 'Niveau', 'label.subject': 'Fach', 'label.class': 'Klasse', 'label.grade': 'Jahrgangsstufe', 'label.type': 'Typ', 'label.weight': 'Gewichtung', 'label.max_score': 'Maximale Punktzahl', 'label.description': 'Beschreibung', 'label.school_type': 'Schulform', 'label.period': 'Zeitraum', 'label.school_year': 'Schuljahr', 'label.status': 'Status', 'label.category': 'Kategorie', 'label.competency': 'Kompetenz', 'label.mastery': 'Kompetenzniveau', 'label.weight_percent': 'Gewichtung (%)', 'label.source_type': 'Quelltyp', 'label.target': 'Bezug', 'label.scale_definition': 'Notenskala', 'label.scheme_type': 'Notenschema-Typ', 'label.student_count': 'Schüleranzahl', 'label.external_id': 'Externe ID', 'label.date_of_birth': 'Geburtsdatum', 'label.first_name': 'Vorname', 'label.last_name': 'Nachname', // Status labels 'status.active': 'Aktiv', 'status.draft': 'Entwurf', 'status.final': 'Final', 'status.pending': 'Ausstehend', 'status.processing': 'In Bearbeitung', 'status.completed': 'Erledigt', 'status.failed': 'Fehlgeschlagen', 'status.enrolled': 'Eingeschult', 'status.not_yet_assessed': 'Noch nicht beurteilt', // Subject names 'subject.math': 'Mathematik', 'subject.german': 'Deutsch', 'subject.english': 'Englisch', 'subject.science': 'Naturwissenschaften', 'subject.art': 'Kunst', 'subject.music': 'Musik', 'subject.physical_ed': 'Sport', 'subject.history': 'Geschichte', 'subject.geography': 'Geographie', 'subject.religion': 'Religion', // School types 'school_type.elementary': 'Grundschule', 'school_type.middle': 'Mittelschule', 'school_type.gymnasium': 'Gymnasium', 'school_type.other': 'Andere', // Mastery levels 'mastery.1': 'noch nicht erreicht', 'mastery.2': 'entwickelt sich', 'mastery.3': 'kompetent', 'mastery.4': 'weit entwickelt', 'mastery.level_1': 'Niveau 1 — noch nicht erreicht', 'mastery.level_2': 'Niveau 2 — entwickelt sich', 'mastery.level_3': 'Niveau 3 — kompetent', 'mastery.level_4': 'Niveau 4 — weit entwickelt', // Assessment types 'assessment_type.test': 'Klassenarbeit', 'assessment_type.oral': 'Mündliche Prüfung', 'assessment_type.project': 'Projekt', 'assessment_type.homework': 'Hausaufgabe', 'assessment_type.other': 'Sonstige', // Grading scheme types 'grading_type.numeric': 'Ziffernnote', 'grading_type.verbal': 'Verbale Beurteilung', 'grading_type.combined': 'Kombiniert', // Grading weight source types 'weight_source.learning_progress': 'Lernfortschritt', 'weight_source.assessment': 'Leistungsüberprüfung', // Dashboard 'dashboard.welcome': 'Willkommen', 'dashboard.overview': 'Übersicht', 'dashboard.classes': 'Meine Klassen', 'dashboard.recent_activity': 'Letzte Aktivitäten', 'dashboard.students_attention': 'Schüler mit Förderbedarf', 'dashboard.stats': 'Statistik', 'dashboard.total_students': 'Schüler insgesamt', 'dashboard.total_entries': 'Einträge insgesamt', 'dashboard.total_assessments': 'Überprüfungen insgesamt', 'dashboard.total_classes': 'Klassen insgesamt', 'dashboard.total_reports': 'Berichte insgesamt', 'dashboard.quick_actions': 'Schnellzugriff', 'dashboard.quick_actions_subtitle': 'Häufige Aktionen direkt erreichbar', 'dashboard.quick_action_attendance': 'Anwesenheit', 'dashboard.quick_action_attendance_desc': 'Anwesenheitssitzung für eine Klasse erfassen.', 'dashboard.quick_action_assessment_desc': 'Neue Leistungsüberprüfung anlegen.', 'dashboard.quick_action_report_desc': 'Zeugnis- oder Entwicklungsbericht erstellen.', 'dashboard.quick_action_parent': 'Elterngespräch', 'dashboard.quick_action_parent_desc': 'Nachricht an Eltern verfassen oder beantworten.', 'dashboard.no_classes': 'Keine Klassen vorhanden. Erstellen Sie eine Klasse, um zu beginnen.', 'dashboard.no_recent_activity': 'Keine aktuellen Aktivitäten.', 'dashboard.no_students_attention': 'Alle Schüler sind auf einem guten Weg!', 'dashboard.student_name': 'Schüler', 'dashboard.average_mastery': 'Durchschnittsniveau', 'dashboard.class_name': 'Klasse', 'dashboard.competency_name': 'Kompetenz', 'dashboard.entry_date': 'Datum', 'dashboard.mastery_level': 'Niveau', 'dashboard.teacher': 'Lehrkraft', 'dashboard.this_week': 'Diese Woche', 'dashboard.all_time': 'Gesamt', // Classes view 'classes.title': 'Klassen & Schüler', 'classes.select_class': 'Wählen Sie eine Klasse', 'classes.class_details': 'Klassendetails', 'classes.student_roster': 'Schülerliste', 'classes.add_student': 'Schüler hinzufügen', 'classes.add_student_title': 'Neuen Schüler hinzufügen', 'classes.enroll_student': 'Schüler einschulen', 'classes.enroll_student_title': 'Bestehenden Schüler einschulen', 'classes.assign_template': 'Kompetenzraster zuweisen', 'classes.create_class': 'Neue Klasse erstellen', 'classes.no_students': 'Keine Schüler in dieser Klasse.', 'classes.no_classes': 'Keine Klassen vorhanden.', 'classes.enrollment_status': 'Einschulungsstatus', 'classes.entry_count': 'Einträge', 'classes.teacher_list': 'Lehrkräfte', 'classes.homeroom_teacher': 'Klassenleitung', 'classes.subject_teacher': 'Fachlehrkraft', 'classes.grade_level': 'Jahrgangsstufe', 'classes.school_year_label': 'Schuljahr', // Competency grid view 'competencies.title': 'Kompetenzraster', 'competencies.template_library': 'Raster-Bibliothek', 'competencies.template_details': 'Raster-Details', 'competencies.assign_to_class': 'Klasse zuweisen', 'competencies.categories': 'Kategorien', 'competencies.competencies': 'Kompetenzen', 'competencies.mastery_levels': 'Kompetenzniveaus', 'competencies.no_templates': 'Keine Kompetenzraster vorhanden.', 'competencies.no_categories': 'Keine Kategorien definiert.', 'competencies.grid_structure': 'Rasterstruktur', 'competencies.assignments': 'Zuweisungen', 'competencies.quick_guide_title': 'Schnellübersicht', 'competencies.quick_guide_subtitle': 'Überblick über Ihre Kompetenzraster-Bibliothek', 'competencies.total_templates': 'Raster', 'competencies.total_categories': 'Kategorien', 'competencies.total_competencies': 'Kompetenzen', 'competencies.by_subject_breakdown': 'Kompetenzen nach Fach', 'competencies.no_subjects_yet': 'Noch keine Fächer zugewiesen.', 'competencies.recent_templates': 'Raster-Bibliothek', 'competencies.no_recent_templates': 'Noch keine Raster angelegt.', 'competencies.no_subject': 'Ohne Fach', 'competencies.filter_school_type': 'Schulform', 'competencies.filter_subject': 'Fach', 'competencies.filter_grade': 'Jahrgangsstufe', 'competencies.global_template': 'Globaler Raster', 'competencies.school_template': 'Schulraster', 'competencies.assignment_exists': 'Raster bereits zugewiesen', 'competencies.assignment_success': 'Raster erfolgreich zugewiesen', 'competencies.create_template': 'Neues Raster erstellen', 'competencies.version': 'Version', 'competencies.grade_range': 'Jahrgangs­stufe {min}–{max}', 'competencies.used_in_classes': 'Verwendet in {count} Klasse(n)', // Progress entries view 'progress.title': 'Lernfortschritt', 'progress.select_class': 'Klasse auswählen', 'progress.select_student': 'Schüler auswählen', 'progress.log_entry': 'Eintrag loggen', 'progress.log_entry_title': 'Neuen Lernfortschritt loggen', 'progress.timeline': 'Zeitleiste', 'progress.student_timeline': 'Schüler-Zeitleiste', 'progress.no_entries': 'Keine Einträge vorhanden.', 'progress.entry_saved': 'Eintrag gespeichert', 'progress.bulk_saved': 'Einträge gespeichert', 'progress.select_competency': 'Kompetenz auswählen', 'progress.mastery_level': 'Kompetenzniveau', 'progress.note_optional': 'Bemerkung (optional)', 'progress.date': 'Datum', 'progress.category': 'Kategorie', 'progress.competency': 'Kompetenz', 'progress.competency_code': 'Code', 'progress.no_class_selected': 'Wählen Sie eine Klasse, um die Schülerliste zu sehen.', 'progress.no_students': 'Keine Schüler in dieser Klasse.', 'progress.no_template_assigned': 'Kein Kompetenzraster für dieses Fach zugewiesen. Weisen Sie zuerst ein Raster zu.', 'progress.select_subject': 'Fach auswählen', 'progress.empty_step_title': 'Lernfortschritte erfassen', 'progress.empty_step_subtitle': 'Wählen Sie eine Klasse und ein Fach, um individuelle Lernfortschritte zu dokumentieren.', 'progress.how_it_works_title': 'So funktioniert\u2019s', 'progress.how_it_works_subtitle': 'In drei Schritten zum ersten Lernfortschritt', 'progress.empty_step1_title': 'Klasse wählen', 'progress.empty_step1_desc': 'Wählen Sie oben eine Klasse aus dem Dropdown.', 'progress.empty_step2_title': 'Fach wählen', 'progress.empty_step2_desc': 'Wählen Sie das Fach, dessen Kompetenzen Sie bewerten möchten.', 'progress.empty_step3_title': 'Fortschritt eintragen', 'progress.empty_step3_desc': 'Klicken Sie auf eine Kompetenz und tragen Sie das Niveau (1–4) ein.', // Competence flower view 'flower.title': 'Kompetenzblume', 'flower.select_class': 'Klasse auswählen', 'flower.select_student': 'Schüler auswählen', 'flower.select_subject': 'Fach auswählen', 'flower.radar_chart': 'Kompetenzblume', 'flower.breakdown': 'Detailübersicht', 'flower.category': 'Kategorie', 'flower.average_mastery': 'Durchschnittsniveau', 'flower.assessed': 'Beurteilt', 'flower.total': 'Gesamt', 'flower.export_chart': 'Diagramm exportieren', 'flower.no_data': 'Wählen Sie Klasse, Fach und Schüler, um die Kompetenzblume zu sehen.', 'flower.no_progress': 'Keine Lernfortschrittsdaten für diesen Schüler vorhanden.', 'flower.petal_legend': 'Jede Achse zeigt den Durchschnitt der Kompetenzniveaus pro Kategorie', // Assessments view 'assessments.title': 'Leistungsüberprüfungen', 'assessments.list': 'Überprüfungen', 'assessments.create': 'Neue Überprüfung erstellen', 'assessments.create_title': 'Neue Leistungsüberprüfung erstellen', 'assessments.bulk_grading': 'Bulk-Benotung', 'assessments.bulk_grading_title': 'Benotung für {title}', 'assessments.select_class': 'Klasse auswählen', 'assessments.select_subject': 'Fach auswählen', 'assessments.no_assessments': 'Keine Leistungsüberprüfungen vorhanden.', 'assessments.results_count': 'Ergebnisse', 'assessments.linked_competencies': 'Verknüpfte Kompetenzen', 'assessments.enter_scores': 'Punkte eingeben', 'assessments.scores_saved': 'Punkte gespeichert', 'assessments.no_students': 'Keine Schüler vorhanden.', 'assessments.assessment_type': 'Überprüfungstyp', 'assessments.max_score': 'Maximale Punktzahl', 'assessments.weight': 'Gewichtung', 'assessments.link_competency': 'Kompetenz verknüpfen', // Grading view 'grading.title': 'Benotung', 'grading.schemes': 'Notenschemata', 'grading.weight_rules': 'Gewichtung', 'grading.computed_grades': 'Berechnete Noten', 'grading.breakdown': 'Noten­aufschlüsselung', 'grading.create_scheme': 'Notenschema erstellen', 'grading.create_scheme_title': 'Neues Notenschema erstellen', 'grading.add_weight_rule': 'Gewichtung hinzufügen', 'grading.override_grade': 'Note überschreiben', 'grading.override_reason': 'Begründung der Überschreibung', 'grading.compute_grades': 'Noten berechnen', 'grading.grades_computed': 'Noten berechnet', 'grading.no_schemes': 'Keine Notenschemata vorhanden.', 'grading.no_grades': 'Noch keine Noten berechnet.', 'grading.select_class': 'Klasse auswählen', 'grading.select_subject': 'Fach auswählen', 'grading.select_scheme': 'Schema auswählen', 'grading.student': 'Schüler', 'grading.computed_value': 'Berechneter Wert', 'grading.finalized': 'Finalisiert', 'grading.overridden': 'Überschrieben', 'grading.period': 'Halbjahr', // Reports view 'reports.title': 'Berichte', 'reports.generate': 'Bericht erstellen', 'reports.generate_title': 'Neuen Bericht erstellen', 'reports.preview': 'Berichtsvorschau', 'reports.export_pdf': 'Als PDF exportieren', 'reports.bulk_generate': 'Bulk-Erstellung für Klasse', 'reports.select_student': 'Schüler auswählen', 'reports.select_class': 'Klasse auswählen', 'reports.draft_reports': 'Entwurfsberichte', 'reports.final_reports': 'Finalisierte Berichte', 'reports.no_reports': 'Keine Berichte vorhanden.', 'reports.sections': 'Berichtsteile', 'reports.generated_by': 'Erstellt von', 'reports.generated_at': 'Erstellt am', 'reports.includes_grades': 'Mit Noten', 'reports.finalize_report': 'Bericht finalisieren', 'reports.edit_section': 'Berichtsteil bearbeiten', 'reports.section_text': 'Text', 'reports.category_name': 'Kategorie', 'reports.report_saved': 'Bericht gespeichert', 'reports.report_finalized': 'Bericht finalisiert', 'reports.select_period': 'Zeitraum auswählen', 'reports.empty_subtitle': 'Wählen Sie eine Klasse aus, um Berichte zu erstellen und zu verwalten.', // Empty states 'empty.no_data': 'Keine Daten vorhanden.', 'empty.no_results': 'Keine Ergebnisse.', 'empty.no_items': 'Keine Einträge.', 'empty.add_first': 'Fügen Sie den ersten Eintrag hinzu, um zu beginnen.', 'empty.select_class': 'Wählen Sie eine Klasse aus der Navigation.', 'empty.loading': 'Laden...', // Error messages 'error.generic': 'Ein Fehler ist aufgetreten.', 'error.network': 'Netzwerkfehler. Bitte versuchen Sie es erneut.', 'error.not_authenticated': 'Sie sind nicht angemeldet.', 'error.forbidden': 'Sie haben keine Berechtigung für diese Aktion.', 'error.not_found': 'Die angeforderte Ressource wurde nicht gefunden.', 'error.validation': 'Überprüfen Sie Ihre Eingaben.', 'error.unexpected': 'Ein unerwarteter Fehler ist aufgetreten.', // Toast messages 'toast.saved': 'Gespeichert', 'toast.created': 'Erstellt', 'toast.deleted': 'Gelöscht', 'toast.updated': 'Aktualisiert', 'toast.error': 'Fehler', 'toast.success': 'Erfolgreich', 'toast.info': 'Information', 'toast.warning': 'Warnung', // Theme 'theme.light': 'Hell', 'theme.dark': 'Dunkel', 'theme.system': 'System', 'theme.toggle': 'Farbschema ändern', // Language 'language.de': 'Deutsch', 'language.en': 'Englisch', 'language.toggle': 'Sprache ändern', // Role 'role.teacher': 'Lehrkraft', 'role.school_admin': 'Schuladmin', 'role.super_admin': 'Superadmin', // Assessment bulk grading 'assessments.save_all': 'Alle speichern', 'assessments.score_invalid': 'Punktzahl muss zwischen 0 und {max} liegen', 'assessments.score_out_of_range': 'Außerhalb des Bereichs', 'assessments.mastery_buttons': 'Kompetenzniveau', 'assessments.students_count': '{count} Schüler', 'assessments.validation_error': 'Bitte überprüfen Sie die Eingaben', // Grading enhancements 'grading.scale_reference': 'Notenskala-Referenz', 'grading.grade_good': 'Gut', 'grading.grade_ok': 'Befriedigend', 'grading.grade_needs_improvement': 'Verbesserungsbedarf', 'grading.override_title': 'Note überschreiben', 'grading.override_student': 'Schüler', 'grading.override_computed': 'Berechnete Note', 'grading.override_new': 'Neue Note', 'grading.override_justification': 'Begründung (Pflicht)', 'grading.override_justification_required': 'Begründung ist erforderlich', 'grading.override_saved': 'Note überschrieben', 'grading.weight_breakdown': 'Gewichtungsaufschlüsselung', 'grading.weight_progress': 'Fortschritt', // Report narrative generation 'reports.generating': 'Bericht wird erstellt...', 'reports.narrative_intro': 'Einleitung', 'reports.narrative_competency': 'Kompetenzbereich', 'reports.narrative_summary': 'Zusammenfassung', 'reports.download_pdf': 'Als PDF herunterladen', 'reports.pdf_coming_soon': 'PDF-Export wird in einer künftigen Version verfügbar sein.', 'reports.edit_sections': 'Abschnitte bearbeiten', 'reports.section_edited': 'Abschnitt aktualisiert', 'reports.generate_narrative': 'Berichtstext erzeugen', 'reports.includes_grades_label': 'Noten einbeziehen', // Onboarding checklist 'onboarding.title': 'Erste Schritte', 'onboarding.subtitle': 'Follow these steps to set up CompetenceTrack', 'onboarding.step_create_class': 'Erstellen Sie Ihre erste Klasse', 'onboarding.step_assign_grid': 'Weisen Sie ein Kompetenzraster zu', 'onboarding.step_add_students': 'Fügen Sie Schüler hinzu', 'onboarding.step_log_entry': 'Loggen Sie Ihren ersten Eintrag', 'onboarding.step_create_class_desc': 'Erstellen Sie eine Klasse, um Schüler zu verwalten.', 'onboarding.step_assign_grid_desc': 'Weisen Sie ein Kompetenzraster zu, um Kompetenzen zu tracken.', 'onboarding.step_add_students_desc': 'Fügen Sie Schüler zu Ihrer Klasse hinzu.', 'onboarding.step_log_entry_desc': 'Erfassen Sie den Lernfortschritt eines Schülers.', 'onboarding.all_set': 'Sie sind bereit!', 'onboarding.all_set_desc': 'Sie haben alle Einrichtungsschritte abgeschlossen. Viel Erfolg!', 'onboarding.progress': '{completed} von {total} Schritten abgeschlossen', 'onboarding.go_to_classes': 'Zu den Klassen', 'onboarding.go_to_grids': 'Zu den Kompetenzrastern', 'onboarding.go_to_progress': 'Zum Lernfortschritt', // Student profile 'student.profile': 'Schülerprofil', 'student.quick_stats': 'Schnellstatistik', 'student.total_entries': 'Einträge gesamt', 'student.avg_mastery': 'Durchschnittsniveau', 'student.recent_entries': 'Neueste Einträge', 'student.view_flower': 'Kompetenzblume anzeigen', 'student.class': 'Klasse', 'student.date_of_birth': 'Geburtsdatum', // Template assignment flow 'classes.assign_template_title': 'Kompetenzraster zuweisen', 'classes.assign_step1': '1. Fach auswählen', 'classes.assign_step2': '2. Raster auswählen', 'classes.assign_step3': '3. Zuweisung bestätigen', 'classes.assign_filtered': 'Gefiltert nach Schulform und Jahrgangsstufe', 'classes.assign_confirm': 'Zuweisung bestätigen', 'classes.assign_review': 'Überprüfung', 'classes.assign_subject': 'Fach', 'classes.assign_no_templates': 'Keine passenden Raster gefunden.', // Footer 'footer.copyright': 'CompetenceTrack — Freie Schulsoftware', 'footer.version': 'Version 1.0', 'footer.oss': 'Open Source', 'sidebar.eco_message': 'Papier sparen, Umwelt schutzen', 'dashboard.env_tip_title': 'Umwelttip', 'dashboard.env_tip_text': 'Digitale Kompetenznachweise sparen Papier und schutzen die Umwelt.', 'settings.demo_data_title': 'Demo-Daten', 'settings.demo_data_desc': 'Demo-Daten werden automatisch erstellt und können gelöscht werden.', 'settings.demo_record_count': 'Datensatze', 'settings.demo_delete_all_data': 'Alle Demo-Daten löschen', 'settings.demo_delete_confirm_data': 'Wirklich alle Demo-Daten (Kompetenznachweise, Bewertungen, Berichte) löschen? Die Demo-Konten bleiben bestehen.', 'settings.demo_data_deleted': 'Demo-Daten gelöscht', 'settings.env_tip': 'Papier sparen, Umwelt schutzen — digitale Nachweise statt Druck.', // New styling keys 'dashboard.start_here': 'Jetzt beginnen!', 'date.today': 'Heute', 'date.yesterday': 'Gestern', 'date.days_ago': '{count} Tage zuvor', 'date.weeks_ago': '{count} Wochen zuvor', 'progress.entries': 'Einträge', 'competencies.expand_all': 'Alle öffnen', 'competencies.collapse_all': 'Alle schließen', 'flower.class_average': 'Klassendurchschnitt', 'auth.mission_title': 'Kompetenzorientierte Beurteilung für alle', 'auth.feature_competencies': 'Kompetenzraster & Lernfortschritt', 'auth.feature_student_centered': 'Schülerzentrierte Beurteilung', 'auth.feature_open_source': 'Freie & Open-Source Software', 'grading.click_compute': 'Klicken Sie "Noten berechnen" zum Start', // New styling keys (round 2) 'header.select_year': 'Schuljahr', 'header.notifications': 'Aktivitäten', 'auth.feature_reports': 'Berichte & Zeugnisse', 'auth.feature_flower': 'Kompetenzblume', 'flower.hide_average': 'Vergleich aus', 'flower.show_average': 'Vergleich an', 'flower.download_png': 'Als PNG', 'flower.compare_with': 'Vergleichen mit', 'flower.compare_clear': 'Vergleich entfernen', 'flower.compare_legend': 'Vergleich', 'grading.grade_distribution': 'Notenverteilung', 'grading.trend_title': 'Notenverlauf', 'grading.trend_desc': 'Entwicklung der Durchschnittsnote im Zeitverlauf', 'grading.trend_average': 'Klassenschnitt', // Navigation (new view) 'nav.settings': 'Einstellungen', // Settings view 'settings.title': 'Einstellungen & Verwaltung', 'settings.tab_school': 'Schulinfo', 'settings.tab_years': 'Schuljahre', 'settings.tab_subjects': 'Fächer', 'settings.tab_audit': 'Audit-Log', 'settings.tab_data': 'Datenverwaltung', 'settings.school_name': 'Schulname', 'settings.school_type': 'Schulform', 'settings.school_country': 'Land', 'settings.school_timezone': 'Zeitzone', 'settings.school_address': 'Adresse', 'settings.school_saved': 'Schulinfo gespeichert', 'settings.year_label': 'Bezeichnung', 'settings.year_start': 'Beginn', 'settings.year_end': 'Ende', 'settings.year_created': 'Schuljahr erstellt', 'settings.year_classes': 'Klassen', 'settings.year_enrollments': 'Einschreibungen', 'settings.subject_name': 'Fachname', 'settings.subject_grade_min': 'Min. Jahrgang', 'settings.subject_grade_max': 'Max. Jahrgang', 'settings.subject_created': 'Fach erstellt', 'settings.subject_updated': 'Fach aktualisiert', 'settings.subject_deleted': 'Fach gelöscht', 'settings.subject_global': 'Global', 'settings.subject_school': 'Schulspezifisch', 'settings.audit_title': 'Audit-Log', 'settings.audit_action': 'Aktion', 'settings.audit_entity': 'Entität', 'settings.audit_actor': 'Akteur', 'settings.audit_timestamp': 'Zeitpunkt', 'settings.audit_filter_action': 'Aktion filtern', 'settings.audit_filter_date_from': 'Von', 'settings.audit_filter_date_to': 'Bis', 'settings.audit_all_actions': 'Alle Aktionen', 'settings.audit_no_entries': 'Keine Audit-Einträge gefunden', 'settings.data_title': 'Datenverwaltung & DSGVO', 'settings.data_export_csv': 'CSV-Export', 'settings.data_export_students': 'Schülerliste', 'settings.data_export_progress': 'Lernfortschritte', 'settings.data_export_assessments': 'Leistungsüberprüfungen', 'settings.data_export_grades': 'Noten', 'settings.data_export_download': 'CSV herunterladen', 'settings.data_export_started': 'Export gestartet', 'settings.data_erasure': 'Datenlöschung (DSGVO)', 'settings.data_erasure_desc': 'Gemäß DSGVO können Sie die Löschung personenbezogener Daten anfordern.', 'settings.data_erasure_request': 'Löschungsantrag stellen', 'settings.data_erasure_requested': 'Löschungsantrag gestellt', 'settings.data_erasure_scope': 'Bereich', 'settings.data_erasure_scope_student': 'Einzelner Schüler', 'settings.data_erasure_scope_class': 'Klasse', 'settings.data_erasure_scope_school': 'Gesamte Schule', 'settings.data_erasure_confirm': 'Löschung bestätigen', // PDF export 'pdf.print_report': 'Bericht drucken', 'pdf.print_view': 'Druckansicht', 'pdf.export_pdf': 'PDF exportieren', 'pdf.generated': 'PDF-Bericht wird generiert', 'pdf.report_title': 'Kompetenzbericht', 'pdf.student': 'Schüler/in', 'pdf.class': 'Klasse', 'pdf.period': 'Zeitraum', 'pdf.date': 'Datum', // CSV export 'csv.export_title': 'Daten exportieren', 'csv.export_type': 'Export-Typ', 'csv.export_class': 'Klasse', 'csv.export_year': 'Schuljahr', 'csv.export_success': 'CSV-Datei erfolgreich exportiert', 'csv.export_error': 'Fehler beim Export', // Notifications 'notification.title': 'Aktuelle Aktivitäten', 'notification.progress_logged': 'Lernfortschritt eingeloggt', 'notification.assessment_created': 'Leistungsüberprüfung erstellt', 'notification.grade_computed': 'Noten berechnet', 'notification.report_generated': 'Bericht erstellt', 'notification.preferences': 'Benachrichtigungseinstellungen', 'notification.show_progress': 'Lernfortschritte anzeigen', 'notification.show_assessments': 'Überprüfungen anzeigen', 'notification.show_grades': 'Noten anzeigen', 'notification.show_reports': 'Berichte anzeigen', 'notification.no_recent': 'Keine aktuellen Aktivitäten', 'notification.mark_read': 'Als gelesen markieren', // School year context 'context.all_years': 'Alle Schuljahre', 'context.year_selected': 'Schuljahr ausgewählt', // User management 'settings.tab_users': 'Benutzer', 'users.title': 'Benutzerverwaltung', 'users.subtitle': 'Lehrkräfte & Administratoren verwalten', 'users.create_user': 'Benutzer erstellen', 'users.edit_user': 'Benutzer bearbeiten', 'users.delete_user': 'Benutzer löschen', 'users.delete_confirm': 'Benutzer wirklich deaktivieren? Der Zugriff wird sofort gesperrt.', 'users.created': 'Benutzerkonto erstellt', 'users.updated': 'Benutzerkonto aktualisiert', 'users.deleted': 'Benutzerkonto deaktiviert', 'users.no_users': 'Keine Benutzer gefunden', 'users.role': 'Rolle', 'users.email': 'E-Mail', 'users.password': 'Passwort', 'users.password_hint': 'Mindestens 8 Zeichen', 'users.assigned_classes': 'Zugeordnete Klassen', 'users.no_classes_assigned': 'Keine Klassen zugeordnet', 'users.assign_classes': 'Klassen zuordnen', 'users.active': 'Aktiv', 'users.inactive': 'Inaktiv', 'users.count': '{count} Benutzer', 'users.last_active': 'Zuletzt aktiv', 'users.created_at': 'Erstellt am', // CSV student import 'classes.import_csv': 'CSV importieren', 'classes.import_csv_title': 'Schüler aus CSV-Datei importieren', 'classes.import_csv_subtitle': 'Wählen Sie eine CSV-Datei mit Schülerdaten (firstName, lastName, dateOfBirth, externalId)', 'classes.import_csv_select_file': 'CSV-Datei auswählen', 'classes.import_csv_drag': 'Datei hierher ziehen oder klicken zum Auswählen', 'classes.import_csv_preview': 'Vorschau', 'classes.import_csv_import': 'Importieren', 'classes.import_csv_success': '{success} Schüler erfolgreich importiert', 'classes.import_csv_errors': '{errors} Fehler beim Import', 'classes.import_csv_no_data': 'Keine Daten zum Importieren gefunden', 'classes.import_csv_invalid_format': 'Ungültiges CSV-Format. Spalten: firstName, lastName, dateOfBirth, externalId', 'classes.import_csv_processing': 'Import läuft…', 'classes.import_csv_template': 'Vorlage herunterladen', 'classes.import_csv_file_selected': 'Datei ausgewählt: {name} ({rows} Zeilen)', 'classes.import_csv_row': 'Zeile {n}', 'classes.import_csv_results': 'Importergebnisse', 'classes.import_csv_done': 'Fertig', 'classes.import_csv_external_id': 'Externe ID', 'classes.import_csv_first_name': 'Vorname', 'classes.import_csv_last_name': 'Nachname', 'classes.import_csv_dob': 'Geburtsdatum', // Student detail view 'student_detail.title': 'Schülerprofil', 'student_detail.back': 'Zurück', 'student_detail.age': 'Alter', 'student_detail.years': 'Jahre', 'student_detail.school': 'Schule', 'student_detail.class': 'Klasse', 'student_detail.external_id': 'Externe ID', 'student_detail.date_of_birth': 'Geburtsdatum', 'student_detail.quick_stats': 'Schnellstatistik', 'student_detail.total_entries': 'Fortschritts-einträge', 'student_detail.avg_mastery': 'Ø Kompetenzniveau', 'student_detail.latest_grade': 'Aktuellste Note', 'student_detail.competence_flower': 'Kompetenzblume', 'student_detail.progress_timeline': 'Lernfortschritt (Verlauf)', 'student_detail.assessment_results': 'Leistungsüberprüfungen', 'student_detail.computed_grades': 'Berechnete Noten', 'student_detail.reports': 'Berichte', 'student_detail.no_data': 'Keine Daten verfügbar', 'student_detail.no_progress_entries': 'Noch keine Fortschrittseinträge', 'student_detail.no_assessments': 'Keine Prüfungsergebnisse', 'student_detail.no_grades': 'Keine berechneten Noten', 'student_detail.no_reports': 'Keine Berichte erstellt', 'student_detail.no_flower': 'Keine Kompetenzblume verfügbar', 'student_detail.no_flower_hint': 'Wählen Sie eine Klasse & ein Fach in der Kompetenzblumen-Ansicht', 'student_detail.view_report': 'Bericht anzeigen', 'student_detail.view_flower': 'Vollständige Kompetenzblume', 'student_detail.score': 'Punktzahl', 'student_detail.mastery': 'Niveau', 'student_detail.assessment': 'Überprüfung', 'student_detail.date': 'Datum', 'student_detail.subject': 'Fach', 'student_detail.value': 'Wert', 'student_detail.value_hint': 'Werte 0–4 (Kompetenzstufe)', 'student_detail.period': 'Zeitraum', 'student_detail.status': 'Status', 'student_detail.generated_at': 'Erstellt am', 'student_detail.view_progress': 'Zum Fortschritt', 'student_detail.print_report': 'Bericht drucken', 'student_detail.select_subject_for_flower': 'Fach für Kompetenzblume wählen', 'student_detail.flower_not_assigned': 'Keine Vorlage für dieses Fach in dieser Klasse zugewiesen', 'student_detail.created_at': 'Erstellt', 'student_detail.note': 'Bemerkung', 'student_detail.competency': 'Kompetenz', 'student_detail.category': 'Kategorie', // ─── Styling polish: shared labels ────────────────────────────── 'polish.today_date': 'Heutiges Datum', 'polish.last_login': 'Letzte Anmeldung', 'polish.last_login_never': 'Erste Anmeldung', 'polish.class_overview': 'Klassenübersicht', 'polish.total_students': 'Schüler gesamt', 'polish.total_entries': 'Einträge gesamt', 'polish.avg_mastery': 'Ø Kompetenz', 'polish.class_health': 'Klassengesundheit', 'polish.health_good': 'Gut', 'polish.health_ok': 'Ok', 'polish.health_attention': 'Bedarf Aufmerksamkeit', 'polish.last_entry': 'Letzter Eintrag', 'polish.never': '—', 'polish.search_students': 'Schüler suchen…', 'polish.competency_count': 'Kompetenzen', 'polish.mastered': 'beherrscht', 'polish.mastery_distribution': 'Verteilung', 'polish.todays_entries': 'Einträge heute', 'polish.filter_today': 'Heute', 'polish.filter_week': 'Diese Woche', 'polish.filter_month': 'Dieser Monat', 'polish.filter_all': 'Alle', 'polish.keyboard_hint': 'Tastenkürzel: 1–4 für Niveau', 'polish.mastery_legend': 'Niveaulegende', 'polish.level_1': 'Beginnend', 'polish.level_2': 'Entwickelnd', 'polish.level_3': 'Gesichert', 'polish.level_4': 'Vertieft', 'polish.progress_over_time': 'Verlauf über Zeit', 'polish.vs_class_avg': 'Im Vergleich zum Klassenschnitt', 'polish.student_value': 'Schüler/in', 'polish.class_average': 'Klassenschnitt', 'polish.strengths': 'Stärken', 'polish.weaknesses': 'Entwicklungsfelder', 'polish.score_distribution': 'Punkteverteilung', 'polish.class_avg': 'Klassenschnitt', 'polish.best_performer': 'Bestleistung', 'polish.needs_support': 'Braucht Unterstützung', 'polish.grade_stats': 'Notenstatistik', 'polish.median': 'Median', 'polish.minimum': 'Min', 'polish.maximum': 'Max', 'polish.grade_trend': 'Notenverlauf', 'polish.grade_legend': 'Notenlegende', 'polish.grade_good': 'gut', 'polish.grade_satisfactory': 'befriedigend', 'polish.grade_needs_work': 'verbesserungsbedürftig', 'polish.report_completion': 'Berichtsfortschritt', 'polish.last_edited': 'Zuletzt bearbeitet', 'polish.workflow_draft': 'Entwurf', 'polish.workflow_review': 'In Prüfung', 'polish.workflow_published': 'Veröffentlicht', 'polish.report_logo': 'Schullogo', 'polish.quick_stats': 'Schnellstatistik', 'polish.total_users': 'Benutzer', 'polish.total_subjects': 'Fächer', 'polish.total_years': 'Schuljahre', 'polish.audit_search': 'Audit-Log durchsuchen…', 'polish.all_actions': 'Alle Aktionen', 'polish.create_action': 'Anlegen', 'polish.update_action': 'Aktualisieren', 'polish.delete_action': 'Löschen', 'polish.login_action': 'Anmeldung', 'polish.student_journey': 'Lernweg', 'polish.competency_grid': 'Kompetenzmatrix', 'polish.recent_achievements': 'Letzte Erfolge', 'polish.teacher_notes': 'Lehrernotizen', 'polish.no_notes': 'Noch keine Notizen', 'polish.demo_credentials': 'Demo-Zugang', 'polish.demo_email': 'demo@competencetrack.org', 'polish.demo_password': 'Demo2025!', 'polish.demo_hint': 'Klicken, um die Felder automatisch auszufüllen', 'polish.remember_me': 'Angemeldet bleiben', 'polish.forgot_password': 'Passwort vergessen?', 'polish.use_demo': 'Demo-Zugang verwenden', 'polish.show_password': 'Passwort anzeigen', 'polish.hide_password': 'Passwort verbergen', 'polish.breadcrumb_home': 'Start', 'polish.quick_search': 'Schnellsuche', 'polish.search_placeholder': 'Schüler, Klassen oder Kompetenzen suchen…', 'polish.no_results': 'Keine Ergebnisse', 'polish.help': 'Hilfe', 'polish.nav_setup': 'Einrichtung', 'polish.nav_teaching': 'Unterricht', 'polish.nav_analysis': 'Analyse', 'polish.students_found': '{count} Schüler gefunden', 'polish.class_avg_label': 'Klassenschnitt', 'polish.male': 'm', 'polish.female': 'w', 'polish.diverse': 'd', 'polish.print_preview': 'Druckvorschau', 'polish.report_header': 'Schulbericht', // ─── Analytics view ─────────────────────────────────────────────── 'nav.analytics': 'Analysen', 'analytics.title': 'Fortschrittsanalysen', 'analytics.subtitle': 'Umfassende Auswertung von Kompetenzentwicklung über Zeit, Klassen und Kompetenzen', 'analytics.filters': 'Filter', 'analytics.select_class': 'Klasse wählen', 'analytics.all_classes': 'Alle Klassen', 'analytics.select_subject': 'Fach wählen', 'analytics.all_subjects': 'Alle Fächer', 'analytics.date_range': 'Zeitraum', 'analytics.range_30': '30 Tage', 'analytics.range_90': '90 Tage', 'analytics.range_180': '180 Tage', 'analytics.range_365': '1 Jahr', 'analytics.range_all': 'Gesamt', 'analytics.mastery_trend': 'Kompetenzverlauf über Zeit', 'analytics.mastery_trend_desc': 'Durchschnittliches Kompetenzniveau pro Woche', 'analytics.class_comparison': 'Klassenvergleich', 'analytics.class_comparison_desc': 'Ø Kompetenzniveau je Klasse im gewählten Fach', 'analytics.mastery_distribution': 'Niveauverteilung', 'analytics.mastery_distribution_desc': 'Verteilung der eingetragenen Niveaus (1–4)', 'analytics.top_competencies': 'Stärkste Kompetenzen', 'analytics.bottom_competencies': 'Kompetenzen mit Förderbedarf', 'analytics.top_bottom_desc': 'Top 5 / Bottom 5 nach Ø Kompetenzniveau', 'analytics.activity_heatmap': 'Aktivitäts-Heatmap', 'analytics.activity_heatmap_desc': 'Anzahl Fortschrittseinträge pro Tag (letzte 90 Tage)', 'analytics.no_data': 'Keine Daten für die gewählten Filter', 'analytics.no_data_hint': 'Wählen Sie eine Klasse oder ein Fach, um Analysen anzuzeigen', 'analytics.entry_count': 'Einträge', 'analytics.avg_mastery': 'Ø Niveau', 'analytics.student_count': 'Schüler', 'analytics.level': 'Niveau', 'analytics.count': 'Anzahl', 'analytics.share': 'Anteil', 'analytics.week': 'KW', 'analytics.today': 'Heute', 'analytics.less': 'weniger', 'analytics.more': 'mehr', 'analytics.refresh': 'Aktualisieren', 'analytics.no_competencies': 'Keine Kompetenzen mit Einträgen gefunden', 'analytics.no_classes': 'Keine Klassen mit Einträgen gefunden', // ─── Mastery Matrix view ────────────────────────────────────────── 'nav.matrix': 'Kompetenzmatrix', 'matrix.title': 'Kompetenzmatrix', 'matrix.subtitle': 'Schüler × Kompetenzen — farbcodierte Niveau-Übersicht', 'matrix.select_class': 'Klasse wählen', 'matrix.select_subject': 'Fach wählen', 'matrix.no_template': 'Kein Kompetenzraster für diese Klasse / Fach-Kombination zugewiesen', 'matrix.no_template_hint': 'Weisen Sie ein Raster in der Klassenansicht zu', 'matrix.no_students': 'Keine Schüler in dieser Klasse eingeschrieben', 'matrix.entry_count_short': 'E', 'matrix.legend': 'Legende', 'matrix.legend_unassessed': 'Nicht beurteilt', 'matrix.legend_level_1': 'Niveau 1', 'matrix.legend_level_2': 'Niveau 2', 'matrix.legend_level_3': 'Niveau 3', 'matrix.legend_level_4': 'Niveau 4', 'matrix.row_avg': 'Schüler-Ø', 'matrix.col_avg': 'Klassen-Ø', 'matrix.entries_for': 'Einträge für', 'matrix.no_entries_for': 'Keine Einträge für diese Kompetenz', 'matrix.last_entry': 'Letzter Eintrag', 'matrix.export_csv': 'CSV exportieren', 'matrix.export_success': 'Matrix als CSV exportiert', 'matrix.competency': 'Kompetenz', 'matrix.student': 'Schüler/in', 'matrix.avg': 'Ø', 'matrix.entries': 'Einträge', 'matrix.choose_filters': 'Bitte Klasse und Fach wählen', 'matrix.choose_filters_hint': 'Wählen Sie oben eine Klasse und ein Fach, um die Matrix anzuzeigen', // ─── Teacher Notes (Student Detail) ─────────────────────────────── 'teacher_notes.title': 'Lehrernotizen', 'teacher_notes.subtitle': 'Private Notizen für Kolleginnen & Kollegen', 'teacher_notes.add': 'Notiz hinzufügen', 'teacher_notes.add_title': 'Neue Notiz', 'teacher_notes.edit_title': 'Notiz bearbeiten', 'teacher_notes.category': 'Kategorie', 'teacher_notes.content': 'Inhalt', 'teacher_notes.content_placeholder': 'Notiz eingeben…', 'teacher_notes.private': 'Privat (nur für Lehrkräfte sichtbar)', 'teacher_notes.created': 'Notiz erstellt', 'teacher_notes.updated': 'Notiz aktualisiert', 'teacher_notes.deleted': 'Notiz gelöscht', 'teacher_notes.delete_confirm': 'Notiz wirklich löschen?', 'teacher_notes.no_notes': 'Noch keine Notizen vorhanden', 'teacher_notes.no_notes_hint': 'Notizen sind nur für Lehrkräfte sichtbar', 'teacher_notes.count': '{count} Notizen', 'teacher_notes.by': 'von', 'teacher_notes.edit': 'Bearbeiten', 'teacher_notes.delete': 'Löschen', 'teacher_notes.save': 'Notiz speichern', 'teacher_notes.cat_general': 'Allgemein', 'teacher_notes.cat_behavior': 'Verhalten', 'teacher_notes.cat_academic': 'Leistung', 'teacher_notes.cat_intervention': 'Förderung', 'teacher_notes.cat_parent_contact': 'Elternkontakt', 'teacher_notes.error_min_content': 'Inhalt darf nicht leer sein', 'teacher_notes.you': 'Sie', 'teacher_notes.view_all': 'Alle anzeigen', // ─── Polish round 4: additional UI strings ────────────────────────── 'polish.insights_title': 'Erkenntnisse', 'polish.insight_mastery_up': 'Kompetenzniveau ist um {pct}% gestiegen', 'polish.insight_mastery_down': 'Kompetenzniveau ist um {pct}% gesunken', 'polish.insight_mastery_stable': 'Kompetenzniveau bleibt stabil', 'polish.insight_top_class': 'Klasse {class} führt mit Ø {avg}', 'polish.insight_mastered_pct': '{pct}% der Einträge auf Niveau 3+', 'polish.insight_peak_day': 'Aktivster Tag: {date} ({count} Einträge)', 'polish.insight_focus': 'Förderbedarf: {comp} (Ø {avg})', 'polish.coverage': 'Abdeckung', 'polish.matrix_click_hint': 'Auf eine Zelle klicken für Einzeldetails', 'polish.weekly_summary': 'Wochenüberblick', 'polish.this_week_vs_last': 'Diese Woche vs. letzte Woche', 'polish.this_week': 'Diese Woche', 'polish.last_week': 'Letzte Woche', 'polish.change': 'Veränderung', 'polish.mastery_indicator': 'Niveau', 'polish.template_usage': 'Klassen', 'polish.filter_by_category': 'Kategorie', // ─── Empty state polish & shared UI strings ─────────────────────── 'polish.please_choose': 'Bitte wählen…', 'polish.label_class': 'Klasse', 'polish.empty_title_no_class': 'Noch keine Klasse ausgewählt', 'polish.empty_subtitle_no_class': 'Wählen Sie oben eine Klasse aus, um Inhalte anzuzeigen und zu bearbeiten.', 'polish.empty_title_no_data': 'Hier ist noch nichts los', 'polish.empty_subtitle_no_data': 'Sobald Daten vorliegen, erscheinen sie an dieser Stelle.', 'polish.empty_cta_select_class': 'Klasse auswählen', 'polish.empty_title_competency_grid': 'Kein Kompetenzraster ausgewählt', 'polish.empty_subtitle_competency_grid': 'Wählen Sie links ein Raster aus der Bibliothek, um die Struktur und Details zu sehen.', 'polish.empty_title_flower': 'Keine Kompetenzblume verfügbar', 'polish.empty_subtitle_flower': 'Wählen Sie oben Klasse, Fach und Schüler/in aus, um die visuelle Kompetenzübersicht zu sehen.', 'polish.empty_title_progress': 'Noch keine Lernfortschritte', 'polish.empty_subtitle_progress': 'Wählen Sie eine Klasse und ein Fach, um Lernfortschritte zu erfassen oder anzusehen.', 'polish.empty_title_assessments': 'Keine Überprüfungen angelegt', 'polish.empty_subtitle_assessments': 'Wählen Sie oben eine Klasse und ein Fach, dann erstellen Sie Ihre erste Überprüfung.', 'polish.empty_title_grading': 'Keine Notenberechnung möglich', 'polish.empty_subtitle_grading': 'Wählen Sie oben eine Klasse und ein Fach, um Notenschemata anzulegen und Noten zu berechnen.', 'polish.empty_title_reports': 'Noch keine Berichte erstellt', 'polish.empty_subtitle_reports': 'Wählen Sie oben eine Klasse, um Berichte zu generieren und zu verwalten.', 'polish.empty_title_attendance': 'Anwesenheit verfolgen', 'polish.empty_subtitle_attendance': 'Wählen Sie oben eine Klasse aus, um Anwesenheitssitzungen anzulegen und auszuwerten.', 'polish.empty_title_matrix': 'Matrix noch nicht verfügbar', 'polish.empty_subtitle_matrix': 'Wählen Sie oben Klasse und Fach, um die Kompetenzmatrix mit allen Schülerinnen und Schülern zu sehen.', 'polish.trend_up': 'Steigend', 'polish.trend_down': 'Fallend', 'polish.trend_flat': 'Stabil', 'polish.this_week_bars': 'Diese Woche vs. letzte Woche', // ─── Empty state enrichments (Round 7) ─────────────────────────────── 'polish.recent_activity_title': 'Letzte Aktivitäten', 'polish.recent_activity_subtitle': 'Neueste Lernfortschritte über alle Klassen hinweg', 'polish.recent_activity_loading': 'Aktivitäten werden geladen…', 'polish.recent_activity_empty': 'Noch keine Aktivitäten vorhanden.', 'polish.grading_overview_title': 'Bewertungsübersicht', 'polish.grading_overview_subtitle': 'Notenschemata und Berechnungen für Ihre Schule', 'polish.grading_total_schemes': 'Notenschemata', 'polish.grading_subjects_covered': 'Fächer abgedeckt', 'polish.grading_distribution': 'Typverteilung', 'polish.grading_loading': 'Bewertungsdaten werden geladen…', 'polish.report_templates_title': 'Berichtsvorlagen', 'polish.report_templates_subtitle': 'Drei Berichtstypen für unterschiedliche Einsatzzwecke', 'polish.report_template_draft_name': 'Entwurfsbericht', 'polish.report_template_draft_desc': 'Beobachtungen und Texte während des Semesters sammeln und schrittweise ausbauen.', 'polish.report_template_final_name': 'Endgültiger Bericht', 'polish.report_template_final_desc': 'Fertiger Bericht mit narrativen Texten und optionalen Noten für die Zeugniskonferenz.', 'polish.report_template_pdf_name': 'PDF-Export', 'polish.report_template_pdf_desc': 'Druckfertige Version zum Teilen mit Eltern und Schüler:innen.', 'polish.matrix_how_it_works_title': 'So funktioniert\u2019s', 'polish.matrix_how_it_works_subtitle': 'In drei Schritten zur Kompetenzmatrix', 'polish.matrix_step_1_title': 'Klasse wählen', 'polish.matrix_step_1_desc': 'Wählen Sie oben eine Klasse aus dem Dropdown.', 'polish.matrix_step_2_title': 'Fach wählen', 'polish.matrix_step_2_desc': 'Wählen Sie das Fach, dessen Kompetenzen Sie sehen möchten.', 'polish.matrix_step_3_title': 'Matrix anzeigen', 'polish.matrix_step_3_desc': 'Die Kompetenzmatrix aller Schüler:innen wird automatisch geladen.', 'polish.attendance_quick_stats_title': 'Schnellstatistik', 'polish.attendance_quick_stats_subtitle': 'Anwesenheitsübersicht über alle Ihre Klassen', 'polish.attendance_total_sessions_month': 'Sitzungen in diesem Monat', 'polish.attendance_avg_rate': 'Ø Anwesenheitsrate', 'polish.attendance_common_reason': 'Häufigster Abwesenheitsgrund', 'polish.attendance_no_absences': 'Keine Abwesenheiten', 'polish.attendance_loading': 'Schnellstatistik wird geladen…', 'polish.attendance_no_classes_hint': 'Noch keine Klassen angelegt — legen Sie eine Klasse an, um Anwesenheit zu verfolgen.', // ─── Score distribution histogram (assessments) ──────────────────── 'assessments.score_distribution': 'Punktezahlenverteilung', 'assessments.average': 'Durchschnitt', 'assessments.median': 'Median', 'assessments.range': 'Spanne', 'assessments.no_scores': 'Keine Punktezahlen', // ─── Student journey timeline ────────────────────────────────────── 'student.journey': 'Lernreise', 'student.journey_milestone': 'Meilenstein', 'student.journey_achieved': 'Kompetenz erreicht', 'student.journey_started': 'Neues Bereich begonnen', 'student.journey_above_avg': 'Über dem Durchschnitt', 'student.journey_grade': 'Benotung abgeschlossen', 'student.journey_last_30': 'Letzte 30 Tage', 'student.journey_last_90': 'Letzte 90 Tage', 'student.journey_all': 'Alle', // Student export & print 'student.export_pdf': 'Als PDF exportieren', 'student.export_csv': 'Als CSV exportieren', 'student.print_report': 'Bericht drucken', 'student.export_data': 'Daten exportieren', // ─── Attendance ────────────────────────────────────────────────────── 'nav.attendance': 'Anwesenheit', 'attendance.title': 'Anwesenheitsverfolgung', 'attendance.subtitle': 'Anwesenheit pro Klasse und Stunde erfassen und auswerten', 'attendance.new_session': 'Neue Sitzung', 'attendance.present': 'Anwesend', 'attendance.absent': 'Abwesend', 'attendance.excused': 'Entschuldigt', 'attendance.late': 'Verspätet', 'attendance.status': 'Status', 'attendance.rate': 'Anwesenheitsrate', 'attendance.date': 'Datum', 'attendance.period': 'Stunde', 'attendance.completed': 'Abgeschlossen', 'attendance.open': 'Offen', 'attendance.save_all': 'Alle speichern', 'attendance.no_sessions': 'Keine Anwesenheitsdaten', 'attendance.stats': 'Statistik', 'attendance.monthly': 'Monatliche Übersicht', 'attendance.absences_count': 'Abwesenheiten', 'attendance.late_count': 'Verspätungen', 'attendance.select_class': 'Klasse auswählen', 'attendance.comment': 'Kommentar', 'attendance.arrival_time': 'Ankunftszeit', 'attendance.calendar': 'Kalender', 'attendance.complete_session': 'Sitzung abschließen', 'attendance.delete_session': 'Sitzung löschen', 'attendance.reopen_session': 'Sitzung wieder öffnen', 'attendance.no_students': 'Keine Schüler in dieser Klasse', 'attendance.session_for': 'Anwesenheit für', 'attendance.total_students': 'Schüler gesamt', 'attendance.present_count': 'Anwesende', 'attendance.excused_count': 'Entschuldigte', 'attendance.absent_count': 'Abwesende', 'attendance.late_count_short': 'Verspätete', 'attendance.subject': 'Fach', 'competencies.select_class': 'Wählen Sie ein Kompetenzraster aus der Liste', 'label.teacher': 'Lehrkräfte', 'label.student': 'Schüler', 'label.students': 'Schüler', 'label.classes': 'Klassen', 'label.subjects': 'Fächer', 'label.entries': 'Einträge', 'label.assessments': 'Überprüfungen', 'label.reports': 'Berichte', // ─── Lesson Planning ────────────────────────────────────────────── 'nav.lesson_plans': 'Unterrichtsplanung', 'nav.lesson-plans': 'Unterrichtsplanung', 'lesson.title': 'Unterrichtsplanung', 'lesson.subtitle': 'Unterrichtsstunden planen und dokumentieren', 'lesson.new': 'Neue Stunde', 'lesson.edit': 'Stunde bearbeiten', 'lesson.empty': 'Noch keine Stunden geplant', 'lesson.empty_desc': 'Erstellen Sie Ihre erste Unterrichtsstunde', 'lesson.this_week': 'Diese Woche', 'lesson.upcoming': 'Anstehend', 'lesson.field.title': 'Titel', 'lesson.field.description': 'Beschreibung', 'lesson.field.date': 'Datum', 'lesson_plans.date_hint': 'Format: TT.MM.JJJJ', 'lesson.field.duration': 'Dauer (Min)', 'lesson.field.class': 'Klasse', 'lesson.field.subject': 'Fach', 'lesson.field.objectives': 'Lernziele', 'lesson.field.materials': 'Materialien', 'lesson.field.homework': 'Hausaufgaben', 'lesson.field.reflection': 'Reflexion', 'lesson.field.competencies': 'Verknüpfte Kompetenzen', 'lesson.field.status': 'Status', 'lesson.status_draft': 'Entwurf', 'lesson.status_scheduled': 'Geplant', 'lesson.status_completed': 'Erledigt', 'lesson.status_cancelled': 'Abgesagt', 'lesson.filter_all': 'Alle', 'lesson.add_objective': 'Lernziel hinzufügen', 'lesson.add_material': 'Material hinzufügen', 'lesson.duration_min': 'Min', 'lesson.agenda': 'Agenda', 'lesson.delete_confirm': 'Diese Stunde wirklich löschen?', 'lesson.saved': 'Stunde gespeichert', 'lesson.deleted': 'Stunde gelöscht', 'lesson.no_upcoming': 'Keine anstehenden Stunden', 'lesson.no_lessons_this_week': 'Diese Woche sind keine Stunden geplant', 'lesson.select_class_first': 'Bitte wählen Sie zuerst eine Klasse', 'lesson.duration_label': '{min} Min', 'lesson.objective_placeholder': 'Neues Lernziel…', 'lesson.material_placeholder': 'Neues Material…', 'lesson.objectives_count': '{count} Ziele', 'lesson.materials_count': '{count} Materialien', // ─── Unified Calendar ───────────────────────────────────────────────── 'nav.calendar': 'Kalender', 'calendar.title': 'Kalender', 'calendar.subtitle': 'Alle Termine und Ereignisse auf einen Blick', 'calendar.today': 'Heute', 'calendar.legend': 'Legende', 'calendar.upcoming': 'Anstehend', 'calendar.upcoming_week': 'Diese Woche', 'calendar.no_events': 'Keine Termine in diesem Monat', 'calendar.no_events_desc': 'Wählen Sie einen anderen Monat', 'calendar.event_types.assessment': 'Überprüfung', 'calendar.event_types.attendance': 'Anwesenheit', 'calendar.event_types.progress': 'Lernfortschritt', 'calendar.event_types.report': 'Bericht', 'calendar.event_types.lesson': 'Unterricht', 'calendar.more_events': '+{count} weitere', 'calendar.day_events': 'Termine am {date}', 'calendar.week': 'Woche', 'calendar.loading': 'Termine werden geladen …', 'calendar.error': 'Termine konnten nicht geladen werden', 'calendar.no_day_events': 'Keine Termine an diesem Tag', 'calendar.close': 'Schließen', 'calendar.meta.subject': 'Fach', 'calendar.meta.class': 'Klasse', 'calendar.meta.type': 'Typ', 'calendar.meta.period': 'Stunde', 'calendar.meta.status': 'Status', 'calendar.meta.rate': 'Rate', 'calendar.meta.present': 'Anwesend', 'calendar.meta.absent': 'Abwesend', 'calendar.meta.excused': 'Entschuldigt', 'calendar.meta.late': 'Verspätet', 'calendar.meta.count': 'Einträge', 'calendar.meta.student': 'Schüler', 'calendar.meta.weight': 'Gewichtung', 'calendar.meta.max_score': 'Maximalpunktzahl', 'calendar.meta.includes_grades': 'Mit Noten', 'calendar.no_upcoming': 'Keine anstehenden Termine in dieser Woche', // ─── Grade Trend & Risk Analysis (analytics enhancements) ──────── 'analytics.grade_trend': 'Notenentwicklung über Zeit', 'analytics.grade_trend_desc': 'Durchschnittliche Kompetenz nach Woche', 'analytics.range_12_weeks': '12 Wochen', 'analytics.range_24_weeks': '24 Wochen', 'analytics.min_standard': 'Mindeststandard', 'analytics.unique_students': 'Schüler:innen', 'analytics.school_avg': 'Schulø', 'analytics.risk_analysis': 'Risikoanalyse: Schüler:innen mit Förderbedarf', 'analytics.risk_analysis_desc': 'Schüler:innen mit Förderbedarf', 'analytics.risk_score': 'Risiko-Score', 'analytics.risk_level': 'Risikostufe', 'analytics.risk_low': 'Niedrig', 'analytics.risk_medium': 'Mittel', 'analytics.risk_high': 'Hoch', 'analytics.risk_critical': 'Kritisch', 'analytics.signals': 'Signale', 'analytics.signal_low_mastery': 'Niedrige Kompetenz', 'analytics.signal_no_progress': 'Kein Fortschritt', 'analytics.signal_low_attendance': 'Niedrige Anwesenheit', 'analytics.signal_declining': 'Abfallender Trend', 'analytics.latest_mastery': 'Aktuelle Kompetenz', 'analytics.last_activity': 'Letzte Aktivität', 'analytics.total_at_risk': 'Insgesamt riskant', 'analytics.critical_count': 'Kritisch', 'analytics.high_count': 'Hoch', 'analytics.avg_risk_score': 'Ø Risiko-Score', 'analytics.all_good': 'Alle Schüler:innen sind auf einem guten Weg!', 'analytics.filter_risk': 'Nach Risikostufe filtern', 'analytics.class_avg': 'Klassenø', 'analytics.details': 'Details', 'analytics.filter_all': 'Alle', 'analytics.no_recent_activity': 'Keine Aktivität', 'analytics.risk_distribution_title': 'Risikoverteilung', 'analytics.risk_distribution_desc': 'Anzahl Schüler:innen je Risikostufe', // ─── Parent Communication ────────────────────────────────────────── 'nav.parents': 'Elternkommunikation', 'parents.title': 'Elternkommunikation', 'parents.subtitle': 'Nachrichten an Eltern verwalten', 'parents.new_message': 'Neue Nachricht', 'parents.new_contact': 'Neuer Kontakt', 'parents.conversations': 'Unterhaltungen', 'parents.no_conversations': 'Keine Unterhaltungen', 'parents.no_conversations_desc': 'Starten Sie eine neue Nachricht', 'parents.select_conversation': 'Wählen Sie eine Unterhaltung', 'parents.parent_info': 'Elterninformation', 'parents.student_info': 'Schülerinformation', 'parents.field.parent': 'Erziehungsberechtigte:r', 'parents.field.student': 'Schüler:in', 'parents.field.subject': 'Betreff', 'parents.field.body': 'Nachricht', 'parents.field.category': 'Kategorie', 'parents.field.priority': 'Priorität', 'parents.field.relationship': 'Beziehung', 'parents.field.email': 'E-Mail', 'parents.field.phone': 'Telefon', 'parents.field.preferred_contact': 'Bevorzugter Kontakt', 'parents.field.preferred_language': 'Bevorzugte Sprache', 'parents.field.notes': 'Notizen', 'parents.category_general': 'Allgemein', 'parents.category_progress': 'Lernfortschritt', 'parents.category_assessment': 'Überprüfung', 'parents.category_behavior': 'Verhalten', 'parents.category_attendance': 'Anwesenheit', 'parents.category_event': 'Veranstaltung', 'parents.priority_low': 'Niedrig', 'parents.priority_normal': 'Normal', 'parents.priority_high': 'Hoch', 'parents.priority_urgent': 'Dringend', 'parents.status_draft': 'Entwurf', 'parents.status_sent': 'Gesendet', 'parents.status_delivered': 'Zugestellt', 'parents.status_read': 'Gelesen', 'parents.status_replied': 'Beantwortet', 'parents.reply': 'Antworten', 'parents.send': 'Senden', 'parents.save_draft': 'Entwurf speichern', 'parents.statistics': 'Statistik', 'parents.messages_sent': 'Gesendete Nachrichten', 'parents.response_rate': 'Antwortrate', 'parents.avg_response_time': 'Ø Antwortzeit', 'parents.by_category': 'Nach Kategorie', 'parents.empty_thread': 'Noch keine Nachrichten', 'parents.empty_thread_desc': 'Starten Sie die Unterhaltung', 'parents.templates': 'Vorlagen', 'parents.template_progress_good': 'Positiver Lernfortschritt', 'parents.template_assessment_reminder': 'Überprüfungserinnerung', 'parents.template_behavior_concern': 'Verhalten', 'parents.template_meeting_request': 'Gesprächswunsch', 'parents.relationship_parent': 'Elternteil', 'parents.relationship_guardian': 'Vormund', 'parents.relationship_emergency': 'Notfallkontakt', 'parents.delete_confirm': 'Diese Nachricht wirklich löschen?', 'parents.deleted': 'Nachricht gelöscht', 'parents.sent': 'Nachricht gesendet', 'parents.draft_saved': 'Entwurf gespeichert', 'parents.reply_sent': 'Antwort gespeichert', 'parents.marked_read': 'Als gelesen markiert', 'parents.contact_created': 'Kontakt erstellt', 'parents.contact_updated': 'Kontakt aktualisiert', 'parents.contact_deleted': 'Kontakt gelöscht', 'parents.filter_all': 'Alle', 'parents.filter_by_student': 'Nach Schüler:in', 'parents.filter_by_category': 'Nach Kategorie', 'parents.search_placeholder': 'Suche nach Name…', 'parents.this_month': 'Diesen Monat', 'parents.no_messages_sent': 'Noch keine Nachrichten gesendet', 'parents.messages': 'Nachrichten', 'parents.unread': 'Ungelesen', 'parents.last_message': 'Letzte Nachricht', 'parents.create_contact_first': 'Bitte erstellen Sie zuerst einen Elternkontakt', 'parents.no_contacts': 'Keine Elternkontakte vorhanden', 'parents.no_contacts_desc': 'Erstellen Sie den ersten Kontakt', 'parents.view_thread': 'Unterhaltung anzeigen', 'parents.reply_placeholder': 'Antwort der Eltern eintragen…', 'parents.hours': 'Std.', 'parents.minutes': 'Min.', 'parents.days': 'Tage', 'parents.no_response_yet': 'Keine Antwort', // Behavior Tracking — Verhaltensverfolgung 'nav.behavior': 'Verhalten', 'behavior.title': 'Verhaltensverfolgung', 'behavior.subtitle': 'Erfassen und verfolgen Sie Verhaltensvorfälle Ihrer Schüler:innen', 'behavior.tab_incidents': 'Vorfälle', 'behavior.tab_categories': 'Kategorien', 'behavior.tab_statistics': 'Statistik', 'behavior.loading': 'Wird geladen…', 'behavior.error_load': 'Fehler beim Laden', 'behavior.error_save': 'Fehler beim Speichern', 'behavior.error_delete': 'Fehler beim Löschen', 'behavior.empty_incidents': 'Keine Vorfälle erfasst', 'behavior.empty_incidents_desc': 'Erfassen Sie den ersten Vorfall oder passen Sie die Filter an.', 'behavior.empty_incidents_filtered': 'Keine Vorfälle für die gewählten Filter', 'behavior.empty_incidents_filtered_desc': 'Passen Sie die Filter an, um Ergebnisse zu sehen.', 'behavior.empty_categories': 'Noch keine Kategorien', 'behavior.empty_categories_desc': 'Legen Sie die erste Verhaltenskategorie an.', 'behavior.select_class': 'Klasse auswählen', 'behavior.all_classes': 'Alle Klassen', 'behavior.all_students': 'Alle Schüler:innen', 'behavior.all_categories': 'Alle Kategorien', 'behavior.all_severities': 'Alle Schweregrade', 'behavior.all_resolved': 'Alle Status', 'behavior.add_incident': 'Vorfall erfassen', 'behavior.edit_incident': 'Vorfall bearbeiten', 'behavior.add_category': 'Kategorie hinzufügen', 'behavior.edit_category': 'Kategorie bearbeiten', 'behavior.field.student': 'Schüler:in', 'behavior.field.category': 'Kategorie', 'behavior.field.date': 'Datum', 'behavior.field.severity': 'Schweregrad', 'behavior.field.description': 'Beschreibung', 'behavior.field.location': 'Ort', 'behavior.field.follow_up': 'Folgende Maßnahme', 'behavior.field.name': 'Name', 'behavior.field.color': 'Farbe', 'behavior.field.valence': 'Wertung', 'behavior.field.icon': 'Symbol (Emoji)', 'behavior.field.class': 'Klasse', 'behavior.field.resolved': 'Als gelöst markieren', 'behavior.severity.minor': 'Gering', 'behavior.severity.moderate': 'Mittel', 'behavior.severity.major': 'Schwerwiegend', 'behavior.valence.positive': 'Positiv', 'behavior.valence.negative': 'Negativ', 'behavior.valence.neutral': 'Neutral', 'behavior.resolved': 'Gelöst', 'behavior.unresolved': 'Offen', 'behavior.mark_resolved': 'Als gelöst markieren', 'behavior.mark_unresolved': 'Wieder eröffnen', 'behavior.resolved_by': 'Gelöst von', 'behavior.resolved_at': 'Gelöst am', 'behavior.created_at': 'Erfasst am', 'behavior.by_teacher': 'Erfasst von', 'behavior.delete_incident_title': 'Vorfall löschen', 'behavior.delete_incident_desc': 'Möchten Sie diesen Vorfall wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.', 'behavior.delete_category_title': 'Kategorie löschen', 'behavior.delete_category_desc': 'Möchten Sie diese Kategorie wirklich löschen?', 'behavior.delete_category_blocked': 'Kategorie kann nicht gelöscht werden — es sind noch Vorfälle zugeordnet.', 'behavior.save': 'Speichern', 'behavior.cancel': 'Abbrechen', 'behavior.delete': 'Löschen', 'behavior.edit': 'Bearbeiten', 'behavior.saved_incident': 'Vorfall gespeichert', 'behavior.deleted_incident': 'Vorfall gelöscht', 'behavior.saved_category': 'Kategorie gespeichert', 'behavior.deleted_category': 'Kategorie gelöscht', 'behavior.marked_resolved': 'Vorfall als gelöst markiert', 'behavior.marked_unresolved': 'Vorfall wieder eröffnet', 'behavior.location.classroom': 'Klassenzimmer', 'behavior.location.playground': 'Pausenhof', 'behavior.location.hallway': 'Flur', 'behavior.location.gym': 'Turnhalle', 'behavior.location.auditorium': 'Aula', 'behavior.location.library': 'Bibliothek', 'behavior.location.cafeteria': 'Mensa', 'behavior.location.other': 'Sonstiger Ort', 'behavior.followup.parent_talk': 'Elterngespräch', 'behavior.followup.detention': 'Nachsitzen', 'behavior.followup.praise_circle': 'Lob im Kreis', 'behavior.followup.note_home': 'Notiz nach Hause', 'behavior.followup.warning': 'Ermahnung', 'behavior.followup.mediation': 'Mediation', 'behavior.followup.prize': 'Belohnung', 'behavior.followup.none': 'Keine', 'behavior.filter_section': 'Filter', 'behavior.filter.date_from': 'Von', 'behavior.filter.date_to': 'Bis', 'behavior.filter.category': 'Kategorie', 'behavior.filter.severity': 'Schweregrad', 'behavior.filter.resolved': 'Status', 'behavior.filter.student': 'Schüler:in', 'behavior.stat.this_month': 'Vorfälle diesen Monat', 'behavior.stat.positive': 'Positive Vorfälle', 'behavior.stat.negative': 'Negative Vorfälle', 'behavior.stat.resolution_rate': 'Lösungsquote', 'behavior.stat.by_category': 'Vorfälle nach Kategorie', 'behavior.stat.by_valence': 'Verteilung nach Wertung', 'behavior.stat.top_students': 'Top 5 Schüler:innen nach Vorfällen', 'behavior.stat.no_data': 'Noch keine Daten verfügbar', 'behavior.stat.total': 'Gesamt', 'behavior.stat.pos_count': 'Positiv', 'behavior.stat.neg_count': 'Negativ', 'behavior.incidents_count': 'Vorfälle', 'behavior.preview': 'Vorschau', 'behavior.no_class_selected': 'Bitte wählen Sie eine Klasse aus', 'behavior.no_class_selected_desc': 'Wählen Sie oben eine Klasse aus, um Vorfälle zu erfassen und anzusehen.', 'behavior.schoolwide': 'Schulweit', 'behavior.color_helper': 'Hex-Farbe, z. B. #10b981', 'behavior.icon_helper': 'Ein Emoji zur schnellen Erkennung, z. B. 🤝', 'behavior.name_placeholder': 'z. B. Hilfsbereitschaft', 'behavior.description_placeholder': 'Was ist passiert?', 'behavior.location_placeholder': 'z. B. Klassenzimmer', 'behavior.followup_placeholder': 'z. B. Elterngespräch', 'behavior.detail': 'Detail', 'behavior.required_student': 'Bitte wählen Sie eine Schüler:in aus', 'behavior.required_category': 'Bitte wählen Sie eine Kategorie aus', 'behavior.required_description': 'Bitte geben Sie eine Beschreibung ein', 'behavior.duplicate_category': 'Eine Kategorie mit diesem Namen existiert bereits', 'behavior.confirm_close': 'Möchten Sie den Dialog wirklich schließen? Nicht gespeicherte Änderungen gehen verloren.', // Curriculum Coverage — Kompetenzabdeckung 'nav.coverage': 'Abdeckung', 'coverage.title': 'Kompetenzabdeckung', 'coverage.subtitle': 'Sehen Sie, welche Kompetenzen bereits erfasst wurden und wo Lücken bestehen', 'coverage.loading': 'Wird geladen…', 'coverage.error': 'Fehler beim Laden der Abdeckungsdaten', 'coverage.select_class': 'Bitte wählen Sie eine Klasse aus', 'coverage.select_subject': 'Alle Fächer', 'coverage.no_assignments': 'Kein Kompetenzraster zugewiesen', 'coverage.no_assignments_desc': 'Diese Klasse hat noch kein Kompetenzraster. Weisen Sie im Kompetenzraster-Bereich ein Raster zu, um die Abdeckung zu analysieren.', 'coverage.go_to_grid': 'Zum Kompetenzraster', 'coverage.kpi.total': 'Kompetenzen Insgesamt', 'coverage.kpi.assessed': 'Abgedeckt', 'coverage.kpi.not_assessed': 'Nicht Abgedeckt', 'coverage.kpi.students': 'Schüler:innen', 'coverage.section.by_category': 'Abdeckung nach Kategorie', 'coverage.section.by_category_desc': 'Übersicht über die Erfassung pro Kompetenzkategorie', 'coverage.section.matrix': 'Kompetenzmatrix', 'coverage.section.matrix_desc': 'Detaillierte Übersicht aller Kompetenzen', 'coverage.section.action_needed': 'Handlungsbedarf', 'coverage.section.action_needed_desc': 'Diese Kompetenzen wurden noch nicht oder unvollständig erfasst', 'coverage.section.recent': 'Zuletzt erfasst', 'coverage.section.recent_desc': 'Die 5 am kürzesten erfassten Kompetenzen', 'coverage.filter.all': 'Alle', 'coverage.filter.covered': 'Abgedeckt', 'coverage.filter.partial': 'Teilweise', 'coverage.filter.untouched': 'Nicht begonnen', 'coverage.sort.by_category': 'Nach Kategorie', 'coverage.sort.by_status': 'Nach Status', 'coverage.sort.by_recent': 'Zuletzt erfasst', 'coverage.search_placeholder': 'Kompetenz suchen (Code oder Titel)…', 'coverage.status.covered': 'Vollständig erfasst', 'coverage.status.partial': 'Teilweise erfasst', 'coverage.status.untouched': 'Nicht erfasst', 'coverage.assessed_count': 'Erfasste Schüler:innen', 'coverage.last_assessed': 'Zuletzt erfasst', 'coverage.never_assessed': 'Nie erfasst', 'coverage.assessments_count': 'Bewertungen', 'coverage.progress_count': 'Fortschritte', 'coverage.empty_action': 'Alle Kompetenzen erfasst!', 'coverage.empty_action_desc': 'Alle Kompetenzen dieser Klasse wurden mindestens teilweise erfasst.', 'coverage.empty_recent': 'Noch keine Erfassungen', 'coverage.empty_recent_desc': 'Sobald Sie Fortschritte eintragen, erscheinen diese hier.', 'coverage.record_progress': 'Erfassen', 'coverage.guide.title': 'So funktioniert\'s', 'coverage.guide.subtitle': 'Drei Schritte zur Abdeckungsanalyse', 'coverage.guide.step1_title': 'Klasse wählen', 'coverage.guide.step1_desc': 'Wählen Sie oben eine Klasse aus, um die zugewiesenen Kompetenzraster zu laden.', 'coverage.guide.step2_title': 'Fach wählen (optional)', 'coverage.guide.step2_desc': 'Filtern Sie nach einem bestimmten Fach oder zeigen Sie alle Fächer auf einmal.', 'coverage.guide.step3_title': 'Abdeckung analysieren', 'coverage.guide.step3_desc': 'Identifizieren Sie Lücken und gezielt zu erfassende Kompetenzen.', 'coverage.no_data': 'Keine Daten verfügbar', 'coverage.coverage_percent': 'Abgedeckt', 'coverage.not_covered_percent': 'Offen', 'attendance.empty_action_hint': 'Klicken Sie auf "Neue Sitzung" oben, um eine Anwesenheitssitzung zu starten.', 'student_detail.sparse_chart_hint': 'Kompetenzbereiche ohne Bewertung werden als minimaler Wert dargestellt.', 'student_detail.no_assessment': 'k.A.', 'analytics.level_range': '(0–4)', 'analytics.calendar_week_full': 'Kalenderwoche', 'flower.empty_tip': 'Wählen Sie eine Klasse und eine Schüler:in aus, um die Kompetenzblume zu sehen.', 'grading.empty_description': 'Notenschemata definieren, wie verschiedene Bewertungen (Fortschritt, Prüfungen, etc.) zu einer Gesamtnote kombiniert werden. Wählen Sie eine Klasse und ein Fach, um zu beginnen.', 'parents.no_conversation_selected': 'Wählen Sie eine Konversation aus der Liste', // ─── Rubric Library ────────────────────────────────────────────── 'nav.rubrics': 'Bewertungsraster', 'rubrics.title': 'Bewertungsraster-Bibliothek', 'rubrics.subtitle': 'Erstellen und verwalten Sie wiederverwendbare Bewertungsraster', 'rubrics.create': 'Raster erstellen', 'rubrics.edit': 'Raster bearbeiten', 'rubrics.duplicate': 'Duplizieren', 'rubrics.delete': 'Löschen', 'rubrics.detail': 'Raster-Details', 'rubrics.print': 'Drucken', 'rubrics.save': 'Speichern', 'rubrics.cancel': 'Abbrechen', 'rubrics.close': 'Schließen', 'rubrics.type_analytic': 'Analytisch', 'rubrics.type_holistic': 'Ganzheitlich', 'rubrics.criteria': 'Kriterien', 'rubrics.levels': 'Niveaustufen', 'rubrics.add_criterion': 'Kriterium hinzufügen', 'rubrics.add_level': 'Stufe hinzufügen', 'rubrics.remove_criterion': 'Kriterium entfernen', 'rubrics.remove_level': 'Stufe entfernen', 'rubrics.criterion_name': 'Kriteriumsname', 'rubrics.criterion_description': 'Kriteriumsbeschreibung', 'rubrics.criterion_weight': 'Gewichtung', 'rubrics.criterion_max_points': 'Max. Punkte', 'rubrics.level_label': 'Stufenbezeichnung', 'rubrics.level_description': 'Deskriptor', 'rubrics.level_points': 'Punkte', 'rubrics.field.title': 'Titel', 'rubrics.field.description': 'Beschreibung', 'rubrics.field.type': 'Raster-Typ', 'rubrics.field.subject': 'Fach', 'rubrics.field.max_points': 'Maximale Punktzahl', 'rubrics.field.is_public': 'Schulweit teilen', 'rubrics.field.is_public_hint': 'Andere Lehrkräfte können dieses Raster verwenden', 'rubrics.no_subject': 'Kein Fach', 'rubrics.all_subjects': 'Alle Fächer', 'rubrics.public': 'Öffentlich', 'rubrics.private': 'Privat', 'rubrics.version': 'Version', 'rubrics.by_teacher': 'Von', 'rubrics.max_points': 'Max. Punkte', 'rubrics.search_placeholder': 'Raster suchen…', 'rubrics.filter_subject': 'Fach filtern', 'rubrics.filter_public': 'Nur eigene', 'rubrics.filter_all': 'Alle Raster', 'rubrics.empty_title': 'Noch keine Bewertungsraster', 'rubrics.empty_desc': 'Erstellen Sie Ihr erstes Bewertungsraster, um standardisierte Bewertungskriterien für Ihre Klasse zu definieren.', 'rubrics.empty_create': 'Erstes Raster erstellen', 'rubrics.loading': 'Laden…', 'rubrics.error': 'Fehler beim Laden der Bewertungsraster', 'rubrics.saved': 'Bewertungsraster gespeichert', 'rubrics.deleted': 'Bewertungsraster gelöscht', 'rubrics.duplicated': 'Bewertungsraster dupliziert', 'rubrics.delete_title': 'Bewertungsraster löschen', 'rubrics.delete_desc': 'Sind Sie sicher, dass Sie dieses Bewertungsraster löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.', 'rubrics.preview': 'Vorschau', 'rubrics.edit_form': 'Bearbeiten', 'rubrics.criteria_count': '{count} Kriterien', 'rubrics.criterion': 'Kriterium', 'rubrics.level': 'Stufe', 'rubrics.weight': 'Gewichtung', 'rubrics.points': 'Punkte', 'rubrics.total_weight': 'Gesamtgewichtung', 'rubrics.total_points': 'Gesamtpunktzahl', 'rubrics.title_required': 'Bitte geben Sie einen Titel ein', 'rubrics.criteria_required': 'Mindestens ein Kriterium ist erforderlich', 'rubrics.levels_required': 'Jedes Kriterium benötigt mindestens eine Stufe', 'rubrics.level_header': 'Stufe {order}', 'rubrics.table_criterion': 'Kriterium', 'rubrics.table_weight_short': 'Gew.', 'rubrics.confirm_close': 'Nicht gespeicherte Änderungen gehen verloren. Fortfahren?', // ── Comments Bank (Zeugnisbemerkungen) ────────────────────────────── 'nav.comments': 'Bemerkungen', 'nav.drawing': 'Zeichnen', 'comments.title': 'Zeugnisbemerkungen', 'comments.subtitle': 'Bibliothek wiederverwendbarer Bemerkungstexte für Zeugnisse', 'comments.tab_entries': 'Bemerkungen', 'comments.tab_categories': 'Kategorien', 'comments.tab_statistics': 'Statistik', 'comments.search_placeholder': 'Bemerkungen durchsuchen…', 'comments.create_entry': 'Bemerkung erstellen', 'comments.edit_entry': 'Bemerkung bearbeiten', 'comments.create_entry_desc': 'Erstellen Sie eine neue wiederverwendbare Bemerkung für Zeugnisse.', 'comments.edit_entry_desc': 'Bearbeiten Sie die Bemerkung.', 'comments.field_title': 'Titel', 'comments.title_placeholder': 'Kurzer Titel der Bemerkung', 'comments.field_category': 'Kategorie', 'comments.field_subject': 'Fach', 'comments.no_subject': 'Kein Fach', 'comments.field_grade_level': 'Klassenstufe', 'comments.field_text': 'Bemerkungstext', 'comments.text_placeholder': 'Schreiben Sie den Bemerkungstext hier…', 'comments.field_public': 'Öffentlich', 'comments.field_tags': 'Tags', 'comments.tags_placeholder': 'z.B. motivation, sozial, fachlich', 'comments.preview': 'Vorschau', 'comments.public': 'Öffentlich', 'comments.private': 'Privat', 'comments.usage_count': 'Verwendungen', 'comments.entries_count': 'Einträge', 'comments.copy_success': 'In die Zwischenablage kopiert', 'comments.copy_text': 'Text kopieren', 'comments.saved': 'Bemerkung gespeichert', 'comments.created': 'Bemerkung erstellt', 'comments.deleted': 'Bemerkung gelöscht', 'comments.error': 'Fehler beim Laden', 'comments.validation_required': 'Bitte füllen Sie alle Pflichtfelder aus.', 'comments.empty_title': 'Noch keine Bemerkungen', 'comments.empty_desc': 'Erstellen Sie Ihre erste wiederverwendbare Bemerkung für Zeugnisse.', 'comments.empty_create': 'Erste Bemerkung erstellen', 'comments.filter_category': 'Kategorie', 'comments.filter_subject': 'Fach', 'comments.filter_grade': 'Klassenstufe', 'comments.filter_visibility': 'Sichtbarkeit', 'comments.all_categories': 'Alle Kategorien', 'comments.all_subjects': 'Alle Fächer', 'comments.all_grades': 'Alle Klassen', 'comments.all_visibility': 'Alle', 'comments.public_only': 'Nur öffentliche', 'comments.private_only': 'Nur private', 'comments.categories_title': 'Bemerkungskategorien', 'comments.add_category': 'Kategorie hinzufügen', 'comments.edit_category': 'Kategorie bearbeiten', 'comments.add_category_desc': 'Erstellen Sie eine neue Kategorie für Bemerkungen.', 'comments.edit_category_desc': 'Bearbeiten Sie die Kategorie.', 'comments.category_name': 'Name', 'comments.category_name_placeholder': 'z.B. Sozialverhalten', 'comments.category_name_required': 'Bitte geben Sie einen Kategorienamen ein.', 'comments.category_color': 'Farbe', 'comments.category_icon': 'Icon', 'comments.category_icon_placeholder': '🤝', 'comments.category_saved': 'Kategorie gespeichert', 'comments.category_created': 'Kategorie erstellt', 'comments.category_deleted': 'Kategorie gelöscht', 'comments.category_empty_title': 'Noch keine Kategorien', 'comments.category_empty_desc': 'Erstellen Sie Ihre erste Kategorie.', 'comments.delete_entry_title': 'Bemerkung löschen', 'comments.delete_entry_desc': 'Möchten Sie diese Bemerkung wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.', 'comments.delete_category_title': 'Kategorie löschen', 'comments.delete_category_desc': 'Möchten Sie diese Kategorie wirklich löschen? Kategorien mit vorhandenen Bemerkungen können nicht gelöscht werden.', 'comments.stat_total': 'Gesamt', 'comments.stat_public': 'Öffentlich', 'comments.stat_categories': 'Kategorien', 'comments.stat_most_used': 'Meistverwendet', 'comments.chart_by_category': 'Bemerkungen nach Kategorie', 'comments.top_used_title': 'Top 5 meistverwendete Bemerkungen', // Notifications 'notifications.title': 'Benachrichtigungen', 'notifications.empty': 'Keine Benachrichtigungen', 'notifications.mark_all_read': 'Alle als gelesen markieren', 'notifications.upcoming_assessments': 'Anstehende Leistungsüberprüfungen', 'notifications.missing_observations': 'Fehlende Beobachtungen', 'notifications.assessment_deadline': 'Prüfung in {days} Tagen', 'notifications.no_progress_for': 'Kein Fortschritt seit {days} Tagen für {student}', 'notifications.record_now': 'Jetzt erfassen', 'notifications.to_assessment': 'Zur Bewertung', 'notifications.to_report': 'Zum Bericht', 'notifications.in_days': 'in {days} Tagen', 'notifications.days_ago': 'vor {days} Tagen', // Onboarding 'onboarding.welcome_title': 'Willkommen bei CompetenceTrack!', 'onboarding.welcome_desc': 'Ihre freie Kompetenz- & Benotungsplattform für Schulen. Lassen Sie uns eine kurze Einführung machen.', 'onboarding.dashboard_title': 'Dashboard', 'onboarding.dashboard_desc': 'Hier sehen Sie einen Überblick über alle Klassen, Schüler und aktuelle Aktivitäten. Nutzen Sie die Schnellaktionen für häufige Aufgaben.', 'onboarding.progress_title': 'Lernfortschritt', 'onboarding.progress_desc': 'Erfassen Sie Beobachtungen und Fortschritte einzelner Schüler. Wählen Sie eine Klasse und ein Fach, um Einträge zu loggen.', 'onboarding.flower_title': 'Kompetenzblume', 'onboarding.flower_desc': 'Visualisieren Sie die Kompetenzentwicklung als Radar-Chart. Vergleichen Sie Schüler und verfolgen Sie Trends über die Zeit.', 'onboarding.reports_title': 'Berichte', 'onboarding.reports_desc': 'Erstellen Sie Zeugnis- und Entwicklungsberichte. Exportieren Sie diese als PDF oder drucken Sie sie direkt.', 'onboarding.done_title': 'Fertig!', 'onboarding.done_desc': 'Sie sind bereit, CompetenceTrack zu nutzen. Bei Fragen klicken Sie auf das Hilfe-Symbol in der Kopfzeile.', 'onboarding.skip': 'Überspringen', 'onboarding.next': 'Weiter', 'onboarding.back': 'Zurück', 'onboarding.start': 'Loslegen', 'onboarding.step': 'Schritt {current} von {total}', 'onboarding.classes_title': 'Klassen & Schüler', 'onboarding.classes_desc': 'Verwalten Sie Ihre Klassen und Schüler. Erstellen Sie neue Klassen, fügen Sie Schüler hinzu und weisen Sie Kompetenzraster zu.', 'onboarding.assessments_title': 'Leistungsüberprüfungen', 'onboarding.assessments_desc': 'Erstellen und verwalten Sie Leistungsüberprüfungen. Bewerten Sie Schüler und verfolgen Sie deren Fortschritt.', 'onboarding.grading_title': 'Benotung', 'onboarding.grading_desc': 'Konfigurieren Sie Notenschemata und berechnen Sie Noten basierend auf Kompetenzniveaus und Leistungsüberprüfungen.', 'onboarding.notebooks_title': 'Digitale Hefte', 'onboarding.notebooks_desc': 'Erstellen Sie digitale Notizbücher für Ihre Fächer. Spart Papier und schützt die Umwelt — jedes Heft spart ca. 50 Seiten.', 'onboarding.drawing_title': 'Zeichnen', 'onboarding.drawing_desc': 'Nutzen Sie die digitale Zeichenfläche für Skizzen und Illustrationen. Stylus-optimiert mit Druckempfindlichkeit.', 'onboarding.calendar_title': 'Kalender & Anwesenheit', 'onboarding.calendar_desc': 'Verwalten Sie den Stundenplan und die Anwesenheit Ihrer Schüler. Behalten Sie den Überblick über Fehlzeiten.', 'onboarding.parents_title': 'Elternkommunikation', 'onboarding.parents_desc': 'Kommunizieren Sie mit Eltern über den Lernfortschritt. Senden Sie Berichte und halten Sie den Dialog aufrecht.', 'onboarding.environmental_title': 'Umweltschutz', 'onboarding.environmental_desc': 'CompetenceTrack spart Papier: Jeder digitale Eintrag ersetzt ca. 50 Seiten Papier. Danke für Ihren Beitrag zum Umweltschutz!', // Batch deletion (progress entries) 'progress.batch_select': 'Auswählen', 'progress.batch_select_all': 'Alle auswählen', 'progress.batch_deselect_all': 'Alle abwählen', 'progress.batch_selected': '{count} Einträge ausgewählt', 'progress.batch_delete': 'Ausgewählte löschen', 'progress.batch_cancel': 'Abbrechen', 'progress.batch_delete_confirm': '{count} Einträge wirklich löschen?', 'progress.batch_mode': 'Auswahlmodus', // Drag-and-drop (classes) 'classes.seating_order': 'Sitzordnung', 'classes.reorder_mode': 'Neu anordnen', 'classes.position': 'Position', 'classes.drag_hint': 'Ziehen zum Neuordnen', // Color palette (flower) 'flower.color_scheme': 'Farbschema', 'flower.color_emerald': 'Smaragd', 'flower.color_sapphire': 'Saphir', 'flower.color_amethyst': 'Amethyst', 'flower.color_amber': 'Bernstein', 'flower.color_ruby': 'Rubin', 'flower.color_turquoise': 'Türkis', 'flower.color_custom': 'Benutzerdefiniert', // ─── Demo accounts ────────────────────────────────────────────────── 'auth.demo_section_title': 'Demo-Zugang', 'auth.demo_section_subtitle': 'Schnell ausprobieren mit verschiedenen Rollen', 'auth.demo_admin': 'Demo Admin', 'auth.demo_teacher': 'Demo Lehrer', 'auth.demo_student': 'Demo Schüler', 'auth.demo_parent': 'Demo Elternteil', 'auth.demo_logging_in': 'Anmeldung als Demo...', 'settings.demo_accounts': 'Demo-Konten', 'settings.demo_accounts_desc': 'Demo-Konten verwalten', 'settings.demo_enable': 'Aktivieren', 'settings.demo_disable': 'Deaktivieren', 'settings.demo_disable_all': 'Alle Demo-Konten deaktivieren', 'settings.demo_delete_all': 'Alle Demo-Konten löschen', 'settings.demo_toggle_hint': 'Deaktivierte Demo-Konten können nicht angemeldet werden', 'settings.demo_delete_confirm': 'Alle Demo-Konten wirklich löschen?', 'settings.demo_no_accounts': 'Keine Demo-Konten vorhanden', 'badge.demo': 'Demo', 'settings.demo_active': 'Aktiv', 'settings.demo_inactive': 'Inaktiv', 'settings.demo_delete_one_confirm': 'Dieses Demo-Konto wirklich löschen?', 'settings.demo_disabled': 'Demo-Konten deaktiviert', 'settings.demo_enabled': 'Demo-Konten aktiviert', 'settings.demo_deleted': 'Demo-Konten gelöscht', 'settings.demo_account_deleted': 'Demo-Konto gelöscht', 'settings.demo_account_toggled': 'Demo-Konto-Status geändert', // Keyboard shortcuts 'shortcuts.title': 'Tastaturkurzbefehle', 'shortcuts.description': 'Verfügbare Tastaturkurzbefehle', 'shortcuts.navigation': 'Navigation', 'shortcuts.actions': 'Aktionen', 'shortcuts.switch_view': 'Ansicht wechseln', 'shortcuts.quick_search': 'Schnellsuche', 'shortcuts.new_entry': 'Neuen Eintrag erstellen', 'shortcuts.show_shortcuts': 'Kurzbefehle anzeigen', 'shortcuts.close_dialog': 'Dialog schließen', 'shortcuts.command_palette': 'Befehlspalette', 'shortcuts.recent_actions': 'Letzte Aktionen', 'shortcuts.views': 'Ansichten', 'shortcuts.quick_actions': 'Schnellaktionen', 'shortcuts.new_notebook': 'Neues Heft', 'shortcuts.drawing': 'Zeichnen', 'shortcuts.new_page': 'Neue Seite', 'shortcuts.export_pdf': 'PDF exportieren', 'shortcuts.archive_toggle': 'Archiv umschalten', 'shortcuts.close_notebook': 'Heft schließen', 'shortcuts.notebooks_drawing': 'Hefte & Zeichnen', // Drawing 'drawing.title': 'Zeichnungen', 'drawing.subtitle': 'Digital zeichnen statt Papier verschwenden', 'drawing.new': 'Neue Zeichnung', 'drawing.gallery': 'Galerie', 'drawing.edit': 'Bearbeiten', 'drawing.delete': 'Löschen', 'drawing.delete_confirm': 'Zeichnung wirklich löschen?', 'drawing.delete_desc': 'Diese Aktion kann nicht rückgängig gemacht werden.', 'drawing.save': 'Speichern', 'drawing.save_success': 'Zeichnung gespeichert', 'drawing.export_png': 'Als PNG exportieren', 'drawing.auto_save': 'Automatisch gespeichert', 'drawing.no_drawings': 'Keine Zeichnungen vorhanden', 'drawing.no_drawings_desc': 'Erstellen Sie Ihre erste digitale Zeichnung.', 'drawing.title_label': 'Titel', 'drawing.description_label': 'Beschreibung', 'drawing.subject_label': 'Fach', 'drawing.class_label': 'Klasse', 'drawing.public': 'Öffentlich teilen', 'drawing.public_desc': 'Mit der Klasse teilen', 'drawing.private': 'Privat', 'drawing.canvas': 'Zeichenfläche', 'drawing.exit': 'Zeichnung verlassen', 'drawing.clear': 'Leeren', 'drawing.clear_confirm': 'Zeichenfläche wirklich leeren?', 'drawing.undo': 'Rückgängig', 'drawing.redo': 'Wiederholen', 'drawing.tool_pencil': 'Stift', 'drawing.tool_pen': 'Füller', 'drawing.tool_line': 'Linie', 'drawing.tool_rectangle': 'Rechteck', 'drawing.tool_circle': 'Kreis', 'drawing.tool_eraser': 'Radiergummi', 'drawing.color': 'Farbe', 'drawing.stroke_width': 'Strichstärke', 'drawing.background': 'Hintergrund', 'drawing.bg_blank': 'Weiss', 'drawing.bg_lined': 'Liniert', 'drawing.bg_grid': 'Kariert', 'drawing.bg_dotted': 'Gepunktet', 'drawing.guide_mode': 'Hilfslinien', 'drawing.guide_shapes': 'Formvorlagen', 'drawing.guide_off': 'Aus', 'drawing.guide_basic': 'Grundformen', 'drawing.guide_circles': 'Kreise', 'drawing.guide_perspective': 'Perspektive', 'drawing.pressure': 'Druckempfindlichkeit', 'drawing.loading': 'Laden...', 'drawing.saving': 'Speichern...', 'drawing.filter_subject': 'Nach Fach filtern', 'drawing.all_subjects': 'Alle Fächer', 'drawing.created_at': 'Erstellt', 'drawing.updated_at': 'Aktualisiert', 'drawing.untitled': 'Unbenannte Zeichnung', 'drawing.eco_message': 'Digital zeichnen statt Papier verschwenden', 'drawing.eco_tip': 'Jede digitale Zeichnung spart Papier und schont die Umwelt', // ─── Digital Notebooks ────────────────────────────────────────────── 'nav.notebooks': 'Hefte', 'notebooks.title': 'Digitale Hefte', 'notebooks.subtitle': 'Papier sparen, Umwelt schützen — digitale Hefte statt Papierhefte', 'notebooks.create': 'Neues Heft erstellen', 'notebooks.create_title': 'Neues digitales Heft erstellen', 'notebooks.create_desc': 'Erstellen Sie ein digitales Heft und sparen Sie Papier.', 'notebooks.edit_title': 'Heft bearbeiten', 'notebooks.library': 'Hefte-Bibliothek', 'notebooks.archived': 'Archivierte Hefte', 'notebooks.show_archived': 'Archivierte anzeigen', 'notebooks.hide_archived': 'Archivierte ausblenden', 'notebooks.archive': 'Archivieren', 'notebooks.unarchive': 'Wiederherstellen', 'notebooks.delete': 'Löschen', 'notebooks.delete_confirm': 'Dieses Heft wirklich löschen? Alle Seiten gehen verloren.', 'notebooks.no_notebooks': 'Keine Hefte vorhanden', 'notebooks.no_notebooks_desc': 'Erstellen Sie Ihr erstes digitales Heft.', 'notebooks.no_notebooks_create': 'Erstes Heft erstellen', 'notebooks.no_archived': 'Keine archivierten Hefte', 'notebooks.field_title': 'Titel', 'notebooks.field_title_placeholder': 'Hefttitel eingeben', 'notebooks.field_description': 'Beschreibung', 'notebooks.field_description_placeholder': 'Optionale Beschreibung des Hefts', 'notebooks.field_type': 'Hefttyp', 'notebooks.field_subject': 'Fach', 'notebooks.field_class': 'Klasse', 'notebooks.field_color': 'Farbe', 'notebooks.field_icon': 'Symbol', 'notebooks.field_public': 'Mit Klasse teilen', 'notebooks.field_public_hint': 'Andere können dieses Heft einsehen', 'notebooks.type_lined': 'Liniert', 'notebooks.type_grid': 'Kariert', 'notebooks.type_blank': 'Blanko', 'notebooks.type_dotted': 'Punktiert', 'notebooks.type_music': 'Musik', 'notebooks.type_calligraphy': 'Kalligraphie', 'notebooks.type_lined_desc': 'Liniertes Heft für Text', 'notebooks.type_grid_desc': 'Kariertes Heft für Mathematik', 'notebooks.type_blank_desc': 'Blanko-Heft für freies Gestalten', 'notebooks.type_dotted_desc': 'Punktiertes Heft für Notizen', 'notebooks.type_music_desc': 'Musikheft mit Notenlinien', 'notebooks.type_calligraphy_desc': 'Kalligraphie-Heft zum Schreiben üben', 'notebooks.no_subject': 'Ohne Fach', 'notebooks.no_class': 'Ohne Klasse', 'notebooks.all_subjects': 'Alle Fächer', 'notebooks.page_count': '{count} Seiten', 'notebooks.page': 'Seite', 'notebooks.pages': 'Seiten', 'notebooks.new_page': 'Neue Seite', 'notebooks.add_page': 'Seite hinzufügen', 'notebooks.delete_page': 'Seite löschen', 'notebooks.delete_page_confirm': 'Diese Seite wirklich löschen?', 'notebooks.page_title': 'Seitentitel', 'notebooks.page_title_placeholder': 'Seitenname eingeben', 'notebooks.page_content': 'Seiteninhalt', 'notebooks.bookmark': 'Lesezeichen', 'notebooks.bookmark_add': 'Lesezeichen setzen', 'notebooks.bookmark_remove': 'Lesezeichen entfernen', 'notebooks.drawing_mode': 'Zeichnungsmodus', 'notebooks.drawing_mode_toggle': 'Zeichnen', 'notebooks.drawing_mode_exit': 'Zurück zum Text', 'notebooks.drawing_placeholder': 'Zeichnungsbereich — wird in einer separaten Komponente integriert', 'notebooks.back_to_library': 'Zurück zur Bibliothek', 'notebooks.open_notebook': 'Heft öffnen', 'notebooks.created': 'Heft erstellt', 'notebooks.updated': 'Heft aktualisiert', 'notebooks.archived_toast': 'Heft archiviert', 'notebooks.unarchived_toast': 'Heft wiederhergestellt', 'notebooks.deleted_toast': 'Heft gelöscht', 'notebooks.page_saved': 'Seite gespeichert', 'notebooks.page_added': 'Seite hinzugefügt', 'notebooks.page_deleted': 'Seite gelöscht', 'notebooks.error_load': 'Fehler beim Laden der Hefte', 'notebooks.error_save': 'Fehler beim Speichern', 'notebooks.error_create': 'Fehler beim Erstellen des Hefts', 'notebooks.loading': 'Hefte werden geladen…', 'notebooks.public': 'Geteilt', 'notebooks.private': 'Privat', 'notebooks.filter_all': 'Alle', 'notebooks.filter_subject': 'Nach Fach filtern', 'notebooks.eco_message': 'Papier sparen, Umwelt schützen', 'notebooks.eco_tip': '1 Heft = ca. 50 Seiten Papier gespart', 'notebooks.eco_total': '{count} digitale Hefte = ca. {pages} Seiten Papier gespart', 'notebooks.search_placeholder': 'Hefte durchsuchen…', 'notebooks.detail_title': 'Heft-Details', 'notebooks.page_nav': 'Seitennavigation', 'notebooks.content_area': 'Inhaltsbereich', 'notebooks.save_page': 'Seite speichern', 'notebooks.color_emerald': 'Emerald', 'notebooks.color_blue': 'Blau', 'notebooks.color_red': 'Rot', 'notebooks.color_yellow': 'Gelb', 'notebooks.color_purple': 'Lila', 'notebooks.color_orange': 'Orange', 'notebooks.color_teal': 'Teal', 'notebooks.color_pink': 'Pink', 'notebooks.title_required': 'Bitte geben Sie einen Titel ein', 'notebooks.total_notebooks': 'Hefte gesamt', 'notebooks.total_pages': 'Seiten gesamt', 'notebooks.paper_saved': 'Papier gespart', 'notebooks.pages_unit': 'Seiten', // Notebook toolbar 'notebooks.toolbar_bold': 'Fett', 'notebooks.toolbar_italic': 'Kursiv', 'notebooks.toolbar_underline': 'Unterstrichen', 'notebooks.toolbar_heading1': 'Ueberschrift 1', 'notebooks.toolbar_heading2': 'Ueberschrift 2', 'notebooks.toolbar_heading3': 'Ueberschrift 3', 'notebooks.toolbar_bullet_list': 'Aufzaehlungsliste', 'notebooks.toolbar_numbered_list': 'Nummerierte Liste', 'notebooks.toolbar_align_left': 'Linksbuendig', 'notebooks.toolbar_align_center': 'Zentriert', 'notebooks.toolbar_align_right': 'Rechtsbuendig', 'notebooks.auto_saving': 'Automatisch speichern...', 'notebooks.auto_saved': 'Automatisch gespeichert', 'notebooks.page_thumbnail': 'Seitenvorschau', // Drawing integration 'notebooks.drawing_saved': 'Zeichnung gespeichert', 'notebooks.drawing_page_label': 'Diese Seite enthält eine Zeichnung', 'notebooks.edit_drawing': 'Zeichnung bearbeiten', 'notebooks.switch_to_text': 'Zur Textseite wechseln', 'notebooks.drawing_section_label': 'Zeichnungsbereich', 'notebooks.open_drawing': 'Zeichnung öffnen', 'notebooks.switch_to_mixed': 'Text + Zeichnung', // PDF Export 'notebooks.export_pdf': 'PDF exportieren', 'notebooks.export_error': 'Fehler beim Exportieren. Bitte Popups erlauben.', 'notebooks.export_drawing_note': 'Diese Seite enthält eine Zeichnung (nicht im PDF enthalten)', 'notebooks.export_empty_page': 'Leere Seite', 'notebooks.export_eco_message': 'Dieses Heft wurde digital erstellt — Papier gespart!', // Student notebook access 'notebooks.shared_with_me': 'Mit mir geteilt', 'notebooks.my_notebooks': 'Meine Hefte', 'notebooks.shared_notebook': 'Geteiltes Heft', // Sharing & Collaboration 'notebooks.share': 'Teilen', 'notebooks.duplicate': 'Duplizieren', 'notebooks.shared': 'Geteilt', 'notebooks.copy_suffix': ' (Kopie)', 'notebooks.templates': 'Vorlagen', 'notebooks.template_desc': 'Vorgefertigte Hefte fuer haeufige Faecher', 'notebooks.tab_shared': 'Geteilt', 'notebooks.tab_templates': 'Vorlagen', 'notebooks.share_confirm': 'Dieses Heft mit der Klasse teilen?', 'notebooks.share_confirm_desc': 'Wenn Sie dieses Heft teilen, koennen alle Schueler der Klasse es einsehen (schreibgeschuetzt).', 'notebooks.unshare_confirm': 'Teilen aufheben?', 'notebooks.unshare_confirm_desc': 'Wenn Sie das Teilen aufheben, koennen die Schueler der Klasse dieses Heft nicht mehr einsehen.', 'notebooks.duplicated': 'Heft dupliziert', 'notebooks.duplicate_error': 'Fehler beim Duplizieren des Hefts', 'notebooks.shared_notebooks': 'Geteilte Hefte', 'notebooks.shared_empty': 'Keine geteilten Hefte vorhanden', 'notebooks.shared_empty_desc': 'Hefte von anderen Lehrern werden hier angezeigt, wenn sie geteilt werden.', 'notebooks.read_only': 'Schreibgeschuetzt', 'notebooks.create_from_template': 'Aus Vorlage erstellen', 'notebooks.template_math': 'Mathematik', 'notebooks.template_german': 'Deutsch', 'notebooks.template_english': 'Englisch', 'notebooks.template_art': 'Kunst', 'notebooks.template_music': 'Musik', 'notebooks.template_science': 'Sachkunde', 'notebooks.template_math_desc': 'Kariertes Heft mit Mathe-Abschnitten', 'notebooks.template_german_desc': 'Liniertes Heft mit Schreib-Abschnitten', 'notebooks.template_english_desc': 'Liniertes Heft mit Vokabel-Abschnitten', 'notebooks.template_art_desc': 'Blanko-Heft zum Zeichnen', 'notebooks.template_music_desc': 'Musikheft zum Komponieren', 'notebooks.template_science_desc': 'Kariertes Heft fuer Experimente', 'notebooks.tab_all': 'Meine Hefte', 'notebooks.owner': 'Von', }; const en: TranslationDict = { // App branding 'app.name': 'CompetenceTrack', 'app.subtitle': 'Free Competency & Grading Platform for Schools', 'app.tagline': 'Open-Source Software for Competency-Based Assessment', // Navigation 'nav.dashboard': 'Dashboard', 'nav.classes': 'Classes & Students', 'nav.competencies': 'Competency Grids', 'nav.progress': 'Progress Entries', 'nav.flower': 'Competence Flower', 'nav.assessments': 'Assessments', 'nav.grading': 'Grading', 'nav.reports': 'Reports', 'nav.student-detail': 'Student Profile', // Common actions 'action.save': 'Save', 'action.cancel': 'Cancel', 'action.delete': 'Delete', 'action.edit': 'Edit', 'action.add': 'Add', 'action.create': 'Create', 'action.search': 'Search', 'action.filter': 'Filter', 'action.export': 'Export', 'action.close': 'Close', 'action.back': 'Back', 'action.next': 'Next', 'action.confirm': 'Confirm', 'action.refresh': 'Refresh', 'action.download': 'Download', 'action.preview': 'Preview', 'action.assign': 'Assign', 'action.select': 'Select', 'action.view': 'View', 'action.print': 'Print', 'action.generate': 'Generate', 'action.finalize': 'Finalize', 'action.override': 'Override', 'action.log_entry': 'Log Entry', 'action.create_assessment': 'Create Assessment', 'action.generate_report': 'Generate Report', // Auth 'auth.login': 'Sign In', 'auth.register': 'Sign Up', 'auth.logout': 'Sign Out', 'auth.email': 'Email', 'auth.password': 'Password', 'auth.firstName': 'First Name', 'auth.lastName': 'Last Name', 'auth.login_title': 'Sign in to CompetenceTrack', 'auth.register_title': 'Create a new account', 'auth.login_subtitle': 'Enter your credentials', 'auth.register_subtitle': 'Create a free account', 'auth.no_account': 'No account yet?', 'auth.has_account': 'Already have an account?', 'auth.error.invalid_credentials': 'Invalid credentials', 'auth.error.email_exists': 'Email already registered', 'auth.error.generic': 'An error occurred', 'auth.welcome_back': 'Welcome back', // Form labels 'label.name': 'Name', 'label.date': 'Date', 'label.note': 'Note', 'label.score': 'Score', 'label.level': 'Level', 'label.subject': 'Subject', 'label.class': 'Class', 'label.grade': 'Grade Level', 'label.type': 'Type', 'label.weight': 'Weight', 'label.max_score': 'Max Score', 'label.description': 'Description', 'label.school_type': 'School Type', 'label.period': 'Period', 'label.school_year': 'School Year', 'label.status': 'Status', 'label.category': 'Category', 'label.competency': 'Competency', 'label.mastery': 'Mastery Level', 'label.weight_percent': 'Weight (%)', 'label.source_type': 'Source Type', 'label.target': 'Target', 'label.scale_definition': 'Scale Definition', 'label.scheme_type': 'Scheme Type', 'label.student_count': 'Student Count', 'label.external_id': 'External ID', 'label.date_of_birth': 'Date of Birth', 'label.first_name': 'First Name', 'label.last_name': 'Last Name', // Status labels 'status.active': 'Active', 'status.draft': 'Draft', 'status.final': 'Final', 'status.pending': 'Pending', 'status.processing': 'Processing', 'status.completed': 'Completed', 'status.failed': 'Failed', 'status.enrolled': 'Enrolled', 'status.not_yet_assessed': 'Not yet assessed', // Subject names 'subject.math': 'Math', 'subject.german': 'German', 'subject.english': 'English', 'subject.science': 'Science', 'subject.art': 'Art', 'subject.music': 'Music', 'subject.physical_ed': 'Physical Education', 'subject.history': 'History', 'subject.geography': 'Geography', 'subject.religion': 'Religion', // School types 'school_type.elementary': 'Elementary', 'school_type.middle': 'Middle School', 'school_type.gymnasium': 'Gymnasium', 'school_type.other': 'Other', // Mastery levels 'mastery.1': 'not yet achieved', 'mastery.2': 'developing', 'mastery.3': 'proficient', 'mastery.4': 'advanced', 'mastery.level_1': 'Level 1 — not yet achieved', 'mastery.level_2': 'Level 2 — developing', 'mastery.level_3': 'Level 3 — proficient', 'mastery.level_4': 'Level 4 — advanced', // Assessment types 'assessment_type.test': 'Test', 'assessment_type.oral': 'Oral Exam', 'assessment_type.project': 'Project', 'assessment_type.homework': 'Homework', 'assessment_type.other': 'Other', // Grading scheme types 'grading_type.numeric': 'Numeric Grade', 'grading_type.verbal': 'Verbal Feedback', 'grading_type.combined': 'Combined', // Grading weight source types 'weight_source.learning_progress': 'Learning Progress', 'weight_source.assessment': 'Assessment', // Dashboard 'dashboard.welcome': 'Welcome', 'dashboard.overview': 'Overview', 'dashboard.classes': 'My Classes', 'dashboard.recent_activity': 'Recent Activity', 'dashboard.students_attention': 'Students Needing Attention', 'dashboard.stats': 'Statistics', 'dashboard.total_students': 'Total Students', 'dashboard.total_entries': 'Total Entries', 'dashboard.total_assessments': 'Total Assessments', 'dashboard.total_classes': 'Total Classes', 'dashboard.total_reports': 'Total Reports', 'dashboard.quick_actions': 'Quick Actions', 'dashboard.quick_actions_subtitle': 'Common actions within easy reach', 'dashboard.quick_action_attendance': 'Attendance', 'dashboard.quick_action_attendance_desc': 'Record an attendance session for a class.', 'dashboard.quick_action_assessment_desc': 'Create a new assessment.', 'dashboard.quick_action_report_desc': 'Generate a report card or progress report.', 'dashboard.quick_action_parent': 'Parent Talk', 'dashboard.quick_action_parent_desc': 'Compose or reply to a parent message.', 'dashboard.no_classes': 'No classes yet. Create a class to get started.', 'dashboard.no_recent_activity': 'No recent activity.', 'dashboard.no_students_attention': 'All students are on track!', 'dashboard.student_name': 'Student', 'dashboard.average_mastery': 'Average Mastery', 'dashboard.class_name': 'Class', 'dashboard.competency_name': 'Competency', 'dashboard.entry_date': 'Date', 'dashboard.mastery_level': 'Mastery Level', 'dashboard.teacher': 'Teacher', 'dashboard.this_week': 'This Week', 'dashboard.all_time': 'All Time', // Classes view 'classes.title': 'Classes & Students', 'classes.select_class': 'Select a class', 'classes.class_details': 'Class Details', 'classes.student_roster': 'Student Roster', 'classes.add_student': 'Add Student', 'classes.add_student_title': 'Add New Student', 'classes.enroll_student': 'Enroll Student', 'classes.enroll_student_title': 'Enroll Existing Student', 'classes.assign_template': 'Assign Competency Template', 'classes.create_class': 'Create New Class', 'classes.no_students': 'No students in this class.', 'classes.no_classes': 'No classes available.', 'classes.enrollment_status': 'Enrollment Status', 'classes.entry_count': 'Entries', 'classes.teacher_list': 'Teachers', 'classes.homeroom_teacher': 'Homeroom Teacher', 'classes.subject_teacher': 'Subject Teacher', 'classes.grade_level': 'Grade Level', 'classes.school_year_label': 'School Year', // Competency grid view 'competencies.title': 'Competency Grids', 'competencies.template_library': 'Template Library', 'competencies.template_details': 'Template Details', 'competencies.assign_to_class': 'Assign to Class', 'competencies.categories': 'Categories', 'competencies.competencies': 'Competencies', 'competencies.mastery_levels': 'Mastery Levels', 'competencies.no_templates': 'No competency templates available.', 'competencies.no_categories': 'No categories defined.', 'competencies.grid_structure': 'Grid Structure', 'competencies.assignments': 'Assignments', 'competencies.quick_guide_title': 'Quick Guide', 'competencies.quick_guide_subtitle': 'Overview of your competency template library', 'competencies.total_templates': 'Templates', 'competencies.total_categories': 'Categories', 'competencies.total_competencies': 'Competencies', 'competencies.by_subject_breakdown': 'Competencies by Subject', 'competencies.no_subjects_yet': 'No subjects assigned yet.', 'competencies.recent_templates': 'Template Library', 'competencies.no_recent_templates': 'No templates created yet.', 'competencies.no_subject': 'No subject', 'competencies.filter_school_type': 'School Type', 'competencies.filter_subject': 'Subject', 'competencies.filter_grade': 'Grade Level', 'competencies.global_template': 'Global Template', 'competencies.school_template': 'School Template', 'competencies.assignment_exists': 'Template already assigned', 'competencies.assignment_success': 'Template assigned successfully', 'competencies.create_template': 'Create New Template', 'competencies.version': 'Version', 'competencies.grade_range': 'Grade {min}–{max}', 'competencies.used_in_classes': 'Used in {count} class(es)', // Progress entries view 'progress.title': 'Progress Entries', 'progress.select_class': 'Select Class', 'progress.select_student': 'Select Student', 'progress.log_entry': 'Log Entry', 'progress.log_entry_title': 'Log New Progress Entry', 'progress.timeline': 'Timeline', 'progress.student_timeline': 'Student Timeline', 'progress.no_entries': 'No entries available.', 'progress.entry_saved': 'Entry saved', 'progress.bulk_saved': 'Entries saved', 'progress.select_competency': 'Select Competency', 'progress.mastery_level': 'Mastery Level', 'progress.note_optional': 'Note (optional)', 'progress.date': 'Date', 'progress.category': 'Category', 'progress.competency': 'Competency', 'progress.competency_code': 'Code', 'progress.no_class_selected': 'Select a class to see the student roster.', 'progress.no_students': 'No students in this class.', 'progress.no_template_assigned': 'No competency template assigned for this subject. Assign a template first.', 'progress.select_subject': 'Select Subject', 'progress.empty_step_title': 'Record Learning Progress', 'progress.empty_step_subtitle': 'Choose a class and subject to document individual learning progress.', 'progress.how_it_works_title': 'How it works', 'progress.how_it_works_subtitle': 'Three steps to your first progress entry', 'progress.empty_step1_title': 'Pick a class', 'progress.empty_step1_desc': 'Choose a class from the dropdown above.', 'progress.empty_step2_title': 'Pick a subject', 'progress.empty_step2_desc': 'Pick the subject whose competencies you want to assess.', 'progress.empty_step3_title': 'Record progress', 'progress.empty_step3_desc': 'Click a competency and enter the mastery level (1–4).', // Competence flower view 'flower.title': 'Competence Flower', 'flower.select_class': 'Select Class', 'flower.select_student': 'Select Student', 'flower.select_subject': 'Select Subject', 'flower.radar_chart': 'Competence Flower', 'flower.breakdown': 'Breakdown', 'flower.category': 'Category', 'flower.average_mastery': 'Average Mastery', 'flower.assessed': 'Assessed', 'flower.total': 'Total', 'flower.export_chart': 'Export Chart', 'flower.no_data': 'Select class, subject, and student to view the competence flower.', 'flower.no_progress': 'No progress data for this student.', 'flower.petal_legend': 'Each axis shows the average mastery level per category', // Assessments view 'assessments.title': 'Assessments', 'assessments.list': 'Assessments', 'assessments.create': 'Create Assessment', 'assessments.create_title': 'Create New Assessment', 'assessments.bulk_grading': 'Bulk Grading', 'assessments.bulk_grading_title': 'Grading for {title}', 'assessments.select_class': 'Select Class', 'assessments.select_subject': 'Select Subject', 'assessments.no_assessments': 'No assessments available.', 'assessments.results_count': 'Results', 'assessments.linked_competencies': 'Linked Competencies', 'assessments.enter_scores': 'Enter Scores', 'assessments.scores_saved': 'Scores saved', 'assessments.no_students': 'No students available.', 'assessments.assessment_type': 'Assessment Type', 'assessments.max_score': 'Max Score', 'assessments.weight': 'Weight', 'assessments.link_competency': 'Link Competency', // Grading view 'grading.title': 'Grading', 'grading.schemes': 'Grading Schemes', 'grading.weight_rules': 'Weight Rules', 'grading.computed_grades': 'Computed Grades', 'grading.breakdown': 'Grade Breakdown', 'grading.create_scheme': 'Create Scheme', 'grading.create_scheme_title': 'Create New Grading Scheme', 'grading.add_weight_rule': 'Add Weight Rule', 'grading.override_grade': 'Override Grade', 'grading.override_reason': 'Override Reason', 'grading.compute_grades': 'Compute Grades', 'grading.grades_computed': 'Grades computed', 'grading.no_schemes': 'No grading schemes available.', 'grading.no_grades': 'No grades computed yet.', 'grading.select_class': 'Select Class', 'grading.select_subject': 'Select Subject', 'grading.select_scheme': 'Select Scheme', 'grading.student': 'Student', 'grading.computed_value': 'Computed Value', 'grading.finalized': 'Finalized', 'grading.overridden': 'Overridden', 'grading.period': 'Period', // Reports view 'reports.title': 'Reports', 'reports.generate': 'Generate Report', 'reports.generate_title': 'Generate New Report', 'reports.preview': 'Report Preview', 'reports.export_pdf': 'Export as PDF', 'reports.bulk_generate': 'Bulk Generate for Class', 'reports.select_student': 'Select Student', 'reports.select_class': 'Select Class', 'reports.draft_reports': 'Draft Reports', 'reports.final_reports': 'Finalized Reports', 'reports.no_reports': 'No reports available.', 'reports.sections': 'Report Sections', 'reports.generated_by': 'Generated by', 'reports.generated_at': 'Generated at', 'reports.includes_grades': 'Includes Grades', 'reports.finalize_report': 'Finalize Report', 'reports.edit_section': 'Edit Section', 'reports.section_text': 'Text', 'reports.category_name': 'Category', 'reports.report_saved': 'Report saved', 'reports.report_finalized': 'Report finalized', 'reports.select_period': 'Select Period', 'reports.empty_subtitle': 'Select a class to create and manage reports.', // Empty states 'empty.no_data': 'No data available.', 'empty.no_results': 'No results.', 'empty.no_items': 'No items.', 'empty.add_first': 'Add the first item to get started.', 'empty.select_class': 'Select a class from the navigation.', 'empty.loading': 'Loading...', // Error messages 'error.generic': 'An error occurred.', 'error.network': 'Network error. Please try again.', 'error.not_authenticated': 'You are not authenticated.', 'error.forbidden': 'You do not have permission for this action.', 'error.not_found': 'The requested resource was not found.', 'error.validation': 'Please check your inputs.', 'error.unexpected': 'An unexpected error occurred.', // Toast messages 'toast.saved': 'Saved', 'toast.created': 'Created', 'toast.deleted': 'Deleted', 'toast.updated': 'Updated', 'toast.error': 'Error', 'toast.success': 'Success', 'toast.info': 'Info', 'toast.warning': 'Warning', // Theme 'theme.light': 'Light', 'theme.dark': 'Dark', 'theme.system': 'System', 'theme.toggle': 'Toggle theme', // Language 'language.de': 'German', 'language.en': 'English', 'language.toggle': 'Switch language', // Role 'role.teacher': 'Teacher', 'role.school_admin': 'School Admin', 'role.super_admin': 'Super Admin', // Assessment bulk grading 'assessments.save_all': 'Save All', 'assessments.score_invalid': 'Score must be between 0 and {max}', 'assessments.score_out_of_range': 'Out of range', 'assessments.mastery_buttons': 'Mastery Level', 'assessments.students_count': '{count} students', 'assessments.validation_error': 'Please check your inputs', // Grading enhancements 'grading.scale_reference': 'Grading Scale Reference', 'grading.grade_good': 'Good', 'grading.grade_ok': 'Satisfactory', 'grading.grade_needs_improvement': 'Needs Improvement', 'grading.override_title': 'Override Grade', 'grading.override_student': 'Student', 'grading.override_computed': 'Computed Grade', 'grading.override_new': 'New Grade', 'grading.override_justification': 'Justification (required)', 'grading.override_justification_required': 'Justification is required', 'grading.override_saved': 'Grade overridden', 'grading.weight_breakdown': 'Weight Breakdown', 'grading.weight_progress': 'Progress', // Report narrative generation 'reports.generating': 'Generating report...', 'reports.narrative_intro': 'Introduction', 'reports.narrative_competency': 'Competency Area', 'reports.narrative_summary': 'Summary', 'reports.download_pdf': 'Download as PDF', 'reports.pdf_coming_soon': 'PDF export will be available in a future version.', 'reports.edit_sections': 'Edit Sections', 'reports.section_edited': 'Section updated', 'reports.generate_narrative': 'Generate Report Text', 'reports.includes_grades_label': 'Include grades', // Onboarding checklist 'onboarding.title': 'Getting Started', 'onboarding.subtitle': 'Follow these steps to set up CompetenceTrack', 'onboarding.step_create_class': 'Create your first class', 'onboarding.step_assign_grid': 'Assign a competency grid', 'onboarding.step_add_students': 'Add students', 'onboarding.step_log_entry': 'Log your first entry', 'onboarding.step_create_class_desc': 'Create a class to manage students.', 'onboarding.step_assign_grid_desc': 'Assign a competency grid to track competencies.', 'onboarding.step_add_students_desc': 'Add students to your class.', 'onboarding.step_log_entry_desc': 'Record a student\'s learning progress.', 'onboarding.all_set': 'You\'re all set!', 'onboarding.all_set_desc': 'You\'ve completed all setup steps. Good luck!', 'onboarding.progress': '{completed} of {total} steps completed', 'onboarding.go_to_classes': 'Go to Classes', 'onboarding.go_to_grids': 'Go to Competency Grids', 'onboarding.go_to_progress': 'Go to Progress', // Student profile 'student.profile': 'Student Profile', 'student.quick_stats': 'Quick Stats', 'student.total_entries': 'Total entries', 'student.avg_mastery': 'Average mastery', 'student.recent_entries': 'Recent entries', 'student.view_flower': 'View Competence Flower', 'student.class': 'Class', 'student.date_of_birth': 'Date of Birth', // Template assignment flow 'classes.assign_template_title': 'Assign Competency Template', 'classes.assign_step1': '1. Select Subject', 'classes.assign_step2': '2. Select Template', 'classes.assign_step3': '3. Confirm Assignment', 'classes.assign_filtered': 'Filtered by school type and grade level', 'classes.assign_confirm': 'Confirm Assignment', 'classes.assign_review': 'Review', 'classes.assign_subject': 'Subject', 'classes.assign_no_templates': 'No matching templates found.', // Footer 'footer.copyright': 'CompetenceTrack — Free School Software', 'footer.version': 'Version 1.0', 'footer.oss': 'Open Source', 'sidebar.eco_message': 'Save paper, protect the environment', 'dashboard.env_tip_title': 'Eco Tip', 'dashboard.env_tip_text': 'Digital competency records save paper and protect the environment.', 'settings.demo_data_title': 'Demo Data', 'settings.demo_data_desc': 'Demo data is auto-generated and can be deleted at any time.', 'settings.demo_record_count': 'Records', 'settings.demo_delete_all_data': 'Delete All Demo Data', 'settings.demo_delete_confirm_data': 'Really delete all demo data (progress entries, assessments, reports)? Demo accounts will remain.', 'settings.demo_data_deleted': 'Demo data deleted', 'settings.env_tip': 'Save paper, protect the environment — digital records instead of printing.', // New styling keys 'dashboard.start_here': 'Start here!', 'date.today': 'Today', 'date.yesterday': 'Yesterday', 'date.days_ago': '{count} days ago', 'date.weeks_ago': '{count} weeks ago', 'progress.entries': 'entries', 'competencies.expand_all': 'Expand all', 'competencies.collapse_all': 'Collapse all', 'flower.class_average': 'Class Average', 'auth.mission_title': 'Competency-based assessment for everyone', 'auth.feature_competencies': 'Competency grids & learning progress', 'auth.feature_student_centered': 'Student-centered assessment', 'auth.feature_open_source': 'Free & Open-Source Software', 'grading.click_compute': 'Click "Compute Grades" to start', // New styling keys (round 2) 'header.select_year': 'School Year', 'header.notifications': 'Activity', 'auth.feature_reports': 'Reports & Transcripts', 'auth.feature_flower': 'Competence Flower', 'flower.hide_average': 'Hide Average', 'flower.show_average': 'Show Average', 'flower.download_png': 'As PNG', 'flower.compare_with': 'Compare with', 'flower.compare_clear': 'Clear comparison', 'flower.compare_legend': 'Comparison', 'grading.grade_distribution': 'Grade Distribution', 'grading.trend_title': 'Grade Trend', 'grading.trend_desc': 'Average grade development over time', 'grading.trend_average': 'Class average', // Navigation (new view) 'nav.settings': 'Settings', // Settings view 'settings.title': 'Settings & Administration', 'settings.tab_school': 'School Info', 'settings.tab_years': 'School Years', 'settings.tab_subjects': 'Subjects', 'settings.tab_audit': 'Audit Log', 'settings.tab_data': 'Data Management', 'settings.school_name': 'School Name', 'settings.school_type': 'School Type', 'settings.school_country': 'Country', 'settings.school_timezone': 'Timezone', 'settings.school_address': 'Address', 'settings.school_saved': 'School info saved', 'settings.year_label': 'Label', 'settings.year_start': 'Start Date', 'settings.year_end': 'End Date', 'settings.year_created': 'School year created', 'settings.year_classes': 'Classes', 'settings.year_enrollments': 'Enrollments', 'settings.subject_name': 'Subject Name', 'settings.subject_grade_min': 'Min Grade Level', 'settings.subject_grade_max': 'Max Grade Level', 'settings.subject_created': 'Subject created', 'settings.subject_updated': 'Subject updated', 'settings.subject_deleted': 'Subject deleted', 'settings.subject_global': 'Global', 'settings.subject_school': 'School-specific', 'settings.audit_title': 'Audit Log', 'settings.audit_action': 'Action', 'settings.audit_entity': 'Entity', 'settings.audit_actor': 'Actor', 'settings.audit_timestamp': 'Timestamp', 'settings.audit_filter_action': 'Filter action', 'settings.audit_filter_date_from': 'From', 'settings.audit_filter_date_to': 'To', 'settings.audit_all_actions': 'All actions', 'settings.audit_no_entries': 'No audit entries found', 'settings.data_title': 'Data Management & GDPR', 'settings.data_export_csv': 'CSV Export', 'settings.data_export_students': 'Students List', 'settings.data_export_progress': 'Progress Entries', 'settings.data_export_assessments': 'Assessments', 'settings.data_export_grades': 'Grades', 'settings.data_export_download': 'Download CSV', 'settings.data_export_started': 'Export started', 'settings.data_erasure': 'Data Erasure (GDPR)', 'settings.data_erasure_desc': 'Under GDPR, you can request the deletion of personal data.', 'settings.data_erasure_request': 'Request Erasure', 'settings.data_erasure_requested': 'Erasure requested', 'settings.data_erasure_scope': 'Scope', 'settings.data_erasure_scope_student': 'Single Student', 'settings.data_erasure_scope_class': 'Class', 'settings.data_erasure_scope_school': 'Entire School', 'settings.data_erasure_confirm': 'Confirm Erasure', // PDF export 'pdf.print_report': 'Print Report', 'pdf.print_view': 'Print View', 'pdf.export_pdf': 'Export PDF', 'pdf.generated': 'PDF report is being generated', 'pdf.report_title': 'Competence Report', 'pdf.student': 'Student', 'pdf.class': 'Class', 'pdf.period': 'Period', 'pdf.date': 'Date', // CSV export 'csv.export_title': 'Export Data', 'csv.export_type': 'Export Type', 'csv.export_class': 'Class', 'csv.export_year': 'School Year', 'csv.export_success': 'CSV file exported successfully', 'csv.export_error': 'Export error', // Notifications 'notification.title': 'Recent Activities', 'notification.progress_logged': 'Progress entry logged', 'notification.assessment_created': 'Assessment created', 'notification.grade_computed': 'Grades computed', 'notification.report_generated': 'Report generated', 'notification.preferences': 'Notification Preferences', 'notification.show_progress': 'Show progress entries', 'notification.show_assessments': 'Show assessments', 'notification.show_grades': 'Show grades', 'notification.show_reports': 'Show reports', 'notification.no_recent': 'No recent activities', 'notification.mark_read': 'Mark as read', // School year context 'context.all_years': 'All School Years', 'context.year_selected': 'School year selected', // User management 'settings.tab_users': 'Users', 'users.title': 'User Management', 'users.subtitle': 'Manage teachers & administrators', 'users.create_user': 'Create User', 'users.edit_user': 'Edit User', 'users.delete_user': 'Delete User', 'users.delete_confirm': 'Really deactivate this user? Access will be revoked immediately.', 'users.created': 'User account created', 'users.updated': 'User account updated', 'users.deleted': 'User account deactivated', 'users.no_users': 'No users found', 'users.role': 'Role', 'users.email': 'Email', 'users.password': 'Password', 'users.password_hint': 'At least 8 characters', 'users.assigned_classes': 'Assigned Classes', 'users.no_classes_assigned': 'No classes assigned', 'users.assign_classes': 'Assign Classes', 'users.active': 'Active', 'users.inactive': 'Inactive', 'users.count': '{count} users', 'users.last_active': 'Last active', 'users.created_at': 'Created at', // CSV student import 'classes.import_csv': 'Import CSV', 'classes.import_csv_title': 'Import Students from CSV', 'classes.import_csv_subtitle': 'Select a CSV file with student data (firstName, lastName, dateOfBirth, externalId)', 'classes.import_csv_select_file': 'Select CSV file', 'classes.import_csv_drag': 'Drag file here or click to select', 'classes.import_csv_preview': 'Preview', 'classes.import_csv_import': 'Import', 'classes.import_csv_success': '{success} students imported successfully', 'classes.import_csv_errors': '{errors} errors during import', 'classes.import_csv_no_data': 'No data found to import', 'classes.import_csv_invalid_format': 'Invalid CSV format. Columns: firstName, lastName, dateOfBirth, externalId', 'classes.import_csv_processing': 'Importing…', 'classes.import_csv_template': 'Download template', 'classes.import_csv_file_selected': 'File selected: {name} ({rows} rows)', 'classes.import_csv_row': 'Row {n}', 'classes.import_csv_results': 'Import Results', 'classes.import_csv_done': 'Done', 'classes.import_csv_external_id': 'External ID', 'classes.import_csv_first_name': 'First Name', 'classes.import_csv_last_name': 'Last Name', 'classes.import_csv_dob': 'Date of Birth', // Student detail view 'student_detail.title': 'Student Profile', 'student_detail.back': 'Back', 'student_detail.age': 'Age', 'student_detail.years': 'years', 'student_detail.school': 'School', 'student_detail.class': 'Class', 'student_detail.external_id': 'External ID', 'student_detail.date_of_birth': 'Date of Birth', 'student_detail.quick_stats': 'Quick Stats', 'student_detail.total_entries': 'Progress entries', 'student_detail.avg_mastery': 'Avg mastery', 'student_detail.latest_grade': 'Latest grade', 'student_detail.competence_flower': 'Competence Flower', 'student_detail.progress_timeline': 'Progress Timeline', 'student_detail.assessment_results': 'Assessment Results', 'student_detail.computed_grades': 'Computed Grades', 'student_detail.reports': 'Reports', 'student_detail.no_data': 'No data available', 'student_detail.no_progress_entries': 'No progress entries yet', 'student_detail.no_assessments': 'No assessment results', 'student_detail.no_grades': 'No computed grades', 'student_detail.no_reports': 'No reports generated', 'student_detail.no_flower': 'No competence flower available', 'student_detail.no_flower_hint': 'Select a class & subject in the Competence Flower view', 'student_detail.view_report': 'View Report', 'student_detail.view_flower': 'Full Competence Flower', 'student_detail.score': 'Score', 'student_detail.mastery': 'Mastery', 'student_detail.assessment': 'Assessment', 'student_detail.date': 'Date', 'student_detail.subject': 'Subject', 'student_detail.value': 'Value', 'student_detail.value_hint': 'Values 0–4 (competency level)', 'student_detail.period': 'Period', 'student_detail.status': 'Status', 'student_detail.generated_at': 'Generated at', 'student_detail.view_progress': 'Go to Progress', 'student_detail.print_report': 'Print Report', 'student_detail.select_subject_for_flower': 'Select subject for flower', 'student_detail.flower_not_assigned': 'No template assigned for this subject in this class', 'student_detail.created_at': 'Created', 'student_detail.note': 'Note', 'student_detail.competency': 'Competency', 'student_detail.category': 'Category', // ─── Styling polish: shared labels ────────────────────────────── 'polish.today_date': "Today's Date", 'polish.last_login': 'Last login', 'polish.last_login_never': 'First login', 'polish.class_overview': 'Class overview', 'polish.total_students': 'Total students', 'polish.total_entries': 'Total entries', 'polish.avg_mastery': 'Avg mastery', 'polish.class_health': 'Class health', 'polish.health_good': 'Good', 'polish.health_ok': 'Ok', 'polish.health_attention': 'Needs attention', 'polish.last_entry': 'Last entry', 'polish.never': '—', 'polish.search_students': 'Search students…', 'polish.competency_count': 'Competencies', 'polish.mastered': 'mastered', 'polish.mastery_distribution': 'Distribution', 'polish.todays_entries': "Today's entries", 'polish.filter_today': 'Today', 'polish.filter_week': 'This Week', 'polish.filter_month': 'This Month', 'polish.filter_all': 'All', 'polish.keyboard_hint': 'Shortcuts: 1–4 to pick mastery', 'polish.mastery_legend': 'Mastery legend', 'polish.level_1': 'Beginning', 'polish.level_2': 'Developing', 'polish.level_3': 'Secure', 'polish.level_4': 'Advanced', 'polish.progress_over_time': 'Progress over time', 'polish.vs_class_avg': 'vs. Class average', 'polish.student_value': 'Student', 'polish.class_average': 'Class average', 'polish.strengths': 'Strengths', 'polish.weaknesses': 'Areas to grow', 'polish.score_distribution': 'Score distribution', 'polish.class_avg': 'Class avg', 'polish.best_performer': 'Best performer', 'polish.needs_support': 'Needs support', 'polish.grade_stats': 'Grade statistics', 'polish.median': 'Median', 'polish.minimum': 'Min', 'polish.maximum': 'Max', 'polish.grade_trend': 'Grade trend', 'polish.grade_legend': 'Grade legend', 'polish.grade_good': 'good', 'polish.grade_satisfactory': 'satisfactory', 'polish.grade_needs_work': 'needs work', 'polish.report_completion': 'Report completion', 'polish.last_edited': 'Last edited', 'polish.workflow_draft': 'Draft', 'polish.workflow_review': 'In Review', 'polish.workflow_published': 'Published', 'polish.report_logo': 'School logo', 'polish.quick_stats': 'Quick stats', 'polish.total_users': 'Users', 'polish.total_subjects': 'Subjects', 'polish.total_years': 'School years', 'polish.audit_search': 'Search audit log…', 'polish.all_actions': 'All actions', 'polish.create_action': 'Create', 'polish.update_action': 'Update', 'polish.delete_action': 'Delete', 'polish.login_action': 'Login', 'polish.student_journey': 'Student journey', 'polish.competency_grid': 'Competency grid', 'polish.recent_achievements': 'Recent achievements', 'polish.teacher_notes': 'Teacher notes', 'polish.no_notes': 'No notes yet', 'polish.demo_credentials': 'Demo credentials', 'polish.demo_email': 'demo@competencetrack.org', 'polish.demo_password': 'Demo2025!', 'polish.demo_hint': 'Click to auto-fill the demo login', 'polish.remember_me': 'Remember me', 'polish.forgot_password': 'Forgot password?', 'polish.use_demo': 'Use demo credentials', 'polish.show_password': 'Show password', 'polish.hide_password': 'Hide password', 'polish.breadcrumb_home': 'Home', 'polish.quick_search': 'Quick search', 'polish.search_placeholder': 'Search students, classes or competencies…', 'polish.no_results': 'No results', 'polish.help': 'Help', 'polish.nav_setup': 'Setup', 'polish.nav_teaching': 'Teaching', 'polish.nav_analysis': 'Analysis', 'polish.students_found': '{count} students found', 'polish.class_avg_label': 'Class avg', 'polish.male': 'm', 'polish.female': 'f', 'polish.diverse': 'd', 'polish.print_preview': 'Print preview', 'polish.report_header': 'School Report', // ─── Analytics view ─────────────────────────────────────────────── 'nav.analytics': 'Analytics', 'analytics.title': 'Progress Analytics', 'analytics.subtitle': 'Comprehensive analysis of competency development across time, classes and competencies', 'analytics.filters': 'Filters', 'analytics.select_class': 'Select class', 'analytics.all_classes': 'All classes', 'analytics.select_subject': 'Select subject', 'analytics.all_subjects': 'All subjects', 'analytics.date_range': 'Date range', 'analytics.range_30': '30 days', 'analytics.range_90': '90 days', 'analytics.range_180': '180 days', 'analytics.range_365': '1 year', 'analytics.range_all': 'All time', 'analytics.mastery_trend': 'Mastery Trend Over Time', 'analytics.mastery_trend_desc': 'Average mastery level per week', 'analytics.class_comparison': 'Class Comparison', 'analytics.class_comparison_desc': 'Average mastery per class for the selected subject', 'analytics.mastery_distribution': 'Mastery Distribution', 'analytics.mastery_distribution_desc': 'Distribution of recorded mastery levels (1–4)', 'analytics.top_competencies': 'Top Competencies', 'analytics.bottom_competencies': 'Competencies Needing Support', 'analytics.top_bottom_desc': 'Top 5 / Bottom 5 by average mastery', 'analytics.activity_heatmap': 'Activity Heatmap', 'analytics.activity_heatmap_desc': 'Number of progress entries per day (last 90 days)', 'analytics.no_data': 'No data for the selected filters', 'analytics.no_data_hint': 'Select a class or subject to view analytics', 'analytics.entry_count': 'Entries', 'analytics.avg_mastery': 'Avg mastery', 'analytics.student_count': 'Students', 'analytics.level': 'Level', 'analytics.count': 'Count', 'analytics.share': 'Share', 'analytics.week': 'Wk', 'analytics.today': 'Today', 'analytics.less': 'less', 'analytics.more': 'more', 'analytics.refresh': 'Refresh', 'analytics.no_competencies': 'No competencies with entries found', 'analytics.no_classes': 'No classes with entries found', // ─── Mastery Matrix view ────────────────────────────────────────── 'nav.matrix': 'Mastery Matrix', 'matrix.title': 'Mastery Matrix', 'matrix.subtitle': 'Students × competencies — color-coded mastery overview', 'matrix.select_class': 'Select class', 'matrix.select_subject': 'Select subject', 'matrix.no_template': 'No competency template assigned for this class / subject', 'matrix.no_template_hint': 'Assign a template in the Classes view', 'matrix.no_students': 'No students enrolled in this class', 'matrix.entry_count_short': 'E', 'matrix.legend': 'Legend', 'matrix.legend_unassessed': 'Unassessed', 'matrix.legend_level_1': 'Level 1', 'matrix.legend_level_2': 'Level 2', 'matrix.legend_level_3': 'Level 3', 'matrix.legend_level_4': 'Level 4', 'matrix.row_avg': 'Student avg', 'matrix.col_avg': 'Class avg', 'matrix.entries_for': 'Entries for', 'matrix.no_entries_for': 'No entries for this competency', 'matrix.last_entry': 'Last entry', 'matrix.export_csv': 'Export CSV', 'matrix.export_success': 'Matrix exported as CSV', 'matrix.competency': 'Competency', 'matrix.student': 'Student', 'matrix.avg': 'Avg', 'matrix.entries': 'Entries', 'matrix.choose_filters': 'Please choose a class and subject', 'matrix.choose_filters_hint': 'Pick a class and subject above to view the matrix', // ─── Teacher Notes (Student Detail) ─────────────────────────────── 'teacher_notes.title': 'Teacher Notes', 'teacher_notes.subtitle': 'Private notes for teaching staff', 'teacher_notes.add': 'Add note', 'teacher_notes.add_title': 'New note', 'teacher_notes.edit_title': 'Edit note', 'teacher_notes.category': 'Category', 'teacher_notes.content': 'Content', 'teacher_notes.content_placeholder': 'Enter note…', 'teacher_notes.private': 'Private (visible to teachers only)', 'teacher_notes.created': 'Note created', 'teacher_notes.updated': 'Note updated', 'teacher_notes.deleted': 'Note deleted', 'teacher_notes.delete_confirm': 'Really delete this note?', 'teacher_notes.no_notes': 'No notes yet', 'teacher_notes.no_notes_hint': 'Notes are visible to teachers only', 'teacher_notes.count': '{count} notes', 'teacher_notes.by': 'by', 'teacher_notes.edit': 'Edit', 'teacher_notes.delete': 'Delete', 'teacher_notes.save': 'Save note', 'teacher_notes.cat_general': 'General', 'teacher_notes.cat_behavior': 'Behavior', 'teacher_notes.cat_academic': 'Academic', 'teacher_notes.cat_intervention': 'Intervention', 'teacher_notes.cat_parent_contact': 'Parent Contact', 'teacher_notes.error_min_content': 'Content cannot be empty', 'teacher_notes.you': 'You', 'teacher_notes.view_all': 'View all', // ─── Polish round 4: additional UI strings ────────────────────────── 'polish.insights_title': 'Insights', 'polish.insight_mastery_up': 'Mastery level improved by {pct}%', 'polish.insight_mastery_down': 'Mastery level declined by {pct}%', 'polish.insight_mastery_stable': 'Mastery level is stable', 'polish.insight_top_class': 'Class {class} leads with avg {avg}', 'polish.insight_mastered_pct': '{pct}% of entries are at level 3+', 'polish.insight_peak_day': 'Most active day: {date} ({count} entries)', 'polish.insight_focus': 'Needs attention: {comp} (avg {avg})', 'polish.coverage': 'Coverage', 'polish.matrix_click_hint': 'Click a cell to view entry details', 'polish.weekly_summary': 'Weekly Summary', 'polish.this_week_vs_last': 'This week vs. last week', 'polish.this_week': 'This week', 'polish.last_week': 'Last week', 'polish.change': 'Change', 'polish.mastery_indicator': 'Mastery', 'polish.template_usage': 'classes', 'polish.filter_by_category': 'Category', // ─── Empty state polish & shared UI strings ─────────────────────── 'polish.please_choose': 'Please choose…', 'polish.label_class': 'Class', 'polish.empty_title_no_class': 'No class selected yet', 'polish.empty_subtitle_no_class': 'Choose a class above to view and manage content.', 'polish.empty_title_no_data': 'Nothing here yet', 'polish.empty_subtitle_no_data': 'Once data is available, it will appear right here.', 'polish.empty_cta_select_class': 'Select a class', 'polish.empty_title_competency_grid': 'No competency template selected', 'polish.empty_subtitle_competency_grid': 'Pick a template from the library on the left to see its structure and details.', 'polish.empty_title_flower': 'No competence flower available', 'polish.empty_subtitle_flower': 'Select class, subject and student above to see the visual competency overview.', 'polish.empty_title_progress': 'No progress entries yet', 'polish.empty_subtitle_progress': 'Choose a class and subject to record or review learning progress.', 'polish.empty_title_assessments': 'No assessments created yet', 'polish.empty_subtitle_assessments': 'Pick a class and subject above, then create your first assessment.', 'polish.empty_title_grading': 'No grading available', 'polish.empty_subtitle_grading': 'Choose a class and subject above to set up grading schemes and compute grades.', 'polish.empty_title_reports': 'No reports generated yet', 'polish.empty_subtitle_reports': 'Pick a class above to generate and manage student reports.', 'polish.empty_title_attendance': 'Track attendance', 'polish.empty_subtitle_attendance': 'Choose a class above to create attendance sessions and review statistics.', 'polish.empty_title_matrix': 'Matrix not available yet', 'polish.empty_subtitle_matrix': 'Choose a class and subject above to see the full competency matrix for all students.', 'polish.trend_up': 'Trending up', 'polish.trend_down': 'Trending down', 'polish.trend_flat': 'Stable', 'polish.this_week_bars': 'This week vs. last week', // ─── Empty state enrichments (Round 7) ─────────────────────────────── 'polish.recent_activity_title': 'Recent Activity', 'polish.recent_activity_subtitle': 'Latest learning progress across all classes', 'polish.recent_activity_loading': 'Loading activity…', 'polish.recent_activity_empty': 'No activity yet.', 'polish.grading_overview_title': 'Grading Overview', 'polish.grading_overview_subtitle': 'Grading schemes and computations for your school', 'polish.grading_total_schemes': 'Grading schemes', 'polish.grading_subjects_covered': 'Subjects covered', 'polish.grading_distribution': 'Type distribution', 'polish.grading_loading': 'Loading grading data…', 'polish.report_templates_title': 'Report Templates', 'polish.report_templates_subtitle': 'Three report types for different use cases', 'polish.report_template_draft_name': 'Draft Report', 'polish.report_template_draft_desc': 'Collect observations and texts during the semester and expand them step by step.', 'polish.report_template_final_name': 'Final Report', 'polish.report_template_final_desc': 'Finished report with narrative texts and optional grades for the report card conference.', 'polish.report_template_pdf_name': 'PDF Export', 'polish.report_template_pdf_desc': 'Print-ready version to share with parents and students.', 'polish.matrix_how_it_works_title': 'How it works', 'polish.matrix_how_it_works_subtitle': 'Three steps to the competency matrix', 'polish.matrix_step_1_title': 'Pick a class', 'polish.matrix_step_1_desc': 'Choose a class from the dropdown above.', 'polish.matrix_step_2_title': 'Pick a subject', 'polish.matrix_step_2_desc': 'Pick the subject whose competencies you want to see.', 'polish.matrix_step_3_title': 'View matrix', 'polish.matrix_step_3_desc': 'The competency matrix for all students loads automatically.', 'polish.attendance_quick_stats_title': 'Quick Stats', 'polish.attendance_quick_stats_subtitle': 'Attendance overview across all your classes', 'polish.attendance_total_sessions_month': 'Sessions this month', 'polish.attendance_avg_rate': 'Avg. attendance rate', 'polish.attendance_common_reason': 'Most common absence reason', 'polish.attendance_no_absences': 'No absences', 'polish.attendance_loading': 'Loading quick stats…', 'polish.attendance_no_classes_hint': 'No classes yet — create a class to start tracking attendance.', // ─── Score distribution histogram (assessments) ──────────────────── 'assessments.score_distribution': 'Score Distribution', 'assessments.average': 'Average', 'assessments.median': 'Median', 'assessments.range': 'Range', 'assessments.no_scores': 'No scores available', // ─── Student journey timeline ────────────────────────────────────── 'student.journey': 'Learning Journey', 'student.journey_milestone': 'Milestone', 'student.journey_achieved': 'Competency achieved', 'student.journey_started': 'New area started', 'student.journey_above_avg': 'Above average performance', 'student.journey_grade': 'Grading completed', 'student.journey_last_30': 'Last 30 days', 'student.journey_last_90': 'Last 90 days', 'student.journey_all': 'All time', // Student export & print 'student.export_pdf': 'Export as PDF', 'student.export_csv': 'Export as CSV', 'student.print_report': 'Print report', 'student.export_data': 'Export data', // ─── Attendance ────────────────────────────────────────────────────── 'nav.attendance': 'Attendance', 'attendance.title': 'Attendance Tracking', 'attendance.subtitle': 'Track and analyze attendance per class and period', 'attendance.new_session': 'New Session', 'attendance.present': 'Present', 'attendance.absent': 'Absent', 'attendance.excused': 'Excused', 'attendance.late': 'Late', 'attendance.status': 'Status', 'attendance.rate': 'Attendance Rate', 'attendance.date': 'Date', 'attendance.period': 'Period', 'attendance.completed': 'Completed', 'attendance.open': 'Open', 'attendance.save_all': 'Save All', 'attendance.no_sessions': 'No attendance data', 'attendance.stats': 'Statistics', 'attendance.monthly': 'Monthly Overview', 'attendance.absences_count': 'Absences', 'attendance.late_count': 'Late arrivals', 'attendance.select_class': 'Select class', 'attendance.comment': 'Comment', 'attendance.arrival_time': 'Arrival time', 'attendance.calendar': 'Calendar', 'attendance.complete_session': 'Complete session', 'attendance.delete_session': 'Delete session', 'attendance.reopen_session': 'Reopen session', 'attendance.no_students': 'No students in this class', 'attendance.session_for': 'Attendance for', 'attendance.total_students': 'Total students', 'attendance.present_count': 'Present', 'attendance.excused_count': 'Excused', 'attendance.absent_count': 'Absent', 'attendance.late_count_short': 'Late', 'attendance.subject': 'Subject', 'competencies.select_class': 'Select a competency template from the list', 'label.teacher': 'Teachers', 'label.student': 'Student', 'label.students': 'Students', 'label.classes': 'Classes', 'label.subjects': 'Subjects', 'label.entries': 'Entries', 'label.assessments': 'Assessments', 'label.reports': 'Reports', // ─── Lesson Planning ────────────────────────────────────────────── 'nav.lesson_plans': 'Lesson Planning', 'nav.lesson-plans': 'Lesson Planning', 'lesson.title': 'Lesson Planning', 'lesson.subtitle': 'Plan and document lessons', 'lesson.new': 'New Lesson', 'lesson.edit': 'Edit Lesson', 'lesson.empty': 'No lessons planned yet', 'lesson.empty_desc': 'Create your first lesson', 'lesson.this_week': 'This Week', 'lesson.upcoming': 'Upcoming', 'lesson.field.title': 'Title', 'lesson.field.description': 'Description', 'lesson.field.date': 'Date', 'lesson_plans.date_hint': 'Format: DD.MM.YYYY', 'lesson.field.duration': 'Duration (min)', 'lesson.field.class': 'Class', 'lesson.field.subject': 'Subject', 'lesson.field.objectives': 'Learning Objectives', 'lesson.field.materials': 'Materials', 'lesson.field.homework': 'Homework', 'lesson.field.reflection': 'Reflection', 'lesson.field.competencies': 'Linked Competencies', 'lesson.field.status': 'Status', 'lesson.status_draft': 'Draft', 'lesson.status_scheduled': 'Scheduled', 'lesson.status_completed': 'Completed', 'lesson.status_cancelled': 'Cancelled', 'lesson.filter_all': 'All', 'lesson.add_objective': 'Add objective', 'lesson.add_material': 'Add material', 'lesson.duration_min': 'min', 'lesson.agenda': 'Agenda', 'lesson.delete_confirm': 'Really delete this lesson?', 'lesson.saved': 'Lesson saved', 'lesson.deleted': 'Lesson deleted', 'lesson.no_upcoming': 'No upcoming lessons', 'lesson.no_lessons_this_week': 'No lessons scheduled this week', 'lesson.select_class_first': 'Please select a class first', 'lesson.duration_label': '{min} min', 'lesson.objective_placeholder': 'New objective…', 'lesson.material_placeholder': 'New material…', 'lesson.objectives_count': '{count} objectives', 'lesson.materials_count': '{count} materials', // ─── Unified Calendar ───────────────────────────────────────────────── 'nav.calendar': 'Calendar', 'calendar.title': 'Calendar', 'calendar.subtitle': 'All dates and events at a glance', 'calendar.today': 'Today', 'calendar.legend': 'Legend', 'calendar.upcoming': 'Upcoming', 'calendar.upcoming_week': 'This week', 'calendar.no_events': 'No events this month', 'calendar.no_events_desc': 'Try another month', 'calendar.event_types.assessment': 'Assessment', 'calendar.event_types.attendance': 'Attendance', 'calendar.event_types.progress': 'Progress', 'calendar.event_types.report': 'Report', 'calendar.event_types.lesson': 'Lesson', 'calendar.more_events': '+{count} more', 'calendar.day_events': 'Events on {date}', 'calendar.week': 'Week', 'calendar.loading': 'Loading events…', 'calendar.error': 'Failed to load events', 'calendar.no_day_events': 'No events on this day', 'calendar.close': 'Close', 'calendar.meta.subject': 'Subject', 'calendar.meta.class': 'Class', 'calendar.meta.type': 'Type', 'calendar.meta.period': 'Period', 'calendar.meta.status': 'Status', 'calendar.meta.rate': 'Rate', 'calendar.meta.present': 'Present', 'calendar.meta.absent': 'Absent', 'calendar.meta.excused': 'Excused', 'calendar.meta.late': 'Late', 'calendar.meta.count': 'Entries', 'calendar.meta.student': 'Student', 'calendar.meta.weight': 'Weight', 'calendar.meta.max_score': 'Max score', 'calendar.meta.includes_grades': 'With grades', 'calendar.no_upcoming': 'No upcoming events this week', // ─── Grade Trend & Risk Analysis (analytics enhancements) ──────── 'analytics.grade_trend': 'Grade Trend Over Time', 'analytics.grade_trend_desc': 'Average mastery by week', 'analytics.range_12_weeks': '12 Weeks', 'analytics.range_24_weeks': '24 Weeks', 'analytics.min_standard': 'Minimum Standard', 'analytics.unique_students': 'Students', 'analytics.school_avg': 'School Avg', 'analytics.risk_analysis': 'Risk Analysis: Students Needing Support', 'analytics.risk_analysis_desc': 'Students needing support', 'analytics.risk_score': 'Risk Score', 'analytics.risk_level': 'Risk Level', 'analytics.risk_low': 'Low', 'analytics.risk_medium': 'Medium', 'analytics.risk_high': 'High', 'analytics.risk_critical': 'Critical', 'analytics.signals': 'Signals', 'analytics.signal_low_mastery': 'Low Mastery', 'analytics.signal_no_progress': 'No Recent Progress', 'analytics.signal_low_attendance': 'Low Attendance', 'analytics.signal_declining': 'Declining Trend', 'analytics.latest_mastery': 'Latest Mastery', 'analytics.last_activity': 'Last Activity', 'analytics.total_at_risk': 'Total At Risk', 'analytics.critical_count': 'Critical', 'analytics.high_count': 'High', 'analytics.avg_risk_score': 'Avg Risk Score', 'analytics.all_good': 'All students are on track!', 'analytics.filter_risk': 'Filter by risk level', 'analytics.class_avg': 'Class Avg', 'analytics.details': 'Details', 'analytics.filter_all': 'All', 'analytics.no_recent_activity': 'No activity', 'analytics.risk_distribution_title': 'Risk Level Distribution', 'analytics.risk_distribution_desc': 'Number of students by risk level', // ─── Parent Communication ────────────────────────────────────────── 'nav.parents': 'Parent Communication', 'parents.title': 'Parent Communication', 'parents.subtitle': 'Manage messages to parents', 'parents.new_message': 'New Message', 'parents.new_contact': 'New Contact', 'parents.conversations': 'Conversations', 'parents.no_conversations': 'No conversations', 'parents.no_conversations_desc': 'Start a new message', 'parents.select_conversation': 'Select a conversation', 'parents.parent_info': 'Parent Info', 'parents.student_info': 'Student Info', 'parents.field.parent': 'Parent/Guardian', 'parents.field.student': 'Student', 'parents.field.subject': 'Subject', 'parents.field.body': 'Message', 'parents.field.category': 'Category', 'parents.field.priority': 'Priority', 'parents.field.relationship': 'Relationship', 'parents.field.email': 'Email', 'parents.field.phone': 'Phone', 'parents.field.preferred_contact': 'Preferred Contact', 'parents.field.preferred_language': 'Preferred Language', 'parents.field.notes': 'Notes', 'parents.category_general': 'General', 'parents.category_progress': 'Progress', 'parents.category_assessment': 'Assessment', 'parents.category_behavior': 'Behavior', 'parents.category_attendance': 'Attendance', 'parents.category_event': 'Event', 'parents.priority_low': 'Low', 'parents.priority_normal': 'Normal', 'parents.priority_high': 'High', 'parents.priority_urgent': 'Urgent', 'parents.status_draft': 'Draft', 'parents.status_sent': 'Sent', 'parents.status_delivered': 'Delivered', 'parents.status_read': 'Read', 'parents.status_replied': 'Replied', 'parents.reply': 'Reply', 'parents.send': 'Send', 'parents.save_draft': 'Save Draft', 'parents.statistics': 'Statistics', 'parents.messages_sent': 'Messages Sent', 'parents.response_rate': 'Response Rate', 'parents.avg_response_time': 'Avg Response Time', 'parents.by_category': 'By Category', 'parents.empty_thread': 'No messages yet', 'parents.empty_thread_desc': 'Start the conversation', 'parents.templates': 'Templates', 'parents.template_progress_good': 'Positive Progress', 'parents.template_assessment_reminder': 'Assessment Reminder', 'parents.template_behavior_concern': 'Behavior Concern', 'parents.template_meeting_request': 'Meeting Request', 'parents.relationship_parent': 'Parent', 'parents.relationship_guardian': 'Guardian', 'parents.relationship_emergency': 'Emergency Contact', 'parents.delete_confirm': 'Delete this message?', 'parents.deleted': 'Message deleted', 'parents.sent': 'Message sent', 'parents.draft_saved': 'Draft saved', 'parents.reply_sent': 'Reply saved', 'parents.marked_read': 'Marked as read', 'parents.contact_created': 'Contact created', 'parents.contact_updated': 'Contact updated', 'parents.contact_deleted': 'Contact deleted', 'parents.filter_all': 'All', 'parents.filter_by_student': 'By Student', 'parents.filter_by_category': 'By Category', 'parents.search_placeholder': 'Search by name…', 'parents.this_month': 'This month', 'parents.no_messages_sent': 'No messages sent yet', 'parents.messages': 'Messages', 'parents.unread': 'Unread', 'parents.last_message': 'Last message', 'parents.create_contact_first': 'Please create a parent contact first', 'parents.no_contacts': 'No parent contacts', 'parents.no_contacts_desc': 'Create the first contact', 'parents.view_thread': 'View thread', 'parents.reply_placeholder': 'Enter parent reply…', 'parents.hours': 'h', 'parents.minutes': 'min', 'parents.days': 'd', 'parents.no_response_yet': 'No response', // Behavior Tracking — Verhaltensverfolgung 'nav.behavior': 'Behavior', 'behavior.title': 'Behavior Tracking', 'behavior.subtitle': 'Log and track behavior incidents for your students', 'behavior.tab_incidents': 'Incidents', 'behavior.tab_categories': 'Categories', 'behavior.tab_statistics': 'Statistics', 'behavior.loading': 'Loading…', 'behavior.error_load': 'Failed to load', 'behavior.error_save': 'Failed to save', 'behavior.error_delete': 'Failed to delete', 'behavior.empty_incidents': 'No incidents logged', 'behavior.empty_incidents_desc': 'Log the first incident or adjust the filters.', 'behavior.empty_incidents_filtered': 'No incidents match the selected filters', 'behavior.empty_incidents_filtered_desc': 'Adjust the filters to see results.', 'behavior.empty_categories': 'No categories yet', 'behavior.empty_categories_desc': 'Create your first behavior category.', 'behavior.select_class': 'Select class', 'behavior.all_classes': 'All classes', 'behavior.all_students': 'All students', 'behavior.all_categories': 'All categories', 'behavior.all_severities': 'All severities', 'behavior.all_resolved': 'All status', 'behavior.add_incident': 'Log incident', 'behavior.edit_incident': 'Edit incident', 'behavior.add_category': 'Add category', 'behavior.edit_category': 'Edit category', 'behavior.field.student': 'Student', 'behavior.field.category': 'Category', 'behavior.field.date': 'Date', 'behavior.field.severity': 'Severity', 'behavior.field.description': 'Description', 'behavior.field.location': 'Location', 'behavior.field.follow_up': 'Follow-up action', 'behavior.field.name': 'Name', 'behavior.field.color': 'Color', 'behavior.field.valence': 'Valence', 'behavior.field.icon': 'Icon (emoji)', 'behavior.field.class': 'Class', 'behavior.field.resolved': 'Mark as resolved', 'behavior.severity.minor': 'Minor', 'behavior.severity.moderate': 'Moderate', 'behavior.severity.major': 'Major', 'behavior.valence.positive': 'Positive', 'behavior.valence.negative': 'Negative', 'behavior.valence.neutral': 'Neutral', 'behavior.resolved': 'Resolved', 'behavior.unresolved': 'Open', 'behavior.mark_resolved': 'Mark as resolved', 'behavior.mark_unresolved': 'Reopen', 'behavior.resolved_by': 'Resolved by', 'behavior.resolved_at': 'Resolved at', 'behavior.created_at': 'Logged at', 'behavior.by_teacher': 'Logged by', 'behavior.delete_incident_title': 'Delete incident', 'behavior.delete_incident_desc': 'Are you sure you want to delete this incident? This action cannot be undone.', 'behavior.delete_category_title': 'Delete category', 'behavior.delete_category_desc': 'Are you sure you want to delete this category?', 'behavior.delete_category_blocked': 'Cannot delete category — incidents are still assigned to it.', 'behavior.save': 'Save', 'behavior.cancel': 'Cancel', 'behavior.delete': 'Delete', 'behavior.edit': 'Edit', 'behavior.saved_incident': 'Incident saved', 'behavior.deleted_incident': 'Incident deleted', 'behavior.saved_category': 'Category saved', 'behavior.deleted_category': 'Category deleted', 'behavior.marked_resolved': 'Incident marked as resolved', 'behavior.marked_unresolved': 'Incident reopened', 'behavior.location.classroom': 'Classroom', 'behavior.location.playground': 'Playground', 'behavior.location.hallway': 'Hallway', 'behavior.location.gym': 'Gym', 'behavior.location.auditorium': 'Auditorium', 'behavior.location.library': 'Library', 'behavior.location.cafeteria': 'Cafeteria', 'behavior.location.other': 'Other location', 'behavior.followup.parent_talk': 'Parent talk', 'behavior.followup.detention': 'Detention', 'behavior.followup.praise_circle': 'Praise in circle', 'behavior.followup.note_home': 'Note home', 'behavior.followup.warning': 'Warning', 'behavior.followup.mediation': 'Mediation', 'behavior.followup.prize': 'Reward', 'behavior.followup.none': 'None', 'behavior.filter_section': 'Filters', 'behavior.filter.date_from': 'From', 'behavior.filter.date_to': 'To', 'behavior.filter.category': 'Category', 'behavior.filter.severity': 'Severity', 'behavior.filter.resolved': 'Status', 'behavior.filter.student': 'Student', 'behavior.stat.this_month': 'Incidents this month', 'behavior.stat.positive': 'Positive incidents', 'behavior.stat.negative': 'Negative incidents', 'behavior.stat.resolution_rate': 'Resolution rate', 'behavior.stat.by_category': 'Incidents by category', 'behavior.stat.by_valence': 'Distribution by valence', 'behavior.stat.top_students': 'Top 5 students by incidents', 'behavior.stat.no_data': 'No data available yet', 'behavior.stat.total': 'Total', 'behavior.stat.pos_count': 'Positive', 'behavior.stat.neg_count': 'Negative', 'behavior.incidents_count': 'incidents', 'behavior.preview': 'Preview', 'behavior.no_class_selected': 'Please select a class', 'behavior.no_class_selected_desc': 'Select a class above to log and view behavior incidents.', 'behavior.schoolwide': 'School-wide', 'behavior.color_helper': 'Hex color, e.g. #10b981', 'behavior.icon_helper': 'An emoji for quick recognition, e.g. 🤝', 'behavior.name_placeholder': 'e.g. Helpful behavior', 'behavior.description_placeholder': 'What happened?', 'behavior.location_placeholder': 'e.g. Classroom', 'behavior.followup_placeholder': 'e.g. Parent talk', 'behavior.detail': 'Detail', 'behavior.required_student': 'Please select a student', 'behavior.required_category': 'Please select a category', 'behavior.required_description': 'Please enter a description', 'behavior.duplicate_category': 'A category with this name already exists', 'behavior.confirm_close': 'Are you sure you want to close? Unsaved changes will be lost.', // Curriculum Coverage 'nav.coverage': 'Coverage', 'coverage.title': 'Curriculum Coverage', 'coverage.subtitle': 'See which competencies have been assessed and where gaps remain', 'coverage.loading': 'Loading…', 'coverage.error': 'Failed to load coverage data', 'coverage.select_class': 'Please select a class', 'coverage.select_subject': 'All subjects', 'coverage.no_assignments': 'No competency template assigned', 'coverage.no_assignments_desc': 'This class has no competency template yet. Assign one in the Competency Grid section to analyze coverage.', 'coverage.go_to_grid': 'Go to Competency Grid', 'coverage.kpi.total': 'Total Competencies', 'coverage.kpi.assessed': 'Assessed', 'coverage.kpi.not_assessed': 'Not Assessed', 'coverage.kpi.students': 'Students', 'coverage.section.by_category': 'Coverage by Category', 'coverage.section.by_category_desc': 'Overview of assessment progress per competency category', 'coverage.section.matrix': 'Competency Matrix', 'coverage.section.matrix_desc': 'Detailed overview of all competencies', 'coverage.section.action_needed': 'Action Needed', 'coverage.section.action_needed_desc': 'These competencies have not yet been assessed or only partially', 'coverage.section.recent': 'Recently Assessed', 'coverage.section.recent_desc': 'The 5 most recently assessed competencies', 'coverage.filter.all': 'All', 'coverage.filter.covered': 'Covered', 'coverage.filter.partial': 'Partial', 'coverage.filter.untouched': 'Not started', 'coverage.sort.by_category': 'By Category', 'coverage.sort.by_status': 'By Status', 'coverage.sort.by_recent': 'Recently Assessed', 'coverage.search_placeholder': 'Search competency (code or title)…', 'coverage.status.covered': 'Fully assessed', 'coverage.status.partial': 'Partially assessed', 'coverage.status.untouched': 'Not assessed', 'coverage.assessed_count': 'Assessed students', 'coverage.last_assessed': 'Last assessed', 'coverage.never_assessed': 'Never assessed', 'coverage.assessments_count': 'Assessments', 'coverage.progress_count': 'Progress entries', 'coverage.empty_action': 'All competencies assessed!', 'coverage.empty_action_desc': 'All competencies for this class have been at least partially assessed.', 'coverage.empty_recent': 'No assessments yet', 'coverage.empty_recent_desc': 'Once you record progress entries, they will appear here.', 'coverage.record_progress': 'Record', 'coverage.guide.title': 'How it works', 'coverage.guide.subtitle': 'Three steps to coverage analysis', 'coverage.guide.step1_title': 'Select a class', 'coverage.guide.step1_desc': 'Choose a class above to load its assigned competency templates.', 'coverage.guide.step2_title': 'Select a subject (optional)', 'coverage.guide.step2_desc': 'Filter by a specific subject or view all subjects at once.', 'coverage.guide.step3_title': 'Analyze coverage', 'coverage.guide.step3_desc': 'Identify gaps and competencies that need to be assessed.', 'coverage.no_data': 'No data available', 'coverage.coverage_percent': 'Covered', 'coverage.not_covered_percent': 'Open', 'attendance.empty_action_hint': 'Click "New Session" above to start an attendance session.', 'student_detail.sparse_chart_hint': 'Competency areas without assessment are displayed as a minimum value.', 'student_detail.no_assessment': 'N/A', 'analytics.level_range': '(0–4)', 'analytics.calendar_week_full': 'Calendar week', 'flower.empty_tip': 'Select a class and a student to see the competence flower.', 'grading.empty_description': 'Grading schemes define how different assessments (progress, exams, etc.) are combined into an overall grade. Choose a class and subject to begin.', 'parents.no_conversation_selected': 'Select a conversation from the list', // ─── Rubric Library ────────────────────────────────────────────── 'nav.rubrics': 'Rubrics', 'rubrics.title': 'Rubric Library', 'rubrics.subtitle': 'Create and manage reusable grading rubrics', 'rubrics.create': 'Create Rubric', 'rubrics.edit': 'Edit Rubric', 'rubrics.duplicate': 'Duplicate', 'rubrics.delete': 'Delete', 'rubrics.detail': 'Rubric Details', 'rubrics.print': 'Print', 'rubrics.save': 'Save', 'rubrics.cancel': 'Cancel', 'rubrics.close': 'Close', 'rubrics.type_analytic': 'Analytic', 'rubrics.type_holistic': 'Holistic', 'rubrics.criteria': 'Criteria', 'rubrics.levels': 'Performance Levels', 'rubrics.add_criterion': 'Add Criterion', 'rubrics.add_level': 'Add Level', 'rubrics.remove_criterion': 'Remove Criterion', 'rubrics.remove_level': 'Remove Level', 'rubrics.criterion_name': 'Criterion Name', 'rubrics.criterion_description': 'Criterion Description', 'rubrics.criterion_weight': 'Weight', 'rubrics.criterion_max_points': 'Max Points', 'rubrics.level_label': 'Level Label', 'rubrics.level_description': 'Descriptor', 'rubrics.level_points': 'Points', 'rubrics.field.title': 'Title', 'rubrics.field.description': 'Description', 'rubrics.field.type': 'Rubric Type', 'rubrics.field.subject': 'Subject', 'rubrics.field.max_points': 'Maximum Points', 'rubrics.field.is_public': 'Share school-wide', 'rubrics.field.is_public_hint': 'Other teachers can use this rubric', 'rubrics.no_subject': 'No Subject', 'rubrics.all_subjects': 'All Subjects', 'rubrics.public': 'Public', 'rubrics.private': 'Private', 'rubrics.version': 'Version', 'rubrics.by_teacher': 'By', 'rubrics.max_points': 'Max Points', 'rubrics.search_placeholder': 'Search rubrics…', 'rubrics.filter_subject': 'Filter by subject', 'rubrics.filter_public': 'My rubrics only', 'rubrics.filter_all': 'All rubrics', 'rubrics.empty_title': 'No rubrics yet', 'rubrics.empty_desc': 'Create your first rubric to define standardized grading criteria for your class.', 'rubrics.empty_create': 'Create First Rubric', 'rubrics.loading': 'Loading…', 'rubrics.error': 'Failed to load rubrics', 'rubrics.saved': 'Rubric saved', 'rubrics.deleted': 'Rubric deleted', 'rubrics.duplicated': 'Rubric duplicated', 'rubrics.delete_title': 'Delete Rubric', 'rubrics.delete_desc': 'Are you sure you want to delete this rubric? This action cannot be undone.', 'rubrics.preview': 'Preview', 'rubrics.edit_form': 'Edit', 'rubrics.criteria_count': '{count} criteria', 'rubrics.criterion': 'Criterion', 'rubrics.level': 'Level', 'rubrics.weight': 'Weight', 'rubrics.points': 'Points', 'rubrics.total_weight': 'Total Weight', 'rubrics.total_points': 'Total Points', 'rubrics.title_required': 'Please enter a title', 'rubrics.criteria_required': 'At least one criterion is required', 'rubrics.levels_required': 'Each criterion needs at least one level', 'rubrics.level_header': 'Level {order}', 'rubrics.table_criterion': 'Criterion', 'rubrics.table_weight_short': 'Wt.', 'rubrics.confirm_close': 'Unsaved changes will be lost. Continue?', // ── Comments Bank (Report Card Comments) ────────────────────────────── 'nav.comments': 'Comments', 'nav.drawing': 'Drawing', 'comments.title': 'Report Card Comments', 'comments.subtitle': 'Library of reusable comment texts for report cards', 'comments.tab_entries': 'Comments', 'comments.tab_categories': 'Categories', 'comments.tab_statistics': 'Statistics', 'comments.search_placeholder': 'Search comments…', 'comments.create_entry': 'Create Comment', 'comments.edit_entry': 'Edit Comment', 'comments.create_entry_desc': 'Create a new reusable comment for report cards.', 'comments.edit_entry_desc': 'Edit the comment.', 'comments.field_title': 'Title', 'comments.title_placeholder': 'Short comment title', 'comments.field_category': 'Category', 'comments.field_subject': 'Subject', 'comments.no_subject': 'No Subject', 'comments.field_grade_level': 'Grade Level', 'comments.field_text': 'Comment Text', 'comments.text_placeholder': 'Write the comment text here…', 'comments.field_public': 'Public', 'comments.field_tags': 'Tags', 'comments.tags_placeholder': 'e.g. motivation, social, academic', 'comments.preview': 'Preview', 'comments.public': 'Public', 'comments.private': 'Private', 'comments.usage_count': 'Uses', 'comments.entries_count': 'Entries', 'comments.copy_success': 'Copied to clipboard', 'comments.copy_text': 'Copy Text', 'comments.saved': 'Comment saved', 'comments.created': 'Comment created', 'comments.deleted': 'Comment deleted', 'comments.error': 'Failed to load', 'comments.validation_required': 'Please fill in all required fields.', 'comments.empty_title': 'No comments yet', 'comments.empty_desc': 'Create your first reusable comment for report cards.', 'comments.empty_create': 'Create First Comment', 'comments.filter_category': 'Category', 'comments.filter_subject': 'Subject', 'comments.filter_grade': 'Grade Level', 'comments.filter_visibility': 'Visibility', 'comments.all_categories': 'All Categories', 'comments.all_subjects': 'All Subjects', 'comments.all_grades': 'All Grades', 'comments.all_visibility': 'All', 'comments.public_only': 'Public Only', 'comments.private_only': 'Private Only', 'comments.categories_title': 'Comment Categories', 'comments.add_category': 'Add Category', 'comments.edit_category': 'Edit Category', 'comments.add_category_desc': 'Create a new category for comments.', 'comments.edit_category_desc': 'Edit the category.', 'comments.category_name': 'Name', 'comments.category_name_placeholder': 'e.g. Social Behavior', 'comments.category_name_required': 'Please enter a category name.', 'comments.category_color': 'Color', 'comments.category_icon': 'Icon', 'comments.category_icon_placeholder': '🤝', 'comments.category_saved': 'Category saved', 'comments.category_created': 'Category created', 'comments.category_deleted': 'Category deleted', 'comments.category_empty_title': 'No categories yet', 'comments.category_empty_desc': 'Create your first category.', 'comments.delete_entry_title': 'Delete Comment', 'comments.delete_entry_desc': 'Are you sure you want to delete this comment? This action cannot be undone.', 'comments.delete_category_title': 'Delete Category', 'comments.delete_category_desc': 'Are you sure you want to delete this category? Categories with existing comments cannot be deleted.', 'comments.stat_total': 'Total', 'comments.stat_public': 'Public', 'comments.stat_categories': 'Categories', 'comments.stat_most_used': 'Most Used', 'comments.chart_by_category': 'Comments by Category', 'comments.top_used_title': 'Top 5 Most-Used Comments', // Notifications 'notifications.title': 'Notifications', 'notifications.empty': 'No notifications', 'notifications.mark_all_read': 'Mark all as read', 'notifications.upcoming_assessments': 'Upcoming Assessments', 'notifications.missing_observations': 'Missing Observations', 'notifications.assessment_deadline': 'Assessment in {days} days', 'notifications.no_progress_for': 'No progress for {days} days for {student}', 'notifications.record_now': 'Record now', 'notifications.to_assessment': 'To assessment', 'notifications.to_report': 'To report', 'notifications.in_days': 'in {days} days', 'notifications.days_ago': '{days} days ago', // Onboarding 'onboarding.welcome_title': 'Welcome to CompetenceTrack!', 'onboarding.welcome_desc': 'Your free competency & grading platform for schools. Let\'s take a quick tour.', 'onboarding.dashboard_title': 'Dashboard', 'onboarding.dashboard_desc': 'Here you see an overview of all classes, students and current activities. Use quick actions for common tasks.', 'onboarding.progress_title': 'Learning Progress', 'onboarding.progress_desc': 'Record observations and progress for individual students. Select a class and subject to log entries.', 'onboarding.flower_title': 'Competence Flower', 'onboarding.flower_desc': 'Visualize competency development as a radar chart. Compare students and track trends over time.', 'onboarding.reports_title': 'Reports', 'onboarding.reports_desc': 'Create report cards and development reports. Export as PDF or print directly.', 'onboarding.done_title': 'Done!', 'onboarding.done_desc': 'You\'re ready to use CompetenceTrack. For questions, click the help icon in the header.', 'onboarding.skip': 'Skip', 'onboarding.next': 'Next', 'onboarding.back': 'Back', 'onboarding.start': 'Get started', 'onboarding.step': 'Step {current} of {total}', 'onboarding.classes_title': 'Classes & Students', 'onboarding.classes_desc': 'Manage your classes and students. Create new classes, add students, and assign competency grids.', 'onboarding.assessments_title': 'Assessments', 'onboarding.assessments_desc': 'Create and manage assessments. Grade students and track their progress over time.', 'onboarding.grading_title': 'Grading', 'onboarding.grading_desc': 'Configure grading schemes and calculate grades based on competency levels and assessments.', 'onboarding.notebooks_title': 'Digital Notebooks', 'onboarding.notebooks_desc': 'Create digital notebooks for your subjects. Saves paper and protects the environment — each notebook saves ~50 pages.', 'onboarding.drawing_title': 'Drawing', 'onboarding.drawing_desc': 'Use the digital drawing canvas for sketches and illustrations. Stylus-optimized with pressure sensitivity.', 'onboarding.calendar_title': 'Calendar & Attendance', 'onboarding.calendar_desc': 'Manage your schedule and student attendance. Keep track of absences and upcoming events.', 'onboarding.parents_title': 'Parent Communication', 'onboarding.parents_desc': 'Communicate with parents about learning progress. Send reports and maintain an ongoing dialogue.', 'onboarding.environmental_title': 'Environmental Protection', 'onboarding.environmental_desc': 'CompetenceTrack saves paper: Each digital entry replaces ~50 pages of paper. Thank you for contributing to environmental protection!', // Batch deletion (progress entries) 'progress.batch_select': 'Select', 'progress.batch_select_all': 'Select all', 'progress.batch_deselect_all': 'Deselect all', 'progress.batch_selected': '{count} entries selected', 'progress.batch_delete': 'Delete selected', 'progress.batch_cancel': 'Cancel', 'progress.batch_delete_confirm': 'Really delete {count} entries?', 'progress.batch_mode': 'Selection mode', // Drag-and-drop (classes) 'classes.seating_order': 'Seating Order', 'classes.reorder_mode': 'Reorder', 'classes.position': 'Position', 'classes.drag_hint': 'Drag to reorder', // Color palette (flower) 'flower.color_scheme': 'Color Scheme', 'flower.color_emerald': 'Emerald', 'flower.color_sapphire': 'Sapphire', 'flower.color_amethyst': 'Amethyst', 'flower.color_amber': 'Amber', 'flower.color_ruby': 'Ruby', 'flower.color_turquoise': 'Turquoise', 'flower.color_custom': 'Custom', // ─── Demo accounts ────────────────────────────────────────────────── 'auth.demo_section_title': 'Demo Access', 'auth.demo_section_subtitle': 'Quick try with different roles', 'auth.demo_admin': 'Demo Admin', 'auth.demo_teacher': 'Demo Teacher', 'auth.demo_student': 'Demo Student', 'auth.demo_parent': 'Demo Parent', 'auth.demo_logging_in': 'Logging in as demo...', 'settings.demo_accounts': 'Demo Accounts', 'settings.demo_accounts_desc': 'Manage demo accounts', 'settings.demo_enable': 'Enable', 'settings.demo_disable': 'Disable', 'settings.demo_disable_all': 'Disable all demo accounts', 'settings.demo_delete_all': 'Delete all demo accounts', 'settings.demo_toggle_hint': 'Disabled demo accounts cannot log in', 'settings.demo_delete_confirm': 'Really delete all demo accounts?', 'settings.demo_no_accounts': 'No demo accounts found', 'badge.demo': 'Demo', 'settings.demo_active': 'Active', 'settings.demo_inactive': 'Inactive', 'settings.demo_delete_one_confirm': 'Really delete this demo account?', 'settings.demo_disabled': 'Demo accounts disabled', 'settings.demo_enabled': 'Demo accounts enabled', 'settings.demo_deleted': 'Demo accounts deleted', 'settings.demo_account_deleted': 'Demo account deleted', 'settings.demo_account_toggled': 'Demo account status changed', // Keyboard shortcuts 'shortcuts.title': 'Keyboard Shortcuts', 'shortcuts.description': 'Available keyboard shortcuts', 'shortcuts.navigation': 'Navigation', 'shortcuts.actions': 'Actions', 'shortcuts.switch_view': 'Switch view', 'shortcuts.quick_search': 'Quick search', 'shortcuts.new_entry': 'Create new entry', 'shortcuts.show_shortcuts': 'Show shortcuts', 'shortcuts.close_dialog': 'Close dialog', 'shortcuts.command_palette': 'Command Palette', 'shortcuts.recent_actions': 'Recent Actions', 'shortcuts.views': 'Views', 'shortcuts.quick_actions': 'Quick Actions', 'shortcuts.new_notebook': 'New Notebook', 'shortcuts.drawing': 'Drawing', 'shortcuts.new_page': 'New Page', 'shortcuts.export_pdf': 'Export PDF', 'shortcuts.archive_toggle': 'Toggle Archive', 'shortcuts.close_notebook': 'Close Notebook', 'shortcuts.notebooks_drawing': 'Notebooks & Drawing', // Drawing 'drawing.title': 'Drawings', 'drawing.subtitle': 'Draw digitally instead of wasting paper', 'drawing.new': 'New Drawing', 'drawing.gallery': 'Gallery', 'drawing.edit': 'Edit', 'drawing.delete': 'Delete', 'drawing.delete_confirm': 'Really delete this drawing?', 'drawing.delete_desc': 'This action cannot be undone.', 'drawing.save': 'Save', 'drawing.save_success': 'Drawing saved', 'drawing.export_png': 'Export as PNG', 'drawing.auto_save': 'Auto-saved', 'drawing.no_drawings': 'No drawings yet', 'drawing.no_drawings_desc': 'Create your first digital drawing.', 'drawing.title_label': 'Title', 'drawing.description_label': 'Description', 'drawing.subject_label': 'Subject', 'drawing.class_label': 'Class', 'drawing.public': 'Share publicly', 'drawing.public_desc': 'Share with class', 'drawing.private': 'Private', 'drawing.canvas': 'Canvas', 'drawing.exit': 'Exit drawing', 'drawing.clear': 'Clear', 'drawing.clear_confirm': 'Really clear the canvas?', 'drawing.undo': 'Undo', 'drawing.redo': 'Redo', 'drawing.tool_pencil': 'Pencil', 'drawing.tool_pen': 'Pen', 'drawing.tool_line': 'Line', 'drawing.tool_rectangle': 'Rectangle', 'drawing.tool_circle': 'Circle', 'drawing.tool_eraser': 'Eraser', 'drawing.color': 'Color', 'drawing.stroke_width': 'Stroke Width', 'drawing.background': 'Background', 'drawing.bg_blank': 'Blank', 'drawing.bg_lined': 'Lined', 'drawing.bg_grid': 'Grid', 'drawing.bg_dotted': 'Dotted', 'drawing.guide_mode': 'Guide Mode', 'drawing.guide_shapes': 'Shape Templates', 'drawing.guide_off': 'Off', 'drawing.guide_basic': 'Basic Shapes', 'drawing.guide_circles': 'Circles', 'drawing.guide_perspective': 'Perspective', 'drawing.pressure': 'Pressure Sensitivity', 'drawing.loading': 'Loading...', 'drawing.saving': 'Saving...', 'drawing.filter_subject': 'Filter by subject', 'drawing.all_subjects': 'All subjects', 'drawing.created_at': 'Created', 'drawing.updated_at': 'Updated', 'drawing.untitled': 'Untitled Drawing', 'drawing.eco_message': 'Draw digitally instead of wasting paper', 'drawing.eco_tip': 'Every digital drawing saves paper and protects the environment', // ─── Digital Notebooks ────────────────────────────────────────────── 'nav.notebooks': 'Notebooks', 'notebooks.title': 'Digital Notebooks', 'notebooks.subtitle': 'Save paper, protect the environment — digital notebooks instead of paper', 'notebooks.create': 'Create New Notebook', 'notebooks.create_title': 'Create New Digital Notebook', 'notebooks.create_desc': 'Create a digital notebook and save paper.', 'notebooks.edit_title': 'Edit Notebook', 'notebooks.library': 'Notebook Library', 'notebooks.archived': 'Archived Notebooks', 'notebooks.show_archived': 'Show Archived', 'notebooks.hide_archived': 'Hide Archived', 'notebooks.archive': 'Archive', 'notebooks.unarchive': 'Restore', 'notebooks.delete': 'Delete', 'notebooks.delete_confirm': 'Really delete this notebook? All pages will be lost.', 'notebooks.no_notebooks': 'No notebooks yet', 'notebooks.no_notebooks_desc': 'Create your first digital notebook.', 'notebooks.no_notebooks_create': 'Create First Notebook', 'notebooks.no_archived': 'No archived notebooks', 'notebooks.field_title': 'Title', 'notebooks.field_title_placeholder': 'Enter notebook title', 'notebooks.field_description': 'Description', 'notebooks.field_description_placeholder': 'Optional notebook description', 'notebooks.field_type': 'Notebook Type', 'notebooks.field_subject': 'Subject', 'notebooks.field_class': 'Class', 'notebooks.field_color': 'Color', 'notebooks.field_icon': 'Icon', 'notebooks.field_public': 'Share with class', 'notebooks.field_public_hint': 'Others can view this notebook', 'notebooks.type_lined': 'Lined', 'notebooks.type_grid': 'Grid/Checkered', 'notebooks.type_blank': 'Blank', 'notebooks.type_dotted': 'Dotted', 'notebooks.type_music': 'Music', 'notebooks.type_calligraphy': 'Calligraphy', 'notebooks.type_lined_desc': 'Lined notebook for text', 'notebooks.type_grid_desc': 'Checkered notebook for math', 'notebooks.type_blank_desc': 'Blank notebook for free design', 'notebooks.type_dotted_desc': 'Dotted notebook for notes', 'notebooks.type_music_desc': 'Music notebook with staff lines', 'notebooks.type_calligraphy_desc': 'Calligraphy notebook for writing practice', 'notebooks.no_subject': 'No Subject', 'notebooks.no_class': 'No Class', 'notebooks.all_subjects': 'All Subjects', 'notebooks.page_count': '{count} pages', 'notebooks.page': 'Page', 'notebooks.pages': 'Pages', 'notebooks.new_page': 'New Page', 'notebooks.add_page': 'Add Page', 'notebooks.delete_page': 'Delete Page', 'notebooks.delete_page_confirm': 'Really delete this page?', 'notebooks.page_title': 'Page Title', 'notebooks.page_title_placeholder': 'Enter page name', 'notebooks.page_content': 'Page Content', 'notebooks.bookmark': 'Bookmark', 'notebooks.bookmark_add': 'Add Bookmark', 'notebooks.bookmark_remove': 'Remove Bookmark', 'notebooks.drawing_mode': 'Drawing Mode', 'notebooks.drawing_mode_toggle': 'Draw', 'notebooks.drawing_mode_exit': 'Back to Text', 'notebooks.drawing_placeholder': 'Drawing area — will be integrated in a separate component', 'notebooks.back_to_library': 'Back to Library', 'notebooks.open_notebook': 'Open Notebook', 'notebooks.created': 'Notebook created', 'notebooks.updated': 'Notebook updated', 'notebooks.archived_toast': 'Notebook archived', 'notebooks.unarchived_toast': 'Notebook restored', 'notebooks.deleted_toast': 'Notebook deleted', 'notebooks.page_saved': 'Page saved', 'notebooks.page_added': 'Page added', 'notebooks.page_deleted': 'Page deleted', 'notebooks.error_load': 'Error loading notebooks', 'notebooks.error_save': 'Error saving', 'notebooks.error_create': 'Error creating notebook', 'notebooks.loading': 'Loading notebooks…', 'notebooks.public': 'Shared', 'notebooks.private': 'Private', 'notebooks.filter_all': 'All', 'notebooks.filter_subject': 'Filter by subject', 'notebooks.eco_message': 'Save paper, protect the environment', 'notebooks.eco_tip': '1 notebook = ~50 pages of paper saved', 'notebooks.eco_total': '{count} digital notebooks = ~{pages} pages of paper saved', 'notebooks.search_placeholder': 'Search notebooks…', 'notebooks.detail_title': 'Notebook Details', 'notebooks.page_nav': 'Page Navigation', 'notebooks.content_area': 'Content Area', 'notebooks.save_page': 'Save Page', 'notebooks.color_emerald': 'Emerald', 'notebooks.color_blue': 'Blue', 'notebooks.color_red': 'Red', 'notebooks.color_yellow': 'Yellow', 'notebooks.color_purple': 'Purple', 'notebooks.color_orange': 'Orange', 'notebooks.color_teal': 'Teal', 'notebooks.color_pink': 'Pink', 'notebooks.title_required': 'Please enter a title', 'notebooks.total_notebooks': 'Total Notebooks', 'notebooks.total_pages': 'Total Pages', 'notebooks.paper_saved': 'Paper Saved', 'notebooks.pages_unit': 'Pages', // Notebook toolbar 'notebooks.toolbar_bold': 'Bold', 'notebooks.toolbar_italic': 'Italic', 'notebooks.toolbar_underline': 'Underline', 'notebooks.toolbar_heading1': 'Heading 1', 'notebooks.toolbar_heading2': 'Heading 2', 'notebooks.toolbar_heading3': 'Heading 3', 'notebooks.toolbar_bullet_list': 'Bullet List', 'notebooks.toolbar_numbered_list': 'Numbered List', 'notebooks.toolbar_align_left': 'Align Left', 'notebooks.toolbar_align_center': 'Align Center', 'notebooks.toolbar_align_right': 'Align Right', 'notebooks.auto_saving': 'Auto-saving...', 'notebooks.auto_saved': 'Auto-saved', 'notebooks.page_thumbnail': 'Page Thumbnail', // Drawing integration 'notebooks.drawing_saved': 'Drawing saved', 'notebooks.drawing_page_label': 'This page contains a drawing', 'notebooks.edit_drawing': 'Edit drawing', 'notebooks.switch_to_text': 'Switch to text page', 'notebooks.drawing_section_label': 'Drawing section', 'notebooks.open_drawing': 'Open drawing', 'notebooks.switch_to_mixed': 'Text + Drawing', // PDF Export 'notebooks.export_pdf': 'Export PDF', 'notebooks.export_error': 'Export error. Please allow popups.', 'notebooks.export_drawing_note': 'This page contains a drawing (not included in PDF)', 'notebooks.export_empty_page': 'Empty page', 'notebooks.export_eco_message': 'This notebook was created digitally — paper saved!', // Student notebook access 'notebooks.shared_with_me': 'Shared with me', 'notebooks.my_notebooks': 'My Notebooks', 'notebooks.shared_notebook': 'Shared Notebook', // Sharing & Collaboration 'notebooks.share': 'Share', 'notebooks.duplicate': 'Duplicate', 'notebooks.shared': 'Shared', 'notebooks.copy_suffix': ' (Copy)', 'notebooks.templates': 'Templates', 'notebooks.template_desc': 'Pre-built notebooks for common subjects', 'notebooks.tab_shared': 'Shared', 'notebooks.tab_templates': 'Templates', 'notebooks.share_confirm': 'Share this notebook with the class?', 'notebooks.share_confirm_desc': 'If you share this notebook, all students in the class can view it (read-only).', 'notebooks.unshare_confirm': 'Unshare this notebook?', 'notebooks.unshare_confirm_desc': 'If you unshare this notebook, students in the class will no longer be able to view it.', 'notebooks.duplicated': 'Notebook duplicated', 'notebooks.duplicate_error': 'Error duplicating notebook', 'notebooks.shared_notebooks': 'Shared Notebooks', 'notebooks.shared_empty': 'No shared notebooks available', 'notebooks.shared_empty_desc': 'Notebooks shared by other teachers will appear here.', 'notebooks.read_only': 'Read-only', 'notebooks.create_from_template': 'Create from template', 'notebooks.template_math': 'Mathematics', 'notebooks.template_german': 'German', 'notebooks.template_english': 'English', 'notebooks.template_art': 'Art', 'notebooks.template_music': 'Music', 'notebooks.template_science': 'Science', 'notebooks.template_math_desc': 'Grid notebook with math sections', 'notebooks.template_german_desc': 'Lined notebook with writing sections', 'notebooks.template_english_desc': 'Lined notebook with vocabulary sections', 'notebooks.template_art_desc': 'Blank notebook for drawing', 'notebooks.template_music_desc': 'Music notebook for composition', 'notebooks.template_science_desc': 'Grid notebook for experiments', 'notebooks.tab_all': 'My Notebooks', 'notebooks.owner': 'By', }; const translations: Record = { de, en }; let currentLocale: string = 'de'; export function setLocale(locale: string): void { currentLocale = locale; } export function getLocale(): string { return currentLocale; } export function t(key: string, params?: Record): string { const dict = translations[currentLocale] ?? translations['de']; let text = dict[key] ?? key; if (params) { for (const [k, v] of Object.entries(params)) { text = text.replace(new RegExp(`\\{${k}\\}`, 'g'), String(v)); } } return text; } export function tDe(key: string, params?: Record): string { const dict = translations['de']; let text = dict[key] ?? key; if (params) { for (const [k, v] of Object.entries(params)) { text = text.replace(new RegExp(`\\{${k}\\}`, 'g'), String(v)); } } return text; }