diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json new file mode 100644 index 0000000..d819b97 --- /dev/null +++ b/src/i18n/locales/de.json @@ -0,0 +1,1088 @@ +{ + "common": { + "loading": "Laden...", + "cancel": "Abbrechen", + "save": "Speichern", + "delete": "Löschen", + "edit": "Bearbeiten", + "search": "Suchen", + "error": "Fehler", + "success": "Erfolg", + "ok": "OK", + "unknown": "Unbekannt", + "retry": "Wiederholen", + "try_again": "Erneut versuchen", + "go_back": "Zurück", + "settings": "Einstellungen", + "close": "Schließen", + "show_more": "Mehr anzeigen", + "show_less": "Weniger anzeigen", + "load_more": "Mehr laden", + "unknown_date": "Unbekanntes Datum", + "anonymous_user": "Anonymer Benutzer", + "time": { + "now": "Gerade eben", + "minutes_ago": "vor {{count}}m", + "hours_ago": "vor {{count}}h", + "days_ago": "vor {{count}}t" + }, + "days_short": { + "sun": "So", + "mon": "Mo", + "tue": "Di", + "wed": "Mi", + "thu": "Do", + "fri": "Fr", + "sat": "Sa" + } + }, + "home": { + "categories": { + "movies": "Filme", + "series": "Serien", + "channels": "Kanäle" + }, + "movies": "Filme", + "tv_shows": "Serien", + "load_more_catalogs": "Mehr Kataloge laden", + "no_content": "Kein Inhalt verfügbar", + "add_catalogs": "Kataloge hinzufügen", + "sign_in_available": "Anmeldung verfügbar", + "sign_in_desc": "Sie können sich jederzeit unter Einstellungen → Konto anmelden", + "view_all": "Alle anzeigen", + "this_week": "Diese Woche", + "upcoming": "Demnächst", + "recently_released": "Neu veröffentlicht", + "no_scheduled_episodes": "Serien ohne geplante Episoden", + "check_back_later": "Schauen Sie später wieder vorbei", + "continue_watching": "Weitersehen", + "up_next": "Als nächstes", + "up_next_caps": "ALS NÄCHSTES", + "released": "Veröffentlicht", + "new": "Neu", + "tba": "TBA", + "new_episodes": "{{count}} neue Episoden", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Staffel {{season}}", + "episode": "Episode {{episode}}", + "movie": "Film", + "series": "Serie", + "tv_show": "Serie", + "percent_watched": "{{percent}}% angesehen", + "view_details": "Details anzeigen", + "remove": "Entfernen", + "play": "Abspielen", + "play_now": "Jetzt abspielen", + "resume": "Fortsetzen", + "info": "Info", + "more_info": "Mehr Info", + "my_list": "Meine Liste", + "save": "Speichern", + "saved": "Gespeichert", + "retry": "Wiederholen", + "install_addons": "Addons installieren", + "settings": "Einstellungen", + "no_featured_content": "Kein hervorgehobener Inhalt", + "couldnt_load_featured": "Hervorgehobener Inhalt konnte nicht geladen werden", + "no_featured_desc": "Installieren Sie Addons mit Katalogen oder ändern Sie die Inhaltsquelle in Ihren Einstellungen.", + "load_error_desc": "Es gab ein Problem beim Abrufen von hervorgehobenem Inhalt. Bitte überprüfen Sie Ihre Verbindung und versuchen Sie es erneut.", + "no_featured_available": "Kein hervorgehobener Inhalt verfügbar", + "no_description": "Keine Beschreibung verfügbar" + }, + "navigation": { + "home": "Startseite", + "library": "Bibliothek", + "search": "Suche", + "downloads": "Downloads", + "settings": "Einstellungen" + }, + "search": { + "title": "Suche", + "recent_searches": "Letzte Suchanfragen", + "discover": "Entdecken", + "movies": "Filme", + "tv_shows": "Serien", + "select_catalog": "Katalog auswählen", + "all_genres": "Alle Genres", + "discovering": "Inhalte entdecken...", + "show_more": "Mehr anzeigen ({{count}})", + "no_content_found": "Kein Inhalt gefunden", + "try_different": "Versuchen Sie ein anderes Genre oder einen anderen Katalog", + "select_catalog_desc": "Wählen Sie einen Katalog zum Entdecken aus", + "tap_catalog_desc": "Tippen Sie oben auf den Katalog-Chip, um zu beginnen", + "placeholder": "Filme, Serien suchen...", + "keep_typing": "Weitertippen...", + "type_characters": "Geben Sie mindestens 2 Zeichen zum Suchen ein", + "no_results": "Keine Ergebnisse gefunden", + "try_keywords": "Versuchen Sie andere Schlüsselwörter oder überprüfen Sie Ihre Rechtschreibung", + "select_type": "Typ auswählen", + "browse_movies": "Filmkataloge durchsuchen", + "browse_tv": "Serienkataloge durchsuchen", + "select_genre": "Genre auswählen", + "show_all_content": "Alle Inhalte anzeigen", + "genres_count": "{{count}} Genres" + }, + "library": { + "title": "Bibliothek", + "watched": "Gesehen", + "continue": "Fortsetzen", + "watchlist": "Watchlist", + "collection": "Sammlung", + "rated": "Bewertet", + "items": "Elemente", + "trakt_collections": "Trakt-Sammlungen", + "trakt_collection": "Trakt-Sammlung", + "no_trakt": "Keine Trakt-Sammlungen", + "no_trakt_desc": "Ihre Trakt-Sammlungen erscheinen hier, sobald Sie Trakt verwenden", + "load_collections": "Sammlungen laden", + "empty_folder": "Kein Inhalt in {{folder}}", + "empty_folder_desc": "Diese Sammlung ist leer", + "refresh": "Aktualisieren", + "no_movies": "Noch keine Filme", + "no_series": "Noch keine Serien", + "no_content": "Noch kein Inhalt", + "add_content_desc": "Fügen Sie Inhalte zu Ihrer Bibliothek hinzu, um sie hier zu sehen", + "find_something": "Etwas zum Ansehen finden", + "removed_from_library": "Aus Bibliothek entfernt", + "item_removed": "Element aus Ihrer Bibliothek entfernt", + "failed_update_library": "Bibliothek konnte nicht aktualisiert werden", + "unable_remove": "Element konnte nicht aus der Bibliothek entfernt werden", + "marked_watched": "Als gesehen markiert", + "marked_unwatched": "Als ungesehen markiert", + "item_marked_watched": "Element als gesehen markiert", + "item_marked_unwatched": "Element als ungesehen markiert", + "failed_update_watched": "Gesehen-Status konnte nicht aktualisiert werden", + "unable_update_watched": "Gesehen-Status konnte nicht aktualisiert werden", + "added_to_library": "Zur Bibliothek hinzugefügt", + "item_added": "Zu Ihrer lokalen Bibliothek hinzugefügt", + "add_to_library": "Zur Bibliothek hinzufügen", + "remove_from_library": "Aus Bibliothek entfernen", + "mark_watched": "Als gesehen markieren", + "mark_unwatched": "Als ungesehen markieren", + "share": "Teilen", + "add_to_watchlist": "Zur Trakt-Watchlist hinzufügen", + "remove_from_watchlist": "Von Trakt-Watchlist entfernen", + "added_to_watchlist": "Zur Watchlist hinzugefügt", + "added_to_watchlist_desc": "Zu Ihrer Trakt-Watchlist hinzugefügt", + "removed_from_watchlist": "Von Watchlist entfernt", + "removed_from_watchlist_desc": "Von Ihrer Trakt-Watchlist entfernt", + "add_to_collection": "Zur Trakt-Sammlung hinzufügen", + "remove_from_collection": "Von Trakt-Sammlung entfernen", + "added_to_collection": "Zur Sammlung hinzugefügt", + "added_to_collection_desc": "Zu Ihrer Trakt-Sammlung hinzugefügt", + "removed_from_collection": "Aus Sammlung entfernt", + "removed_from_collection_desc": "Von Ihrer Trakt-Sammlung entfernt" + }, + "metadata": { + "unable_to_load": "Inhalt konnte nicht geladen werden", + "error_code": "Fehlercode: {{code}}", + "content_not_found": "Inhalt nicht gefunden", + "content_not_found_desc": "Dieser Inhalt existiert nicht oder wurde möglicherweise entfernt.", + "server_error": "Serverfehler", + "server_error_desc": "Der Server ist vorübergehend nicht verfügbar. Bitte versuchen Sie es später erneut.", + "bad_gateway": "Bad Gateway", + "bad_gateway_desc": "Der Server hat Probleme. Bitte versuchen Sie es später erneut.", + "service_unavailable": "Dienst nicht verfügbar", + "service_unavailable_desc": "Der Dienst wird derzeit gewartet. Bitte versuchen Sie es später erneut.", + "too_many_requests": "Zu viele Anfragen", + "too_many_requests_desc": "Sie stellen zu viele Anfragen. Bitte warten Sie einen Moment und versuchen Sie es erneut.", + "request_timeout": "Zeitüberschreitung der Anfrage", + "request_timeout_desc": "Die Anfrage hat zu lange gedauert. Bitte versuchen Sie es erneut.", + "network_error": "Netzwerkfehler", + "network_error_desc": "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.", + "auth_error": "Authentifizierungsfehler", + "auth_error_desc": "Bitte überprüfen Sie Ihre Kontoeinstellungen und versuchen Sie es erneut.", + "access_denied": "Zugriff verweigert", + "access_denied_desc": "Sie haben keine Berechtigung, auf diesen Inhalt zuzugreifen.", + "connection_error": "Verbindungsfehler", + "streams_unavailable": "Streams nicht verfügbar", + "streams_unavailable_desc": "Streaming-Quellen sind derzeit nicht verfügbar. Bitte versuchen Sie es später erneut.", + "unknown_error": "Unbekannter Fehler", + "something_went_wrong": "Etwas ist schief gelaufen. Bitte versuchen Sie es erneut.", + "cast": "Besetzung", + "more_like_this": "Ähnliche Titel", + "collection": "Sammlung", + "episodes": "Episoden", + "seasons": "Staffeln", + "posters": "Poster", + "banners": "Banner", + "specials": "Specials", + "season_number": "Staffel {{number}}", + "episode_count": "{{count}} Episode", + "episode_count_plural": "{{count}} Episoden", + "no_episodes": "Keine Episoden verfügbar", + "no_episodes_for_season": "Keine Episoden für Staffel {{season}} verfügbar", + "episodes_not_released": "Episoden sind möglicherweise noch nicht veröffentlicht", + "no_description": "Keine Beschreibung verfügbar", + "episode_label": "EPISODE {{number}}", + "watch_again": "Nochmal ansehen", + "completed": "Abgeschlossen", + "play_episode": "S{{season}}E{{episode}} abspielen", + "play": "Abspielen", + "watched": "Gesehen", + "watched_on_trakt": "Auf Trakt gesehen", + "synced_with_trakt": "Mit Trakt synchronisiert", + "saved": "Gespeichert", + "director": "Regisseur", + "directors": "Regisseure", + "creator": "Schöpfer", + "creators": "Schöpfer", + "production": "Produktion", + "network": "Netzwerk", + "mark_watched": "Als gesehen markieren", + "mark_unwatched": "Als ungesehen markieren", + "marking": "Markiere...", + "removing": "Entferne...", + "unmark_season": "Staffel {{season}} Markierung aufheben", + "mark_season": "Staffel {{season}} markieren", + "resume": "Fortsetzen", + "spoiler_warning": "Spoiler-Warnung", + "spoiler_warning_desc": "Dieser Kommentar enthält Spoiler. Sind Sie sicher, dass Sie ihn anzeigen möchten?", + "cancel": "Abbrechen", + "reveal_spoilers": "Spoiler anzeigen", + "movie_details": "Filmdetails", + "show_details": "Seriendetails", + "tagline": "Tagline", + "status": "Status", + "release_date": "Veröffentlichungsdatum", + "runtime": "Laufzeit", + "budget": "Budget", + "revenue": "Einnahmen", + "origin_country": "Herkunftsland", + "original_language": "Originalsprache", + "first_air_date": "Erstausstrahlung", + "last_air_date": "Letzte Ausstrahlung", + "total_episodes": "Gesamte Episoden", + "episode_runtime": "Episodenlaufzeit", + "created_by": "Erstellt von", + "backdrop_gallery": "Hintergrundgalerie", + "loading_episodes": "Lade Episoden...", + "no_episodes_available": "Keine Episoden verfügbar", + "play_next": "S{{season}}E{{episode}} abspielen", + "play_next_episode": "Nächste Episode abspielen", + "save": "Speichern", + "percent_watched": "{{percent}}% gesehen", + "percent_watched_trakt": "{{percent}}% gesehen ({{traktPercent}}% auf Trakt)", + "synced_with_trakt_progress": "Mit Trakt synchronisiert", + "using_trakt_progress": "Verwende Trakt-Fortschritt", + "added_to_collection_hero": "Zur Sammlung hinzugefügt", + "added_to_collection_desc_hero": "Zu Ihrer Trakt-Sammlung hinzugefügt", + "removed_from_collection_hero": "Aus Sammlung entfernt", + "removed_from_collection_desc_hero": "Von Ihrer Trakt-Sammlung entfernt", + "mark_as_watched": "Als gesehen markieren", + "mark_as_unwatched": "Als ungesehen markieren" + }, + "cast": { + "biography": "Biografie", + "known_for": "Bekannt für", + "personal_info": "Persönliche Infos", + "born_in": "Geboren in {{place}}", + "filmography": "Filmografie", + "also_known_as": "Auch bekannt als", + "no_info_available": "Keine zusätzlichen Informationen verfügbar", + "as_character": "als {{character}}", + "loading_details": "Lade Details...", + "years_old": "{{age}} Jahre alt", + "view_filmography": "Filmografie anzeigen", + "filter": "Filtern", + "sort_by": "Sortieren nach", + "sort_popular": "Beliebt", + "sort_latest": "Neueste", + "sort_upcoming": "Demnächst", + "upcoming_badge": "DEMNÄCHST", + "coming_soon": "Kommt bald", + "filmography_count": "Filmografie • {{count}} Titel", + "loading_filmography": "Lade Filmografie...", + "load_more_remaining": "Mehr laden ({{count}} verbleibend)", + "alert_error_title": "Fehler", + "alert_error_message": "\"{{title}}\" konnte nicht geladen werden. Bitte versuchen Sie es später erneut.", + "alert_ok": "OK", + "no_upcoming": "Keine kommenden Veröffentlichungen für diesen Schauspieler verfügbar", + "no_content": "Kein Inhalt für diesen Schauspieler verfügbar", + "no_movies": "Keine Filme für diesen Schauspieler verfügbar", + "no_tv": "Keine Serien für diesen Schauspieler verfügbar" + }, + "comments": { + "title": "Trakt Kommentare", + "spoiler_warning": "⚠️ Dieser Kommentar enthält Spoiler. Tippen zum Anzeigen.", + "spoiler": "Spoiler", + "contains_spoilers": "Enthält Spoiler", + "reveal": "Anzeigen", + "vip": "VIP", + "unavailable": "Kommentare nicht verfügbar", + "no_comments": "Noch keine Kommentare auf Trakt", + "not_in_database": "Dieser Inhalt ist möglicherweise noch nicht in der Trakt-Datenbank", + "check_trakt": "Trakt prüfen" + }, + "trailers": { + "title": "Trailer", + "official_trailers": "Offizielle Trailer", + "official_trailer": "Offizieller Trailer", + "teasers": "Teaser", + "teaser": "Teaser", + "clips_scenes": "Clips & Szenen", + "clip": "Clip", + "featurettes": "Featurettes", + "featurette": "Featurette", + "behind_the_scenes": "Hinter den Kulissen", + "no_trailers": "Keine Trailer verfügbar", + "unavailable": "Trailer nicht verfügbar", + "unavailable_desc": "Dieser Trailer konnte derzeit nicht geladen werden. Bitte versuchen Sie es später erneut.", + "unable_to_play": "Trailer konnte nicht abgespielt werden. Bitte versuchen Sie es erneut.", + "watch_on_youtube": "Auf YouTube ansehen" + }, + "catalog": { + "no_content_found": "Kein Inhalt gefunden", + "no_content_filters": "Kein Inhalt für die ausgewählten Filter gefunden", + "loading_content": "Lade Inhalt...", + "back": "Zurück", + "in_theaters": "Im Kino", + "all": "Alle", + "failed_tmdb": "Laden von Inhalten von TMDB fehlgeschlagen", + "movies": "Filme", + "tv_shows": "Serien", + "channels": "Kanäle" + }, + "streams": { + "back_to_episodes": "Zurück zu Episoden", + "back_to_info": "Zurück zur Info", + "fetching_from": "Abrufen von:", + "no_sources_available": "Keine Streaming-Quellen verfügbar", + "add_sources_desc": "Bitte fügen Sie Streaming-Quellen in den Einstellungen hinzu", + "add_sources": "Quellen hinzufügen", + "finding_streams": "Suche verfügbare Streams...", + "finding_best_stream": "Suche besten Stream für Autoplay...", + "still_fetching": "Rufe immer noch Streams ab...", + "no_streams_available": "Keine Streams verfügbar", + "starting_best_stream": "Starte besten Stream...", + "loading_more_sources": "Lade weitere Quellen..." + }, + "player_ui": { + "via": "via {{name}}", + "audio_tracks": "Audiospuren", + "no_audio_tracks": "Keine Audiospuren verfügbar", + "playback_speed": "Wiedergabegeschwindigkeit", + "on_hold": "Gehalten", + "playback_error": "Wiedergabefehler", + "unknown_error": "Ein unbekannter Fehler ist während der Wiedergabe aufgetreten.", + "copy_error": "Fehlerdetails kopieren", + "copied_to_clipboard": "In die Zwischenablage kopiert", + "dismiss": "Verwerfen", + "continue_watching": "Weitersehen", + "start_over": "Neu starten", + "resume": "Fortsetzen", + "change_source": "Quelle ändern", + "switching_source": "Wechsle Quelle...", + "no_sources_found": "Keine Quellen gefunden", + "sources": "Quellen", + "finding_sources": "Suche Quellen...", + "unknown_source": "Unbekannte Quelle", + "sources_limited": "Quellen könnten aufgrund von Anbieterfehlern begrenzt sein.", + "episodes": "Episoden", + "specials": "Specials", + "season": "Staffel {{season}}", + "stream": "Stream {{number}}", + "subtitles": "Untertitel", + "built_in": "Eingebaut", + "addons": "Addons", + "style": "Stil", + "none": "Keine", + "search_online_subtitles": "Online nach Untertiteln suchen", + "preview": "Vorschau", + "quick_presets": "Schnellvoreinstellungen", + "default": "Standard", + "yellow": "Gelb", + "high_contrast": "Hoher Kontrast", + "large": "Groß", + "core": "Kern", + "font_size": "Schriftgröße", + "show_background": "Hintergrund anzeigen", + "advanced": "Erweitert", + "position": "Position", + "text_color": "Textfarbe", + "align": "Ausrichtung", + "bottom_offset": "Unterer Abstand", + "background_opacity": "Hintergrunddeckkraft", + "text_shadow": "Textschatten", + "on": "Ein", + "off": "Aus", + "outline_color": "Umrandungsfarbe", + "outline_width": "Umrandungsbreite", + "letter_spacing": "Zeichenabstand", + "line_height": "Zeilenhöhe", + "timing_offset": "Zeitversatz (s)", + "visual_sync": "Visuelle Synchronisation", + "timing_hint": "Verschieben Sie Untertitel früher (-) oder später (+), um sie bei Bedarf zu synchronisieren.", + "reset_defaults": "Auf Standard zurücksetzen" + }, + "downloads": { + "title": "Downloads", + "no_downloads": "Noch keine Downloads", + "no_downloads_desc": "Heruntergeladene Inhalte erscheinen hier zur Offline-Wiedergabe", + "explore": "Inhalte erkunden", + "path_copied": "Pfad kopiert", + "path_copied_desc": "Lokaler Dateipfad in die Zwischenablage kopiert", + "copied": "Kopiert", + "incomplete": "Download unvollständig", + "incomplete_desc": "Download ist noch nicht abgeschlossen", + "not_available": "Nicht verfügbar", + "not_available_desc": "Der lokale Dateipfad ist erst nach Abschluss des Downloads verfügbar.", + "status_downloading": "Lädt herunter", + "status_completed": "Abgeschlossen", + "status_paused": "Pausiert", + "status_error": "Fehler", + "status_queued": "In Warteschlange", + "status_unknown": "Unbekannt", + "provider": "Anbieter", + "streaming_playlist_warning": "Könnte nicht abspielen - Streaming-Playlist", + "remaining": "verbleibend", + "not_ready": "Download nicht bereit", + "not_ready_desc": "Bitte warten Sie, bis der Download abgeschlossen ist.", + "filter_all": "Alle", + "filter_active": "Aktiv", + "filter_done": "Fertig", + "filter_paused": "Pausiert", + "no_filter_results": "Keine {{filter}} Downloads", + "try_different_filter": "Versuchen Sie einen anderen Filter", + "limitations_title": "Download-Einschränkungen", + "limitations_msg": "• Dateien kleiner als 1MB sind typischerweise M3U8 Streaming-Playlists und können nicht für die Offline-Wiedergabe heruntergeladen werden. Diese funktionieren nur mit Online-Streaming.", + "remove_title": "Download entfernen", + "remove_confirm": "\"{{title}}\"{{season_episode}} entfernen?", + "cancel": "Abbrechen", + "remove": "Entfernen" + }, + "addons": { + "title": "Addons", + "reorder_mode": "Umsortieren-Modus", + "reorder_info": "Addons oben haben höhere Priorität beim Laden von Inhalten", + "add_addon_placeholder": "Addon-URL", + "add_button": "Addon hinzufügen", + "my_addons": "Meine Addons", + "community_addons": "Community Addons", + "no_addons": "Keine Addons installiert", + "uninstall_title": "Addon deinstallieren", + "uninstall_message": "Möchten Sie {{name}} wirklich deinstallieren?", + "uninstall_button": "Deinstallieren", + "install_success": "Addon erfolgreich installiert", + "install_error": "Addon konnte nicht installiert werden", + "load_error": "Addons konnten nicht geladen werden", + "fetch_error": "Addon-Details konnten nicht abgerufen werden", + "invalid_url": "Bitte geben Sie eine Addon-URL ein", + "configure": "Konfigurieren", + "version": "Version: {{version}}", + "installed_addons": "INSTALLIERTE ADDONS", + "reorder_drag_title": "ZIEHEN ZUM UMSORTIEREN", + "install": "Installieren", + "config_unavailable_title": "Konfiguration nicht verfügbar", + "config_unavailable_msg": "Konfigurations-URL für dieses Addon konnte nicht ermittelt werden.", + "cannot_open_config_title": "Konfiguration kann nicht geöffnet werden", + "cannot_open_config_msg": "Die Konfigurations-URL ({{url}}) kann nicht geöffnet werden. Das Addon hat möglicherweise keine Konfigurationsseite.", + "description": "Beschreibung", + "supported_types": "Unterstützte Typen", + "catalogs": "Kataloge", + "no_description": "Keine Beschreibung verfügbar", + "overview": "ÜBERBLICK", + "no_categories": "Keine Kategorien", + "pre_installed": "VS-INSTALLIERT" + }, + "trakt": { + "title": "Trakt Einstellungen", + "settings_title": "Trakt Einstellungen", + "connect_title": "Mit Trakt verbinden", + "connect_desc": "Synchronisieren Sie Ihren Verlauf, Watchlist und Sammlung mit Trakt.tv", + "sign_in": "Mit Trakt anmelden", + "sign_out": "Abmelden", + "sign_out_confirm": "Möchten Sie sich wirklich von Ihrem Trakt-Konto abmelden?", + "joined": "Beigetreten {{date}}", + "sync_settings_title": "Synchronisierungseinstellungen", + "sync_info": "Wenn mit Trakt verbunden, wird der vollständige Verlauf direkt von der API synchronisiert und nicht im lokalen Speicher abgelegt.", + "auto_sync_label": "Wiedergabefortschritt automatisch synchronisieren", + "auto_sync_desc": "Wiedergabefortschritt automatisch mit Trakt synchronisieren", + "import_history_label": "Verlauf importieren", + "import_history_desc": "Verwenden Sie \"Jetzt synchronisieren\", um Ihren Verlauf von Trakt zu importieren", + "sync_now_button": "Jetzt synchronisieren", + "display_settings_title": "Anzeigeeinstellungen", + "show_comments_label": "Trakt Kommentare anzeigen", + "show_comments_desc": "Trakt Kommentare in Metadatenseiten anzeigen, wenn verfügbar", + "maintenance_title": "Wartungsarbeiten", + "maintenance_unavailable": "Trakt nicht verfügbar", + "maintenance_desc": "Die Trakt-Integration ist vorübergehend wegen Wartungsarbeiten pausiert.", + "maintenance_button": "Dienst wird gewartet", + "auth_success_title": "Erfolgreich verbunden", + "auth_success_msg": "Ihr Trakt-Konto wurde erfolgreich verbunden.", + "auth_error_title": "Authentifizierungsfehler", + "auth_error_msg": "Authentifizierung mit Trakt fehlgeschlagen.", + "auth_error_generic": "Ein Fehler ist während der Authentifizierung aufgetreten.", + "sign_out_error": "Abmelden von Trakt fehlgeschlagen.", + "sync_complete_title": "Synchronisierung abgeschlossen", + "sync_success_msg": "Wiedergabefortschritt erfolgreich mit Trakt synchronisiert.", + "sync_error_msg": "Synchronisierung fehlgeschlagen. Bitte versuchen Sie es erneut." + }, + "tmdb_settings": { + "title": "TMDb Einstellungen", + "metadata_enrichment": "Metadaten-Anreicherung", + "metadata_enrichment_desc": "Verbessern Sie Ihre Inhaltsmetadaten mit TMDb-Daten für bessere Details.", + "enable_enrichment": "Anreicherung aktivieren", + "enable_enrichment_desc": "Ergänzt Addon-Metadaten mit TMDb für Besetzung, Zertifizierung, Logos/Poster und Produktionsinfos.", + "localized_text": "Lokalisierter Text", + "localized_text_desc": "Titel und Beschreibungen in Ihrer bevorzugten Sprache von TMDb abrufen.", + "language": "Sprache", + "change": "Ändern", + "logo_preview": "Logo-Vorschau", + "logo_preview_desc": "Die Vorschau zeigt, wie lokalisierte Logos in der ausgewählten Sprache erscheinen.", + "example": "Beispiel:", + "no_logo": "Kein Logo verfügbar", + "enrichment_options": "Anreicherungsoptionen", + "enrichment_options_desc": "Steuern Sie, welche Daten von TMDb abgerufen werden.", + "cast_crew": "Besetzung & Crew", + "cast_crew_desc": "Schauspieler, Regisseure, Autoren mit Profilfotos", + "title_description": "Titel & Beschreibung", + "title_description_desc": "Verwenden Sie lokalisierten Titel und Übersichtstext von TMDb", + "title_logos": "Titel-Logos", + "title_logos_desc": "Hochwertige Titelbilder", + "banners_backdrops": "Banner & Hintergründe", + "banners_backdrops_desc": "Hochauflösende Hintergrundbilder", + "certification": "Inhaltszertifizierung", + "certification_desc": "Altersfreigaben (FSK 12, 16, 18, etc.)", + "recommendations": "Empfehlungen", + "recommendations_desc": "Ähnliche Inhaltsvorschläge", + "episode_data": "Episodendaten", + "episode_data_desc": "Episodenthumbnails, Infos & Fallbacks für Serien", + "season_posters": "Staffel-Poster", + "season_posters_desc": "Staffelspezifische Posterbilder", + "production_info": "Produktionsinfos", + "production_info_desc": "Netzwerke & Produktionsfirmen mit Logos", + "movie_details": "Filmdetails", + "movie_details_desc": "Budget, Einnahmen, Laufzeit, Tagline", + "tv_details": "Seriendetails", + "tv_details_desc": "Status, Staffelanzahl, Netzwerke, Schöpfer", + "movie_collections": "Film-Sammlungen", + "movie_collections_desc": "Filmreihen (Marvel, Star Wars, etc.)", + "api_configuration": "API-Konfiguration", + "api_configuration_desc": "Konfigurieren Sie Ihren TMDb-API-Zugriff.", + "custom_api_key": "Benutzerdefinierter API-Schlüssel", + "custom_api_key_desc": "Verwenden Sie Ihren eigenen TMDb-API-Schlüssel.", + "custom_key_active": "Benutzerdefinierter Schlüssel aktiv", + "api_key_required": "API-Schlüssel erforderlich", + "api_key_placeholder": "Fügen Sie Ihren TMDb-API-Schlüssel (v3) ein", + "how_to_get_key": "Wie bekomme ich einen TMDb-API-Schlüssel?", + "built_in_key_msg": "Verwende derzeit eingebauten API-Schlüssel.", + "cache_size": "Cache-Größe", + "clear_cache": "Cache leeren", + "cache_days": "TMDB-Antworten werden für 7 Tage zwischengespeichert", + "choose_language": "Sprache wählen", + "choose_language_desc": "Wählen Sie Ihre bevorzugte Sprache für TMDb-Inhalte", + "popular": "Beliebt", + "all_languages": "Alle Sprachen", + "search_results": "Suchergebnisse", + "no_languages_found": "Keine Sprachen gefunden für \"{{query}}\"", + "clear_search": "Suche löschen", + "clear_cache_title": "TMDB Cache leeren", + "clear_cache_msg": "Dies wird alle zwischengespeicherten TMDB-Daten löschen ({{size}}).", + "clear_cache_success": "TMDB-Cache erfolgreich geleert.", + "clear_cache_error": "Cache konnte nicht geleert werden.", + "clear_api_key_title": "API-Schlüssel löschen", + "clear_api_key_msg": "Sind Sie sicher, dass Sie Ihren benutzerdefinierten API-Schlüssel entfernen möchten?", + "clear_api_key_success": "API-Schlüssel erfolgreich gelöscht", + "clear_api_key_error": "API-Schlüssel konnte nicht gelöscht werden", + "empty_api_key": "API-Schlüssel darf nicht leer sein.", + "invalid_api_key": "Ungültiger API-Schlüssel.", + "save_error": "Ein Fehler ist beim Speichern aufgetreten.", + "using_builtin_key": "Verwende jetzt den eingebauten TMDb-API-Schlüssel.", + "using_custom_key": "Verwende jetzt Ihren benutzerdefinierten TMDb-API-Schlüssel.", + "enter_custom_key": "Bitte geben Sie Ihren benutzerdefinierten TMDb-API-Schlüssel ein.", + "key_verified": "API-Schlüssel verifiziert und erfolgreich gespeichert." + }, + "settings": { + "language": "Sprache", + "select_language": "Sprache auswählen", + "english": "Englisch", + "portuguese": "Portugiesisch", + "portuguese_br": "Portugiesisch (Brasilien)", + "portuguese_pt": "Portugiesisch (Portugal)", + "german": "Deutsch", + "arabic": "Arabisch", + "spanish": "Spanisch", + "french": "Französisch", + "italian": "Italienisch", + "account": "Konto", + "content_discovery": "Inhalt & Entdeckung", + "appearance": "Aussehen", + "integrations": "Integrationen", + "playback": "Wiedergabe", + "backup_restore": "Sichern & Wiederherstellen", + "updates": "Updates", + "about": "Über", + "developer": "Entwickler", + "cache": "Cache", + "title": "Einstellungen", + "settings_title": "Einstellungen", + "sign_in_sync": "Anmelden zum Synchronisieren", + "add_catalogs_sources": "Addons, Kataloge und Quellen", + "player_trailers_downloads": "Player, Trailer, Downloads", + "mdblist_tmdb_ai": "MDBList, TMDB, KI", + "check_updates": "Nach Updates suchen", + "developer_tools": "Test- und Debug-Optionen", + "clear_mdblist_cache": "MDBList Cache leeren", + "cache_management": "CACHE-VERWALTUNG", + "downloads_counter": "Downloads und mehr", + "made_with_love": "Mit ❤️ gemacht von Tapframe und Freunden", + "sections": { + "information": "INFORMATION", + "account": "KONTO", + "theme": "THEMA", + "layout": "LAYOUT", + "sources": "QUELLEN", + "catalogs": "KATALOGE", + "discovery": "ENTDECKUNG", + "metadata": "METADATEN", + "ai_assistant": "KI-ASSISTENT", + "video_player": "VIDEOPLAYER", + "audio_subtitles": "AUDIO & UNTERTITEL", + "media": "MEDIEN", + "notifications": "BENACHRICHTIGUNGEN", + "testing": "TESTEN", + "danger_zone": "GEFAHRENZONE" + }, + "items": { + "legal": "Rechtliches & Disclaimer", + "privacy_policy": "Datenschutzerklärung", + "report_issue": "Problem melden", + "version": "Version", + "contributors": "Mitwirkende", + "view_contributors": "Alle Mitwirkenden anzeigen", + "theme": "Thema", + "episode_layout": "Episoden-Layout", + "streams_backdrop": "Streams-Hintergrund", + "streams_backdrop_desc": "Unscharfen Hintergrund bei mobilen Streams anzeigen", + "addons": "Addons", + "installed": "installiert", + "debrid_integration": "Debrid-Integration", + "debrid_desc": "Torbox für Premium-Streams verbinden", + "plugins": "Plugins", + "plugins_desc": "Plugins und Repositories verwalten", + "catalogs": "Kataloge", + "active": "aktiv", + "home_screen": "Startbildschirm", + "home_screen_desc": "Layout und Inhalt", + "continue_watching": "Weitersehen", + "continue_watching_desc": "Cache und Wiedergabeverhalten", + "show_discover": "Entdecken-Bereich anzeigen", + "show_discover_desc": "Entdecken-Inhalte in der Suche anzeigen", + "mdblist": "MDBList", + "mdblist_connected": "Verbunden", + "mdblist_desc": "Aktivieren, um Bewertungen & Rezensionen hinzuzufügen", + "tmdb": "TMDB", + "tmdb_desc": "Metadaten- & Logo-Quellanbieter", + "openrouter": "OpenRouter API", + "openrouter_connected": "Verbunden", + "openrouter_desc": "Fügen Sie Ihren API-Schlüssel hinzu, um KI-Chat zu aktivieren", + "video_player": "Videoplayer", + "built_in": "Eingebaut", + "external": "Extern", + "preferred_audio": "Bevorzugte Audiosprache", + "preferred_subtitle": "Bevorzugte Untertitelsprache", + "subtitle_source": "Untertitelquellen-Priorität", + "auto_select_subs": "Untertitel automatisch auswählen", + "auto_select_subs_desc": "Wählt automatisch Untertitel nach Ihren Präferenzen", + "show_trailers": "Trailer anzeigen", + "show_trailers_desc": "Trailer im Hero-Bereich anzeigen", + "enable_downloads": "Downloads aktivieren (Beta)", + "enable_downloads_desc": "Downloads-Tab anzeigen und Speichern von Streams aktivieren", + "notifications": "Benachrichtigungen", + "notifications_desc": "Episodenerinnerungen", + "test_onboarding": "Onboarding testen", + "reset_onboarding": "Onboarding zurücksetzen", + "test_announcement": "Ankündigung testen", + "test_announcement_desc": "Neuigkeiten-Overlay anzeigen", + "reset_campaigns": "Kampagnen zurücksetzen", + "reset_campaigns_desc": "Kampagnen-Impressionen löschen", + "clear_all_data": "Alle Daten löschen", + "clear_all_data_desc": "Alle Einstellungen und zwischengespeicherten Daten zurücksetzen" + }, + "options": { + "horizontal": "Horizontal", + "vertical": "Vertikal", + "internal_first": "Intern zuerst", + "internal_first_desc": "Bevorzuge eingebettete Untertitel, dann externe", + "external_first": "Extern zuerst", + "external_first_desc": "Bevorzuge Addon-Untertitel, dann eingebettete", + "any_available": "Jede verfügbare", + "any_available_desc": "Verwende die erste verfügbare Untertitelspur" + }, + "clear_data_desc": "Dies setzt alle Einstellungen zurück und löscht alle zwischengespeicherten Daten. Sind Sie sicher?", + "app_updates": "App-Updates", + "about_nuvio": "Über Nuvio" + }, + "ai_settings": { + "title": "KI-Assistent", + "info_title": "KI-gestützter Chat", + "info_desc": "Stellen Sie Fragen zu jedem Film oder jeder Serienepisode mit fortschrittlicher KI.", + "feature_1": "Episodenspezifischer Kontext und Analyse", + "feature_2": "Handlungserklärungen und Charakter-Einblicke", + "feature_3": "Hintergrundwissen und Fakten", + "feature_4": "Ihr eigener kostenloser OpenRouter API-Schlüssel", + "api_key_section": "OPENROUTER API-SCHLÜSSEL", + "api_key_label": "API-Schlüssel", + "api_key_desc": "Geben Sie Ihren OpenRouter API-Schlüssel ein", + "save_api_key": "API-Schlüssel speichern", + "saving": "Speichere...", + "update": "Aktualisieren", + "remove": "Entfernen", + "get_free_key": "Kostenlosen API-Schlüssel von OpenRouter erhalten", + "enable_chat": "KI-Chat aktivieren", + "enable_chat_desc": "Wenn aktiviert, erscheint der KI-Fragen-Button auf Inhaltsseiten.", + "chat_enabled": "KI-Chat aktiviert", + "chat_enabled_desc": "Sie können jetzt Fragen zu Filmen und TV-Shows stellen!", + "how_it_works": "Wie es funktioniert", + "how_it_works_desc": "• OpenRouter bietet Zugang zu mehreren KI-Modellen\n• Ihr API-Schlüssel bleibt privat\n• Kostenlose Stufe enthält großzügige Nutzungslimits", + "error_invalid_key": "Bitte geben Sie einen gültigen API-Schlüssel ein", + "error_key_format": "OpenRouter API-Schlüssel sollten mit \"sk-or-\" beginnen", + "success_saved": "OpenRouter API-Schlüssel erfolgreich gespeichert!", + "error_save": "Fehler beim Speichern des API-Schlüssels", + "confirm_remove_title": "API-Schlüssel entfernen", + "confirm_remove_msg": "Sind Sie sicher? Dies deaktiviert die KI-Chat-Funktionen.", + "success_removed": "API-Schlüssel erfolgreich entfernt", + "error_remove": "Fehler beim Entfernen des API-Schlüssels" + }, + "catalog_settings": { + "title": "Kataloge", + "layout_phone": "LAYOUT KATALOGBILDSCHIRM (TELEFON)", + "posters_per_row": "Poster pro Zeile", + "auto": "Auto", + "show_titles": "Postertitel anzeigen", + "show_titles_desc": "Titeltext unter jedem Poster anzeigen", + "phone_only_hint": "Gilt nur für Telefone. Tablets behalten adaptives Layout.", + "catalogs_group": "Kataloge", + "enabled_count": "{{enabled}} von {{total}} aktiviert", + "rename_hint": "Lange drücken um Katalog umzubenennen", + "rename_modal_title": "Katalog umbenennen", + "rename_placeholder": "Neuen Katalognamen eingeben", + "error_save_name": "Der benutzerdefinierte Name konnte nicht gespeichert werden." + }, + "continue_watching_settings": { + "title": "Weitersehen", + "playback_behavior": "WIEDERGABEVERHALTEN", + "use_cached": "Zwischengespeicherte Streams verwenden", + "use_cached_desc": "Wenn aktiviert, öffnet das Klicken auf Weitersehen-Elemente den Player direkt.", + "open_metadata": "Metadaten-Bildschirm öffnen", + "open_metadata_desc": "Wenn zwischengespeicherte Streams deaktiviert sind, öffnet dies den Metadaten-Bildschirm.", + "card_appearance": "KARTENAUSSEHEN", + "card_style": "Kartenstil", + "card_style_desc": "Wählen Sie, wie Weitersehen-Elemente erscheinen", + "wide": "Breit", + "poster": "Poster", + "cache_settings": "CACHE-EINSTELLUNGEN", + "cache_duration": "Stream-Cache-Dauer", + "cache_duration_desc": "Wie lange Stream-Links gespeichert bleiben", + "important_note": "Wichtiger Hinweis", + "important_note_text": "Nicht alle Stream-Links bleiben für die volle Cache-Dauer aktiv.", + "how_it_works": "Wie es funktioniert", + "how_it_works_cached": "• Streams werden für die gewählte Dauer zwischengespeichert", + "how_it_works_uncached": "• Wenn deaktiviert, öffnen Weitersehen-Elemente Inhaltsbildschirme", + "changes_saved": "Änderungen gespeichert", + "min": "Min", + "hour": "Stunde", + "hours": "Stunden" + }, + "contributors": { + "title": "Mitwirkende", + "special_mentions": "Besondere Erwähnungen", + "tab_contributors": "Mitwirkende", + "tab_special": "Besondere Erwähnungen", + "manager_role": "Community Manager", + "manager_desc": "Verwaltet die Discord & Reddit Communities", + "sponsor_role": "Server Sponsor", + "sponsor_desc": "Sponserte die Serverinfrastruktur", + "mod_role": "Discord Mod", + "mod_desc": "Hilft bei der Moderation", + "loading": "Lade...", + "discord_user": "Discord Benutzer", + "contributions": "Beiträge", + "gratitude_title": "Wir sind dankbar für jeden Beitrag", + "gratitude_desc": "Jede Zeile Code hilft", + "special_thanks_title": "Besonderer Dank", + "special_thanks_desc": "Diese erstaunlichen Menschen helfen", + "error_rate_limit": "GitHub API Rate Limit überschritten.", + "error_failed": "Fehler beim Laden der Mitwirkenden.", + "retry": "Erneut versuchen", + "no_contributors": "Keine Mitwirkenden gefunden", + "loading_contributors": "Lade Mitwirkende..." + }, + "debrid": { + "title": "Debrid Integration", + "description_torbox": "Entsperren Sie 4K-Streams durch Integration von Torbox.", + "description_torrentio": "Konfigurieren Sie Torrentio um Torrent-Streams zu erhalten.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Verbunden", + "status_disconnected": "Getrennt", + "enable_addon": "Addon aktivieren", + "disconnect_button": "Trennen & Entfernen", + "disconnect_loading": "Trenne...", + "account_info": "Kontoinformationen", + "plan": "Plan", + "plan_free": "Kostenlos", + "plan_essential": "Essential ($3/Mon)", + "plan_pro": "Pro ($10/Mon)", + "plan_standard": "Standard ($5/Mon)", + "plan_unknown": "Unbekannt", + "expires": "Läuft ab", + "downloaded": "Heruntergeladen", + "status_active": "Aktiv", + "connected_title": "✓ Verbunden mit TorBox", + "connected_desc": "Ihr TorBox-Addon ist aktiv.", + "configure_title": "Addon konfigurieren", + "configure_desc": "Passen Sie Ihr Streaming-Erlebnis an.", + "open_settings": "Einstellungen öffnen", + "what_is_debrid": "Was ist ein Debrid-Dienst?", + "enter_api_key": "Geben Sie Ihren API-Schlüssel ein", + "connect_button": "Verbinden & Installieren", + "connecting": "Verbinde...", + "unlock_speeds_title": "Premium-Geschwindigkeiten entsperren", + "unlock_speeds_desc": "Holen Sie sich ein Torbox-Abonnement.", + "get_subscription": "Abonnement holen", + "powered_by": "Bereitgestellt von", + "disclaimer_torbox": "Nuvio ist nicht mit Torbox verbunden.", + "disclaimer_torrentio": "Nuvio ist nicht mit Torrentio verbunden.", + "installed_badge": "✓ INSTALLIERT", + "promo_title": "⚡ Brauchen Sie einen Debrid-Dienst?", + "promo_desc": "Holen Sie sich TorBox für blitzschnelles 4K-Streaming.", + "promo_button": "TorBox-Abonnement holen", + "service_label": "Debrid-Dienst *", + "api_key_label": "API-Schlüssel *", + "sorting_label": "Sortierung", + "exclude_qualities": "Qualitäten ausschließen", + "priority_languages": "Prioritätssprachen", + "max_results": "Max Ergebnisse", + "additional_options": "Zusätzliche Optionen", + "no_download_links": "Keine Download-Links anzeigen", + "no_debrid_catalog": "Keinen Debrid-Katalog anzeigen", + "install_button": "Torrentio installieren", + "installing": "Installiere...", + "update_button": "Konfiguration aktualisieren", + "updating": "Aktualisiere...", + "remove_button": "Torrentio entfernen", + "error_api_required": "API-Schlüssel erforderlich", + "error_api_required_desc": "Bitte geben Sie Ihren Debrid-Service-API-Schlüssel ein.", + "success_installed": "Torrentio-Addon erfolgreich installiert!", + "success_removed": "Torrentio-Addon erfolgreich entfernt", + "alert_disconnect_title": "Torbox trennen", + "alert_disconnect_msg": "Sind Sie sicher, dass Sie Torbox trennen möchten?" + }, + "home_screen": { + "title": "Startbildschirm-Einstellungen", + "changes_applied": "Änderungen angewendet", + "display_options": "ANZEIGEOPTIONEN", + "show_hero": "Hero-Bereich anzeigen", + "show_hero_desc": "Hervorgehobener Inhalt oben", + "show_this_week": "Diese Woche anzeigen", + "show_this_week_desc": "Neue Episoden der aktuellen Woche", + "select_catalogs": "Kataloge auswählen", + "all_catalogs": "Alle Kataloge", + "selected": "ausgewählt", + "hero_layout": "Hero-Layout", + "layout_legacy": "Legacy", + "layout_carousel": "Karussell", + "layout_appletv": "Apple TV", + "layout_desc": "Banner in voller Breite, wischbare Karten oder Apple TV Stil", + "featured_source": "Hervorgehobene Quelle", + "using_catalogs": "Verwendete Kataloge", + "manage_selected_catalogs": "Ausgewählte Kataloge verwalten", + "dynamic_bg": "Dynamischer Hero-Hintergrund", + "dynamic_bg_desc": "Unscharfes Banner hinter Karussell", + "performance_note": "Kann die Leistung beeinträchtigen.", + "posters": "Poster", + "show_titles": "Titel anzeigen", + "poster_size": "Postergröße", + "poster_corners": "Posterecken", + "size_small": "Klein", + "size_medium": "Mittel", + "size_large": "Groß", + "corners_square": "Quadratisch", + "corners_rounded": "Abgerundet", + "corners_pill": "Pille", + "about_these_settings": "ÜBER DIESE EINSTELLUNGEN", + "about_desc": "Diese Einstellungen steuern, wie Inhalte auf Ihrem Startbildschirm angezeigt werden.", + "hero_catalogs": { + "title": "Hero-Bereich Kataloge", + "select_all": "Alle auswählen", + "clear_all": "Alle löschen", + "info": "Wählen Sie, welche Kataloge angezeigt werden sollen.", + "settings_saved": "Einstellungen gespeichert", + "error_load": "Kataloge konnten nicht geladen werden", + "movies": "Filme", + "tv_shows": "Serien" + } + }, + "calendar": { + "title": "Kalender", + "loading": "Lade Kalender...", + "no_scheduled_episodes": "Keine geplanten Episoden", + "check_back_later": "Schauen Sie später wieder vorbei", + "showing_episodes_for": "Zeige Episoden für {{date}}", + "show_all_episodes": "Alle Episoden anzeigen", + "no_episodes_for": "Keine Episoden für {{date}}", + "no_upcoming_found": "Keine kommenden Episoden gefunden", + "add_series_desc": "Fügen Sie Serien zu Ihrer Bibliothek hinzu" + }, + "mdblist": { + "title": "Bewertungsquellen", + "status_disabled": "MDBList Deaktiviert", + "status_active": "API-Schlüssel Aktiv", + "status_required": "API-Schlüssel Erforderlich", + "status_disabled_desc": "MDBList-Funktionalität ist derzeit deaktiviert.", + "status_active_desc": "Bewertungen von MDBList sind aktiviert.", + "status_required_desc": "Fügen Sie Ihren Schlüssel hinzu.", + "enable_toggle": "MDBList aktivieren", + "enable_toggle_desc": "MDBList-Funktionalität ein-/ausschalten", + "api_section": "API-Schlüssel", + "placeholder": "Fügen Sie Ihren MDBList API-Schlüssel ein", + "save": "Speichern", + "clear": "Schlüssel löschen", + "rating_providers": "Bewertungsanbieter", + "rating_providers_desc": "Wählen Sie, welche Bewertungen angezeigt werden sollen", + "how_to": "Wie bekomme ich einen API-Schlüssel", + "step_1": "Melden Sie sich an auf der", + "step_1_link": "MDBList Website", + "step_2": "Gehen Sie zu", + "step_2_settings": "Einstellungen", + "step_2_api": "API", + "step_2_end": "Abschnitt.", + "step_3": "Generieren Sie einen neuen Schlüssel.", + "go_to_website": "Zu MDBList gehen", + "alert_clear_title": "API-Schlüssel löschen", + "alert_clear_msg": "Sind Sie sicher?", + "success_saved": "API-Schlüssel erfolgreich gespeichert.", + "error_empty": "API-Schlüssel darf nicht leer sein.", + "error_save": "Fehler beim Speichern.", + "api_key_empty_error": "API-Schlüssel darf nicht leer sein.", + "success_cleared": "API-Schlüssel erfolgreich gelöscht", + "error_clear": "Fehler beim Löschen des API-Schlüssels" + }, + "notification": { + "title": "Benachrichtigungseinstellungen", + "section_general": "Allgemein", + "enable_notifications": "Benachrichtigungen aktivieren", + "section_types": "Benachrichtigungstypen", + "new_episodes": "Neue Episoden", + "upcoming_shows": "Kommende Sendungen", + "reminders": "Erinnerungen", + "section_timing": "Benachrichtigungszeitpunkt", + "timing_desc": "Wann sollen Sie benachrichtigt werden?", + "hours_1": "1 Stunde", + "hours_suffix": "Stunden", + "section_status": "Benachrichtigungsstatus", + "stats_upcoming": "Demnächst", + "stats_this_week": "Diese Woche", + "stats_total": "Gesamt", + "sync_button": "Bibliothek & Trakt synchronisieren", + "syncing": "Synchronisiere...", + "sync_desc": "Synchronisiert automatisch Benachrichtigungen.", + "section_advanced": "Erweitert", + "reset_button": "Alle Benachrichtigungen zurücksetzen", + "test_button": "Test-Benachrichtigung (5 Sek)", + "test_notification_in": "Benachrichtigung in {{seconds}}s...", + "test_notification_text": "Benachrichtigung erscheint in {{seconds}} Sekunden", + "alert_reset_title": "Benachrichtigungen zurücksetzen", + "alert_reset_msg": "Dies wird alle geplanten Benachrichtigungen abbrechen.", + "alert_reset_success": "Alle Benachrichtigungen wurden zurückgesetzt", + "alert_sync_complete": "Synchronisierung abgeschlossen", + "alert_sync_msg": "Erfolgreich synchronisiert.", + "alert_test_scheduled": "Test-Benachrichtigung geplant" + }, + "backup": { + "title": "Sichern & Wiederherstellen", + "options_title": "Backup-Optionen", + "options_desc": "Wählen Sie, was gesichert werden soll", + "section_core": "Kerndaten", + "section_addons": "Addons & Integrationen", + "section_settings": "Einstellungen & Präferenzen", + "library_label": "Bibliothek", + "library_desc": "Ihre gespeicherten Filme und Serien", + "watch_progress_label": "Wiedergabefortschritt", + "watch_progress_desc": "Weitersehen-Positionen", + "addons_label": "Addons", + "addons_desc": "Installierte Stremio-Addons", + "plugins_label": "Plugins", + "plugins_desc": "Benutzerdefinierte Scraper-Konfigurationen", + "trakt_label": "Trakt-Integration", + "trakt_desc": "Daten synchronisieren und Token", + "app_settings_label": "App-Einstellungen", + "app_settings_desc": "Design, Präferenzen und Konfigurationen", + "user_prefs_label": "Benutzerpräferenzen", + "user_prefs_desc": "Addon-Reihenfolge und UI-Einstellungen", + "catalog_settings_label": "Katalog-Einstellungen", + "catalog_settings_desc": "Katalogfilter und Präferenzen", + "api_keys_label": "API-Schlüssel", + "api_keys_desc": "MDBList und OpenRouter Schlüssel", + "action_create": "Backup erstellen", + "action_restore": "Aus Backup wiederherstellen", + "section_info": "Über Backups", + "info_text": "• Passen Sie an, was gesichert wird\n• Backups werden lokal gespeichert\n• Teilen Sie Ihr Backup\n• Wiederherstellen überschreibt aktuelle Daten", + "alert_create_title": "Backup erstellen", + "alert_no_content": "Kein Inhalt für Backup ausgewählt.", + "alert_backup_created_title": "Backup erstellt", + "alert_backup_created_msg": "Ihr Backup wurde erstellt.", + "alert_backup_failed_title": "Backup fehlgeschlagen", + "alert_restore_confirm_title": "Wiederherstellung bestätigen", + "alert_restore_confirm_msg": "Dies wird Ihre Daten überschreiben.", + "alert_restore_complete_title": "Wiederherstellung abgeschlossen", + "alert_restore_complete_msg": "Daten erfolgreich wiederhergestellt. Bitte starten Sie die App neu.", + "alert_restore_failed_title": "Wiederherstellung fehlgeschlagen", + "restart_app": "App neu starten", + "alert_restart_failed_title": "Neustart fehlgeschlagen", + "alert_restart_failed_msg": "App konnte nicht neu gestartet werden." + }, + "updates": { + "title": "App-Updates", + "status_checking": "Suche nach Updates...", + "status_available": "Update verfügbar!", + "status_downloading": "Lade Update herunter...", + "status_installing": "Installiere Update...", + "status_success": "Update erfolgreich installiert!", + "status_error": "Update fehlgeschlagen", + "status_ready": "Bereit zur Suche nach Updates", + "action_check": "Nach Updates suchen", + "action_install": "Update installieren", + "release_notes": "Versionshinweise:", + "version": "Version:", + "last_checked": "Zuletzt geprüft:", + "current_version": "Aktuelle Version:", + "current_release_notes": "Aktuelle Versionshinweise:", + "github_release": "GITHUB RELEASE", + "current": "Aktuell:", + "latest": "Neueste:", + "notes": "Hinweise:", + "view_release": "Release anzeigen", + "notification_settings": "BENACHRICHTIGUNGSEINSTELLUNGEN", + "ota_alerts_label": "OTA-Update-Warnungen", + "ota_alerts_desc": "Benachrichtigungen für Over-the-Air-Updates anzeigen", + "major_alerts_label": "Hauptupdate-Warnungen", + "major_alerts_desc": "Benachrichtigungen für neue App-Versionen anzeigen", + "alert_disable_ota_title": "OTA-Warnungen deaktivieren?", + "alert_disable_ota_msg": "Sie erhalten keine automatischen Benachrichtigungen mehr.", + "alert_disable_major_title": "Hauptupdate-Warnungen deaktivieren?", + "alert_disable_major_msg": "Sie erhalten keine Benachrichtigungen mehr für Hauptupdates.", + "warning_note": "Warnungen aktiviert zu lassen stellt sicher, dass Sie Fehlerbehebungen erhalten.", + "disable": "Deaktivieren", + "alert_no_update_to_install": "Kein Update verfügbar", + "alert_install_failed": "Installation fehlgeschlagen", + "alert_no_update_title": "Kein Update", + "alert_update_applied_msg": "Update wird beim nächsten Neustart angewendet" + }, + "legal": { + "title": "Rechtliches & Disclaimer", + "intro_title": "Art der Anwendung", + "intro_text": "Nuvio ist eine Medienspieler- und Metadatenverwaltungsanwendung.", + "extensions_title": "Drittanbieter-Erweiterungen", + "extensions_text": "Nuvio verwendet eine erweiterbare Architektur.", + "user_resp_title": "Verantwortung des Benutzers", + "user_resp_text": "Benutzer sind allein verantwortlich für die installierten Erweiterungen.", + "dmca_title": "Urheberrecht & DMCA", + "dmca_text": "Wir respektieren die geistigen Eigentumsrechte anderer.", + "warranty_title": "Keine Garantie", + "warranty_text": "Diese Software wird ohne Mängelgewähr bereitgestellt." + } +} \ No newline at end of file diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 9c4f932..aeb8728 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -599,6 +599,9 @@ "select_language": "Select Language", "english": "English", "portuguese": "Portuguese", + "portuguese_br": "Portuguese (Brazil)", + "portuguese_pt": "Portuguese (Portugal)", + "german": "German", "arabic": "Arabic", "spanish": "Spanish", "french": "French", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt-BR.json similarity index 99% rename from src/i18n/locales/pt.json rename to src/i18n/locales/pt-BR.json index 95580c5..ce14a8b 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt-BR.json @@ -577,6 +577,9 @@ "select_language": "Selecionar Idioma", "english": "Inglês", "portuguese": "Português", + "portuguese_br": "Português (Brasil)", + "portuguese_pt": "Português (Portugal)", + "german": "Alemão", "arabic": "Árabe", "spanish": "Espanhol", "french": "Francês", diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json new file mode 100644 index 0000000..26d1818 --- /dev/null +++ b/src/i18n/locales/pt-PT.json @@ -0,0 +1,1211 @@ +{ + "common": { + "loading": "A Carregar...", + "cancel": "Cancelar", + "save": "Guardar", + "delete": "Excluir", + "edit": "Editar", + "search": "Pesquisar", + "error": "Erro", + "success": "Sucesso", + "ok": "OK", + "unknown": "Desconhecido", + "retry": "Tentar Novamente", + "try_again": "Tentar Novamente", + "go_back": "Voltar", + "settings": "Configurações", + "close": "Fechar", + "show_more": "Mostrar Mais", + "show_less": "Mostrar Menos", + "load_more": "Carregar Mais", + "unknown_date": "Data desconhecida", + "anonymous_user": "Usuário Anónimo", + "time": { + "now": "Agora", + "minutes_ago": "{{count}}m atrás", + "hours_ago": "{{count}}h atrás", + "days_ago": "{{count}}d atrás" + }, + "days_short": { + "sun": "Dom", + "mon": "Seg", + "tue": "Ter", + "wed": "Qua", + "thu": "Qui", + "fri": "Sex", + "sat": "Sáb" + } + }, + "home": { + "categories": { + "movies": "Filmes", + "series": "Séries", + "channels": "Canais" + }, + "movies": "Filmes", + "tv_shows": "Séries de TV", + "load_more_catalogs": "Carregar Mais Catálogos", + "no_content": "Nenhum conteúdo disponível", + "add_catalogs": "Adicionar Catálogos", + "sign_in_available": "Login Disponível", + "sign_in_desc": "Podes entrar a qualquer momento em Configurações → Conta", + "view_all": "Ver Tudo", + "this_week": "Esta Semana", + "upcoming": "Próximos", + "recently_released": "Lançamentos Recentes", + "no_scheduled_episodes": "Série sem episódios agendados", + "check_back_later": "Volta mais tarde", + "continue_watching": "Continuar a Ver", + "up_next": "A Seguir", + "up_next_caps": "A SEGUIR", + "released": "Lançado", + "new": "Novo", + "tba": "A confirmar", + "new_episodes": "{{count}} Novos Episódios", + "season_short": "T{{season}}", + "episode_short": "E{{episode}}", + "season": "Temporada {{season}}", + "episode": "Episódio {{episode}}", + "movie": "Filme", + "series": "Série", + "tv_show": "Série de TV", + "percent_watched": "{{percent}}% assistido", + "view_details": "Ver Detalhes", + "remove": "Remover", + "play": "Reproduzir", + "play_now": "Reproduzir Agora", + "resume": "Continuar", + "info": "Info", + "more_info": "Mais Info", + "my_list": "A Minha Lista", + "save": "Guardar", + "saved": "Guardado", + "retry": "Tentar Novamente", + "install_addons": "Instalar Addons", + "settings": "Configurações", + "no_featured_content": "Nenhum Conteúdo em Destaque", + "couldnt_load_featured": "Não foi possível carregar o conteúdo em destaque", + "no_featured_desc": "Instala addons com catálogos ou altera a fonte de conteúdo nas configurações.", + "load_error_desc": "Houve um problema ao pesquisar o conteúdo em destaque. Verifica a tua conexão e tenta novamente.", + "no_featured_available": "Nenhum conteúdo em destaque disponível", + "no_description": "Nenhuma descrição disponível" + }, + "navigation": { + "home": "Início", + "library": "Biblioteca", + "search": "Pesquisar", + "downloads": "Downloads", + "settings": "Configurações" + }, + "search": { + "title": "Procurar", + "recent_searches": "Pesquisas Recentes", + "discover": "Descobrir", + "movies": "Filmes", + "tv_shows": "Séries", + "select_catalog": "Selecionar Catálogo", + "all_genres": "Todos os Géneros", + "discovering": "Descobrir conteúdo...", + "show_more": "Mostrar Mais ({{count}})", + "no_content_found": "Nenhum conteúdo encontrado", + "try_different": "Tenta um género ou catálogo diferente", + "select_catalog_desc": "Seleciona um catálogo para descobrir", + "tap_catalog_desc": "Toca no botão de catálogo acima para começar", + "placeholder": "Procura filmes, séries...", + "keep_typing": "Continua a digitar...", + "type_characters": "Digita pelo menos 2 caracteres para pesquisar", + "no_results": "Nenhum resultado encontrado", + "try_keywords": "Tenta palavras-chave diferentes ou verifica a ortografia", + "select_type": "Selecionar Tipo", + "browse_movies": "Navegar catálogos de filmes", + "browse_tv": "Navegar catálogos de séries", + "select_genre": "Selecionar Género", + "show_all_content": "Mostrar todo o conteúdo", + "genres_count": "{{count}} géneros" + }, + "library": { + "title": "Biblioteca", + "watched": "Assistidos", + "continue": "Continuar", + "watchlist": "Lista", + "collection": "Coleção", + "rated": "Avaliado", + "items": "itens", + "trakt_collections": "Coleções Trakt", + "trakt_collection": "Coleção Trakt", + "no_trakt": "Nenhuma coleção Trakt", + "no_trakt_desc": "As tuas coleções do Trakt aparecerão aqui quando começares a usar o Trakt", + "load_collections": "Carregar Coleções", + "empty_folder": "Nenhum conteúdo em {{folder}}", + "empty_folder_desc": "Esta coleção está vazia", + "refresh": "Atualizar", + "no_movies": "Nenhum filme ainda", + "no_series": "Nenhuma série ainda", + "no_content": "Nenhum conteúdo ainda", + "add_content_desc": "Adiciona algum conteúdo à tua biblioteca para vê-lo aqui", + "find_something": "Encontrar algo para assistir", + "removed_from_library": "Removido da Biblioteca", + "item_removed": "Item removido da tua Biblioteca", + "failed_update_library": "Falha ao atualizar Biblioteca", + "unable_remove": "Não foi possível remover o item da biblioteca", + "marked_watched": "Marcado como Assistido", + "marked_unwatched": "Marcado como Não Assistido", + "item_marked_watched": "Item marcado como Assistido", + "item_marked_unwatched": "Item marcado como Não Assistido", + "failed_update_watched": "Falha ao atualizar estado", + "unable_update_watched": "Não foi possível atualizar o estado", + "added_to_library": "Adicionado à Biblioteca", + "item_added": "Adicionado à tua biblioteca local", + "add_to_library": "Adicionar à Biblioteca", + "remove_from_library": "Remover da Biblioteca", + "mark_watched": "Marcar como Assistido", + "mark_unwatched": "Marcar como Não Assistido", + "share": "Partilhar", + "add_to_watchlist": "Adicionar à Lista Trakt", + "remove_from_watchlist": "Remover da Lista Trakt", + "added_to_watchlist": "Adicionado à Lista", + "added_to_watchlist_desc": "Adicionado à tua lista Trakt", + "removed_from_watchlist": "Removido da Lista", + "removed_from_watchlist_desc": "Removido da tua lista Trakt", + "add_to_collection": "Adicionar à Coleção Trakt", + "remove_from_collection": "Remover da Coleção Trakt", + "added_to_collection": "Adicionado à Coleção", + "added_to_collection_desc": "Adicionado à tua coleção Trakt", + "removed_from_collection": "Removido da Coleção", + "removed_from_collection_desc": "Removido da tua coleção Trakt" + }, + "metadata": { + "unable_to_load": "Não foi possível carregar o conteúdo", + "error_code": "Código de Erro: {{code}}", + "content_not_found": "Conteúdo não encontrado", + "content_not_found_desc": "Este conteúdo não existe ou pode ter sido removido.", + "server_error": "Erro do servidor", + "server_error_desc": "O servidor está temporariamente indisponível. Por favor, tenta novamente mais tarde.", + "bad_gateway": "Gateway inválido", + "bad_gateway_desc": "O servidor está com problemas. Por favor, tenta novamente mais tarde.", + "service_unavailable": "Serviço indisponível", + "service_unavailable_desc": "O serviço está em manutenção. Por favor, tenta novamente mais tarde.", + "too_many_requests": "Muitas requisições", + "too_many_requests_desc": "Estás a fazer muitas requisições. Por favor, aguarda um momento e tenta novamente.", + "request_timeout": "Tempo limite da requisição", + "request_timeout_desc": "A requisição demorou muito. Por favor, tenta novamente.", + "network_error": "Erro de rede", + "network_error_desc": "Por favor, verifica a tua conexão com a internet e tenta novamente.", + "auth_error": "Erro de autenticação", + "auth_error_desc": "Por favor, verifica as configurações da tua conta e tenta novamente.", + "access_denied": "Acesso negado", + "access_denied_desc": "Não tens permissão para acessar a este conteúdo.", + "connection_error": "Erro de conexão", + "streams_unavailable": "Streams indisponíveis", + "streams_unavailable_desc": "Fontes de streaming estão temporariamente indisponíveis. Por favor, tenta novamente mais tarde.", + "unknown_error": "Erro desconhecido", + "something_went_wrong": "Algo correu mal. Por favor, tenta novamente.", + "cast": "Elenco", + "more_like_this": "Mais Como Este", + "collection": "Coleção", + "episodes": "Episódios", + "seasons": "Temporadas", + "posters": "Pósteres", + "banners": "Banners", + "specials": "Especiais", + "season_number": "Temporada {{number}}", + "episode_count": "{{count}} Episódio", + "episode_count_plural": "{{count}} Episódios", + "no_episodes": "Nenhum episódio disponível", + "no_episodes_for_season": "Nenhum episódio disponível para a Temporada {{season}}", + "episodes_not_released": "Os episódios podem ainda não ter sido lançados", + "no_description": "Nenhuma descrição disponível", + "episode_label": "EPISÓDIO {{number}}", + "watch_again": "Assistir Novamente", + "completed": "Concluído", + "play_episode": "Reproduzir T{{season}}E{{episode}}", + "play": "Reproduzir", + "watched": "Assistido", + "watched_on_trakt": "Assistido no Trakt", + "synced_with_trakt": "Sincronizado com Trakt", + "saved": "Guardado", + "director": "Realizador", + "directors": "Realizadores", + "creator": "Criador", + "creators": "Criadores", + "production": "Produção", + "network": "Emissora", + "mark_watched": "Marcar como Assistido", + "mark_unwatched": "Marcar como Não Assistido", + "marking": "A Marcar...", + "removing": "A Remover...", + "unmark_season": "Desmarcar Temporada {{season}}", + "mark_season": "Marcar Temporada {{season}}", + "resume": "Continuar", + "spoiler_warning": "Aviso de Spoiler", + "spoiler_warning_desc": "Este comentário contém spoilers. Tens a certeza que queres revelá-lo?", + "cancel": "Cancelar", + "reveal_spoilers": "Revelar Spoilers", + "movie_details": "Detalhes do Filme", + "show_details": "Detalhes da Série", + "tagline": "Tagline", + "status": "Estado", + "release_date": "Data de Lançamento", + "runtime": "Duração", + "budget": "Orçamento", + "revenue": "Bilheteria", + "origin_country": "País de Origem", + "original_language": "Idioma Original", + "first_air_date": "Primeira Exibição", + "last_air_date": "Última Exibição", + "total_episodes": "Total de Episódios", + "episode_runtime": "Duração do Episódio", + "created_by": "Criado Por", + "backdrop_gallery": "Galeria de Imagens", + "loading_episodes": "A Carregar Episódios...", + "no_episodes_available": "Nenhum episódio disponível", + "play_next": "Reproduzir T{{season}}E{{episode}}", + "play_next_episode": "Reproduzir Próximo Episódio", + "save": "Guardar", + "percent_watched": "{{percent}}% assistido", + "percent_watched_trakt": "{{percent}}% assistido ({{traktPercent}}% no Trakt)", + "synced_with_trakt_progress": "Sincronizado com o Trakt", + "using_trakt_progress": "A usar progresso do Trakt", + "added_to_collection_hero": "Adicionado à Coleção", + "added_to_collection_desc_hero": "Adicionado à tua coleção Trakt", + "removed_from_collection_hero": "Removido da Coleção", + "removed_from_collection_desc_hero": "Removido da tua coleção Trakt", + "mark_as_watched": "Marcar como Assistido", + "mark_as_unwatched": "Marcar como Não Assistido" + }, + "cast": { + "biography": "Biografia", + "known_for": "Conhecido Por", + "personal_info": "Informações Pessoais", + "born_in": "Nascido em {{place}}", + "filmography": "Filmografia", + "also_known_as": "Também conhecido(a) como", + "as_character": "como {{character}}", + "loading_details": "A carregar detalhes...", + "years_old": "{{age}} anos", + "view_filmography": "Ver Filmografia", + "filter": "Filtrar", + "sort_by": "Ordenar Por", + "sort_popular": "Popular", + "sort_latest": "Mais Recente", + "sort_upcoming": "Próximos Lançamentos", + "upcoming_badge": "EM BREVE", + "coming_soon": "Em Breve", + "filmography_count": "Filmografia • {{count}} títulos", + "loading_filmography": "A Carregar filmografia...", + "load_more_remaining": "Carregar Mais ({{count}} restantes)", + "alert_error_title": "Erro", + "alert_error_message": "Não foi possível carregar \"{{title}}\". Por favor, tenta novamente mais tarde.", + "alert_ok": "OK", + "no_upcoming": "Nenhum lançamento futuro disponível para este ator", + "no_content": "Nenhum conteúdo disponível para este ator", + "no_movies": "Nenhum filme disponível para este ator", + "no_tv": "Nenhuma série disponível para este ator", + "no_info_available": "Nenhuma informação adicional disponível" + }, + "comments": { + "title": "Comentários do Trakt", + "spoiler_warning": "⚠️ Este comentário contém spoilers. Toca para revelar.", + "spoiler": "Spoiler", + "contains_spoilers": "Contém spoilers", + "reveal": "Revelar", + "vip": "VIP", + "unavailable": "Comentários indisponíveis", + "no_comments": "Ainda não há comentários no Trakt", + "not_in_database": "Este conteúdo pode ainda não estar no banco de dados do Trakt", + "check_trakt": "Ver no Trakt" + }, + "trailers": { + "title": "Trailers", + "official_trailers": "Trailers Oficiais", + "official_trailer": "Trailer Oficial", + "teasers": "Teasers", + "teaser": "Teaser", + "clips_scenes": "Clipes e Cenas", + "clip": "Clipe", + "featurettes": "Featurettes", + "featurette": "Featurette", + "behind_the_scenes": "Bastidores", + "no_trailers": "Nenhum trailer disponível", + "unavailable": "Trailer Indisponível", + "unavailable_desc": "Este trailer não pôde ser carregado no momento. Por favor, tenta novamente mais tarde.", + "unable_to_play": "Não foi possível reproduzir o trailer. Por favor, tenta novamente.", + "watch_on_youtube": "Assistir no YouTube" + }, + "catalog": { + "no_content_found": "Nenhum conteúdo encontrado", + "no_content_filters": "Nenhum conteúdo encontrado para os filtros selecionados", + "loading_content": "A Carregar conteúdo...", + "back": "Voltar", + "in_theaters": "Em Cartaz", + "all": "Todos", + "failed_tmdb": "Falha ao carregar conteúdo do TMDB", + "movies": "Filmes", + "tv_shows": "Séries", + "channels": "Canais" + }, + "streams": { + "back_to_episodes": "Voltar aos Episódios", + "back_to_info": "Voltar às Informações", + "fetching_from": "À Procura de:", + "no_sources_available": "Nenhuma fonte de streaming disponível", + "add_sources_desc": "Por favor, adiciona fontes de streaming nas configurações", + "add_sources": "Adicionar Fontes", + "finding_streams": "A procurar streams disponíveis...", + "finding_best_stream": "A procurar a melhor stream para reprodução automática...", + "still_fetching": "Ainda a pesquisar streams…", + "no_streams_available": "Nenhum stream disponível", + "starting_best_stream": "A reproduzir a melhor stream...", + "loading_more_sources": "A carregar mais fontes..." + }, + "player_ui": { + "via": "via {{name}}", + "audio_tracks": "Faixas de Áudio", + "no_audio_tracks": "Nenhuma faixa de áudio disponível", + "playback_speed": "Velocidade de Reprodução", + "on_hold": "Ao Segurar", + "playback_error": "Erro de Reprodução", + "unknown_error": "Ocorreu um erro desconhecido durante a reprodução.", + "copy_error": "Copiar detalhes do erro", + "copied_to_clipboard": "Copiado para a área de transferência", + "dismiss": "Dispensar", + "continue_watching": "Continuar a Assistir", + "start_over": "Recomeçar", + "resume": "Continuar", + "change_source": "Mudar Fonte", + "switching_source": "A trocar fonte...", + "no_sources_found": "Nenhuma fonte encontrada", + "sources": "Fontes", + "finding_sources": "A procurar fontes...", + "unknown_source": "Fonte Desconhecida", + "sources_limited": "As fontes podem ser limitadas devido a erros do provedor.", + "episodes": "Episódios", + "specials": "Especiais", + "season": "Temporada {{season}}", + "stream": "Reproduzir {{number}}", + "subtitles": "Legendas", + "built_in": "Integradas", + "addons": "Addons", + "style": "Estilo", + "none": "Nenhuma", + "search_online_subtitles": "Procurar Legendas Online", + "preview": "Pré-visualização", + "quick_presets": "Predefinições Rápidas", + "default": "Padrão", + "yellow": "Amarelo", + "high_contrast": "Alto Contraste", + "large": "Grande", + "core": "Principal", + "font_size": "Tamanho da Fonte", + "show_background": "Mostrar Fundo", + "advanced": "Avançado", + "position": "Posição", + "text_color": "Cor do Texto", + "align": "Alinhamento", + "bottom_offset": "Deslocamento Inferior", + "background_opacity": "Opacidade do Fundo", + "text_shadow": "Sombra do Texto", + "on": "Ligado", + "off": "Desligado", + "outline_color": "Cor do Contorno", + "outline_width": "Largura do Contorno", + "letter_spacing": "Espaçamento de Letras", + "line_height": "Altura da Linha", + "timing_offset": "Ajuste do Tempo", + "visual_sync": "Sincronização Visual", + "timing_hint": "Ajusta as legendas para antes (-) ou depois (+) para sincronizar.", + "reset_defaults": "Redefinir padrões" + }, + "downloads": { + "title": "Downloads", + "no_downloads": "Nenhum Download Ainda", + "no_downloads_desc": "Conteúdo descarregado aparecerá aqui para visualização offline", + "explore": "Explorar Conteúdo", + "path_copied": "Caminho Copiado", + "path_copied_desc": "Caminho do arquivo local copiado para a área de transferência", + "copied": "Copiado", + "incomplete": "Download Incompleto", + "incomplete_desc": "O download ainda não está completo", + "not_available": "Não Disponível", + "not_available_desc": "O caminho do arquivo local está disponível apenas após a conclusão do download.", + "status_downloading": "A descarregar", + "status_completed": "Concluído", + "status_paused": "Em pausa", + "status_error": "Erro", + "status_queued": "Na Fila", + "status_unknown": "Desconhecido", + "provider": "Provedor", + "streaming_playlist_warning": "Pode não reproduzir - playlist de streaming", + "remaining": "restantes", + "not_ready": "Download não pronto", + "not_ready_desc": "Por favor aguarda até que o download seja concluído.", + "filter_all": "Todos", + "filter_active": "Ativos", + "filter_done": "Concluídos", + "filter_paused": "Em pausa", + "no_filter_results": "Nenhum download {{filter}}", + "try_different_filter": "Tenta selecionar um filtro diferente", + "limitations_title": "Limitações de Download", + "limitations_msg": "• Arquivos menores que 1MB são tipicamente playlists de streaming M3U8 e não podem ser descarregados para visualização offline. Eles funcionam apenas com streaming online e contêm links para segmentos de vídeo, não o conteúdo de vídeo real.", + "remove_title": "Remover Download", + "remove_confirm": "Remover \"{{title}}\"{{season_episode}}?", + "cancel": "Cancelar", + "remove": "Remover" + }, + "addons": { + "title": "Addons", + "reorder_mode": "Modo de Reordenação", + "reorder_info": "Arrasta e solta para reordenar os teus addons.", + "add_addon_placeholder": "Digita a URL do addon (começa com https://)", + "add_button": "Adicionar", + "my_addons": "Os Meus Addons", + "community_addons": "Addons da Comunidade", + "no_addons": "Nenhum addon instalado", + "uninstall_title": "Desinstalar Addon", + "uninstall_message": "Tens a certeza que desejas desinstalar o {{name}}?", + "uninstall_button": "Desinstalar", + "installed_addons": "ADDONS INSTALADOS", + "reorder_drag_title": "ARRASTA PARA REORDENAR", + "install": "Instalar", + "config_unavailable_title": "Configuração Indisponível", + "config_unavailable_msg": "Não foi possível determinar a URL de configuração para este addon.", + "cannot_open_config_title": "Não é Possível Abrir Configuração", + "cannot_open_config_msg": "A URL de configuração ({{url}}) não pode ser aberta. O addon pode não ter uma página de configuração.", + "description": "Descrição", + "supported_types": "Tipos Suportados", + "catalogs": "Catálogos", + "no_description": "Nenhuma descrição disponível", + "overview": "VISÃO GERAL", + "no_categories": "Sem categorias", + "pre_installed": "PRÉ-INSTALADO" + }, + "trakt": { + "title": "Configurações Trakt", + "settings_title": "Configurações Trakt", + "connect_title": "Conectar com Trakt", + "connect_desc": "Sincroniza o teu histórico, listas e coleções com Trakt.tv", + "sign_in": "Entrar com o Trakt", + "sign_out": "Sair", + "sign_out_confirm": "Tens a certeza de que desejas sair da tua conta Trakt?", + "joined": "Entrou em {{date}}", + "sync_settings_title": "Configurações de Sincronização", + "sync_info": "Quando conectado ao Trakt, o histórico completo é sincronizado diretamente da API e não é gravado no armazenamento local. A tua lista Continuar a Assistir reflete o teu progresso global no Trakt.", + "auto_sync_label": "Sincronização automática", + "auto_sync_desc": "Sincronizar automaticamente o progresso com o Trakt", + "import_history_label": "Importar histórico assistido", + "import_history_desc": "Usa \"Sincronizar Agora\" para importar o teu histórico e progresso do Trakt", + "sync_now_button": "Sincronizar Agora", + "display_settings_title": "Configurações de Exibição", + "show_comments_label": "Mostrar Comentários Trakt", + "show_comments_desc": "Exibir comentários do Trakt nas telas de metadados quando disponível", + "maintenance_title": "Em Manutenção", + "maintenance_unavailable": "Trakt Indisponível", + "maintenance_desc": "A integração com o Trakt está temporariamente em pausa para manutenção. Todas sincronizações e autenticações estão desativadas até que a manutenção seja concluída.", + "maintenance_button": "Serviço em Manutenção", + "auth_success_title": "Conectado com Sucesso", + "auth_success_msg": "A tua conta Trakt foi conectada com sucesso.", + "auth_error_title": "Erro de Autenticação", + "auth_error_msg": "Falha ao completar autenticação com Trakt.", + "auth_error_generic": "Ocorreu um erro durante a autenticação.", + "sign_out_error": "Falha ao sair do Trakt.", + "sync_complete_title": "Sincronização Completa", + "sync_success_msg": "Progresso sincronizado com sucesso com o Trakt.", + "sync_error_msg": "Falha na sincronização. Tenta novamente." + }, + "tmdb_settings": { + "title": "Configurações do TMDb", + "metadata_enrichment": "Enriquecimento de Metadados", + "metadata_enrichment_desc": "Melhora os metadados do teu conteúdo com dados do TMDb para melhores detalhes e informações.", + "localized_text": "Texto Localizado", + "localized_text_desc": "Pesquisa títulos e descrições no teu idioma preferido do TMDb.", + "language": "Idioma", + "change": "Alterar", + "logo_preview": "Prévia do Logo", + "logo_preview_desc": "A prévia mostra como logos localizados aparecerão no idioma selecionado.", + "example": "Exemplo:", + "enrichment_options": "Opções de Enriquecimento", + "enrichment_options_desc": "Controla quais dados são pesquisados do TMDb. Opções desativadas usarão dados do addon se disponíveis.", + "cast_crew": "Elenco e Equipa", + "cast_crew_desc": "Atores, realizadores, escritores com fotos de perfil", + "title_description": "Título e Descrição", + "title_description_desc": "Usa o título e texto localizados do TMDb", + "title_logos": "Logos do Título", + "title_logos_desc": "Imagens de tratamento de título de alta qualidade", + "banners_backdrops": "Banners e Fundos", + "banners_backdrops_desc": "Imagens de fundo de alta resolução", + "certification": "Classificação de Conteúdo", + "certification_desc": "Classificações etárias (10, 12, 14, 16, 18, etc.)", + "recommendations": "Recomendações", + "recommendations_desc": "Sugestões de conteúdo similar", + "episode_data": "Dados do Episódio", + "api_configuration": "Configuração da API", + "api_configuration_desc": "Configura o teu acesso à API do TMDB", + "use_custom_api_key": "Usar Chave de API Personalizada", + "use_custom_api_key_desc": "Usa a tua própria chave de API do TMDB em vez da integrada", + "api_key_placeholder": "Insere a tua Chave de API do TMDB", + "api_key_help": "Nota: Usar a tua própria chave de API requer que o aplicativo seja reiniciado para que as alterações entrem em vigor.", + "verify_key": "Verificar e Guardar Chave", + "clear_key": "Limpar Chave Personalizada", + "language_region": "Idioma e Região", + "language_region_desc": "Define o teu idioma de conteúdo preferido", + "content_language": "Idioma do Conteúdo", + "cache_storage": "Cache e Armazenamento", + "cache_storage_desc": "Gerir armazenamento de dados local", + "clear_cache": "Limpar Cache TMDB", + "clear_cache_desc": "Remover todos os dados TMDB em cache", + "current_size": "Tamanho atual: {{size}}", + "about": "Sobre o TMDB", + "attribution": "Este produto usa a API do TMDB, mas não é endossado ou certificado pelo TMDB.", + "clear_cache_title": "Limpar Cache TMDB", + "clear_cache_msg": "Tens a certeza de que desejas limpar o cache do TMDB? Isso removerá {{size}} de dados.", + "clear_cache_success": "Cache TMDB limpo com sucesso", + "clear_cache_error": "Falha ao limpar o cache TMDB", + "empty_api_key": "Por favor, insere uma chave de API", + "key_verified": "Chave de API verificada e guardada!", + "invalid_api_key": "Chave de API inválida. Verifica e tenta novamente.", + "save_error": "Erro ao guardar Chave de API", + "clear_api_key_title": "Limpar Chave de API", + "clear_api_key_msg": "Tens a certeza de que desejas remover a tua chave de API personalizada? O aplicativo voltará a usar a chave integrada.", + "clear_api_key_error": "Falha ao limpar chave de API", + "using_builtin_key": "Alternado para chave de API integrada", + "using_custom_key": "Alternado para chave de API personalizada", + "enter_custom_key": "Por favor, insere uma chave de API personalizada", + "no_logo": "Sem Logo" + }, + "settings": { + "language": "Idioma", + "select_language": "Selecionar Idioma", + "english": "Inglês", + "portuguese": "Português", + "portuguese_br": "Português (Brasil)", + "portuguese_pt": "Português (Portugal)", + "german": "Alemão", + "arabic": "Árabe", + "spanish": "Espanhol", + "french": "Francês", + "italian": "Italiano", + "account": "Conta", + "content_discovery": "Conteúdo e Descoberta", + "appearance": "Aparência", + "integrations": "Integrações", + "playback": "Reprodução", + "backup_restore": "Backup e Restauração", + "updates": "Atualizações", + "about": "Sobre", + "developer": "Desenvolvedor", + "cache": "Cache", + "title": "Configurações", + "settings_title": "Configurações", + "sign_in_sync": "Faz login para sincronizar", + "add_catalogs_sources": "Addons, catálogos e fontes", + "player_trailers_downloads": "Reprodutor, trailers, downloads", + "mdblist_tmdb_ai": "MDBList, TMDB, IA", + "check_updates": "Verificar atualizações", + "developer_tools": "Opções de teste e depuração", + "clear_mdblist_cache": "Limpar Cache do MDBList", + "cache_management": "GERENCIAMENTO DE CACHE", + "downloads_counter": "downloads e contando", + "made_with_love": "Feito com ❤️ por Tapframe e amigos", + "sections": { + "information": "INFORMAÇÕES", + "account": "CONTA", + "theme": "TEMA", + "layout": "LAYOUT", + "sources": "FONTES", + "catalogs": "CATÁLOGOS", + "discovery": "DESCOBERTA", + "metadata": "METADADOS", + "ai_assistant": "ASSISTENTE IA", + "video_player": "REPRODUTOR DE VÍDEO", + "audio_subtitles": "ÁUDIO E LEGENDAS", + "media": "MÍDIA", + "notifications": "NOTIFICAÇÕES", + "testing": "TESTES", + "danger_zone": "AREA DE PERIGO" + }, + "items": { + "legal": "Aviso Legal", + "privacy_policy": "Política de Privacidade", + "report_issue": "Reportar Problema", + "version": "Versão", + "contributors": "Contribuidores", + "view_contributors": "Ver todos os contribuidores", + "theme": "Tema", + "episode_layout": "Layout de Episódios", + "streams_backdrop": "Fundo de Streams", + "streams_backdrop_desc": "Mostrar fundo desfocado em streams móveis", + "addons": "Addons", + "installed": "instalados", + "debrid_integration": "Integração Debrid", + "debrid_desc": "Conectar Torbox para streams premium", + "plugins": "Plugins", + "plugins_desc": "Gerir plugins e repositórios", + "catalogs": "Catálogos", + "active": "ativos", + "home_screen": "Início", + "home_screen_desc": "Layout e conteúdo", + "continue_watching": "Continuar a Assistir", + "continue_watching_desc": "Cache e comportamento de reprodução", + "show_discover": "Mostrar Secção Descobrir", + "show_discover_desc": "Exibir conteúdo de descoberta na Pesquisa", + "mdblist": "MDBList", + "mdblist_connected": "Conectado", + "mdblist_desc": "Ativar para adicionar avaliações e críticas", + "tmdb": "TMDB", + "tmdb_desc": "Provedor de metadados e logos", + "openrouter": "OpenRouter API", + "openrouter_connected": "Conectado", + "openrouter_desc": "Adiciona a tua chave API para chat IA", + "video_player": "Reprodutor de Vídeo", + "built_in": "Integrado", + "external": "Externo", + "preferred_audio": "Idioma do Áudio Preferido", + "preferred_subtitle": "Idioma da Legenda Preferido", + "subtitle_source": "Prioridade da Fonte de Legenda", + "auto_select_subs": "Auto-Selecionar Legendas", + "auto_select_subs_desc": "Selecionar legendas automaticamente", + "show_trailers": "Mostrar Trailers", + "show_trailers_desc": "Exibir trailers na secção hero", + "enable_downloads": "Habilitar Downloads (Beta)", + "enable_downloads_desc": "Mostrar aba Downloads e permitir guardar streams", + "notifications": "Notificações", + "notifications_desc": "Lembretes de episódios", + "test_onboarding": "Testar Onboarding", + "reset_onboarding": "Resetar Onboarding", + "test_announcement": "Testar Anúncio", + "test_announcement_desc": "Mostrar sobreposição de novidades", + "reset_campaigns": "Resetar Campanhas", + "reset_campaigns_desc": "Limpar impressões de campanhas", + "clear_all_data": "Limpar Todos os Dados", + "clear_all_data_desc": "Resetar todas as configurações e cache" + }, + "options": { + "horizontal": "Horizontal", + "vertical": "Vertical", + "internal_first": "Embutidas Primeiro", + "internal_first_desc": "Preferir legendas embutidas, depois externas", + "external_first": "Embutidas Primeiro", + "external_first_desc": "Preferir legendas de addons, depois embutidas", + "any_available": "Qualquer Disponível", + "any_available_desc": "Usar primeira legenda disponível" + }, + "clear_data_desc": "Isso redefinirá todas as configurações e limpará todos os dados em cache. Tens a certeza?", + "app_updates": "Atualizações da App", + "about_nuvio": "Sobre o Nuvio" + }, + "ai_settings": { + "title": "Assistente IA", + "info_title": "Chat com IA", + "info_desc": "Faz perguntas sobre qualquer filme ou episódio com IA avançada. Obtém informações sobre enredo, personagens, temas, curiosidades e muito mais - tudo alimentado por dados abrangentes do TMDB.", + "feature_1": "Contexto e análise específica de episódios", + "feature_2": "Explicações de enredo e informações de personagens", + "feature_3": "Curiosidades e factos de bastidores", + "feature_4": "A tua própria chave gratuita OpenRouter", + "api_key_section": "CHAVE API OPENROUTER", + "api_key_label": "Chave API", + "api_key_desc": "Digita a tua chave OpenRouter para habilitar recursos de chat IA", + "save_api_key": "Guardar Chave API", + "saving": "A guardar...", + "update": "Atualizar", + "remove": "Remover", + "get_free_key": "Obter Chave Gratuita no OpenRouter", + "enable_chat": "Habilitar Chat IA", + "enable_chat_desc": "Quando habilitado, o botão Perguntar IA aparecerá nas páginas de conteúdo.", + "chat_enabled": "Chat IA Habilitado", + "chat_enabled_desc": "Agora podes fazer perguntas sobre filmes e séries. Procura o botão \"Perguntar IA\" nas páginas de conteúdo!", + "how_it_works": "Como funciona", + "how_it_works_desc": "• OpenRouter fornece acesso a múltiplos modelos IA\n• A tua chave API permanece privada e segura\n• Camada gratuita inclui limites generosos de uso\n• Chat com contexto sobre episódios/filmes específicos\n• Obtém análises detalhadas e explicações", + "error_invalid_key": "Por favor, digita uma chave API válida", + "error_key_format": "Chaves API OpenRouter devem começar com \"sk-or-\"", + "success_saved": "Chave API OpenRouter guardada com sucesso!", + "error_save": "Falha ao guardar chave API", + "confirm_remove_title": "Remover Chave API", + "confirm_remove_msg": "Tens a certeza que desejas remover a tua chave API OpenRouter? Isso desativará os recursos de chat IA.", + "success_removed": "Chave API removida com sucesso", + "error_remove": "Falha ao remover chave API" + }, + "catalog_settings": { + "title": "Catálogos", + "layout_phone": "LAYOUT DE CATÁLOGOS (CELULAR)", + "posters_per_row": "Pósteres por linha", + "auto": "Auto", + "show_titles": "Mostrar Títulos", + "show_titles_desc": "Exibir título abaixo de cada póster", + "phone_only_hint": "Aplica-se apenas a telemóveis. Tablets mantêm layout adaptativo.", + "catalogs_group": "Catálogos", + "enabled_count": "{{enabled}} de {{total}} habilitados", + "rename_hint": "Pressiona e segura um catálogo para renomear", + "rename_modal_title": "Renomear Catálogo", + "rename_placeholder": "Digita o novo nome do catálogo", + "error_save_name": "Não foi possível guardar o nome personalizado." + }, + "continue_watching_settings": { + "title": "Continuar a Assistir", + "playback_behavior": "COMPORTAMENTO DE REPRODUÇÃO", + "use_cached": "Usar Streams em Cache", + "use_cached_desc": "Quando ativo, clicar em itens de Continuar a Assistir abrirá o reprodutor diretamente usando streams reproduzidos anteriormente. Quando desativo, abre uma tela de conteúdo.", + "open_metadata": "Abrir Tela de Metadados", + "open_metadata_desc": "Quando streams em cache estão desativados, abre a tela de Metadados em vez da tela de Streams. Isso mostra detalhes do conteúdo e permite seleção manual de streams.", + "card_appearance": "APARÊNCIA DO CARD", + "card_style": "Estilo do Card", + "card_style_desc": "Escolhe como os itens de Continuar a Assistir aparecem no Início", + "wide": "Largura", + "poster": "Póster", + "cache_settings": "CONFIGURAÇÕES DE CACHE", + "cache_duration": "Duração do Cache de Stream", + "cache_duration_desc": "Por quanto tempo manter links de stream em cache antes de expirarem", + "important_note": "Nota Importante", + "important_note_text": "Nem todos os links de stream permanecem ativos por toda a duração do cache. Tempos de cache mais longos podem resultar em links expirados. Se um link em cache falhar, a procurará novos streams.", + "how_it_works": "Como funciona", + "how_it_works_cached": "• Streams são armazenados em cache pela duração selecionada após a reprodução\n• Streams em cache são validados antes do uso\n• Se o cache for inválido ou expirado, volta para a tela de conteúdo\n• \"Usar Streams em Cache\" controla reprodutores direto vs navegação de tela\n• \"Abrir Tela de Metadados\" aparece apenas quando streams em cache estão desativados", + "how_it_works_uncached": "• Quando streams em cache estão desativados, clicar em itens de Continuar a Assistir abre telas de conteúdo\n• A opção \"Abrir Tela de Metadados\" controla qual tela abrir\n• A tela de Metadados mostra detalhes do conteúdo e permite seleção manual de streams\n• A tela de Streams mostra streams disponíveis para reprodução imediata", + "changes_saved": "Alterações guardadas", + "min": "min", + "hour": "hora", + "sponsor_desc": "Patrocinou a infraestrutura do servidor para o Nuvio", + "mod_role": "Moderador do Discord", + "mod_desc": "Ajuda a moderar a comunidade do Nuvio no Discord", + "loading": "A carregar...", + "discord_user": "Usuário do Discord", + "contributions": "contribuições", + "gratitude_title": "Somos gratos por cada contribuição", + "gratitude_desc": "Cada linha de código, relatório de bug e sugestão ajuda a tornar o Nuvio melhor para todos", + "special_thanks_title": "Agradecimentos Especiais", + "special_thanks_desc": "Essas pessoas incríveis ajudam a manter a comunidade Nuvio a funcionar e os servidores online", + "error_rate_limit": "Limite de taxa da API do GitHub excedido. Tenta novamente mais tarde.", + "error_failed": "Falha ao carregar colaboradores. Verifica a tua conexão com a internet.", + "retry": "Tentar Novamente", + "no_contributors": "Nenhum colaborador encontrado", + "loading_contributors": "A carregar colaboradores..." + }, + "debrid": { + "title": "Integração Debrid", + "description_torbox": "Desbloqueia streams 4K de alta qualidade e velocidades ultra-rápidas integrando o Torbox. Insere a tua chave API abaixo para atualizar instantaneamente a tua experiência de streaming.", + "description_torrentio": "Configura o Torrentio para obter streams de torrent para filmes e séries. Um serviço debrid é necessário para transmitir conteúdo.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Conectado", + "status_disconnected": "Desconectado", + "enable_addon": "Ativar Addon", + "disconnect_button": "Desconectar e Remover", + "disconnect_loading": "A desconectar...", + "account_info": "Informações da Conta", + "plan": "Plano", + "plan_free": "Grátis", + "plan_essential": "Essencial ($3/mês)", + "plan_pro": "Pro ($10/mês)", + "plan_standard": "Padrão ($5/mês)", + "plan_unknown": "Desconhecido", + "expires": "Expira em", + "downloaded": "Descarregado", + "status_active": "Ativo", + "connected_title": "✓ Conectado ao TorBox", + "connected_desc": "O teu addon TorBox está ativo e a fornecer streams premium.", + "configure_title": "Configurar Addon", + "configure_desc": "Personaliza a tua experiência. Ordena por qualidade, filtre tamanhos de arquivo e gerencia outras configurações.", + "open_settings": "Abrir Configurações", + "what_is_debrid": "O que é um Serviço Debrid?", + "enter_api_key": "Insere a tua Chave API", + "connect_button": "Conectar e Instalar", + "connecting": "A conectar...", + "unlock_speeds_title": "Velocidades Premium", + "unlock_speeds_desc": "Subscreve o Torbox para acessar streams em cache de alta qualidade com zero buffering.", + "get_subscription": "Obter Subscrição", + "powered_by": "Desenvolvido por", + "disclaimer_torbox": "O Nuvio não é afiliado ao Torbox de nenhuma forma.", + "disclaimer_torrentio": "O Nuvio não é afiliado ao Torrentio de nenhuma forma.", + "installed_badge": "✓ INSTALADO", + "promo_title": "⚡ Precisas de um Serviço Debrid?", + "promo_desc": "Obtém o TorBox para streaming 4K ultra-rápido com zero buffering. Torrents em cache premium e downloads instantâneos.", + "promo_button": "Subscrever TorBox", + "service_label": "Serviço Debrid *", + "api_key_label": "Chave API *", + "sorting_label": "Ordenar", + "exclude_qualities": "Excluir Qualidades", + "priority_languages": "Idiomas Prioritários", + "max_results": "Máx. Resultados", + "additional_options": "Opções Adicionais", + "no_download_links": "Não mostrar links de download", + "no_debrid_catalog": "Não mostrar catálogo debrid", + "install_button": "Instalar Torrentio", + "installing": "A instalar...", + "update_button": "Atualizar Configurações", + "updating": "A atualizar...", + "remove_button": "Remover Torrentio", + "error_api_required": "Chave API Necessária", + "error_api_required_desc": "Insere a chave API do teu serviço debrid para instalar o Torrentio.", + "success_installed": "Addon Torrentio instalado com sucesso!", + "success_removed": "Addon Torrentio removido com sucesso", + "alert_disconnect_title": "Desconectar Torbox", + "alert_disconnect_msg": "Tens a certeza que desejas desconectar o Torbox? Isso removerá o addon e limpará a tua chave API guardada." + }, + "home_screen": { + "title": "Configurações do Início", + "changes_applied": "Alterações Aplicadas", + "display_options": "OPÇÕES DE EXIBIÇÃO", + "show_hero": "Mostrar Secção Hero", + "show_hero_desc": "Conteúdo em destaque no topo", + "show_this_week": "Mostrar Secção Esta Semana", + "show_this_week_desc": "Novos episódios da semana atual", + "select_catalogs": "Selecionar Catálogos", + "all_catalogs": "Todos os catálogos", + "selected": "selecionados", + "hero_layout": "Layout do Hero", + "layout_legacy": "Legado", + "layout_carousel": "Carrossel", + "layout_appletv": "Apple TV", + "layout_desc": "Banner largura total, cartões deslizantes ou estilo Apple TV", + "featured_source": "Fonte de Destaques", + "using_catalogs": "A Usar Catálogos", + "manage_selected_catalogs": "Gerir catálogos selecionados", + "dynamic_bg": "Fundo Hero Dinâmico", + "dynamic_bg_desc": "Banner desfocado atrás do carrossel", + "performance_note": "Pode impactar o desempenho em dispositivos mais lentos.", + "posters": "Pósteres", + "show_titles": "Mostrar Títulos", + "poster_size": "Tamanho do Póster", + "poster_corners": "Cantos do Póster", + "size_small": "Pequeno", + "size_medium": "Médio", + "size_large": "Grande", + "corners_square": "Quadrado", + "corners_rounded": "Arredondado", + "corners_pill": "Pílula", + "about_these_settings": "SOBRE ESTAS CONFIGURAÇÕES", + "about_desc": "Estas configurações controlam como o conteúdo é exibido no Início. As alterações são aplicadas imediatamente sem reiniciar a app.", + "hero_catalogs": { + "title": "Catálogos da Secção Hero", + "select_all": "Selecionar Tudo", + "clear_all": "Limpar Tudo", + "info": "Seleciona quais catálogos exibir na secção hero. Se nenhum for selecionado, todos os catálogos serão usados. Não se esqueça de pressionar Guardar quando terminar.", + "settings_saved": "Configurações Guardadas", + "error_load": "Falha ao carregar catálogos", + "movies": "Filmes", + "tv_shows": "Séries e TV" + } + }, + "calendar": { + "title": "Calendário", + "loading": "A carregar calendário...", + "no_scheduled_episodes": "Sem episódios agendados", + "check_back_later": "Volta mais tarde", + "showing_episodes_for": "A mostrar episódios para {{date}}", + "show_all_episodes": "Mostrar Todos os Episódios", + "no_episodes_for": "Nenhum episódio para {{date}}", + "no_upcoming_found": "Nenhum episódio futuro encontrado", + "add_series_desc": "Adiciona séries à tua biblioteca para ver os próximos episódios aqui" + }, + "mdblist": { + "title": "Fontes de Avaliação", + "status_disabled": "MDBList Desativado", + "status_active": "Chave de API Ativa", + "status_required": "Chave de API Necessária", + "status_disabled_desc": "A funcionalidade MDBList está atualmente desativada.", + "status_active_desc": "As avaliações do MDBList estão ativadas.", + "status_required_desc": "Adiciona tua chave abaixo para ativar as avaliações.", + "enable_toggle": "Ativar MDBList", + "enable_toggle_desc": "Ligar/desligar toda a funcionalidade do MDBList", + "api_section": "Chave de API", + "placeholder": "Cola a tua chave de API MDBList", + "save": "Guardar", + "clear": "Limpar Chave", + "rating_providers": "Provedores de Avaliação", + "rating_providers_desc": "Escolhe quais avaliações exibir no aplicativo", + "how_to": "Como obter uma chave de API", + "step_1": "Faz login no", + "step_1_link": "site do MDBList", + "step_2": "Vá para a secção", + "step_2_settings": "Configurações", + "step_2_api": "API", + "step_2_end": ".", + "step_3": "Gere uma nova chave e copia-a.", + "go_to_website": "Ir para o MDBList", + "alert_clear_title": "Limpar Chave de API", + "alert_clear_msg": "Tens a certeza de que desejas remover a chave de API guardada?", + "success_saved": "Chave de API guardada com sucesso.", + "error_empty": "Chave API não pode estar vazia.", + "error_save": "Ocorreu um erro ao guardar. Por favor, tenta novamente.", + "api_key_empty_error": "A Chave de API não pode estar vazia.", + "success_cleared": "Chave de API limpa com sucesso", + "error_clear": "Falha ao limpar a chave de API" + }, + "notification": { + "title": "Configurações de Notificações", + "section_general": "Geral", + "enable_notifications": "Ativar Notificações", + "section_types": "Tipos de Notificação", + "new_episodes": "Novos Episódios", + "upcoming_shows": "Próximas Séries", + "reminders": "Lembretes", + "section_timing": "Tempo de Notificação", + "timing_desc": "Quanto tempo antes de um episódio ser exibido deves ser notificado?", + "hours_1": "1 hora", + "hours_suffix": "horas", + "section_status": "Estado da Notificação", + "stats_upcoming": "Próximos", + "stats_this_week": "Esta Semana", + "stats_total": "Total", + "sync_button": "Sincronizar Biblioteca e Trakt", + "syncing": "A sincronizar...", + "sync_desc": "Sincroniza automaticamente notificações para todos os programas na tua biblioteca e listas do Trakt.", + "section_advanced": "Avançado", + "reset_button": "Redefinir Todas as Notificações", + "test_button": "Notificação de Teste (5 seg)", + "test_notification_in": "Notificação em {{seconds}}s...", + "test_notification_text": "A notificação aparecerá em {{seconds}} segundos", + "alert_reset_title": "Redefinir Notificações", + "alert_reset_msg": "Isso cancelará todas as notificações agendadas, mas não removerá nada da tua biblioteca guardada. Tens a certeza?", + "alert_reset_success": "Todas as notificações foram redefinidas", + "alert_sync_complete": "Sincronização Completa", + "alert_sync_msg": "Notificações sincronizadas com sucesso para a tua biblioteca e itens do Trakt.\n\nAgendadas: {{upcoming}} próximos episódios\nEsta semana: {{thisWeek}} episódios", + "alert_test_scheduled": "Notificação de teste agendada para ser acionada instantaneamente" + }, + "player": { + "title": "Reprodutor", + "section_selection": "SELEÇÃO DE REPRODUTOR", + "internal_title": "Reprodutor Integrado", + "internal_desc": "Usar o reprodutor de vídeo padrão do aplicativo", + "vlc_title": "VLC", + "vlc_desc": "Abrir streams no reprodutor de mídia VLC", + "infuse_title": "Infuse", + "infuse_desc": "Abrir streams no reprodutor Infuse", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Abrir streams no OutPlayer", + "vidhub_title": "VidHub", + "vidhub_desc": "Abrir streams no reprodutor VidHub", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Abrir streams no reprodutor Infuse LiveContainer", + "external_title": "Reprodutor Externo", + "external_desc": "Abrir streams no teu reprodutor de vídeo preferido", + "section_playback": "OPÇÕES DE REPRODUÇÃO", + "autoplay_title": "Reprodução Automática (Melhor Stream)", + "autoplay_desc": "Iniciar automaticamente o stream de melhor qualidade disponível.", + "resume_title": "Sempre Retomar", + "resume_desc": "Saltar o aviso de retomar e continuar automaticamente de onde parou (se assistido menos de 85%).", + "engine_title": "Motor do reprodutor", + "engine_desc": "Escolhe o motor de reprodução de vídeo subjacente (apenas Android)", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV como reserva", + "option_mpv": "MPV", + "option_mpv_desc": "Apenas MPV", + "option_auto_desc_decoder": "Melhor equilíbrio", + "option_sw": "SW", + "option_sw_desc": "Software", + "option_hw": "HW", + "option_hw_desc": "Hardware", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "HW Completo", + "option_gpu_desc": "Padrão", + "option_gpu_next_desc": "Avançado", + "decoder_title": "Modo Decodificador", + "decoder_desc": "Como o vídeo é decodificado. Auto é recomendado para melhor equilíbrio.", + "gpu_title": "Renderização GPU", + "gpu_desc": "GPU-Next oferece melhor HDR e gerenciamento de cores.", + "external_downloads_title": "Reprodutor Externo para Downloads", + "external_downloads_desc": "Reproduzir conteúdo descarregado no teu reprodutor externo preferido.", + "restart_required": "Reinicialização Necessária" + }, + "backup": { + "title": "Backup e Restauração", + "options_title": "Opções de Backup", + "options_desc": "Escolhe o que incluir nos teus backups", + "section_core": "Dados Principais", + "section_addons": "Addons e Integrações", + "section_settings": "Configurações e Preferências", + "library_label": "Biblioteca", + "library_desc": "Os teus filmes e séries guardados", + "watch_progress_label": "Progresso Assistido", + "watch_progress_desc": "Posição de continuar a assistir", + "addons_label": "Addons", + "addons_desc": "Addons Stremio instalados", + "plugins_label": "Plugins", + "plugins_desc": "Configurações de scraper personalizadas", + "trakt_label": "Integração Trakt", + "trakt_desc": "Dados de sincronização e tokens de autenticação", + "app_settings_label": "Configurações do App", + "app_settings_desc": "Tema, preferências e configurações", + "user_prefs_label": "Preferências do Usuário", + "user_prefs_desc": "Ordem de addons e configurações de UI", + "catalog_settings_label": "Configurações de Catálogo", + "catalog_settings_desc": "Filtros e preferências de catálogo", + "api_keys_label": "Chaves API", + "api_keys_desc": "Chaves MDBList e OpenRouter", + "action_create": "Criar Backup", + "action_restore": "Restaurar de Backup", + "section_info": "Sobre Backups", + "info_text": "• Personaliza o que é guardado usando as opções acima\n• Arquivos de backup são armazenados localmente no teu dispositivo\n• Partilha o teu backup para transferir dados entre dispositivos\n• Restaurar sobrescreverá os teus dados atuais", + "alert_create_title": "Criar Backup", + "alert_no_content": "Nenhum conteúdo selecionado para backup.\n\nPor favor, ativa pelo menos uma opção na secção Opções de Backup acima.", + "alert_backup_created_title": "Backup Criado", + "alert_backup_created_msg": "O teu backup foi criado e está pronto para ser partilhado.", + "alert_backup_failed_title": "Falha no Backup", + "alert_restore_confirm_title": "Confirmar Restauração", + "alert_restore_confirm_msg": "Isso restaurará os teus dados de um backup criado em {{date}}.\n\nEsta ação sobrescreverá os teus dados atuais. Tens a certeza de que desejas continuar?", + "alert_restore_complete_title": "Restauração Completa", + "alert_restore_complete_msg": "Os teus dados foram restaurados com sucesso. Por favor, reinicia o aplicativo para ver todas as alterações.", + "alert_restore_failed_title": "Falha na Restauração", + "restart_app": "Reiniciar App", + "alert_restart_failed_title": "Falha ao Reiniciar", + "alert_restart_failed_msg": "Falha ao reiniciar o aplicativo. Por favor, fecha e reabre o aplicativo manualmente para ver teus dados restaurados." + }, + "updates": { + "title": "Atualizações do App", + "status_checking": "A verficar atualizações...", + "status_available": "Atualização disponível!", + "status_downloading": "A descarregar atualização...", + "status_installing": "A instalar atualização...", + "status_success": "Atualização instalada com sucesso!", + "status_error": "Falha na atualização", + "status_ready": "Pronto para verificar atualizações", + "action_check": "Verificar Atualizações", + "action_install": "Instalar Atualização", + "release_notes": "Notas de lançamento:", + "version": "Versão:", + "last_checked": "Última verificação:", + "current_version": "Versão atual:", + "current_release_notes": "Notas da versão atual:", + "github_release": "LANÇAMENTO GITHUB", + "current": "Atual:", + "latest": "Mais recente:", + "notes": "Notas:", + "view_release": "Ver Lançamento", + "notification_settings": "CONFIGURAÇÕES DE NOTIFICAÇÃO", + "ota_alerts_label": "Alertas de Atualização OTA", + "ota_alerts_desc": "Mostrar notificações para atualizações over-the-air", + "major_alerts_label": "Alertas de Grande Atualização", + "major_alerts_desc": "Mostrar notificações para novas versões do aplicativo no GitHub", + "alert_disable_ota_title": "Desativar Alertas de Atualização OTA?", + "alert_disable_ota_msg": "Não receberás mais notificações automáticas para atualizações OTA.\n\n⚠️ Aviso: Manter-se na versão mais recente é importante para:\n• Correções de bugs e melhorias de estabilidade\n• Novos recursos e aprimoramentos\n• Fornecer feedback preciso e relatórios de falhas\n\nAinda podes verificar atualizações manualmente nesta página.", + "alert_disable_major_title": "Desativar Alertas de Grande Atualização?", + "alert_disable_major_msg": "Não receberás mais notificações para grandes atualizações do aplicativo que exigem reinstalação.\n\n⚠️ Aviso: Grandes atualizações geralmente incluem:\n• Patches de segurança críticos\n• Mudanças que quebram compatibilidade e exigem reinstalação do aplicativo\n• Correções de compatibilidade importantes\n\nAinda podes verificar atualizações manualmente.", + "warning_note": "Manter alertas ativados garante que recebas correções de bugs e possa fornecer relatórios de falhas precisos.", + "disable": "Desativar", + "alert_no_update_to_install": "Nenhuma atualização disponível para instalar", + "alert_install_failed": "Falha ao instalar atualização", + "alert_no_update_title": "Sem Atualização", + "alert_update_applied_msg": "A atualização será aplicada na próxima reinicialização" + }, + "plugins": { + "title": "Extensões", + "enable_title": "Ativar Extensões", + "enable_desc": "Permite que o aplicativo use extensões instaladas para pesquisar fontes de mídia", + "repo_config_title": "Configuração do Repositório", + "repo_config_desc": "Gere repositórios de extensões externos. Ativa ou desativa cada um abaixo.", + "your_repos": "Repositórios", + "your_repos_desc": "Configura fontes externas para extensões.", + "add_repo_button": "Adicionar Repositório", + "refresh": "Atualizar", + "remove": "Remover", + "enabled": "Ativado", + "disabled": "Desativado", + "updating": "A atualizar...", + "success": "Sucesso", + "error": "Erro", + "alert_repo_added": "Repositório adicionado e extensões carregadas com sucesso", + "alert_repo_saved": "URL do repositório guardado com sucesso", + "alert_repo_refreshed": "Repositório atualizado com sucesso", + "alert_invalid_url": "Formato de URL inválido", + "alert_plugins_cleared": "Todas as extensões foram removidas", + "alert_cache_cleared": "Cache do repositório limpo com sucesso", + "unknown": "Desconhecido", + "active": "Ativo", + "available": "Disponível", + "platform_disabled": "Desativado pela plataforma", + "limited": "Limitado", + "clear_all": "Limpar todas as extensões", + "clear_all_desc": "Tens a certeza de que desejas remover todas as extensões instaladas? Esta ação não pode ser desfeita.", + "clear_cache": "Limpar cache do repositório", + "clear_cache_desc": "Isso removerá a URL guardado e limpará todos os dados de extensões em cache.", + "add_new_repo": "Adicionar Novo Repositório", + "available_plugins": "Extensões Disponíveis ({{count}})", + "placeholder": "Pesquisar extensões...", + "all": "Tudo", + "filter_all": "Todos os Tipos", + "filter_movies": "Filmes", + "filter_tv": "Séries de TV", + "enable_all": "Ativar Tudo", + "disable_all": "Desativar Tudo", + "no_plugins_found": "Nenhuma extensão encontrada", + "no_plugins_available": "Nenhuma extensão disponível", + "no_match_desc": "Nenhuma extensão corresponde a \"{{query}}\".", + "configure_repo_desc": "Configura um repositório acima para ver as extensões disponíveis.", + "clear_search": "Limpar Pesquisar", + "no_external_player": "Sem reprodutor externo", + "showbox_token": "Token de UI do ShowBox", + "showbox_placeholder": "Cola o teu token de UI do ShowBox", + "save": "Guardar", + "clear": "Limpar", + "additional_settings": "Configurações Adicionais", + "enable_url_validation": "Ativar Validação de URL", + "url_validation_desc": "Validar URLs de mídia antes de retorná-las (pode ser mais lento, mas melhora a confiabilidade)", + "group_streams": "Agrupar Fontes de Extensões", + "group_streams_desc": "Quando ativado, as fontes são agrupadas por repositório. Quando desativado, cada extensão aparece como um provedor separado.", + "sort_quality": "Ordenar por Qualidade", + "sort_quality_desc": "Quando ativado, as fontes são ordenadas primeiro por qualidade.", + "show_logos": "Mostrar Logos", + "show_logos_desc": "Exibir logos das extensões ao lado dos links de mídia.", + "quality_filtering": "Filtragem de Qualidade", + "quality_filtering_desc": "Excluir resoluções específicas dos resultados. Toque numa qualidade para removê-la das extensões.", + "excluded_qualities": "Qualidades excluídas:", + "language_filtering": "Filtragem de Idioma", + "language_filtering_desc": "Excluir idiomas específicos dos resultados. Toque num idioma para removê-lo das extensões.", + "note": "Nota:", + "language_filtering_note": "Este filtro aplica-se apenas a provedores que incluem informações de idioma.", + "excluded_languages": "Idiomas excluídos:", + "about_title": "Sobre Extensões", + "about_desc_1": "Extensões são módulos que adaptam conteúdo de vários protocolos externos. Elas rodam localmente e são instaladas de repositórios confiáveis.", + "about_desc_2": "Extensões marcadas como \"Limitadas\" podem exigir configurações externas específicas.", + "help_title": "Configuração de Extensões", + "help_step_1": "1. **Ativar Extensões** - Liga o interruptor principal", + "help_step_2": "2. **Adicionar Repositório** - Adiciona uma URL de repositório válida", + "help_step_3": "3. **Atualizar Repositório** - Descarrega extensões disponíveis", + "help_step_4": "4. **Ativar** - Ativa as extensões que deseja usar", + "got_it": "Entendi!", + "repo_format_hint": "Formato: https://raw.githubusercontent.com/usuario/repo/branch", + "cancel": "Cancelar", + "add": "Adicionar" + }, + "theme": { + "title": "Temas do App", + "select_theme": "SELECIONAR TEMA", + "create_custom": "Criar Tema Personalizado", + "options": "OPÇÕES", + "use_dominant_color": "Usar Cor Dominante da Arte", + "categories": { + "all": "Todos os Temas", + "dark": "Temas Escuros", + "colorful": "Coloridos", + "custom": "Os meus Temas" + }, + "editor": { + "theme_name_placeholder": "Nome do tema", + "save": "Guardar", + "primary": "Primário", + "secondary": "Secundário", + "background": "Fundo", + "invalid_name_title": "Nome Inválido", + "invalid_name_msg": "Por favor insere um nome válido" + }, + "alerts": { + "delete_title": "Excluir Tema", + "delete_msg": "Tens a certeza que desejas excluir \"{{name}}\"?", + "ok": "OK", + "delete": "Excluir", + "cancel": "Cancelar", + "back": "Configurações" + } + }, + "legal": { + "title": "Aviso Legal", + "intro_title": "Natureza da Aplicação", + "intro_text": "O Nuvio é um reprodutor de mídia e aplicativo de gerenciamento de metadados. Atua apenas como uma interface do lado do cliente para navegar por metadados disponíveis publicamente (filmes, programas de TV, etc.) e reproduzir arquivos de mídia fornecidos pelo usuário ou extensões de terceiros. O Nuvio em si não hospeda, armazena, distribui ou indexa qualquer conteúdo de mídia.", + "extensions_title": "Extensões de Terceiros", + "extensions_text": "O Nuvio usa uma arquitetura extensível que permite aos usuários instalar plugins de terceiros (extensões). Essas extensões são desenvolvidas e mantidas por desenvolvedores independentes não afiliados ao Nuvio. Não temos controle sobre, e não assumimos responsabilidade por, o conteúdo, legalidade ou funcionalidade de qualquer extensão de terceiros.", + "user_resp_title": "Responsabilidade do Usuário", + "user_resp_text": "Os usuários são os únicos responsáveis pelas extensões que instalam e pelo conteúdo que acessam. Ao usar este aplicativo, você concorda em garantir que tem o direito legal de acessar qualquer conteúdo que visualizar usando o Nuvio. Os desenvolvedores do Nuvio não endossam ou incentivam a violação de direitos autorais.", + "dmca_title": "Direitos Autorais e DMCA", + "dmca_text": "Respeitamos os direitos de propriedade intelectual de terceiros. Como o Nuvio não hospeda nenhum conteúdo, não podemos remover conteúdo da internet. No entanto, se você acredita que a interface do aplicativo em si infringe seus direitos, entre em contato conosco.", + "warranty_title": "Sem Garantia", + "warranty_text": "Este software é fornecido \"como está\", sem garantia de qualquer tipo, expressa ou implícita. Em nenhum caso os autores ou detentores de direitos autorais serão responsáveis por qualquer reclamação, danos ou outra responsabilidade decorrente do uso deste software." + } +} \ No newline at end of file diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index bb8c4e5..43c7af6 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -1,15 +1,19 @@ import en from './locales/en.json'; -import pt from './locales/pt.json'; +import ptBR from './locales/pt-BR.json'; +import ptPT from './locales/pt-PT.json'; import ar from './locales/ar.json'; import es from './locales/es.json'; import fr from './locales/fr.json'; import it from './locales/it.json'; +import de from './locales/de.json'; export const resources = { en: { translation: en }, - pt: { translation: pt }, + 'pt-BR': { translation: ptBR }, + 'pt-PT': { translation: ptPT }, ar: { translation: ar }, es: { translation: es }, fr: { translation: fr }, it: { translation: it }, + de: { translation: de }, }; diff --git a/src/screens/SettingsScreen.tsx b/src/screens/SettingsScreen.tsx index 45f10c3..35c42da 100644 --- a/src/screens/SettingsScreen.tsx +++ b/src/screens/SettingsScreen.tsx @@ -14,7 +14,7 @@ import { Linking, FlatList, } from 'react-native'; -import { BottomSheetModal, BottomSheetView, BottomSheetBackdrop } from '@gorhom/bottom-sheet'; +import { BottomSheetModal, BottomSheetView, BottomSheetBackdrop, BottomSheetScrollView } from '@gorhom/bottom-sheet'; import { useTranslation } from 'react-i18next'; import { mmkvStorage } from '../services/mmkvStorage'; import { useNavigation } from '@react-navigation/native'; @@ -601,12 +601,14 @@ const SettingsScreen: React.FC = () => { } @@ -830,7 +832,7 @@ const SettingsScreen: React.FC = () => { { width: 40, }} > - - - - {t('settings.select_language')} - - languageSheetRef.current?.close()}> - - - - + + {t('settings.select_language')} + + languageSheetRef.current?.close()}> + + + + + { + i18n.changeLanguage('en'); + languageSheetRef.current?.close(); + }} > - { - i18n.changeLanguage('en'); - languageSheetRef.current?.close(); - }} - > - - {t('settings.english')} - - {i18n.language === 'en' && ( - - )} - + + {t('settings.english')} + + {i18n.language === 'en' && ( + + )} + - { - i18n.changeLanguage('pt'); - languageSheetRef.current?.close(); - }} - > - - {t('settings.portuguese')} - - {i18n.language === 'pt' && ( - - )} - + { + i18n.changeLanguage('pt-BR'); + languageSheetRef.current?.close(); + }} + > + + {t('settings.portuguese_br')} + + {i18n.language === 'pt-BR' && ( + + )} + - { - i18n.changeLanguage('ar'); - languageSheetRef.current?.close(); - }} - > - - {t('settings.arabic')} - - {i18n.language === 'ar' && ( - - )} - + { + i18n.changeLanguage('pt-PT'); + languageSheetRef.current?.close(); + }} + > + + {t('settings.portuguese_pt')} + + {i18n.language === 'pt-PT' && ( + + )} + - { - i18n.changeLanguage('es'); - languageSheetRef.current?.close(); - }} - > - - {t('settings.spanish')} - - {i18n.language === 'es' && ( - - )} - + { + i18n.changeLanguage('de'); + languageSheetRef.current?.close(); + }} + > + + {t('settings.german')} + + {i18n.language === 'de' && ( + + )} + - { - i18n.changeLanguage('fr'); - languageSheetRef.current?.close(); - }} - > - - {t('settings.french')} - - {i18n.language === 'fr' && ( - - )} - + { + i18n.changeLanguage('ar'); + languageSheetRef.current?.close(); + }} + > + + {t('settings.arabic')} + + {i18n.language === 'ar' && ( + + )} + - { - i18n.changeLanguage('it'); - languageSheetRef.current?.close(); - }} - > - - {t('settings.italian')} - - {i18n.language === 'it' && ( - - )} - - - + { + i18n.changeLanguage('es'); + languageSheetRef.current?.close(); + }} + > + + {t('settings.spanish')} + + {i18n.language === 'es' && ( + + )} + + + { + i18n.changeLanguage('fr'); + languageSheetRef.current?.close(); + }} + > + + {t('settings.french')} + + {i18n.language === 'fr' && ( + + )} + + + { + i18n.changeLanguage('it'); + languageSheetRef.current?.close(); + }} + > + + {t('settings.italian')} + + {i18n.language === 'it' && ( + + )} + + );