Round 11: DrawingCanvas Integration, Notebook Versioning, Student Auth, Parent Portal, Calendar Recurring, Grade PDF, Data Import/Export
This commit is contained in:
1 parent
b90ad85b91
commit
c3d36aac67
22 files changed
+3984
-314
No files matched your search
+206
@@ -1767,6 +1767,8 @@ const de: TranslationDict = {
|
||||
'drawing.bg_grid': 'Kariert',
|
||||
'drawing.bg_dotted': 'Gepunktet',
|
||||
'drawing.guide_mode': 'Hilfslinien',
|
||||
'drawing.zoom_in': 'Vergrößern',
|
||||
'drawing.zoom_out': 'Verkleinern',
|
||||
'drawing.guide_shapes': 'Formvorlagen',
|
||||
'drawing.guide_off': 'Aus',
|
||||
'drawing.guide_basic': 'Grundformen',
|
||||
@@ -1927,6 +1929,23 @@ const de: TranslationDict = {
|
||||
'notebooks.open_drawing': 'Zeichnung öffnen',
|
||||
'notebooks.switch_to_mixed': 'Text + Zeichnung',
|
||||
|
||||
// Version History
|
||||
'notebooks.version_history': 'Versionsgeschichte',
|
||||
'notebooks.version_history_title': 'Versionsgeschichte',
|
||||
'notebooks.version_number': 'Version',
|
||||
'notebooks.version_current': 'Aktuell',
|
||||
'notebooks.version_preview': 'Vorschau',
|
||||
'notebooks.version_restore': 'Version wiederherstellen',
|
||||
'notebooks.version_restore_confirm': 'Version wiederherstellen?',
|
||||
'notebooks.version_restore_desc': 'Der aktuelle Inhalt wird als neue Version gespeichert, und die ausgewählte Version wird wiederhergestellt.',
|
||||
'notebooks.version_restored': 'Version wiederhergestellt',
|
||||
'notebooks.version_no_history': 'Keine Versionsgeschichte vorhanden',
|
||||
'notebooks.version_edited_by': 'Bearbeitet von',
|
||||
'notebooks.version_auto_save': 'Automatisch gespeichert',
|
||||
'notebooks.version_summary': 'Beschreibung',
|
||||
'notebooks.version_created': 'Erstellt',
|
||||
'notebooks.view_drawing': 'Zeichnung anzeigen',
|
||||
|
||||
// PDF Export
|
||||
'notebooks.export_pdf': 'PDF exportieren',
|
||||
'notebooks.export_error': 'Fehler beim Exportieren. Bitte Popups erlauben.',
|
||||
@@ -2022,6 +2041,7 @@ const de: TranslationDict = {
|
||||
'nav.student_notebooks': 'Meine Hefte',
|
||||
'nav.student_attendance': 'Meine Anwesenheit',
|
||||
'role.student': 'Schueler',
|
||||
'role.parent': 'Elternteil',
|
||||
|
||||
// Calendar (enhanced - Task 4)
|
||||
'calendar.new_event': 'Neues Ereignis',
|
||||
@@ -2043,6 +2063,40 @@ const de: TranslationDict = {
|
||||
'calendar.event_create_error': 'Fehler beim Erstellen des Ereignisses',
|
||||
'calendar.event_update_error': 'Fehler beim Aktualisieren des Ereignisses',
|
||||
'calendar.event_delete_error': 'Fehler beim Löschen des Ereignisses',
|
||||
'calendar.recurring': 'Wiederkehrend',
|
||||
'calendar.repeat_none': 'Nicht wiederkehrend',
|
||||
'calendar.repeat_daily': 'Täglich',
|
||||
'calendar.repeat_weekly': 'Wöchentlich',
|
||||
'calendar.repeat_monthly': 'Monatlich',
|
||||
'calendar.repeat_yearly': 'Jährlich',
|
||||
'calendar.repeat_end': 'Endet',
|
||||
'calendar.repeat_end_never': 'Nie',
|
||||
'calendar.repeat_end_on': 'Am Datum',
|
||||
'calendar.repeat_end_after': 'Nach {count} Wiederholungen',
|
||||
'calendar.repeat_interval': 'Intervall: {interval}',
|
||||
'calendar.repeat_weekdays': 'Wochentage',
|
||||
'calendar.edit_series': 'Serien bearbeiten',
|
||||
'calendar.edit_instance': 'Einzelnes Ereignis bearbeiten',
|
||||
'reports.generate_pdf': 'PDF-Bericht erstellen',
|
||||
'reports.template_short': 'Kurzbericht',
|
||||
'reports.template_full': 'Vollständiger Bericht',
|
||||
'reports.template_custom': 'Individuell',
|
||||
'reports.template': 'Berichtsvorlage',
|
||||
'reports.batch_generate': 'Für gesamte Klasse erstellen',
|
||||
'reports.download_history': 'Download-Historie',
|
||||
'import.title': 'Datenimport',
|
||||
'import.csv_upload': 'CSV-Datei hochladen',
|
||||
'import.format_preview': 'Formatvoransicht',
|
||||
'import.progress': 'Importfortschritt',
|
||||
'import.summary': 'Importübersicht',
|
||||
'import.success': 'Erfolgreich importiert',
|
||||
'import.errors': 'Importfehler',
|
||||
'import.sample_csv': 'Beispiel-CSV herunterladen',
|
||||
'export.students': 'Schüler exportieren',
|
||||
'export.assessments': 'Bewertungen exportieren',
|
||||
'export.grades': 'Noten exportieren',
|
||||
'export.attendance': 'Anwesenheit exportieren',
|
||||
'export.progress': 'Fortschritt exportieren',
|
||||
|
||||
// Dashboard (enhanced - Task 4)
|
||||
'dashboard.new_assessment': 'Neue Bewertung',
|
||||
@@ -2057,6 +2111,55 @@ const de: TranslationDict = {
|
||||
|
||||
// Student (enhanced - Task 4)
|
||||
'student.shared_with_me': 'Mit mir geteilt',
|
||||
|
||||
// Student Login & Parent Portal (Task 6)
|
||||
'auth.student_login': 'Schüler-Login',
|
||||
'auth.parent_login': 'Eltern-Login',
|
||||
'auth.create_student_account': 'Schülerkonto erstellen',
|
||||
'auth.bulk_create': 'Massenimport',
|
||||
'auth.school_id': 'Schul-ID',
|
||||
'auth.forgot_password': 'Passwort vergessen',
|
||||
'auth.student_welcome': 'Willkommen, Schüler',
|
||||
'auth.parent_welcome': 'Willkommen, Eltern',
|
||||
'auth.login_as_student': 'Als Schüler anmelden',
|
||||
'auth.login_as_parent': 'Als Elternteil anmelden',
|
||||
'auth.student_login_desc': 'Mit Schul-ID oder E-Mail anmelden',
|
||||
'auth.parent_login_desc': 'Mit E-Mail und Passwort anmelden',
|
||||
'auth.default_password_set': 'Standardpasswort gesetzt',
|
||||
'auth.bulk_accounts_created': 'Schülerkonten erstellt',
|
||||
'parent.my_children': 'Meine Kinder',
|
||||
'parent.messages': 'Nachrichten',
|
||||
'parent.progress': 'Fortschritt',
|
||||
'parent.attendance': 'Anwesenheit',
|
||||
'parent.relationship': 'Beziehung',
|
||||
'parent.father': 'Vater',
|
||||
'parent.mother': 'Mutter',
|
||||
'parent.guardian': 'Erziehungsberechtigte(r)',
|
||||
'parent.dashboard_title': 'Eltern-Dashboard',
|
||||
'parent.welcome_back': 'Willkommen zurück',
|
||||
'parent.recent_progress': 'Letzter Fortschritt',
|
||||
'parent.upcoming_assessments': 'Anstehende Überprüfungen',
|
||||
'parent.messages_from_teachers': 'Nachrichten von Lehrern',
|
||||
'parent.attendance_summary': 'Anwesenheitsübersicht',
|
||||
'parent.no_children': 'Keine Kinder verknüpft',
|
||||
'parent.no_children_desc': 'Es sind noch keine Schüler mit Ihrem Konto verknüpft.',
|
||||
'parent.link_student': 'Schüler verknüpfen',
|
||||
'parent.add_link': 'Verknüpfung hinzufügen',
|
||||
'parent.remove_link': 'Verknüpfung entfernen',
|
||||
'parent.select_student': 'Schüler auswählen',
|
||||
'parent.select_relationship': 'Beziehung auswählen',
|
||||
'parent.view_progress': 'Fortschritt anzeigen',
|
||||
'parent.view_attendance': 'Anwesenheit anzeigen',
|
||||
'parent.no_messages': 'Keine Nachrichten',
|
||||
'parent.no_assessments': 'Keine anstehenden Überprüfungen',
|
||||
'parent.child_progress_desc': 'Fortschritt der letzten 30 Tage',
|
||||
'settings.create_student_account': 'Schülerkonto erstellen',
|
||||
'settings.bulk_create_students': 'Schülerkonten-Massenimport',
|
||||
'settings.student_account_created': 'Schülerkonto wurde erstellt',
|
||||
'settings.bulk_accounts_created': 'Schülerkonten wurden erstellt',
|
||||
'settings.default_password': 'Standardpasswort',
|
||||
'settings.generate_email': 'E-Mail automatisch generieren',
|
||||
'settings.link_student': 'Mit Schüler verknüpfen',
|
||||
};
|
||||
|
||||
const en: TranslationDict = {
|
||||
@@ -3823,6 +3926,8 @@ const en: TranslationDict = {
|
||||
'drawing.bg_grid': 'Grid',
|
||||
'drawing.bg_dotted': 'Dotted',
|
||||
'drawing.guide_mode': 'Guide Mode',
|
||||
'drawing.zoom_in': 'Zoom In',
|
||||
'drawing.zoom_out': 'Zoom Out',
|
||||
'drawing.guide_shapes': 'Shape Templates',
|
||||
'drawing.guide_off': 'Off',
|
||||
'drawing.guide_basic': 'Basic Shapes',
|
||||
@@ -3983,6 +4088,23 @@ const en: TranslationDict = {
|
||||
'notebooks.open_drawing': 'Open drawing',
|
||||
'notebooks.switch_to_mixed': 'Text + Drawing',
|
||||
|
||||
// Version History
|
||||
'notebooks.version_history': 'Version History',
|
||||
'notebooks.version_history_title': 'Version History',
|
||||
'notebooks.version_number': 'Version',
|
||||
'notebooks.version_current': 'Current',
|
||||
'notebooks.version_preview': 'Preview',
|
||||
'notebooks.version_restore': 'Restore version',
|
||||
'notebooks.version_restore_confirm': 'Restore this version?',
|
||||
'notebooks.version_restore_desc': 'The current content will be saved as a new version, and the selected version will be restored.',
|
||||
'notebooks.version_restored': 'Version restored',
|
||||
'notebooks.version_no_history': 'No version history available',
|
||||
'notebooks.version_edited_by': 'Edited by',
|
||||
'notebooks.version_auto_save': 'Auto-saved',
|
||||
'notebooks.version_summary': 'Summary',
|
||||
'notebooks.version_created': 'Created',
|
||||
'notebooks.view_drawing': 'View drawing',
|
||||
|
||||
// PDF Export
|
||||
'notebooks.export_pdf': 'Export PDF',
|
||||
'notebooks.export_error': 'Export error. Please allow popups.',
|
||||
@@ -4078,6 +4200,7 @@ const en: TranslationDict = {
|
||||
'nav.student_notebooks': 'My Notebooks',
|
||||
'nav.student_attendance': 'My Attendance',
|
||||
'role.student': 'Student',
|
||||
'role.parent': 'Parent',
|
||||
|
||||
// Calendar (enhanced - Task 4)
|
||||
'calendar.new_event': 'New Event',
|
||||
@@ -4099,6 +4222,40 @@ const en: TranslationDict = {
|
||||
'calendar.event_create_error': 'Error creating event',
|
||||
'calendar.event_update_error': 'Error updating event',
|
||||
'calendar.event_delete_error': 'Error deleting event',
|
||||
'calendar.recurring': 'Recurring',
|
||||
'calendar.repeat_none': 'Does not repeat',
|
||||
'calendar.repeat_daily': 'Daily',
|
||||
'calendar.repeat_weekly': 'Weekly',
|
||||
'calendar.repeat_monthly': 'Monthly',
|
||||
'calendar.repeat_yearly': 'Yearly',
|
||||
'calendar.repeat_end': 'Ends',
|
||||
'calendar.repeat_end_never': 'Never',
|
||||
'calendar.repeat_end_on': 'On date',
|
||||
'calendar.repeat_end_after': 'After {count} occurrences',
|
||||
'calendar.repeat_interval': 'Interval: {interval}',
|
||||
'calendar.repeat_weekdays': 'Days of week',
|
||||
'calendar.edit_series': 'Edit series',
|
||||
'calendar.edit_instance': 'Edit this instance',
|
||||
'reports.generate_pdf': 'Generate PDF Report',
|
||||
'reports.template_short': 'Short Report',
|
||||
'reports.template_full': 'Full Report',
|
||||
'reports.template_custom': 'Custom',
|
||||
'reports.template': 'Report Template',
|
||||
'reports.batch_generate': 'Generate for entire class',
|
||||
'reports.download_history': 'Download History',
|
||||
'import.title': 'Data Import',
|
||||
'import.csv_upload': 'Upload CSV File',
|
||||
'import.format_preview': 'Format Preview',
|
||||
'import.progress': 'Import Progress',
|
||||
'import.summary': 'Import Summary',
|
||||
'import.success': 'Successfully imported',
|
||||
'import.errors': 'Import Errors',
|
||||
'import.sample_csv': 'Download Sample CSV',
|
||||
'export.students': 'Export Students',
|
||||
'export.assessments': 'Export Assessments',
|
||||
'export.grades': 'Export Grades',
|
||||
'export.attendance': 'Export Attendance',
|
||||
'export.progress': 'Export Progress',
|
||||
|
||||
// Dashboard (enhanced - Task 4)
|
||||
'dashboard.new_assessment': 'New Assessment',
|
||||
@@ -4113,6 +4270,55 @@ const en: TranslationDict = {
|
||||
|
||||
// Student (enhanced - Task 4)
|
||||
'student.shared_with_me': 'Shared with me',
|
||||
|
||||
// Student Login & Parent Portal (Task 6)
|
||||
'auth.student_login': 'Student Login',
|
||||
'auth.parent_login': 'Parent Login',
|
||||
'auth.create_student_account': 'Create Student Account',
|
||||
'auth.bulk_create': 'Bulk Create',
|
||||
'auth.school_id': 'School ID',
|
||||
'auth.forgot_password': 'Forgot Password',
|
||||
'auth.student_welcome': 'Welcome, Student',
|
||||
'auth.parent_welcome': 'Welcome, Parent',
|
||||
'auth.login_as_student': 'Login as Student',
|
||||
'auth.login_as_parent': 'Login as Parent',
|
||||
'auth.student_login_desc': 'Login with school ID or email',
|
||||
'auth.parent_login_desc': 'Login with email and password',
|
||||
'auth.default_password_set': 'Default password set',
|
||||
'auth.bulk_accounts_created': 'Student accounts created',
|
||||
'parent.my_children': 'My Children',
|
||||
'parent.messages': 'Messages',
|
||||
'parent.progress': 'Progress',
|
||||
'parent.attendance': 'Attendance',
|
||||
'parent.relationship': 'Relationship',
|
||||
'parent.father': 'Father',
|
||||
'parent.mother': 'Mother',
|
||||
'parent.guardian': 'Guardian',
|
||||
'parent.dashboard_title': 'Parent Dashboard',
|
||||
'parent.welcome_back': 'Welcome back',
|
||||
'parent.recent_progress': 'Recent Progress',
|
||||
'parent.upcoming_assessments': 'Upcoming Assessments',
|
||||
'parent.messages_from_teachers': 'Messages from Teachers',
|
||||
'parent.attendance_summary': 'Attendance Summary',
|
||||
'parent.no_children': 'No Children Linked',
|
||||
'parent.no_children_desc': 'No students are linked to your account yet.',
|
||||
'parent.link_student': 'Link Student',
|
||||
'parent.add_link': 'Add Link',
|
||||
'parent.remove_link': 'Remove Link',
|
||||
'parent.select_student': 'Select Student',
|
||||
'parent.select_relationship': 'Select Relationship',
|
||||
'parent.view_progress': 'View Progress',
|
||||
'parent.view_attendance': 'View Attendance',
|
||||
'parent.no_messages': 'No Messages',
|
||||
'parent.no_assessments': 'No Upcoming Assessments',
|
||||
'parent.child_progress_desc': 'Progress over the last 30 days',
|
||||
'settings.create_student_account': 'Create Student Account',
|
||||
'settings.bulk_create_students': 'Bulk Create Student Accounts',
|
||||
'settings.student_account_created': 'Student account created',
|
||||
'settings.bulk_accounts_created': 'Student accounts created',
|
||||
'settings.default_password': 'Default Password',
|
||||
'settings.generate_email': 'Auto-generate Email',
|
||||
'settings.link_student': 'Link to Student',
|
||||
};
|
||||
|
||||
const translations: Record<string, TranslationDict> = { de, en };
|
||||
|
||||
Reference in new issue
Block a user