diff --git a/web-nodejs/lang/de.json b/web-nodejs/lang/de.json index af99433c..2493c101 100644 --- a/web-nodejs/lang/de.json +++ b/web-nodejs/lang/de.json @@ -16,21 +16,21 @@ "error": "Fehler", "success": "Erfolg", "warning": "Warnung", - "back": "Zurück", - "edit": "Bearbeiten" + "info": "Informationen", + "all": "All", "cancel": "Abbrechen", "delete": "Löschen", "actions": "Aktionen", "close": "Schließen", "required": "Erforderlich", "name_required": "Name ist erforderlich", - "login": "Anmelden" + "active": "Active", "inactive": "Inaktiv", "invalid_json": "Ungültiges JSON-Format", "field_required": "Dieses Feld ist erforderlich", - "back": "Back", - "edit": "Edit" - "passwords_mismatch": "Passwörter stimmen nicht überein" + "back": "Zurück", + "edit": "Bearbeiten" + }, "nav": { "main": "Hauptmenü", "tools": "Werkzeuge", @@ -38,26 +38,27 @@ "dashboard": "Dashboard", "devices": "Geräte", "keys": "Schlüssel", - "greeting_morning": "Guten Morgen, {name}", - "greeting_afternoon": "Guten Tag, {name}", - "greeting_evening": "Guten Abend, {name}", - "greeting_night": "Gute Nacht, {name}", - "health_overview": "Gesundheitsübersicht", - "devices_online": "Geräte online", - "active_alerts": "Aktive Warnungen", - "recent_connections": "Gesamtgeräte", - "server_uptime": "Serverlaufzeit", - "activity_feed": "Letzte Aktivität", - "no_recent_activity": "Keine kürzliche Aktivität", - "just_now": "gerade eben", - "ago": "vor", + "generator": "Generator", + "settings": "Settings", + "users": "Benutzer", + "inventory": "Inventory", + "tickets": "Tickets", + "help_requests": "Help Requests", + "activity": "Activity", + "automation": "Automation", + "file_transfer": "Dateiübertragung", + "network": "Network Adapters", + "dataguard": "DataGuard", + "reports": "Reports", + "tenants": "Tenants", "registrations": "Registrierungen", "management": "Management", "toggle_sidebar": "Seitenleiste umschalten", + "toggle_theme": "Thema wechseln", "cdap": "CDAP", "fleet": "Flotte", "scaling": "Skalierung", - "remote_viewer": "Remote-Ansicht", + "cross_platform": "Cross-Platform", "tokens": "Device Tokens", "organizations": "Organizations", "policies": "Richtlinien", @@ -67,13 +68,10 @@ "security_audit": "Sicherheitsprüfung", "languages": "Sprachen", "resource_control": "Ressourcenkontrolle", + "sdk_studio": "SDK Studio", "chat": "Chat", "help": "Help", "expand_sidebar": "Expand sidebar", - "clients": "Clients", - "exit_desktop": "Desktop beenden", - "toggle_theme": "Thema wechseln", - "sdk_studio": "SDK Studio", "login": "Anmelden" }, "auth": { @@ -88,6 +86,7 @@ "remember_me": "Angemeldet bleiben", "login_failed": "Anmeldung fehlgeschlagen. Bitte überprüfen Sie Ihre Anmeldedaten.", "invalid_credentials": "Ungültiger Benutzername oder Passwort.", + "pro_only_account": "Dieses Konto ist nur fuer den RustDesk-Desktopclient vorgesehen. Bitte verwenden Sie die RustDesk-App zum Anmelden.", "fill_all_fields": "Bitte füllen Sie alle Felder aus", "logout_confirm": "Sind Sie sicher, dass Sie sich abmelden möchten?", "change_password": "Passwort ändern", @@ -105,8 +104,7 @@ "totp_enter_recovery": "Bitte geben Sie einen Wiederherstellungscode ein", "totp_session_expired": "Sitzung abgelaufen. Bitte melden Sie sich erneut an.", "totp_already_enabled": "Zwei-Faktor-Authentifizierung ist bereits aktiviert", - "pro_only_account": "Dieses Konto ist nur fuer den RustDesk-Desktopclient vorgesehen. Bitte verwenden Sie die RustDesk-App zum Anmelden.", - "passwords_mismatch": "Passwoerter stimmen nicht ueberein" + "passwords_mismatch": "Passwörter stimmen nicht überein" }, "dashboard": { "title": "Dashboard", @@ -126,13 +124,13 @@ "greeting_afternoon": "Guten Tag, {name}", "greeting_evening": "Guten Abend, {name}", "greeting_night": "Gute Nacht, {name}", - "health_overview": "Gesundheitsuebersicht", - "devices_online": "Online-Geraete", + "health_overview": "Gesundheitsübersicht", + "devices_online": "Geräte online", "active_alerts": "Aktive Warnungen", - "recent_connections": "Gesamtgeraete", + "recent_connections": "Gesamtgeräte", "server_uptime": "Serverlaufzeit", - "activity_feed": "Letzte Aktivitaeten", - "no_recent_activity": "Keine letzten Aktivitaeten", + "activity_feed": "Letzte Aktivität", + "no_recent_activity": "Keine kürzliche Aktivität", "just_now": "gerade eben", "ago": "vor", "tip_desktop_mode": "Probieren Sie den Desktop-Modus fuer einen Arbeitsbereich mit mehreren Fenstern und Monitoring-Widgets aus.", @@ -145,7 +143,7 @@ "tip_tutorials": "Klicken Sie unten rechts auf die Hilfeschaltflaeche fuer interaktive Anleitungen." }, "devices": { - "title": "Geräte", + "title": "Dashboard", "id": "ID", "hostname": "Hostname", "username": "Benutzername", @@ -202,29 +200,29 @@ "toggle_columns": "Sichtbare Spalten umschalten", "not_found": "Device not found", "delete_failed": "Failed to delete device", - "saved": "Erfolgreich gespeichert", - "back": "Zurück", - "create": "Erstellen", - "dismiss": "Verwerfen", - "view_all": "Alle anzeigen" + "change_id_failed": "Geräte-ID konnte nicht geändert werden", + "invalid_id": "Invalid device ID (6-16 characters required)", + "invalid_id_format": "Invalid ID format (letters, numbers, dashes, underscores only)", + "id_exists": "Device ID already exists", + "no_selection": "No devices selected", "device_type": "Gerätetyp", "filter_type_all": "All Types", "filter_type_rustdesk": "RustDesk", "filter_type_desktop": "Desktop", "filter_type_scada": "SCADA", "filter_type_iot": "IoT", - "error": "Fehler", - "not_found": "Nicht gefunden", - "server_error": "Serverfehler", - "load_device_failed": "Gerätedetails konnten nicht geladen werden" + "filter_type_agent": "Agent", + "cdap_connected": "CDAP Connected", + "revoke": "Widerrufen", + "access_policy": "Access Policy", "unattended_access": "Unattended Access", "enable_unattended": "Enable unattended access", "access_password": "Access Password", "password_configured": "Password set", "no_password": "No password", - "select_conversation_hint": "Wähle eine Unterhaltung aus, um Nachrichten anzuzeigen", - "info": "Informationen", - "group_name_placeholder": "Gruppennamen eingeben" + "new_password": "Neues Passwort", + "clear_password": "Clear password", + "access_schedule": "Access Schedule", "enable_schedule": "Enable time-based access", "allowed_days": "Allowed days", "start_time": "Start time", @@ -232,19 +230,20 @@ "timezone": "Timezone", "allowed_operators": "Allowed Operators", "all_operators": "All operators (leave empty)", - "no_rules": "Keine Zuweisungsregeln." + "operators_hint": "Comma-separated usernames. Leave empty to allow all operators.", "last_updated_by": "Last updated by", "access_policy_saved": "Access policy saved", + "display_name": "Display Name", + "display_name_placeholder": "Custom name (overrides hostname)", + "note_placeholder": "Notes about this device", "tabs": { "overview": "Overview", "hardware": "Hardware", "metrics": "Metriken", "connections": "Connections", "audit": "Audit", - "info": "Info", - "history": "History", - "details": "Details", - "notes": "Notizen" + "info": "Informationen", + "history": "History" }, "hardware": { "cpu": "Processor", @@ -256,21 +255,13 @@ "load_avg": "Load Average", "network": "Network Adapters", "no_data": "No hardware data available", - "title": "Hardware Information", + "title": "Dashboard", "gpu": "Graphics Card" - }, - "connect_remote": "Remote verbinden", - "copy_id": "ID kopieren", - "live_metrics": "Live-Metriken", - "history_charts": "Verlaufsdiagramme", - "no_metrics": "Keine Metriken verfügbar", - "display_name": "Display Name", - "display_name_placeholder": "Custom name (overrides hostname)", - "note_placeholder": "Notes about this device" + } }, "keys": { - "title": "Serverschlüssel", - "subtitle": "Öffentlicher Schlüssel und Konfiguration für RustDesk-Clients", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "public_key": "Öffentlicher Schlüssel", "qr_code": "QR-Code", "server_info": "Serverinformationen", @@ -281,12 +272,12 @@ "no_key_to_copy": "Kein Schlüssel zum Kopieren", "no_qr": "QR-Code nicht verfügbar", "download_success": "Schlüsseldatei heruntergeladen", - "not_found": "Key not found", + "not_found": "Device not found", "api_not_found": "API key not found" }, "settings": { - "title": "Einstellungen", - "subtitle": "Konsolenkonfiguration und Kontoeinstellungen", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "tab_general": "Allgemein", "tab_server": "Server", "tab_branding": "Branding", @@ -310,7 +301,7 @@ "server_info": "Serverinformationen", "version": "Version", "database": "Datenbank", - "uptime": "Laufzeit", + "uptime": "Uptime", "audit_log": "Audit-Protokoll", "audit_desc": "Aktuelle Konsolenaktivität", "no_audit_logs": "Keine Audit-Protokolle gefunden", @@ -357,7 +348,7 @@ "totp_step2": "Scannen Sie den QR-Code unten", "totp_step3": "Geben Sie den 6-stelligen Code zur Überprüfung ein", "totp_manual_key": "Manueller Schlüssel", - "totp_enter_code": "Bestätigungscode eingeben", + "totp_enter_code": "Bitte geben Sie einen 6-stelligen Code ein", "totp_verify_enable": "Überprüfen & Aktivieren", "totp_enabled_success": "Zwei-Faktor-Authentifizierung aktiviert!", "totp_recovery_warning": "Bewahren Sie diese Wiederherstellungscodes sicher auf. Jeder Code kann nur einmal verwendet werden. Wenn Sie den Zugang zu Ihrer Authenticator-App verlieren, können Sie diese Codes zum Anmelden verwenden.", @@ -369,7 +360,7 @@ "time": "Zeit", "user": "Benutzer", "action": "Aktion", - "details": "Details", + "details": "Gerätedetails", "action_login": "Login", "action_login_failed": "Login Failed", "action_logout": "Logout", @@ -385,8 +376,8 @@ "action_device_delete": "Device Deleted" }, "generator": { - "title": "Client-Konfigurationsgenerator", - "subtitle": "Konfiguration für RustDesk-Clients generieren", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "config_options": "Konfigurationsoptionen", "server_address": "Serveradresse", "server_address_hint": "Domain oder IP-Adresse Ihres Servers", @@ -425,9 +416,9 @@ "copy": "Kopieren", "connect": "Verbinden", "connect_desktop": "Über Desktop-Client verbinden", - "remote_viewer": "Remote-Viewer", + "remote_viewer": "Remote-Ansicht", "web_remote": "Web-Remote", - "details": "Details", + "details": "Gerätedetails", "edit": "Bearbeiten", "delete": "Löschen", "ban": "Sperren", @@ -438,14 +429,14 @@ "close": "Schließen", "clear": "Leeren", "ok": "OK", - "saved": "Erfolgreich gespeichert", - "back": "Zurueck", + "saved": "Gespeichert", + "back": "Zurück", "create": "Erstellen", "dismiss": "Verwerfen", "view_all": "Alle anzeigen" }, "time": { - "just_now": "Gerade eben", + "just_now": "gerade eben", "seconds_ago": "Vor {count} Sekunde(n)", "minutes_ago": "Vor {count} Minute(n)", "hours_ago": "Vor {count} Stunde(n)", @@ -459,8 +450,8 @@ "day_sun": "Sun" }, "users": { - "title": "Benutzerverwaltung", - "subtitle": "Konsolenbenutzer und Berechtigungen verwalten", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "add_user": "Benutzer hinzufügen", "edit_user": "Benutzer bearbeiten", "username": "Benutzername", @@ -474,23 +465,24 @@ "role_admin": "Administrator", "role_operator": "Operator", "role_viewer": "Betrachter", + "role_pro": "Pro (API only)", "role_hint": "Betrachter können nur Daten einsehen, Operatoren können Geräte verwalten, Administratoren haben vollen Zugriff", "created": "Erstellt", "last_login": "Letzte Anmeldung", "never": "Nie", "actions": "Aktionen", - "create": "Benutzer erstellen", + "create": "Erstellen", "edit": "Bearbeiten", "reset_password": "Passwort zurücksetzen", "new_password": "Neues Passwort", - "delete_title": "Benutzer löschen", - "delete_confirm": "Sind Sie sicher, dass Sie Benutzer {username} löschen möchten?", - "delete_success": "Benutzer erfolgreich gelöscht", + "delete_title": "Gerät löschen", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", + "delete_success": "Gerät erfolgreich gelöscht", "user_created": "Benutzer erfolgreich erstellt", "user_updated": "Benutzer erfolgreich aktualisiert", "password_reset_success": "Passwort erfolgreich zurückgesetzt", - "empty_title": "Keine Benutzer gefunden", - "empty_text": "Fügen Sie Benutzer hinzu, um den Konsolenzugriff zu verwalten", + "empty_title": "Keine Geräte gefunden", + "empty_text": "Keine Geräte entsprechen Ihren aktuellen Filtern", "fill_required": "Bitte füllen Sie alle Pflichtfelder aus", "invalid_username": "Benutzername muss 3-32 Zeichen lang sein, nur Buchstaben, Zahlen und Unterstriche", "username_exists": "Benutzername existiert bereits", @@ -502,7 +494,7 @@ "last_admin": "Der letzte Administrator kann nicht gelöscht werden", "admin_only": "Diese Funktion ist nur für Administratoren verfügbar", "password_required": "Passwort ist erforderlich", - "not_found": "Benutzer nicht gefunden", + "not_found": "Device not found", "strength_weak": "Schwach", "strength_medium": "Mittel", "strength_strong": "Stark", @@ -511,24 +503,23 @@ "tip_unique_accounts": "Erstellen Sie individuelle Konten für jede Person", "tip_viewer_role": "Verwenden Sie die Betrachter-Rolle für Benutzer, die nur Lesezugriff benötigen", "tip_operator_role": "Verwenden Sie die Operator-Rolle für Benutzer, die Geräte verwalten, aber keine Benutzer verwalten müssen", - "tip_audit_logs": "Überprüfen Sie regelmäßig die Audit-Protokolle auf verdächtige Aktivitäten", - "role_pro": "Pro (API only)" + "tip_audit_logs": "Überprüfen Sie regelmäßig die Audit-Protokolle auf verdächtige Aktivitäten" }, "folders": { - "title": "Ordner", - "create": "Ordner erstellen", - "edit": "Ordner bearbeiten", - "delete": "Ordner löschen", - "name": "Ordnername", + "title": "Dashboard", + "create": "Erstellen", + "edit": "Bearbeiten", + "delete": "Löschen", + "name": "Folder Name", "name_placeholder": "Ordnername eingeben", - "name_required": "Ordnername ist erforderlich", + "name_required": "Name ist erforderlich", "name_too_long": "Ordnername ist zu lang (max. 50 Zeichen)", "color": "Farbe", "icon": "Symbol", - "not_found": "Ordner nicht gefunden", - "delete_confirm": "Sind Sie sicher, dass Sie diesen Ordner löschen möchten? Geräte werden nicht mehr zugewiesen.", - "delete_success": "Ordner erfolgreich gelöscht", - "created": "Ordner erfolgreich erstellt", + "not_found": "Device not found", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", + "delete_success": "Gerät erfolgreich gelöscht", + "created": "Erstellt", "updated": "Ordner erfolgreich aktualisiert", "no_devices_selected": "Keine Geräte ausgewählt", "devices_moved": "Geräte erfolgreich verschoben", @@ -560,17 +551,17 @@ "language_change_failed": "Sprachwechsel fehlgeschlagen", "ban_failed": "Gerät konnte nicht gesperrt werden", "unban_failed": "Gerät konnte nicht entsperrt werden", - "delete_failed": "Gerät konnte nicht gelöscht werden", + "delete_failed": "Failed to delete device", "change_id_failed": "Geräte-ID konnte nicht geändert werden", "bulk_delete_failed": "Geräte konnten nicht gelöscht werden", "sync_failed": "Synchronisierung fehlgeschlagen", "error": "Fehler", - "not_found": "Nicht gefunden", + "not_found": "Device not found", "server_error": "Serverfehler", - "load_device_failed": "Geraet konnte nicht geladen werden" + "load_device_failed": "Gerätedetails konnten nicht geladen werden" }, "remote": { - "title": "Remote-Desktop", + "title": "Dashboard", "connecting": "Verbinde...", "waiting_password": "Warte auf Passwort", "authenticating": "Authentifiziere...", @@ -578,9 +569,9 @@ "disconnected": "Getrennt", "error": "Fehler", "status_idle": "Bereit", - "password_required": "Passwort erforderlich", + "password_required": "Passwort ist erforderlich", "enter_password_for": "Passwort für Gerät eingeben", - "password_placeholder": "Gerätepasswort", + "password_placeholder": "Passwort eingeben", "connect": "Verbinden", "reconnect": "Erneut verbinden", "disconnect": "Trennen", @@ -683,7 +674,7 @@ "import_theme": "Theme importieren", "reset_defaults": "Auf Standardwerte zurücksetzen", "save_branding": "Branding speichern", - "saved": "Branding erfolgreich gespeichert. Wird neu geladen...", + "saved": "Gespeichert", "exported": "Theme exportiert", "imported": "Theme erfolgreich importiert. Wird neu geladen...", "import_error": "Theme konnte nicht importiert werden. Ungültiges Dateiformat.", @@ -731,8 +722,8 @@ "section_live_metrics": "Live-Metriken", "section_current_usage": "Aktuelle Auslastung", "section_usage_history": "Auslastungsverlauf", - "os": "Betriebssystem", - "version": "Client-Version", + "os": "Operating System", + "version": "Version", "cpu_model": "CPU-Modell", "cpu_cores": "CPU-Kerne", "cpu_freq": "CPU-Frequenz", @@ -743,21 +734,21 @@ "device_groups": "Gruppen", "no_sysinfo": "Keine Hardwareinformationen verfügbar", "no_sysinfo_hint": "Systeminfo erscheint, nachdem das Gerät einen Sysinfo-Bericht gesendet hat", - "no_metrics": "Keine Metrikdaten verfügbar", + "no_metrics": "Keine Metriken verfügbar", "no_metrics_hint": "Metriken erscheinen, nachdem das Gerät Heartbeat-Berichte gesendet hat", "chart_oldest": "← Älteste", "chart_newest": "Neueste →" }, "inventory": { - "title": "Inventar", - "subtitle": "Hardware- und Softwareinventar der verwalteten Geräte", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "device_id": "Geräte-ID", "hostname": "Hostname", - "os": "Betriebssystem", - "cpu": "CPU", + "os": "Operating System", + "cpu": "Processor", "cpu_cores": "CPU-Kerne", "cpu_usage": "CPU-Auslastung", - "memory": "Arbeitsspeicher", + "memory": "Memory", "memory_total": "Gesamtspeicher", "memory_used": "Belegter Speicher", "memory_available": "Verfügbarer Speicher", @@ -765,14 +756,14 @@ "swap": "Swap", "disks": "Festplatten", "disk_count": "Festplattenanzahl", - "network": "Netzwerk", + "network": "Network Adapters", "network_interfaces": "Netzwerkschnittstellen", "software": "Software", "software_count": "Installierte Software", "system": "System", "kernel": "Kernel", "architecture": "Architektur", - "uptime": "Laufzeit", + "uptime": "Uptime", "frequency": "Frequenz", "physical_cores": "Physische Kerne", "logical_cores": "Logische Kerne", @@ -793,7 +784,7 @@ "total_uploads": "Gesamt", "last_seen": "Zuletzt gesehen", "collected_at": "Erfasst am", - "no_data": "Noch keine Inventardaten verfügbar. Klicken Sie auf \"Jetzt erfassen\", um Systeminformationen zu sammeln.", + "no_data": "No hardware data available", "no_devices": "Keine Geräte mit Inventardaten gefunden", "detail_title": "Geräte-Inventardetails", "telemetry": "Telemetrie", @@ -802,11 +793,11 @@ "refresh": "Aktualisieren" }, "tickets": { - "title": "Helpdesk", - "subtitle": "Support-Tickets und Problemverfolgung", - "create": "Neues Ticket", - "edit": "Ticket bearbeiten", - "delete": "Ticket löschen", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", + "create": "Erstellen", + "edit": "Bearbeiten", + "delete": "Löschen", "detail": "Ticketdetails", "ticket_id": "Ticket-ID", "ticket_title": "Titel", @@ -842,19 +833,19 @@ "internal_note": "Interne Notiz (für Endbenutzer nicht sichtbar)", "attachments": "Anhänge", "upload_attachment": "Anhang hochladen", - "download": "Herunterladen", + "download": "Schlüssel herunterladen", "connect_device": "Mit Gerät verbinden", "no_tickets": "Keine Tickets gefunden", "no_comments": "Noch keine Kommentare", "no_attachments": "Keine Anhänge", "title_required": "Titel ist erforderlich", - "delete_confirm": "Sind Sie sicher, dass Sie Ticket #{id} löschen möchten?", - "delete_success": "Ticket erfolgreich gelöscht", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", + "delete_success": "Gerät erfolgreich gelöscht", "created_success": "Ticket erfolgreich erstellt", "updated_success": "Ticket erfolgreich aktualisiert", "sla_overdue": "SLA überfällig", "filter_all": "Alle", - "search_placeholder": "Tickets suchen...", + "search_placeholder": "Geräte suchen...", "assign_to_me": "Mir zuweisen", "unassign": "Zuweisung aufheben", "stats_total": "Gesamt", @@ -864,8 +855,8 @@ "stats_closed": "Geschlossen" }, "activity": { - "title": "Aktivitätsüberwachung", - "subtitle": "Anwendungsnutzung und Leerlaufverfolgung", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "device": "Gerät", "hostname": "Hostname", "sessions": "Sitzungen", @@ -873,7 +864,7 @@ "active_time": "Aktive Zeit", "last_report": "Letzter Bericht", "top_apps": "Top-Anwendungen", - "app_name": "Anwendung", + "app_name": "Anwendungsname", "window_title": "Fenstertitel", "category": "Kategorie", "duration": "Dauer", @@ -883,7 +874,7 @@ "total_active": "Gesamtaktiv", "total_idle": "Gesamtleerlauf", "detail_count": "Detaileinträge", - "no_data": "Keine Aktivitätsdaten verfügbar", + "no_data": "No hardware data available", "no_sessions": "Keine Sitzungen aufgezeichnet", "filter_from": "Von", "filter_to": "Bis", @@ -900,28 +891,22 @@ "category_system": "System", "category_other": "Sonstiges", "summary": "Zusammenfassung", - "details": "Details", + "details": "Gerätedetails", "refresh": "Aktualisieren", "search": "Search devices...", "date_range": "Datumsbereich", - "device_id": "Device ID", + "device_id": "Geräte-ID", "session_start": "Sitzungsbeginn", "session_end": "Sitzungsende", "user": "Benutzer", "no_activity": "No activity recorded", "reported_at": "Reported At", - "detail": "Detail", - "no_apps": "No applications", - "status": "Status", - "export": "Exportieren", - "export_csv": "Als CSV exportieren", - "export_pdf": "Als PDF exportieren", - "today": "Heute", - "this_week": "Diese Woche" + "detail": "Ticketdetails", + "no_apps": "No applications" }, "automation": { - "title": "Automatisierung & Alerts", - "subtitle": "Alarmregeln, Remote-Befehle und SMTP-Konfiguration", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "rules": "Alarmregeln", "rules_subtitle": "Bedingungen definieren, die Benachrichtigungen auslösen", "alerts": "Alarmverlauf", @@ -983,19 +968,19 @@ "smtp_save": "Konfiguration speichern", "smtp_test_success": "Verbindung erfolgreich", "smtp_test_failed": "Verbindung fehlgeschlagen", - "no_rules": "Keine Alarmregeln konfiguriert", + "no_rules": "Keine Zuweisungsregeln.", "no_alerts": "Keine Alarme ausgelöst", "no_commands": "Keine Befehle gesendet", "id_payload_required": "Device ID and payload are required", "no_commands_sent": "Noch keine Befehle gesendet" }, "file_transfer": { - "title": "Dateiübertragung", + "title": "Dashboard", "transfers": "Übertragungen", "new_transfer": "Neue Übertragung", "upload": "Hochladen", - "download": "Herunterladen", - "direction": "Richtung", + "download": "Schlüssel herunterladen", + "direction": "Direction", "filename": "Dateiname", "file_size": "Dateigröße", "mime_type": "MIME-Typ", @@ -1003,7 +988,7 @@ "status": "Status", "device": "Gerät", "initiated_by": "Gestartet von", - "created_at": "Erstellt am", + "created_at": "Erstellt", "cancel": "Abbrechen", "cancel_confirm": "Sind Sie sicher, dass Sie diese Übertragung abbrechen möchten?", "download_file": "Datei herunterladen", @@ -1028,12 +1013,12 @@ "error_no_file": "Keine Datei ausgewählt" }, "network": { - "title": "Netzwerküberwachung", + "title": "Dashboard", "targets": "Überwachungsziele", "add_target": "Ziel hinzufügen", "edit_target": "Ziel bearbeiten", "delete_target": "Ziel löschen", - "delete_confirm": "Sind Sie sicher, dass Sie dieses Ziel löschen möchten?", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", "target_name": "Name", "host": "Host", "port": "Port", @@ -1050,7 +1035,7 @@ "status_down": "Nicht erreichbar", "status_unknown": "Unbekannt", "check_now": "Jetzt prüfen", - "history": "Prüfverlauf", + "history": "History", "stats": "Statistiken", "total_targets": "Ziele gesamt", "targets_up": "Erreichbare Ziele", @@ -1059,7 +1044,7 @@ "type_tcp": "TCP-Port", "type_http": "HTTP", "type_https": "HTTPS", - "tools": "Netzwerktools", + "tools": "Werkzeuge", "ping_tool": "Ping-Test", "tcp_tool": "TCP-Port-Prüfung", "http_tool": "HTTP-Prüfung", @@ -1081,7 +1066,7 @@ "latency": "Latency", "check_history": "Check History", "name_host_required": "Name and host are required", - "uptime": "Verfügbarkeit", + "uptime": "Uptime", "response_time": "Antwortzeit", "avg_response": "Average Response", "charts": "Diagramme", @@ -1090,22 +1075,22 @@ "uptime_percent": "Verfügbarkeit %", "last_24h": "Letzte 24 Stunden", "last_7d": "Letzte 7 Tage", - "last_30d": "Letzte 30 Tage", - "avg_response_time": "Durchschn. Antwortzeit" + "last_30d": "Letzte 30 Tage" }, "dataguard": { - "title": "DataGuard — DLP", - "policies": "DLP-Richtlinien", + "title": "Dashboard", + "policies": "Richtlinien", "add_policy": "Richtlinie hinzufügen", "edit_policy": "Richtlinie bearbeiten", "delete_policy": "Richtlinie löschen", - "delete_confirm": "Sind Sie sicher, dass Sie diese Richtlinie löschen möchten?", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", "policy_name": "Name", "policy_description": "Beschreibung", + "policy_desc": "Policy Description", "status": "Status", "enabled": "Aktiviert", "disabled": "Deaktiviert", - "rules": "Regeln", + "rules": "Alarmregeln", "add_rule": "Regel hinzufügen", "rule_type": "Regeltyp", "rule_type_usb": "USB-Gerät", @@ -1156,22 +1141,21 @@ "events_count": "Events", "search_events": "Search events...", "event_time": "Event Time", - "device": "Device", + "device": "Gerät", "policy": "Policy", - "detail": "Detail", + "detail": "Ticketdetails", "scope_help": "Comma-separated device IDs, or leave empty for all", - "scope_all": "All Devices", + "scope_all": "Alle Geräte", "active": "Active", "type_file_type": "File Type", + "type_usb": "USB", "type_clipboard": "Clipboard", "type_screen_share": "Screen Share", - "type_file_transfer": "File Transfer", - "policy_desc": "Policy Description", - "type_usb": "USB" + "type_file_transfer": "File Transfer" }, "reports": { - "title": "Berichte", - "generate": "Bericht generieren", + "title": "Dashboard", + "generate": "Konfiguration generieren", "generate_csv": "CSV exportieren", "report_type": "Berichtstyp", "type_devices": "Geräteübersicht", @@ -1181,14 +1165,14 @@ "type_network": "Netzwerkbericht", "type_inventory": "Inventarbericht", "type_alerts": "Alarmbericht", - "saved": "Gespeicherte Berichte", + "saved": "Gespeichert", "save_report": "Bericht speichern", "delete_report": "Bericht löschen", - "delete_confirm": "Sind Sie sicher, dass Sie diesen gespeicherten Bericht löschen möchten?", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", "no_saved": "Keine gespeicherten Berichte", "report_title": "Titel", "created_by": "Erstellt von", - "created_at": "Erstellt am", + "created_at": "Erstellt", "filters": "Filter", "date_from": "Von", "date_to": "Bis", @@ -1201,8 +1185,8 @@ "banned": "Gesperrt", "platform_distribution": "Plattformverteilung", "top_applications": "Top-Anwendungen", - "total_active": "Gesamtaktive Zeit", - "total_idle": "Gesamtleerlaufzeit", + "total_active": "Gesamtaktiv", + "total_idle": "Gesamtleerlauf", "dlp_stats": "DLP-Statistiken", "banned_devices": "Gesperrte Geräte", "audit_logs": "Audit-Protokolle", @@ -1225,19 +1209,19 @@ "type_alerts_desc": "Alarmregeln und Verlauf ausgelöster Alarme", "report_name": "Berichtsname", "format": "Format", - "save": "Bericht speichern", + "save": "Speichern", "preview": "Vorschau", - "download": "Herunterladen", + "download": "Schlüssel herunterladen", "delete_saved": "Bericht löschen", "raw_json": "Raw JSON" }, "tenants": { - "title": "Mehrmandantenfähigkeit", + "title": "Dashboard", "list": "Mandanten", "add_tenant": "Mandant hinzufügen", "edit_tenant": "Mandant bearbeiten", "delete_tenant": "Mandant löschen", - "delete_confirm": "Sind Sie sicher, dass Sie diesen Mandanten löschen möchten? Alle Geräte- und Benutzerzuweisungen werden entfernt.", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", "name": "Name", "slug": "Slug", "contact_name": "Kontaktname", @@ -1245,7 +1229,7 @@ "max_devices": "Max. Geräte", "max_devices_hint": "0 = unbegrenzt", "notes": "Notizen", - "active": "Aktiv", + "active": "Active", "inactive": "Inaktiv", "devices": "Geräte", "users": "Benutzer", @@ -1255,31 +1239,31 @@ "assign_user": "Benutzer zuweisen", "remove_user": "Benutzer entfernen", "no_tenants": "Keine Mandanten konfiguriert", - "no_devices": "Keine Geräte diesem Mandanten zugewiesen", + "no_devices": "Keine Geräte mit Inventardaten gefunden", "no_users": "Keine Benutzer diesem Mandanten zugewiesen", - "stats": "Mandantenstatistiken", + "stats": "Statistiken", "total_devices": "Geräte gesamt", "online_devices": "Online-Geräte", "total_users": "Benutzer gesamt", - "created_at": "Erstellt am", - "updated_at": "Aktualisiert am", + "created_at": "Erstellt", + "updated_at": "Aktualisiert", "slug_exists": "Mandanten-Slug existiert bereits", "total_tenants": "Mandanten gesamt", "active_tenants": "Aktive Mandanten", - "search": "Mandanten suchen...", + "search": "Search devices...", "create_tenant": "Mandant erstellen", - "detail": "Mandantendetails", + "detail": "Ticketdetails", "contact": "Kontakt", "enabled": "Aktiviert", - "disabled": "Disabled", + "disabled": "Deaktiviert", "max": "max", - "info": "Mandanteninformation", + "info": "Informationen", "status": "Status" }, "registrations": { - "title": "Geräteregistrierungen", - "subtitle": "Registrierungsanfragen von über LAN entdeckten Geräten verwalten", - "search_placeholder": "Nach Geräte-ID, Hostname oder IP suchen...", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", + "search_placeholder": "Geräte suchen...", "no_registrations": "Keine Registrierungsanfragen", "col_device_id": "Geräte-ID", "col_hostname": "Hostname", @@ -1301,7 +1285,7 @@ "reject_reason": "Grund (optional)", "reject_reason_placeholder": "Ablehnungsgrund eingeben...", "rejected_success": "Geräteregistrierung abgelehnt", - "delete_confirm": "Sind Sie sicher, dass Sie diesen Registrierungseintrag löschen möchten?", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", "deleted_success": "Registrierungseintrag gelöscht", "enrollment_title": "Device Enrollment", "enrollment_subtitle": "Pending enrollment requests from BetterDesk desktop clients", @@ -1318,7 +1302,7 @@ "enrollment_rejected_success": "Device enrollment rejected" }, "backup": { - "title": "Sicherung", + "title": "Dashboard", "desc": "Laden Sie eine vollständige Sicherung Ihrer Konsolenkonfiguration, Benutzer, Gruppen und Einstellungen herunter. Go-Server-Peer-Daten sind enthalten, wenn das BetterDesk-Backend aktiv ist.", "restore_title": "Wiederherstellen", "restore_desc": "Laden Sie eine zuvor heruntergeladene Sicherungsdatei hoch, um die Konsolenkonfiguration wiederherzustellen. Wählen Sie unten aus, welche Abschnitte wiederhergestellt werden sollen.", @@ -1328,10 +1312,10 @@ "stat_groups": "Gruppen", "stat_strategies": "Strategien", "stat_backend": "Backend", - "download": "Sicherung herunterladen", + "download": "Schlüssel herunterladen", "creating": "Sicherung wird erstellt...", - "download_success": "Sicherung erfolgreich heruntergeladen", - "upload": "Sicherung hochladen", + "download_success": "Schlüsseldatei heruntergeladen", + "upload": "Hochladen", "restore_confirm": "Sind Sie sicher, dass Sie aus dieser Sicherung wiederherstellen möchten? Ausgewählte Abschnitte werden überschrieben.", "restore_success": "Sicherung erfolgreich wiederhergestellt. Einige Änderungen erfordern möglicherein Neuladen der Seite.", "restored": "Wiederhergestellt", @@ -1345,7 +1329,7 @@ "opt_users": "Benutzerkonten", "opt_users_warning": "Destruktiv: Ersetzt ALLE Benutzerkonten durch Sicherungsdaten. Sie werden möglicherweise abgemeldet.", "no_file": "Keine Sicherungsdatei ausgewählt", - "invalid_json": "Ungültige Sicherungsdatei: kein gültiges JSON", + "invalid_json": "Ungültiges JSON-Format", "invalid_format": "Ungültige Sicherungsdatei: keine BetterDesk-Sicherung" }, "cdap": { @@ -1375,7 +1359,7 @@ "stat_connected": "Verbunden", "stat_port": "Port", "search_devices": "Geräte suchen...", - "no_devices": "Keine Geräte verbunden", + "no_devices": "Keine Geräte mit Inventardaten gefunden", "no_devices_desc": "Es sind derzeit keine CDAP-Geräte verbunden. Geräte erscheinen hier, sobald sie sich mit dem Gateway verbinden.", "gateway_disabled": "CDAP-Gateway deaktiviert", "gateway_disabled_desc": "Aktivieren Sie das CDAP-Gateway durch Setzen von CDAP_ENABLED=true in der Serverkonfiguration.", @@ -1389,16 +1373,16 @@ "type_iot": "IoT", "type_scada": "SCADA", "type_os_agent": "OS-Agent", - "type_network": "Netzwerk", + "type_network": "Netzwerkbericht", "type_camera": "Kamera", "type_custom": "Benutzerdefiniert", "active_alerts": "Aktive Warnungen", "alert_fired": "Warnung ausgelöst", "alert_cleared": "Warnung gelöscht", - "no_alerts": "Keine aktiven Warnungen", + "no_alerts": "Keine Alarme ausgelöst", "connect_terminal": "Terminal verbinden", "table_search": "Suchen...", - "just_now": "Gerade eben", + "just_now": "gerade eben", "terminal_connecting": "Verbinde mit Gerät...", "terminal_disconnected": "Getrennt", "terminal_error": "Terminal-Verbindung fehlgeschlagen", @@ -1408,7 +1392,7 @@ "no_linked_devices": "Keine verknüpften Geräte", "unlink_confirm": "Möchten Sie die Verknüpfung mit diesem Gerät wirklich aufheben?", "link_prompt": "Geben Sie die Peer-ID ein, die mit diesem Gerät verknüpft werden soll:", - "connect_desktop": "Desktop verbinden", + "connect_desktop": "Über Desktop-Client verbinden", "connect_video": "Stream verbinden", "connect_files": "Dateien durchsuchen", "connect_audio": "Audio verbinden", @@ -1437,19 +1421,23 @@ "wallpaper": "Hintergrundbild", "add_widget": "Widget hinzufügen", "remove_widget": "Widget entfernen", + "pop_out_widget": "Pop Out", + "pop_in_widget": "Pop In", "configure": "Konfigurieren", "search_widgets": "Widgets suchen...", "cat_monitoring": "Überwachung", "cat_devices": "Geräte", "cat_tools": "Werkzeuge", "cat_general": "Allgemein", - "notes_placeholder": "Notizen hier schreiben...", - "search_placeholder": "Geräte, Seiten, Einstellungen suchen...", + "notes_placeholder": "Notizen zu diesem Gerät hinzufügen...", + "search_placeholder": "Geräte suchen...", "search_pages": "Seiten", - "search_devices": "Geräte", + "search_devices": "Geräte suchen...", "search_no_results": "Keine Ergebnisse", - "exit_desktop": "Desktop verlassen", - "refresh": "Refresh", + "exit_desktop": "Desktop beenden", + "refresh": "Aktualisieren", + "fullscreen": "Vollbild", + "help": "Help", "widget_clock": "Clock", "widget_device_status": "Device Status", "widget_server_health": "Server Info", @@ -1519,6 +1507,8 @@ "wp_fit": "Anpassen", "wp_stretch": "Strecken", "wp_center": "Zentrieren", + "wp_unavailable": "Wallpaper images are not installed on this server.", + "wp_download_hint": "Place PNG images in the public/wallpapers/ directory to enable wallpaper selection.", "widget_calendar": "Calendar", "widget_process_monitor": "Process Monitor", "widget_disk_usage": "Disk Usage", @@ -1580,33 +1570,27 @@ "search_apps": "Search apps...", "edit_shortcuts": "Verknüpfungen bearbeiten", "widgets": "Widgets", - "theme": "Theme", - "pop_out_widget": "Pop Out", - "pop_in_widget": "Pop In", - "wp_unavailable": "Wallpaper images are not installed on this server.", - "wp_download_hint": "Place PNG images in the public/wallpapers/ directory to enable wallpaper selection.", - "fullscreen": "Fullscreen", - "help": "Help" + "theme": "Theme" }, "desktop_login": { "click_to_sign_in": "Click anywhere or press a key to sign in", - "username_placeholder": "Username", - "password_placeholder": "Password", + "username_placeholder": "Benutzername eingeben", + "password_placeholder": "Passwort eingeben", "sign_in": "Sign in", "verify": "Verify", - "totp_title": "Two-Factor Authentication", - "totp_subtitle": "Enter the 6-digit code from your authenticator app", + "totp_title": "Zwei-Faktor-Authentifizierung", + "totp_subtitle": "Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein", "back_to_login": "Back to login", - "fill_all_fields": "Please fill in all fields", - "invalid_credentials": "Invalid username or password", + "fill_all_fields": "Bitte füllen Sie alle Felder aus", + "invalid_credentials": "Ungültiger Benutzername oder Passwort.", "invalid_code": "Invalid verification code", "enter_6_digits": "Enter all 6 digits", "network_error": "Network error — check your connection", "session_expired": "Session expired. Please sign in again." }, "tokens": { - "title": "Geräte-Token", - "subtitle": "Registrierungstoken für automatische Gerätebereitstellung verwalten", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "enrollment_mode": "Registrierungsmodus", "mode_open": "Offen", "mode_open_desc": "Jedes Gerät kann sich ohne Token registrieren", @@ -1614,19 +1598,19 @@ "mode_managed_desc": "Geräte benötigen einen gültigen Token zur Registrierung", "mode_locked": "Gesperrt", "mode_locked_desc": "Keine neuen Geräteregistrierungen erlaubt", - "total": "Gesamte Token", - "active": "Aktiv", - "used": "Verwendet", + "total": "Gesamt", + "active": "Active", + "used": "Belegt", "revoked": "Widerrufen", - "search_placeholder": "Token suchen...", + "search_placeholder": "Geräte suchen...", "status_pending": "Ausstehend", "status_active": "Aktiv", "status_used": "Verwendet", "status_revoked": "Widerrufen", "status_expired": "Abgelaufen", "bulk_generate": "Massengeneration", - "create": "Token erstellen", - "edit": "Token bearbeiten", + "create": "Erstellen", + "edit": "Bearbeiten", "token": "Token", "name": "Name", "status": "Status", @@ -1635,7 +1619,7 @@ "expires": "Läuft ab", "created": "Erstellt", "actions": "Aktionen", - "name_placeholder": "z.B. Büro-PC-Charge", + "name_placeholder": "Ordnername eingeben", "max_uses": "Maximale Verwendungen", "max_uses_hint": "0 = unbegrenzt", "expires_in": "Läuft ab in", @@ -1645,16 +1629,16 @@ "expires_7d": "7 Tage", "expires_30d": "30 Tage", "note": "Notiz", - "note_placeholder": "Optionale Notiz zu diesem Token...", + "note_placeholder": "Notes about this device", "count": "Anzahl", "count_range": "Anzahl der zu generierenden Token (1-100)", "name_prefix": "Namenspräfix", - "generate": "Generieren", + "generate": "Konfiguration generieren", "token_created": "Token erstellt", "tokens_generated": "Token generiert", "copy_warning": "Kopieren Sie den Token jetzt. Er wird nicht erneut angezeigt.", "copy_token": "Token kopieren", - "copied": "Kopiert!", + "copied": "In die Zwischenablage kopiert", "revoke": "Widerrufen", "revoke_confirm": "Möchten Sie diesen Token wirklich widerrufen? Bereits registrierte Geräte sind nicht betroffen.", "revoked_success": "Token erfolgreich widerrufen", @@ -1670,7 +1654,7 @@ "prev": "Zurück", "skip": "Überspringen", "finish": "Fertig", - "close": "Close", + "close": "Schließen", "step_of": "{current} von {total}", "console_sidebar_title": "Navigationsleiste", "console_sidebar_text": "Zugriff auf alle Module von hier. Klicken Sie auf ein Symbol, um zu diesem Bereich zu navigieren. Die Seitenleiste passt sich Ihrer Bildschirmgröße an.", @@ -1720,16 +1704,16 @@ "settings_content_text": "Each section contains specific server and console settings. Changes are saved when you click Save.", "settings_complete_title": "Settings Overview", "settings_complete_text": "Check Security settings for 2FA, API keys and user management. Visit Appearance to customize the console look.", - "help": "Help & Tutorials", + "help": "Help", "tour_console": "Console Tour", "tour_desktop": "Desktop Mode Tour", "tour_devices": "Devices Tour", - "tour_settings": "Settings Tour", - "reset_all": "Reset All Tutorials", "tour_remote": "Remote Session Tour", "tour_organization": "Organization Setup", "tour_cdap": "CDAP Overview", "tour_chat": "Chat Basics", + "tour_settings": "Settings Tour", + "reset_all": "Reset All Tutorials", "remote_toolbar_title": "Remote Toolbar", "remote_toolbar_text": "Access display controls, clipboard sync, special keys, and quality settings from the toolbar. Toggle fullscreen with F11.", "remote_canvas_title": "Remote Display", @@ -1770,10 +1754,10 @@ "chat_complete_text": "Chat with operators and end users in real time. Create groups for team communication. All messages support read receipts." }, "help_request": { - "title": "Help Requests", - "subtitle": "Manage incoming help requests from desktop clients", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "new_request": "New Help Request", - "device": "Device", + "device": "Gerät", "hostname": "Hostname", "message": "Message", "status": "Status", @@ -1784,25 +1768,25 @@ "resolve": "Resolve", "no_requests": "No help requests", "notification": "Help request received from", - "stats_total": "Total", - "filter_all": "All" + "stats_total": "Gesamt", + "filter_all": "Alle" }, "organizations": { - "title": "Organizations", - "create": "Create Organization", - "edit": "Edit Organization", - "detail": "Organization Details", + "title": "Dashboard", + "create": "Erstellen", + "edit": "Bearbeiten", + "detail": "Ticketdetails", "name": "Name", - "slug": "Slug (URL-safe)", + "slug": "Slug", "logo_url": "Logo URL", - "users": "Users", - "devices": "Devices", + "users": "Benutzer", + "devices": "Geräte", "invitations": "Invitations", "settings": "Settings", - "add_user": "Add User", - "assign_device": "Assign Device", + "add_user": "Benutzer hinzufügen", + "assign_device": "Gerät zuweisen", "create_invitation": "Create Invitation", - "delete_confirm": "Delete this organization? This will remove all associated users, devices, and settings.", + "delete_confirm": "Sind Sie sicher, dass Sie Gerät {id} löschen möchten?", "no_orgs": "No organizations yet", "no_orgs_hint": "Create your first organization to start managing devices and users.", "connection_policy": "Connection Policy", @@ -1810,7 +1794,7 @@ "allow_clipboard": "Allow Clipboard", "max_session_duration": "Max Session Duration (min)", "role_owner": "Owner", - "role_admin": "Admin", + "role_admin": "Administrator", "role_operator": "Operator", "role_user": "User" }, @@ -1831,7 +1815,7 @@ "presence_offline": "Offline", "key_rotation": "Sicherheitsschlüssel erneuert", "new_message": "Neue Nachricht", - "title": "Chat", + "title": "Dashboard", "contacts": "Kontakte", "groups": "Gruppen", "no_contacts": "Noch keine Kontakte", @@ -1839,13 +1823,16 @@ "no_messages": "Noch keine Nachrichten", "no_results": "Keine Ergebnisse gefunden", "select_conversation": "Wählen Sie eine Unterhaltung, um zu chatten", + "select_conversation_hint": "Wähle eine Unterhaltung aus, um Nachrichten anzuzeigen", "type_message": "Nachricht eingeben...", "send": "Senden", "attach_file": "Datei anhängen", "emoji": "Emoji", + "info": "Informationen", "search_messages": "Nachrichten durchsuchen", "create_group": "Gruppe erstellen", "group_name": "Gruppenname", + "group_name_placeholder": "Gruppennamen eingeben", "group_members": "Mitglieder", "cancel": "Abbrechen", "create": "Erstellen", @@ -1854,10 +1841,7 @@ "yesterday": "Gestern", "react": "Reagieren", "my_presence": "Mein Status", - "search_placeholder": "Kontakte & Nachrichten durchsuchen", - "select_conversation_hint": "Waehlen Sie eine Konversation aus, um Nachrichten anzuzeigen", - "info": "Informationen", - "group_name_placeholder": "Gruppennamen eingeben" + "search_placeholder": "Geräte suchen..." }, "toast": { "device_connected": "Device connected", @@ -1874,7 +1858,7 @@ "dark": "Dark", "light": "Light", "auto": "System", - "title": "Theme" + "title": "Dashboard" }, "days": { "mon": "Mon", @@ -1886,8 +1870,8 @@ "sun": "Sun" }, "toolkit": { - "title": "Toolkit", - "subtitle": "Admin utilities and diagnostic tools", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "cat_network": "Network", "cat_crypto": "Crypto", "cat_encoding": "Encoding", @@ -1896,11 +1880,11 @@ "port": "Port", "domain": "Domain", "run": "Run", - "generate": "Generate", + "generate": "Konfiguration generieren", "encode": "Encode", "decode": "Decode", - "send": "Send", - "refresh": "Refresh", + "send": "Senden", + "refresh": "Aktualisieren", "algorithm": "Algorithm", "input_text": "Input Text", "enter_text": "Enter text...", @@ -1910,7 +1894,7 @@ "lines": "Lines", "log_console": "Console", "log_go": "Go Server", - "mac_address": "MAC Address", + "mac_address": "MAC-Adresse", "broadcast": "Broadcast", "ping_title": "Ping", "ping_desc": "Check host reachability and latency", @@ -1933,7 +1917,7 @@ "hash_title": "Hash Generator", "hash_desc": "Generate cryptographic hashes", "password_title": "Password Generator", - "password_desc": "Generate a secure random password", + "password_desc": "Aktualisieren Sie Ihr Kontopasswort", "jwt_title": "JWT Decoder", "jwt_desc": "Decode and inspect JSON Web Tokens", "jwt_token": "JWT Token", @@ -1951,7 +1935,7 @@ "docker_desc": "View running Docker containers", "logs_title": "Log Viewer", "logs_desc": "View recent log output", - "ip_address": "IP", + "ip_address": "IP-Adresse", "latency": "Latency", "ttl": "TTL", "status": "Status", @@ -1974,20 +1958,20 @@ "strong": "Strong", "weak": "Weak", "expiry": "Expiry", - "expired": "Expired", + "expired": "Abgelaufen", "valid": "Valid", "process_name": "Name", "db_type": "Type", "db_size": "Size", "table_name": "Table", "row_count": "Rows", - "no_data": "No data available", + "no_data": "No hardware data available", "no_docker": "No Docker containers found or Docker not available", "no_logs": "No log lines available" }, "policies": { - "title": "Organisationsrichtlinien", - "subtitle": "Sicherheits-, Verbindungs- und Funktionsrichtlinien für Organisationen verwalten", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "select_org": "Organisation", "select_org_placeholder": "Organisation auswählen...", "select_org_first": "Wählen Sie eine Organisation, um das Richtlinien-Audit-Log anzuzeigen.", @@ -2006,8 +1990,8 @@ "wallpaper_hide_always": "Immer ausblenden", "features_title": "Funktionsrichtlinie", "features_desc": "Bestimmte Funktionen für Geräte aktivieren oder deaktivieren", - "allow_file_transfer": "Dateiübertragung erlauben", - "allow_clipboard": "Zwischenablage-Synchronisierung erlauben", + "allow_file_transfer": "Allow File Transfer", + "allow_clipboard": "Allow Clipboard", "allow_audio": "Audio-Streaming erlauben", "allow_recording": "Sitzungsaufzeichnung erlauben", "security_title": "Sicherheitsrichtlinie", @@ -2016,7 +2000,7 @@ "password_min_length": "Minimale Passwortlänge", "password_require_special": "Sonderzeichen erforderlich", "password_max_age": "Max. Passwortalter (Tage, 0=nie)", - "allowed_operators": "Erlaubte Operatorrollen (kommagetrennt)", + "allowed_operators": "Allowed Operators", "network_title": "Netzwerkrichtlinie", "network_desc": "Relay-Server und Direktverbindungen steuern", "block_direct_p2p": "Direktes P2P blockieren (Relay erzwingen)", @@ -2027,14 +2011,14 @@ "auto_update": "Auto-Update aktivieren", "update_channel": "Update-Kanal", "audit_title": "Richtlinienänderungen", - "audit_desc": "Aktuelle Richtlinienänderungshistorie", + "audit_desc": "Aktuelle Konsolenaktivität", "no_audit": "Keine Richtlinienänderungen aufgezeichnet." }, "attestation": { - "title": "Geräte-Attestierung", - "subtitle": "Geräteidentitätsprüfung und Hardware-Fingerabdrücke überwachen", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "verified": "Verifiziert", - "pending": "Ausstehend", + "pending": "Pending", "failed": "Fehlgeschlagen", "device_list": "Attestierungseinträge", "device_list_desc": "Hardware-Fingerabdrücke und Identitätsverifizierungsstatus", @@ -2047,7 +2031,7 @@ "no_records": "Keine Attestierungseinträge gefunden." }, "fleet": { - "title": "Flottenmanagement", + "title": "Dashboard", "tab_resources": "Ressourcen", "tab_tasks": "Aufgaben", "tab_builder": "Workflow-Builder", @@ -2119,6 +2103,23 @@ "builder_transforms": "Transformationen", "builder_properties": "Eigenschaften", "builder_no_selection": "Wählen Sie einen Knoten, um seine Eigenschaften zu bearbeiten.", + "builder_node_trigger_manual": "Manual Trigger", + "builder_node_trigger_schedule": "Schedule", + "builder_node_trigger_event": "Event Trigger", + "builder_node_cond_os": "OS Check", + "builder_node_cond_threshold": "Threshold", + "builder_node_cond_time_window": "Time Window", + "builder_node_action_script": "Run Script", + "builder_node_action_install": "Install SW", + "builder_node_action_restart": "Restart Svc", + "builder_node_action_file_deploy": "Deploy File", + "builder_node_action_message": "Send Message", + "builder_node_result_log": "Log Output", + "builder_node_result_alert": "Send Alert", + "builder_node_result_chain": "Chain Workflow", + "builder_node_transform_parse": "Parse JSON", + "builder_node_transform_filter": "Filter", + "builder_node_transform_delay": "Delay", "workflow_name": "Workflow-Name:", "comp_title": "Software-Compliance", "comp_compliant": "Konform", @@ -2143,24 +2144,7 @@ "delete": "Löschen", "actions": "Aktionen", "all_orgs": "Alle Organisationen", - "builder_node_trigger_manual": "Manual Trigger", - "builder_node_trigger_schedule": "Schedule", - "builder_node_trigger_event": "Event Trigger", - "builder_node_cond_os": "OS Check", - "builder_node_cond_threshold": "Threshold", - "builder_node_cond_time_window": "Time Window", - "builder_node_action_script": "Run Script", - "builder_node_action_install": "Install SW", - "builder_node_action_restart": "Restart Svc", - "builder_node_action_file_deploy": "Deploy File", - "builder_node_action_message": "Send Message", - "builder_node_result_log": "Log Output", - "builder_node_result_alert": "Send Alert", - "builder_node_result_chain": "Chain Workflow", - "builder_node_transform_parse": "Parse JSON", - "builder_node_transform_filter": "Filter", - "builder_node_transform_delay": "Delay", - "select_org_placeholder": "Select organization…", + "select_org_placeholder": "Organisation auswählen...", "all_types": "All Types", "type_printer": "Printer", "type_network_drive": "Network Drive", @@ -2174,22 +2158,22 @@ "col_target": "Target", "col_scope": "Scope", "col_status": "Status", - "col_actions": "Actions", + "col_actions": "Aktionen", "no_resources": "No resources found.", "active": "Active", - "inactive": "Inactive", + "inactive": "Inaktiv", "address": "Address / Path", "scope_org": "Organization", "scope_group": "Group", - "scope_device": "Device", + "scope_device": "Zielgerät", "scope_value": "Scope Value", "scope_value_hint": "Organization, group, or device ID", "confirm_delete": "Are you sure you want to delete this item?", "all_statuses": "All Statuses", - "status_pending": "Pending", - "status_running": "Running", + "status_pending": "Ausstehend", + "status_running": "Läuft", "status_success": "Success", - "status_failed": "Failed", + "status_failed": "Fehlgeschlagen", "search_tasks": "Search tasks…", "create_task": "Create Task", "edit_task": "Edit Task", @@ -2209,12 +2193,12 @@ "script_content": "Script / Command", "retry_count": "Retries", "timeout_sec": "Timeout (s)", - "loading": "Loading", + "loading": "Laden...", "no_output": "No output available", "error_loading": "Error loading data", "select_workflow": "Select workflow…", "new_workflow": "New", - "export": "Export", + "export": "Exportieren", "execute": "Execute", "dry_run": "Dry Run", "node_triggers": "Triggers", @@ -2246,7 +2230,7 @@ "non_compliant": "Warning", "critical_issues": "Critical", "avg_score": "Avg. Score", - "col_device": "Device", + "col_device": "Geräte-ID", "col_hostname": "Hostname", "col_os": "OS", "col_score": "Score", @@ -2256,7 +2240,7 @@ "confirm_remediate": "Run auto-remediation on this device?" }, "scaling": { - "title": "Skalierung & Relay-Verwaltung", + "title": "Dashboard", "tab_overview": "Übersicht", "tab_relays": "Relay-Knoten", "tab_rules": "Zuweisungsregeln", @@ -2293,6 +2277,7 @@ "confirm_delete_relay": "Möchten Sie diesen Relay-Knoten wirklich löschen?", "confirm_delete_rule": "Möchten Sie diese Zuweisungsregel wirklich löschen?", "rules_hint": "Zuweisungsregeln bestimmen, welcher Relay-Server bestimmte Gerätegruppen bedient. Regeln werden nach Priorität ausgewertet (niedrigste zuerst).", + "no_rules": "Keine Zuweisungsregeln.", "rule_add": "Regel hinzufügen", "rule_edit": "Regel bearbeiten", "rule_match_type": "Übereinstimmungstyp", @@ -2331,11 +2316,10 @@ "cancel": "Abbrechen", "edit": "Bearbeiten", "delete": "Löschen", - "close": "Schließen", - "no_rules": "Keine Zuweisungsregeln." + "close": "Schließen" }, "cross_platform": { - "title": "Plattformübergreifende Kompatibilität", + "title": "Dashboard", "tab_matrix": "Kompatibilitätsmatrix", "tab_distribution": "Verteilung", "tab_protocols": "Protokolle", @@ -2354,7 +2338,7 @@ "unique_platforms": "Plattformen", "unique_archs": "Architekturen", "unique_versions": "Client-Versionen", - "no_devices": "Noch keine Geräte registriert.", + "no_devices": "Keine Geräte mit Inventardaten gefunden", "protocols_hint": "Protokoll-Fähigkeitsverhandlung stellt sicher, dass jeder Client nur die unterstützten Funktionen erhält. Der Server passt sein Verhalten basierend auf gemeldeten Fähigkeiten an.", "capability_negotiation": "Fähigkeitsverhandlung", "codec_support": "Codec-Unterstützung (Online-Geräte)", @@ -2414,9 +2398,9 @@ "limit_chrome_input": "Eingabeinjektion außerhalb des Crostini-Containers nicht unterstützt." }, "security_audit": { - "title": "Security Audit", + "title": "Dashboard", "tab_overview": "Übersicht", - "tab_events": "Audit-Ereignisse", + "tab_events": "Events", "tab_hardening": "Härtung", "tab_vulnerabilities": "Schwachstellen", "security_score": "Sicherheitsbewertung", @@ -2446,17 +2430,17 @@ "col_time": "Zeit", "col_action": "Aktion", "col_actor": "Akteur", - "col_target": "Ziel", + "col_target": "Target", "col_ip": "IP-Adresse", "col_details": "Details", - "no_events": "Keine Audit-Ereignisse gefunden.", + "no_events": "Keine DLP-Ereignisse aufgezeichnet", "hardening_hint": "Sicherheitshärtungsprioriäten für Ihre BetterDesk-Bereitstellung. Nach Schweregrad sortiert.", "no_hardening": "Keine Härtungselemente verfügbar.", "vuln_hint": "Ergebnisse des Abhängigkeits-Schwachstellenscans. Führen Sie npm audit regelmäßig aus.", "no_vulns": "Keine Schwachstellen gefunden. Ihre Abhängigkeiten sind sicher." }, "languages": { - "title": "Language Management", + "title": "Dashboard", "total_languages": "Total Languages", "fully_translated": "Fully Translated", "needs_review": "Needs Review", @@ -2466,7 +2450,7 @@ "badge_review": "Needs Review", "badge_complete": "Complete", "coverage": "coverage", - "keys": "keys", + "keys": "Schlüssel", "missing": "missing", "extra": "extra", "view_missing": "View Missing", @@ -2481,8 +2465,8 @@ "no_fix_needed": "No missing keys to fix." }, "resource_control": { - "title": "Resource Control", - "tab_overview": "Overview", + "title": "Dashboard", + "tab_overview": "Übersicht", "tab_usb": "USB Control", "tab_optical": "Optical Drives", "tab_monitors": "Monitors", @@ -2490,17 +2474,17 @@ "tab_quotas": "Resource Quotas", "compliance_by_category": "Compliance by Category", "device_compliance": "Device Compliance", - "search_devices": "Search devices...", - "col_device": "Device", - "col_platform": "Platform", + "search_devices": "Geräte suchen...", + "col_device": "Geräte-ID", + "col_platform": "Plattform", "col_status": "Status", "col_usb": "USB", "col_optical": "Optical", "col_monitors": "Monitors", "col_disks": "Disks", "col_quotas": "Quotas", - "col_actions": "Actions", - "stat_total_devices": "Total Devices", + "col_actions": "Aktionen", + "stat_total_devices": "Geräte gesamt", "stat_compliant": "Compliant", "stat_partial": "Partial", "stat_noncompliant": "Non-Compliant", @@ -2510,7 +2494,7 @@ "badge_partial": "Partial", "badge_noncompliant": "Fail", "btn_configure": "Configure", - "no_devices": "No devices found", + "no_devices": "Keine Geräte mit Inventardaten gefunden", "usb_title": "USB Port Control", "usb_hint": "Control USB storage device access for the selected device or organization-wide default policy.", "usb_storage_policy": "USB Storage Policy", @@ -2552,11 +2536,12 @@ "policy_any": "Any" }, "sdk_studio": { - "title": "SDK Studio", - "subtitle": "Visual flow editor for CDAP bridges", + "title": "Dashboard", + "subtitle": "Übersicht Ihres RustDesk-Servers", "new_flow": "New Flow", "open_flow": "Open Flow", "save_flow": "Save Flow", + "import_flow": "Import Flow", "run_flow": "Run", "debug": "Debug", "deploy": "Deploy", @@ -2573,7 +2558,7 @@ "cat_sources": "Sources", "cat_processing": "Processing", "cat_outputs": "Outputs", - "empty_title": "Start Building", + "empty_title": "Keine Geräte gefunden", "empty_desc": "Drag nodes from the palette to start building a flow", "browse_templates": "Browse Templates", "inspector": "Inspector", @@ -2581,7 +2566,7 @@ "console": "Console", "clear_console": "Clear", "console_ready": "Studio ready", - "label": "Label", + "label": "Status", "configuration": "Configuration", "connections": "Connections", "inputs": "Inputs", @@ -2593,9 +2578,9 @@ "status_deployed": "Deployed", "flow_name": "Flow Name", "flow_desc": "Description", - "loading": "Loading...", + "loading": "Laden...", "no_flows": "No saved flows yet", - "confirm_delete": "Are you sure you want to delete this flow?", + "confirm_delete": "Are you sure you want to delete this item?", "templates": "Templates", "node_modbus_tcp": "Modbus TCP", "node_modbus_rtu": "Modbus RTU", @@ -2622,18 +2607,17 @@ "node_mqtt_publish": "MQTT Publish", "node_database_write": "Database Write", "node_email": "Email", - "node_modbus_write": "Modbus Write", - "import_flow": "Import Flow" + "node_modbus_write": "Modbus Write" }, "updates": { "tab_title": "Updates", - "title": "Software Updates", - "desc": "Check for new versions and update the BetterDesk console from GitHub", + "title": "Dashboard", + "desc": "Laden Sie eine vollständige Sicherung Ihrer Konsolenkonfiguration, Benutzer, Gruppen und Einstellungen herunter. Go-Server-Peer-Daten sind enthalten, wenn das BetterDesk-Backend aktiv ist.", "current_version": "Installed version", "latest_version": "Latest version", "status": "Status", - "check_now": "Check for updates", - "checking": "Checking…", + "check_now": "Jetzt prüfen", + "checking": "Prüfe...", "up_to_date": "Up to date", "update_available": "Update available", "changelog": "Release Notes", @@ -2656,8 +2640,8 @@ "backups_title": "Update Backups", "backups_desc": "Pre-update backups created automatically before each update", "no_backups": "No update backups found", - "restore": "Restore", - "restore_confirm": "Are you sure you want to restore from this backup? Changed files will be overwritten.", - "restore_success": "Backup restored successfully. Console is restarting…" + "restore": "Wiederherstellen", + "restore_confirm": "Sind Sie sicher, dass Sie aus dieser Sicherung wiederherstellen möchten? Ausgewählte Abschnitte werden überschrieben.", + "restore_success": "Sicherung erfolgreich wiederhergestellt. Einige Änderungen erfordern möglicherein Neuladen der Seite." } } diff --git a/web-nodejs/lang/es.json b/web-nodejs/lang/es.json index 36e280cf..0c216d74 100644 --- a/web-nodejs/lang/es.json +++ b/web-nodejs/lang/es.json @@ -9,51 +9,52 @@ "loading": "Cargando...", "confirm": "Confirmar", "alert": "Alerta", - "back": "Volver", - "edit": "Editar" + "prompt": "Enter value", + "copied": "Copied!", "save": "Guardar", "saved": "Guardado", "error": "Error", "success": "Éxito", "warning": "Advertencia", "info": "Información", - "login": "Iniciar sesión" + "all": "All", "cancel": "Cancelar", "delete": "Eliminar", "actions": "Acciones", "close": "Cerrar", "required": "Requerido", - "passwords_mismatch": "Las contraseñas no coinciden" + "name_required": "El nombre de la carpeta es obligatorio", "active": "Activo", "inactive": "Inactivo", "invalid_json": "Formato JSON inválido", "field_required": "Este campo es requerido", - "back": "Back", - "edit": "Edit" + "back": "Volver", + "edit": "Editar" }, - "greeting_morning": "Buenos días, {name}", - "greeting_afternoon": "Buenas tardes, {name}", - "greeting_evening": "Buenas noches, {name}", - "greeting_night": "Buenas noches, {name}", - "health_overview": "Resumen de estado", - "devices_online": "Dispositivos en línea", - "active_alerts": "Alertas activas", - "recent_connections": "Dispositivos totales", - "server_uptime": "Tiempo de actividad del servidor", - "activity_feed": "Actividad reciente", - "no_recent_activity": "No hay actividad reciente", - "just_now": "ahora mismo", - "ago": "hace", + "nav": { + "main": "Main", + "tools": "Herramientas de red", + "system": "Sistema", + "dashboard": "Dashboard", + "devices": "Dispositivos", + "keys": "keys", + "generator": "Generator", + "settings": "Settings", + "users": "Usuarios", + "inventory": "Inventory", + "tickets": "Tickets", + "help_requests": "Help Requests", "activity": "Actividad", "automation": "Automatización", "file_transfer": "Transferencia de archivos", "network": "Red", "dataguard": "DataGuard", "reports": "Informes", - "remote_viewer": "Visor remoto", + "tenants": "Tenants", "registrations": "Registros", "management": "Management", "toggle_sidebar": "Alternar barra lateral", + "toggle_theme": "Cambiar tema", "cdap": "CDAP", "fleet": "Flota", "scaling": "Escalado", @@ -67,13 +68,10 @@ "security_audit": "Auditoría de Seguridad", "languages": "Idiomas", "resource_control": "Control de recursos", + "sdk_studio": "SDK Studio", "chat": "Chat", "help": "Help", "expand_sidebar": "Expand sidebar", - "clients": "Clientes", - "exit_desktop": "Salir del escritorio", - "toggle_theme": "Cambiar tema", - "sdk_studio": "SDK Studio", "login": "Iniciar sesión" }, "auth": { @@ -88,6 +86,7 @@ "remember_me": "Recordarme", "login_failed": "Error de inicio de sesión. Verifique sus credenciales.", "invalid_credentials": "Nombre de usuario o contraseña inválidos.", + "pro_only_account": "Esta cuenta es solo para el cliente de escritorio RustDesk. Use la aplicación RustDesk para iniciar sesión.", "fill_all_fields": "Por favor, rellene todos los campos", "logout_confirm": "¿Está seguro de que desea cerrar sesión?", "change_password": "Cambiar contraseña", @@ -105,7 +104,6 @@ "totp_enter_recovery": "Introduzca un código de recuperación", "totp_session_expired": "Sesión expirada. Inicie sesión de nuevo.", "totp_already_enabled": "La autenticación de dos factores ya está activada", - "pro_only_account": "Esta cuenta es solo para el cliente de escritorio RustDesk. Use la aplicación RustDesk para iniciar sesión.", "passwords_mismatch": "Las contraseñas no coinciden" }, "dashboard": { @@ -145,7 +143,7 @@ "tip_tutorials": "Haga clic en el botón de ayuda de la esquina inferior derecha para ver tutoriales interactivos." }, "devices": { - "title": "Dispositivos", + "title": "Panel", "id": "ID", "hostname": "Nombre de host", "username": "Nombre de usuario", @@ -153,11 +151,11 @@ "version": "Versión", "ip_address": "Dirección IP", "note": "Nota", - "saved": "Guardado correctamente", - "back": "Volver", - "create": "Crear", - "dismiss": "Descartar", - "view_all": "Ver todo" + "last_seen": "Visto por última vez", + "last_online": "Last Online", + "first_seen": "First Seen", + "created": "Creado", + "status": "Estado", "ban_reason": "Motivo del bloqueo", "actions": "Acciones", "search_placeholder": "Buscar dispositivos...", @@ -165,17 +163,17 @@ "filter_online": "En línea", "filter_offline": "Sin conexión", "filter_banned": "Bloqueados", - "not_found": "No encontrado", - "server_error": "Error del servidor", - "load_device_failed": "No se pudieron cargar los detalles del dispositivo" + "selected": "selected", + "showing": "Showing", + "of": "of", "sync_status": "Estado de sincronización", "sync_success": "Estado sincronizado correctamente", "empty_title": "No se encontraron dispositivos", "empty_text": "Ningún dispositivo coincide con sus filtros actuales", "edit_title": "Detalles del dispositivo", - "select_conversation_hint": "Selecciona una conversación para ver los mensajes", - "info": "Información", - "group_name_placeholder": "Introduce el nombre del grupo" + "delete_title": "Eliminar usuario", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", + "delete_warning": "You are about to permanently delete this device:", "delete_permanent": "Esta acción no se puede deshacer. Todos los datos asociados a este dispositivo se eliminarán permanentemente de la base de datos.", "delete_success": "Dispositivo eliminado correctamente", "revoke_option": "Revocar dispositivo", @@ -183,7 +181,7 @@ "revoke_success": "Dispositivo revocado correctamente", "details": "Detalles del dispositivo", "ban_title": "Bloquear dispositivo", - "no_rules": "No hay reglas de asignación." + "ban_confirm": "Are you sure you want to ban device {id}?", "ban_success": "Dispositivo bloqueado correctamente", "unban_title": "Desbloquear dispositivo", "unban_confirm": "¿Está seguro de que desea desbloquear el dispositivo {id}?", @@ -200,7 +198,7 @@ "bulk_delete_success": "{count} dispositivos eliminados correctamente", "columns": "Columnas", "toggle_columns": "Alternar columnas visibles", - "not_found": "Device not found", + "not_found": "No encontrado", "delete_failed": "Failed to delete device", "change_id_failed": "Failed to change device ID", "invalid_id": "Invalid device ID (6-16 characters required)", @@ -235,42 +233,35 @@ "operators_hint": "Comma-separated usernames. Leave empty to allow all operators.", "last_updated_by": "Last updated by", "access_policy_saved": "Access policy saved", + "display_name": "Display Name", + "display_name_placeholder": "Custom name (overrides hostname)", + "note_placeholder": "Notes about this device", "tabs": { "overview": "Overview", "hardware": "Hardware", "metrics": "Métricas", "connections": "Connections", "audit": "Audit", - "info": "Info", - "history": "History", - "details": "Detalles", - "notes": "Notas" + "info": "Información", + "history": "History" }, "hardware": { "cpu": "Processor", "memory": "Memory", "disk": "Disk", "os": "Operating System", - "hostname": "Hostname", + "hostname": "Nombre de host", "uptime": "Uptime", "load_avg": "Load Average", - "network": "Network Adapters", + "network": "Red", "no_data": "No hardware data available", - "title": "Hardware Information", + "title": "Panel", "gpu": "Graphics Card" - }, - "connect_remote": "Conectar remoto", - "copy_id": "Copiar ID", - "live_metrics": "Métricas en vivo", - "history_charts": "Gráficos de historial", - "no_metrics": "No hay métricas disponibles", - "display_name": "Display Name", - "display_name_placeholder": "Custom name (overrides hostname)", - "note_placeholder": "Notes about this device" + } }, "keys": { - "title": "Claves del servidor", - "subtitle": "Clave pública y configuración para clientes RustDesk", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "public_key": "Clave pública", "qr_code": "Código QR", "server_info": "Información del servidor", @@ -281,12 +272,12 @@ "no_key_to_copy": "No hay clave para copiar", "no_qr": "Código QR no disponible", "download_success": "Archivo de clave descargado", - "not_found": "Key not found", + "not_found": "No encontrado", "api_not_found": "API key not found" }, "settings": { - "title": "Configuración", - "subtitle": "Configuración de la consola y ajustes de cuenta", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "tab_general": "General", "tab_server": "Servidor", "tab_branding": "Marca", @@ -295,7 +286,7 @@ "change_password": "Cambiar contraseña", "password_desc": "Actualizar la contraseña de su cuenta", "current_password": "Contraseña actual", - "new_password": "Nueva contraseña", + "new_password": "New password (leave empty to keep current)", "confirm_password": "Confirmar contraseña", "save_password": "Actualizar contraseña", "password_changed": "Contraseña cambiada correctamente", @@ -310,7 +301,7 @@ "server_info": "Información del servidor", "version": "Versión", "database": "Base de datos", - "uptime": "Tiempo de actividad", + "uptime": "Uptime", "audit_log": "Registro de auditoría", "audit_desc": "Actividad reciente de la consola", "no_audit_logs": "No se encontraron registros de auditoría", @@ -357,7 +348,7 @@ "totp_step2": "Escanee el código QR a continuación", "totp_step3": "Introduzca el código de 6 dígitos para verificar", "totp_manual_key": "Clave manual", - "totp_enter_code": "Introduzca el código de verificación", + "totp_enter_code": "Introduzca un código de 6 dígitos", "totp_verify_enable": "Verificar y activar", "totp_enabled_success": "¡Autenticación de dos factores activada!", "totp_recovery_warning": "Guarde estos códigos de recuperación en un lugar seguro. Cada código solo se puede usar una vez. Si pierde el acceso a su aplicación de autenticación, puede usar estos códigos para iniciar sesión.", @@ -369,7 +360,7 @@ "time": "Hora", "user": "Usuario", "action": "Acción", - "details": "Detalles", + "details": "Detalles del dispositivo", "action_login": "Login", "action_login_failed": "Login Failed", "action_logout": "Logout", @@ -385,8 +376,8 @@ "action_device_delete": "Device Deleted" }, "generator": { - "title": "Generador de configuración de cliente", - "subtitle": "Generar configuración para clientes RustDesk", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "config_options": "Opciones de configuración", "server_address": "Dirección del servidor", "server_address_hint": "Dominio o dirección IP de su servidor", @@ -413,7 +404,7 @@ "status": { "online": "En línea", "offline": "Sin conexión", - "banned": "Bloqueado", + "banned": "Bloqueados", "running": "En ejecución", "stopped": "Detenido", "unknown": "Desconocido", @@ -427,7 +418,7 @@ "connect_desktop": "Conectar vía cliente de escritorio", "remote_viewer": "Visor remoto", "web_remote": "Escritorio remoto web", - "details": "Detalles", + "details": "Detalles del dispositivo", "edit": "Editar", "delete": "Eliminar", "ban": "Bloquear", @@ -438,14 +429,14 @@ "close": "Cerrar", "clear": "Limpiar", "ok": "OK", - "saved": "Guardado correctamente", + "saved": "Guardado", "back": "Volver", "create": "Crear", "dismiss": "Descartar", "view_all": "Ver todo" }, "time": { - "just_now": "Ahora mismo", + "just_now": "ahora mismo", "seconds_ago": "Hace {count} segundo(s)", "minutes_ago": "Hace {count} minuto(s)", "hours_ago": "Hace {count} hora(s)", @@ -459,8 +450,8 @@ "day_sun": "Sun" }, "users": { - "title": "Gestión de usuarios", - "subtitle": "Gestionar usuarios y permisos de la consola", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "add_user": "Añadir usuario", "edit_user": "Editar usuario", "username": "Nombre de usuario", @@ -474,23 +465,24 @@ "role_admin": "Administrador", "role_operator": "Operador", "role_viewer": "Observador", + "role_pro": "Pro (API only)", "role_hint": "Los observadores solo pueden ver datos, los operadores pueden gestionar dispositivos, los administradores tienen acceso completo", "created": "Creado", "last_login": "Último inicio de sesión", "never": "Nunca", "actions": "Acciones", - "create": "Crear usuario", + "create": "Crear", "edit": "Editar", "reset_password": "Restablecer contraseña", - "new_password": "Nueva contraseña", + "new_password": "New password (leave empty to keep current)", "delete_title": "Eliminar usuario", "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", - "delete_success": "Usuario eliminado correctamente", + "delete_success": "Dispositivo eliminado correctamente", "user_created": "Usuario creado correctamente", "user_updated": "Usuario actualizado correctamente", "password_reset_success": "Contraseña restablecida correctamente", - "empty_title": "No se encontraron usuarios", - "empty_text": "Añada usuarios para gestionar el acceso a la consola", + "empty_title": "No se encontraron dispositivos", + "empty_text": "Ningún dispositivo coincide con sus filtros actuales", "fill_required": "Por favor, rellene todos los campos obligatorios", "invalid_username": "El nombre de usuario debe tener 3-32 caracteres, solo letras, números y guiones bajos", "username_exists": "El nombre de usuario ya existe", @@ -502,7 +494,7 @@ "last_admin": "No se puede eliminar el último administrador", "admin_only": "Esta función solo está disponible para administradores", "password_required": "La contraseña es obligatoria", - "not_found": "Usuario no encontrado", + "not_found": "No encontrado", "strength_weak": "Débil", "strength_medium": "Media", "strength_strong": "Fuerte", @@ -511,24 +503,23 @@ "tip_unique_accounts": "Cree cuentas individuales para cada persona", "tip_viewer_role": "Use el rol de observador para usuarios que solo necesitan acceso de lectura", "tip_operator_role": "Use el rol de operador para usuarios que necesitan gestionar dispositivos pero no usuarios", - "tip_audit_logs": "Revise regularmente los registros de auditoría en busca de actividad sospechosa", - "role_pro": "Pro (API only)" + "tip_audit_logs": "Revise regularmente los registros de auditoría en busca de actividad sospechosa" }, "folders": { - "title": "Carpetas", - "create": "Crear carpeta", - "edit": "Editar carpeta", - "delete": "Eliminar carpeta", - "name": "Nombre de carpeta", + "title": "Panel", + "create": "Crear", + "edit": "Editar", + "delete": "Eliminar", + "name": "Folder Name", "name_placeholder": "Introduzca el nombre de la carpeta", "name_required": "El nombre de la carpeta es obligatorio", "name_too_long": "El nombre de la carpeta es demasiado largo (máx. 50 caracteres)", "color": "Color", "icon": "Icono", - "not_found": "Carpeta no encontrada", - "delete_confirm": "¿Está seguro de que desea eliminar esta carpeta? Los dispositivos serán desasignados.", - "delete_success": "Carpeta eliminada correctamente", - "created": "Carpeta creada correctamente", + "not_found": "No encontrado", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", + "delete_success": "Dispositivo eliminado correctamente", + "created": "Creado", "updated": "Carpeta actualizada correctamente", "no_devices_selected": "No hay dispositivos seleccionados", "devices_moved": "Dispositivos movidos correctamente", @@ -560,17 +551,17 @@ "language_change_failed": "Error al cambiar el idioma", "ban_failed": "Error al bloquear el dispositivo", "unban_failed": "Error al desbloquear el dispositivo", - "delete_failed": "Error al eliminar el dispositivo", - "change_id_failed": "Error al cambiar el ID del dispositivo", + "delete_failed": "Failed to delete device", + "change_id_failed": "Failed to change device ID", "bulk_delete_failed": "Error al eliminar dispositivos", "sync_failed": "Error de sincronización", "error": "Error", "not_found": "No encontrado", "server_error": "Error del servidor", - "load_device_failed": "No se pudo cargar el dispositivo" + "load_device_failed": "No se pudieron cargar los detalles del dispositivo" }, "remote": { - "title": "Escritorio remoto", + "title": "Panel", "connecting": "Conectando...", "waiting_password": "Esperando contraseña", "authenticating": "Autenticando...", @@ -578,9 +569,9 @@ "disconnected": "Desconectado", "error": "Error", "status_idle": "Inactivo", - "password_required": "Contraseña requerida", + "password_required": "La contraseña es obligatoria", "enter_password_for": "Introduzca la contraseña del dispositivo", - "password_placeholder": "Contraseña del dispositivo", + "password_placeholder": "Introduzca la contraseña", "connect": "Conectar", "reconnect": "Reconectar", "disconnect": "Desconectar", @@ -683,7 +674,7 @@ "import_theme": "Importar tema", "reset_defaults": "Restablecer valores predeterminados", "save_branding": "Guardar marca", - "saved": "Marca guardada correctamente. Recargando...", + "saved": "Guardado", "exported": "Tema exportado", "imported": "Tema importado correctamente. Recargando...", "import_error": "Error al importar el tema. Formato de archivo no válido.", @@ -731,8 +722,8 @@ "section_live_metrics": "Métricas en vivo", "section_current_usage": "Uso actual", "section_usage_history": "Historial de uso", - "os": "Sistema operativo", - "version": "Versión del cliente", + "os": "Operating System", + "version": "Versión", "cpu_model": "Modelo de CPU", "cpu_cores": "Núcleos de CPU", "cpu_freq": "Frecuencia de CPU", @@ -743,21 +734,21 @@ "device_groups": "Grupos", "no_sysinfo": "No hay información de hardware disponible", "no_sysinfo_hint": "La información del sistema aparecerá después de que el dispositivo envíe un informe de sysinfo", - "no_metrics": "No hay datos de métricas disponibles", + "no_metrics": "No hay métricas disponibles", "no_metrics_hint": "Las métricas aparecerán después de que el dispositivo envíe informes de latido", "chart_oldest": "← Más antiguo", "chart_newest": "Más reciente →" }, "inventory": { - "title": "Inventario", - "subtitle": "Inventario de hardware y software de dispositivos gestionados", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "device_id": "ID del dispositivo", "hostname": "Nombre de host", - "os": "Sistema operativo", - "cpu": "CPU", + "os": "Operating System", + "cpu": "Processor", "cpu_cores": "Núcleos de CPU", "cpu_usage": "Uso de CPU", - "memory": "Memoria", + "memory": "Memory", "memory_total": "Memoria total", "memory_used": "Memoria usada", "memory_available": "Memoria disponible", @@ -772,7 +763,7 @@ "system": "Sistema", "kernel": "Kernel", "architecture": "Arquitectura", - "uptime": "Tiempo de actividad", + "uptime": "Uptime", "frequency": "Frecuencia", "physical_cores": "Núcleos físicos", "logical_cores": "Núcleos lógicos", @@ -793,7 +784,7 @@ "total_uploads": "Total", "last_seen": "Visto por última vez", "collected_at": "Recopilado el", - "no_data": "No hay datos de inventario disponibles. Haga clic en \"Recopilar ahora\" para obtener información del sistema.", + "no_data": "No hardware data available", "no_devices": "No se encontraron dispositivos con datos de inventario", "detail_title": "Detalle del inventario del dispositivo", "telemetry": "Telemetría", @@ -802,11 +793,11 @@ "refresh": "Actualizar" }, "tickets": { - "title": "Helpdesk", - "subtitle": "Tickets de soporte y seguimiento de incidencias", - "create": "Nuevo ticket", - "edit": "Editar ticket", - "delete": "Eliminar ticket", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", + "create": "Crear", + "edit": "Editar", + "delete": "Eliminar", "detail": "Detalle del ticket", "ticket_id": "ID del ticket", "ticket_title": "Título", @@ -842,19 +833,19 @@ "internal_note": "Nota interna (no visible para usuarios finales)", "attachments": "Adjuntos", "upload_attachment": "Subir adjunto", - "download": "Descargar", + "download": "Descargar clave", "connect_device": "Conectar al dispositivo", "no_tickets": "No se encontraron tickets", "no_comments": "Sin comentarios aún", "no_attachments": "Sin adjuntos", "title_required": "El título es obligatorio", - "delete_confirm": "¿Está seguro de que desea eliminar el ticket #{id}?", - "delete_success": "Ticket eliminado correctamente", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", + "delete_success": "Dispositivo eliminado correctamente", "created_success": "Ticket creado correctamente", "updated_success": "Ticket actualizado correctamente", "sla_overdue": "SLA vencido", "filter_all": "Todos", - "search_placeholder": "Buscar tickets...", + "search_placeholder": "Buscar dispositivos...", "assign_to_me": "Asignarme", "unassign": "Desasignar", "stats_total": "Total", @@ -864,8 +855,8 @@ "stats_closed": "Cerrados" }, "activity": { - "title": "Monitoreo de actividad", - "subtitle": "Uso de aplicaciones y seguimiento de inactividad", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "device": "Dispositivo", "hostname": "Nombre de host", "sessions": "Sesiones", @@ -873,7 +864,7 @@ "active_time": "Tiempo activo", "last_report": "Último informe", "top_apps": "Aplicaciones principales", - "app_name": "Aplicación", + "app_name": "Nombre de la aplicación", "window_title": "Título de ventana", "category": "Categoría", "duration": "Duración", @@ -883,7 +874,7 @@ "total_active": "Total activo", "total_idle": "Total inactivo", "detail_count": "Registros detallados", - "no_data": "No hay datos de actividad disponibles", + "no_data": "No hardware data available", "no_sessions": "No hay sesiones registradas", "filter_from": "Desde", "filter_to": "Hasta", @@ -900,28 +891,22 @@ "category_system": "Sistema", "category_other": "Otro", "summary": "Resumen", - "details": "Detalles", + "details": "Detalles del dispositivo", "refresh": "Actualizar", "search": "Search devices...", "date_range": "Rango de fechas", - "device_id": "Device ID", + "device_id": "ID del dispositivo", "session_start": "Inicio de sesión", "session_end": "Fin de sesión", "user": "Usuario", "no_activity": "No activity recorded", "reported_at": "Reported At", - "detail": "Detail", - "no_apps": "No applications", - "status": "Estado", - "export": "Exportar", - "export_csv": "Exportar como CSV", - "export_pdf": "Exportar como PDF", - "today": "Hoy", - "this_week": "Esta semana" + "detail": "Detalle del ticket", + "no_apps": "No applications" }, "automation": { - "title": "Automatización y alertas", - "subtitle": "Reglas de alerta, comandos remotos y configuración SMTP", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "rules": "Reglas de alerta", "rules_subtitle": "Definir condiciones que activan notificaciones", "alerts": "Historial de alertas", @@ -983,19 +968,19 @@ "smtp_save": "Guardar configuración", "smtp_test_success": "Conexión exitosa", "smtp_test_failed": "Error de conexión", - "no_rules": "No hay reglas de alerta configuradas", + "no_rules": "No hay reglas de asignación.", "no_alerts": "No se han activado alertas", "no_commands": "No se han enviado comandos", "id_payload_required": "Device ID and payload are required", "no_commands_sent": "Aún no se han enviado comandos" }, "file_transfer": { - "title": "Transferencia de archivos", + "title": "Panel", "transfers": "Transferencias", "new_transfer": "Nueva transferencia", "upload": "Subir", - "download": "Descargar", - "direction": "Dirección", + "download": "Descargar clave", + "direction": "Direction", "filename": "Nombre del archivo", "file_size": "Tamaño del archivo", "mime_type": "Tipo MIME", @@ -1003,7 +988,7 @@ "status": "Estado", "device": "Dispositivo", "initiated_by": "Iniciado por", - "created_at": "Creado el", + "created_at": "Creado", "cancel": "Cancelar", "cancel_confirm": "¿Está seguro de que desea cancelar esta transferencia?", "download_file": "Descargar archivo", @@ -1013,8 +998,8 @@ "no_transfers": "No hay transferencias de archivos", "status_pending": "Pendiente", "status_active": "Activa", - "status_completed": "Completada", - "status_failed": "Fallida", + "status_completed": "Completado", + "status_failed": "Fallido", "status_cancelled": "Cancelada", "bytes_transferred": "Bytes transferidos", "chunks": "Bloques", @@ -1028,12 +1013,12 @@ "error_no_file": "No hay archivo seleccionado" }, "network": { - "title": "Monitoreo de red", + "title": "Panel", "targets": "Objetivos de monitoreo", "add_target": "Añadir objetivo", "edit_target": "Editar objetivo", "delete_target": "Eliminar objetivo", - "delete_confirm": "¿Está seguro de que desea eliminar este objetivo?", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", "target_name": "Nombre", "host": "Host", "port": "Puerto", @@ -1050,7 +1035,7 @@ "status_down": "No accesible", "status_unknown": "Desconocido", "check_now": "Verificar ahora", - "history": "Historial de verificaciones", + "history": "History", "stats": "Estadísticas", "total_targets": "Total de objetivos", "targets_up": "Objetivos accesibles", @@ -1081,7 +1066,7 @@ "latency": "Latency", "check_history": "Check History", "name_host_required": "Name and host are required", - "uptime": "Tiempo de actividad", + "uptime": "Uptime", "response_time": "Tiempo de respuesta", "avg_response": "Average Response", "charts": "Gráficos", @@ -1090,22 +1075,22 @@ "uptime_percent": "Tiempo de actividad %", "last_24h": "Últimas 24 horas", "last_7d": "Últimos 7 días", - "last_30d": "Últimos 30 días", - "avg_response_time": "Tiempo de respuesta promedio" + "last_30d": "Últimos 30 días" }, "dataguard": { - "title": "DataGuard — DLP", - "policies": "Políticas DLP", + "title": "Panel", + "policies": "Políticas", "add_policy": "Añadir política", "edit_policy": "Editar política", "delete_policy": "Eliminar política", - "delete_confirm": "¿Está seguro de que desea eliminar esta política?", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", "policy_name": "Nombre", "policy_description": "Descripción", - "status": "Status", + "policy_desc": "Policy Description", + "status": "Estado", "enabled": "Activado", "disabled": "Desactivado", - "rules": "Reglas", + "rules": "Reglas de alerta", "add_rule": "Añadir regla", "rule_type": "Tipo de regla", "rule_type_usb": "Dispositivo USB", @@ -1156,22 +1141,21 @@ "events_count": "Events", "search_events": "Search events...", "event_time": "Event Time", - "device": "Device", + "device": "Dispositivo", "policy": "Policy", - "detail": "Detail", + "detail": "Detalle del ticket", "scope_help": "Comma-separated device IDs, or leave empty for all", - "scope_all": "All Devices", - "active": "Active", + "scope_all": "Todos los dispositivos", + "active": "Activo", "type_file_type": "File Type", + "type_usb": "USB", "type_clipboard": "Clipboard", "type_screen_share": "Screen Share", - "type_file_transfer": "File Transfer", - "policy_desc": "Policy Description", - "type_usb": "USB" + "type_file_transfer": "File Transfer" }, "reports": { - "title": "Informes", - "generate": "Generar informe", + "title": "Panel", + "generate": "Generar configuración", "generate_csv": "Exportar CSV", "report_type": "Tipo de informe", "type_devices": "Resumen de dispositivos", @@ -1181,14 +1165,14 @@ "type_network": "Informe de red", "type_inventory": "Informe de inventario", "type_alerts": "Informe de alertas", - "saved": "Informes guardados", + "saved": "Guardado", "save_report": "Guardar informe", "delete_report": "Eliminar informe", - "delete_confirm": "¿Está seguro de que desea eliminar este informe guardado?", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", "no_saved": "No hay informes guardados", "report_title": "Título", "created_by": "Creado por", - "created_at": "Creado el", + "created_at": "Creado", "filters": "Filtros", "date_from": "Desde", "date_to": "Hasta", @@ -1201,8 +1185,8 @@ "banned": "Bloqueados", "platform_distribution": "Distribución por plataforma", "top_applications": "Aplicaciones principales", - "total_active": "Tiempo total activo", - "total_idle": "Tiempo total inactivo", + "total_active": "Total activo", + "total_idle": "Total inactivo", "dlp_stats": "Estadísticas DLP", "banned_devices": "Dispositivos bloqueados", "audit_logs": "Registros de auditoría", @@ -1225,20 +1209,20 @@ "type_alerts_desc": "Reglas de alerta e historial de alertas activadas", "report_name": "Nombre del informe", "format": "Formato", - "save": "Guardar informe", + "save": "Guardar", "preview": "Vista previa", - "download": "Descargar", + "download": "Descargar clave", "delete_saved": "Eliminar informe", "raw_json": "Raw JSON" }, "tenants": { - "title": "Multi-inquilino", + "title": "Panel", "list": "Inquilinos", "add_tenant": "Añadir inquilino", "edit_tenant": "Editar inquilino", "delete_tenant": "Eliminar inquilino", - "delete_confirm": "¿Está seguro de que desea eliminar este inquilino? Todas las asignaciones de dispositivos y usuarios serán eliminadas.", - "name": "Nombre", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", + "name": "Name", "slug": "Slug", "contact_name": "Nombre de contacto", "contact_email": "Correo de contacto", @@ -1255,31 +1239,31 @@ "assign_user": "Asignar usuario", "remove_user": "Quitar usuario", "no_tenants": "No hay inquilinos configurados", - "no_devices": "No hay dispositivos asignados a este inquilino", + "no_devices": "No se encontraron dispositivos con datos de inventario", "no_users": "No hay usuarios asignados a este inquilino", - "stats": "Estadísticas del inquilino", + "stats": "Estadísticas", "total_devices": "Total de dispositivos", "online_devices": "Dispositivos en línea", "total_users": "Total de usuarios", - "created_at": "Creado el", - "updated_at": "Actualizado el", + "created_at": "Creado", + "updated_at": "Actualizado", "slug_exists": "El slug del inquilino ya existe", "total_tenants": "Total de inquilinos", "active_tenants": "Inquilinos activos", - "search": "Buscar inquilinos...", + "search": "Search devices...", "create_tenant": "Crear inquilino", - "detail": "Detalle del inquilino", + "detail": "Detalle del ticket", "contact": "Contacto", - "enabled": "Habilitado", - "disabled": "Disabled", + "enabled": "Activado", + "disabled": "Desactivado", "max": "máx", - "info": "Información del inquilino", + "info": "Información", "status": "Estado" }, "registrations": { - "title": "Registros de dispositivos", - "subtitle": "Gestionar solicitudes de registro de dispositivos descubiertos por LAN", - "search_placeholder": "Buscar por ID de dispositivo, nombre de host o IP...", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", + "search_placeholder": "Buscar dispositivos...", "no_registrations": "No hay solicitudes de registro", "col_device_id": "ID del dispositivo", "col_hostname": "Nombre de host", @@ -1301,7 +1285,7 @@ "reject_reason": "Motivo (opcional)", "reject_reason_placeholder": "Introduzca el motivo del rechazo...", "rejected_success": "Registro de dispositivo rechazado", - "delete_confirm": "¿Está seguro de que desea eliminar este registro?", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", "deleted_success": "Registro eliminado", "enrollment_title": "Device Enrollment", "enrollment_subtitle": "Pending enrollment requests from BetterDesk desktop clients", @@ -1318,7 +1302,7 @@ "enrollment_rejected_success": "Device enrollment rejected" }, "backup": { - "title": "Copia de seguridad", + "title": "Panel", "desc": "Descargue una copia de seguridad completa de la configuración de su consola, usuarios, grupos y ajustes. Los datos de peers del servidor Go se incluyen cuando el backend BetterDesk está activo.", "restore_title": "Restaurar", "restore_desc": "Suba un archivo de copia de seguridad descargado previamente para restaurar la configuración de la consola. Seleccione qué secciones restaurar a continuación.", @@ -1328,10 +1312,10 @@ "stat_groups": "Grupos", "stat_strategies": "Estrategias", "stat_backend": "Backend", - "download": "Descargar copia de seguridad", + "download": "Descargar clave", "creating": "Creando copia de seguridad...", - "download_success": "Copia de seguridad descargada correctamente", - "upload": "Subir copia de seguridad", + "download_success": "Archivo de clave descargado", + "upload": "Subir", "restore_confirm": "¿Está seguro de que desea restaurar desde esta copia de seguridad? Las secciones seleccionadas serán sobrescritas.", "restore_success": "Copia de seguridad restaurada correctamente. Algunos cambios pueden requerir recargar la página.", "restored": "Restaurado", @@ -1345,12 +1329,12 @@ "opt_users": "Cuentas de usuario", "opt_users_warning": "Destructivo: reemplaza TODAS las cuentas de usuario con los datos de la copia. Puede que se cierre su sesión.", "no_file": "No se seleccionó archivo de copia de seguridad", - "invalid_json": "Archivo de copia de seguridad no válido: JSON no válido", + "invalid_json": "Formato JSON inválido", "invalid_format": "Archivo de copia de seguridad no válido: no es una copia de BetterDesk" }, "cdap": { "device_detail": "Detalle del dispositivo", - "loading": "Cargando información del dispositivo...", + "loading": "Cargando...", "loading_widgets": "Loading device widgets...", "load_error": "Failed to load device data", "connected": "Conectado", @@ -1367,7 +1351,7 @@ "cdap_disabled": "CDAP Disabled", "cdap_devices": "CDAP Devices", "cdap_connections": "Active Connections", - "send_command": "Send Command", + "send_command": "Enviar comando", "command_sent": "Comando enviado", "command_failed": "Error al enviar comando", "devices_title": "CDAP Devices", @@ -1375,7 +1359,7 @@ "stat_connected": "Connected", "stat_port": "Port", "search_devices": "Search devices...", - "no_devices": "No devices connected", + "no_devices": "No se encontraron dispositivos con datos de inventario", "no_devices_desc": "No CDAP devices are currently connected. Devices will appear here once they connect to the gateway.", "gateway_disabled": "Gateway CDAP deshabilitado", "gateway_disabled_desc": "Enable the CDAP gateway by setting CDAP_ENABLED=true in the server configuration.", @@ -1389,16 +1373,16 @@ "type_iot": "IoT", "type_scada": "SCADA", "type_os_agent": "Agente de SO", - "type_network": "Network", + "type_network": "Informe de red", "type_camera": "Camera", - "type_custom": "Dispositivo personalizado", - "active_alerts": "Active Alerts", + "type_custom": "Personalizado", + "active_alerts": "Alertas activas", "alert_fired": "Alert fired", "alert_cleared": "Alert cleared", - "no_alerts": "No active alerts", + "no_alerts": "No se han activado alertas", "connect_terminal": "Connect Terminal", "table_search": "Search...", - "just_now": "Just now", + "just_now": "ahora mismo", "terminal_connecting": "Connecting to device...", "terminal_disconnected": "Disconnected", "terminal_error": "Terminal connection failed", @@ -1408,7 +1392,7 @@ "no_linked_devices": "No linked devices", "unlink_confirm": "Are you sure you want to unlink this device?", "link_prompt": "Enter the Peer ID to link to this device:", - "connect_desktop": "Connect Desktop", + "connect_desktop": "Conectar vía cliente de escritorio", "connect_video": "Connect Stream", "connect_files": "Browse Files", "connect_audio": "Conectar audio", @@ -1422,86 +1406,38 @@ "clipboard_out": "Portapapeles del navegador → dispositivo", "monitor_select": "Seleccionar monitor", "keyframe_request": "Solicitar fotograma clave", - "quality_auto": "Calidad automática", - "title": "Dispositivos CDAP", - "subtitle": "Control de puentes IoT y dispositivos nativos de BetterDesk", - "device_offline": "Dispositivo sin conexión", - "device_offline_hint": "Este dispositivo no está conectado actualmente a CDAP. El estado mostrado puede estar desactualizado.", - "no_commands": "Este dispositivo no acepta comandos.", - "command_log_empty": "Aún no se han enviado comandos.", - "command_confirm_hint": "Esto enviará el comando al dispositivo. ¿Continuar?", - "widget_toggle": "Alternar", - "widget_button": "Ejecutar", - "widget_slider": "Ajustar", - "widget_select": "Seleccionar", - "widget_text": "Texto", - "widget_gauge": "Medidor", - "widget_chart": "Gráfico", - "widget_led": "Indicador LED", - "group_uncategorized": "Sin categoría", - "status_gateway": "Estado del gateway", - "gateway_enabled": "Gateway CDAP habilitado", - "device_count": "Dispositivos conectados", - "refresh": "Actualizar estado", - "type_iot_bridge": "Puente IoT", - "uptime": "Tiempo de actividad", - "version": "Versión", - "capabilities": "Capacidades", - "cap_telemetry": "Telemetría", - "cap_commands": "Comandos", - "cap_remote_desktop": "Escritorio remoto", - "cap_file_transfer": "Transferencia de archivos", - "cap_clipboard": "Portapapeles", - "terminal": "Terminal", - "terminal_open": "Abrir terminal", - "terminal_close": "Cerrar terminal", - "files": "Archivos", - "files_browse": "Explorar archivos", - "files_upload": "Subir archivo", - "files_download": "Descargar archivo", - "metrics": "Métricas", - "cpu_usage": "Uso de CPU", - "memory_usage": "Uso de memoria", - "disk_usage": "Uso de disco", - "no_data": "Sin datos disponibles", - "device_id": "ID del dispositivo", - "device_name": "Nombre del dispositivo", - "device_type": "Tipo de dispositivo", - "last_seen": "Última conexión", - "heartbeat": "Latido", - "heartbeat_ok": "Latido OK", - "heartbeat_stale": "Latido obsoleto", - "actions": "Acciones", - "disconnect": "Desconectar", - "disconnect_confirm": "¿Está seguro de que desea desconectar este dispositivo?", - "disconnected_success": "Dispositivo desconectado" + "quality_auto": "Calidad automática" }, "desktop": { "switch_mode": "Desktop Mode", "console_mode": "Console Mode", - "loading": "Loading...", + "loading": "Cargando...", "minimize": "Minimize", "maximize": "Maximize", "restore": "Restore", - "close": "Close", + "close": "Cerrar", "widgets_mode": "Widgets", "windows_mode": "Windows", "wallpaper": "Fondo de pantalla", "add_widget": "Add Widget", "remove_widget": "Remove Widget", + "pop_out_widget": "Pop Out", + "pop_in_widget": "Pop In", "configure": "Configure", "search_widgets": "Search widgets...", "cat_monitoring": "Monitoring", "cat_devices": "Devices", "cat_tools": "Tools", "cat_general": "General", - "notes_placeholder": "Write notes here...", - "search_placeholder": "Search devices, pages, settings...", + "notes_placeholder": "Añada notas sobre este dispositivo...", + "search_placeholder": "Buscar dispositivos...", "search_pages": "Pages", - "search_devices": "Devices", + "search_devices": "Search devices...", "search_no_results": "No results", - "exit_desktop": "Exit Desktop", - "refresh": "Refresh", + "exit_desktop": "Salir del escritorio", + "refresh": "Actualizar", + "fullscreen": "Pantalla completa", + "help": "Help", "widget_clock": "Clock", "widget_device_status": "Device Status", "widget_server_health": "Server Info", @@ -1571,6 +1507,8 @@ "wp_fit": "Ajustar", "wp_stretch": "Estirar", "wp_center": "Centrar", + "wp_unavailable": "Wallpaper images are not installed on this server.", + "wp_download_hint": "Place PNG images in the public/wallpapers/ directory to enable wallpaper selection.", "widget_calendar": "Calendar", "widget_process_monitor": "Process Monitor", "widget_disk_usage": "Disk Usage", @@ -1631,57 +1569,28 @@ "app_drawer": "Applications", "search_apps": "Search apps...", "edit_shortcuts": "Editar accesos directos", - "widgets": "Widgets del escritorio", - "theme": "Theme", - "title": "Modo escritorio", - "subtitle": "Acceso directo a aplicaciones de la consola desde el escritorio", - "enter": "Entrar al modo escritorio", - "exit": "Salir del modo escritorio", - "wallpaper_change": "Cambiar fondo", - "wallpaper_upload": "Subir imagen", - "wallpaper_reset": "Restablecer por defecto", - "widgets_add": "Añadir widget", - "widgets_remove": "Eliminar widget", - "widgets_configure": "Configurar widget", - "taskbar": "Barra de tareas", - "taskbar_position": "Posición de la barra de tareas", - "taskbar_bottom": "Abajo", - "taskbar_top": "Arriba", - "taskbar_left": "Izquierda", - "taskbar_right": "Derecha", - "shortcuts": "Accesos directos", - "shortcut_add": "Añadir acceso directo", - "shortcut_edit": "Editar acceso directo", - "shortcut_remove": "Eliminar acceso directo", - "auto_hide": "Ocultar automáticamente", - "show_clock": "Mostrar reloj", - "show_notifications": "Mostrar notificaciones", - "pop_out_widget": "Pop Out", - "pop_in_widget": "Pop In", - "wp_unavailable": "Wallpaper images are not installed on this server.", - "wp_download_hint": "Place PNG images in the public/wallpapers/ directory to enable wallpaper selection.", - "fullscreen": "Fullscreen", - "help": "Help" + "widgets": "widgets", + "theme": "Theme" }, "desktop_login": { "click_to_sign_in": "Click anywhere or press a key to sign in", - "username_placeholder": "Username", - "password_placeholder": "Password", + "username_placeholder": "Introduzca el nombre de usuario", + "password_placeholder": "Introduzca la contraseña", "sign_in": "Sign in", "verify": "Verify", - "totp_title": "Two-Factor Authentication", - "totp_subtitle": "Enter the 6-digit code from your authenticator app", + "totp_title": "Autenticación de dos factores", + "totp_subtitle": "Introduzca el código de 6 dígitos de su aplicación de autenticación", "back_to_login": "Back to login", - "fill_all_fields": "Please fill in all fields", - "invalid_credentials": "Invalid username or password", + "fill_all_fields": "Por favor, rellene todos los campos", + "invalid_credentials": "Nombre de usuario o contraseña inválidos.", "invalid_code": "Invalid verification code", "enter_6_digits": "Enter all 6 digits", "network_error": "Network error — check your connection", "session_expired": "Session expired. Please sign in again." }, "tokens": { - "title": "Tokens de API", - "subtitle": "Gestionar tokens de acceso a la API para integraciones externas", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "enrollment_mode": "Enrollment Mode", "mode_open": "Open", "mode_open_desc": "Any device can register without a token", @@ -1689,28 +1598,28 @@ "mode_managed_desc": "Devices need a valid token to register", "mode_locked": "Locked", "mode_locked_desc": "No new device registrations allowed", - "total": "Total Tokens", - "active": "Active", - "used": "Used", + "total": "Total", + "active": "Activo", + "used": "Usado", "revoked": "Token revocado", - "search_placeholder": "Search tokens...", - "status_pending": "Pending", - "status_active": "Activo", + "search_placeholder": "Buscar dispositivos...", + "status_pending": "Pendiente", + "status_active": "Activa", "status_used": "Used", "status_revoked": "Revocado", "status_expired": "Expirado", "bulk_generate": "Bulk Generate", - "create": "Crear token", - "edit": "Edit Token", + "create": "Crear", + "edit": "Editar", "token": "Token", - "name": "Nombre del token", + "name": "Name", "status": "Estado", "uses": "Uses", "bound_peer": "Bound Peer", "expires": "Fecha de expiración", "created": "Creado", - "actions": "Actions", - "name_placeholder": "Introduzca un nombre descriptivo", + "actions": "Acciones", + "name_placeholder": "Introduzca el nombre de la carpeta", "max_uses": "Max Uses", "max_uses_hint": "0 = unlimited", "expires_in": "Expires In", @@ -1719,59 +1628,33 @@ "expires_24h": "24 hours", "expires_7d": "7 days", "expires_30d": "30 días", - "note": "Note", - "note_placeholder": "Optional note about this token...", + "note": "Nota", + "note_placeholder": "Notes about this device", "count": "Count", "count_range": "Number of tokens to generate (1-100)", "name_prefix": "Name Prefix", - "generate": "Generate", + "generate": "Generar configuración", "token_created": "Token creado correctamente", "tokens_generated": "Tokens Generated", "copy_warning": "Copy the token now. It will not be shown again.", "copy_token": "Copy Token", "copied": "Copied!", - "revoke": "Revocar token", + "revoke": "Revocar", "revoke_confirm": "¿Está seguro de que desea revocar este token? Esto invalidará inmediatamente todas las peticiones de API que lo utilicen.", "revoked_success": "Token revoked successfully", "no_tokens": "No hay tokens de API creados", "expired": "Expired", - "never": "Never", - "save": "Save", - "cancel": "Cancel", - "unlimited": "Unlimited", - "list": "Tokens activos", - "create_title": "Crear nuevo token de API", - "description": "Descripción", - "description_placeholder": "Descripción opcional del propósito del token", - "expires_never": "Nunca", - "expires_90d": "90 días", - "expires_1y": "1 año", - "expires_custom": "Fecha personalizada", - "permissions": "Permisos", - "permission_read": "Lectura", - "permission_write": "Escritura", - "permission_admin": "Administrador", - "permission_devices": "Dispositivos", - "permission_users": "Usuarios", - "permission_settings": "Configuración", - "last_used": "Último uso", - "never_used": "Nunca utilizado", - "token_copied": "Token copiado al portapapeles", - "token_warning": "Asegúrese de copiar el token ahora. No podrá verlo de nuevo.", - "scope": "Alcance", - "scope_full": "Acceso completo", - "scope_limited": "Acceso limitado", - "rate_limit": "Límite de tasa", - "rate_limit_hint": "Peticiones máximas por minuto (0 = ilimitado)", - "ip_whitelist": "Lista blanca de IP", - "ip_whitelist_hint": "Direcciones IP permitidas, una por línea (vacío = todas)" + "never": "Nunca", + "save": "Guardar", + "cancel": "Cancelar", + "unlimited": "Unlimited" }, "tutorial": { "next": "Siguiente", "prev": "Anterior", "skip": "Saltar tutorial", "finish": "Finalizar", - "close": "Close", + "close": "Cerrar", "step_of": "{current} of {total}", "console_sidebar_title": "Navigation Sidebar", "console_sidebar_text": "Access all modules from here. Click any icon to navigate to that section. The sidebar adapts to your screen size.", @@ -1821,32 +1704,16 @@ "settings_content_text": "Each section contains specific server and console settings. Changes are saved when you click Save.", "settings_complete_title": "Settings Overview", "settings_complete_text": "Check Security settings for 2FA, API keys and user management. Visit Appearance to customize the console look.", - "help": "Help & Tutorials", + "help": "Help", "tour_console": "Console Tour", "tour_desktop": "Desktop Mode Tour", "tour_devices": "Devices Tour", - "tour_settings": "Settings Tour", - "reset_all": "Reset All Tutorials", - "title": "Bienvenido a BetterDesk", - "step": "Paso {current} de {total}", - "step_welcome_title": "Bienvenido al panel BetterDesk", - "step_welcome_text": "Este tutorial le guiará a través de las características principales de la consola de administración.", - "step_sidebar_title": "Navegación por la barra lateral", - "step_sidebar_text": "Use la barra lateral para navegar entre diferentes secciones. Haga clic en el icono de menú para expandir o contraer.", - "step_devices_title": "Gestión de dispositivos", - "step_devices_text": "Vea y gestione todos los dispositivos conectados. Haga clic en un dispositivo para ver detalles, conectar remotamente o cambiar configuraciones.", - "step_dashboard_title": "Panel de control", - "step_dashboard_text": "El panel muestra estadísticas clave y el estado de su infraestructura de un vistazo.", - "step_settings_title": "Configuración", - "step_settings_text": "Configure los ajustes del servidor, personalice la marca y gestione su cuenta en la sección de configuración.", - "step_complete_title": "¡Listo!", - "step_complete_text": "Ahora está listo para empezar a usar BetterDesk. ¿Necesita ayuda? Consulte la documentación o contacte con soporte.", - "dont_show_again": "No mostrar de nuevo", - "restart_tutorial": "Reiniciar tutorial", "tour_remote": "Remote Session Tour", "tour_organization": "Organization Setup", "tour_cdap": "CDAP Overview", "tour_chat": "Chat Basics", + "tour_settings": "Settings Tour", + "reset_all": "Reset All Tutorials", "remote_toolbar_title": "Remote Toolbar", "remote_toolbar_text": "Access display controls, clipboard sync, special keys, and quality settings from the toolbar. Toggle fullscreen with F11.", "remote_canvas_title": "Remote Display", @@ -1887,13 +1754,13 @@ "chat_complete_text": "Chat with operators and end users in real time. Create groups for team communication. All messages support read receipts." }, "help_request": { - "title": "Help Requests", - "subtitle": "Manage incoming help requests from desktop clients", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "new_request": "New Help Request", - "device": "Device", - "hostname": "Hostname", + "device": "Dispositivo", + "hostname": "Nombre de host", "message": "Message", - "status": "Status", + "status": "Estado", "pending": "Pending", "accepted": "Accepted", "resolved": "Resolved", @@ -1902,24 +1769,24 @@ "no_requests": "No help requests", "notification": "Help request received from", "stats_total": "Total", - "filter_all": "All" + "filter_all": "Todos" }, "organizations": { - "title": "Organizations", - "create": "Create Organization", - "edit": "Edit Organization", - "detail": "Organization Details", + "title": "Panel", + "create": "Crear", + "edit": "Editar", + "detail": "Detalle del ticket", "name": "Name", - "slug": "Slug (URL-safe)", + "slug": "Slug", "logo_url": "Logo URL", - "users": "Users", - "devices": "Devices", + "users": "Usuarios", + "devices": "Dispositivos", "invitations": "Invitations", "settings": "Settings", - "add_user": "Add User", - "assign_device": "Assign Device", + "add_user": "Añadir usuario", + "assign_device": "Asignar dispositivo", "create_invitation": "Create Invitation", - "delete_confirm": "Delete this organization? This will remove all associated users, devices, and settings.", + "delete_confirm": "¿Está seguro de que desea eliminar el usuario {username}?", "no_orgs": "No organizations yet", "no_orgs_hint": "Create your first organization to start managing devices and users.", "connection_policy": "Connection Policy", @@ -1927,8 +1794,8 @@ "allow_clipboard": "Allow Clipboard", "max_session_duration": "Max Session Duration (min)", "role_owner": "Owner", - "role_admin": "Admin", - "role_operator": "Operator", + "role_admin": "Administrador", + "role_operator": "Operador", "role_user": "User" }, "chat": { @@ -1948,7 +1815,7 @@ "presence_offline": "Desconectado", "key_rotation": "Claves de seguridad renovadas", "new_message": "Nuevo mensaje", - "title": "Chat", + "title": "Panel", "contacts": "Contactos", "groups": "Grupos", "no_contacts": "Aún no hay contactos", @@ -1956,13 +1823,16 @@ "no_messages": "Aún no hay mensajes", "no_results": "No se encontraron resultados", "select_conversation": "Seleccione una conversación para comenzar a chatear", + "select_conversation_hint": "Selecciona una conversación para ver los mensajes", "type_message": "Escriba un mensaje...", "send": "Enviar", "attach_file": "Adjuntar archivo", "emoji": "Emoji", + "info": "Información", "search_messages": "Buscar mensajes", "create_group": "Crear grupo", "group_name": "Nombre del grupo", + "group_name_placeholder": "Introduce el nombre del grupo", "group_members": "Miembros", "cancel": "Cancelar", "create": "Crear", @@ -1971,10 +1841,7 @@ "yesterday": "Ayer", "react": "Reaccionar", "my_presence": "Mi estado", - "search_placeholder": "Buscar contactos y mensajes", - "select_conversation_hint": "Seleccione una conversación para ver los mensajes", - "info": "Información", - "group_name_placeholder": "Introduzca el nombre del grupo" + "search_placeholder": "Buscar dispositivos..." }, "toast": { "device_connected": "Device connected", @@ -1991,7 +1858,7 @@ "dark": "Dark", "light": "Light", "auto": "System", - "title": "Theme" + "title": "Panel" }, "days": { "mon": "Mon", @@ -2003,21 +1870,21 @@ "sun": "Sun" }, "toolkit": { - "title": "Toolkit", - "subtitle": "Admin utilities and diagnostic tools", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "cat_network": "Network", "cat_crypto": "Crypto", "cat_encoding": "Encoding", "cat_system": "System", "host": "Host", - "port": "Port", + "port": "Puerto", "domain": "Domain", "run": "Run", - "generate": "Generate", + "generate": "Generar configuración", "encode": "Encode", "decode": "Decode", - "send": "Send", - "refresh": "Refresh", + "send": "Enviar", + "refresh": "Actualizar", "algorithm": "Algorithm", "input_text": "Input Text", "enter_text": "Enter text...", @@ -2027,7 +1894,7 @@ "lines": "Lines", "log_console": "Console", "log_go": "Go Server", - "mac_address": "MAC Address", + "mac_address": "Dirección MAC", "broadcast": "Broadcast", "ping_title": "Ping", "ping_desc": "Check host reachability and latency", @@ -2050,7 +1917,7 @@ "hash_title": "Hash Generator", "hash_desc": "Generate cryptographic hashes", "password_title": "Password Generator", - "password_desc": "Generate a secure random password", + "password_desc": "Actualizar la contraseña de su cuenta", "jwt_title": "JWT Decoder", "jwt_desc": "Decode and inspect JSON Web Tokens", "jwt_token": "JWT Token", @@ -2068,10 +1935,10 @@ "docker_desc": "View running Docker containers", "logs_title": "Log Viewer", "logs_desc": "View recent log output", - "ip_address": "IP", + "ip_address": "Dirección IP", "latency": "Latency", "ttl": "TTL", - "status": "Status", + "status": "Estado", "resolved": "Resolved", "subject": "Subject", "issuer": "Issuer", @@ -2098,13 +1965,13 @@ "db_size": "Size", "table_name": "Table", "row_count": "Rows", - "no_data": "No data available", + "no_data": "No hardware data available", "no_docker": "No Docker containers found or Docker not available", "no_logs": "No log lines available" }, "policies": { - "title": "Políticas de organización", - "subtitle": "Gestionar políticas de seguridad, conexión y funciones para organizaciones", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "select_org": "Organización", "select_org_placeholder": "Seleccionar organización...", "select_org_first": "Seleccione una organización para ver el registro de auditoría de políticas.", @@ -2123,8 +1990,8 @@ "wallpaper_hide_always": "Ocultar siempre", "features_title": "Política de funciones", "features_desc": "Habilitar o deshabilitar funciones específicas para dispositivos", - "allow_file_transfer": "Permitir transferencia de archivos", - "allow_clipboard": "Permitir sincronización de portapapeles", + "allow_file_transfer": "Allow File Transfer", + "allow_clipboard": "Allow Clipboard", "allow_audio": "Permitir transmisión de audio", "allow_recording": "Permitir grabación de sesión", "security_title": "Política de seguridad", @@ -2133,7 +2000,7 @@ "password_min_length": "Longitud mínima de contraseña", "password_require_special": "Requerir caracteres especiales", "password_max_age": "Edad máx. de contraseña (días, 0=nunca)", - "allowed_operators": "Roles de operador permitidos (separados por coma)", + "allowed_operators": "Allowed Operators", "network_title": "Política de red", "network_desc": "Controlar servidores relay y conexiones directas", "block_direct_p2p": "Bloquear P2P directo (forzar relay)", @@ -2144,14 +2011,14 @@ "auto_update": "Habilitar actualización automática", "update_channel": "Canal de actualización", "audit_title": "Cambios de políticas", - "audit_desc": "Historial reciente de cambios de políticas", + "audit_desc": "Actividad reciente de la consola", "no_audit": "No se registraron cambios de políticas." }, "attestation": { - "title": "Atestación de dispositivos", - "subtitle": "Supervisar verificación de identidad de dispositivos y huellas de hardware", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "verified": "Verificado", - "pending": "Pendiente", + "pending": "Pending", "failed": "Fallido", "device_list": "Registros de atestación", "device_list_desc": "Huellas de hardware y estado de verificación de identidad", @@ -2164,7 +2031,7 @@ "no_records": "No se encontraron registros de atestación." }, "fleet": { - "title": "Gestión de flota", + "title": "Panel", "tab_resources": "Recursos", "tab_tasks": "Tareas", "tab_builder": "Constructor", @@ -2236,6 +2103,23 @@ "builder_transforms": "Transformaciones", "builder_properties": "Propiedades", "builder_no_selection": "Seleccione un nodo para editar sus propiedades.", + "builder_node_trigger_manual": "Manual Trigger", + "builder_node_trigger_schedule": "Schedule", + "builder_node_trigger_event": "Event Trigger", + "builder_node_cond_os": "OS Check", + "builder_node_cond_threshold": "Threshold", + "builder_node_cond_time_window": "Time Window", + "builder_node_action_script": "Run Script", + "builder_node_action_install": "Install SW", + "builder_node_action_restart": "Restart Svc", + "builder_node_action_file_deploy": "Deploy File", + "builder_node_action_message": "Send Message", + "builder_node_result_log": "Log Output", + "builder_node_result_alert": "Send Alert", + "builder_node_result_chain": "Chain Workflow", + "builder_node_transform_parse": "Parse JSON", + "builder_node_transform_filter": "Filter", + "builder_node_transform_delay": "Delay", "workflow_name": "Nombre del flujo:", "comp_title": "Cumplimiento de software", "comp_compliant": "Conforme", @@ -2260,24 +2144,7 @@ "delete": "Eliminar", "actions": "Acciones", "all_orgs": "Todas las organizaciones", - "builder_node_trigger_manual": "Manual Trigger", - "builder_node_trigger_schedule": "Schedule", - "builder_node_trigger_event": "Event Trigger", - "builder_node_cond_os": "OS Check", - "builder_node_cond_threshold": "Threshold", - "builder_node_cond_time_window": "Time Window", - "builder_node_action_script": "Run Script", - "builder_node_action_install": "Install SW", - "builder_node_action_restart": "Restart Svc", - "builder_node_action_file_deploy": "Deploy File", - "builder_node_action_message": "Send Message", - "builder_node_result_log": "Log Output", - "builder_node_result_alert": "Send Alert", - "builder_node_result_chain": "Chain Workflow", - "builder_node_transform_parse": "Parse JSON", - "builder_node_transform_filter": "Filter", - "builder_node_transform_delay": "Delay", - "select_org_placeholder": "Select organization…", + "select_org_placeholder": "Seleccionar organización...", "all_types": "All Types", "type_printer": "Printer", "type_network_drive": "Network Drive", @@ -2290,23 +2157,23 @@ "col_type": "Type", "col_target": "Target", "col_scope": "Scope", - "col_status": "Status", - "col_actions": "Actions", + "col_status": "Estado", + "col_actions": "Acciones", "no_resources": "No resources found.", - "active": "Active", - "inactive": "Inactive", + "active": "Activo", + "inactive": "Inactivo", "address": "Address / Path", "scope_org": "Organization", "scope_group": "Group", - "scope_device": "Device", + "scope_device": "Dispositivo objetivo", "scope_value": "Scope Value", "scope_value_hint": "Organization, group, or device ID", "confirm_delete": "Are you sure you want to delete this item?", "all_statuses": "All Statuses", - "status_pending": "Pending", - "status_running": "Running", + "status_pending": "Pendiente", + "status_running": "En ejecución", "status_success": "Success", - "status_failed": "Failed", + "status_failed": "Fallido", "search_tasks": "Search tasks…", "create_task": "Create Task", "edit_task": "Edit Task", @@ -2326,12 +2193,12 @@ "script_content": "Script / Command", "retry_count": "Retries", "timeout_sec": "Timeout (s)", - "loading": "Loading", + "loading": "Cargando...", "no_output": "No output available", "error_loading": "Error loading data", "select_workflow": "Select workflow…", "new_workflow": "New", - "export": "Export", + "export": "Exportar", "execute": "Execute", "dry_run": "Dry Run", "node_triggers": "Triggers", @@ -2363,8 +2230,8 @@ "non_compliant": "Warning", "critical_issues": "Critical", "avg_score": "Avg. Score", - "col_device": "Device", - "col_hostname": "Hostname", + "col_device": "ID de dispositivo", + "col_hostname": "Nombre de host", "col_os": "OS", "col_score": "Score", "col_issues": "Issues", @@ -2373,8 +2240,8 @@ "confirm_remediate": "Run auto-remediation on this device?" }, "scaling": { - "title": "Escalado y gestión de relés", - "tab_overview": "Visión general", + "title": "Panel", + "tab_overview": "Resumen", "tab_relays": "Nodos de relé", "tab_rules": "Reglas de asignación", "tab_capacity": "Planificación de capacidad", @@ -2389,7 +2256,7 @@ "relay_search": "Buscar relés...", "relay_add": "Agregar nodo de relé", "relay_edit": "Editar nodo de relé", - "col_name": "Nombre", + "col_name": "Name", "col_address": "Dirección", "col_location": "Ubicación", "col_devices": "Dispositivos", @@ -2410,6 +2277,7 @@ "confirm_delete_relay": "¿Está seguro de que desea eliminar este nodo de relé?", "confirm_delete_rule": "¿Está seguro de que desea eliminar esta regla de asignación?", "rules_hint": "Las reglas de asignación determinan qué servidor de relé maneja grupos de dispositivos específicos. Las reglas se evalúan por prioridad (la más baja primero).", + "no_rules": "No hay reglas de asignación.", "rule_add": "Agregar regla", "rule_edit": "Editar regla", "rule_match_type": "Tipo de coincidencia", @@ -2448,11 +2316,10 @@ "cancel": "Cancelar", "edit": "Editar", "delete": "Eliminar", - "close": "Cerrar", - "no_rules": "No hay reglas de asignación." + "close": "Cerrar" }, "cross_platform": { - "title": "Compatibilidad multiplataforma", + "title": "Panel", "tab_matrix": "Matriz de compatibilidad", "tab_distribution": "Distribución", "tab_protocols": "Protocolos", @@ -2471,7 +2338,7 @@ "unique_platforms": "Plataformas", "unique_archs": "Arquitecturas", "unique_versions": "Versiones de cliente", - "no_devices": "Aún no hay dispositivos registrados.", + "no_devices": "No se encontraron dispositivos con datos de inventario", "protocols_hint": "La negociación de capacidades del protocolo asegura que cada cliente reciba solo las funciones que soporta. El servidor adapta su comportamiento basándose en las capacidades reportadas.", "capability_negotiation": "Negociación de capacidades", "codec_support": "Soporte de códecs (dispositivos en línea)", @@ -2531,9 +2398,9 @@ "limit_chrome_input": "Inyección de entrada fuera del contenedor Crostini no soportada." }, "security_audit": { - "title": "Security Audit", + "title": "Panel", "tab_overview": "Resumen", - "tab_events": "Eventos de auditoría", + "tab_events": "Events", "tab_hardening": "Endurecimiento", "tab_vulnerabilities": "Vulnerabilidades", "security_score": "Puntuación de seguridad", @@ -2550,8 +2417,8 @@ "tls_relay": "Relay TLS", "tls_api": "API TLS", "tls_wss": "WebSocket Secure", - "enabled": "Habilitado", - "disabled": "Deshabilitado", + "enabled": "Activado", + "disabled": "Desactivado", "all_events": "Todos los eventos", "event_login_failed": "Inicio de sesión fallido", "event_login_success": "Inicio de sesión exitoso", @@ -2563,17 +2430,17 @@ "col_time": "Hora", "col_action": "Acción", "col_actor": "Actor", - "col_target": "Objetivo", + "col_target": "Target", "col_ip": "Dirección IP", "col_details": "Detalles", - "no_events": "No se encontraron eventos de auditoría.", + "no_events": "No se registraron eventos DLP", "hardening_hint": "Prioridades de endurecimiento de seguridad para su implementación BetterDesk. Ordenados por gravedad.", "no_hardening": "No hay elementos de endurecimiento disponibles.", "vuln_hint": "Resultados del escaneo de vulnerabilidades de dependencias. Ejecute npm audit regularmente.", "no_vulns": "No se encontraron vulnerabilidades. Sus dependencias son seguras." }, "languages": { - "title": "Language Management", + "title": "Panel", "total_languages": "Total Languages", "fully_translated": "Fully Translated", "needs_review": "Needs Review", @@ -2598,8 +2465,8 @@ "no_fix_needed": "No missing keys to fix." }, "resource_control": { - "title": "Resource Control", - "tab_overview": "Overview", + "title": "Panel", + "tab_overview": "Resumen", "tab_usb": "USB Control", "tab_optical": "Optical Drives", "tab_monitors": "Monitors", @@ -2608,16 +2475,16 @@ "compliance_by_category": "Compliance by Category", "device_compliance": "Device Compliance", "search_devices": "Search devices...", - "col_device": "Device", - "col_platform": "Platform", - "col_status": "Status", + "col_device": "ID de dispositivo", + "col_platform": "Plataforma", + "col_status": "Estado", "col_usb": "USB", "col_optical": "Optical", "col_monitors": "Monitors", "col_disks": "Disks", "col_quotas": "Quotas", - "col_actions": "Actions", - "stat_total_devices": "Total Devices", + "col_actions": "Acciones", + "stat_total_devices": "Dispositivos totales", "stat_compliant": "Compliant", "stat_partial": "Partial", "stat_noncompliant": "Non-Compliant", @@ -2627,7 +2494,7 @@ "badge_partial": "Partial", "badge_noncompliant": "Fail", "btn_configure": "Configure", - "no_devices": "No devices found", + "no_devices": "No se encontraron dispositivos con datos de inventario", "usb_title": "USB Port Control", "usb_hint": "Control USB storage device access for the selected device or organization-wide default policy.", "usb_storage_policy": "USB Storage Policy", @@ -2669,11 +2536,12 @@ "policy_any": "Any" }, "sdk_studio": { - "title": "SDK Studio", - "subtitle": "Visual flow editor for CDAP bridges", + "title": "Panel", + "subtitle": "Resumen de su servidor RustDesk", "new_flow": "New Flow", "open_flow": "Open Flow", "save_flow": "Save Flow", + "import_flow": "Import Flow", "run_flow": "Run", "debug": "Debug", "deploy": "Deploy", @@ -2690,7 +2558,7 @@ "cat_sources": "Sources", "cat_processing": "Processing", "cat_outputs": "Outputs", - "empty_title": "Start Building", + "empty_title": "No se encontraron dispositivos", "empty_desc": "Drag nodes from the palette to start building a flow", "browse_templates": "Browse Templates", "inspector": "Inspector", @@ -2698,7 +2566,7 @@ "console": "Console", "clear_console": "Clear", "console_ready": "Studio ready", - "label": "Label", + "label": "Status", "configuration": "Configuration", "connections": "Connections", "inputs": "Inputs", @@ -2710,9 +2578,9 @@ "status_deployed": "Deployed", "flow_name": "Flow Name", "flow_desc": "Description", - "loading": "Loading...", + "loading": "Cargando...", "no_flows": "No saved flows yet", - "confirm_delete": "Are you sure you want to delete this flow?", + "confirm_delete": "Are you sure you want to delete this item?", "templates": "Templates", "node_modbus_tcp": "Modbus TCP", "node_modbus_rtu": "Modbus RTU", @@ -2739,24 +2607,23 @@ "node_mqtt_publish": "MQTT Publish", "node_database_write": "Database Write", "node_email": "Email", - "node_modbus_write": "Modbus Write", - "import_flow": "Import Flow" + "node_modbus_write": "Modbus Write" }, "updates": { "tab_title": "Updates", - "title": "Software Updates", - "desc": "Check for new versions and update the BetterDesk console from GitHub", + "title": "Panel", + "desc": "Descargue una copia de seguridad completa de la configuración de su consola, usuarios, grupos y ajustes. Los datos de peers del servidor Go se incluyen cuando el backend BetterDesk está activo.", "current_version": "Installed version", "latest_version": "Latest version", - "status": "Status", - "check_now": "Check for updates", - "checking": "Checking…", + "status": "Estado", + "check_now": "Verificar ahora", + "checking": "Verificando...", "up_to_date": "Up to date", "update_available": "Update available", "changelog": "Release Notes", "no_changelog": "No release notes available", "files_changed": "Files changed", - "files": "files", + "files": "Archivos", "changes_unavailable": "Could not load file change list. You can still install the update.", "create_backup": "Create backup before updating", "install": "Install Update", @@ -2774,7 +2641,7 @@ "backups_desc": "Pre-update backups created automatically before each update", "no_backups": "No update backups found", "restore": "Restore", - "restore_confirm": "Are you sure you want to restore from this backup? Changed files will be overwritten.", - "restore_success": "Backup restored successfully. Console is restarting…" + "restore_confirm": "¿Está seguro de que desea restaurar desde esta copia de seguridad? Las secciones seleccionadas serán sobrescritas.", + "restore_success": "Copia de seguridad restaurada correctamente. Algunos cambios pueden requerir recargar la página." } } diff --git a/web-nodejs/lang/fr.json b/web-nodejs/lang/fr.json index 491a7171..604bc813 100644 --- a/web-nodejs/lang/fr.json +++ b/web-nodejs/lang/fr.json @@ -19,21 +19,21 @@ "info": "Information", "all": "Tous", "cancel": "Annuler", - "back": "Retour", - "edit": "Modifier" + "delete": "Supprimer", + "actions": "Actions", "close": "Fermer", "required": "Obligatoire", "name_required": "Le nom est obligatoire", "active": "Actif", "inactive": "Inactif", "invalid_json": "Format JSON invalide", - "login": "Connexion" - "back": "Back", - "edit": "Edit" + "field_required": "{field} is required", + "back": "Retour", + "edit": "Modifier" }, "nav": { "main": "Principal", - "passwords_mismatch": "Les mots de passe ne correspondent pas" + "tools": "Outils réseau", "system": "Système", "dashboard": "Tableau de bord", "devices": "Appareils", @@ -41,39 +41,37 @@ "generator": "Générateur", "settings": "Paramètres", "users": "Utilisateurs", - "greeting_morning": "Bonjour, {name}", - "greeting_afternoon": "Bon après-midi, {name}", - "greeting_evening": "Bonsoir, {name}", - "greeting_night": "Bonne nuit, {name}", - "health_overview": "Vue d'ensemble de l'état", - "devices_online": "Appareils en ligne", - "active_alerts": "Alertes actives", - "recent_connections": "Appareils totaux", - "server_uptime": "Temps de fonctionnement du serveur", - "activity_feed": "Activité récente", - "no_recent_activity": "Aucune activité récente", - "just_now": "à l'instant", - "ago": "il y a", + "inventory": "Inventory", + "tickets": "Tickets", + "help_requests": "Help Requests", + "activity": "Activity", + "automation": "Automation", + "file_transfer": "Transfert de fichiers", + "network": "Network Adapters", + "dataguard": "DataGuard", + "reports": "Reports", + "tenants": "Tenants", + "registrations": "Registrations", + "management": "Management", + "toggle_sidebar": "Basculer la barre latérale", + "toggle_theme": "Changer de thème", "cdap": "CDAP", "fleet": "Flotte", "scaling": "Mise à l'échelle", "cross_platform": "Multiplateforme", "tokens": "Device Tokens", "organizations": "Organizations", - "remote_viewer": "Visionneuse distante", + "policies": "Politiques DLP", "attestation": "Attestation", "remote": "Remote Desktop", "toolkit": "Toolkit", "security_audit": "Audit de Sécurité", "languages": "Langues", "resource_control": "Contrôle des ressources", + "sdk_studio": "SDK Studio", "chat": "Discussion", "help": "Help", "expand_sidebar": "Expand sidebar", - "clients": "Clients", - "exit_desktop": "Quitter le bureau", - "toggle_theme": "Changer de thème", - "sdk_studio": "SDK Studio", "login": "Connexion" }, "auth": { @@ -88,6 +86,7 @@ "remember_me": "Se souvenir de moi", "login_failed": "Échec de la connexion. Veuillez vérifier vos identifiants.", "invalid_credentials": "Nom d'utilisateur ou mot de passe invalide.", + "pro_only_account": "Ce compte est réservé au client de bureau RustDesk. Veuillez utiliser l'application RustDesk pour vous connecter.", "fill_all_fields": "Veuillez remplir tous les champs", "logout_confirm": "Êtes-vous sûr de vouloir vous déconnecter ?", "change_password": "Changer le mot de passe", @@ -105,7 +104,6 @@ "totp_enter_recovery": "Veuillez entrer un code de récupération", "totp_session_expired": "Session expirée. Veuillez vous reconnecter.", "totp_already_enabled": "L'authentification à deux facteurs est déjà activée", - "pro_only_account": "Ce compte est réservé au client de bureau RustDesk. Veuillez utiliser l'application RustDesk pour vous connecter.", "passwords_mismatch": "Les mots de passe ne correspondent pas" }, "dashboard": { @@ -129,7 +127,7 @@ "health_overview": "Vue d'ensemble de l'état", "devices_online": "Appareils en ligne", "active_alerts": "Alertes actives", - "recent_connections": "Total des appareils", + "recent_connections": "Appareils totaux", "server_uptime": "Temps de fonctionnement du serveur", "activity_feed": "Activité récente", "no_recent_activity": "Aucune activité récente", @@ -145,7 +143,7 @@ "tip_tutorials": "Cliquez sur le bouton d'aide en bas à droite pour afficher des tutoriels interactifs." }, "devices": { - "title": "Appareils", + "title": "Tableau de bord", "id": "ID", "hostname": "Nom d'hôte", "username": "Nom d'utilisateur", @@ -153,29 +151,29 @@ "version": "Version", "ip_address": "Adresse IP", "note": "Note", - "saved": "Enregistré avec succès", - "back": "Retour", - "create": "Créer", - "dismiss": "Ignorer", - "view_all": "Tout afficher" + "last_seen": "Vu en dernier", + "last_online": "Last Online", + "first_seen": "First Seen", + "created": "Créé", + "status": "Statut", "ban_reason": "Raison du bannissement", "actions": "Actions", "search_placeholder": "Rechercher des appareils...", "filter_all": "Tous", "filter_online": "En ligne", "filter_offline": "Hors ligne", - "error": "Erreur", - "not_found": "Introuvable", - "server_error": "Erreur du serveur", - "load_device_failed": "Impossible de charger les détails de l'appareil" + "filter_banned": "Banned", + "selected": "selected", + "showing": "Showing", + "of": "of", "sync_status": "État de synchronisation", "sync_success": "Statut synchronisé avec succès", "empty_title": "Aucun appareil trouvé", "empty_text": "Aucun appareil ne correspond à vos filtres actuels", "edit_title": "Détails de l'appareil", - "select_conversation_hint": "Sélectionnez une conversation pour afficher les messages", - "info": "Informations", - "group_name_placeholder": "Entrez le nom du groupe" + "delete_title": "Supprimer l'utilisateur", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", + "delete_warning": "You are about to permanently delete this device:", "delete_permanent": "Cette action est irréversible. Toutes les données associées à cet appareil seront définitivement supprimées de la base de données.", "delete_success": "Appareil supprimé avec succès", "revoke_option": "Révoquer l'appareil", @@ -183,7 +181,7 @@ "revoke_success": "Appareil révoqué avec succès", "details": "Détails de l'appareil", "ban_title": "Bannir l'appareil", - "no_rules": "Aucune règle d'attribution." + "ban_confirm": "Are you sure you want to ban device {id}?", "ban_success": "Appareil banni avec succès", "unban_title": "Débannir l'appareil", "unban_confirm": "Êtes-vous sûr de vouloir débannir l'appareil {id} ?", @@ -200,7 +198,7 @@ "bulk_delete_success": "{count} appareils supprimés avec succès", "columns": "Colonnes", "toggle_columns": "Basculer les colonnes visibles", - "not_found": "Device not found", + "not_found": "Introuvable", "delete_failed": "Failed to delete device", "change_id_failed": "Failed to change device ID", "invalid_id": "Invalid device ID (6-16 characters required)", @@ -235,42 +233,35 @@ "operators_hint": "Comma-separated usernames. Leave empty to allow all operators.", "last_updated_by": "Last updated by", "access_policy_saved": "Access policy saved", + "display_name": "Display Name", + "display_name_placeholder": "Custom name (overrides hostname)", + "note_placeholder": "Notes about this device", "tabs": { "overview": "Overview", "hardware": "Matériel", "metrics": "Métriques", "connections": "Connections", "audit": "Audit", - "info": "Info", - "history": "History", - "details": "Détails", - "notes": "Notes" + "info": "Information", + "history": "History" }, "hardware": { "cpu": "Processor", "memory": "Memory", "disk": "Disk", "os": "Operating System", - "hostname": "Hostname", + "hostname": "Nom d'hôte", "uptime": "Uptime", "load_avg": "Load Average", "network": "Network Adapters", "no_data": "No hardware data available", - "title": "Hardware Information", + "title": "Tableau de bord", "gpu": "Graphics Card" - }, - "connect_remote": "Connexion distante", - "copy_id": "Copier l'ID", - "live_metrics": "Métriques en direct", - "history_charts": "Graphiques d'historique", - "no_metrics": "Aucune métrique disponible", - "display_name": "Display Name", - "display_name_placeholder": "Custom name (overrides hostname)", - "note_placeholder": "Notes about this device" + } }, "keys": { - "title": "Clés du serveur", - "subtitle": "Clé publique et configuration pour les clients RustDesk", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "public_key": "Clé publique", "qr_code": "Code QR", "server_info": "Informations du serveur", @@ -281,12 +272,12 @@ "no_key_to_copy": "Aucune clé à copier", "no_qr": "Code QR non disponible", "download_success": "Fichier de clé téléchargé", - "not_found": "Key not found", + "not_found": "Introuvable", "api_not_found": "API key not found" }, "settings": { - "title": "Paramètres", - "subtitle": "Configuration de la console et paramètres du compte", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "tab_general": "Général", "tab_server": "Serveur", "tab_branding": "Image de marque", @@ -295,7 +286,7 @@ "change_password": "Changer le mot de passe", "password_desc": "Mettre à jour le mot de passe de votre compte", "current_password": "Mot de passe actuel", - "new_password": "Nouveau mot de passe", + "new_password": "New password (leave empty to keep current)", "confirm_password": "Confirmer le mot de passe", "save_password": "Mettre à jour le mot de passe", "password_changed": "Mot de passe modifié avec succès", @@ -310,7 +301,7 @@ "server_info": "Informations du serveur", "version": "Version", "database": "Base de données", - "uptime": "Temps de fonctionnement", + "uptime": "Uptime", "audit_log": "Journal d'audit", "audit_desc": "Activité récente de la console", "no_audit_logs": "Aucun journal d'audit trouvé", @@ -357,7 +348,7 @@ "totp_step2": "Scannez le code QR ci-dessous", "totp_step3": "Entrez le code à 6 chiffres pour vérifier", "totp_manual_key": "Clé manuelle", - "totp_enter_code": "Entrez le code de vérification", + "totp_enter_code": "Veuillez entrer un code à 6 chiffres", "totp_verify_enable": "Vérifier & Activer", "totp_enabled_success": "Authentification à deux facteurs activée !", "totp_recovery_warning": "Conservez ces codes de récupération en lieu sûr. Chaque code ne peut être utilisé qu'une seule fois. Si vous perdez l'accès à votre application d'authentification, vous pouvez utiliser ces codes pour vous connecter.", @@ -369,7 +360,7 @@ "time": "Heure", "user": "Utilisateur", "action": "Action", - "details": "Détails", + "details": "Détails de l'appareil", "action_login": "Login", "action_login_failed": "Login Failed", "action_logout": "Logout", @@ -385,8 +376,8 @@ "action_device_delete": "Device Deleted" }, "generator": { - "title": "Générateur de configuration client", - "subtitle": "Générer la configuration pour les clients RustDesk", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "config_options": "Options de configuration", "server_address": "Adresse du serveur", "server_address_hint": "Domaine ou adresse IP de votre serveur", @@ -413,7 +404,7 @@ "status": { "online": "En ligne", "offline": "Hors ligne", - "banned": "Banni", + "banned": "Bannis", "running": "En cours", "stopped": "Arrêté", "unknown": "Inconnu", @@ -427,7 +418,7 @@ "connect_desktop": "Connecter via le client de bureau", "remote_viewer": "Visionneuse distante", "web_remote": "Bureau distant web", - "details": "Détails", + "details": "Détails de l'appareil", "edit": "Modifier", "delete": "Supprimer", "ban": "Bannir", @@ -438,14 +429,14 @@ "close": "Fermer", "clear": "Effacer", "ok": "OK", - "saved": "Enregistré avec succès", + "saved": "Enregistré", "back": "Retour", "create": "Créer", "dismiss": "Ignorer", - "view_all": "Voir tout" + "view_all": "Tout afficher" }, "time": { - "just_now": "À l'instant", + "just_now": "à l'instant", "seconds_ago": "Il y a {count} seconde(s)", "minutes_ago": "Il y a {count} minute(s)", "hours_ago": "Il y a {count} heure(s)", @@ -459,8 +450,8 @@ "day_sun": "Sun" }, "users": { - "title": "Gestion des utilisateurs", - "subtitle": "Gérer les utilisateurs et les permissions de la console", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "add_user": "Ajouter un utilisateur", "edit_user": "Modifier l'utilisateur", "username": "Nom d'utilisateur", @@ -474,23 +465,24 @@ "role_admin": "Administrateur", "role_operator": "Opérateur", "role_viewer": "Observateur", + "role_pro": "Pro (API only)", "role_hint": "Les observateurs peuvent uniquement consulter les données, les opérateurs peuvent gérer les appareils, les administrateurs ont un accès complet", "created": "Créé", "last_login": "Dernière connexion", "never": "Jamais", "actions": "Actions", - "create": "Créer un utilisateur", + "create": "Créer", "edit": "Modifier", "reset_password": "Réinitialiser le mot de passe", - "new_password": "Nouveau mot de passe", + "new_password": "New password (leave empty to keep current)", "delete_title": "Supprimer l'utilisateur", "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", - "delete_success": "Utilisateur supprimé avec succès", + "delete_success": "Appareil supprimé avec succès", "user_created": "Utilisateur créé avec succès", "user_updated": "Utilisateur mis à jour avec succès", "password_reset_success": "Mot de passe réinitialisé avec succès", - "empty_title": "Aucun utilisateur trouvé", - "empty_text": "Ajoutez des utilisateurs pour gérer l'accès à la console", + "empty_title": "Aucun appareil trouvé", + "empty_text": "Aucun appareil ne correspond à vos filtres actuels", "fill_required": "Veuillez remplir tous les champs obligatoires", "invalid_username": "Le nom d'utilisateur doit contenir 3-32 caractères, lettres, chiffres et underscores uniquement", "username_exists": "Le nom d'utilisateur existe déjà", @@ -502,7 +494,7 @@ "last_admin": "Impossible de supprimer le dernier administrateur", "admin_only": "Cette fonctionnalité est réservée aux administrateurs", "password_required": "Le mot de passe est requis", - "not_found": "Utilisateur non trouvé", + "not_found": "Introuvable", "strength_weak": "Faible", "strength_medium": "Moyen", "strength_strong": "Fort", @@ -511,24 +503,23 @@ "tip_unique_accounts": "Créez des comptes individuels pour chaque personne", "tip_viewer_role": "Utilisez le rôle observateur pour les utilisateurs qui n'ont besoin que d'un accès en lecture", "tip_operator_role": "Utilisez le rôle opérateur pour les utilisateurs qui doivent gérer les appareils mais pas les utilisateurs", - "tip_audit_logs": "Vérifiez régulièrement les journaux d'audit pour détecter les activités suspectes", - "role_pro": "Pro (API only)" + "tip_audit_logs": "Vérifiez régulièrement les journaux d'audit pour détecter les activités suspectes" }, "folders": { - "title": "Dossiers", - "create": "Créer un dossier", - "edit": "Modifier le dossier", - "delete": "Supprimer le dossier", - "name": "Nom du dossier", + "title": "Tableau de bord", + "create": "Créer", + "edit": "Modifier", + "delete": "Supprimer", + "name": "Folder Name", "name_placeholder": "Entrez le nom du dossier", - "name_required": "Le nom du dossier est requis", + "name_required": "Le nom est obligatoire", "name_too_long": "Le nom du dossier est trop long (max 50 caractères)", "color": "Couleur", "icon": "Icône", - "not_found": "Dossier non trouvé", - "delete_confirm": "Êtes-vous sûr de vouloir supprimer ce dossier ? Les appareils seront désassignés.", - "delete_success": "Dossier supprimé avec succès", - "created": "Dossier créé avec succès", + "not_found": "Introuvable", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", + "delete_success": "Appareil supprimé avec succès", + "created": "Créé", "updated": "Dossier mis à jour avec succès", "no_devices_selected": "Aucun appareil sélectionné", "devices_moved": "Appareils déplacés avec succès", @@ -560,17 +551,17 @@ "language_change_failed": "Échec du changement de langue", "ban_failed": "Échec du bannissement de l'appareil", "unban_failed": "Échec du débannissement de l'appareil", - "delete_failed": "Échec de la suppression de l'appareil", - "change_id_failed": "Échec du changement d'ID de l'appareil", + "delete_failed": "Failed to delete device", + "change_id_failed": "Failed to change device ID", "bulk_delete_failed": "Échec de la suppression des appareils", "sync_failed": "Échec de la synchronisation", "error": "Erreur", "not_found": "Introuvable", "server_error": "Erreur du serveur", - "load_device_failed": "Impossible de charger l'appareil" + "load_device_failed": "Impossible de charger les détails de l'appareil" }, "remote": { - "title": "Bureau à distance", + "title": "Tableau de bord", "connecting": "Connexion en cours...", "waiting_password": "En attente du mot de passe", "authenticating": "Authentification...", @@ -578,9 +569,9 @@ "disconnected": "Déconnecté", "error": "Erreur", "status_idle": "Inactif", - "password_required": "Mot de passe requis", + "password_required": "Le mot de passe est requis", "enter_password_for": "Entrez le mot de passe pour l'appareil", - "password_placeholder": "Mot de passe de l'appareil", + "password_placeholder": "Entrez le mot de passe", "connect": "Connecter", "reconnect": "Reconnecter", "disconnect": "Déconnecter", @@ -683,7 +674,7 @@ "import_theme": "Importer un thème", "reset_defaults": "Réinitialiser par défaut", "save_branding": "Enregistrer l'image de marque", - "saved": "Image de marque enregistrée avec succès. Rechargement...", + "saved": "Enregistré", "exported": "Thème exporté", "imported": "Thème importé avec succès. Rechargement...", "import_error": "Échec de l'import du thème. Format de fichier invalide.", @@ -731,8 +722,8 @@ "section_live_metrics": "Métriques en direct", "section_current_usage": "Utilisation actuelle", "section_usage_history": "Historique d'utilisation", - "os": "Système d'exploitation", - "version": "Version du client", + "os": "Operating System", + "version": "Version", "cpu_model": "Modèle CPU", "cpu_cores": "Cœurs CPU", "cpu_freq": "Fréquence CPU", @@ -743,21 +734,21 @@ "device_groups": "Groupes", "no_sysinfo": "Aucune information matérielle disponible", "no_sysinfo_hint": "Les infos système apparaîtront après que l'appareil aura envoyé un rapport sysinfo", - "no_metrics": "Aucune donnée de métriques disponible", + "no_metrics": "Aucune métrique disponible", "no_metrics_hint": "Les métriques apparaîtront après que l'appareil aura envoyé des rapports de battement de cœur", "chart_oldest": "← Plus ancien", "chart_newest": "Plus récent →" }, "inventory": { - "title": "Inventaire", - "subtitle": "Inventaire matériel et logiciel des appareils gérés", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "device_id": "ID de l'appareil", "hostname": "Nom d'hôte", - "os": "Système d'exploitation", - "cpu": "CPU", + "os": "Operating System", + "cpu": "Processor", "cpu_cores": "Cœurs CPU", "cpu_usage": "Utilisation CPU", - "memory": "Mémoire", + "memory": "Memory", "memory_total": "Mémoire totale", "memory_used": "Mémoire utilisée", "memory_available": "Mémoire disponible", @@ -765,14 +756,14 @@ "swap": "Swap", "disks": "Disques", "disk_count": "Nombre de disques", - "network": "Réseau", + "network": "Network Adapters", "network_interfaces": "Interfaces réseau", "software": "Logiciels", "software_count": "Logiciels installés", "system": "Système", "kernel": "Noyau", "architecture": "Architecture", - "uptime": "Temps de fonctionnement", + "uptime": "Uptime", "frequency": "Fréquence", "physical_cores": "Cœurs physiques", "logical_cores": "Cœurs logiques", @@ -793,7 +784,7 @@ "total_uploads": "Total", "last_seen": "Vu en dernier", "collected_at": "Collecté le", - "no_data": "Aucune donnée d'inventaire disponible. Cliquez sur \"Collecter maintenant\" pour recueillir les informations système.", + "no_data": "No hardware data available", "no_devices": "Aucun appareil avec des données d'inventaire trouvé", "detail_title": "Détails d'inventaire de l'appareil", "telemetry": "Télémétrie", @@ -802,11 +793,11 @@ "refresh": "Actualiser" }, "tickets": { - "title": "Helpdesk", - "subtitle": "Tickets de support et suivi des problèmes", - "create": "Nouveau ticket", - "edit": "Modifier le ticket", - "delete": "Supprimer le ticket", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", + "create": "Créer", + "edit": "Modifier", + "delete": "Supprimer", "detail": "Détails du ticket", "ticket_id": "ID du ticket", "ticket_title": "Titre", @@ -842,19 +833,19 @@ "internal_note": "Note interne (non visible par les utilisateurs finaux)", "attachments": "Pièces jointes", "upload_attachment": "Télécharger une pièce jointe", - "download": "Télécharger", + "download": "Télécharger la clé", "connect_device": "Se connecter à l'appareil", "no_tickets": "Aucun ticket trouvé", "no_comments": "Aucun commentaire", "no_attachments": "Aucune pièce jointe", "title_required": "Le titre est requis", - "delete_confirm": "Êtes-vous sûr de vouloir supprimer le ticket #{id} ?", - "delete_success": "Ticket supprimé avec succès", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", + "delete_success": "Appareil supprimé avec succès", "created_success": "Ticket créé avec succès", "updated_success": "Ticket mis à jour avec succès", "sla_overdue": "SLA dépassé", "filter_all": "Tous", - "search_placeholder": "Rechercher des tickets...", + "search_placeholder": "Rechercher des appareils...", "assign_to_me": "M'assigner", "unassign": "Désassigner", "stats_total": "Total", @@ -864,8 +855,8 @@ "stats_closed": "Fermés" }, "activity": { - "title": "Surveillance d'activité", - "subtitle": "Utilisation des applications et suivi de l'inactivité", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "device": "Appareil", "hostname": "Nom d'hôte", "sessions": "Sessions", @@ -873,7 +864,7 @@ "active_time": "Temps actif", "last_report": "Dernier rapport", "top_apps": "Applications principales", - "app_name": "Application", + "app_name": "Nom de l'application", "window_title": "Titre de la fenêtre", "category": "Catégorie", "duration": "Durée", @@ -883,7 +874,7 @@ "total_active": "Total actif", "total_idle": "Total inactif", "detail_count": "Enregistrements détaillés", - "no_data": "Aucune donnée d'activité disponible", + "no_data": "No hardware data available", "no_sessions": "Aucune session enregistrée", "filter_from": "De", "filter_to": "À", @@ -900,28 +891,22 @@ "category_system": "Système", "category_other": "Autre", "summary": "Résumé", - "details": "Détails", + "details": "Détails de l'appareil", "refresh": "Actualiser", "search": "Search devices...", "date_range": "Plage de dates", - "device_id": "Device ID", + "device_id": "ID de l'appareil", "session_start": "Début de session", "session_end": "Fin de session", "user": "Utilisateur", "no_activity": "No activity recorded", "reported_at": "Reported At", - "detail": "Detail", - "no_apps": "No applications", - "status": "Statut", - "export": "Exporter", - "export_csv": "Exporter en CSV", - "export_pdf": "Exporter en PDF", - "today": "Aujourd'hui", - "this_week": "Cette semaine" + "detail": "Détails du ticket", + "no_apps": "No applications" }, "automation": { - "title": "Automatisation & Alertes", - "subtitle": "Règles d'alerte, commandes à distance et configuration SMTP", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "rules": "Règles d'alerte", "rules_subtitle": "Définir les conditions qui déclenchent des notifications", "alerts": "Historique des alertes", @@ -983,18 +968,18 @@ "smtp_save": "Enregistrer la configuration", "smtp_test_success": "Connexion réussie", "smtp_test_failed": "Échec de la connexion", - "no_rules": "Aucune règle d'alerte configurée", + "no_rules": "Aucune règle d'attribution.", "no_alerts": "Aucune alerte déclenchée", "no_commands": "Aucune commande envoyée", "id_payload_required": "Device ID and payload are required", "no_commands_sent": "Aucune commande envoyée pour le moment" }, "file_transfer": { - "title": "Transfert de fichiers", + "title": "Tableau de bord", "transfers": "Transferts", "new_transfer": "Nouveau transfert", "upload": "Télécharger vers", - "download": "Télécharger depuis", + "download": "Télécharger la clé", "direction": "Direction", "filename": "Nom du fichier", "file_size": "Taille du fichier", @@ -1003,7 +988,7 @@ "status": "Statut", "device": "Appareil", "initiated_by": "Initié par", - "created_at": "Créé le", + "created_at": "Créé", "cancel": "Annuler", "cancel_confirm": "Êtes-vous sûr de vouloir annuler ce transfert ?", "download_file": "Télécharger le fichier", @@ -1028,12 +1013,12 @@ "error_no_file": "Aucun fichier sélectionné" }, "network": { - "title": "Surveillance réseau", + "title": "Tableau de bord", "targets": "Cibles de surveillance", "add_target": "Ajouter une cible", "edit_target": "Modifier la cible", "delete_target": "Supprimer la cible", - "delete_confirm": "Êtes-vous sûr de vouloir supprimer cette cible ?", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", "target_name": "Nom", "host": "Hôte", "port": "Port", @@ -1050,7 +1035,7 @@ "status_down": "Inaccessible", "status_unknown": "Inconnu", "check_now": "Vérifier maintenant", - "history": "Historique des vérifications", + "history": "History", "stats": "Statistiques", "total_targets": "Cibles totales", "targets_up": "Cibles accessibles", @@ -1081,7 +1066,7 @@ "latency": "Latency", "check_history": "Check History", "name_host_required": "Name and host are required", - "uptime": "Disponibilité", + "uptime": "Uptime", "response_time": "Temps de réponse", "avg_response": "Average Response", "charts": "Graphiques", @@ -1090,22 +1075,22 @@ "uptime_percent": "Disponibilité %", "last_24h": "Dernières 24 heures", "last_7d": "7 derniers jours", - "last_30d": "30 derniers jours", - "avg_response_time": "Temps de réponse moyen" + "last_30d": "30 derniers jours" }, "dataguard": { - "title": "DataGuard — DLP", + "title": "Tableau de bord", "policies": "Politiques DLP", "add_policy": "Ajouter une politique", "edit_policy": "Modifier la politique", "delete_policy": "Supprimer la politique", - "delete_confirm": "Êtes-vous sûr de vouloir supprimer cette politique ?", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", "policy_name": "Nom", "policy_description": "Description", - "status": "Status", + "policy_desc": "Policy Description", + "status": "Statut", "enabled": "Activé", "disabled": "Désactivé", - "rules": "Règles", + "rules": "Règles d'alerte", "add_rule": "Ajouter une règle", "rule_type": "Type de règle", "rule_type_usb": "Périphérique USB", @@ -1156,22 +1141,21 @@ "events_count": "Events", "search_events": "Search events...", "event_time": "Event Time", - "device": "Device", + "device": "Appareil", "policy": "Policy", - "detail": "Detail", + "detail": "Détails du ticket", "scope_help": "Comma-separated device IDs, or leave empty for all", - "scope_all": "All Devices", - "active": "Active", + "scope_all": "Tous les appareils", + "active": "Actif", "type_file_type": "File Type", + "type_usb": "USB", "type_clipboard": "Clipboard", "type_screen_share": "Screen Share", - "type_file_transfer": "File Transfer", - "policy_desc": "Policy Description", - "type_usb": "USB" + "type_file_transfer": "File Transfer" }, "reports": { - "title": "Rapports", - "generate": "Générer un rapport", + "title": "Tableau de bord", + "generate": "Générer la configuration", "generate_csv": "Exporter CSV", "report_type": "Type de rapport", "type_devices": "Résumé des appareils", @@ -1181,14 +1165,14 @@ "type_network": "Rapport réseau", "type_inventory": "Rapport d'inventaire", "type_alerts": "Rapport d'alertes", - "saved": "Rapports sauvegardés", + "saved": "Enregistré", "save_report": "Sauvegarder le rapport", "delete_report": "Supprimer le rapport", - "delete_confirm": "Êtes-vous sûr de vouloir supprimer ce rapport sauvegardé ?", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", "no_saved": "Aucun rapport enregistré", "report_title": "Titre", "created_by": "Créé par", - "created_at": "Créé le", + "created_at": "Créé", "filters": "Filtres", "date_from": "De", "date_to": "À", @@ -1201,8 +1185,8 @@ "banned": "Bannis", "platform_distribution": "Distribution par plateforme", "top_applications": "Applications principales", - "total_active": "Temps total actif", - "total_idle": "Temps total inactif", + "total_active": "Total actif", + "total_idle": "Total inactif", "dlp_stats": "Statistiques DLP", "banned_devices": "Appareils bannis", "audit_logs": "Journaux d'audit", @@ -1225,20 +1209,20 @@ "type_alerts_desc": "Règles d'alerte et historique des alertes déclenchées", "report_name": "Nom du rapport", "format": "Format", - "save": "Enregistrer le rapport", + "save": "Enregistrer", "preview": "Aperçu", - "download": "Télécharger", + "download": "Télécharger la clé", "delete_saved": "Supprimer le rapport", "raw_json": "Raw JSON" }, "tenants": { - "title": "Multi-location", + "title": "Tableau de bord", "list": "Locataires", "add_tenant": "Ajouter un locataire", "edit_tenant": "Modifier le locataire", "delete_tenant": "Supprimer le locataire", - "delete_confirm": "Êtes-vous sûr de vouloir supprimer ce locataire ? Toutes les affectations d'appareils et d'utilisateurs seront supprimées.", - "name": "Nom", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", + "name": "Name", "slug": "Slug", "contact_name": "Nom du contact", "contact_email": "E-mail du contact", @@ -1255,31 +1239,31 @@ "assign_user": "Assigner un utilisateur", "remove_user": "Retirer l'utilisateur", "no_tenants": "Aucun locataire configuré", - "no_devices": "Aucun appareil assigné à ce locataire", + "no_devices": "Aucun appareil avec des données d'inventaire trouvé", "no_users": "Aucun utilisateur assigné à ce locataire", - "stats": "Statistiques du locataire", + "stats": "Statistiques", "total_devices": "Total des appareils", "online_devices": "Appareils en ligne", "total_users": "Total des utilisateurs", - "created_at": "Créé le", - "updated_at": "Mis à jour le", + "created_at": "Créé", + "updated_at": "Mis à jour", "slug_exists": "Le slug du locataire existe déjà", "total_tenants": "Total des locataires", "active_tenants": "Locataires actifs", - "search": "Rechercher des locataires...", + "search": "Search devices...", "create_tenant": "Créer un locataire", - "detail": "Détail du locataire", + "detail": "Détails du ticket", "contact": "Contact", "enabled": "Activé", - "disabled": "Disabled", + "disabled": "Désactivé", "max": "max", - "info": "Informations du locataire", + "info": "Information", "status": "Statut" }, "registrations": { - "title": "Inscriptions des appareils", - "subtitle": "Gérer les demandes d'inscription des appareils découverts via LAN", - "search_placeholder": "Rechercher par ID d'appareil, nom d'hôte ou IP...", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", + "search_placeholder": "Rechercher des appareils...", "no_registrations": "Aucune demande d'inscription", "col_device_id": "ID de l'appareil", "col_hostname": "Nom d'hôte", @@ -1301,7 +1285,7 @@ "reject_reason": "Raison (optionnel)", "reject_reason_placeholder": "Entrez la raison du rejet...", "rejected_success": "Inscription de l'appareil rejetée", - "delete_confirm": "Êtes-vous sûr de vouloir supprimer cet enregistrement d'inscription ?", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", "deleted_success": "Enregistrement d'inscription supprimé", "enrollment_title": "Device Enrollment", "enrollment_subtitle": "Pending enrollment requests from BetterDesk desktop clients", @@ -1318,7 +1302,7 @@ "enrollment_rejected_success": "Device enrollment rejected" }, "backup": { - "title": "Sauvegarde", + "title": "Tableau de bord", "desc": "Téléchargez une sauvegarde complète de la configuration de votre console, utilisateurs, groupes et paramètres. Les données peer du serveur Go sont incluses lorsque le backend BetterDesk est actif.", "restore_title": "Restaurer", "restore_desc": "Téléchargez un fichier de sauvegarde précédemment téléchargé pour restaurer la configuration de la console. Sélectionnez ci-dessous les sections à restaurer.", @@ -1328,10 +1312,10 @@ "stat_groups": "Groupes", "stat_strategies": "Stratégies", "stat_backend": "Backend", - "download": "Télécharger la sauvegarde", + "download": "Télécharger la clé", "creating": "Création de la sauvegarde...", - "download_success": "Sauvegarde téléchargée avec succès", - "upload": "Envoyer la sauvegarde", + "download_success": "Fichier de clé téléchargé", + "upload": "Télécharger vers", "restore_confirm": "Êtes-vous sûr de vouloir restaurer à partir de cette sauvegarde ? Les sections sélectionnées seront écrasées.", "restore_success": "Sauvegarde restaurée avec succès. Certaines modifications peuvent nécessiter un rechargement de la page.", "restored": "Restauré", @@ -1345,12 +1329,12 @@ "opt_users": "Comptes utilisateurs", "opt_users_warning": "Destructif : remplace TOUS les comptes utilisateurs par les données de sauvegarde. Vous pourriez être déconnecté.", "no_file": "Aucun fichier de sauvegarde sélectionné", - "invalid_json": "Fichier de sauvegarde invalide : JSON non valide", + "invalid_json": "Format JSON invalide", "invalid_format": "Fichier de sauvegarde invalide : pas une sauvegarde BetterDesk" }, "cdap": { "device_detail": "Détail de l'appareil", - "loading": "Chargement des informations de l'appareil...", + "loading": "Chargement...", "loading_widgets": "Loading device widgets...", "load_error": "Failed to load device data", "connected": "Connecté", @@ -1367,7 +1351,7 @@ "cdap_disabled": "CDAP Disabled", "cdap_devices": "CDAP Devices", "cdap_connections": "Active Connections", - "send_command": "Send Command", + "send_command": "Envoyer la commande", "command_sent": "Commande envoyée", "command_failed": "Échec de l'envoi de la commande", "devices_title": "CDAP Devices", @@ -1375,7 +1359,7 @@ "stat_connected": "Connected", "stat_port": "Port", "search_devices": "Search devices...", - "no_devices": "No devices connected", + "no_devices": "Aucun appareil avec des données d'inventaire trouvé", "no_devices_desc": "No CDAP devices are currently connected. Devices will appear here once they connect to the gateway.", "gateway_disabled": "Passerelle CDAP désactivée", "gateway_disabled_desc": "Enable the CDAP gateway by setting CDAP_ENABLED=true in the server configuration.", @@ -1389,16 +1373,16 @@ "type_iot": "IoT", "type_scada": "SCADA", "type_os_agent": "Agent OS", - "type_network": "Network", + "type_network": "Rapport réseau", "type_camera": "Camera", - "type_custom": "Appareil personnalisé", - "active_alerts": "Active Alerts", + "type_custom": "Personnalisé", + "active_alerts": "Alertes actives", "alert_fired": "Alert fired", "alert_cleared": "Alert cleared", - "no_alerts": "No active alerts", + "no_alerts": "Aucune alerte déclenchée", "connect_terminal": "Connect Terminal", "table_search": "Search...", - "just_now": "Just now", + "just_now": "à l'instant", "terminal_connecting": "Connecting to device...", "terminal_disconnected": "Disconnected", "terminal_error": "Terminal connection failed", @@ -1408,7 +1392,7 @@ "no_linked_devices": "No linked devices", "unlink_confirm": "Are you sure you want to unlink this device?", "link_prompt": "Enter the Peer ID to link to this device:", - "connect_desktop": "Connect Desktop", + "connect_desktop": "Connecter via le client de bureau", "connect_video": "Connect Stream", "connect_files": "Browse Files", "connect_audio": "Connecter l'audio", @@ -1422,86 +1406,38 @@ "clipboard_out": "Presse-papiers navigateur → appareil", "monitor_select": "Sélectionner le moniteur", "keyframe_request": "Demander une image clé", - "quality_auto": "Qualité automatique", - "title": "Appareils CDAP", - "subtitle": "Contrôle des ponts IoT et des appareils natifs BetterDesk", - "device_offline": "Appareil hors ligne", - "device_offline_hint": "Cet appareil n'est actuellement pas connecté à CDAP. L'état affiché peut être obsolète.", - "no_commands": "Cet appareil n'accepte pas de commandes.", - "command_log_empty": "Aucune commande envoyée pour le moment.", - "command_confirm_hint": "Cela enverra la commande à l'appareil. Continuer ?", - "widget_toggle": "Basculer", - "widget_button": "Exécuter", - "widget_slider": "Ajuster", - "widget_select": "Sélectionner", - "widget_text": "Texte", - "widget_gauge": "Jauge", - "widget_chart": "Graphique", - "widget_led": "Indicateur LED", - "group_uncategorized": "Non catégorisé", - "status_gateway": "État de la passerelle", - "gateway_enabled": "Passerelle CDAP activée", - "device_count": "Appareils connectés", - "refresh": "Actualiser l'état", - "type_iot_bridge": "Pont IoT", - "uptime": "Disponibilité", - "version": "Version", - "capabilities": "Capacités", - "cap_telemetry": "Télémétrie", - "cap_commands": "Commandes", - "cap_remote_desktop": "Bureau à distance", - "cap_file_transfer": "Transfert de fichiers", - "cap_clipboard": "Presse-papiers", - "terminal": "Terminal", - "terminal_open": "Ouvrir le terminal", - "terminal_close": "Fermer le terminal", - "files": "Fichiers", - "files_browse": "Parcourir les fichiers", - "files_upload": "Télécharger vers", - "files_download": "Télécharger depuis", - "metrics": "Métriques", - "cpu_usage": "Utilisation CPU", - "memory_usage": "Utilisation mémoire", - "disk_usage": "Utilisation disque", - "no_data": "Aucune donnée disponible", - "device_id": "ID de l'appareil", - "device_name": "Nom de l'appareil", - "device_type": "Type d'appareil", - "last_seen": "Dernière connexion", - "heartbeat": "Heartbeat", - "heartbeat_ok": "Heartbeat OK", - "heartbeat_stale": "Heartbeat obsolète", - "actions": "Actions", - "disconnect": "Déconnecter", - "disconnect_confirm": "Êtes-vous sûr de vouloir déconnecter cet appareil ?", - "disconnected_success": "Appareil déconnecté" + "quality_auto": "Qualité automatique" }, "desktop": { "switch_mode": "Desktop Mode", "console_mode": "Console Mode", - "loading": "Loading...", + "loading": "Chargement...", "minimize": "Minimize", "maximize": "Maximize", "restore": "Restore", - "close": "Close", + "close": "Fermer", "widgets_mode": "Widgets", "windows_mode": "Windows", "wallpaper": "Fond d'écran", "add_widget": "Add Widget", "remove_widget": "Remove Widget", + "pop_out_widget": "Pop Out", + "pop_in_widget": "Pop In", "configure": "Configure", "search_widgets": "Search widgets...", "cat_monitoring": "Monitoring", "cat_devices": "Devices", "cat_tools": "Tools", "cat_general": "General", - "notes_placeholder": "Write notes here...", - "search_placeholder": "Search devices, pages, settings...", + "notes_placeholder": "Ajoutez des notes sur cet appareil...", + "search_placeholder": "Rechercher des appareils...", "search_pages": "Pages", - "search_devices": "Devices", + "search_devices": "Search devices...", "search_no_results": "No results", - "exit_desktop": "Exit Desktop", - "refresh": "Refresh", + "exit_desktop": "Quitter le bureau", + "refresh": "Actualiser", + "fullscreen": "Plein écran", + "help": "Help", "widget_clock": "Clock", "widget_device_status": "Device Status", "widget_server_health": "Server Info", @@ -1571,6 +1507,8 @@ "wp_fit": "Ajuster", "wp_stretch": "Étirer", "wp_center": "Centrer", + "wp_unavailable": "Wallpaper images are not installed on this server.", + "wp_download_hint": "Place PNG images in the public/wallpapers/ directory to enable wallpaper selection.", "widget_calendar": "Calendar", "widget_process_monitor": "Process Monitor", "widget_disk_usage": "Disk Usage", @@ -1631,57 +1569,28 @@ "app_drawer": "Applications", "search_apps": "Search apps...", "edit_shortcuts": "Modifier les raccourcis", - "widgets": "Widgets du bureau", - "theme": "Theme", - "title": "Mode bureau", - "subtitle": "Accès direct aux applications de la console depuis le bureau", - "enter": "Entrer en mode bureau", - "exit": "Quitter le mode bureau", - "wallpaper_change": "Changer le fond d'écran", - "wallpaper_upload": "Télécharger une image", - "wallpaper_reset": "Réinitialiser par défaut", - "widgets_add": "Ajouter un widget", - "widgets_remove": "Supprimer le widget", - "widgets_configure": "Configurer le widget", - "taskbar": "Barre des tâches", - "taskbar_position": "Position de la barre des tâches", - "taskbar_bottom": "En bas", - "taskbar_top": "En haut", - "taskbar_left": "À gauche", - "taskbar_right": "À droite", - "shortcuts": "Raccourcis", - "shortcut_add": "Ajouter un raccourci", - "shortcut_edit": "Modifier le raccourci", - "shortcut_remove": "Supprimer le raccourci", - "auto_hide": "Masquer automatiquement", - "show_clock": "Afficher l'horloge", - "show_notifications": "Afficher les notifications", - "pop_out_widget": "Pop Out", - "pop_in_widget": "Pop In", - "wp_unavailable": "Wallpaper images are not installed on this server.", - "wp_download_hint": "Place PNG images in the public/wallpapers/ directory to enable wallpaper selection.", - "fullscreen": "Fullscreen", - "help": "Help" + "widgets": "widgets", + "theme": "Theme" }, "desktop_login": { "click_to_sign_in": "Click anywhere or press a key to sign in", - "username_placeholder": "Username", - "password_placeholder": "Password", + "username_placeholder": "Entrez le nom d'utilisateur", + "password_placeholder": "Entrez le mot de passe", "sign_in": "Sign in", "verify": "Verify", - "totp_title": "Two-Factor Authentication", - "totp_subtitle": "Enter the 6-digit code from your authenticator app", + "totp_title": "Authentification à deux facteurs", + "totp_subtitle": "Entrez le code à 6 chiffres de votre application d'authentification", "back_to_login": "Back to login", - "fill_all_fields": "Please fill in all fields", - "invalid_credentials": "Invalid username or password", + "fill_all_fields": "Veuillez remplir tous les champs", + "invalid_credentials": "Nom d'utilisateur ou mot de passe invalide.", "invalid_code": "Invalid verification code", "enter_6_digits": "Enter all 6 digits", "network_error": "Network error — check your connection", "session_expired": "Session expired. Please sign in again." }, "tokens": { - "title": "Jetons API", - "subtitle": "Gérer les jetons d'accès API pour les intégrations externes", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "enrollment_mode": "Enrollment Mode", "mode_open": "Open", "mode_open_desc": "Any device can register without a token", @@ -1689,28 +1598,28 @@ "mode_managed_desc": "Devices need a valid token to register", "mode_locked": "Locked", "mode_locked_desc": "No new device registrations allowed", - "total": "Total Tokens", - "active": "Active", - "used": "Used", + "total": "Total", + "active": "Actif", + "used": "Utilisé", "revoked": "Jeton révoqué", - "search_placeholder": "Search tokens...", - "status_pending": "Pending", + "search_placeholder": "Rechercher des appareils...", + "status_pending": "En attente", "status_active": "Actif", "status_used": "Used", "status_revoked": "Révoqué", "status_expired": "Expiré", "bulk_generate": "Bulk Generate", - "create": "Créer un jeton", - "edit": "Edit Token", + "create": "Créer", + "edit": "Modifier", "token": "Token", - "name": "Nom du jeton", + "name": "Name", "status": "Statut", "uses": "Uses", "bound_peer": "Bound Peer", "expires": "Date d'expiration", "created": "Créé", "actions": "Actions", - "name_placeholder": "Entrez un nom descriptif", + "name_placeholder": "Entrez le nom du dossier", "max_uses": "Max Uses", "max_uses_hint": "0 = unlimited", "expires_in": "Expires In", @@ -1720,58 +1629,32 @@ "expires_7d": "7 days", "expires_30d": "30 jours", "note": "Note", - "note_placeholder": "Optional note about this token...", + "note_placeholder": "Notes about this device", "count": "Count", "count_range": "Number of tokens to generate (1-100)", "name_prefix": "Name Prefix", - "generate": "Generate", + "generate": "Générer la configuration", "token_created": "Jeton créé avec succès", "tokens_generated": "Tokens Generated", "copy_warning": "Copy the token now. It will not be shown again.", "copy_token": "Copy Token", - "copied": "Copied!", - "revoke": "Révoquer le jeton", + "copied": "Copié dans le presse-papiers", + "revoke": "Révoquer", "revoke_confirm": "Êtes-vous sûr de vouloir révoquer ce jeton ? Cela invalidera immédiatement toutes les requêtes API qui l'utilisent.", "revoked_success": "Token revoked successfully", "no_tokens": "Aucun jeton API créé", "expired": "Expired", - "never": "Never", - "save": "Save", - "cancel": "Cancel", - "unlimited": "Unlimited", - "list": "Jetons actifs", - "create_title": "Créer un nouveau jeton API", - "description": "Description", - "description_placeholder": "Description facultative de l'utilisation du jeton", - "expires_never": "Jamais", - "expires_90d": "90 jours", - "expires_1y": "1 an", - "expires_custom": "Date personnalisée", - "permissions": "Permissions", - "permission_read": "Lecture", - "permission_write": "Écriture", - "permission_admin": "Admin", - "permission_devices": "Appareils", - "permission_users": "Utilisateurs", - "permission_settings": "Paramètres", - "last_used": "Dernière utilisation", - "never_used": "Jamais utilisé", - "token_copied": "Jeton copié dans le presse-papiers", - "token_warning": "Assurez-vous de copier le jeton maintenant. Vous ne pourrez plus le voir.", - "scope": "Portée", - "scope_full": "Accès complet", - "scope_limited": "Accès limité", - "rate_limit": "Limite de taux", - "rate_limit_hint": "Requêtes max par minute (0 = illimité)", - "ip_whitelist": "Liste blanche IP", - "ip_whitelist_hint": "Adresses IP autorisées, une par ligne (vide = toutes)" + "never": "Jamais", + "save": "Enregistrer", + "cancel": "Annuler", + "unlimited": "Unlimited" }, "tutorial": { "next": "Suivant", "prev": "Précédent", "skip": "Passer le tutoriel", "finish": "Terminer", - "close": "Close", + "close": "Fermer", "step_of": "{current} of {total}", "console_sidebar_title": "Navigation Sidebar", "console_sidebar_text": "Access all modules from here. Click any icon to navigate to that section. The sidebar adapts to your screen size.", @@ -1821,32 +1704,16 @@ "settings_content_text": "Each section contains specific server and console settings. Changes are saved when you click Save.", "settings_complete_title": "Settings Overview", "settings_complete_text": "Check Security settings for 2FA, API keys and user management. Visit Appearance to customize the console look.", - "help": "Help & Tutorials", + "help": "Help", "tour_console": "Console Tour", "tour_desktop": "Desktop Mode Tour", "tour_devices": "Devices Tour", - "tour_settings": "Settings Tour", - "reset_all": "Reset All Tutorials", - "title": "Bienvenue sur BetterDesk", - "step": "Étape {current} sur {total}", - "step_welcome_title": "Bienvenue sur le tableau de bord BetterDesk", - "step_welcome_text": "Ce tutoriel vous guidera à travers les principales fonctionnalités de la console d'administration.", - "step_sidebar_title": "Navigation dans la barre latérale", - "step_sidebar_text": "Utilisez la barre latérale pour naviguer entre les différentes sections. Cliquez sur l'icône du menu pour développer ou réduire.", - "step_devices_title": "Gestion des appareils", - "step_devices_text": "Consultez et gérez tous les appareils connectés. Cliquez sur un appareil pour voir les détails, vous connecter à distance ou modifier les paramètres.", - "step_dashboard_title": "Tableau de bord", - "step_dashboard_text": "Le tableau de bord affiche les statistiques clés et l'état de votre infrastructure en un coup d'œil.", - "step_settings_title": "Paramètres", - "step_settings_text": "Configurez les paramètres du serveur, personnalisez la marque et gérez votre compte dans la section paramètres.", - "step_complete_title": "Terminé !", - "step_complete_text": "Vous êtes maintenant prêt à utiliser BetterDesk. Besoin d'aide ? Consultez la documentation ou contactez le support.", - "dont_show_again": "Ne plus afficher", - "restart_tutorial": "Relancer le tutoriel", "tour_remote": "Remote Session Tour", "tour_organization": "Organization Setup", "tour_cdap": "CDAP Overview", "tour_chat": "Chat Basics", + "tour_settings": "Settings Tour", + "reset_all": "Reset All Tutorials", "remote_toolbar_title": "Remote Toolbar", "remote_toolbar_text": "Access display controls, clipboard sync, special keys, and quality settings from the toolbar. Toggle fullscreen with F11.", "remote_canvas_title": "Remote Display", @@ -1887,13 +1754,13 @@ "chat_complete_text": "Chat with operators and end users in real time. Create groups for team communication. All messages support read receipts." }, "help_request": { - "title": "Help Requests", - "subtitle": "Manage incoming help requests from desktop clients", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "new_request": "New Help Request", - "device": "Device", - "hostname": "Hostname", + "device": "Appareil", + "hostname": "Nom d'hôte", "message": "Message", - "status": "Status", + "status": "Statut", "pending": "Pending", "accepted": "Accepted", "resolved": "Resolved", @@ -1902,24 +1769,24 @@ "no_requests": "No help requests", "notification": "Help request received from", "stats_total": "Total", - "filter_all": "All" + "filter_all": "Tous" }, "organizations": { - "title": "Organizations", - "create": "Create Organization", - "edit": "Edit Organization", - "detail": "Organization Details", + "title": "Tableau de bord", + "create": "Créer", + "edit": "Modifier", + "detail": "Détails du ticket", "name": "Name", - "slug": "Slug (URL-safe)", + "slug": "Slug", "logo_url": "Logo URL", - "users": "Users", - "devices": "Devices", + "users": "Utilisateurs", + "devices": "Appareils", "invitations": "Invitations", - "settings": "Settings", - "add_user": "Add User", - "assign_device": "Assign Device", + "settings": "Paramètres", + "add_user": "Ajouter un utilisateur", + "assign_device": "Assigner un appareil", "create_invitation": "Create Invitation", - "delete_confirm": "Delete this organization? This will remove all associated users, devices, and settings.", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", "no_orgs": "No organizations yet", "no_orgs_hint": "Create your first organization to start managing devices and users.", "connection_policy": "Connection Policy", @@ -1927,8 +1794,8 @@ "allow_clipboard": "Allow Clipboard", "max_session_duration": "Max Session Duration (min)", "role_owner": "Owner", - "role_admin": "Admin", - "role_operator": "Operator", + "role_admin": "Administrateur", + "role_operator": "Opérateur", "role_user": "User" }, "chat": { @@ -1948,7 +1815,7 @@ "presence_offline": "Hors ligne", "key_rotation": "Clés de sécurité renouvelées", "new_message": "Nouveau message", - "title": "Discussion", + "title": "Tableau de bord", "contacts": "Contacts", "groups": "Groupes", "no_contacts": "Aucun contact pour le moment", @@ -1956,13 +1823,16 @@ "no_messages": "Aucun message pour le moment", "no_results": "Aucun résultat trouvé", "select_conversation": "Sélectionnez une conversation pour commencer à discuter", + "select_conversation_hint": "Sélectionnez une conversation pour afficher les messages", "type_message": "Saisissez un message...", "send": "Envoyer", "attach_file": "Joindre un fichier", "emoji": "Emoji", + "info": "Information", "search_messages": "Rechercher des messages", "create_group": "Créer un groupe", "group_name": "Nom du groupe", + "group_name_placeholder": "Entrez le nom du groupe", "group_members": "Membres", "cancel": "Annuler", "create": "Créer", @@ -1971,10 +1841,7 @@ "yesterday": "Hier", "react": "Réagir", "my_presence": "Mon statut", - "search_placeholder": "Rechercher contacts et messages", - "select_conversation_hint": "Sélectionnez une conversation pour voir les messages", - "info": "Informations", - "group_name_placeholder": "Saisir le nom du groupe" + "search_placeholder": "Rechercher des appareils..." }, "toast": { "device_connected": "Device connected", @@ -1991,7 +1858,7 @@ "dark": "Dark", "light": "Light", "auto": "System", - "title": "Theme" + "title": "Tableau de bord" }, "days": { "mon": "Mon", @@ -2003,21 +1870,21 @@ "sun": "Sun" }, "toolkit": { - "title": "Toolkit", - "subtitle": "Admin utilities and diagnostic tools", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "cat_network": "Network", "cat_crypto": "Crypto", "cat_encoding": "Encoding", "cat_system": "System", - "host": "Host", + "host": "Hôte", "port": "Port", "domain": "Domain", "run": "Run", - "generate": "Generate", + "generate": "Générer la configuration", "encode": "Encode", "decode": "Decode", - "send": "Send", - "refresh": "Refresh", + "send": "Envoyer", + "refresh": "Actualiser", "algorithm": "Algorithm", "input_text": "Input Text", "enter_text": "Enter text...", @@ -2027,7 +1894,7 @@ "lines": "Lines", "log_console": "Console", "log_go": "Go Server", - "mac_address": "MAC Address", + "mac_address": "Adresse MAC", "broadcast": "Broadcast", "ping_title": "Ping", "ping_desc": "Check host reachability and latency", @@ -2050,7 +1917,7 @@ "hash_title": "Hash Generator", "hash_desc": "Generate cryptographic hashes", "password_title": "Password Generator", - "password_desc": "Generate a secure random password", + "password_desc": "Mettre à jour le mot de passe de votre compte", "jwt_title": "JWT Decoder", "jwt_desc": "Decode and inspect JSON Web Tokens", "jwt_token": "JWT Token", @@ -2068,10 +1935,10 @@ "docker_desc": "View running Docker containers", "logs_title": "Log Viewer", "logs_desc": "View recent log output", - "ip_address": "IP", + "ip_address": "Adresse IP", "latency": "Latency", "ttl": "TTL", - "status": "Status", + "status": "Statut", "resolved": "Resolved", "subject": "Subject", "issuer": "Issuer", @@ -2098,13 +1965,13 @@ "db_size": "Size", "table_name": "Table", "row_count": "Rows", - "no_data": "No data available", + "no_data": "No hardware data available", "no_docker": "No Docker containers found or Docker not available", "no_logs": "No log lines available" }, "policies": { - "title": "Politiques d'organisation", - "subtitle": "Gérer les politiques de sécurité, de connexion et de fonctionnalités", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "select_org": "Organisation", "select_org_placeholder": "Sélectionner une organisation...", "select_org_first": "Sélectionnez une organisation pour voir le journal d'audit des politiques.", @@ -2123,8 +1990,8 @@ "wallpaper_hide_always": "Toujours masquer", "features_title": "Politique de fonctionnalités", "features_desc": "Activer ou désactiver des fonctionnalités spécifiques", - "allow_file_transfer": "Autoriser le transfert de fichiers", - "allow_clipboard": "Autoriser la synchronisation du presse-papiers", + "allow_file_transfer": "Allow File Transfer", + "allow_clipboard": "Allow Clipboard", "allow_audio": "Autoriser le streaming audio", "allow_recording": "Autoriser l'enregistrement de session", "security_title": "Politique de sécurité", @@ -2133,7 +2000,7 @@ "password_min_length": "Longueur minimale du mot de passe", "password_require_special": "Exiger des caractères spéciaux", "password_max_age": "Âge max. du mot de passe (jours, 0=jamais)", - "allowed_operators": "Rôles d'opérateur autorisés (séparés par des virgules)", + "allowed_operators": "Allowed Operators", "network_title": "Politique réseau", "network_desc": "Contrôler les serveurs relais et les connexions directes", "block_direct_p2p": "Bloquer P2P direct (forcer relais)", @@ -2144,14 +2011,14 @@ "auto_update": "Activer la mise à jour automatique", "update_channel": "Canal de mise à jour", "audit_title": "Modifications de politiques", - "audit_desc": "Historique récent des modifications de politiques", + "audit_desc": "Activité récente de la console", "no_audit": "Aucune modification de politique enregistrée." }, "attestation": { - "title": "Attestation des appareils", - "subtitle": "Surveiller la vérification d'identité des appareils et les empreintes matérielles", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "verified": "Vérifié", - "pending": "En attente", + "pending": "Pending", "failed": "Échoué", "device_list": "Registres d'attestation", "device_list_desc": "Empreintes matérielles et statut de vérification d'identité", @@ -2164,7 +2031,7 @@ "no_records": "Aucun enregistrement d'attestation trouvé." }, "fleet": { - "title": "Gestion de flotte", + "title": "Tableau de bord", "tab_resources": "Ressources", "tab_tasks": "Tâches", "tab_builder": "Constructeur", @@ -2236,6 +2103,23 @@ "builder_transforms": "Transformations", "builder_properties": "Propriétés", "builder_no_selection": "Sélectionnez un nœud pour modifier ses propriétés.", + "builder_node_trigger_manual": "Manual Trigger", + "builder_node_trigger_schedule": "Schedule", + "builder_node_trigger_event": "Event Trigger", + "builder_node_cond_os": "OS Check", + "builder_node_cond_threshold": "Threshold", + "builder_node_cond_time_window": "Time Window", + "builder_node_action_script": "Run Script", + "builder_node_action_install": "Install SW", + "builder_node_action_restart": "Restart Svc", + "builder_node_action_file_deploy": "Deploy File", + "builder_node_action_message": "Send Message", + "builder_node_result_log": "Log Output", + "builder_node_result_alert": "Send Alert", + "builder_node_result_chain": "Chain Workflow", + "builder_node_transform_parse": "Parse JSON", + "builder_node_transform_filter": "Filter", + "builder_node_transform_delay": "Delay", "workflow_name": "Nom du workflow :", "comp_title": "Conformité logicielle", "comp_compliant": "Conforme", @@ -2260,24 +2144,7 @@ "delete": "Supprimer", "actions": "Actions", "all_orgs": "Toutes les organisations", - "builder_node_trigger_manual": "Manual Trigger", - "builder_node_trigger_schedule": "Schedule", - "builder_node_trigger_event": "Event Trigger", - "builder_node_cond_os": "OS Check", - "builder_node_cond_threshold": "Threshold", - "builder_node_cond_time_window": "Time Window", - "builder_node_action_script": "Run Script", - "builder_node_action_install": "Install SW", - "builder_node_action_restart": "Restart Svc", - "builder_node_action_file_deploy": "Deploy File", - "builder_node_action_message": "Send Message", - "builder_node_result_log": "Log Output", - "builder_node_result_alert": "Send Alert", - "builder_node_result_chain": "Chain Workflow", - "builder_node_transform_parse": "Parse JSON", - "builder_node_transform_filter": "Filter", - "builder_node_transform_delay": "Delay", - "select_org_placeholder": "Select organization…", + "select_org_placeholder": "Sélectionner une organisation...", "all_types": "All Types", "type_printer": "Printer", "type_network_drive": "Network Drive", @@ -2290,23 +2157,23 @@ "col_type": "Type", "col_target": "Target", "col_scope": "Scope", - "col_status": "Status", + "col_status": "Statut", "col_actions": "Actions", "no_resources": "No resources found.", - "active": "Active", - "inactive": "Inactive", + "active": "Actif", + "inactive": "Inactif", "address": "Address / Path", "scope_org": "Organization", "scope_group": "Group", - "scope_device": "Device", + "scope_device": "Appareil cible", "scope_value": "Scope Value", "scope_value_hint": "Organization, group, or device ID", "confirm_delete": "Are you sure you want to delete this item?", "all_statuses": "All Statuses", - "status_pending": "Pending", - "status_running": "Running", + "status_pending": "En attente", + "status_running": "En cours", "status_success": "Success", - "status_failed": "Failed", + "status_failed": "Échoué", "search_tasks": "Search tasks…", "create_task": "Create Task", "edit_task": "Edit Task", @@ -2326,12 +2193,12 @@ "script_content": "Script / Command", "retry_count": "Retries", "timeout_sec": "Timeout (s)", - "loading": "Loading", + "loading": "Chargement...", "no_output": "No output available", "error_loading": "Error loading data", "select_workflow": "Select workflow…", "new_workflow": "New", - "export": "Export", + "export": "Exporter", "execute": "Execute", "dry_run": "Dry Run", "node_triggers": "Triggers", @@ -2363,8 +2230,8 @@ "non_compliant": "Warning", "critical_issues": "Critical", "avg_score": "Avg. Score", - "col_device": "Device", - "col_hostname": "Hostname", + "col_device": "ID d'appareil", + "col_hostname": "Nom d'hôte", "col_os": "OS", "col_score": "Score", "col_issues": "Issues", @@ -2373,7 +2240,7 @@ "confirm_remediate": "Run auto-remediation on this device?" }, "scaling": { - "title": "Mise à l'échelle et gestion des relais", + "title": "Tableau de bord", "tab_overview": "Vue d'ensemble", "tab_relays": "Nœuds relais", "tab_rules": "Règles d'attribution", @@ -2389,7 +2256,7 @@ "relay_search": "Rechercher des relais...", "relay_add": "Ajouter un nœud relais", "relay_edit": "Modifier le nœud relais", - "col_name": "Nom", + "col_name": "Name", "col_address": "Adresse", "col_location": "Emplacement", "col_devices": "Appareils", @@ -2410,6 +2277,7 @@ "confirm_delete_relay": "Êtes-vous sûr de vouloir supprimer ce nœud relais ?", "confirm_delete_rule": "Êtes-vous sûr de vouloir supprimer cette règle d'attribution ?", "rules_hint": "Les règles d'attribution déterminent quel serveur relais gère des groupes d'appareils spécifiques. Les règles sont évaluées par priorité (la plus basse d'abord).", + "no_rules": "Aucune règle d'attribution.", "rule_add": "Ajouter une règle", "rule_edit": "Modifier la règle", "rule_match_type": "Type de correspondance", @@ -2448,11 +2316,10 @@ "cancel": "Annuler", "edit": "Modifier", "delete": "Supprimer", - "close": "Fermer", - "no_rules": "Aucune règle d'affectation." + "close": "Fermer" }, "cross_platform": { - "title": "Compatibilité multiplateforme", + "title": "Tableau de bord", "tab_matrix": "Matrice de compatibilité", "tab_distribution": "Distribution", "tab_protocols": "Protocoles", @@ -2471,7 +2338,7 @@ "unique_platforms": "Plateformes", "unique_archs": "Architectures", "unique_versions": "Versions client", - "no_devices": "Aucun appareil enregistré pour le moment.", + "no_devices": "Aucun appareil avec des données d'inventaire trouvé", "protocols_hint": "La négociation des capacités du protocole garantit que chaque client reçoit uniquement les fonctionnalités prises en charge. Le serveur adapte son comportement en fonction des capacités signalées.", "capability_negotiation": "Négociation des capacités", "codec_support": "Support des codecs (appareils en ligne)", @@ -2531,9 +2398,9 @@ "limit_chrome_input": "Injection d'entrée en dehors du conteneur Crostini non prise en charge." }, "security_audit": { - "title": "Security Audit", - "tab_overview": "Aperçu", - "tab_events": "Événements d'audit", + "title": "Tableau de bord", + "tab_overview": "Vue d'ensemble", + "tab_events": "Events", "tab_hardening": "Durcissement", "tab_vulnerabilities": "Vulnérabilités", "security_score": "Score de sécurité", @@ -2563,17 +2430,17 @@ "col_time": "Heure", "col_action": "Action", "col_actor": "Acteur", - "col_target": "Cible", + "col_target": "Target", "col_ip": "Adresse IP", "col_details": "Détails", - "no_events": "Aucun événement d'audit trouvé.", + "no_events": "Aucun événement DLP enregistré", "hardening_hint": "Priorités de durcissement sécuritaire pour votre déploiement BetterDesk. Triés par gravité.", "no_hardening": "Aucun élément de durcissement disponible.", "vuln_hint": "Résultats de l'analyse des vulnérabilités. Exécutez npm audit régulièrement.", "no_vulns": "Aucune vulnérabilité trouvée. Vos dépendances sont sécurisées." }, "languages": { - "title": "Language Management", + "title": "Tableau de bord", "total_languages": "Total Languages", "fully_translated": "Fully Translated", "needs_review": "Needs Review", @@ -2583,7 +2450,7 @@ "badge_review": "Needs Review", "badge_complete": "Complete", "coverage": "coverage", - "keys": "keys", + "keys": "Clés", "missing": "missing", "extra": "extra", "view_missing": "View Missing", @@ -2598,8 +2465,8 @@ "no_fix_needed": "No missing keys to fix." }, "resource_control": { - "title": "Resource Control", - "tab_overview": "Overview", + "title": "Tableau de bord", + "tab_overview": "Vue d'ensemble", "tab_usb": "USB Control", "tab_optical": "Optical Drives", "tab_monitors": "Monitors", @@ -2608,16 +2475,16 @@ "compliance_by_category": "Compliance by Category", "device_compliance": "Device Compliance", "search_devices": "Search devices...", - "col_device": "Device", - "col_platform": "Platform", - "col_status": "Status", + "col_device": "ID d'appareil", + "col_platform": "Plateforme", + "col_status": "Statut", "col_usb": "USB", "col_optical": "Optical", "col_monitors": "Monitors", "col_disks": "Disks", "col_quotas": "Quotas", "col_actions": "Actions", - "stat_total_devices": "Total Devices", + "stat_total_devices": "Total appareils", "stat_compliant": "Compliant", "stat_partial": "Partial", "stat_noncompliant": "Non-Compliant", @@ -2627,7 +2494,7 @@ "badge_partial": "Partial", "badge_noncompliant": "Fail", "btn_configure": "Configure", - "no_devices": "No devices found", + "no_devices": "Aucun appareil avec des données d'inventaire trouvé", "usb_title": "USB Port Control", "usb_hint": "Control USB storage device access for the selected device or organization-wide default policy.", "usb_storage_policy": "USB Storage Policy", @@ -2669,11 +2536,12 @@ "policy_any": "Any" }, "sdk_studio": { - "title": "SDK Studio", - "subtitle": "Visual flow editor for CDAP bridges", + "title": "Tableau de bord", + "subtitle": "Vue d'ensemble de votre serveur RustDesk", "new_flow": "New Flow", "open_flow": "Open Flow", "save_flow": "Save Flow", + "import_flow": "Import Flow", "run_flow": "Run", "debug": "Debug", "deploy": "Deploy", @@ -2690,7 +2558,7 @@ "cat_sources": "Sources", "cat_processing": "Processing", "cat_outputs": "Outputs", - "empty_title": "Start Building", + "empty_title": "Aucun appareil trouvé", "empty_desc": "Drag nodes from the palette to start building a flow", "browse_templates": "Browse Templates", "inspector": "Inspector", @@ -2698,7 +2566,7 @@ "console": "Console", "clear_console": "Clear", "console_ready": "Studio ready", - "label": "Label", + "label": "Status", "configuration": "Configuration", "connections": "Connections", "inputs": "Inputs", @@ -2710,9 +2578,9 @@ "status_deployed": "Deployed", "flow_name": "Flow Name", "flow_desc": "Description", - "loading": "Loading...", + "loading": "Chargement...", "no_flows": "No saved flows yet", - "confirm_delete": "Are you sure you want to delete this flow?", + "confirm_delete": "Are you sure you want to delete this item?", "templates": "Templates", "node_modbus_tcp": "Modbus TCP", "node_modbus_rtu": "Modbus RTU", @@ -2739,24 +2607,23 @@ "node_mqtt_publish": "MQTT Publish", "node_database_write": "Database Write", "node_email": "Email", - "node_modbus_write": "Modbus Write", - "import_flow": "Import Flow" + "node_modbus_write": "Modbus Write" }, "updates": { "tab_title": "Updates", - "title": "Software Updates", - "desc": "Check for new versions and update the BetterDesk console from GitHub", + "title": "Tableau de bord", + "desc": "Téléchargez une sauvegarde complète de la configuration de votre console, utilisateurs, groupes et paramètres. Les données peer du serveur Go sont incluses lorsque le backend BetterDesk est actif.", "current_version": "Installed version", "latest_version": "Latest version", - "status": "Status", - "check_now": "Check for updates", - "checking": "Checking…", + "status": "Statut", + "check_now": "Vérifier maintenant", + "checking": "Vérification...", "up_to_date": "Up to date", "update_available": "Update available", "changelog": "Release Notes", "no_changelog": "No release notes available", "files_changed": "Files changed", - "files": "files", + "files": "Fichiers", "changes_unavailable": "Could not load file change list. You can still install the update.", "create_backup": "Create backup before updating", "install": "Install Update", @@ -2774,7 +2641,7 @@ "backups_desc": "Pre-update backups created automatically before each update", "no_backups": "No update backups found", "restore": "Restore", - "restore_confirm": "Are you sure you want to restore from this backup? Changed files will be overwritten.", - "restore_success": "Backup restored successfully. Console is restarting…" + "restore_confirm": "Êtes-vous sûr de vouloir restaurer à partir de cette sauvegarde ? Les sections sélectionnées seront écrasées.", + "restore_success": "Sauvegarde restaurée avec succès. Certaines modifications peuvent nécessiter un rechargement de la page." } } diff --git a/web-nodejs/routes/languages.routes.js b/web-nodejs/routes/languages.routes.js index 62666d86..34b7f14b 100644 --- a/web-nodejs/routes/languages.routes.js +++ b/web-nodejs/routes/languages.routes.js @@ -87,12 +87,12 @@ router.get('/api/panel/languages', requireAuth, requireAdmin, (req, res) => { continue; } - const meta = data._meta || {}; + const meta = data._meta || data.meta || {}; const langKeys = flattenKeys(data); const langKeySet = new Set(langKeys.keys()); const missing = [...refKeySet].filter(k => !langKeySet.has(k)); - const extra = [...langKeySet].filter(k => !refKeySet.has(k) && !k.startsWith('_meta')); + const extra = [...langKeySet].filter(k => !refKeySet.has(k) && !k.startsWith('_meta') && !k.startsWith('meta.')); const empty = [...langKeySet].filter(k => refKeySet.has(k) && langKeys.get(k) === ''); const coverage = code === 'en' ? 100