Round 12: WebSocket Collaboration, Curriculum Mapping, Attendance Analytics, Data Backup, Mobile Optimization, Performance
This commit is contained in:
1 parent
21310d3f62
commit
ba55bd13e4
24 files changed
+6067
-947
No files matched your search
+334
@@ -2160,6 +2160,173 @@ const de: TranslationDict = {
|
||||
'settings.default_password': 'Standardpasswort',
|
||||
'settings.generate_email': 'E-Mail automatisch generieren',
|
||||
'settings.link_student': 'Mit Schüler verknüpfen',
|
||||
|
||||
// ─── Collaboration & Real-Time ──────────────────────────────────────
|
||||
'collab.online_users': '{count} online',
|
||||
'collab.editing_by': '{name} bearbeitet...',
|
||||
'collab.activity_title': 'Aktivität',
|
||||
'collab.no_activity': 'Keine Aktivität',
|
||||
'collab.started_editing': 'bearbeitet',
|
||||
'collab.realtime_connected': 'Echtzeit verbunden',
|
||||
'collab.realtime_disconnected': 'Echtzeit getrennt',
|
||||
'collab.conflict_resolved': 'Konflikt gelöst (letzter Speichervorgang gewinnt)',
|
||||
'collab.cursors_visible': 'Cursors anderer Nutzer sichtbar',
|
||||
'collab.user_joined': '{name} ist beigetreten',
|
||||
'collab.user_left': '{name} hat verlassen',
|
||||
|
||||
// ─── Notification Sound ────────────────────────────────────────────
|
||||
'settings.notification_sound': 'Benachrichtigungston',
|
||||
'settings.notification_sound_desc': 'Ton bei neuen Benachrichtigungen abspielen',
|
||||
'settings.notification_sound_enabled': 'Ton aktiviert',
|
||||
'settings.notification_sound_disabled': 'Ton deaktiviert',
|
||||
|
||||
// ── Rubric Enhancement ──
|
||||
'rubrics.templates': 'Vorlagen',
|
||||
'rubrics.templates_title': 'Bewertungsraster-Vorlagen',
|
||||
'rubrics.templates_desc': 'Wählen Sie eine Vorlage als Ausgangspunkt für Ihr Bewertungsraster',
|
||||
'rubrics.use_template': 'Vorlage verwenden',
|
||||
'rubrics.template_math': 'Mathematik — Klassenarbeit',
|
||||
'rubrics.template_german': 'Deutsch — Aufsichtsarbeit',
|
||||
'rubrics.template_english': 'Englisch — Writing Task',
|
||||
'rubrics.template_project': 'Allgemein — Projektarbeit',
|
||||
'rubrics.template_oral': 'Allgemein — Mündliche Präsentation',
|
||||
'rubrics.no_template': 'Ohne Vorlage starten',
|
||||
'rubrics.grade': 'Bewerten',
|
||||
'rubrics.grade_title': 'Rubrik-basierte Bewertung',
|
||||
'rubrics.select_level': 'Niveau auswählen',
|
||||
'rubrics.auto_grade': 'Automatische Notenberechnung',
|
||||
'rubrics.final_score': 'Endpunktzahl',
|
||||
'rubrics.grade_result': 'Note',
|
||||
'rubrics.percentage': 'Prozent',
|
||||
'rubrics.criterion_breakdown': 'Kriterien-Aufschlüsselung',
|
||||
'rubrics.earned_points': 'Erreichte Punkte',
|
||||
'rubrics.analytics': 'Analyse',
|
||||
'rubrics.analytics_title': 'Rubrik-Analyse',
|
||||
'rubrics.class_performance': 'Klassenleistung nach Kriterium',
|
||||
'rubrics.grade_distribution': 'Notenverteilung',
|
||||
'rubrics.average_score': 'Durchschnitt',
|
||||
'rubrics.highest_score': 'Höchste Punktzahl',
|
||||
'rubrics.lowest_score': 'Niedrigste Punktzahl',
|
||||
'rubrics.export_pdf': 'Als PDF exportieren',
|
||||
'rubrics.export_print': 'Drucken',
|
||||
'rubrics.score_sheet': 'Bewertungsbogen',
|
||||
'rubrics.select_student': 'Schüler auswählen',
|
||||
'rubrics.select_rubric': 'Bewertungsraster auswählen',
|
||||
|
||||
// ── Curriculum Standards ──
|
||||
'curriculum.title': 'Lehrplan-Mapping',
|
||||
'curriculum.subtitle': 'Verknüpfen Sie Kompetenzen mit Lehrplanstandards',
|
||||
'curriculum.standards': 'Lehrplanstandards',
|
||||
'curriculum.create_standard': 'Standard erstellen',
|
||||
'curriculum.edit_standard': 'Standard bearbeiten',
|
||||
'curriculum.code': 'Code',
|
||||
'curriculum.standard_title': 'Titel',
|
||||
'curriculum.description': 'Beschreibung',
|
||||
'curriculum.grade_level': 'Klassenstufe',
|
||||
'curriculum.category': 'Kategorie',
|
||||
'curriculum.source': 'Quelle',
|
||||
'curriculum.subject': 'Fach',
|
||||
'curriculum.coverage': 'Abdeckung',
|
||||
'curriculum.coverage_visualization': 'Abdeckungsübersicht',
|
||||
'curriculum.gap_analysis': 'Lückenanalyse',
|
||||
'curriculum.gap_title': 'Standards ohne Kompetenzverknüpfung',
|
||||
'curriculum.no_gaps': 'Alle Standards sind mit Kompetenzen verknüpft',
|
||||
'curriculum.progress_tracking': 'Fortschrittsverfolgung',
|
||||
'curriculum.heatmap': 'Abdeckungs-Heatmap',
|
||||
'curriculum.link_competency': 'Kompetenz verknüpfen',
|
||||
'curriculum.unlink_competency': 'Verknüpfung aufheben',
|
||||
'curriculum.coverage_level': 'Abdeckungsgrad',
|
||||
'curriculum.coverage_full': 'Vollständig',
|
||||
'curriculum.coverage_partial': 'Teilweise',
|
||||
'curriculum.coverage_related': 'Verwandt',
|
||||
'curriculum.notes': 'Notizen',
|
||||
'curriculum.linked_competencies': 'Verknüpfte Kompetenzen',
|
||||
'curriculum.no_links': 'Keine Kompetenzen verknüpft',
|
||||
'curriculum.standards_count': 'Standards',
|
||||
'curriculum.linked_count': 'Verknüpft',
|
||||
'curriculum.unlinked_count': 'Nicht verknüpft',
|
||||
'curriculum.coverage_percent': 'Abdeckung %',
|
||||
'curriculum.search_standards': 'Standards durchsuchen...',
|
||||
'curriculum.all_subjects': 'Alle Fächer',
|
||||
'curriculum.all_grades': 'Alle Klassenstufen',
|
||||
'curriculum.all_sources': 'Alle Quellen',
|
||||
'curriculum.delete_standard': 'Standard löschen',
|
||||
'curriculum.delete_standard_desc': 'Möchten Sie diesen Standard wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
|
||||
'curriculum.empty_title': 'Keine Standards vorhanden',
|
||||
'curriculum.empty_desc': 'Erstellen Sie Ihren ersten Lehrplanstandard, um Kompetenzen zuzuordnen.',
|
||||
'curriculum.select_competency': 'Kompetenz auswählen',
|
||||
'curriculum.search_competency': 'Kompetenz suchen...',
|
||||
'curriculum.mastery_progress': 'Beherrschungsfortschritt',
|
||||
'curriculum.students_mastered': 'Schüler beherrschen diesen Standard',
|
||||
|
||||
// ── Attendance Analytics ──
|
||||
'attendance.analytics': 'Analyse',
|
||||
'attendance.analytics_title': 'Anwesenheits-Analyse',
|
||||
'attendance.trends': 'Trends',
|
||||
'attendance.weekly_trend': 'Wöchentlicher Trend',
|
||||
'attendance.attendance_rate_over_time': 'Anwesenheitsrate im Zeitverlauf',
|
||||
'attendance.absence_rate_over_time': 'Abwesenheitsrate im Zeitverlauf',
|
||||
'attendance.day_of_week': 'Wochentagsanalyse',
|
||||
'attendance.absences_by_day': 'Abwesenheiten nach Wochentag',
|
||||
'attendance.chronic_absence': 'Chronische Abwesenheit',
|
||||
'attendance.chronic_absence_desc': 'Schüler mit 10% oder höherer Abwesenheitsrate',
|
||||
'attendance.risk_indicators': 'Risiko-Indikatoren',
|
||||
'attendance.risk_low': 'Geringes Risiko',
|
||||
'attendance.risk_medium': 'Mittleres Risiko',
|
||||
'attendance.risk_high': 'Hohes Risiko',
|
||||
'attendance.risk_critical': 'Kritisches Risiko',
|
||||
'attendance.class_comparison': 'Klassenvergleich',
|
||||
'attendance.attendance_by_class': 'Anwesenheit nach Klasse',
|
||||
'attendance.status_distribution': 'Statusverteilung',
|
||||
'attendance.export_csv': 'Als CSV exportieren',
|
||||
'attendance.week': 'Woche',
|
||||
'attendance.rate_percent': 'Rate %',
|
||||
'attendance.absent_count_long': 'Abwesenheiten',
|
||||
'attendance.total_sessions': 'Gesamtsitzungen',
|
||||
'attendance.total_records': 'Gesamteinträge',
|
||||
'attendance.no_analytics_data': 'Keine Analysedaten verfügbar',
|
||||
'attendance.no_analytics_desc': 'Erstellen Sie Anwesenheitssitzungen, um Analysen zu sehen.',
|
||||
|
||||
// ── Backup (Task 10) ──
|
||||
'backup.title': 'Datensicherung',
|
||||
'backup.create': 'Sicherung erstellen',
|
||||
'backup.restore': 'Sicherung wiederherstellen',
|
||||
'backup.delete': 'Sicherung löschen',
|
||||
'backup.auto': 'Automatische Sicherung',
|
||||
'backup.daily': 'Täglich',
|
||||
'backup.weekly': 'Wöchentlich',
|
||||
'backup.last': 'Letzte Sicherung',
|
||||
'backup.size': 'Größe',
|
||||
'backup.status': 'Status',
|
||||
'backup.completed': 'Abgeschlossen',
|
||||
'backup.failed': 'Fehlgeschlagen',
|
||||
'backup.pending': 'Ausstehend',
|
||||
'backup.no_backups': 'Keine Sicherungen vorhanden',
|
||||
'backup.no_backups_desc': 'Erstellen Sie Ihre erste Datensicherung.',
|
||||
'backup.create_confirm': 'Sicherung erstellen?',
|
||||
'backup.create_confirm_desc': 'Es wird eine vollständige Sicherung aller Daten erstellt.',
|
||||
'backup.restore_confirm': 'Sicherung wiederherstellen?',
|
||||
'backup.restore_confirm_desc': 'Die aktuellen Daten werden durch die Sicherung ersetzt. Diese Aktion kann nicht rückgängig gemacht werden.',
|
||||
'backup.delete_confirm': 'Sicherung löschen?',
|
||||
'backup.delete_confirm_desc': 'Diese Sicherung wird unwiderruflich gelöscht.',
|
||||
'backup.creating': 'Sicherung wird erstellt...',
|
||||
'backup.restoring': 'Sicherung wird wiederhergestellt...',
|
||||
'backup.type': 'Typ',
|
||||
'backup.type_full': 'Vollständig',
|
||||
'backup.type_incremental': 'Inkrementell',
|
||||
'backup.notes': 'Notizen',
|
||||
'backup.download': 'Sicherung herunterladen',
|
||||
'backup.created_success': 'Sicherung erfolgreich erstellt',
|
||||
'backup.restored_success': 'Sicherung erfolgreich wiederhergestellt',
|
||||
'backup.deleted_success': 'Sicherung gelöscht',
|
||||
'backup.error_create': 'Fehler beim Erstellen der Sicherung',
|
||||
'backup.error_restore': 'Fehler beim Wiederherstellen der Sicherung',
|
||||
'backup.error_delete': 'Fehler beim Löschen der Sicherung',
|
||||
|
||||
// ── Performance (Task 10) ──
|
||||
'performance.title': 'Leistung',
|
||||
'performance.fps': 'Bilder pro Sekunde',
|
||||
'mobile.optimized': 'Für mobile Geräte optimiert',
|
||||
};
|
||||
|
||||
const en: TranslationDict = {
|
||||
@@ -4319,6 +4486,173 @@ const en: TranslationDict = {
|
||||
'settings.default_password': 'Default Password',
|
||||
'settings.generate_email': 'Auto-generate Email',
|
||||
'settings.link_student': 'Link to Student',
|
||||
|
||||
// ─── Collaboration & Real-Time ──────────────────────────────────────
|
||||
'collab.online_users': '{count} online',
|
||||
'collab.editing_by': '{name} is editing...',
|
||||
'collab.activity_title': 'Activity',
|
||||
'collab.no_activity': 'No activity',
|
||||
'collab.started_editing': 'started editing',
|
||||
'collab.realtime_connected': 'Real-time connected',
|
||||
'collab.realtime_disconnected': 'Real-time disconnected',
|
||||
'collab.conflict_resolved': 'Conflict resolved (last write wins)',
|
||||
'collab.cursors_visible': 'Other users\' cursors visible',
|
||||
'collab.user_joined': '{name} joined',
|
||||
'collab.user_left': '{name} left',
|
||||
|
||||
// ─── Notification Sound ────────────────────────────────────────────
|
||||
'settings.notification_sound': 'Notification Sound',
|
||||
'settings.notification_sound_desc': 'Play sound for new notifications',
|
||||
'settings.notification_sound_enabled': 'Sound enabled',
|
||||
'settings.notification_sound_disabled': 'Sound disabled',
|
||||
|
||||
// ── Rubric Enhancement ──
|
||||
'rubrics.templates': 'Templates',
|
||||
'rubrics.templates_title': 'Rubric Templates',
|
||||
'rubrics.templates_desc': 'Choose a template as a starting point for your rubric',
|
||||
'rubrics.use_template': 'Use Template',
|
||||
'rubrics.template_math': 'Math — Assessment',
|
||||
'rubrics.template_german': 'German — Essay',
|
||||
'rubrics.template_english': 'English — Writing Task',
|
||||
'rubrics.template_project': 'General — Project Work',
|
||||
'rubrics.template_oral': 'General — Oral Presentation',
|
||||
'rubrics.no_template': 'Start from scratch',
|
||||
'rubrics.grade': 'Grade',
|
||||
'rubrics.grade_title': 'Rubric-Based Grading',
|
||||
'rubrics.select_level': 'Select level',
|
||||
'rubrics.auto_grade': 'Auto-Grade Calculation',
|
||||
'rubrics.final_score': 'Final Score',
|
||||
'rubrics.grade_result': 'Grade',
|
||||
'rubrics.percentage': 'Percentage',
|
||||
'rubrics.criterion_breakdown': 'Criterion Breakdown',
|
||||
'rubrics.earned_points': 'Earned Points',
|
||||
'rubrics.analytics': 'Analytics',
|
||||
'rubrics.analytics_title': 'Rubric Analytics',
|
||||
'rubrics.class_performance': 'Class Performance by Criterion',
|
||||
'rubrics.grade_distribution': 'Grade Distribution',
|
||||
'rubrics.average_score': 'Average',
|
||||
'rubrics.highest_score': 'Highest Score',
|
||||
'rubrics.lowest_score': 'Lowest Score',
|
||||
'rubrics.export_pdf': 'Export as PDF',
|
||||
'rubrics.export_print': 'Print',
|
||||
'rubrics.score_sheet': 'Score Sheet',
|
||||
'rubrics.select_student': 'Select Student',
|
||||
'rubrics.select_rubric': 'Select Rubric',
|
||||
|
||||
// ── Curriculum Standards ──
|
||||
'curriculum.title': 'Curriculum Mapping',
|
||||
'curriculum.subtitle': 'Link competencies to curriculum standards',
|
||||
'curriculum.standards': 'Curriculum Standards',
|
||||
'curriculum.create_standard': 'Create Standard',
|
||||
'curriculum.edit_standard': 'Edit Standard',
|
||||
'curriculum.code': 'Code',
|
||||
'curriculum.standard_title': 'Title',
|
||||
'curriculum.description': 'Description',
|
||||
'curriculum.grade_level': 'Grade Level',
|
||||
'curriculum.category': 'Category',
|
||||
'curriculum.source': 'Source',
|
||||
'curriculum.subject': 'Subject',
|
||||
'curriculum.coverage': 'Coverage',
|
||||
'curriculum.coverage_visualization': 'Coverage Visualization',
|
||||
'curriculum.gap_analysis': 'Gap Analysis',
|
||||
'curriculum.gap_title': 'Standards without Competency Links',
|
||||
'curriculum.no_gaps': 'All standards are linked to competencies',
|
||||
'curriculum.progress_tracking': 'Progress Tracking',
|
||||
'curriculum.heatmap': 'Coverage Heatmap',
|
||||
'curriculum.link_competency': 'Link Competency',
|
||||
'curriculum.unlink_competency': 'Unlink Competency',
|
||||
'curriculum.coverage_level': 'Coverage Level',
|
||||
'curriculum.coverage_full': 'Full',
|
||||
'curriculum.coverage_partial': 'Partial',
|
||||
'curriculum.coverage_related': 'Related',
|
||||
'curriculum.notes': 'Notes',
|
||||
'curriculum.linked_competencies': 'Linked Competencies',
|
||||
'curriculum.no_links': 'No competencies linked',
|
||||
'curriculum.standards_count': 'Standards',
|
||||
'curriculum.linked_count': 'Linked',
|
||||
'curriculum.unlinked_count': 'Unlinked',
|
||||
'curriculum.coverage_percent': 'Coverage %',
|
||||
'curriculum.search_standards': 'Search standards...',
|
||||
'curriculum.all_subjects': 'All Subjects',
|
||||
'curriculum.all_grades': 'All Grade Levels',
|
||||
'curriculum.all_sources': 'All Sources',
|
||||
'curriculum.delete_standard': 'Delete Standard',
|
||||
'curriculum.delete_standard_desc': 'Are you sure you want to delete this standard? This action cannot be undone.',
|
||||
'curriculum.empty_title': 'No Standards Yet',
|
||||
'curriculum.empty_desc': 'Create your first curriculum standard to map competencies.',
|
||||
'curriculum.select_competency': 'Select Competency',
|
||||
'curriculum.search_competency': 'Search competency...',
|
||||
'curriculum.mastery_progress': 'Mastery Progress',
|
||||
'curriculum.students_mastered': 'Students have mastered this standard',
|
||||
|
||||
// ── Attendance Analytics ──
|
||||
'attendance.analytics': 'Analytics',
|
||||
'attendance.analytics_title': 'Attendance Analytics',
|
||||
'attendance.trends': 'Trends',
|
||||
'attendance.weekly_trend': 'Weekly Trend',
|
||||
'attendance.attendance_rate_over_time': 'Attendance Rate Over Time',
|
||||
'attendance.absence_rate_over_time': 'Absence Rate Over Time',
|
||||
'attendance.day_of_week': 'Day of Week Analysis',
|
||||
'attendance.absences_by_day': 'Absences by Day of Week',
|
||||
'attendance.chronic_absence': 'Chronic Absence',
|
||||
'attendance.chronic_absence_desc': 'Students with 10% or higher absence rate',
|
||||
'attendance.risk_indicators': 'Risk Indicators',
|
||||
'attendance.risk_low': 'Low Risk',
|
||||
'attendance.risk_medium': 'Medium Risk',
|
||||
'attendance.risk_high': 'High Risk',
|
||||
'attendance.risk_critical': 'Critical Risk',
|
||||
'attendance.class_comparison': 'Class Comparison',
|
||||
'attendance.attendance_by_class': 'Attendance by Class',
|
||||
'attendance.status_distribution': 'Status Distribution',
|
||||
'attendance.export_csv': 'Export as CSV',
|
||||
'attendance.week': 'Week',
|
||||
'attendance.rate_percent': 'Rate %',
|
||||
'attendance.absent_count_long': 'Absences',
|
||||
'attendance.total_sessions': 'Total Sessions',
|
||||
'attendance.total_records': 'Total Records',
|
||||
'attendance.no_analytics_data': 'No Analytics Data Available',
|
||||
'attendance.no_analytics_desc': 'Create attendance sessions to see analytics.',
|
||||
|
||||
// ── Backup (Task 10) ──
|
||||
'backup.title': 'Datensicherung',
|
||||
'backup.create': 'Sicherung erstellen',
|
||||
'backup.restore': 'Sicherung wiederherstellen',
|
||||
'backup.delete': 'Sicherung löschen',
|
||||
'backup.auto': 'Automatische Sicherung',
|
||||
'backup.daily': 'Täglich',
|
||||
'backup.weekly': 'Wöchentlich',
|
||||
'backup.last': 'Letzte Sicherung',
|
||||
'backup.size': 'Größe',
|
||||
'backup.status': 'Status',
|
||||
'backup.completed': 'Abgeschlossen',
|
||||
'backup.failed': 'Fehlgeschlagen',
|
||||
'backup.pending': 'Ausstehend',
|
||||
'backup.no_backups': 'Keine Sicherungen vorhanden',
|
||||
'backup.no_backups_desc': 'Erstellen Sie Ihre erste Datensicherung.',
|
||||
'backup.create_confirm': 'Sicherung erstellen?',
|
||||
'backup.create_confirm_desc': 'Es wird eine vollständige Sicherung aller Daten erstellt.',
|
||||
'backup.restore_confirm': 'Sicherung wiederherstellen?',
|
||||
'backup.restore_confirm_desc': 'Die aktuellen Daten werden durch die Sicherung ersetzt. Diese Aktion kann nicht rückgängig gemacht werden.',
|
||||
'backup.delete_confirm': 'Sicherung löschen?',
|
||||
'backup.delete_confirm_desc': 'Diese Sicherung wird unwiderruflich gelöscht.',
|
||||
'backup.creating': 'Sicherung wird erstellt...',
|
||||
'backup.restoring': 'Sicherung wird wiederhergestellt...',
|
||||
'backup.type': 'Typ',
|
||||
'backup.type_full': 'Vollständig',
|
||||
'backup.type_incremental': 'Inkrementell',
|
||||
'backup.notes': 'Notizen',
|
||||
'backup.download': 'Sicherung herunterladen',
|
||||
'backup.created_success': 'Sicherung erfolgreich erstellt',
|
||||
'backup.restored_success': 'Sicherung erfolgreich wiederhergestellt',
|
||||
'backup.deleted_success': 'Sicherung gelöscht',
|
||||
'backup.error_create': 'Fehler beim Erstellen der Sicherung',
|
||||
'backup.error_restore': 'Fehler beim Wiederherstellen der Sicherung',
|
||||
'backup.error_delete': 'Fehler beim Löschen der Sicherung',
|
||||
|
||||
// ── Performance (Task 10) ──
|
||||
'performance.title': 'Leistung',
|
||||
'performance.fps': 'Bilder pro Sekunde',
|
||||
'mobile.optimized': 'Für mobile Geräte optimiert',
|
||||
};
|
||||
|
||||
const translations: Record<string, TranslationDict> = { de, en };
|
||||
|
||||
Reference in new issue
Block a user