Refactor code structure in RGSX Web to improved readability and maintainability, move docker files to folder, update language files

This commit is contained in:
skymike03
2025-11-04 19:00:54 +01:00
parent 26f8499c83
commit 82dbf4e49d
15 changed files with 4358 additions and 3263 deletions

View File

@@ -134,13 +134,12 @@
"network_auth_required": "Authentifizierung erforderlich (HTTP {0})",
"network_access_denied": "Zugriff verweigert (HTTP {0})",
"network_server_error": "Serverfehler (HTTP {0})",
"network_download_ok": "Download erfolgreich: {0}",
"download_already_present": " (bereits vorhanden)",
"network_download_already_queued": "Dieser Download läuft bereits",
"utils_extracted": "Extrahiert: {0}",
"download_already_extracted": " (bereits extrahiert)",
"download_in_progress": "Download läuft...",
"download_queued": "In Download-Warteschlange",
"download_started": "Download gestartet",
"utils_extracted": "Extrahiert: {0}",
"utils_corrupt_zip": "Beschädigtes ZIP-Archiv: {0}",
"utils_permission_denied": "Berechtigung während der Extraktion verweigert: {0}",
"utils_extraction_failed": "Extraktion fehlgeschlagen: {0}",
@@ -175,181 +174,188 @@
"api_key_empty_suffix": "leer",
"menu_hide_premium_systems": "Premium-Systeme ausblenden",
"popup_hide_premium_on": "Premium-Systeme ausgeblendet",
"popup_hide_premium_off": "Premium-Systeme sichtbar"
,"submenu_display_font_family": "Schrift"
,"popup_font_family_changed": "Schrift geändert: {0}"
,"instruction_pause_language": "Sprache der Oberfläche ändern"
,"instruction_pause_controls": "Steuerungsübersicht ansehen oder neu zuordnen"
,"instruction_pause_display": "Layout, Schriften und Systemsichtbarkeit konfigurieren"
,"instruction_pause_games": "Verlauf öffnen, Quelle wechseln oder Liste aktualisieren"
,"instruction_pause_settings": "Musik, Symlink-Option & API-Schlüsselstatus"
,"instruction_pause_restart": "RGSX neu starten um Konfiguration neu zu laden"
,"instruction_pause_support": "Eine Diagnose-ZIP-Datei für den Support erstellen"
,"instruction_pause_quit": "RGSX Anwendung beenden"
,"instruction_controls_help": "Komplette Referenz für Controller & Tastatur anzeigen"
,"instruction_controls_remap": "Tasten / Buttons neu zuordnen"
,"instruction_generic_back": "Zum vorherigen Menü zurückkehren"
,"instruction_display_layout": "Rasterabmessungen (Spalten × Zeilen) durchschalten"
,"instruction_display_font_size": "Schriftgröße für bessere Lesbarkeit anpassen"
,"instruction_display_font_family": "Zwischen verfügbaren Schriftarten wechseln"
,"instruction_display_show_unsupported": "Nicht in es_systems.cfg definierte Systeme anzeigen/ausblenden"
,"instruction_display_unknown_ext": "Warnung für in es_systems.cfg fehlende Dateiendungen an-/abschalten"
,"instruction_display_hide_premium": "Systeme ausblenden, die Premiumzugang erfordern über API: {providers}"
,"instruction_display_filter_platforms": "Manuell wählen welche Systeme sichtbar sind"
,"instruction_games_history": "Vergangene Downloads und Status anzeigen"
,"instruction_games_source_mode": "Zwischen RGSX oder eigener Quellliste wechseln"
,"instruction_games_update_cache": "Aktuelle Spieleliste erneut herunterladen & aktualisieren"
,"instruction_settings_music": "Hintergrundmusik aktivieren oder deaktivieren"
,"instruction_settings_symlink": "Verwendung von Symlinks für Installationen umschalten"
,"instruction_settings_api_keys": "Gefundene Premium-API-Schlüssel ansehen"
,"instruction_settings_web_service": "Web-Dienst Autostart beim Booten aktivieren/deaktivieren"
,"settings_web_service": "Web-Dienst beim Booten"
,"settings_web_service_enabled": "Aktiviert"
,"settings_web_service_disabled": "Deaktiviert"
,"settings_web_service_enabling": "Web-Dienst wird aktiviert..."
,"settings_web_service_disabling": "Web-Dienst wird deaktiviert..."
,"settings_web_service_success_enabled": "Web-Dienst beim Booten aktiviert"
,"settings_web_service_success_disabled": "Web-Dienst beim Booten deaktiviert"
,"settings_web_service_error": "Fehler: {0}"
,"controls_desc_confirm": "Bestätigen (z.B. A/Kreuz)"
,"controls_desc_cancel": "Abbrechen/Zurück (z.B. B/Kreis)"
,"controls_desc_up": "UP ↑"
,"controls_desc_down": "DOWN ↓"
,"controls_desc_left": "LEFT ←"
,"controls_desc_right": "RIGHT →"
,"controls_desc_page_up": "Schnell nach oben (z.B. LT/L2)"
,"controls_desc_page_down": "Schnell nach unten (z.B. RT/R2)"
,"controls_desc_history": "Verlauf öffnen (z.B. Y/Dreieck)"
,"controls_desc_clear_history": "Downloads: Mehrfachauswahl / Verlauf: Leeren (z.B. X/Quadrat)"
,"controls_desc_filter": "Filtermodus: Öffnen/Bestätigen (z.B. Select)"
,"controls_desc_delete": "Filtermodus: Zeichen löschen (z.B. LB/L1)"
,"controls_desc_space": "Filtermodus: Leerzeichen hinzufügen (z.B. RB/R1)"
,"controls_desc_start": "Pausenmenü öffnen (z.B. Start)"
,"controls_mapping_title": "Steuerungszuordnung"
,"controls_mapping_instruction": "Zum Bestätigen gedrückt halten:"
,"controls_mapping_waiting": "Warte auf eine Taste oder einen Button..."
,"controls_mapping_press": "Drücke eine Taste oder einen Button"
,"status_already_present": "Bereits Vorhanden"
,"footer_joystick": "Joystick: {0}"
,"history_game_options_title": "Spiel Optionen"
,"history_option_download_folder": "Datei lokalisieren"
,"history_option_extract_archive": "Archiv extrahieren"
,"history_option_scraper": "Metadaten scrapen"
,"history_option_delete_game": "Spiel löschen"
,"history_option_error_info": "Fehlerdetails"
,"history_option_retry": "Download wiederholen"
,"history_option_back": "Zurück"
,"history_folder_path_label": "Zielpfad:"
,"history_scraper_not_implemented": "Scraper noch nicht implementiert"
,"history_confirm_delete": "Dieses Spiel von der Festplatte löschen?"
,"history_file_not_found": "Datei nicht gefunden"
,"history_extracting": "Extrahieren..."
,"history_extracted": "Extrahiert"
,"history_delete_success": "Spiel erfolgreich gelöscht"
,"history_delete_error": "Fehler beim Löschen des Spiels: {0}"
,"history_error_details_title": "Fehlerdetails"
,"history_no_error_message": "Keine Fehlermeldung verfügbar"
,"web_title": "RGSX Web-Oberfläche"
,"web_tab_platforms": "Systemliste"
,"web_tab_downloads": "Downloads"
,"web_tab_history": "Verlauf"
,"web_tab_settings": "Einstellungen"
,"web_tab_update": "Liste aktualisieren"
,"web_tooltip_platforms": "Systemliste"
,"web_tooltip_downloads": "Downloads"
,"web_tooltip_history": "Verlauf"
,"web_tooltip_settings": "Einstellungen"
,"web_tooltip_update": "Spieleliste aktualisieren"
,"web_search_platform": "Systeme oder Spiele suchen..."
,"web_search_game": "Spiel suchen..."
,"web_search_results": "Ergebnisse für"
,"web_no_results": "Keine Ergebnisse gefunden"
,"web_platforms": "Systeme"
,"web_games": "Spiele"
,"web_error_search": "Suchfehler"
,"web_back_platforms": "Zurück zu Plattformen"
,"web_back": "Zurück"
,"web_game_count": "{0} ({1} Spiele)"
,"web_download": "Herunterladen"
,"web_cancel": "Abbrechen"
,"web_download_canceled": "Download abgebrochen"
,"web_confirm_cancel": "Möchten Sie diesen Download wirklich abbrechen?"
,"web_update_title": "Spieleliste wird aktualisiert..."
,"web_update_message": "Cache wird gelöscht und Daten neu geladen..."
,"web_update_wait": "Dies kann 10-30 Sekunden dauern"
,"web_error": "Fehler"
,"web_error_unknown": "Unbekannter Fehler"
,"web_error_update": "Fehler beim Aktualisieren der Liste: {0}"
,"web_error_download": "Fehler: {0}"
,"web_history_clear": "Verlauf löschen"
,"web_history_cleared": "Verlauf erfolgreich gelöscht!"
,"web_error_clear_history": "Fehler beim Löschen des Verlaufs: {0}"
,"web_settings_title": "Info & Einstellungen"
,"web_settings_roms_folder": "Benutzerdefinierter ROMs-Ordner"
,"web_settings_roms_placeholder": "Leer lassen für Standard"
,"web_settings_browse": "Durchsuchen"
,"web_settings_language": "Sprache"
,"web_settings_font_scale": "Schriftgröße"
,"web_settings_grid": "Rasterlayout"
,"web_settings_font_family": "Schriftart"
,"web_settings_music": "Musik"
,"web_settings_symlink": "Symlink-Modus"
,"web_settings_source_mode": "Spielequelle"
,"web_settings_custom_url": "Benutzerdefinierte URL"
,"web_settings_custom_url_placeholder": "https://beispiel.com/spiele.zip"
,"web_settings_save": "Einstellungen speichern"
,"web_settings_saved": "Einstellungen erfolgreich gespeichert!"
,"web_settings_saved_restart": "Einstellungen erfolgreich gespeichert!\\n\\n⚠ Einige Einstellungen erfordern einen Serverneustart:\\n- Benutzerdefinierter ROMs-Ordner\\n- Sprache\\n\\nBitte starten Sie den Webserver neu, um diese Änderungen anzuwenden."
,"web_error_save_settings": "Fehler beim Speichern der Einstellungen: {0}"
,"web_browse_title": "Verzeichnisse durchsuchen"
,"web_browse_select_drive": "Laufwerk auswählen..."
,"web_browse_drives": "Laufwerke"
,"web_browse_parent": "Übergeordnet"
,"web_browse_select": "Diesen Ordner auswählen"
,"web_browse_cancel": "Abbrechen"
,"web_browse_empty": "Keine Unterverzeichnisse gefunden"
,"web_browse_alert_restart": "Wichtig: Sie müssen die Einstellungen SPEICHERN und dann den Webserver NEUSTARTEN, damit der benutzerdefinierte ROMs-Ordner wirksam wird.\\n\\n📝 Schritte:\\n1. Klicken Sie unten auf 'Einstellungen speichern'\\n2. Stoppen Sie den Webserver (Strg+C im Terminal)\\n3. Starten Sie den Webserver neu\\n\\nAusgewählter Pfad: {0}"
,"web_error_browse": "Fehler beim Durchsuchen der Verzeichnisse: {0}"
,"web_loading_platforms": "Lade Plattformen..."
,"web_loading_games": "Lade Spiele..."
,"web_no_platforms": "Keine Plattformen gefunden"
,"web_no_downloads": "Keine Downloads im Gange"
,"web_history_empty": "Keine abgeschlossenen Downloads"
,"web_history_platform": "Plattform"
,"web_history_size": "Größe"
,"web_history_status_completed": "Abgeschlossen"
,"web_history_status_error": "Fehler"
,"web_settings_os": "Betriebssystem"
,"web_settings_platforms_count": "Anzahl der Plattformen"
,"web_settings_show_unsupported": "Nicht unterstützte Plattformen anzeigen (System fehlt in es_systems.cfg)"
,"web_settings_allow_unknown": "Unbekannte Erweiterungen erlauben (keine Warnungen anzeigen)"
,"web_restart_confirm_title": "Anwendung neu starten?"
,"web_restart_confirm_message": "Die Einstellungen wurden gespeichert. Möchten Sie die Anwendung jetzt neu starten, um die Änderungen anzuwenden?"
,"web_restart_yes": "Ja, neu starten"
,"web_restart_no": "Nein, später"
,"web_restart_success": "Neustart läuft..."
,"web_restart_error": "Fehler beim Neustart: {0}"
,"web_support": "Support"
,"web_support_title": "📦 Support-Datei erstellt"
,"web_support_message": "Support-Datei erfolgreich erstellt!\\n\\n📁 Inhalt:\\n• Steuerungskonfiguration\\n• Download-Verlauf\\n• RGSX-Einstellungen\\n• Anwendungsprotokolle\\n• Webserver-Protokolle\\n\\n💬 Um Hilfe zu erhalten:\\n1. Trete dem RGSX Discord bei\\n2. Beschreibe dein Problem\\n3. Teile diese ZIP-Datei\\n\\nDownload startet..."
,"web_support_generating": "Support-Datei wird generiert..."
,"web_support_download": "Support-Datei herunterladen"
,"web_support_error": "Fehler beim Erstellen der Support-Datei: {0}"
,"web_tab_queue": "Warteschlange"
,"web_tooltip_queue": "Download-Warteschlange"
,"web_queue_active_download": "⏳ Ein Download ist aktiv"
,"web_queue_no_active": "✓ Kein aktiver Download"
,"web_queue_title": "Download-Warteschlange"
,"web_queue_empty": "Keine Elemente in der Warteschlange"
,"web_queue_clear": "Warteschlange löschen"
,"web_queue_cleared": "Warteschlange erfolgreich gelöscht!"
,"web_confirm_remove_queue": "Dieses Element aus der Warteschlange entfernen?"
,"web_confirm_clear_queue": "Gesamte Warteschlange löschen?"
,"web_remove": "Entfernen"
,"web_loading": "Lädt..."
,"web_sort": "Sortieren nach"
,"web_sort_name_asc": "A-Z (Name)"
,"web_sort_name_desc": "Z-A (Name)"
,"web_sort_size_asc": "Größe +- (Klein zuerst)"
,"web_sort_size_desc": "Größe -+ (Groß zuerst)"
"popup_hide_premium_off": "Premium-Systeme sichtbar",
"submenu_display_font_family": "Schrift",
"popup_font_family_changed": "Schrift geändert: {0}",
"instruction_pause_language": "Sprache der Oberfläche ändern",
"instruction_pause_controls": "Steuerungsübersicht ansehen oder neu zuordnen",
"instruction_pause_display": "Layout, Schriften und Systemsichtbarkeit konfigurieren",
"instruction_pause_games": "Verlauf öffnen, Quelle wechseln oder Liste aktualisieren",
"instruction_pause_settings": "Musik, Symlink-Option & API-Schlüsselstatus",
"instruction_pause_restart": "RGSX neu starten um Konfiguration neu zu laden",
"instruction_pause_support": "Eine Diagnose-ZIP-Datei für den Support erstellen",
"instruction_pause_quit": "RGSX Anwendung beenden",
"instruction_controls_help": "Komplette Referenz für Controller & Tastatur anzeigen",
"instruction_controls_remap": "Tasten / Buttons neu zuordnen",
"instruction_generic_back": "Zum vorherigen Menü zurückkehren",
"instruction_display_layout": "Rasterabmessungen (Spalten × Zeilen) durchschalten",
"instruction_display_font_size": "Schriftgröße für bessere Lesbarkeit anpassen",
"instruction_display_font_family": "Zwischen verfügbaren Schriftarten wechseln",
"instruction_display_show_unsupported": "Nicht in es_systems.cfg definierte Systeme anzeigen/ausblenden",
"instruction_display_unknown_ext": "Warnung für in es_systems.cfg fehlende Dateiendungen an-/abschalten",
"instruction_display_hide_premium": "Systeme ausblenden, die Premiumzugang erfordern über API: {providers}",
"instruction_display_filter_platforms": "Manuell wählen welche Systeme sichtbar sind",
"instruction_games_history": "Vergangene Downloads und Status anzeigen",
"instruction_games_source_mode": "Zwischen RGSX oder eigener Quellliste wechseln",
"instruction_games_update_cache": "Aktuelle Spieleliste erneut herunterladen & aktualisieren",
"instruction_settings_music": "Hintergrundmusik aktivieren oder deaktivieren",
"instruction_settings_symlink": "Verwendung von Symlinks für Installationen umschalten",
"instruction_settings_api_keys": "Gefundene Premium-API-Schlüssel ansehen",
"instruction_settings_web_service": "Web-Dienst Autostart beim Booten aktivieren/deaktivieren",
"settings_web_service": "Web-Dienst beim Booten",
"settings_web_service_enabled": "Aktiviert",
"settings_web_service_disabled": "Deaktiviert",
"settings_web_service_enabling": "Web-Dienst wird aktiviert...",
"settings_web_service_disabling": "Web-Dienst wird deaktiviert...",
"settings_web_service_success_enabled": "Web-Dienst beim Booten aktiviert",
"settings_web_service_success_disabled": "Web-Dienst beim Booten deaktiviert",
"settings_web_service_error": "Fehler: {0}",
"controls_desc_confirm": "Bestätigen (z.B. A/Kreuz)",
"controls_desc_cancel": "Abbrechen/Zurück (z.B. B/Kreis)",
"controls_desc_up": "UP ↑",
"controls_desc_down": "DOWN ↓",
"controls_desc_left": "LEFT ←",
"controls_desc_right": "RIGHT →",
"controls_desc_page_up": "Schnell nach oben (z.B. LT/L2)",
"controls_desc_page_down": "Schnell nach unten (z.B. RT/R2)",
"controls_desc_history": "Verlauf öffnen (z.B. Y/Dreieck)",
"controls_desc_clear_history": "Downloads: Mehrfachauswahl / Verlauf: Leeren (z.B. X/Quadrat)",
"controls_desc_filter": "Filtermodus: Öffnen/Bestätigen (z.B. Select)",
"controls_desc_delete": "Filtermodus: Zeichen löschen (z.B. LB/L1)",
"controls_desc_space": "Filtermodus: Leerzeichen hinzufügen (z.B. RB/R1)",
"controls_desc_start": "Pausenmenü öffnen (z.B. Start)",
"controls_mapping_title": "Steuerungszuordnung",
"controls_mapping_instruction": "Zum Bestätigen gedrückt halten:",
"controls_mapping_waiting": "Warte auf eine Taste oder einen Button...",
"controls_mapping_press": "Drücke eine Taste oder einen Button",
"status_already_present": "Bereits Vorhanden",
"footer_joystick": "Joystick: {0}",
"history_game_options_title": "Spiel Optionen",
"history_option_download_folder": "Datei lokalisieren",
"history_option_extract_archive": "Archiv extrahieren",
"history_option_scraper": "Metadaten scrapen",
"history_option_delete_game": "Spiel löschen",
"history_option_error_info": "Fehlerdetails",
"history_option_retry": "Download wiederholen",
"history_option_back": "Zurück",
"history_folder_path_label": "Zielpfad:",
"history_scraper_not_implemented": "Scraper noch nicht implementiert",
"history_confirm_delete": "Dieses Spiel von der Festplatte löschen?",
"history_file_not_found": "Datei nicht gefunden",
"history_extracting": "Extrahieren...",
"history_extracted": "Extrahiert",
"history_delete_success": "Spiel erfolgreich gelöscht",
"history_delete_error": "Fehler beim Löschen des Spiels: {0}",
"history_error_details_title": "Fehlerdetails",
"history_no_error_message": "Keine Fehlermeldung verfügbar",
"web_title": "RGSX Web-Oberfläche",
"web_tab_platforms": "Systemliste",
"web_tab_downloads": "Downloads",
"web_tab_history": "Verlauf",
"web_tab_settings": "Einstellungen",
"web_tab_update": "Liste aktualisieren",
"web_tooltip_platforms": "Systemliste",
"web_tooltip_downloads": "Downloads",
"web_tooltip_history": "Verlauf",
"web_tooltip_settings": "Einstellungen",
"web_tooltip_update": "Spieleliste aktualisieren",
"web_search_platform": "Systeme oder Spiele suchen...",
"web_search_game": "Spiel suchen...",
"web_search_results": "Ergebnisse für",
"web_no_results": "Keine Ergebnisse gefunden",
"web_platforms": "Systeme",
"web_games": "Spiele",
"web_error_search": "Suchfehler",
"web_back_platforms": "Zurück zu Plattformen",
"web_back": "Zurück",
"web_game_count": "{0} ({1} Spiele)",
"web_download": "Herunterladen",
"web_cancel": "Abbrechen",
"web_download_canceled": "Download abgebrochen",
"web_confirm_cancel": "Möchten Sie diesen Download wirklich abbrechen?",
"web_update_title": "Spieleliste wird aktualisiert...",
"web_update_message": "Cache wird gelöscht und Daten neu geladen...",
"web_update_wait": "Dies kann 10-30 Sekunden dauern",
"web_error": "Fehler",
"web_error_unknown": "Unbekannter Fehler",
"web_error_update": "Fehler beim Aktualisieren der Liste: {0}",
"web_error_download": "Fehler: {0}",
"web_history_clear": "Verlauf löschen",
"web_history_cleared": "Verlauf erfolgreich gelöscht!",
"web_error_clear_history": "Fehler beim Löschen des Verlaufs: {0}",
"web_settings_title": "Info & Einstellungen",
"web_settings_roms_folder": "Benutzerdefinierter ROMs-Ordner",
"web_settings_roms_placeholder": "Leer lassen für Standard",
"web_settings_browse": "Durchsuchen",
"web_settings_language": "Sprache",
"web_settings_font_scale": "Schriftgröße",
"web_settings_grid": "Rasterlayout",
"web_settings_font_family": "Schriftart",
"web_settings_music": "Musik",
"web_settings_symlink": "Symlink-Modus",
"web_settings_source_mode": "Spielequelle",
"web_settings_custom_url": "Benutzerdefinierte URL",
"web_settings_custom_url_placeholder": "https://beispiel.com/spiele.zip",
"web_settings_save": "Einstellungen speichern",
"web_settings_saved": "Einstellungen erfolgreich gespeichert!",
"web_settings_saved_restart": "Einstellungen erfolgreich gespeichert!\\n\\n⚠ Einige Einstellungen erfordern einen Serverneustart:\\n- Benutzerdefinierter ROMs-Ordner\\n- Sprache\\n\\nBitte starten Sie den Webserver neu, um diese Änderungen anzuwenden.",
"web_error_save_settings": "Fehler beim Speichern der Einstellungen: {0}",
"web_browse_title": "Verzeichnisse durchsuchen",
"web_browse_select_drive": "Laufwerk auswählen...",
"web_browse_drives": "Laufwerke",
"web_browse_parent": "Übergeordnet",
"web_browse_select": "Diesen Ordner auswählen",
"web_browse_cancel": "Abbrechen",
"web_browse_empty": "Keine Unterverzeichnisse gefunden",
"web_browse_alert_restart": "Wichtig: Sie müssen die Einstellungen SPEICHERN und dann den Webserver NEUSTARTEN, damit der benutzerdefinierte ROMs-Ordner wirksam wird.\\n\\n📝 Schritte:\\n1. Klicken Sie unten auf 'Einstellungen speichern'\\n2. Stoppen Sie den Webserver (Strg+C im Terminal)\\n3. Starten Sie den Webserver neu\\n\\nAusgewählter Pfad: {0}",
"web_error_browse": "Fehler beim Durchsuchen der Verzeichnisse: {0}",
"web_loading_platforms": "Lade Plattformen...",
"web_loading_games": "Lade Spiele...",
"web_no_platforms": "Keine Plattformen gefunden",
"web_no_downloads": "Keine Downloads im Gange",
"web_history_empty": "Keine abgeschlossenen Downloads",
"web_history_platform": "Plattform",
"web_history_size": "Größe",
"web_history_status_completed": "Abgeschlossen",
"web_history_status_error": "Fehler",
"web_settings_os": "Betriebssystem",
"web_settings_platforms_count": "Anzahl der Plattformen",
"web_settings_show_unsupported": "Nicht unterstützte Plattformen anzeigen (System fehlt in es_systems.cfg)",
"web_settings_allow_unknown": "Unbekannte Erweiterungen erlauben (keine Warnungen anzeigen)",
"web_restart_confirm_title": "Anwendung neu starten?",
"web_restart_confirm_message": "Die Einstellungen wurden gespeichert. Möchten Sie die Anwendung jetzt neu starten, um die Änderungen anzuwenden?",
"web_restart_yes": "Ja, neu starten",
"web_restart_no": "Nein, später",
"web_restart_success": "Neustart läuft...",
"web_restart_error": "Fehler beim Neustart: {0}",
"web_support": "Support",
"web_support_title": "📦 Support-Datei erstellt",
"web_support_message": "Support-Datei erfolgreich erstellt!\\n\\n📁 Inhalt:\\n• Steuerungskonfiguration\\n• Download-Verlauf\\n• RGSX-Einstellungen\\n• Anwendungsprotokolle\\n• Webserver-Protokolle\\n\\n💬 Um Hilfe zu erhalten:\\n1. Trete dem RGSX Discord bei\\n2. Beschreibe dein Problem\\n3. Teile diese ZIP-Datei\\n\\nDownload startet...",
"web_support_generating": "Support-Datei wird generiert...",
"web_support_download": "Support-Datei herunterladen",
"web_support_error": "Fehler beim Erstellen der Support-Datei: {0}",
"web_tab_queue": "Warteschlange",
"web_tooltip_queue": "Download-Warteschlange",
"web_queue_active_download": "⏳ Ein Download ist aktiv",
"web_queue_no_active": "✓ Kein aktiver Download",
"web_queue_title": "Download-Warteschlange",
"web_queue_empty": "Keine Elemente in der Warteschlange",
"web_queue_clear": "Warteschlange löschen",
"web_queue_cleared": "Warteschlange erfolgreich gelöscht!",
"web_confirm_remove_queue": "Dieses Element aus der Warteschlange entfernen?",
"web_confirm_clear_queue": "Gesamte Warteschlange löschen?",
"web_remove": "Entfernen",
"web_loading": "Lädt...",
"web_sort": "Sortieren nach",
"web_sort_name_asc": "A-Z (Name)",
"web_sort_name_desc": "Z-A (Name)",
"web_sort_size_asc": "Größe +- (Klein zuerst)",
"web_sort_size_desc": "Größe -+ (Groß zuerst)",
"download_already_present": " (bereits vorhanden)",
"network_download_ok": "Download erfolgreich: {0}",
"web_filter_region": "Region",
"web_filter_hide_non_release": "Demos/Betas/Protos ausblenden",
"web_filter_regex_mode": "Regex-Suche aktivieren",
"web_filter_one_rom_per_game": "Eine ROM pro Spiel",
"web_filter_configure_priority": "Regions-Prioritätsreihenfolge konfigurieren"
}

View File

@@ -353,4 +353,9 @@
,"web_sort_name_desc": "Z-A (Name)"
,"web_sort_size_asc": "Size +- (Small first)"
,"web_sort_size_desc": "Size -+ (Large first)"
,"web_filter_region": "Region"
,"web_filter_hide_non_release": "Hide Demos/Betas/Protos"
,"web_filter_regex_mode": "Enable Regex Search"
,"web_filter_one_rom_per_game": "One ROM Per Game"
,"web_filter_configure_priority": "Configure region priority order"
}

View File

@@ -89,7 +89,7 @@
"popup_restarting": "Reiniciando...",
"controls_action_clear_history": "Vaciar historial",
"controls_action_history": "Historial / Descargas",
"controls_action_close_history": "Cerrar Historial",
"controls_action_close_history": "Cerrar Historial",
"controls_action_delete": "Eliminar",
"controls_action_space": "Espacio",
"controls_action_start": "Ayuda / Configuración",
@@ -140,6 +140,7 @@
"download_in_progress": "Descarga en curso...",
"download_queued": "En cola de descarga",
"download_started": "Descarga iniciada",
"network_download_already_queued": "Esta descarga ya está en curso",
"utils_extracted": "Extraído: {0}",
"utils_corrupt_zip": "Archivo ZIP corrupto: {0}",
"utils_permission_denied": "Permiso denegado durante la extracción: {0}",
@@ -175,181 +176,186 @@
"api_key_empty_suffix": "vacío",
"menu_hide_premium_systems": "Ocultar sistemas Premium",
"popup_hide_premium_on": "Sistemas Premium ocultos",
"popup_hide_premium_off": "Sistemas Premium visibles"
,"submenu_display_font_family": "Fuente"
,"popup_font_family_changed": "Fuente cambiada: {0}"
,"instruction_pause_language": "Cambiar el idioma de la interfaz"
,"instruction_pause_controls": "Ver esquema de controles o remapear"
,"instruction_pause_display": "Configurar distribución, fuentes y visibilidad de sistemas"
,"instruction_pause_games": "Abrir historial, cambiar fuente o refrescar lista"
,"instruction_pause_settings": "Música, opción symlink y estado de claves API"
,"instruction_pause_restart": "Reiniciar RGSX para recargar configuración"
,"instruction_pause_support": "Generar un archivo ZIP de diagnóstico para soporte"
,"instruction_pause_quit": "Salir de la aplicación RGSX"
,"instruction_controls_help": "Mostrar referencia completa de mando y teclado"
,"instruction_controls_remap": "Cambiar asignación de botones / teclas"
,"instruction_generic_back": "Volver al menú anterior"
,"instruction_display_layout": "Alternar dimensiones de la cuadrícula (columnas × filas)"
,"instruction_display_font_size": "Ajustar tamaño del texto para mejor legibilidad"
,"instruction_display_font_family": "Cambiar entre familias de fuentes disponibles"
,"instruction_display_show_unsupported": "Mostrar/ocultar sistemas no definidos en es_systems.cfg"
,"instruction_display_unknown_ext": "Activar/desactivar aviso para extensiones no presentes en es_systems.cfg"
,"instruction_display_hide_premium": "Ocultar sistemas que requieren acceso premium vía API: {providers}"
,"instruction_display_filter_platforms": "Elegir manualmente qué sistemas son visibles"
,"instruction_games_history": "Ver descargas pasadas y su estado"
,"instruction_games_source_mode": "Cambiar entre lista RGSX o fuente personalizada"
,"instruction_games_update_cache": "Volver a descargar y refrescar la lista de juegos"
,"instruction_settings_music": "Activar o desactivar música de fondo"
,"instruction_settings_symlink": "Alternar uso de symlinks en instalaciones"
,"instruction_settings_api_keys": "Ver claves API premium detectadas"
,"instruction_settings_web_service": "Activar/desactivar inicio automático del servicio web"
,"settings_web_service": "Servicio Web al Inicio"
,"settings_web_service_enabled": "Activado"
,"settings_web_service_disabled": "Desactivado"
,"settings_web_service_enabling": "Activando servicio web..."
,"settings_web_service_disabling": "Desactivando servicio web..."
,"settings_web_service_success_enabled": "Servicio web activado al inicio"
,"settings_web_service_success_disabled": "Servicio web desactivado al inicio"
,"settings_web_service_error": "Error: {0}"
,"controls_desc_confirm": "Confirmar (ej. A/Cruz)"
,"controls_desc_cancel": "Cancelar/Volver (ej. B/Círculo)"
,"controls_desc_up": "UP ↑"
,"controls_desc_down": "DOWN ↓"
,"controls_desc_left": "LEFT ←"
,"controls_desc_right": "RIGHT →"
,"controls_desc_page_up": "Desplazamiento rápido - (ej. LT/L2)"
,"controls_desc_page_down": "Desplazamiento rápido + (ej. RT/R2)"
,"controls_desc_history": "Abrir historial (ej. Y/Triángulo)"
,"controls_desc_clear_history": "Descargas: Selección múltiple / Historial: Limpiar (ej. X/Cuadrado)"
,"controls_desc_filter": "Modo filtro: Abrir/Confirmar (ej. Select)"
,"controls_desc_delete": "Modo filtro: Eliminar carácter (ej. LB/L1)"
,"controls_desc_space": "Modo filtro: Añadir espacio (ej. RB/R1)"
,"controls_desc_start": "Abrir menú pausa (ej. Start)"
,"controls_mapping_title": "Asignación de controles"
,"controls_mapping_instruction": "Mantén para confirmar la asignación:"
,"controls_mapping_waiting": "Esperando una tecla o botón..."
,"controls_mapping_press": "Pulsa una tecla o un botón"
,"status_already_present": "Ya Presente"
,"footer_joystick": "Joystick: {0}"
,"history_game_options_title": "Opciones del juego"
,"history_option_download_folder": "Localizar archivo"
,"history_option_extract_archive": "Extraer archivo"
,"history_option_scraper": "Scraper metadatos"
,"history_option_delete_game": "Eliminar juego"
,"history_option_error_info": "Detalles del error"
,"history_option_retry": "Reintentar descarga"
,"history_option_back": "Volver"
,"history_folder_path_label": "Ruta de destino:"
,"history_scraper_not_implemented": "Scraper aún no implementado"
,"history_confirm_delete": "¿Eliminar este juego del disco?"
,"history_file_not_found": "Archivo no encontrado"
,"history_extracting": "Extrayendo..."
,"history_extracted": "Extraído"
,"history_delete_success": "Juego eliminado con éxito"
,"history_delete_error": "Error al eliminar juego: {0}"
,"history_error_details_title": "Detalles del error"
,"history_no_error_message": "No hay mensaje de error disponible"
,"web_title": "Interfaz Web RGSX"
,"web_tab_platforms": "Lista de sistemas"
,"web_tab_downloads": "Descargas"
,"web_tab_history": "Historial"
,"web_tab_settings": "Configuración"
,"web_tab_update": "Actualizar lista"
,"web_tooltip_platforms": "Lista de sistemas"
,"web_tooltip_downloads": "Descargas"
,"web_tooltip_history": "Historial"
,"web_tooltip_settings": "Configuración"
,"web_tooltip_update": "Actualizar lista de juegos"
,"web_search_platform": "Buscar sistemas o juegos..."
,"web_search_game": "Buscar un juego..."
,"web_search_results": "resultados para"
,"web_no_results": "No se encontraron resultados"
,"web_platforms": "Sistemas"
,"web_games": "Juegos"
,"web_error_search": "Error de búsqueda"
,"web_back_platforms": "Volver a plataformas"
,"web_back": "Volver"
,"web_game_count": "{0} ({1} juegos)"
,"web_download": "Descargar"
,"web_cancel": "Cancelar"
,"web_download_canceled": "Descarga cancelada"
,"web_confirm_cancel": "¿Realmente desea cancelar esta descarga?"
,"web_update_title": "Actualizando lista de juegos..."
,"web_update_message": "Limpiando caché y recargando datos..."
,"web_update_wait": "Esto puede tardar 10-30 segundos"
,"web_error": "Error"
,"web_error_unknown": "Error desconocido"
,"web_error_update": "Error al actualizar la lista: {0}"
,"web_error_download": "Error: {0}"
,"web_history_clear": "Limpiar historial"
,"web_history_cleared": "¡Historial limpiado con éxito!"
,"web_error_clear_history": "Error al limpiar historial: {0}"
,"web_settings_title": "Información y Configuración"
,"web_settings_roms_folder": "Carpeta ROMs personalizada"
,"web_settings_roms_placeholder": "Dejar vacío para predeterminado"
,"web_settings_browse": "Explorar"
,"web_settings_language": "Idioma"
,"web_settings_font_scale": "Escala de fuente"
,"web_settings_grid": "Diseño de cuadrícula"
,"web_settings_font_family": "Familia de fuente"
,"web_settings_music": "Música"
,"web_settings_symlink": "Modo symlink"
,"web_settings_source_mode": "Fuente de juegos"
,"web_settings_custom_url": "URL personalizada"
,"web_settings_custom_url_placeholder": "Dejar vacío para /saves/ports/rgsx/games.zip o usar una URL directa como https://ejemplo.com/juegos.zip"
,"web_settings_save": "Guardar configuración"
,"web_settings_saved": "¡Configuración guardada con éxito!"
,"web_settings_saved_restart": "¡Configuración guardada con éxito!\\n\\n⚠ Algunos ajustes requieren reiniciar el servidor:\\n- Carpeta ROMs personalizada\\n- Idioma\\n\\nPor favor, reinicie el servidor web para aplicar estos cambios."
,"web_error_save_settings": "Error al guardar configuración: {0}"
,"web_browse_title": "Explorar directorios"
,"web_browse_select_drive": "Seleccione una unidad..."
,"web_browse_drives": "Unidades"
,"web_browse_parent": "Arriba"
,"web_browse_select": "Seleccionar esta carpeta"
,"web_browse_cancel": "Cancelar"
,"web_browse_empty": "No se encontraron subdirectorios"
,"web_browse_alert_restart": "Importante: Debe GUARDAR la configuración y luego REINICIAR el servidor web para que la carpeta ROMs personalizada tenga efecto.\\n\\n📝 Pasos:\\n1. Haga clic en 'Guardar configuración' abajo\\n2. Detenga el servidor web (Ctrl+C en terminal)\\n3. Reinicie el servidor web\\n\\nRuta seleccionada: {0}"
,"web_error_browse": "Error al explorar directorios: {0}"
,"web_loading_platforms": "Cargando plataformas..."
,"web_loading_games": "Cargando juegos..."
,"web_no_platforms": "No se encontraron plataformas"
,"web_no_downloads": "No hay descargas en curso"
,"web_history_empty": "No hay descargas completadas"
,"web_history_platform": "Plataforma"
,"web_history_size": "Tamaño"
,"web_history_status_completed": "Completado"
,"web_history_status_error": "Error"
,"web_settings_os": "Sistema operativo"
,"web_settings_platforms_count": "Número de plataformas"
,"web_settings_show_unsupported": "Mostrar plataformas no compatibles (sistema ausente en es_systems.cfg)"
,"web_settings_allow_unknown": "Permitir extensiones desconocidas (no mostrar advertencias)"
,"web_restart_confirm_title": "¿Reiniciar aplicación?"
,"web_restart_confirm_message": "Los parámetros se han guardado. ¿Desea reiniciar la aplicación ahora para aplicar los cambios?"
,"web_restart_yes": "Sí, reiniciar"
,"web_restart_no": "No, más tarde"
,"web_restart_success": "Reiniciando..."
,"web_restart_error": "Error al reiniciar: {0}"
,"web_support": "Soporte"
,"web_support_title": "📦 Archivo de soporte generado"
,"web_support_message": "¡Archivo de soporte creado con éxito!\\n\\n📁 Contenido:\\n• Configuración de controles\\n• Historial de descargas\\n• Configuración RGSX\\n• Registros de la aplicación\\n• Registros del servidor web\\n\\n💬 Para obtener ayuda:\\n1. Únete al Discord de RGSX\\n2. Describe tu problema\\n3. Comparte este archivo ZIP\\n\\nLa descarga comenzará..."
,"web_support_generating": "Generando archivo de soporte..."
,"web_support_download": "Descargar archivo de soporte"
,"web_support_error": "Error al generar el archivo de soporte: {0}"
,"web_tab_queue": "Cola"
,"web_tooltip_queue": "Cola de descargas"
,"web_queue_active_download": "⏳ Una descarga está activa"
,"web_queue_no_active": "✓ Sin descargas activas"
,"web_queue_title": "Cola de Descargas"
,"web_queue_empty": "No hay elementos en la cola"
,"web_queue_clear": "Limpiar cola"
,"web_queue_cleared": "¡Cola limpiada con éxito!"
,"web_confirm_remove_queue": "¿Eliminar este elemento de la cola?"
,"web_confirm_clear_queue": "¿Limpiar toda la cola?"
,"web_remove": "Eliminar"
,"web_loading": "Cargando..."
,"web_sort": "Ordenar por"
,"web_sort_name_asc": "A-Z (Nombre)"
,"web_sort_name_desc": "Z-A (Nombre)"
,"web_sort_size_asc": "Tamaño +- (Menor primero)"
,"web_sort_size_desc": "Tamaño -+ (Mayor primero)"
"popup_hide_premium_off": "Sistemas Premium visibles",
"submenu_display_font_family": "Fuente",
"popup_font_family_changed": "Fuente cambiada: {0}",
"instruction_pause_language": "Cambiar el idioma de la interfaz",
"instruction_pause_controls": "Ver esquema de controles o remapear",
"instruction_pause_display": "Configurar distribución, fuentes y visibilidad de sistemas",
"instruction_pause_games": "Abrir historial, cambiar fuente o refrescar lista",
"instruction_pause_settings": "Música, opción symlink y estado de claves API",
"instruction_pause_restart": "Reiniciar RGSX para recargar configuración",
"instruction_pause_support": "Generar un archivo ZIP de diagnóstico para soporte",
"instruction_pause_quit": "Salir de la aplicación RGSX",
"instruction_controls_help": "Mostrar referencia completa de mando y teclado",
"instruction_controls_remap": "Cambiar asignación de botones / teclas",
"instruction_generic_back": "Volver al menú anterior",
"instruction_display_layout": "Alternar dimensiones de la cuadrícula (columnas × filas)",
"instruction_display_font_size": "Ajustar tamaño del texto para mejor legibilidad",
"instruction_display_font_family": "Cambiar entre familias de fuentes disponibles",
"instruction_display_show_unsupported": "Mostrar/ocultar sistemas no definidos en es_systems.cfg",
"instruction_display_unknown_ext": "Activar/desactivar aviso para extensiones no presentes en es_systems.cfg",
"instruction_display_hide_premium": "Ocultar sistemas que requieren acceso premium vía API: {providers}",
"instruction_display_filter_platforms": "Elegir manualmente qué sistemas son visibles",
"instruction_games_history": "Ver descargas pasadas y su estado",
"instruction_games_source_mode": "Cambiar entre lista RGSX o fuente personalizada",
"instruction_games_update_cache": "Volver a descargar y refrescar la lista de juegos",
"instruction_settings_music": "Activar o desactivar música de fondo",
"instruction_settings_symlink": "Alternar uso de symlinks en instalaciones",
"instruction_settings_api_keys": "Ver claves API premium detectadas",
"instruction_settings_web_service": "Activar/desactivar inicio automático del servicio web",
"settings_web_service": "Servicio Web al Inicio",
"settings_web_service_enabled": "Activado",
"settings_web_service_disabled": "Desactivado",
"settings_web_service_enabling": "Activando servicio web...",
"settings_web_service_disabling": "Desactivando servicio web...",
"settings_web_service_success_enabled": "Servicio web activado al inicio",
"settings_web_service_success_disabled": "Servicio web desactivado al inicio",
"settings_web_service_error": "Error: {0}",
"controls_desc_confirm": "Confirmar (ej. A/Cruz)",
"controls_desc_cancel": "Cancelar/Volver (ej. B/Círculo)",
"controls_desc_up": "UP ↑",
"controls_desc_down": "DOWN ↓",
"controls_desc_left": "LEFT ←",
"controls_desc_right": "RIGHT →",
"controls_desc_page_up": "Desplazamiento rápido - (ej. LT/L2)",
"controls_desc_page_down": "Desplazamiento rápido + (ej. RT/R2)",
"controls_desc_history": "Abrir historial (ej. Y/Triángulo)",
"controls_desc_clear_history": "Descargas: Selección múltiple / Historial: Limpiar (ej. X/Cuadrado)",
"controls_desc_filter": "Modo filtro: Abrir/Confirmar (ej. Select)",
"controls_desc_delete": "Modo filtro: Eliminar carácter (ej. LB/L1)",
"controls_desc_space": "Modo filtro: Añadir espacio (ej. RB/R1)",
"controls_desc_start": "Abrir menú pausa (ej. Start)",
"controls_mapping_title": "Asignación de controles",
"controls_mapping_instruction": "Mantén para confirmar la asignación:",
"controls_mapping_waiting": "Esperando una tecla o botón...",
"controls_mapping_press": "Pulsa una tecla o un botón",
"status_already_present": "Ya Presente",
"footer_joystick": "Joystick: {0}",
"history_game_options_title": "Opciones del juego",
"history_option_download_folder": "Localizar archivo",
"history_option_extract_archive": "Extraer archivo",
"history_option_scraper": "Scraper metadatos",
"history_option_delete_game": "Eliminar juego",
"history_option_error_info": "Detalles del error",
"history_option_retry": "Reintentar descarga",
"history_option_back": "Volver",
"history_folder_path_label": "Ruta de destino:",
"history_scraper_not_implemented": "Scraper aún no implementado",
"history_confirm_delete": "¿Eliminar este juego del disco?",
"history_file_not_found": "Archivo no encontrado",
"history_extracting": "Extrayendo...",
"history_extracted": "Extraído",
"history_delete_success": "Juego eliminado con éxito",
"history_delete_error": "Error al eliminar juego: {0}",
"history_error_details_title": "Detalles del error",
"history_no_error_message": "No hay mensaje de error disponible",
"web_title": "Interfaz Web RGSX",
"web_tab_platforms": "Lista de sistemas",
"web_tab_downloads": "Descargas",
"web_tab_history": "Historial",
"web_tab_settings": "Configuración",
"web_tab_update": "Actualizar lista",
"web_tooltip_platforms": "Lista de sistemas",
"web_tooltip_downloads": "Descargas",
"web_tooltip_history": "Historial",
"web_tooltip_settings": "Configuración",
"web_tooltip_update": "Actualizar lista de juegos",
"web_search_platform": "Buscar sistemas o juegos...",
"web_search_game": "Buscar un juego...",
"web_search_results": "resultados para",
"web_no_results": "No se encontraron resultados",
"web_platforms": "Sistemas",
"web_games": "Juegos",
"web_error_search": "Error de búsqueda",
"web_back_platforms": "Volver a plataformas",
"web_back": "Volver",
"web_game_count": "{0} ({1} juegos)",
"web_download": "Descargar",
"web_cancel": "Cancelar",
"web_download_canceled": "Descarga cancelada",
"web_confirm_cancel": "¿Realmente desea cancelar esta descarga?",
"web_update_title": "Actualizando lista de juegos...",
"web_update_message": "Limpiando caché y recargando datos...",
"web_update_wait": "Esto puede tardar 10-30 segundos",
"web_error": "Error",
"web_error_unknown": "Error desconocido",
"web_error_update": "Error al actualizar la lista: {0}",
"web_error_download": "Error: {0}",
"web_history_clear": "Limpiar historial",
"web_history_cleared": "¡Historial limpiado con éxito!",
"web_error_clear_history": "Error al limpiar historial: {0}",
"web_settings_title": "Información y Configuración",
"web_settings_roms_folder": "Carpeta ROMs personalizada",
"web_settings_roms_placeholder": "Dejar vacío para predeterminado",
"web_settings_browse": "Explorar",
"web_settings_language": "Idioma",
"web_settings_font_scale": "Escala de fuente",
"web_settings_grid": "Diseño de cuadrícula",
"web_settings_font_family": "Familia de fuente",
"web_settings_music": "Música",
"web_settings_symlink": "Modo symlink",
"web_settings_source_mode": "Fuente de juegos",
"web_settings_custom_url": "URL personalizada",
"web_settings_custom_url_placeholder": "Dejar vacío para /saves/ports/rgsx/games.zip o usar una URL directa como https://ejemplo.com/juegos.zip",
"web_settings_save": "Guardar configuración",
"web_settings_saved": "¡Configuración guardada con éxito!",
"web_settings_saved_restart": "¡Configuración guardada con éxito!\\n\\n⚠ Algunos ajustes requieren reiniciar el servidor:\\n- Carpeta ROMs personalizada\\n- Idioma\\n\\nPor favor, reinicie el servidor web para aplicar estos cambios.",
"web_error_save_settings": "Error al guardar configuración: {0}",
"web_browse_title": "Explorar directorios",
"web_browse_select_drive": "Seleccione una unidad...",
"web_browse_drives": "Unidades",
"web_browse_parent": "Arriba",
"web_browse_select": "Seleccionar esta carpeta",
"web_browse_cancel": "Cancelar",
"web_browse_empty": "No se encontraron subdirectorios",
"web_browse_alert_restart": "Importante: Debe GUARDAR la configuración y luego REINICIAR el servidor web para que la carpeta ROMs personalizada tenga efecto.\\n\\n📝 Pasos:\\n1. Haga clic en 'Guardar configuración' abajo\\n2. Detenga el servidor web (Ctrl+C en terminal)\\n3. Reinicie el servidor web\\n\\nRuta seleccionada: {0}",
"web_error_browse": "Error al explorar directorios: {0}",
"web_loading_platforms": "Cargando plataformas...",
"web_loading_games": "Cargando juegos...",
"web_no_platforms": "No se encontraron plataformas",
"web_no_downloads": "No hay descargas en curso",
"web_history_empty": "No hay descargas completadas",
"web_history_platform": "Plataforma",
"web_history_size": "Tamaño",
"web_history_status_completed": "Completado",
"web_history_status_error": "Error",
"web_settings_os": "Sistema operativo",
"web_settings_platforms_count": "Número de plataformas",
"web_settings_show_unsupported": "Mostrar plataformas no compatibles (sistema ausente en es_systems.cfg)",
"web_settings_allow_unknown": "Permitir extensiones desconocidas (no mostrar advertencias)",
"web_restart_confirm_title": "¿Reiniciar aplicación?",
"web_restart_confirm_message": "Los parámetros se han guardado. ¿Desea reiniciar la aplicación ahora para aplicar los cambios?",
"web_restart_yes": "Sí, reiniciar",
"web_restart_no": "No, más tarde",
"web_restart_success": "Reiniciando...",
"web_restart_error": "Error al reiniciar: {0}",
"web_support": "Soporte",
"web_support_title": "📦 Archivo de soporte generado",
"web_support_message": "¡Archivo de soporte creado con éxito!\\n\\n📁 Contenido:\\n• Configuración de controles\\n• Historial de descargas\\n• Configuración RGSX\\n• Registros de la aplicación\\n• Registros del servidor web\\n\\n💬 Para obtener ayuda:\\n1. Únete al Discord de RGSX\\n2. Describe tu problema\\n3. Comparte este archivo ZIP\\n\\nLa descarga comenzará...",
"web_support_generating": "Generando archivo de soporte...",
"web_support_download": "Descargar archivo de soporte",
"web_support_error": "Error al generar el archivo de soporte: {0}",
"web_tab_queue": "Cola",
"web_tooltip_queue": "Cola de descargas",
"web_queue_active_download": "⏳ Una descarga está activa",
"web_queue_no_active": "✓ Sin descargas activas",
"web_queue_title": "Cola de Descargas",
"web_queue_empty": "No hay elementos en la cola",
"web_queue_clear": "Limpiar cola",
"web_queue_cleared": "¡Cola limpiada con éxito!",
"web_confirm_remove_queue": "¿Eliminar este elemento de la cola?",
"web_confirm_clear_queue": "¿Limpiar toda la cola?",
"web_remove": "Eliminar",
"web_loading": "Cargando...",
"web_sort": "Ordenar por",
"web_sort_name_asc": "A-Z (Nombre)",
"web_sort_name_desc": "Z-A (Nombre)",
"web_sort_size_asc": "Tamaño +- (Menor primero)",
"web_sort_size_desc": "Tamaño -+ (Mayor primero)",
"web_filter_region": "Región",
"web_filter_hide_non_release": "Ocultar Demos/Betas/Protos",
"web_filter_regex_mode": "Activar búsqueda Regex",
"web_filter_one_rom_per_game": "Una ROM por juego",
"web_filter_configure_priority": "Configurar orden de prioridad de regiones"
}

View File

@@ -141,7 +141,7 @@
"download_queued": "En file d'attente",
"download_started": "Téléchargement démarré",
"network_download_already_queued": "Ce téléchargement est déjà en cours",
"utils_extracted": "Extracted: {0}",
"utils_extracted": "Extrait: {0}",
"utils_corrupt_zip": "Archive ZIP corrompue: {0}",
"utils_permission_denied": "Permission refusée lors de l'extraction: {0}",
"utils_extraction_failed": "Échec de l'extraction: {0}",
@@ -353,4 +353,9 @@
,"web_sort_name_desc": "Z-A (Nom)"
,"web_sort_size_asc": "Taille +- (Petit d'abord)"
,"web_sort_size_desc": "Taille -+ (Grand d'abord)"
,"web_filter_region": "Région"
,"web_filter_hide_non_release": "Masquer Démos/Betas/Protos"
,"web_filter_regex_mode": "Activer recherche Regex"
,"web_filter_one_rom_per_game": "Une ROM par jeu"
,"web_filter_configure_priority": "Configurer l'ordre de priorité des régions"
}

View File

@@ -89,7 +89,7 @@
"popup_restarting": "Riavvio...",
"controls_action_clear_history": "Cancella cronologia",
"controls_action_history": "Cronologia / Downloads",
"controls_action_close_history": "Chiudi Cronologia",
"controls_action_close_history": "Chiudi Cronologia",
"controls_action_delete": "Elimina",
"controls_action_space": "Spazio",
"controls_action_start": "Aiuto / Impostazioni",
@@ -128,9 +128,16 @@
"download_in_progress": "Download in corso...",
"download_queued": "In coda di download",
"download_started": "Download iniziato",
"accessibility_font_size": "Dimensione carattere: {0}",
"confirm_cancel_download": "Annullare il download corrente?",
"controls_help_title": "Guida ai controlli",
"network_download_already_queued": "Questo download è già in corso",
"utils_extracted": "Estratto: {0}",
"utils_corrupt_zip": "Archivio ZIP corrotto: {0}",
"utils_permission_denied": "Permesso negato durante l'estrazione: {0}",
"utils_extraction_failed": "Estrazione fallita: {0}",
"utils_unrar_unavailable": "Comando unrar non disponibile",
"utils_rar_list_failed": "Impossibile elencare i file RAR: {0}",
"symlink_option_enabled": "Opzione symlink abilitata",
"symlink_option_disabled": "Opzione symlink disabilitata",
"menu_games_source_prefix": "Sorgente giochi",
"controls_category_navigation": "Navigazione",
"controls_category_main_actions": "Azioni principali",
"controls_category_downloads": "Download",
@@ -140,9 +147,6 @@
"controls_confirm_select": "Conferma/Seleziona",
"controls_cancel_back": "Annulla/Indietro",
"controls_filter_search": "Filtro/Ricerca",
"symlink_option_enabled": "Opzione symlink abilitata",
"symlink_option_disabled": "Opzione symlink disabilitata",
"menu_games_source_prefix": "Sorgente giochi",
"games_source_rgsx": "RGSX",
"sources_mode_rgsx_select_info": "RGSX: aggiorna l'elenco dei giochi",
"games_source_custom": "Personalizzato",
@@ -169,181 +173,189 @@
"api_key_empty_suffix": "vuoto",
"menu_hide_premium_systems": "Nascondi sistemi Premium",
"popup_hide_premium_on": "Sistemi Premium nascosti",
"popup_hide_premium_off": "Sistemi Premium visibili"
,"submenu_display_font_family": "Font"
,"popup_font_family_changed": "Font cambiato: {0}"
,"instruction_pause_language": "Cambiare la lingua dell'interfaccia"
,"instruction_pause_controls": "Vedere schema controlli o avviare rimappatura"
,"instruction_pause_display": "Configurare layout, font e visibilità sistemi"
,"instruction_pause_games": "Aprire cronologia, cambiare sorgente o aggiornare elenco"
,"instruction_pause_settings": "Musica, opzione symlink e stato chiavi API"
,"instruction_pause_restart": "Riavvia RGSX per ricaricare la configurazione"
,"instruction_pause_support": "Genera un file ZIP diagnostico per il supporto"
,"instruction_pause_quit": "Uscire dall'applicazione RGSX"
,"instruction_controls_help": "Mostrare riferimento completo controller & tastiera"
,"instruction_controls_remap": "Modificare associazione pulsanti / tasti"
,"instruction_generic_back": "Tornare al menu precedente"
,"instruction_display_layout": "Scorrere dimensioni griglia (colonne × righe)"
,"instruction_display_font_size": "Regolare dimensione testo per leggibilità"
,"instruction_display_font_family": "Cambiare famiglia di font disponibile"
,"instruction_display_show_unsupported": "Mostrare/nascondere sistemi non definiti in es_systems.cfg"
,"instruction_display_unknown_ext": "Attivare/disattivare avviso per estensioni assenti in es_systems.cfg"
,"instruction_display_hide_premium": "Nascondere sistemi che richiedono accesso premium via API: {providers}"
,"instruction_display_filter_platforms": "Scegliere manualmente quali sistemi sono visibili"
,"instruction_games_history": "Elencare download passati e stato"
,"instruction_games_source_mode": "Passare tra elenco RGSX o sorgente personalizzata"
,"instruction_games_update_cache": "Riscaria e aggiorna l'elenco dei giochi"
,"instruction_settings_music": "Abilitare o disabilitare musica di sottofondo"
,"instruction_settings_symlink": "Abilitare/disabilitare uso symlink per installazioni"
,"instruction_settings_api_keys": "Mostrare chiavi API premium rilevate"
,"instruction_settings_web_service": "Attivare/disattivare avvio automatico servizio web all'avvio"
,"settings_web_service": "Servizio Web all'Avvio"
,"settings_web_service_enabled": "Abilitato"
,"settings_web_service_disabled": "Disabilitato"
,"settings_web_service_enabling": "Abilitazione servizio web..."
,"settings_web_service_disabling": "Disabilitazione servizio web..."
,"settings_web_service_success_enabled": "Servizio web abilitato all'avvio"
,"settings_web_service_success_disabled": "Servizio web disabilitato all'avvio"
,"settings_web_service_error": "Errore: {0}"
,"controls_desc_confirm": "Confermare (es. A/Croce)"
,"controls_desc_cancel": "Annullare/Indietro (es. B/Cerchio)"
,"controls_desc_up": "UP ↑"
,"controls_desc_down": "DOWN ↓"
,"controls_desc_left": "LEFT ←"
,"controls_desc_right": "RIGHT →"
,"controls_desc_page_up": "Scorrimento rapido su (es. LT/L2)"
,"controls_desc_page_down": "Scorrimento rapido giù (es. RT/R2)"
,"controls_desc_history": "Aprire cronologia (es. Y/Triangolo)"
,"controls_desc_clear_history": "Download: Selezione multipla / Cronologia: Svuotare (es. X/Quadrato)"
,"controls_desc_filter": "Modalità filtro: Aprire/Confermare (es. Select)"
,"controls_desc_delete": "Modalità filtro: Eliminare carattere (es. LB/L1)"
,"controls_desc_space": "Modalità filtro: Aggiungere spazio (es. RB/R1)"
,"controls_desc_start": "Aprire menu pausa (es. Start)"
,"controls_mapping_title": "Mappatura controlli"
,"controls_mapping_instruction": "Tieni premuto per confermare l'associazione:"
,"controls_mapping_waiting": "In attesa di un tasto o pulsante..."
,"controls_mapping_press": "Premi un tasto o un pulsante"
,"status_already_present": "Già Presente"
,"footer_joystick": "Joystick: {0}"
,"history_game_options_title": "Opzioni gioco"
,"history_option_download_folder": "Localizza file"
,"history_option_extract_archive": "Estrai archivio"
,"history_option_scraper": "Scraper metadati"
,"history_option_delete_game": "Elimina gioco"
,"history_option_error_info": "Dettagli errore"
,"history_option_retry": "Riprova download"
,"history_option_back": "Indietro"
,"history_folder_path_label": "Percorso destinazione:"
,"history_scraper_not_implemented": "Scraper non ancora implementato"
,"history_confirm_delete": "Eliminare questo gioco dal disco?"
,"history_file_not_found": "File non trovato"
,"history_extracting": "Estrazione in corso..."
,"history_extracted": "Estratto"
,"history_delete_success": "Gioco eliminato con successo"
,"history_delete_error": "Errore durante l'eliminazione del gioco: {0}"
,"history_error_details_title": "Dettagli errore"
,"history_no_error_message": "Nessun messaggio di errore disponibile"
,"web_title": "Interfaccia Web RGSX"
,"web_tab_platforms": "Elenco sistemi"
,"web_tab_downloads": "Download"
,"web_tab_history": "Cronologia"
,"web_tab_settings": "Impostazioni"
,"web_tab_update": "Aggiorna elenco"
,"web_tooltip_platforms": "Elenco sistemi"
,"web_tooltip_downloads": "Download"
,"web_tooltip_history": "Cronologia"
,"web_tooltip_settings": "Impostazioni"
,"web_tooltip_update": "Aggiorna elenco giochi"
,"web_search_platform": "Cerca sistemi o giochi..."
,"web_search_game": "Cerca un gioco..."
,"web_search_results": "risultati per"
,"web_no_results": "Nessun risultato trovato"
,"web_platforms": "Sistemi"
,"web_games": "Giochi"
,"web_error_search": "Errore di ricerca"
,"web_back_platforms": "Torna alle piattaforme"
,"web_back": "Indietro"
,"web_game_count": "{0} ({1} giochi)"
,"web_download": "Scarica"
,"web_cancel": "Annulla"
,"web_download_canceled": "Download annullato"
,"web_confirm_cancel": "Vuoi davvero annullare questo download?"
,"web_update_title": "Aggiornamento elenco giochi..."
,"web_update_message": "Pulizia cache e ricaricamento dati..."
,"web_update_wait": "Potrebbe richiedere 10-30 secondi"
,"web_error": "Errore"
,"web_error_unknown": "Errore sconosciuto"
,"web_error_update": "Errore durante l'aggiornamento dell'elenco: {0}"
,"web_error_download": "Errore: {0}"
,"web_history_clear": "Cancella cronologia"
,"web_history_cleared": "Cronologia cancellata con successo!"
,"web_error_clear_history": "Errore durante la cancellazione della cronologia: {0}"
,"web_settings_title": "Info e Impostazioni"
,"web_settings_roms_folder": "Cartella ROMs personalizzata"
,"web_settings_roms_placeholder": "Lasciare vuoto per predefinito"
,"web_settings_browse": "Sfoglia"
,"web_settings_language": "Lingua"
,"web_settings_font_scale": "Scala carattere"
,"web_settings_grid": "Layout griglia"
,"web_settings_font_family": "Famiglia carattere"
,"web_settings_music": "Musica"
,"web_settings_symlink": "Modalità symlink"
,"web_settings_source_mode": "Fonte giochi"
,"web_settings_custom_url": "URL personalizzato"
,"web_settings_custom_url_placeholder": " Lasciare vuoto per /saves/ports/rgsx/games.zip o usare una URL diretta come https://esempio.com/giochi.zip"
,"web_settings_save": "Salva impostazioni"
,"web_settings_saved": "Impostazioni salvate con successo!"
,"web_settings_saved_restart": "Impostazioni salvate con successo!\\n\\n⚠ Alcune impostazioni richiedono il riavvio del server:\\n- Cartella ROMs personalizzata\\n- Lingua\\n\\nRiavviare il server web per applicare queste modifiche."
,"web_error_save_settings": "Errore durante il salvataggio delle impostazioni: {0}"
,"web_browse_title": "Sfoglia directory"
,"web_browse_select_drive": "Seleziona un'unità..."
,"web_browse_drives": "Unità"
,"web_browse_parent": "Superiore"
,"web_browse_select": "Seleziona questa cartella"
,"web_browse_cancel": "Annulla"
,"web_browse_empty": "Nessuna sottodirectory trovata"
,"web_browse_alert_restart": "Importante: È necessario SALVARE le impostazioni e poi RIAVVIARE il server web affinché la cartella ROMs personalizzata abbia effetto.\\n\\n📝 Passaggi:\\n1. Fare clic su 'Salva impostazioni' qui sotto\\n2. Arrestare il server web (Ctrl+C nel terminale)\\n3. Riavviare il server web\\n\\nPercorso selezionato: {0}"
,"web_error_browse": "Errore durante la navigazione delle directory: {0}"
,"web_loading_platforms": "Caricamento piattaforme..."
,"web_loading_games": "Caricamento giochi..."
,"web_no_platforms": "Nessuna piattaforma trovata"
,"web_no_downloads": "Nessun download in corso"
,"web_history_empty": "Nessun download completato"
,"web_history_platform": "Piattaforma"
,"web_history_size": "Dimensione"
,"web_history_status_completed": "Completato"
,"web_history_status_error": "Errore"
,"web_settings_os": "Sistema operativo"
,"web_settings_platforms_count": "Numero di piattaforme"
,"web_settings_show_unsupported": "Mostra piattaforme non supportate (sistema assente in es_systems.cfg)"
,"web_settings_allow_unknown": "Consenti estensioni sconosciute (non mostrare avvisi)"
,"web_restart_confirm_title": "Riavviare l'applicazione?"
,"web_restart_confirm_message": "Le impostazioni sono state salvate. Vuoi riavviare l'applicazione ora per applicare le modifiche?"
,"web_restart_yes": "Sì, riavvia"
,"web_restart_no": "No, più tardi"
,"web_restart_success": "Riavvio in corso..."
,"web_restart_error": "Errore durante il riavvio: {0}"
,"web_support": "Supporto"
,"web_support_title": "📦 File di supporto generato"
,"web_support_message": "File di supporto creato con successo!\\n\\n📁 Contenuto:\\n• Configurazione controlli\\n• Cronologia download\\n• Impostazioni RGSX\\n• Log dell'applicazione\\n• Log del server web\\n\\n💬 Per ottenere aiuto:\\n1. Unisciti al Discord RGSX\\n2. Descrivi il tuo problema\\n3. Condividi questo file ZIP\\n\\nIl download inizierà..."
,"web_support_generating": "Generazione file di supporto..."
,"web_support_download": "Scarica file di supporto"
,"web_support_error": "Errore nella generazione del file di supporto: {0}"
,"web_tab_queue": "Coda"
,"web_tooltip_queue": "Coda di download"
,"web_queue_active_download": "⏳ Un download è attivo"
,"web_queue_no_active": "✓ Nessun download attivo"
,"web_queue_title": "Coda di Download"
,"web_queue_empty": "Nessun elemento in coda"
,"web_queue_clear": "Svuota coda"
,"web_queue_cleared": "Coda svuotata con successo!"
,"web_confirm_remove_queue": "Rimuovere questo elemento dalla coda?"
,"web_confirm_clear_queue": "Svuotare l'intera coda?"
,"web_remove": "Rimuovi"
,"web_loading": "Caricamento..."
,"web_sort": "Ordina per"
,"web_sort_name_asc": "A-Z (Nome)"
,"web_sort_name_desc": "Z-A (Nome)"
,"web_sort_size_asc": "Dimensione +- (Piccolo primo)"
,"web_sort_size_desc": "Dimensione -+ (Grande primo)"
"popup_hide_premium_off": "Sistemi Premium visibili",
"submenu_display_font_family": "Font",
"popup_font_family_changed": "Font cambiato: {0}",
"instruction_pause_language": "Cambiare la lingua dell'interfaccia",
"instruction_pause_controls": "Vedere schema controlli o avviare rimappatura",
"instruction_pause_display": "Configurare layout, font e visibilità sistemi",
"instruction_pause_games": "Aprire cronologia, cambiare sorgente o aggiornare elenco",
"instruction_pause_settings": "Musica, opzione symlink e stato chiavi API",
"instruction_pause_restart": "Riavvia RGSX per ricaricare la configurazione",
"instruction_pause_support": "Genera un file ZIP diagnostico per il supporto",
"instruction_pause_quit": "Uscire dall'applicazione RGSX",
"instruction_controls_help": "Mostrare riferimento completo controller & tastiera",
"instruction_controls_remap": "Modificare associazione pulsanti / tasti",
"instruction_generic_back": "Tornare al menu precedente",
"instruction_display_layout": "Scorrere dimensioni griglia (colonne × righe)",
"instruction_display_font_size": "Regolare dimensione testo per leggibilità",
"instruction_display_font_family": "Cambiare famiglia di font disponibile",
"instruction_display_show_unsupported": "Mostrare/nascondere sistemi non definiti in es_systems.cfg",
"instruction_display_unknown_ext": "Attivare/disattivare avviso per estensioni assenti in es_systems.cfg",
"instruction_display_hide_premium": "Nascondere sistemi che richiedono accesso premium via API: {providers}",
"instruction_display_filter_platforms": "Scegliere manualmente quali sistemi sono visibili",
"instruction_games_history": "Elencare download passati e stato",
"instruction_games_source_mode": "Passare tra elenco RGSX o sorgente personalizzata",
"instruction_games_update_cache": "Riscaria e aggiorna l'elenco dei giochi",
"instruction_settings_music": "Abilitare o disabilitare musica di sottofondo",
"instruction_settings_symlink": "Abilitare/disabilitare uso symlink per installazioni",
"instruction_settings_api_keys": "Mostrare chiavi API premium rilevate",
"instruction_settings_web_service": "Attivare/disattivare avvio automatico servizio web all'avvio",
"settings_web_service": "Servizio Web all'Avvio",
"settings_web_service_enabled": "Abilitato",
"settings_web_service_disabled": "Disabilitato",
"settings_web_service_enabling": "Abilitazione servizio web...",
"settings_web_service_disabling": "Disabilitazione servizio web...",
"settings_web_service_success_enabled": "Servizio web abilitato all'avvio",
"settings_web_service_success_disabled": "Servizio web disabilitato all'avvio",
"settings_web_service_error": "Errore: {0}",
"controls_desc_confirm": "Confermare (es. A/Croce)",
"controls_desc_cancel": "Annullare/Indietro (es. B/Cerchio)",
"controls_desc_up": "UP ↑",
"controls_desc_down": "DOWN ↓",
"controls_desc_left": "LEFT ←",
"controls_desc_right": "RIGHT →",
"controls_desc_page_up": "Scorrimento rapido su (es. LT/L2)",
"controls_desc_page_down": "Scorrimento rapido giù (es. RT/R2)",
"controls_desc_history": "Aprire cronologia (es. Y/Triangolo)",
"controls_desc_clear_history": "Download: Selezione multipla / Cronologia: Svuotare (es. X/Quadrato)",
"controls_desc_filter": "Modalità filtro: Aprire/Confermare (es. Select)",
"controls_desc_delete": "Modalità filtro: Eliminare carattere (es. LB/L1)",
"controls_desc_space": "Modalità filtro: Aggiungere spazio (es. RB/R1)",
"controls_desc_start": "Aprire menu pausa (es. Start)",
"controls_mapping_title": "Mappatura controlli",
"controls_mapping_instruction": "Tieni premuto per confermare l'associazione:",
"controls_mapping_waiting": "In attesa di un tasto o pulsante...",
"controls_mapping_press": "Premi un tasto o un pulsante",
"status_already_present": "Già Presente",
"footer_joystick": "Joystick: {0}",
"history_game_options_title": "Opzioni gioco",
"history_option_download_folder": "Localizza file",
"history_option_extract_archive": "Estrai archivio",
"history_option_scraper": "Scraper metadati",
"history_option_delete_game": "Elimina gioco",
"history_option_error_info": "Dettagli errore",
"history_option_retry": "Riprova download",
"history_option_back": "Indietro",
"history_folder_path_label": "Percorso destinazione:",
"history_scraper_not_implemented": "Scraper non ancora implementato",
"history_confirm_delete": "Eliminare questo gioco dal disco?",
"history_file_not_found": "File non trovato",
"history_extracting": "Estrazione in corso...",
"history_extracted": "Estratto",
"history_delete_success": "Gioco eliminato con successo",
"history_delete_error": "Errore durante l'eliminazione del gioco: {0}",
"history_error_details_title": "Dettagli errore",
"history_no_error_message": "Nessun messaggio di errore disponibile",
"web_title": "Interfaccia Web RGSX",
"web_tab_platforms": "Elenco sistemi",
"web_tab_downloads": "Download",
"web_tab_history": "Cronologia",
"web_tab_settings": "Impostazioni",
"web_tab_update": "Aggiorna elenco",
"web_tooltip_platforms": "Elenco sistemi",
"web_tooltip_downloads": "Download",
"web_tooltip_history": "Cronologia",
"web_tooltip_settings": "Impostazioni",
"web_tooltip_update": "Aggiorna elenco giochi",
"web_search_platform": "Cerca sistemi o giochi...",
"web_search_game": "Cerca un gioco...",
"web_search_results": "risultati per",
"web_no_results": "Nessun risultato trovato",
"web_platforms": "Sistemi",
"web_games": "Giochi",
"web_error_search": "Errore di ricerca",
"web_back_platforms": "Torna alle piattaforme",
"web_back": "Indietro",
"web_game_count": "{0} ({1} giochi)",
"web_download": "Scarica",
"web_cancel": "Annulla",
"web_download_canceled": "Download annullato",
"web_confirm_cancel": "Vuoi davvero annullare questo download?",
"web_update_title": "Aggiornamento elenco giochi...",
"web_update_message": "Pulizia cache e ricaricamento dati...",
"web_update_wait": "Potrebbe richiedere 10-30 secondi",
"web_error": "Errore",
"web_error_unknown": "Errore sconosciuto",
"web_error_update": "Errore durante l'aggiornamento dell'elenco: {0}",
"web_error_download": "Errore: {0}",
"web_history_clear": "Cancella cronologia",
"web_history_cleared": "Cronologia cancellata con successo!",
"web_error_clear_history": "Errore durante la cancellazione della cronologia: {0}",
"web_settings_title": "Info e Impostazioni",
"web_settings_roms_folder": "Cartella ROMs personalizzata",
"web_settings_roms_placeholder": "Lasciare vuoto per predefinito",
"web_settings_browse": "Sfoglia",
"web_settings_language": "Lingua",
"web_settings_font_scale": "Scala carattere",
"web_settings_grid": "Layout griglia",
"web_settings_font_family": "Famiglia carattere",
"web_settings_music": "Musica",
"web_settings_symlink": "Modalità symlink",
"web_settings_source_mode": "Fonte giochi",
"web_settings_custom_url": "URL personalizzato",
"web_settings_custom_url_placeholder": " Lasciare vuoto per /saves/ports/rgsx/games.zip o usare una URL diretta come https://esempio.com/giochi.zip",
"web_settings_save": "Salva impostazioni",
"web_settings_saved": "Impostazioni salvate con successo!",
"web_settings_saved_restart": "Impostazioni salvate con successo!\\n\\n⚠ Alcune impostazioni richiedono il riavvio del server:\\n- Cartella ROMs personalizzata\\n- Lingua\\n\\nRiavviare il server web per applicare queste modifiche.",
"web_error_save_settings": "Errore durante il salvataggio delle impostazioni: {0}",
"web_browse_title": "Sfoglia directory",
"web_browse_select_drive": "Seleziona un'unità...",
"web_browse_drives": "Unità",
"web_browse_parent": "Superiore",
"web_browse_select": "Seleziona questa cartella",
"web_browse_cancel": "Annulla",
"web_browse_empty": "Nessuna sottodirectory trovata",
"web_browse_alert_restart": "Importante: È necessario SALVARE le impostazioni e poi RIAVVIARE il server web affinché la cartella ROMs personalizzata abbia effetto.\\n\\n📝 Passaggi:\\n1. Fare clic su 'Salva impostazioni' qui sotto\\n2. Arrestare il server web (Ctrl+C nel terminale)\\n3. Riavviare il server web\\n\\nPercorso selezionato: {0}",
"web_error_browse": "Errore durante la navigazione delle directory: {0}",
"web_loading_platforms": "Caricamento piattaforme...",
"web_loading_games": "Caricamento giochi...",
"web_no_platforms": "Nessuna piattaforma trovata",
"web_no_downloads": "Nessun download in corso",
"web_history_empty": "Nessun download completato",
"web_history_platform": "Piattaforma",
"web_history_size": "Dimensione",
"web_history_status_completed": "Completato",
"web_history_status_error": "Errore",
"web_settings_os": "Sistema operativo",
"web_settings_platforms_count": "Numero di piattaforme",
"web_settings_show_unsupported": "Mostra piattaforme non supportate (sistema assente in es_systems.cfg)",
"web_settings_allow_unknown": "Consenti estensioni sconosciute (non mostrare avvisi)",
"web_restart_confirm_title": "Riavviare l'applicazione?",
"web_restart_confirm_message": "Le impostazioni sono state salvate. Vuoi riavviare l'applicazione ora per applicare le modifiche?",
"web_restart_yes": "Sì, riavvia",
"web_restart_no": "No, più tardi",
"web_restart_success": "Riavvio in corso...",
"web_restart_error": "Errore durante il riavvio: {0}",
"web_support": "Supporto",
"web_support_title": "📦 File di supporto generato",
"web_support_message": "File di supporto creato con successo!\\n\\n📁 Contenuto:\\n• Configurazione controlli\\n• Cronologia download\\n• Impostazioni RGSX\\n• Log dell'applicazione\\n• Log del server web\\n\\n💬 Per ottenere aiuto:\\n1. Unisciti al Discord RGSX\\n2. Descrivi il tuo problema\\n3. Condividi questo file ZIP\\n\\nIl download inizierà...",
"web_support_generating": "Generazione file di supporto...",
"web_support_download": "Scarica file di supporto",
"web_support_error": "Errore nella generazione del file di supporto: {0}",
"web_tab_queue": "Coda",
"web_tooltip_queue": "Coda di download",
"web_queue_active_download": "⏳ Un download è attivo",
"web_queue_no_active": "✓ Nessun download attivo",
"web_queue_title": "Coda di Download",
"web_queue_empty": "Nessun elemento in coda",
"web_queue_clear": "Svuota coda",
"web_queue_cleared": "Coda svuotata con successo!",
"web_confirm_remove_queue": "Rimuovere questo elemento dalla coda?",
"web_confirm_clear_queue": "Svuotare l'intera coda?",
"web_remove": "Rimuovi",
"web_loading": "Caricamento...",
"web_sort": "Ordina per",
"web_sort_name_asc": "A-Z (Nome)",
"web_sort_name_desc": "Z-A (Nome)",
"web_sort_size_asc": "Dimensione +- (Piccolo primo)",
"web_sort_size_desc": "Dimensione -+ (Grande primo)",
"accessibility_font_size": "Dimensione carattere: {0}",
"confirm_cancel_download": "Annullare il download corrente?",
"controls_help_title": "Guida ai controlli",
"web_filter_region": "Regione",
"web_filter_hide_non_release": "Nascondi Demo/Beta/Proto",
"web_filter_regex_mode": "Attiva ricerca Regex",
"web_filter_one_rom_per_game": "Una ROM per gioco",
"web_filter_configure_priority": "Configura ordine di priorità delle regioni"
}

View File

@@ -89,7 +89,7 @@
"popup_restarting": "Reiniciando...",
"controls_action_clear_history": "Limpar histórico",
"controls_action_history": "Histórico / Downloads",
"controls_action_close_history": "Fechar Histórico",
"controls_action_close_history": "Fechar Histórico",
"controls_action_delete": "Deletar",
"controls_action_space": "Espaço",
"controls_action_start": "Ajuda / Configurações",
@@ -128,7 +128,13 @@
"download_in_progress": "Download em andamento...",
"download_queued": "Na fila de download",
"download_started": "Download iniciado",
"accessibility_font_size": "Tamanho da fonte: {0}",
"network_download_already_queued": "Este download já está em andamento",
"utils_extracted": "Extraído: {0}",
"utils_corrupt_zip": "Arquivo ZIP corrupto: {0}",
"utils_permission_denied": "Permissão negada durante a extração: {0}",
"utils_extraction_failed": "Falha na extração: {0}",
"utils_unrar_unavailable": "Comando unrar não disponível",
"utils_rar_list_failed": "Falha ao listar arquivos RAR: {0}",
"confirm_cancel_download": "Cancelar download atual?",
"controls_help_title": "Ajuda de Controles",
"controls_category_navigation": "Navegação",
@@ -169,181 +175,187 @@
"api_key_empty_suffix": "vazio",
"menu_hide_premium_systems": "Ocultar sistemas Premium",
"popup_hide_premium_on": "Sistemas Premium ocultos",
"popup_hide_premium_off": "Sistemas Premium visíveis"
,"submenu_display_font_family": "Fonte"
,"popup_font_family_changed": "Fonte alterada: {0}"
,"instruction_pause_language": "Alterar o idioma da interface"
,"instruction_pause_controls": "Ver esquema de controles ou iniciar remapeamento"
,"instruction_pause_display": "Configurar layout, fontes e visibilidade de sistemas"
,"instruction_pause_games": "Abrir histórico, mudar fonte ou atualizar lista"
,"instruction_pause_settings": "Música, opção symlink e status das chaves API"
,"instruction_pause_restart": "Reiniciar RGSX para recarregar configuração"
,"instruction_pause_support": "Gerar um arquivo ZIP de diagnóstico para suporte"
,"instruction_pause_quit": "Sair da aplicação RGSX"
,"instruction_controls_help": "Mostrar referência completa de controle e teclado"
,"instruction_controls_remap": "Modificar associação de botões / teclas"
,"instruction_generic_back": "Voltar ao menu anterior"
,"instruction_display_layout": "Alternar dimensões da grade (colunas × linhas)"
,"instruction_display_font_size": "Ajustar tamanho do texto para legibilidade"
,"instruction_display_font_family": "Alternar entre famílias de fontes disponíveis"
,"instruction_display_show_unsupported": "Mostrar/ocultar sistemas não definidos em es_systems.cfg"
,"instruction_display_unknown_ext": "Ativar/desativar aviso para extensões ausentes em es_systems.cfg"
,"instruction_display_hide_premium": "Ocultar sistemas que exigem acesso premium via API: {providers}"
,"instruction_display_filter_platforms": "Escolher manualmente quais sistemas são visíveis"
,"instruction_games_history": "Listar downloads anteriores e status"
,"instruction_games_source_mode": "Alternar entre lista RGSX ou fonte personalizada"
,"instruction_games_update_cache": "Baixar novamente e atualizar a lista de jogos"
,"instruction_settings_music": "Ativar ou desativar música de fundo"
,"instruction_settings_symlink": "Ativar/desativar uso de symlinks para instalações"
,"instruction_settings_api_keys": "Ver chaves API premium detectadas"
,"instruction_settings_web_service": "Ativar/desativar início automático do serviço web na inicialização"
,"settings_web_service": "Serviço Web na Inicialização"
,"settings_web_service_enabled": "Ativado"
,"settings_web_service_disabled": "Desativado"
,"settings_web_service_enabling": "Ativando serviço web..."
,"settings_web_service_disabling": "Desativando serviço web..."
,"settings_web_service_success_enabled": "Serviço web ativado na inicialização"
,"settings_web_service_success_disabled": "Serviço web desativado na inicialização"
,"settings_web_service_error": "Erro: {0}"
,"controls_desc_confirm": "Confirmar (ex. A/Cruz)"
,"controls_desc_cancel": "Cancelar/Voltar (ex. B/Círculo)"
,"controls_desc_up": "UP ↑"
,"controls_desc_down": "DOWN ↓"
,"controls_desc_left": "LEFT ←"
,"controls_desc_right": "RIGHT →"
,"controls_desc_page_up": "Rolagem rápida para cima (ex. LT/L2)"
,"controls_desc_page_down": "Rolagem rápida para baixo (ex. RT/R2)"
,"controls_desc_history": "Abrir histórico (ex. Y/Triângulo)"
,"controls_desc_clear_history": "Downloads: Seleção múltipla / Histórico: Limpar (ex. X/Quadrado)"
,"controls_desc_filter": "Modo filtro: Abrir/Confirmar (ex. Select)"
,"controls_desc_delete": "Modo filtro: Deletar caractere (ex. LB/L1)"
,"controls_desc_space": "Modo filtro: Adicionar espaço (ex. RB/R1)"
,"controls_desc_start": "Abrir menu pausa (ex. Start)"
,"controls_mapping_title": "Mapeamento de controles"
,"controls_mapping_instruction": "Mantenha para confirmar o mapeamento:"
,"controls_mapping_waiting": "Aguardando uma tecla ou botão..."
,"controls_mapping_press": "Pressione uma tecla ou um botão"
,"status_already_present": "Já Presente"
,"footer_joystick": "Joystick: {0}"
,"history_game_options_title": "Opções do jogo"
,"history_option_download_folder": "Localizar arquivo"
,"history_option_extract_archive": "Extrair arquivo"
,"history_option_scraper": "Scraper metadados"
,"history_option_delete_game": "Excluir jogo"
,"history_option_error_info": "Detalhes do erro"
,"history_option_retry": "Tentar novamente"
,"history_option_back": "Voltar"
,"history_folder_path_label": "Caminho de destino:"
,"history_scraper_not_implemented": "Scraper ainda não implementado"
,"history_confirm_delete": "Excluir este jogo do disco?"
,"history_file_not_found": "Arquivo não encontrado"
,"history_extracting": "Extraindo..."
,"history_extracted": "Extraído"
,"history_delete_success": "Jogo excluído com sucesso"
,"history_delete_error": "Erro ao excluir jogo: {0}"
,"history_error_details_title": "Detalhes do erro"
,"history_no_error_message": "Nenhuma mensagem de erro disponível"
,"web_title": "Interface Web RGSX"
,"web_tab_platforms": "Lista de sistemas"
,"web_tab_downloads": "Downloads"
,"web_tab_history": "Histórico"
,"web_tab_settings": "Configurações"
,"web_tab_update": "Atualizar lista"
,"web_tooltip_platforms": "Lista de sistemas"
,"web_tooltip_downloads": "Downloads"
,"web_tooltip_history": "Histórico"
,"web_tooltip_settings": "Configurações"
,"web_tooltip_update": "Atualizar lista de jogos"
,"web_search_platform": "Pesquisar sistemas ou jogos..."
,"web_search_game": "Pesquisar um jogo..."
,"web_search_results": "resultados para"
,"web_no_results": "Nenhum resultado encontrado"
,"web_platforms": "Sistemas"
,"web_games": "Jogos"
,"web_error_search": "Erro de pesquisa"
,"web_back_platforms": "Voltar às plataformas"
,"web_back": "Voltar"
,"web_game_count": "{0} ({1} jogos)"
,"web_download": "Baixar"
,"web_cancel": "Cancelar"
,"web_download_canceled": "Download cancelado"
,"web_confirm_cancel": "Você realmente deseja cancelar este download?"
,"web_update_title": "Atualizando lista de jogos..."
,"web_update_message": "Limpando cache e recarregando dados..."
,"web_update_wait": "Isso pode levar 10-30 segundos"
,"web_error": "Erro"
,"web_error_unknown": "Erro desconhecido"
,"web_error_update": "Erro ao atualizar a lista: {0}"
,"web_error_download": "Erro: {0}"
,"web_history_clear": "Limpar histórico"
,"web_history_cleared": "Histórico limpo com sucesso!"
,"web_error_clear_history": "Erro ao limpar histórico: {0}"
,"web_settings_title": "Informações e Configurações"
,"web_settings_roms_folder": "Pasta ROMs personalizada"
,"web_settings_roms_placeholder": "Deixar vazio para padrão"
,"web_settings_browse": "Procurar"
,"web_settings_language": "Idioma"
,"web_settings_font_scale": "Escala de fonte"
,"web_settings_grid": "Layout de grade"
,"web_settings_font_family": "Família de fonte"
,"web_settings_music": "Música"
,"web_settings_symlink": "Modo symlink"
,"web_settings_source_mode": "Fonte de jogos"
,"web_settings_custom_url": "URL personalizada"
,"web_settings_custom_url_placeholder": "Deixar vazio para /saves/ports/rgsx/games.zip ou usar uma URL direta como https://example.com/games.zip"
,"web_settings_save": "Salvar configurações"
,"web_settings_saved": "Configurações salvas com sucesso!"
,"web_settings_saved_restart": "Configurações salvas com sucesso!\\n\\n⚠ Algumas configurações exigem reiniciar o servidor:\\n- Pasta ROMs personalizada\\n- Idioma\\n\\nPor favor, reinicie o servidor web para aplicar essas alterações."
,"web_error_save_settings": "Erro ao salvar configurações: {0}"
,"web_browse_title": "Procurar diretórios"
,"web_browse_select_drive": "Selecione uma unidade..."
,"web_browse_drives": "Unidades"
,"web_browse_parent": "Acima"
,"web_browse_select": "Selecionar esta pasta"
,"web_browse_cancel": "Cancelar"
,"web_browse_empty": "Nenhum subdiretório encontrado"
,"web_browse_alert_restart": "Importante: Você precisa SALVAR as configurações e então REINICIAR o servidor web para que a pasta ROMs personalizada tenha efeito.\\n\\n📝 Passos:\\n1. Clique em 'Salvar configurações' abaixo\\n2. Pare o servidor web (Ctrl+C no terminal)\\n3. Reinicie o servidor web\\n\\nCaminho selecionado: {0}"
,"web_error_browse": "Erro ao procurar diretórios: {0}"
,"web_loading_platforms": "Carregando plataformas..."
,"web_loading_games": "Carregando jogos..."
,"web_no_platforms": "Nenhuma plataforma encontrada"
,"web_no_downloads": "Nenhum download em andamento"
,"web_history_empty": "Nenhum download concluído"
,"web_history_platform": "Plataforma"
,"web_history_size": "Tamanho"
,"web_history_status_completed": "Concluído"
,"web_history_status_error": "Erro"
,"web_settings_os": "Sistema operacional"
,"web_settings_platforms_count": "Número de plataformas"
,"web_settings_show_unsupported": "Mostrar plataformas não suportadas (sistema ausente em es_systems.cfg)"
,"web_settings_allow_unknown": "Permitir extensões desconhecidas (não mostrar avisos)"
,"web_restart_confirm_title": "Reiniciar aplicação?"
,"web_restart_confirm_message": "As configurações foram salvas. Deseja reiniciar a aplicação agora para aplicar as alterações?"
,"web_restart_yes": "Sim, reiniciar"
,"web_restart_no": "Não, mais tarde"
,"web_restart_success": "Reiniciando..."
,"web_restart_error": "Erro ao reiniciar: {0}"
,"web_support": "Suporte"
,"web_support_title": "📦 Arquivo de suporte gerado"
,"web_support_message": "Arquivo de suporte criado com sucesso!\\n\\n📁 Conteúdo:\\n• Configuração de controles\\n• Histórico de downloads\\n• Configurações RGSX\\n• Logs da aplicação\\n• Logs do servidor web\\n\\n💬 Para obter ajuda:\\n1. Entre no Discord RGSX\\n2. Descreva seu problema\\n3. Compartilhe este arquivo ZIP\\n\\nO download vai começar..."
,"web_support_generating": "Gerando arquivo de suporte..."
,"web_support_download": "Baixar arquivo de suporte"
,"web_support_error": "Erro ao gerar arquivo de suporte: {0}"
,"web_tab_queue": "Fila"
,"web_tooltip_queue": "Fila de downloads"
,"web_queue_active_download": "⏳ Um download está ativo"
,"web_queue_no_active": "✓ Sem downloads ativos"
,"web_queue_title": "Fila de Downloads"
,"web_queue_empty": "Nenhum item na fila"
,"web_queue_clear": "Limpar fila"
,"web_queue_cleared": "Fila limpa com sucesso!"
,"web_confirm_remove_queue": "Remover este item da fila?"
,"web_confirm_clear_queue": "Limpar toda a fila?"
,"web_remove": "Remover"
,"web_loading": "Carregando..."
,"web_sort": "Ordenar por"
,"web_sort_name_asc": "A-Z (Nome)"
,"web_sort_name_desc": "Z-A (Nome)"
,"web_sort_size_asc": "Tamanho +- (Menor primeiro)"
,"web_sort_size_desc": "Tamanho -+ (Maior primeiro)"
"popup_hide_premium_off": "Sistemas Premium visíveis",
"submenu_display_font_family": "Fonte",
"popup_font_family_changed": "Fonte alterada: {0}",
"instruction_pause_language": "Alterar o idioma da interface",
"instruction_pause_controls": "Ver esquema de controles ou iniciar remapeamento",
"instruction_pause_display": "Configurar layout, fontes e visibilidade de sistemas",
"instruction_pause_games": "Abrir histórico, mudar fonte ou atualizar lista",
"instruction_pause_settings": "Música, opção symlink e status das chaves API",
"instruction_pause_restart": "Reiniciar RGSX para recarregar configuração",
"instruction_pause_support": "Gerar um arquivo ZIP de diagnóstico para suporte",
"instruction_pause_quit": "Sair da aplicação RGSX",
"instruction_controls_help": "Mostrar referência completa de controle e teclado",
"instruction_controls_remap": "Modificar associação de botões / teclas",
"instruction_generic_back": "Voltar ao menu anterior",
"instruction_display_layout": "Alternar dimensões da grade (colunas × linhas)",
"instruction_display_font_size": "Ajustar tamanho do texto para legibilidade",
"instruction_display_font_family": "Alternar entre famílias de fontes disponíveis",
"instruction_display_show_unsupported": "Mostrar/ocultar sistemas não definidos em es_systems.cfg",
"instruction_display_unknown_ext": "Ativar/desativar aviso para extensões ausentes em es_systems.cfg",
"instruction_display_hide_premium": "Ocultar sistemas que exigem acesso premium via API: {providers}",
"instruction_display_filter_platforms": "Escolher manualmente quais sistemas são visíveis",
"instruction_games_history": "Listar downloads anteriores e status",
"instruction_games_source_mode": "Alternar entre lista RGSX ou fonte personalizada",
"instruction_games_update_cache": "Baixar novamente e atualizar a lista de jogos",
"instruction_settings_music": "Ativar ou desativar música de fundo",
"instruction_settings_symlink": "Ativar/desativar uso de symlinks para instalações",
"instruction_settings_api_keys": "Ver chaves API premium detectadas",
"instruction_settings_web_service": "Ativar/desativar início automático do serviço web na inicialização",
"settings_web_service": "Serviço Web na Inicialização",
"settings_web_service_enabled": "Ativado",
"settings_web_service_disabled": "Desativado",
"settings_web_service_enabling": "Ativando serviço web...",
"settings_web_service_disabling": "Desativando serviço web...",
"settings_web_service_success_enabled": "Serviço web ativado na inicialização",
"settings_web_service_success_disabled": "Serviço web desativado na inicialização",
"settings_web_service_error": "Erro: {0}",
"controls_desc_confirm": "Confirmar (ex. A/Cruz)",
"controls_desc_cancel": "Cancelar/Voltar (ex. B/Círculo)",
"controls_desc_up": "UP ↑",
"controls_desc_down": "DOWN ↓",
"controls_desc_left": "LEFT ←",
"controls_desc_right": "RIGHT →",
"controls_desc_page_up": "Rolagem rápida para cima (ex. LT/L2)",
"controls_desc_page_down": "Rolagem rápida para baixo (ex. RT/R2)",
"controls_desc_history": "Abrir histórico (ex. Y/Triângulo)",
"controls_desc_clear_history": "Downloads: Seleção múltipla / Histórico: Limpar (ex. X/Quadrado)",
"controls_desc_filter": "Modo filtro: Abrir/Confirmar (ex. Select)",
"controls_desc_delete": "Modo filtro: Deletar caractere (ex. LB/L1)",
"controls_desc_space": "Modo filtro: Adicionar espaço (ex. RB/R1)",
"controls_desc_start": "Abrir menu pausa (ex. Start)",
"controls_mapping_title": "Mapeamento de controles",
"controls_mapping_instruction": "Mantenha para confirmar o mapeamento:",
"controls_mapping_waiting": "Aguardando uma tecla ou botão...",
"controls_mapping_press": "Pressione uma tecla ou um botão",
"status_already_present": "Já Presente",
"footer_joystick": "Joystick: {0}",
"history_game_options_title": "Opções do jogo",
"history_option_download_folder": "Localizar arquivo",
"history_option_extract_archive": "Extrair arquivo",
"history_option_scraper": "Scraper metadados",
"history_option_delete_game": "Excluir jogo",
"history_option_error_info": "Detalhes do erro",
"history_option_retry": "Tentar novamente",
"history_option_back": "Voltar",
"history_folder_path_label": "Caminho de destino:",
"history_scraper_not_implemented": "Scraper ainda não implementado",
"history_confirm_delete": "Excluir este jogo do disco?",
"history_file_not_found": "Arquivo não encontrado",
"history_extracting": "Extraindo...",
"history_extracted": "Extraído",
"history_delete_success": "Jogo excluído com sucesso",
"history_delete_error": "Erro ao excluir jogo: {0}",
"history_error_details_title": "Detalhes do erro",
"history_no_error_message": "Nenhuma mensagem de erro disponível",
"web_title": "Interface Web RGSX",
"web_tab_platforms": "Lista de sistemas",
"web_tab_downloads": "Downloads",
"web_tab_history": "Histórico",
"web_tab_settings": "Configurações",
"web_tab_update": "Atualizar lista",
"web_tooltip_platforms": "Lista de sistemas",
"web_tooltip_downloads": "Downloads",
"web_tooltip_history": "Histórico",
"web_tooltip_settings": "Configurações",
"web_tooltip_update": "Atualizar lista de jogos",
"web_search_platform": "Pesquisar sistemas ou jogos...",
"web_search_game": "Pesquisar um jogo...",
"web_search_results": "resultados para",
"web_no_results": "Nenhum resultado encontrado",
"web_platforms": "Sistemas",
"web_games": "Jogos",
"web_error_search": "Erro de pesquisa",
"web_back_platforms": "Voltar às plataformas",
"web_back": "Voltar",
"web_game_count": "{0} ({1} jogos)",
"web_download": "Baixar",
"web_cancel": "Cancelar",
"web_download_canceled": "Download cancelado",
"web_confirm_cancel": "Você realmente deseja cancelar este download?",
"web_update_title": "Atualizando lista de jogos...",
"web_update_message": "Limpando cache e recarregando dados...",
"web_update_wait": "Isso pode levar 10-30 segundos",
"web_error": "Erro",
"web_error_unknown": "Erro desconhecido",
"web_error_update": "Erro ao atualizar a lista: {0}",
"web_error_download": "Erro: {0}",
"web_history_clear": "Limpar histórico",
"web_history_cleared": "Histórico limpo com sucesso!",
"web_error_clear_history": "Erro ao limpar histórico: {0}",
"web_settings_title": "Informações e Configurações",
"web_settings_roms_folder": "Pasta ROMs personalizada",
"web_settings_roms_placeholder": "Deixar vazio para padrão",
"web_settings_browse": "Procurar",
"web_settings_language": "Idioma",
"web_settings_font_scale": "Escala de fonte",
"web_settings_grid": "Layout de grade",
"web_settings_font_family": "Família de fonte",
"web_settings_music": "Música",
"web_settings_symlink": "Modo symlink",
"web_settings_source_mode": "Fonte de jogos",
"web_settings_custom_url": "URL personalizada",
"web_settings_custom_url_placeholder": "Deixar vazio para /saves/ports/rgsx/games.zip ou usar uma URL direta como https://example.com/games.zip",
"web_settings_save": "Salvar configurações",
"web_settings_saved": "Configurações salvas com sucesso!",
"web_settings_saved_restart": "Configurações salvas com sucesso!\\n\\n⚠ Algumas configurações exigem reiniciar o servidor:\\n- Pasta ROMs personalizada\\n- Idioma\\n\\nPor favor, reinicie o servidor web para aplicar essas alterações.",
"web_error_save_settings": "Erro ao salvar configurações: {0}",
"web_browse_title": "Procurar diretórios",
"web_browse_select_drive": "Selecione uma unidade...",
"web_browse_drives": "Unidades",
"web_browse_parent": "Acima",
"web_browse_select": "Selecionar esta pasta",
"web_browse_cancel": "Cancelar",
"web_browse_empty": "Nenhum subdiretório encontrado",
"web_browse_alert_restart": "Importante: Você precisa SALVAR as configurações e então REINICIAR o servidor web para que a pasta ROMs personalizada tenha efeito.\\n\\n📝 Passos:\\n1. Clique em 'Salvar configurações' abaixo\\n2. Pare o servidor web (Ctrl+C no terminal)\\n3. Reinicie o servidor web\\n\\nCaminho selecionado: {0}",
"web_error_browse": "Erro ao procurar diretórios: {0}",
"web_loading_platforms": "Carregando plataformas...",
"web_loading_games": "Carregando jogos...",
"web_no_platforms": "Nenhuma plataforma encontrada",
"web_no_downloads": "Nenhum download em andamento",
"web_history_empty": "Nenhum download concluído",
"web_history_platform": "Plataforma",
"web_history_size": "Tamanho",
"web_history_status_completed": "Concluído",
"web_history_status_error": "Erro",
"web_settings_os": "Sistema operacional",
"web_settings_platforms_count": "Número de plataformas",
"web_settings_show_unsupported": "Mostrar plataformas não suportadas (sistema ausente em es_systems.cfg)",
"web_settings_allow_unknown": "Permitir extensões desconhecidas (não mostrar avisos)",
"web_restart_confirm_title": "Reiniciar aplicação?",
"web_restart_confirm_message": "As configurações foram salvas. Deseja reiniciar a aplicação agora para aplicar as alterações?",
"web_restart_yes": "Sim, reiniciar",
"web_restart_no": "Não, mais tarde",
"web_restart_success": "Reiniciando...",
"web_restart_error": "Erro ao reiniciar: {0}",
"web_support": "Suporte",
"web_support_title": "📦 Arquivo de suporte gerado",
"web_support_message": "Arquivo de suporte criado com sucesso!\\n\\n📁 Conteúdo:\\n• Configuração de controles\\n• Histórico de downloads\\n• Configurações RGSX\\n• Logs da aplicação\\n• Logs do servidor web\\n\\n💬 Para obter ajuda:\\n1. Entre no Discord RGSX\\n2. Descreva seu problema\\n3. Compartilhe este arquivo ZIP\\n\\nO download vai começar...",
"web_support_generating": "Gerando arquivo de suporte...",
"web_support_download": "Baixar arquivo de suporte",
"web_support_error": "Erro ao gerar arquivo de suporte: {0}",
"web_tab_queue": "Fila",
"web_tooltip_queue": "Fila de downloads",
"web_queue_active_download": "⏳ Um download está ativo",
"web_queue_no_active": "✓ Sem downloads ativos",
"web_queue_title": "Fila de Downloads",
"web_queue_empty": "Nenhum item na fila",
"web_queue_clear": "Limpar fila",
"web_queue_cleared": "Fila limpa com sucesso!",
"web_confirm_remove_queue": "Remover este item da fila?",
"web_confirm_clear_queue": "Limpar toda a fila?",
"web_remove": "Remover",
"web_loading": "Carregando...",
"web_sort": "Ordenar por",
"web_sort_name_asc": "A-Z (Nome)",
"web_sort_name_desc": "Z-A (Nome)",
"web_sort_size_asc": "Tamanho +- (Menor primeiro)",
"web_sort_size_desc": "Tamanho -+ (Maior primeiro)",
"accessibility_font_size": "Tamanho da fonte: {0}",
"web_filter_region": "Região",
"web_filter_hide_non_release": "Ocultar Demos/Betas/Protos",
"web_filter_regex_mode": "Ativar pesquisa Regex",
"web_filter_one_rom_per_game": "Uma ROM por jogo",
"web_filter_configure_priority": "Configurar ordem de prioridade das regiões"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,241 @@
/* ===== ACCESSIBILITY & FOCUS MANAGEMENT ===== */
/* Focus visible - show focus for keyboard navigation only */
:focus {
outline: 2px solid transparent;
outline-offset: 2px;
}
:focus-visible {
outline: 3px solid var(--color-primary);
outline-offset: 2px;
border-radius: var(--radius-sm);
}
/* Skip to main content link (keyboard accessible) */
.skip-to-main {
position: absolute;
top: -40px;
left: 0;
background: var(--color-primary);
color: white;
padding: var(--spacing-md) var(--spacing-lg);
text-decoration: none;
z-index: var(--z-tooltip);
border-radius: var(--radius-sm);
}
.skip-to-main:focus {
top: 0;
}
/* Visually hidden but accessible to screen readers */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
/* ===== LOADING SKELETONS ===== */
@keyframes shimmer {
0% {
background-position: -1000px 0;
}
100% {
background-position: 1000px 0;
}
}
.skeleton {
background: linear-gradient(
90deg,
var(--color-bg-secondary) 0%,
var(--color-bg-tertiary) 50%,
var(--color-bg-secondary) 100%
);
background-size: 1000px 100%;
animation: shimmer 2s infinite;
}
.skeleton-card {
background: var(--color-bg-primary);
border-radius: var(--radius-lg);
padding: var(--spacing-lg);
margin-bottom: var(--spacing-lg);
border: 1px solid var(--color-border-light);
}
.skeleton-card::before {
content: '';
display: block;
width: 100%;
height: 200px;
background: var(--color-bg-secondary);
border-radius: var(--radius-md);
margin-bottom: var(--spacing-md);
animation: shimmer 2s infinite;
}
.skeleton-card::after {
content: '';
display: block;
width: 80%;
height: 16px;
background: var(--color-bg-secondary);
border-radius: var(--radius-sm);
animation: shimmer 2s infinite;
}
.skeleton-text {
height: 1em;
background: var(--color-bg-secondary);
border-radius: var(--radius-sm);
margin: var(--spacing-md) 0;
animation: shimmer 2s infinite;
}
.skeleton-avatar {
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--color-bg-secondary);
display: inline-block;
animation: shimmer 2s infinite;
}
/* Grid of skeleton cards */
.skeleton-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: var(--spacing-lg);
margin-bottom: var(--spacing-2xl);
}
/* ===== BUTTON & LINK ACCESSIBILITY ===== */
button, a[role="button"], input[type="button"], input[type="submit"] {
position: relative;
transition: all var(--transition-base);
border: none;
font-family: inherit;
font-size: inherit;
cursor: pointer;
}
/* Disabled state */
button:disabled,
[role="button"][aria-disabled="true"],
input[type="button"]:disabled,
input[type="submit"]:disabled {
opacity: 0.6;
cursor: not-allowed;
pointer-events: none;
}
/* Ensure buttons have minimum touch target (44x44px WCAG) */
button, a[role="button"] {
min-height: 44px;
min-width: 44px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: var(--spacing-md) var(--spacing-lg);
}
/* ===== FORM ACCESSIBILITY ===== */
label {
display: block;
margin-bottom: var(--spacing-sm);
font-weight: 500;
color: var(--color-text-primary);
}
input, select, textarea {
font-family: inherit;
font-size: inherit;
padding: var(--spacing-md);
border: 2px solid var(--color-border);
border-radius: var(--radius-md);
transition: border-color var(--transition-base);
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
border-color: var(--color-primary);
outline: none;
}
/* Error state for inputs */
input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
border-color: var(--color-danger);
}
/* ===== MODAL & DIALOG ACCESSIBILITY ===== */
[role="dialog"],
.modal {
z-index: var(--z-modal);
}
[role="dialog"]::backdrop,
.modal-backdrop {
background-color: var(--color-overlay-bg);
z-index: var(--z-modal-backdrop);
}
/* Ensure modal is positioned and styled appropriately */
[role="dialog"] {
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
background: var(--color-bg-primary);
padding: var(--spacing-2xl);
max-height: 90vh;
overflow-y: auto;
box-shadow: var(--shadow-xl);
}
/* ===== HIGH CONTRAST SUPPORT ===== */
@media (prefers-contrast: more) {
button,
a[role="button"],
input[type="button"],
input[type="submit"] {
border: 3px solid currentColor;
font-weight: bold;
}
input,
select,
textarea {
border-width: 3px;
}
:focus-visible {
outline-width: 4px;
}
}
/* ===== REDUCED MOTION SUPPORT ===== */
@media (prefers-reduced-motion: reduce) {
.skeleton,
.skeleton-card::before,
.skeleton-card::after,
.skeleton-text,
.skeleton-avatar {
animation: none;
background: var(--color-bg-secondary);
}
}

View File

@@ -0,0 +1,426 @@
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #333;
min-height: 100vh;
padding: 20px;
}
.container {
max-width: 90%;
margin: 0 auto;
background: white;
border-radius: 16px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
overflow: hidden;
}
header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px;
text-align: center;
position: relative;
}
header h1 { font-size: 2.5em; margin-bottom: 10px; }
header p { opacity: 0.9; font-size: 1.1em; }
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
/* Navigation mobile dans le header */
.mobile-tabs {
display: none;
justify-content: space-around;
padding: 15px 10px 10px 10px;
gap: 5px;
}
.mobile-tab {
flex: 1;
background: rgba(255,255,255,0.2);
border: none;
color: white;
padding: 12px 5px;
border-radius: 8px;
cursor: pointer;
font-size: 24px;
transition: all 0.3s;
backdrop-filter: blur(10px);
}
.mobile-tab:hover {
background: rgba(255,255,255,0.3);
}
.mobile-tab.active {
background: rgba(255,255,255,0.4);
transform: scale(1.1);
}
.tabs {
display: flex;
background: #f5f5f5;
border-bottom: 2px solid #ddd;
}
.tab {
flex: 1;
padding: 15px;
text-align: center;
cursor: pointer;
background: #f5f5f5;
border: none;
font-size: 16px;
color: #333;
transition: all 0.3s;
}
.tab:hover { background: #e0e0e0; }
.tab.active {
background: white;
border-bottom: 3px solid #667eea;
font-weight: bold;
}
.tab.support-btn {
margin-left: auto;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
border-radius: 20px;
padding: 8px 20px;
}
.tab.support-btn:hover {
background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
transform: scale(1.05);
}
.content {
padding: 30px;
min-height: 400px;
}
.loading {
text-align: center;
padding: 50px;
font-size: 1.2em;
color: #666;
}
.platform-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 20px;
}
.platform-card {
background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
padding: 20px;
border-radius: 12px;
cursor: pointer;
transition: transform 0.3s, box-shadow 0.3s;
text-align: center;
}
.platform-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}
.platform-card img {
width: 200px;
height: 200px;
object-fit: contain;
margin-bottom: 15px;
filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}
.platform-card h3 {
margin-bottom: 10px;
color: white;
font-size: 1.1em;
min-height: 2.5em;
display: flex;
align-items: center;
justify-content: center;
}
.platform-card .count {
background: #667eea;
color: white;
padding: 5px 15px;
border-radius: 20px;
display: inline-block;
margin-top: 10px;
}
.search-box {
margin-bottom: 20px;
position: relative;
}
.search-box input {
width: 100%;
padding: 12px 45px 12px 15px;
border: 2px solid #ddd;
border-radius: 8px;
font-size: 16px;
transition: border-color 0.3s;
background: white;
color: #333;
}
.search-box input:focus {
outline: none;
border-color: #667eea;
}
.search-box .search-icon {
position: absolute;
right: 15px;
top: 50%;
transform: translateY(-50%);
color: #999;
font-size: 18px;
}
.search-box .clear-search {
position: absolute;
right: 45px;
top: 50%;
transform: translateY(-50%);
background: #dc3545;
color: white;
border: none;
border-radius: 50%;
width: 24px;
height: 24px;
cursor: pointer;
display: none;
font-size: 14px;
line-height: 1;
}
.search-box .clear-search:hover {
background: #c82333;
}
.sort-btn {
background: #e0e0e0;
color: #333;
border: 2px solid #999;
padding: 8px 12px;
border-radius: 6px;
cursor: pointer;
font-size: 0.9em;
font-weight: 500;
transition: all 0.2s;
}
.sort-btn:hover {
background: #d0d0d0;
border-color: #666;
}
.sort-btn.active {
background: #667eea;
color: white;
border-color: #667eea;
}
.filter-section {
margin-top: 12px;
margin-bottom: 12px;
padding: 12px;
background: #f5f5f5;
border-radius: 8px;
}
.filter-row {
display: flex;
gap: 8px;
flex-wrap: wrap;
align-items: center;
margin-bottom: 8px;
}
.filter-row:last-child {
margin-bottom: 0;
}
.filter-label {
font-weight: bold;
margin-right: 4px;
}
.region-btn {
background: #e0e0e0;
color: #333;
border: 2px solid #999;
padding: 6px 12px;
border-radius: 6px;
cursor: pointer;
font-size: 0.85em;
font-weight: 500;
transition: all 0.2s;
}
.region-btn:hover {
background: #d0d0d0;
border-color: #666;
}
.region-btn.active {
background: #28a745;
color: white;
border-color: #28a745;
}
.region-btn.excluded {
background: #dc3545;
color: white;
border-color: #dc3545;
}
.filter-checkbox {
display: flex;
align-items: center;
gap: 6px;
cursor: pointer;
font-size: 0.9em;
color: #333;
}
.filter-checkbox input[type="checkbox"] {
cursor: pointer;
width: 16px;
height: 16px;
}
.games-list {
max-height: 600px;
overflow-y: auto;
}
.game-item {
background: #f9f9f9;
padding: 15px;
margin-bottom: 10px;
border-radius: 8px;
display: flex;
justify-content: space-between;
align-items: center;
transition: background 0.2s;
}
.game-item:hover { background: #f0f0f0; }
.game-name { font-weight: 500; flex: 1; }
.game-size {
background: #667eea;
color: white;
padding: 5px 10px;
border-radius: 5px;
font-size: 0.9em;
margin-right: 10px;
}
.download-btn {
background: transparent;
color: #28a745;
border: none;
padding: 8px;
border-radius: 5px;
cursor: pointer;
font-size: 1.5em;
transition: all 0.2s;
min-width: 40px;
}
.download-btn:hover {
background: rgba(40, 167, 69, 0.1);
transform: scale(1.1);
}
.download-btn:disabled {
color: #6c757d;
cursor: not-allowed;
}
.back-btn {
background: #667eea;
color: white;
border: none;
padding: 10px 20px;
border-radius: 8px;
cursor: pointer;
margin-bottom: 20px;
font-size: 16px;
}
.back-btn:hover { background: #5568d3; }
.info-grid {
display: grid;
gap: 15px;
}
.info-item {
background: #f9f9f9;
padding: 15px;
border-radius: 8px;
border-left: 4px solid #667eea;
}
.info-item strong { display: block; margin-bottom: 5px; color: #667eea; }
.history-item {
background: #f9f9f9;
padding: 15px;
margin-bottom: 10px;
border-radius: 8px;
border-left: 4px solid #28a745;
}
.history-item.error { border-left-color: #dc3545; }
/* Media Queries pour responsive */
@media (max-width: 768px) {
body {
padding: 10px;
}
.container {
border-radius: 0;
}
header {
padding: 20px 20px 10px 20px;
}
header h1 {
font-size: 1.8em;
}
.tabs {
display: none;
}
.mobile-tabs {
display: flex;
}
.content {
padding: 15px;
}
.platform-grid {
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 15px;
}
.platform-card {
padding: 15px;
}
.platform-card img {
width: 80px;
height: 80px;
}
.platform-card h3 {
font-size: 0.9em;
min-height: 2em;
}
.game-item {
flex-wrap: wrap;
padding: 10px;
}
.game-name {
font-size: 0.9em;
flex: 1 1 100%;
margin-bottom: 8px;
}
.download-btn-group {
display: flex;
gap: 4px;
}
}
@media (max-width: 480px) {
header h1 {
font-size: 1.5em;
}
.platform-grid {
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
gap: 10px;
}
.platform-card {
padding: 10px;
}
.platform-card img {
width: 60px;
height: 60px;
}
.platform-card h3 {
font-size: 0.85em;
}
.platform-card .count {
font-size: 0.8em;
padding: 3px 10px;
}
}

View File

@@ -0,0 +1,120 @@
/* ===== THEMING SYSTEM WITH CSS CUSTOM PROPERTIES ===== */
/* This file defines the color scheme and can be easily swapped for alternative themes */
:root {
/* Primary Colors - Brand Identity */
--color-primary: #667eea;
--color-primary-dark: #764ba2;
--color-primary-light: #8b9dff;
--color-primary-rgb: 102, 126, 234;
/* Secondary Colors - Accents */
--color-success: #28a745;
--color-warning: #ffc107;
--color-danger: #dc3545;
--color-info: #17a2b8;
/* Neutral Colors - Layout & Typography */
--color-bg-primary: #ffffff;
--color-bg-secondary: #f5f5f5;
--color-bg-tertiary: #f9f9f9;
--color-text-primary: #333333;
--color-text-secondary: #666666;
--color-text-muted: #999999;
--color-text-inverse: #ffffff;
/* Border & Divider Colors */
--color-border: #dddddd;
--color-border-light: #eeeeee;
--color-divider: #e0e0e0;
/* Semantic Colors */
--color-card-bg: #2c3e50;
--color-card-border: #34495e;
--color-overlay-bg: rgba(0, 0, 0, 0.7);
--color-overlay-light: rgba(0, 0, 0, 0.3);
/* Gradients */
--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
--gradient-reverse: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%);
/* Shadows */
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.12);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
--shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.4);
--shadow-xl: 0 20px 60px rgba(0, 0, 0, 0.3);
/* Spacing Scale */
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 12px;
--spacing-lg: 16px;
--spacing-xl: 20px;
--spacing-2xl: 30px;
--spacing-3xl: 40px;
/* Border Radius */
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 12px;
--radius-xl: 16px;
/* Transitions */
--transition-fast: 0.2s ease-in-out;
--transition-base: 0.3s ease-in-out;
--transition-slow: 0.5s ease-in-out;
/* Typography */
--font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
--font-size-xs: 0.75rem;
--font-size-sm: 0.875rem;
--font-size-base: 1rem;
--font-size-lg: 1.125rem;
--font-size-xl: 1.25rem;
--font-size-2xl: 1.5rem;
--font-size-3xl: 2.5rem;
/* Z-index Scale */
--z-dropdown: 100;
--z-sticky: 200;
--z-fixed: 300;
--z-modal-backdrop: 400;
--z-modal: 500;
--z-notification: 600;
--z-tooltip: 700;
}
/* ===== DARK MODE SUPPORT ===== */
@media (prefers-color-scheme: dark) {
:root {
--color-bg-primary: #1a1a1a;
--color-bg-secondary: #2d2d2d;
--color-bg-tertiary: #3a3a3a;
--color-text-primary: #e0e0e0;
--color-text-secondary: #b0b0b0;
--color-text-muted: #808080;
--color-border: #404040;
--color-border-light: #3a3a3a;
}
}
/* ===== HIGH CONTRAST MODE SUPPORT ===== */
@media (prefers-contrast: more) {
:root {
--color-primary: #0043b3;
--color-primary-dark: #002e7a;
--color-text-primary: #000000;
--color-text-secondary: #333333;
--color-border: #000000;
--shadow-lg: 0 2px 4px rgba(0, 0, 0, 0.5);
}
}
/* ===== REDUCED MOTION SUPPORT ===== */
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}

View File

@@ -0,0 +1,194 @@
/**
* Accessibility Utilities Module
* Handles keyboard navigation, focus management, and ARIA updates
*/
const A11y = {
/**
* Manage focus trap for modals (keep focus within modal)
*/
trapFocus(element) {
const focusableElements = element.querySelectorAll(
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
);
const firstElement = focusableElements[0];
const lastElement = focusableElements[focusableElements.length - 1];
element.addEventListener('keydown', (e) => {
if (e.key !== 'Tab') return;
if (e.shiftKey) {
if (document.activeElement === firstElement) {
lastElement.focus();
e.preventDefault();
}
} else {
if (document.activeElement === lastElement) {
firstElement.focus();
e.preventDefault();
}
}
});
// Set initial focus to first element
firstElement?.focus();
},
/**
* Restore focus to element after modal closes
*/
savedFocusElement: null,
saveFocus() {
this.savedFocusElement = document.activeElement;
},
restoreFocus() {
if (this.savedFocusElement && this.savedFocusElement.focus) {
this.savedFocusElement.focus();
}
},
/**
* Announce changes to screen readers with live regions
*/
announceToScreenReader(message, priority = 'polite') {
let liveRegion = document.querySelector(`[role="status"][aria-live="${priority}"]`);
if (!liveRegion) {
liveRegion = document.createElement('div');
liveRegion.setAttribute('role', 'status');
liveRegion.setAttribute('aria-live', priority);
liveRegion.className = 'sr-only';
document.body.appendChild(liveRegion);
}
liveRegion.textContent = message;
// Clear after announcement
setTimeout(() => {
liveRegion.textContent = '';
}, 3000);
},
/**
* Handle Enter/Space key on clickable elements
*/
makeKeyboardClickable(element, callback) {
element.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
callback();
}
});
},
/**
* Arrow key navigation for grids
*/
setupGridNavigation(gridSelector) {
const grid = document.querySelector(gridSelector);
if (!grid) return;
const items = Array.from(grid.children);
const colCount = Math.ceil(Math.sqrt(items.length));
items.forEach((item, index) => {
item.setAttribute('tabindex', index === 0 ? '0' : '-1');
item.addEventListener('keydown', (e) => {
let newIndex = index;
switch (e.key) {
case 'ArrowLeft':
newIndex = index === 0 ? items.length - 1 : index - 1;
e.preventDefault();
break;
case 'ArrowRight':
newIndex = index === items.length - 1 ? 0 : index + 1;
e.preventDefault();
break;
case 'ArrowUp':
newIndex = Math.max(0, index - colCount);
e.preventDefault();
break;
case 'ArrowDown':
newIndex = Math.min(items.length - 1, index + colCount);
e.preventDefault();
break;
case 'Home':
newIndex = 0;
e.preventDefault();
break;
case 'End':
newIndex = items.length - 1;
e.preventDefault();
break;
default:
return;
}
items[index].setAttribute('tabindex', '-1');
items[newIndex].setAttribute('tabindex', '0');
items[newIndex].focus();
});
});
},
/**
* Update ARIA attributes for dynamic content
*/
updateAriaLabel(element, label) {
element.setAttribute('aria-label', label);
},
updateAriaLive(element, region = 'polite') {
element.setAttribute('aria-live', region);
element.setAttribute('aria-atomic', 'true');
},
/**
* Set loading state with ARIA
*/
setLoadingState(element, isLoading) {
if (isLoading) {
element.setAttribute('aria-busy', 'true');
element.setAttribute('disabled', 'true');
} else {
element.removeAttribute('aria-busy');
element.removeAttribute('disabled');
}
},
/**
* Create accessible loading skeleton
*/
createSkeletonLoader(containerId, itemCount = 6) {
const container = document.getElementById(containerId);
if (!container) return;
container.innerHTML = '';
for (let i = 0; i < itemCount; i++) {
const skeleton = document.createElement('div');
skeleton.className = 'skeleton-card';
skeleton.setAttribute('aria-hidden', 'true');
container.appendChild(skeleton);
}
},
/**
* Remove skeleton loader
*/
removeSkeletonLoader(containerId) {
const container = document.getElementById(containerId);
if (!container) return;
const skeletons = container.querySelectorAll('.skeleton-card');
skeletons.forEach(s => s.remove());
}
};
// Export for use in app.js
if (typeof module !== 'undefined' && module.exports) {
module.exports = A11y;
}

2199
ports/RGSX/static/js/app.js Normal file

File diff suppressed because it is too large Load Diff