From 94502b558d19a6bf73762c69131847881c45913b Mon Sep 17 00:00:00 2001 From: Mustafa <104644957+Blacks-Army@users.noreply.github.com> Date: Sun, 2 Feb 2025 09:18:15 +0100 Subject: [PATCH] feat: Add German Translation DE (#477) --- i18n.ts | 3 + translations/de.json | 457 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 460 insertions(+) create mode 100644 translations/de.json diff --git a/i18n.ts b/i18n.ts index 96213192..4a753152 100644 --- a/i18n.ts +++ b/i18n.ts @@ -1,6 +1,7 @@ import i18n from "i18next"; import { initReactI18next } from "react-i18next"; +import de from "./translations/de.json"; import en from "./translations/en.json"; import es from "./translations/es.json"; import fr from "./translations/fr.json"; @@ -8,6 +9,7 @@ import sv from "./translations/sv.json"; import { getLocales } from "expo-localization"; export const APP_LANGUAGES = [ + { label: "Deutsch", value: "de" }, { label: "English", value: "en" }, { label: "Español", value: "es" }, { label: "Français", value: "fr" }, @@ -17,6 +19,7 @@ export const APP_LANGUAGES = [ i18n.use(initReactI18next).init({ compatibilityJSON: "v4", resources: { + de: { translation: de }, en: { translation: en }, es: { translation: es }, fr: { translation: fr }, diff --git a/translations/de.json b/translations/de.json new file mode 100644 index 00000000..5e7827c1 --- /dev/null +++ b/translations/de.json @@ -0,0 +1,457 @@ +{ + "login": { + "username_required": "Benutzername ist erforderlich", + "error_title": "Fehler", + "login_title": "Anmelden", + "login_to_title": "Anmelden bei", + "username_placeholder": "Benutzername", + "password_placeholder": "Passwort", + "login_button": "Anmelden", + "quick_connect": "Schnellverbindung", + "enter_code_to_login": "Gib den Code {{code}} ein, um dich anzumelden", + "failed_to_initiate_quick_connect": "Fehler beim Initiieren der Schnellverbindung", + "got_it": "Verstanden", + "connection_failed": "Verbindung fehlgeschlagen", + "could_not_connect_to_server": "Verbindung zum Server fehlgeschlagen. Bitte überprüf die URL und deine Netzwerkverbindung.", + "an_unexpected_error_occured": "Ein unerwarteter Fehler ist aufgetreten", + "change_server": "Server wechseln", + "invalid_username_or_password": "Ungültiger Benutzername oder Passwort", + "user_does_not_have_permission_to_log_in": "Benutzer hat keine Berechtigung, um sich anzumelden", + "server_is_taking_too_long_to_respond_try_again_later": "Der Server benötigt zu lange, um zu antworten. Bitte versuch es später erneut.", + "server_received_too_many_requests_try_again_later": "Der Server hat zu viele Anfragen erhalten. Bitte versuch es später erneut.", + "there_is_a_server_error": "Es gibt einen Serverfehler", + "an_unexpected_error_occured_did_you_enter_the_correct_url": "Ein unerwarteter Fehler ist aufgetreten. Hast du die Server-URL korrekt eingegeben?" + }, + "server": { + "enter_url_to_jellyfin_server": "Gib die URL zu deinem Jellyfin-Server ein", + "server_url_placeholder": "http(s)://dein-server.de", + "connect_button": "Verbinden", + "previous_servers": "Vorherige Server", + "clear_button": "Löschen", + "search_for_local_servers": "Nach lokalen Servern suchen", + "searching": "Suche...", + "servers": "Server" + }, + "home": { + "no_internet": "Kein Internet", + "no_items": "Keine Elemente", + "no_internet_message": "Keine Sorge, du kannst immer noch heruntergeladene Inhalte ansehen.", + "go_to_downloads": "Gehe zu den Downloads", + "oops": "Ups!", + "error_message": "Etwas ist schiefgelaufen.\nBitte melde dich ab und wieder an.", + "continue_watching": "Weiterschauen", + "next_up": "Als nächstes", + "recently_added_in": "Kürzlich hinzugefügt in {{libraryName}}", + "suggested_movies": "Empfohlene Filme", + "suggested_episodes": "Empfohlene Episoden", + "intro": { + "welcome_to_streamyfin": "Willkommen bei Streamyfin", + "a_free_and_open_source_client_for_jellyfin": "Ein kostenloser und Open-Source-Client für Jellyfin.", + "features_title": "Features", + "features_description": "Streamyfin hat viele Features und integriert sich mit einer Vielzahl von Software, die du im Einstellungsmenü findest. Dazu gehören:", + "jellyseerr_feature_description": "Verbinde dich mit deiner Jellyseerr-Instanz und frage Filme direkt in der App an.", + "downloads_feature_title": "Downloads", + "downloads_feature_description": "Lade Filme und Serien herunter, um sie offline anzusehen. Nutze entweder die Standardmethode oder installiere den optimierten Server, um Dateien im Hintergrund herunterzuladen.", + "chromecast_feature_description": "Übertrage Filme und Serien auf deine Chromecast-Geräte.", + "centralised_settings_plugin_title": "Zentralisiertes Einstellungs-Plugin", + "centralised_settings_plugin_description": "Konfiguriere Einstellungen an einem zentralen Ort auf deinem Jellyfin-Server. Alle Client-Einstellungen für alle Benutzer werden automatisch synchronisiert.", + "done_button": "Fertig", + "go_to_settings_button": "Gehe zu den Einstellungen", + "read_more": "Mehr Erfahren" + }, + "settings": { + "settings_title": "Einstellungen", + "log_out_button": "Abmelden", + "user_info": { + "user_info_title": "Benutzerinformationen", + "user": "Benutzer", + "server": "Server", + "token": "Token", + "app_version": "App-Version" + }, + "quick_connect": { + "quick_connect_title": "Schnellverbindung", + "authorize_button": "Schnellverbindung autorisieren", + "enter_the_quick_connect_code": "Gib den Schnellverbindungscode ein...", + "success": "Erfolg", + "quick_connect_autorized": "Schnellverbindung autorisiert", + "error": "Fehler", + "invalid_code": "Ungültiger Code", + "authorize": "Autorisieren" + }, + "media_controls": { + "media_controls_title": "Mediensteuerung", + "forward_skip_length": "Vorspulzeit", + "rewind_length": "Rückspulzeit", + "seconds_unit": "s" + }, + "audio": { + "audio_title": "Audio", + "set_audio_track": "Audiospur aus dem vorherigen Element festlegen", + "audio_language": "Audio-Sprache", + "audio_hint": "Wähl die Standardsprache für Audio aus.", + "none": "Keine", + "language": "Sprache" + }, + "subtitles": { + "subtitle_title": "Untertitel", + "subtitle_language": "Untertitel-Sprache", + "subtitle_mode": "Untertitel-Modus", + "set_subtitle_track": "Untertitel-Spur aus dem vorherigen Element festlegen", + "subtitle_size": "Untertitel-Größe", + "subtitle_hint": "Konfigurier die Untertitel-Präferenzen.", + "none": "Keine", + "language": "Sprache", + "loading": "Lädt", + "modes": { + "Default": "Standard", + "Smart": "Smart", + "Always": "Immer", + "None": "Keine", + "OnlyForced": "Nur erzwungen" + } + }, + "other": { + "other_title": "Sonstiges", + "auto_rotate": "Automatische Drehung", + "video_orientation": "Videoausrichtung", + "orientation": "Ausrichtung", + "orientations": { + "DEFAULT": "Standard", + "ALL": "Alle", + "PORTRAIT": "Hochformat", + "PORTRAIT_UP": "Hochformat oben", + "PORTRAIT_DOWN": "Hochformat unten", + "LANDSCAPE": "Querformat", + "LANDSCAPE_LEFT": "Querformat links", + "LANDSCAPE_RIGHT": "Querformat rechts", + "OTHER": "Andere", + "UNKNOWN": "Unbekannt" + }, + "safe_area_in_controls": "Sicherer Bereich in den Steuerungen", + "show_custom_menu_links": "Benutzerdefinierte Menülinks anzeigen", + "hide_libraries": "Bibliotheken ausblenden", + "select_liraries_you_want_to_hide": "Wähl die Bibliotheken aus, die du im Bibliothekstab und auf der Startseite ausblenden möchtest.", + "disable_haptic_feedback": "Haptisches Feedback deaktivieren" + }, + "downloads": { + "downloads_title": "Downloads", + "download_method": "Download-Methode", + "remux_max_download": "Maximaler Remux-Download", + "auto_download": "Automatischer Download", + "optimized_versions_server": "Optimierter Versions-Server", + "save_button": "Speichern", + "optimized_server": "Optimierter Server", + "optimized": "Optimiert", + "default": "Standard", + "optimized_version_hint": "Gib die URL für den optimierten Server ein. Die URL sollte http oder https enthalten und optional den Port.", + "read_more_about_optimized_server": "Mehr über den optimierten Server lesen.", + "url":"URL", + "server_url_placeholder": "http(s)://domain.org:port" + }, + "plugins": { + "plugins_title": "Plugins", + "jellyseerr": { + "jellyseerr_warning": "Diese integration ist in einer frühen Entwicklungsphase. Erwarte Veränderungen.", + "server_url": "Server URL", + "server_url_hint": "Beispiel: http(s)://your-host.url\n(Portnummer hinzufügen, falls erforderlich)", + "server_url_placeholder": "Jellyseerr URL...", + "password": "Passwort", + "password_placeholder": "Passwort für Jellyfin Benutzer {{username}} eingeben", + "save_button": "Speichern", + "clear_button": "Löschen", + "login_button": "Anmelden", + "total_media_requests": "Gesamtanfragen", + "movie_quota_limit": "Film-Anfragelimit", + "movie_quota_days": "Film-Anfragetage", + "tv_quota_limit": "TV-Anfragelimit", + "tv_quota_days": "TV-Anfragetage", + "reset_jellyseerr_config_button": "Setze Jellyseerr-Konfiguration zurück", + "unlimited": "Unlimitiert" + }, + "marlin_search": { + "enable_marlin_search": "Aktiviere Marlin Search", + "url": "URL", + "server_url_placeholder": "http(s)://domain.org:port", + "marlin_search_hint": "Gib die URL für den Marlin Server ein. Die URL sollte http oder https enthalten und optional den Port.", + "read_more_about_marlin": "Erfahre mehr über Marlin.", + "save_button": "Speichern", + "toasts": { + "saved": "Gespeichert" + } + } + }, + "storage": { + "storage_title": "Speicher", + "app_usage": "App {{usedSpace}}%", + "phone_usage": "Handy {{availableSpace}}%", + "size_used": "{{used}} von {{total}} benutzt", + "delete_all_downloaded_files": "Alle Downloads löschen" + }, + "intro": { + "show_intro": "Show intro", + "reset_intro": "Reset intro" + }, + "logs": { + "logs_title": "Logs", + "no_logs_available": "Keine Logs verfügbar", + "delete_all_logs": "Alle Logs löschen" + }, + "languages": { + "title": "Sprachen", + "app_language": "App-Sprache", + "app_language_description": "Wähle die Sprache für die App aus.", + "system": "System" + }, + "toasts":{ + "error_deleting_files": "Fehler beim Löschen von Dateien", + "background_downloads_enabled": "Hintergrunddownloads aktiviert", + "background_downloads_disabled": "Hintergrunddownloads deaktiviert", + "connected": "Verbunden", + "could_not_connect": "Konnte keine Verbindung herstellen", + "invalid_url": "Ungültige URL" + } + }, + "downloads": { + "downloads_title": "Downloads", + "tvseries": "TV-Serien", + "movies": "Filme", + "queue": "Warteschlange", + "queue_hint": "Warteschlange und aktive Downloads gehen verloren bei App-Neustart", + "no_items_in_queue": "Keine Elemente in der Warteschlange", + "no_downloaded_items": "Keine heruntergeladenen Elemente", + "delete_all_movies_button": "Alle Filme löschen", + "delete_all_tvseries_button": "Alle TV-Serien löschen", + "delete_all_button": "Alles löschen", + "active_download": "Aktiver Download", + "no_active_downloads": "Keine aktiven Downloads", + "active_downloads": "Aktive Downloads", + "new_app_version_requires_re_download": "Die neue App-Version erfordert das erneute Herunterladen.", + "new_app_version_requires_re_download_description": "Die neue App-Version erfordert das erneute Herunterladen von Filmen und Serien. Bitte lösche alle heruntergeladenen Elemente und starte den Download erneut.", + "back": "Zurück", + "delete": "Löschen", + "something_went_wrong": "Etwas ist schiefgelaufen", + "could_not_get_stream_url_from_jellyfin": "Konnte keine Stream-URL von Jellyfin erhalten", + "eta": "ETA {{eta}}", + "methods": "Methoden", + "toasts": { + "you_are_not_allowed_to_download_files": "Du hast keine Berechtigung, Dateien herunterzuladen", + "deleted_all_movies_successfully": "Alle Filme erfolgreich gelöscht!", + "failed_to_delete_all_movies": "Fehler beim Löschen aller Filme", + "deleted_all_tvseries_successfully": "Alle TV-Serien erfolgreich gelöscht!", + "failed_to_delete_all_tvseries": "Fehler beim Löschen aller TV-Serien", + "download_cancelled": "Download abgebrochen", + "could_not_cancel_download": "Download konnte nicht abgebrochen werden", + "download_completed": "Download abgeschlossen", + "download_started_for": "Download für {{item}} gestartet", + "item_is_ready_to_be_downloaded": "{{item}} ist bereit zum Herunterladen", + "download_stated_for_item": "Download für {{item}} gestartet", + "download_failed_for_item": "Download für {{item}} fehlgeschlagen - {{error}}", + "download_completed_for_item": "Download für {{item}} ", + "queued_item_for_optimization": "{{item}} für Optimierung in die Warteschlange gestellt", + "failed_to_start_download_for_item": "Download konnte für {{item}} nicht gestartet werden: {{message}}", + "server_responded_with_status_code": "Server hat mit Status {{statusCode}} geantwortet", + "no_response_received_from_server": "Keine Antwort vom Server erhalten", + "error_setting_up_the_request": "Fehler beim Einrichten der Anfrage", + "failed_to_start_download_for_item_unexpected_error": "Fehler beim Starten des Downloads für {{item}}: Unerwarteter Fehler", + "all_files_folders_and_jobs_deleted_successfully": "Alle Dateien, Ordner und Jobs erfolgreich gelöscht", + "an_error_occured_while_deleting_files_and_jobs": "Ein Fehler ist beim Löschen von Dateien und Jobs aufgetreten", + "go_to_downloads": "Gehe zu den Downloads" + } + } + }, + "search": { + "search_here": "Hier Suchen...", + "search": "Suche...", + "x_items": "{{count}} Elemente", + "library": "Bibliothek", + "discover": "Entdecken", + "no_results": "Keine Ergebnisse", + "no_results_found_for": "Keine Ergebnisse gefunden für", + "movies": "Filme", + "series": "Serien", + "episodes": "Episoden", + "collections": "Sammlungen", + "actors": "Schauspieler", + "request_movies": "Film anfragen", + "request_series": "Serie anfragen", + "recently_added": "Kürzlich hinzugefügt", + "recent_requests": "Kürzlich angefragt", + "plex_watchlist": "Plex Watchlist", + "trending": "In den Trends", + "popular_movies": "Beliebte Filme", + "movie_genres": "Film-Genres", + "upcoming_movies": "Kommende Filme", + "studios": "Studios", + "popular_tv": "Beliebte TV-Serien", + "tv_genres": "TV-Serien-Genres", + "upcoming_tv": "Kommende TV-Serien", + "networks": "Netzwerke", + "tmdb_movie_keyword": "TMDB Film-Schlüsselwort", + "tmdb_movie_genre": "TMDB Film-Genre", + "tmdb_tv_keyword": "TMDB TV-Serien-Schlüsselwort", + "tmdb_tv_genre": "TMDB TV-Serien-Genre", + "tmdb_search": "TMDB Suche", + "tmdb_studio": "TMDB Studio", + "tmdb_network": "TMDB Netzwerk", + "tmdb_movie_streaming_services": "TMDB Film-Streaming-Dienste", + "tmdb_tv_streaming_services": "TMDB TV-Serien-Streaming-Dienste" + }, + "library": { + "no_items_found": "Keine Elemente gefunden", + "no_results": "Keine Ergebnisse", + "no_libraries_found": "Keine Bibliotheken gefunden", + "item_types": { + "movies": "Filme", + "series": "Serien", + "boxsets": "Boxsets", + "items": "Elemente" + }, + "options": { + "display": "Display", + "row": "Reihe", + "list": "Liste", + "image_style": "Bildstil", + "poster": "Poster", + "cover": "Cover", + "show_titles": "Titel anzeigen", + "show_stats": "Statistiken anzeigen" + }, + "filters": { + "genres": "Genres", + "years": "Jahre", + "sort_by": "Sortieren nach", + "sort_order": "Sortierreihenfolge", + "tags": "Tags" + } + }, + "favorites": { + "series": "Serien", + "movies": "Filme", + "episodes": "Episoden", + "videos": "Videos", + "boxsets": "Boxsets", + "playlists": "Playlists" + }, + "custom_links": { + "no_links": "Keine Links" + }, + "player": { + "error": "Fehler", + "failed_to_get_stream_url": "Fehler beim Abrufen der Stream-URL", + "an_error_occured_while_playing_the_video": "Ein Fehler ist beim Abspielen des Videos aufgetreten. Überprüf die Logs in den Einstellungen.", + "client_error": "Client-Fehler", + "could_not_create_stream_for_chromecast": "Konnte keinen Stream für Chromecast erstellen", + "message_from_server": "Nachricht vom Server: {{message}}", + "video_has_finished_playing": "Video wurde fertig abgespielt!", + "no_video_source": "Keine Videoquelle...", + "next_episode": "Nächste Episode", + "refresh_tracks": "Spuren aktualisieren", + "subtitle_tracks": "Untertitel-Spuren:", + "audio_tracks": "Audiospuren:", + "playback_state": "Wiedergabestatus:", + "no_data_available": "Keine Daten verfügbar", + "index": "Index:" + }, + "item_card": { + "next_up": "Als nächstes", + "no_items_to_display": "Keine Elemente zum Anzeigen", + "cast_and_crew": "Besetzung und Crew", + "series": "Serien", + "seasons": "Staffeln", + "season": "Staffel", + "no_episodes_for_this_season": "Keine Episoden für diese Staffel", + "overview": "Überblick", + "more_with": "Mehr mit {{name}}", + "similar_items": "Ähnliche Elemente", + "no_similar_items_found": "Keine ähnlichen Elemente gefunden", + "video": "Video", + "more_details": "Mehr Details", + "quality": "Qualität", + "audio": "Audio", + "subtitles": "Untertitel", + "show_more": "Mehr anzeigen", + "show_less": "Weniger anzeigen", + "appeared_in": "Erschienen in", + "could_not_load_item": "Konnte Element nicht laden", + "none": "Keine", + "download": { + "download_season": "Staffel herunterladen", + "download_series": "Serie herunterladen", + "download_episode": "Episode herunterladen", + "download_movie": "Film herunterladen", + "download_x_item": "{{item_count}} Elemente herunterladen", + "download_button": "Herunterladen", + "using_optimized_server": "Verwende optimierten Server", + "using_default_method": "Verwende Standardmethode" + } + }, + "live_tv": { + "next": "Nächster", + "previous": "Vorheriger", + "live_tv": "Live TV", + "coming_soon": "Demnächst", + "on_now": "Jetzt", + "shows": "Shows", + "movies": "Filme", + "sports": "Sport", + "for_kids": "Für Kinder", + "news": "Nachrichten" + }, + "jellyseerr":{ + "confirm": "Bestätigen", + "cancel": "Abbrechen", + "yes": "Ja", + "whats_wrong": "Hast du Probleme?", + "issue_type": "Fehlerart", + "select_an_issue": "Wähle einen Fehlerart aus", + "types": "Arten", + "describe_the_issue": "(optional) Beschreibe das Problem", + "submit_button": "Absenden", + "report_issue_button": "Fehler melden", + "request_button": "Anfragen", + "are_you_sure_you_want_to_request_all_seasons": "Bist du sicher, dass du alle Staffeln anfragen möchtest?", + "failed_to_login": "Fehler beim Anmelden", + "cast": "Besetzung", + "details": "Details", + "status": "Status", + "original_title": "Original Titel", + "series_type": "Serien Typ", + "release_dates": "Veröffentlichungsdaten", + "first_air_date": "Erstausstrahlungsdatum", + "next_air_date": "Nächstes Ausstrahlungsdatum", + "revenue": "Einnahmen", + "budget": "Budget", + "original_language": "Originalsprache", + "production_country": "Produktionsland", + "studios": "Studios", + "network": "Netzwerk", + "currently_streaming_on": "Derzeit im Streaming auf", + "advanced": "Erweitert", + "request_as": "Anfragen als", + "tags": "Tags", + "quality_profile": "Qualitätsprofil", + "root_folder": "Root-Ordner", + "season_x": "Staffel {{seasons}}", + "season_number": "Staffel {{season_number}}", + "number_episodes": "{{episode_number}} Episodes", + "born": "Geboren", + "appearances": "Auftritte", + "toasts": { + "jellyseer_does_not_meet_requirements": "Jellyseerr Server erfüllt nicht die Anforderungsversion. Bitte aktualisiere deinen Jellyseerr Server auf mindestens 2.0.0", + "jellyseerr_test_failed": "Jellyseerr-Test fehlgeschlagen. Bitte versuche es erneut.", + "failed_to_test_jellyseerr_server_url": "Fehler beim Testen der Jellyseerr-Server-URL", + "issue_submitted": "Problem eingereicht!", + "requested_item": "{{item}} angefragt!", + "you_dont_have_permission_to_request": "Du hast keine Berechtigung Anfragen zu stellen", + "something_went_wrong_requesting_media": "Etwas ist schiefgelaufen beim Anfragen von Medien" + } + }, + "tabs": { + "home": "Startseite", + "search": "Suche", + "library": "Bibliothek", + "custom_links": "Benutzerdefinierte Links", + "favorites": "Favoriten" + } +} \ No newline at end of file