Admin → Erweiterungs-Manager → Installieren hoch.'; $lang['select_all'] = 'Alle auswählen'; $lang['x_selected_backups'] = '(%d ausgewählt)'; $lang['selected'] = 'ausgewählt'; $lang['backup_file'] = 'Backup-Datei'; $lang['size'] = 'Größe'; $lang['actions'] = 'Aktionen'; $lang['download'] = 'Herunterladen'; $lang['restore'] = 'Wiederherstellen'; $lang['rename'] = 'Umbenennen'; $lang['no_backups_yet'] = 'Noch keine Backups. Klicken Sie auf "Backup jetzt erstellen", um Ihr erstes Backup zu erstellen.'; $lang['select_zip_file'] = 'Bitte wählen Sie eine ZIP-Datei aus'; $lang['confirm_upload'] = 'Neue Plugin-Version hochladen und installieren?'; $lang['restore_confirm'] = "Aus Backup wiederherstellen: %s?\n\nDies ersetzt die aktuellen Plugin-Dateien mit der Backup-Version."; $lang['restore_error'] = 'Wiederherstellung fehlgeschlagen: Backup-Datei nicht gefunden.'; $lang['enter_new_name'] = 'Neuen Namen für das Backup eingeben:'; $lang['delete_backup_confirm'] = 'Dieses Backup löschen: %s?'; $lang['delete_selected_confirm'] = '%d ausgewählte Backup(s) löschen?'; // Outlook Sync Tab $lang['outlook_sync_config'] = 'Outlook-Sync-Konfiguration'; $lang['export_config'] = 'Konfig. exportieren'; $lang['import_config'] = 'Konfig. importieren'; $lang['importing'] = 'Importiere...'; $lang['import_success'] = 'Import erfolgreich! Wird neu geladen...'; $lang['azure_credentials'] = 'Microsoft Azure App-Anmeldedaten'; $lang['azure_register_hint'] = 'Registrieren Sie sich im Azure-Portal → App-Registrierungen'; $lang['tenant_id'] = 'Mandanten-ID'; $lang['client_id'] = 'Client-ID (Anwendungs-ID)'; $lang['client_secret'] = 'Geheimer Clientschlüssel'; $lang['keep_secret_safe'] = 'Bewahren Sie dieses Geheimnis sicher auf!'; $lang['outlook_settings'] = 'Outlook-Einstellungen'; $lang['user_email'] = 'Benutzer-E-Mail'; $lang['timezone'] = 'Zeitzone'; $lang['default_category'] = 'Standardkategorie'; $lang['reminder_minutes'] = 'Erinnerung (Minuten)'; $lang['sync_options'] = 'Sync-Optionen'; $lang['sync_completed_tasks'] = 'Erledigte Aufgaben synchronisieren'; $lang['delete_from_outlook'] = 'Aus Outlook löschen, wenn entfernt'; $lang['sync_all_namespaces'] = 'Alle Namensräume synchronisieren'; $lang['select_namespaces_to_sync'] = 'Namensräume zum Synchronisieren auswählen:'; $lang['namespace_to_category'] = 'Namensraum → Kategorie'; $lang['ns_mapping_hint'] = 'Eine pro Zeile: namensraum=Kategorie'; $lang['color_to_category'] = 'Terminfarbe → Kategorie'; $lang['color_mapping_hint'] = 'Kalenderfarben zu Outlook-Kategorien zuordnen'; $lang['none'] = '-- Keine --'; $lang['save_configuration'] = 'Konfiguration speichern'; $lang['config_exported'] = 'Konfiguration erfolgreich exportiert!'; $lang['config_export_warning'] = "Diese Datei enthält verschlüsselte Anmeldedaten.\nBewahren Sie sie sicher auf!"; $lang['export_failed'] = 'Export fehlgeschlagen'; $lang['error'] = 'Fehler'; $lang['sync_status'] = 'Sync-Status'; $lang['sync_now'] = 'Jetzt synchronisieren'; $lang['stop_sync'] = 'Sync stoppen'; $lang['syncing'] = 'Synchronisiere...'; $lang['last_sync_label'] = 'Letzte Synchronisierung'; $lang['never_synced'] = 'Nie'; $lang['sync_log'] = 'Sync-Protokoll'; $lang['download_log'] = 'Protokoll herunterladen'; $lang['clear_log'] = 'Protokoll löschen'; $lang['no_log_entries'] = 'Keine Protokolleinträge'; $lang['log_cleared'] = 'Protokoll gelöscht'; // Themes Tab $lang['sidebar_widget_settings'] = 'Seitenleisten-Widget-Einstellungen'; $lang['sidebar_widget_desc'] = 'Passen Sie das Erscheinungsbild und Verhalten des Kalender-Widgets in der Seitenleiste an.'; $lang['week_start_day'] = 'Wochenstarttag'; $lang['week_start_desc'] = 'Wählen Sie, an welchem Tag das Wochenraster beginnt:'; $lang['monday'] = 'Montag'; $lang['sunday'] = 'Sonntag'; $lang['week_starts_monday'] = 'Woche beginnt am Montag (ISO-Standard)'; $lang['week_starts_sunday'] = 'Woche beginnt am Sonntag (US/Kanada-Standard)'; $lang['itinerary_section'] = 'Terminübersicht'; $lang['itinerary_desc'] = 'Wählen Sie, ob die Abschnitte Heute/Morgen/Wichtige Termine standardmäßig ausgeklappt oder eingeklappt sind:'; $lang['expanded'] = 'Ausgeklappt'; $lang['collapsed'] = 'Eingeklappt'; $lang['show_itinerary_default'] = 'Terminübersicht standardmäßig anzeigen'; $lang['hide_itinerary_default'] = 'Terminübersicht standardmäßig ausblenden (Balken klicken zum Aufklappen)'; $lang['visual_theme'] = 'Visuelles Design'; $lang['theme_matrix'] = 'Matrix Edition'; $lang['theme_matrix_desc'] = 'Dunkelgrünes Design mit Matrix-Leuchteffekten und Neon-Akzenten'; $lang['theme_purple'] = 'Purple Dream'; $lang['theme_purple_desc'] = 'Reiches lila Design mit eleganten Violett-Akzenten und sanftem Leuchten'; $lang['theme_professional'] = 'Professional Blue'; $lang['theme_professional_desc'] = 'Sauberes blau-graues Design mit modernem professionellem Stil, keine Leuchteffekte'; $lang['theme_pink'] = 'Pink Bling'; $lang['theme_pink_desc'] = 'Glamouröses pinkfarbenes Design mit maximalem Glitzer, Herzen und Diamanten ✨'; $lang['theme_wiki'] = 'Wiki Standard'; $lang['theme_wiki_desc'] = 'Passt automatisch zu Ihrem DokuWiki-Template-Design mit CSS-Variablen - passt sich hellen und dunklen Designs an'; $lang['preview'] = 'Vorschau'; $lang['save_settings'] = 'Einstellungen speichern'; $lang['settings_saved'] = 'Einstellungen erfolgreich gespeichert!'; // Sync Controls $lang['sync_controls'] = 'Sync-Steuerung'; $lang['run_sync_now'] = 'Sync jetzt starten'; $lang['stop_sync'] = 'Sync stoppen'; $lang['no_cron_detected'] = 'Kein Cron-Job erkannt'; $lang['running'] = 'Läuft...'; $lang['starting_sync'] = 'Starte Sync...'; $lang['stopping_sync'] = 'Stoppe Sync...'; $lang['duplicate_log_warning'] = 'Doppelte Protokolleinträge: Ihre Crontab hat eine >> Umleitung. Das Sync-Skript protokolliert intern, daher verursacht dies doppelte Einträge. Entfernen Sie die Umleitung aus Ihrer Crontab.'; $lang['show_cron_details'] = 'Cron-Details anzeigen'; $lang['cron_setup_hint'] = 'Um automatisches Synchronisieren zu aktivieren, fügen Sie zur Crontab hinzu:'; $lang['cron_note'] = 'Hinweis: Das Skript protokolliert automatisch nach %s. Verwenden Sie keine >> Umleitung.'; $lang['log_not_writable'] = 'Protokolldatei nicht beschreibbar. Ausführen:'; // Live Sync Log $lang['live_sync_log'] = 'Live-Sync-Protokoll'; $lang['log_location'] = 'Speicherort:'; $lang['updates_interval'] = 'Aktualisiert alle 2 Sekunden'; $lang['pause'] = 'Pause'; $lang['resume'] = 'Fortsetzen'; $lang['loading_log'] = 'Protokoll wird geladen...'; $lang['no_log_data'] = 'Keine Protokolldaten verfügbar'; $lang['clear_log_confirm'] = "Sync-Protokoll löschen?\n\nDies löscht alle Protokolleinträge."; $lang['log_cleared_success'] = 'Protokoll erfolgreich gelöscht'; // Color names for color mapping $lang['color_blue'] = 'Blau'; $lang['color_green'] = 'Grün'; $lang['color_red'] = 'Rot'; $lang['color_orange'] = 'Orange'; $lang['color_purple'] = 'Lila'; $lang['color_teal'] = 'Türkis'; // Placeholder texts $lang['enter_client_secret'] = 'Geheimen Clientschlüssel eingeben'; // Error messages $lang['error_admin_required'] = 'Administratorzugriff erforderlich'; $lang['error_unknown_action'] = 'Unbekannte Admin-Aktion'; $lang['error_save_config'] = 'Fehler: Konfigurationsdatei konnte nicht gespeichert werden'; $lang['error_log_not_writable'] = 'Protokolldatei nicht beschreibbar'; // Update Plugin JavaScript strings $lang['select_zip_file'] = 'Bitte wählen Sie eine ZIP-Datei'; $lang['upload_confirm'] = "Hochladen und installieren: %s?\n\nDies ersetzt alle Plugin-Dateien.\nIhre Konfiguration und Daten bleiben erhalten.\n\nFortfahren?"; $lang['selected'] = 'ausgewählt'; $lang['no_backups_selected'] = 'Keine Backups ausgewählt'; $lang['delete_selected_confirm'] = "%d ausgewählte(s) Backup(s) löschen?\n\n%s\n\nDies kann nicht rückgängig gemacht werden!"; $lang['deleted_with_errors'] = '%d Backups gelöscht. Fehler: %s'; $lang['rename_prompt'] = "Neuen Backup-Namen eingeben (ohne .zip-Endung):\n\nAktuell: %s"; $lang['invalid_filename'] = 'Ungültiger Dateiname. Verwenden Sie nur Buchstaben, Zahlen, Punkte, Bindestriche und Unterstriche.'; // Additional error and status messages $lang['no_log_file'] = 'Keine Protokolldatei gefunden. Sync wurde noch nicht ausgeführt.'; $lang['admin_access_required'] = 'Administratorzugriff erforderlich'; $lang['unknown_admin_action'] = 'Unbekannte Admin-Aktion'; // Configuration save messages $lang['config_saved_success'] = 'Konfiguration erfolgreich gespeichert!'; $lang['config_save_error'] = 'Fehler: Konfigurationsdatei konnte nicht gespeichert werden'; $lang['important_ns_saved'] = 'Wichtige Namensräume gespeichert'; // Import/Export config messages $lang['export_success'] = "Konfiguration erfolgreich exportiert!\n\n⚠️ Diese Datei enthält verschlüsselte Zugangsdaten.\nBewahren Sie sie sicher auf!"; $lang['export_failed'] = 'Export fehlgeschlagen'; $lang['importing'] = 'Importiere...'; $lang['import_successful'] = 'Import erfolgreich! Seite wird neu geladen...'; $lang['import_failed'] = 'Import fehlgeschlagen'; // Cleanup messages $lang['cleanup_complete'] = 'Bereinigung abgeschlossen'; $lang['failed'] = 'Fehlgeschlagen'; // Recurring pattern descriptions $lang['every_x_days'] = 'Alle %d Tage'; $lang['every_x_weeks'] = 'Alle %d Wochen'; $lang['every_x_months'] = 'Alle %d Monate'; $lang['every_x_years'] = 'Alle %d Jahre'; // Upload/restore messages $lang['failed_to_add'] = 'Hinzufügen fehlgeschlagen: %s'; $lang['cannot_read'] = 'Kann nicht lesen: %s'; // Import/cleanup messages $lang['import_complete'] = 'Import abgeschlossen! %d neue Termine importiert'; $lang['cleanup_deleted'] = 'Bereinigung abgeschlossen! %d Termin(e) gelöscht. Backup erstellt: %s'; // Recurring pattern labels $lang['daily'] = 'Täglich'; $lang['weekly'] = 'Wöchentlich'; $lang['bi_weekly'] = 'Zweiwöchentlich'; $lang['monthly'] = 'Monatlich'; $lang['quarterly'] = 'Vierteljährlich'; $lang['semi_annual'] = 'Halbjährlich'; $lang['yearly'] = 'Jährlich'; // Day abbreviations for patterns $lang['day_sun'] = 'So'; $lang['day_mon'] = 'Mo'; $lang['day_tue'] = 'Di'; $lang['day_wed'] = 'Mi'; $lang['day_thu'] = 'Do'; $lang['day_fri'] = 'Fr'; $lang['day_sat'] = 'Sa'; // Ordinal labels $lang['ordinal_1st'] = '1.'; $lang['ordinal_2nd'] = '2.'; $lang['ordinal_3rd'] = '3.'; $lang['ordinal_4th'] = '4.'; $lang['ordinal_5th'] = '5.'; $lang['ordinal_last'] = 'Letzter'; // Pattern format strings $lang['pattern_day_x'] = '%s (Tag %s)'; $lang['pattern_ordinal_day'] = '%s (%s %s)'; // Import status $lang['skipped_duplicates'] = ', %d Duplikate übersprungen'; // AJAX response messages $lang['removed_past_recurring'] = '%d vergangene wiederkehrende Termine entfernt'; $lang['added_occurrences'] = '%d neue Vorkommen hinzugefügt'; $lang['removed_past_before'] = '%d vergangene Vorkommen vor %s entfernt'; $lang['paused_occurrences'] = '%d zukünftige Vorkommen pausiert'; $lang['resumed_occurrences'] = '%d Vorkommen fortgesetzt'; $lang['start_date_unchanged'] = 'Startdatum unverändert'; $lang['shifted_occurrences'] = '%d Vorkommen um %d Tage %s verschoben'; $lang['respaced_occurrences'] = '%d zukünftige Vorkommen auf %s (%d Tage) umgestellt'; $lang['sync_script_not_found'] = 'Sync-Skript nicht gefunden unter: %s'; $lang['cannot_create_log_dir'] = 'Protokollverzeichnis kann nicht erstellt werden: %s'; $lang['cannot_create_log_file'] = 'Protokolldatei kann nicht erstellt werden: %s'; $lang['log_not_writable_chmod'] = 'Protokolldatei nicht beschreibbar: %s - Ausführen: chmod 666 %s'; $lang['cannot_find_php'] = 'PHP-Binary nicht gefunden'; $lang['sync_completed'] = 'Sync abgeschlossen! Protokoll prüfen für Details.'; $lang['stop_signal_sent'] = 'Stopp-Signal an Sync-Prozess gesendet'; $lang['failed_abort_flag'] = 'Abbruch-Flag konnte nicht erstellt werden'; $lang['config_not_found'] = 'Konfigurationsdatei nicht gefunden'; $lang['config_exported'] = 'Konfiguration erfolgreich exportiert'; $lang['no_config_data'] = 'Keine Konfigurationsdaten vorhanden'; $lang['decryption_failed'] = 'Entschlüsselung fehlgeschlagen. Diese Konfigurationsdatei wurde von einer anderen DokuWiki-Installation exportiert (anderer geheimer Schlüssel).'; // Direction strings for shift $lang['forward'] = 'vorwärts'; $lang['back'] = 'zurück'; // Additional AJAX/backend messages $lang['no_future_to_respace'] = 'Keine zukünftigen Vorkommen zum Neuverteilen'; $lang['sync_failed_exit'] = 'Sync fehlgeschlagen (Exit-Code: %d)'; $lang['theme_saved_refresh'] = '✓ Design und Einstellungen erfolgreich gespeichert! Aktualisieren Sie eine beliebige Seite mit der Seitenleiste, um die Änderungen zu sehen.'; // Upload/Update error messages $lang['upload_failed'] = 'Upload fehlgeschlagen: %s'; $lang['no_file_uploaded'] = 'Keine Datei hochgeladen'; $lang['dir_not_writable'] = 'Plugin-Verzeichnis ist nicht beschreibbar. Bitte überprüfen Sie die Berechtigungen: %s'; $lang['parent_dir_not_writable'] = 'Übergeordnetes Plugin-Verzeichnis ist nicht beschreibbar. Bitte überprüfen Sie die Berechtigungen: %s'; $lang['invalid_file_type'] = 'Ungültiger Dateityp. Bitte laden Sie eine ZIP-Datei hoch.'; $lang['backup_not_created'] = 'Backup-Datei wurde nicht erstellt'; $lang['backup_too_small'] = 'Backup-Datei ist zu klein (%s). Nur %d Dateien wurden hinzugefügt. Backup abgebrochen.'; $lang['backup_incomplete'] = 'Backup unvollständig: Nur %d Dateien wurden hinzugefügt (erwartet 30+). Backup abgebrochen.'; $lang['backup_zip_failed'] = 'ZIP-Backup-Datei konnte nicht erstellt werden'; $lang['backup_failed'] = 'Backup fehlgeschlagen: %s'; $lang['open_zip_failed'] = 'ZIP-Datei konnte nicht geöffnet werden'; $lang['plugin_updated'] = 'Plugin erfolgreich aktualisiert!'; $lang['backup_saved_as'] = ' Backup gespeichert als: %s'; $lang['no_backup_specified'] = 'Keine Backup-Datei angegeben'; $lang['invalid_backup_filename'] = 'Ungültiger Backup-Dateiname'; $lang['backup_not_found'] = 'Backup-Datei nicht gefunden'; $lang['backup_deleted'] = 'Backup gelöscht: %s'; $lang['delete_backup_failed'] = 'Backup konnte nicht gelöscht werden. Überprüfen Sie die Dateiberechtigungen.'; $lang['missing_filenames'] = 'Dateiname(n) fehlen'; $lang['invalid_filename_format'] = 'Ungültiges Dateinamenformat'; $lang['file_exists'] = 'Eine Datei mit dem neuen Namen existiert bereits'; $lang['backup_renamed'] = 'Backup umbenannt: %s → %s'; $lang['rename_backup_failed'] = 'Backup konnte nicht umbenannt werden. Überprüfen Sie die Dateiberechtigungen.'; $lang['extension_manager_unavailable'] = 'DokuWiki Erweiterungsmanager nicht verfügbar. Bitte manuell installieren: Laden Sie das Backup herunter, gehen Sie zu Admin → Erweiterungen → Installieren und laden Sie die ZIP-Datei hoch.'; $lang['plugin_restored'] = 'Plugin aus Backup wiederhergestellt: %s (via Erweiterungsmanager)'; $lang['restore_failed'] = 'Wiederherstellung fehlgeschlagen: %s'; $lang['dir_not_readable'] = 'Plugin-Verzeichnis ist nicht lesbar. Bitte überprüfen Sie die Berechtigungen.'; $lang['cannot_save_backup'] = 'Übergeordnetes Plugin-Verzeichnis ist nicht beschreibbar. Backup kann nicht gespeichert werden.'; $lang['backup_created_success'] = '✓ Manuelles Backup erfolgreich erstellt: %s (%s, %d Dateien)'; $lang['dir_does_not_exist'] = 'Verzeichnis existiert nicht: %s'; $lang['dir_not_readable_err'] = 'Verzeichnis ist nicht lesbar: %s'; // Config import/export additional messages $lang['invalid_config_php_tag'] = 'Ungültige Konfigurationsdatei: PHP-Opening-Tag fehlt. Die Datei ist möglicherweise beschädigt oder stammt aus einer anderen Installation.'; $lang['invalid_config_prohibited'] = 'Ungültige Konfigurationsdatei: enthält verbotene Code-Muster'; $lang['invalid_config_return'] = 'Ungültige Konfigurationsdatei: muss eine return array-Anweisung enthalten'; $lang['config_write_failed'] = 'Konfigurationsdatei konnte nicht geschrieben werden'; $lang['config_imported'] = 'Konfiguration erfolgreich importiert'; // Log file messages $lang['log_file_created'] = 'Protokolldatei erstellt'; $lang['log_not_exist_create'] = 'Protokolldatei existiert nicht und kann nicht erstellt werden: %s'; $lang['log_not_writable_sudo'] = 'Protokolldatei nicht beschreibbar. Ausführen: sudo chmod 666 %s'; $lang['file_put_failed'] = 'file_put_contents fehlgeschlagen bei: %s'; // Cache messages $lang['cache_cleared'] = 'Cache erfolgreich geleert!'; $lang['cache_not_found'] = 'Cache-Verzeichnis nicht gefunden'; // Recurring event messages $lang['deleted_recurring'] = '%d Vorkommen des wiederkehrenden Termins gelöscht: %s'; $lang['updated_recurring'] = '%d Vorkommen des wiederkehrenden Termins aktualisiert%s'; // Event management messages $lang['no_events_selected'] = 'Keine Termine ausgewählt'; $lang['moved_events'] = '%d Termin(e) in Namensraum verschoben: %s'; $lang['event_file_not_found'] = 'Termindatei nicht gefunden'; $lang['event_read_failed'] = 'Termindatei konnte nicht gelesen werden'; $lang['event_not_found'] = 'Termin nicht gefunden'; $lang['moved_event'] = '"%s" nach %s verschoben'; // Namespace management messages $lang['namespace_empty'] = 'Namensraumname darf nicht leer sein'; $lang['namespace_invalid'] = 'Ungültiger Namensraumname. Nur Buchstaben, Zahlen, Unterstrich, Bindestrich und Doppelpunkt erlaubt.'; $lang['namespace_exists'] = 'Namensraum \'%s\' existiert bereits mit Terminen'; $lang['namespace_create_failed'] = 'Namensraum-Verzeichnis konnte nicht erstellt werden'; $lang['namespace_created'] = 'Namensraum erstellt: %s'; $lang['namespace_traversal'] = 'Ungültiger Namensraum: Pfadtraversierung nicht erlaubt'; $lang['namespace_not_found'] = 'Namensraum-Verzeichnis nicht gefunden: %s'; $lang['namespace_deleted'] = 'Namensraum \'%s\' gelöscht: %d Termine in %d Dateien'; $lang['namespace_renamed'] = 'Namensraum \'%s\' in \'%s\' umbenannt: %d Termine in %d Dateien'; $lang['old_namespace_invalid'] = 'Ungültiger alter Namensraumname. Nur Buchstaben, Zahlen, Unterstrich, Bindestrich und Doppelpunkt erlaubt.'; $lang['new_namespace_invalid'] = 'Ungültiger neuer Namensraumname. Nur Buchstaben, Zahlen, Unterstrich, Bindestrich und Doppelpunkt erlaubt.'; $lang['old_namespace_not_found'] = 'Altes Namensraum-Verzeichnis nicht gefunden: %s'; $lang['new_namespace_exists'] = 'Neues Namensraum-Verzeichnis existiert bereits: %s'; $lang['rename_failed'] = 'Verzeichnis konnte nicht umbenannt werden'; $lang['cannot_rename_empty'] = 'Umbenennung zu leerem Namensraum nicht möglich'; $lang['source_namespace_not_found'] = 'Quell-Namensraum nicht gefunden: %s'; $lang['target_namespace_exists'] = 'Ziel-Namensraum existiert bereits: %s'; $lang['rename_namespace_failed'] = 'Namensraum konnte nicht umbenannt werden'; $lang['deleted_events'] = '%d Termin(e) gelöscht'; // Cron interval strings $lang['runs_every_minute'] = 'Läuft jede Minute'; $lang['runs_every_x_minutes'] = 'Läuft alle %d Minuten'; $lang['runs_hourly'] = 'Läuft stündlich'; $lang['runs_every_hour'] = 'Läuft jede Stunde'; $lang['runs_every_x_hours'] = 'Läuft alle %d Stunden'; $lang['runs_daily'] = 'Läuft täglich'; $lang['custom_schedule'] = 'Benutzerdefinierter Zeitplan'; // ========== SIDEBAR WIDGET / FRONTEND STRINGS ========== // Navigation & buttons $lang['today_btn'] = 'Heute'; $lang['add_btn'] = '+ Hinzufügen'; $lang['search_placeholder'] = '🔍 Suchen...'; $lang['search_this_month'] = 'Nur diesen Monat durchsuchen'; $lang['click_to_jump'] = 'Klicken um zum Monat zu springen'; $lang['events_header'] = 'Termine'; // Itinerary section headers $lang['itinerary_today'] = 'Heute'; $lang['itinerary_tomorrow'] = 'Morgen'; $lang['itinerary_important'] = 'Wichtige Termine'; $lang['important_tooltip'] = 'Wichtig'; // Event dialog - title $lang['dialog_add_event'] = 'Termin hinzufügen'; $lang['dialog_edit_event'] = 'Termin bearbeiten'; // Event dialog - labels $lang['field_title'] = '📝 Titel'; $lang['field_title_placeholder'] = 'Termin- oder Aufgabentitel...'; $lang['field_namespace'] = '📁 Namensraum'; $lang['field_namespace_placeholder'] = 'Tippen zum Suchen oder leer lassen für Standard...'; $lang['field_description'] = '📄 Beschreibung'; $lang['field_description_placeholder'] = 'Optionale Details...'; $lang['field_start_date'] = '📅 Startdatum'; $lang['field_end_date'] = '🏁 Enddatum'; $lang['field_start_time'] = '🕐 Startzeit'; $lang['field_end_time'] = '🕐 Endzeit'; $lang['field_color'] = '🎨 Farbe'; // Event dialog - time options $lang['time_all_day'] = 'Ganztägig'; $lang['time_same_as_start'] = 'Wie Startzeit'; // Event dialog - recurring options $lang['recurring_label'] = '🔄 Wiederholender Termin'; $lang['recurring_repeat_every'] = 'Wiederholen alle'; $lang['recurring_days'] = 'Tag(e)'; $lang['recurring_weeks'] = 'Woche(n)'; $lang['recurring_months'] = 'Monat(e)'; $lang['recurring_years'] = 'Jahr(e)'; $lang['recurring_on_these_days'] = 'An diesen Tagen:'; $lang['recurring_repeat_on'] = 'Wiederholen am:'; $lang['recurring_day_of_month'] = 'Tag des Monats'; $lang['recurring_weekday_pattern'] = 'Wochentagmuster'; $lang['recurring_day'] = 'Tag'; $lang['recurring_of_each_month'] = 'jeden Monat'; $lang['recurring_until'] = 'Wiederholen bis (optional)'; $lang['recurring_until_hint'] = 'Leer lassen für 1 Jahr Termine'; // Ordinal positions $lang['ordinal_first'] = 'Erster'; $lang['ordinal_second'] = 'Zweiter'; $lang['ordinal_third'] = 'Dritter'; $lang['ordinal_fourth'] = 'Vierter'; $lang['ordinal_fifth'] = 'Fünfter'; $lang['ordinal_last'] = 'Letzter'; // Day names (short) $lang['day_sun'] = 'So'; $lang['day_mon'] = 'Mo'; $lang['day_tue'] = 'Di'; $lang['day_wed'] = 'Mi'; $lang['day_thu'] = 'Do'; $lang['day_fri'] = 'Fr'; $lang['day_sat'] = 'Sa'; // Day names (full) $lang['day_sunday'] = 'Sonntag'; $lang['day_monday'] = 'Montag'; $lang['day_tuesday'] = 'Dienstag'; $lang['day_wednesday'] = 'Mittwoch'; $lang['day_thursday'] = 'Donnerstag'; $lang['day_friday'] = 'Freitag'; $lang['day_saturday'] = 'Samstag'; // Color names $lang['color_blue'] = '🔵 Blau'; $lang['color_green'] = '🟢 Grün'; $lang['color_red'] = '🔴 Rot'; $lang['color_orange'] = '🟠 Orange'; $lang['color_purple'] = '🟣 Lila'; $lang['color_pink'] = '🔴 Rosa'; $lang['color_teal'] = '🟢 Türkis'; $lang['color_custom'] = '🎨 Benutzerdefiniert...'; // Task checkbox $lang['task_label'] = '📋 Dies ist eine Aufgabe (kann abgehakt werden)'; // Dialog buttons $lang['btn_cancel'] = 'Abbrechen'; $lang['btn_save'] = '💾 Speichern'; $lang['btn_delete'] = 'Löschen'; // Default event title $lang['default_event'] = 'Termin'; $lang['no_upcoming_events'] = 'Keine anstehenden Termine'; // Range headers $lang['range_today'] = 'Heute'; $lang['range_this_week'] = 'Diese Woche'; // Month names (full) - for JavaScript $lang['month_january'] = 'Januar'; $lang['month_february'] = 'Februar'; $lang['month_march'] = 'März'; $lang['month_april'] = 'April'; $lang['month_may'] = 'Mai'; $lang['month_june'] = 'Juni'; $lang['month_july'] = 'Juli'; $lang['month_august'] = 'August'; $lang['month_september'] = 'September'; $lang['month_october'] = 'Oktober'; $lang['month_november'] = 'November'; $lang['month_december'] = 'Dezember'; // Month names (short) - for JavaScript $lang['month_jan'] = 'Jan'; $lang['month_feb'] = 'Feb'; $lang['month_mar'] = 'Mär'; $lang['month_apr'] = 'Apr'; $lang['month_may_short'] = 'Mai'; $lang['month_jun'] = 'Jun'; $lang['month_jul'] = 'Jul'; $lang['month_aug'] = 'Aug'; $lang['month_sep'] = 'Sep'; $lang['month_oct'] = 'Okt'; $lang['month_nov'] = 'Nov'; $lang['month_dec'] = 'Dez'; // JavaScript UI strings $lang['events_for_date'] = 'Termine - %s'; $lang['past_events'] = 'Vergangene Termine (%d)'; $lang['no_events_day'] = 'Keine Termine an diesem Tag'; $lang['add_event_btn'] = '+ Termin hinzufügen'; $lang['add_event_short'] = '+ TERMIN'; $lang['delete_event_confirm'] = 'Diesen Termin löschen?'; // Badge labels $lang['badge_past_due'] = 'ÜBERFÄLLIG'; $lang['badge_today'] = 'HEUTE'; // Additional messages $lang['no_events_month'] = 'Keine Termine diesen Monat'; $lang['no_events_week'] = 'Keine Termine diese Woche';