### PR [#2005](https://github.com/danielmiessler/Fabric/pull/2005) by [ksylvan](https://github.com/ksylvan): I18N: For file manager, Vertex AI, and Copilot errors
- Internationalized file manager, Vertex AI, and Copilot error messages via i18n by replacing hardcoded error strings with translation keys
- Added file manager, Vertex AI, and Copilot i18n keys to all 10 locale files
- Fixed JSON trailing comma syntax errors across all locale files
- Normalized German locale JSON indentation from tabs to spaces
- Updated Bedrock AWS region setup to use `AddSetupQuestionWithEnvName`
"html_readability_error":"verwende ursprüngliche Eingabe, da HTML-Lesbarkeit nicht angewendet werden kann",
"vendor_not_configured":"Anbieter %s ist nicht konfiguriert",
"vendor_no_transcription_support":"Anbieter %s unterstützt keine Audio-Transkription",
"transcription_model_required":"Transkriptionsmodell ist erforderlich (verwende --transcribe-model)",
"youtube_not_configured":"YouTube ist nicht konfiguriert, bitte führen Sie die Einrichtung durch",
"spotify_not_configured":"Spotify ist nicht konfiguriert, bitte führen Sie die Einrichtung durch",
"spotify_label":"Spotify",
"spotify_setup_description":"Spotify - um Podcast-/Show-Metadaten von Spotify abzurufen",
"spotify_invalid_url":"Ungültige Spotify-URL, kann Show- oder Episoden-ID nicht abrufen: '%s'",
"spotify_error_getting_metadata":"Fehler beim Abrufen der Spotify-Metadaten: %v",
"spotify_no_show_found":"Keine Show mit ID gefunden: %s",
"spotify_no_episode_found":"Keine Episode mit ID gefunden: %s",
"spotify_url_help":"Spotify-Podcast- oder Episoden-URL zum Abrufen von Metadaten und Senden an den Chat",
"youtube_api_key_required":"YouTube API-Schlüssel erforderlich für Kommentare und Metadaten. Führen Sie 'fabric --setup' zur Konfiguration aus",
"youtube_ytdlp_not_found":"yt-dlp wurde nicht in PATH gefunden. Bitte installiere yt-dlp, um die YouTube-Transkript-Funktionalität zu nutzen",
"youtube_invalid_url":"ungültige YouTube-URL, kann keine Video- oder Playlist-ID abrufen: '%s'",
"youtube_url_is_playlist_not_video":"URL ist eine Playlist, kein Video",
"youtube_no_video_id_found":"keine Video-ID in URL gefunden",
"youtube_rate_limit_exceeded":"YouTube-Ratenlimit überschritten. Versuche es später erneut oder verwende andere yt-dlp-Argumente wie '--sleep-requests 1', um Anfragen zu verlangsamen.",
"youtube_auth_required_bot_detection":"YouTube erfordert Authentifizierung (Bot-Erkennung). Verwende --yt-dlp-args='--cookies-from-browser BROWSER' wobei BROWSER chrome, firefox, brave usw. sein kann.",
"youtube_ytdlp_stderr_error":"Fehler beim Lesen von yt-dlp stderr",
"error_fetching_playlist_videos":"Fehler beim Abrufen der Playlist-Videos: %w",
"openai_api_base_url_not_configured":"API-Basis-URL für Anbieter %s nicht konfiguriert",
"openai_failed_to_create_models_url":"Modell-URL konnte nicht erstellt werden: %w",
"openai_unexpected_status_code_with_body":"unerwarteter Statuscode: %d von Anbieter %s, Antwort: %s",
"openai_unexpected_status_code_read_error_partial":"unerwarteter Statuscode: %d von Anbieter %s (Fehler beim Lesen: %v), teilweise Antwort: %s",
"openai_unexpected_status_code_read_error":"unerwarteter Statuscode: %d von Anbieter %s (Fehler beim Lesen der Antwort: %v)",
"openai_unable_to_parse_models_response":"Modell-Antwort konnte nicht geparst werden; rohe Antwort: %s",
"openai_warning_model_no_image_generation":"Warnung: Modell '%s' unterstützt keine Bildgenerierung. Unterstützte Modelle: %s. Erwägen Sie die Verwendung von -m gpt-5.2 für Bildgenerierung.\n",
"openai_model_no_image_generation":"Modell '%s' unterstützt keine Bildgenerierung. Unterstützte Modelle: %s",
"scraping_not_configured":"Scraping-Funktionalität ist nicht konfiguriert. Bitte richte Jina ein, um Scraping zu aktivieren",
"could_not_determine_home_dir":"konnte Benutzer-Home-Verzeichnis nicht bestimmen: %w",
"could_not_stat_env_file":"konnte .env-Datei nicht überprüfen: %w",
"could_not_create_config_dir":"konnte Konfigurationsverzeichnis nicht erstellen: %w",
"could_not_create_env_file":"konnte .env-Datei nicht erstellen: %w",
"could_not_copy_to_clipboard":"konnte nicht in die Zwischenablage kopieren: %v",
"file_already_exists_not_overwriting":"Datei %s existiert bereits, wird nicht überschrieben. Benenne die vorhandene Datei um oder wähle einen anderen Namen",
"error_creating_file":"Fehler beim Erstellen der Datei: %v",
"error_writing_to_file":"Fehler beim Schreiben in die Datei: %v",
"error_creating_audio_file":"Fehler beim Erstellen der Audio-Datei: %v",
"error_writing_audio_data":"Fehler beim Schreiben von Audio-Daten in die Datei: %v",
"tts_model_requires_audio_output":"TTS-Modell '%s' benötigt Audio-Ausgabe. Bitte gib eine Audio-Ausgabedatei mit dem -o Flag an (z.B., -o output.wav)",
"audio_output_file_specified_but_not_tts_model":"Audio-Ausgabedatei '%s' angegeben, aber Modell '%s' ist kein TTS-Modell. Bitte verwende ein TTS-Modell wie gemini-2.5-flash-preview-tts",
"file_already_exists_choose_different":"Datei %s existiert bereits. Bitte wähle einen anderen Dateinamen oder entferne die vorhandene Datei",
"image_parameters_require_image_file":"Bildparameter (--image-size, --image-quality, --image-background, --image-compression) können nur mit --image-file verwendet werden",
"choose_pattern_from_available":"Wähle ein Muster aus den verfügbaren Mustern",
"pattern_variables_help":"Werte für Mustervariablen, z.B. -v=#role:expert -v=#points:30",
"choose_context_from_available":"Wähle einen Kontext aus den verfügbaren Kontexten",
"choose_session_from_available":"Wähle eine Sitzung aus den verfügbaren Sitzungen",
"attachment_path_or_url_help":"Anhangspfad oder URL (z.B. für OpenAI-Bilderkennungsnachrichten)",
"run_setup_for_reconfigurable_parts":"Setup für alle rekonfigurierbaren Teile von Fabric ausführen",
"set_temperature":"Temperatur festlegen",
"set_top_p":"Top P festlegen",
"stream_help":"Streaming",
"set_presence_penalty":"Präsenzstrafe festlegen",
"use_model_defaults_raw_help":"Verwende die Standardwerte des Modells, ohne Chat-Optionen (temperature, top_p usw.) zu senden. Gilt nur für OpenAI-kompatible Anbieter. Anthropic-Modelle verwenden stets eine intelligente Parameterauswahl, um modell-spezifische Anforderungen einzuhalten.",
"messages_to_send_to_chat":"Nachrichten zum Senden an den Chat",
"copy_to_clipboard":"In Zwischenablage kopieren",
"choose_model":"Modell wählen",
"specify_vendor_for_model":"Anbieter für das ausgewählte Modell angeben (z.B., -V \"LM Studio\" -m openai/gpt-oss-20b)",
"model_context_length_ollama":"Modell-Kontextlänge (betrifft nur ollama)",
"output_to_file":"Ausgabe in Datei",
"output_entire_session":"Gesamte Sitzung (auch eine temporäre) in die Ausgabedatei ausgeben",
"number_of_latest_patterns":"Anzahl der neuesten Muster zum Auflisten",
"change_default_model":"Standardmodell ändern",
"youtube_url_help":"YouTube-Video oder Playlist-\"URL\" zum Abrufen von Transkript und Kommentaren und Senden an Chat oder Ausgabe in Konsole und Speichern in Ausgabedatei",
"prefer_playlist_over_video":"Playlist gegenüber Video bevorzugen, wenn beide IDs in der URL vorhanden sind",
"grab_transcript_from_youtube":"Transkript von YouTube-Video abrufen und an Chat senden (wird standardmäßig verwendet).",
"grab_transcript_with_timestamps":"Transkript von YouTube-Video mit Zeitstempeln abrufen und an Chat senden",
"grab_comments_from_youtube":"Kommentare von YouTube-Video abrufen und an Chat senden",
"send_desktop_notification":"Desktop-Benachrichtigung senden, wenn Befehl abgeschlossen ist",
"custom_notification_command":"Benutzerdefinierter Befehl für Benachrichtigungen (überschreibt eingebaute Benachrichtigungen)",
"set_reasoning_thinking_level":"Reasoning/Thinking-Level festlegen (z.B., off, low, medium, high, oder numerische Token für Anthropic oder Google Gemini)",
"setup_validation_incomplete_help":"Führen Sie 'fabric --setup' erneut aus, um fehlende Elemente zu konfigurieren,\noder 'fabric -U', um Patterns und Strategien herunterzuladen.",
"setup_validation_complete":"✓ Alle erforderlichen Komponenten konfiguriert!",
"patterns_not_found_header":"⚠️ Keine Patterns gefunden!",
"patterns_required_to_work":"Patterns sind erforderlich, damit Fabric funktioniert. Um dies zu beheben:",
"patterns_option_run_setup":"Option 1 (Empfohlen): Setup ausführen, um Patterns herunterzuladen",
"patterns_option_run_update":"Option 2: Patterns direkt herunterladen/aktualisieren",
"patterns_option_run_update_command":"fabric -U",
"pattern_not_found_no_patterns":"Pattern '%s' nicht gefunden.\n\nKeine Patterns installiert! Um dies zu beheben:\n • Führen Sie 'fabric --setup' aus, um Patterns zu konfigurieren und herunterzuladen\n • Oder führen Sie 'fabric -U' aus, um Patterns direkt herunterzuladen/zu aktualisieren",
"pattern_not_found_list_available":"Pattern '%s' nicht gefunden. Führen Sie 'fabric -l' aus, um verfügbare Patterns anzuzeigen",
"plugin_configured":" ✓",
"plugin_not_configured":" ⚠️ NICHT KONFIGURIERT",
"defaults_setup_description":"Standard-KI-Anbieter und -Modell",
"defaults_model_question":"Geben Sie den Index oder den Namen Ihres Standardmodells ein",
"defaults_model_context_length_question":"Geben Sie die Kontextlänge des Modells ein",
"spotify_failed_parse_search_results":"Suchergebnisse konnten nicht analysiert werden: %w",
"spotify_failed_get_show_episodes":"Show-Episoden konnten nicht abgerufen werden: %w",
"spotify_failed_parse_episodes":"Episoden konnten nicht analysiert werden: %w"
,
"html_readability_error":"verwende ursprüngliche Eingabe, da HTML-Lesbarkeit nicht angewendet werden kann",
"vendor_not_configured":"Anbieter %s ist nicht konfiguriert",
"vendor_no_transcription_support":"Anbieter %s unterstützt keine Audio-Transkription",
"transcription_model_required":"Transkriptionsmodell ist erforderlich (verwende --transcribe-model)",
"youtube_not_configured":"YouTube ist nicht konfiguriert, bitte führen Sie die Einrichtung durch",
"spotify_not_configured":"Spotify ist nicht konfiguriert, bitte führen Sie die Einrichtung durch",
"spotify_label":"Spotify",
"spotify_setup_description":"Spotify - um Podcast-/Show-Metadaten von Spotify abzurufen",
"spotify_invalid_url":"Ungültige Spotify-URL, kann Show- oder Episoden-ID nicht abrufen: '%s'",
"spotify_error_getting_metadata":"Fehler beim Abrufen der Spotify-Metadaten: %v",
"spotify_no_show_found":"Keine Show mit ID gefunden: %s",
"spotify_no_episode_found":"Keine Episode mit ID gefunden: %s",
"spotify_url_help":"Spotify-Podcast- oder Episoden-URL zum Abrufen von Metadaten und Senden an den Chat",
"youtube_api_key_required":"YouTube API-Schlüssel erforderlich für Kommentare und Metadaten. Führen Sie 'fabric --setup' zur Konfiguration aus",
"youtube_ytdlp_not_found":"yt-dlp wurde nicht in PATH gefunden. Bitte installiere yt-dlp, um die YouTube-Transkript-Funktionalität zu nutzen",
"youtube_invalid_url":"ungültige YouTube-URL, kann keine Video- oder Playlist-ID abrufen: '%s'",
"youtube_url_is_playlist_not_video":"URL ist eine Playlist, kein Video",
"youtube_no_video_id_found":"keine Video-ID in URL gefunden",
"youtube_rate_limit_exceeded":"YouTube-Ratenlimit überschritten. Versuche es später erneut oder verwende andere yt-dlp-Argumente wie '--sleep-requests 1', um Anfragen zu verlangsamen.",
"youtube_auth_required_bot_detection":"YouTube erfordert Authentifizierung (Bot-Erkennung). Verwende --yt-dlp-args='--cookies-from-browser BROWSER' wobei BROWSER chrome, firefox, brave usw. sein kann.",
"youtube_ytdlp_stderr_error":"Fehler beim Lesen von yt-dlp stderr",
"error_fetching_playlist_videos":"Fehler beim Abrufen der Playlist-Videos: %w",
"openai_api_base_url_not_configured":"API-Basis-URL für Anbieter %s nicht konfiguriert",
"openai_failed_to_create_models_url":"Modell-URL konnte nicht erstellt werden: %w",
"openai_unexpected_status_code_with_body":"unerwarteter Statuscode: %d von Anbieter %s, Antwort: %s",
"openai_unexpected_status_code_read_error_partial":"unerwarteter Statuscode: %d von Anbieter %s (Fehler beim Lesen: %v), teilweise Antwort: %s",
"openai_unexpected_status_code_read_error":"unerwarteter Statuscode: %d von Anbieter %s (Fehler beim Lesen der Antwort: %v)",
"openai_unable_to_parse_models_response":"Modell-Antwort konnte nicht geparst werden; rohe Antwort: %s",
"openai_warning_model_no_image_generation":"Warnung: Modell '%s' unterstützt keine Bildgenerierung. Unterstützte Modelle: %s. Erwägen Sie die Verwendung von -m gpt-5.2 für Bildgenerierung.\n",
"openai_model_no_image_generation":"Modell '%s' unterstützt keine Bildgenerierung. Unterstützte Modelle: %s",
"scraping_not_configured":"Scraping-Funktionalität ist nicht konfiguriert. Bitte richte Jina ein, um Scraping zu aktivieren",
"could_not_determine_home_dir":"konnte Benutzer-Home-Verzeichnis nicht bestimmen: %w",
"could_not_stat_env_file":"konnte .env-Datei nicht überprüfen: %w",
"could_not_create_config_dir":"konnte Konfigurationsverzeichnis nicht erstellen: %w",
"could_not_create_env_file":"konnte .env-Datei nicht erstellen: %w",
"could_not_copy_to_clipboard":"konnte nicht in die Zwischenablage kopieren: %v",
"file_already_exists_not_overwriting":"Datei %s existiert bereits, wird nicht überschrieben. Benenne die vorhandene Datei um oder wähle einen anderen Namen",
"error_creating_file":"Fehler beim Erstellen der Datei: %v",
"error_writing_to_file":"Fehler beim Schreiben in die Datei: %v",
"error_creating_audio_file":"Fehler beim Erstellen der Audio-Datei: %v",
"error_writing_audio_data":"Fehler beim Schreiben von Audio-Daten in die Datei: %v",
"tts_model_requires_audio_output":"TTS-Modell '%s' benötigt Audio-Ausgabe. Bitte gib eine Audio-Ausgabedatei mit dem -o Flag an (z.B., -o output.wav)",
"audio_output_file_specified_but_not_tts_model":"Audio-Ausgabedatei '%s' angegeben, aber Modell '%s' ist kein TTS-Modell. Bitte verwende ein TTS-Modell wie gemini-2.5-flash-preview-tts",
"file_already_exists_choose_different":"Datei %s existiert bereits. Bitte wähle einen anderen Dateinamen oder entferne die vorhandene Datei",
"image_parameters_require_image_file":"Bildparameter (--image-size, --image-quality, --image-background, --image-compression) können nur mit --image-file verwendet werden",
"choose_pattern_from_available":"Wähle ein Muster aus den verfügbaren Mustern",
"pattern_variables_help":"Werte für Mustervariablen, z.B. -v=#role:expert -v=#points:30",
"choose_context_from_available":"Wähle einen Kontext aus den verfügbaren Kontexten",
"choose_session_from_available":"Wähle eine Sitzung aus den verfügbaren Sitzungen",
"attachment_path_or_url_help":"Anhangspfad oder URL (z.B. für OpenAI-Bilderkennungsnachrichten)",
"run_setup_for_reconfigurable_parts":"Setup für alle rekonfigurierbaren Teile von Fabric ausführen",
"set_temperature":"Temperatur festlegen",
"set_top_p":"Top P festlegen",
"stream_help":"Streaming",
"set_presence_penalty":"Präsenzstrafe festlegen",
"use_model_defaults_raw_help":"Verwende die Standardwerte des Modells, ohne Chat-Optionen (temperature, top_p usw.) zu senden. Gilt nur für OpenAI-kompatible Anbieter. Anthropic-Modelle verwenden stets eine intelligente Parameterauswahl, um modell-spezifische Anforderungen einzuhalten.",
"messages_to_send_to_chat":"Nachrichten zum Senden an den Chat",
"copy_to_clipboard":"In Zwischenablage kopieren",
"choose_model":"Modell wählen",
"specify_vendor_for_model":"Anbieter für das ausgewählte Modell angeben (z.B., -V \"LM Studio\" -m openai/gpt-oss-20b)",
"model_context_length_ollama":"Modell-Kontextlänge (betrifft nur ollama)",
"output_to_file":"Ausgabe in Datei",
"output_entire_session":"Gesamte Sitzung (auch eine temporäre) in die Ausgabedatei ausgeben",
"number_of_latest_patterns":"Anzahl der neuesten Muster zum Auflisten",
"change_default_model":"Standardmodell ändern",
"youtube_url_help":"YouTube-Video oder Playlist-\"URL\" zum Abrufen von Transkript und Kommentaren und Senden an Chat oder Ausgabe in Konsole und Speichern in Ausgabedatei",
"prefer_playlist_over_video":"Playlist gegenüber Video bevorzugen, wenn beide IDs in der URL vorhanden sind",
"grab_transcript_from_youtube":"Transkript von YouTube-Video abrufen und an Chat senden (wird standardmäßig verwendet).",
"grab_transcript_with_timestamps":"Transkript von YouTube-Video mit Zeitstempeln abrufen und an Chat senden",
"grab_comments_from_youtube":"Kommentare von YouTube-Video abrufen und an Chat senden",
"send_desktop_notification":"Desktop-Benachrichtigung senden, wenn Befehl abgeschlossen ist",
"custom_notification_command":"Benutzerdefinierter Befehl für Benachrichtigungen (überschreibt eingebaute Benachrichtigungen)",
"set_reasoning_thinking_level":"Reasoning/Thinking-Level festlegen (z.B., off, low, medium, high, oder numerische Token für Anthropic oder Google Gemini)",
"setup_validation_incomplete_help":"Führen Sie 'fabric --setup' erneut aus, um fehlende Elemente zu konfigurieren,\noder 'fabric -U', um Patterns und Strategien herunterzuladen.",
"setup_validation_complete":"✓ Alle erforderlichen Komponenten konfiguriert!",
"patterns_not_found_header":"⚠️ Keine Patterns gefunden!",
"patterns_required_to_work":"Patterns sind erforderlich, damit Fabric funktioniert. Um dies zu beheben:",
"patterns_option_run_setup":"Option 1 (Empfohlen): Setup ausführen, um Patterns herunterzuladen",
"patterns_option_run_update":"Option 2: Patterns direkt herunterladen/aktualisieren",
"patterns_option_run_update_command":"fabric -U",
"pattern_not_found_no_patterns":"Pattern '%s' nicht gefunden.\n\nKeine Patterns installiert! Um dies zu beheben:\n • Führen Sie 'fabric --setup' aus, um Patterns zu konfigurieren und herunterzuladen\n • Oder führen Sie 'fabric -U' aus, um Patterns direkt herunterzuladen/zu aktualisieren",
"pattern_not_found_list_available":"Pattern '%s' nicht gefunden. Führen Sie 'fabric -l' aus, um verfügbare Patterns anzuzeigen",
"plugin_configured":" ✓",
"plugin_not_configured":" ⚠️ NICHT KONFIGURIERT",
"defaults_setup_description":"Standard-KI-Anbieter und -Modell",
"defaults_model_question":"Geben Sie den Index oder den Namen Ihres Standardmodells ein",
"defaults_model_context_length_question":"Geben Sie die Kontextlänge des Modells ein",
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.