Files
Fabric/internal/i18n/locales/de.json
Kayvan Sylvan 3c728cfacb feat: add GitHub Models provider and refactor model fetching with direct API fallback
- Add GitHub Models to supported OpenAI-compatible providers list
- Implement direct HTTP fallback for non-standard model responses
- Centralize model fetching logic in openai package
- Upgrade openai-go SDK dependency from v1.8.2 to v1.12.0
- Remove redundant model fetching code from openai_compatible package
- Add comprehensive GitHub Models setup documentation (700+ lines)
- Support custom models URL endpoint per provider configuration
- Add unit tests for direct model fetching functionality
- Update internationalization strings for model fetching errors
- Add VSCode dictionary entries for "azureml" and "Jamba"
2025-11-23 15:02:33 +07:00

166 lines
14 KiB
JSON

{
"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ühre das Setup-Verfahren aus",
"youtube_api_key_required": "YouTube API-Schlüssel für Kommentare und Metadaten erforderlich. Führe 'fabric --setup' aus, um zu konfigurieren",
"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",
"youtube_invalid_ytdlp_arguments": "ungültige yt-dlp-Argumente: %v",
"youtube_failed_create_temp_dir": "temporäres Verzeichnis konnte nicht erstellt werden: %v",
"youtube_no_transcript_content": "kein Transkriptinhalt in VTT-Datei gefunden",
"youtube_no_vtt_files_found": "keine VTT-Dateien im Verzeichnis gefunden",
"youtube_failed_walk_directory": "Verzeichnis konnte nicht durchlaufen werden: %v",
"youtube_error_getting_video_details": "Fehler beim Abrufen der Videodetails: %v",
"youtube_invalid_duration_string": "ungültige Dauer-Zeichenfolge: %s",
"youtube_error_getting_metadata": "Fehler beim Abrufen der Video-Metadaten: %v",
"youtube_error_parsing_duration": "Fehler beim Parsen der Videodauer: %v",
"youtube_error_getting_comments": "Fehler beim Abrufen der Kommentare: %v",
"youtube_error_saving_csv": "Fehler beim Speichern der Videos in CSV: %v",
"youtube_no_video_found_with_id": "kein Video mit ID gefunden: %s",
"youtube_invalid_timestamp_format": "ungültiges Zeitstempel-Format: %s",
"youtube_empty_seconds_string": "leere Sekunden-Zeichenfolge",
"youtube_invalid_seconds_format": "ungültiges Sekundenformat %q: %w",
"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",
"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",
"no_notification_system_available": "kein Benachrichtigungssystem verfügbar",
"cannot_convert_string": "kann String %q nicht zu %v konvertieren",
"unsupported_conversion": "nicht unterstützte Konvertierung von %v zu %v",
"invalid_config_path": "ungültiger Konfigurationspfad: %w",
"config_file_not_found": "Konfigurationsdatei nicht gefunden: %s",
"error_reading_config_file": "Fehler beim Lesen der Konfigurationsdatei: %w",
"error_parsing_config_file": "Fehler beim Parsen der Konfigurationsdatei: %w",
"error_reading_piped_message": "Fehler beim Lesen der weitergeleiteten Nachricht von stdin: %w",
"image_file_already_exists": "Bilddatei existiert bereits: %s",
"invalid_image_file_extension": "ungültige Bilddatei-Erweiterung '%s'. Unterstützte Formate: .png, .jpeg, .jpg, .webp",
"image_parameters_require_image_file": "Bildparameter (--image-size, --image-quality, --image-background, --image-compression) können nur mit --image-file verwendet werden",
"invalid_image_size": "ungültige Bildgröße '%s'. Unterstützte Größen: 1024x1024, 1536x1024, 1024x1536, auto",
"invalid_image_quality": "ungültige Bildqualität '%s'. Unterstützte Qualitäten: low, medium, high, auto",
"invalid_image_background": "ungültiger Bildhintergrund '%s'. Unterstützte Hintergründe: opaque, transparent",
"image_compression_jpeg_webp_only": "Bildkomprimierung kann nur mit JPEG- und WebP-Formaten verwendet werden, nicht %s",
"image_compression_range_error": "Bildkomprimierung muss zwischen 0 und 100 liegen, erhalten: %d",
"transparent_background_png_webp_only": "transparenter Hintergrund kann nur mit PNG- und WebP-Formaten verwendet werden, nicht %s",
"available_transcription_models": "Verfügbare Transkriptionsmodelle:",
"tts_audio_generated_successfully": "TTS-Audio erfolgreich generiert und gespeichert unter: %s\n",
"fabric_command_complete": "Fabric-Befehl abgeschlossen",
"fabric_command_complete_with_pattern": "Fabric: %s abgeschlossen",
"command_completed_successfully": "Befehl erfolgreich abgeschlossen",
"output_truncated": "Ausgabe: %s...",
"output_full": "Ausgabe: %s",
"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.",
"set_frequency_penalty": "Häufigkeitsstrafe festlegen",
"list_all_patterns": "Alle Muster auflisten",
"list_all_available_models": "Alle verfügbaren Modelle auflisten",
"list_all_contexts": "Alle Kontexte auflisten",
"list_all_sessions": "Alle Sitzungen auflisten",
"update_patterns": "Muster aktualisieren",
"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",
"output_video_metadata": "Video-Metadaten ausgeben",
"additional_yt_dlp_args": "Zusätzliche Argumente für yt-dlp (z.B. '--cookies-from-browser brave')",
"specify_language_code": "Sprachencode für den Chat angeben, z.B. -g=en -g=zh -g=pt-BR -g=pt-PT",
"scrape_website_url": "Website-URL zu Markdown mit Jina AI scrapen",
"search_question_jina": "Suchanfrage mit Jina AI",
"seed_for_lmm_generation": "Seed für LMM-Generierung",
"wipe_context": "Kontext löschen",
"wipe_session": "Sitzung löschen",
"print_context": "Kontext ausgeben",
"print_session": "Sitzung ausgeben",
"convert_html_readability": "HTML-Eingabe in eine saubere, lesbare Ansicht konvertieren",
"apply_variables_to_input": "Variablen auf Benutzereingabe anwenden",
"disable_pattern_variable_replacement": "Mustervariablenersetzung deaktivieren",
"show_dry_run": "Zeige, was an das Modell gesendet würde, ohne es tatsächlich zu senden",
"serve_fabric_rest_api": "Fabric REST API bereitstellen",
"serve_fabric_api_ollama_endpoints": "Fabric REST API mit ollama-Endpunkten bereitstellen",
"address_to_bind_rest_api": "Adresse zum Binden der REST API",
"api_key_secure_server_routes": "API-Schlüssel zum Sichern der Server-Routen",
"path_to_yaml_config": "Pfad zur YAML-Konfigurationsdatei",
"print_current_version": "Aktuelle Version ausgeben",
"list_all_registered_extensions": "Alle registrierten Erweiterungen auflisten",
"register_new_extension": "Neue Erweiterung aus Konfigurationsdateipfad registrieren",
"remove_registered_extension": "Registrierte Erweiterung nach Name entfernen",
"choose_strategy_from_available": "Strategie aus den verfügbaren Strategien wählen",
"list_all_strategies": "Alle Strategien auflisten",
"list_all_vendors": "Alle Anbieter auflisten",
"output_raw_list_shell_completion": "Rohe Liste ohne Kopfzeilen/Formatierung ausgeben (für Shell-Vervollständigung)",
"enable_web_search_tool": "Web-Such-Tool für unterstützte Modelle aktivieren (Anthropic, OpenAI, Gemini)",
"set_location_web_search": "Standort für Web-Suchergebnisse festlegen (z.B., 'America/Los_Angeles')",
"save_generated_image_to_file": "Generiertes Bild in angegebenem Dateipfad speichern (z.B., 'output.png')",
"image_dimensions_help": "Bildabmessungen: 1024x1024, 1536x1024, 1024x1536, auto (Standard: auto)",
"image_quality_help": "Bildqualität: low, medium, high, auto (Standard: auto)",
"compression_level_jpeg_webp": "Komprimierungslevel 0-100 für JPEG/WebP-Formate (Standard: nicht gesetzt)",
"background_type_help": "Hintergrundtyp: opaque, transparent (Standard: opaque, nur für PNG/WebP)",
"suppress_thinking_tags": "In Denk-Tags eingeschlossenen Text unterdrücken",
"start_tag_thinking_sections": "Start-Tag für Denk-Abschnitte",
"end_tag_thinking_sections": "End-Tag für Denk-Abschnitte",
"disable_openai_responses_api": "OpenAI Responses API deaktivieren (Standard: false)",
"audio_video_file_transcribe": "Audio- oder Video-Datei zum Transkribieren",
"model_for_transcription": "Modell für Transkription (getrennt vom Chat-Modell)",
"split_media_files_ffmpeg": "Audio/Video-Dateien größer als 25MB mit ffmpeg aufteilen",
"tts_voice_name": "TTS-Stimmenname für unterstützte Modelle (z.B., Kore, Charon, Puck)",
"list_gemini_tts_voices": "Alle verfügbaren Gemini TTS-Stimmen auflisten",
"list_transcription_models": "Alle verfügbaren Transkriptionsmodelle auflisten",
"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)",
"set_debug_level": "Debug-Level festlegen (0=aus, 1=grundlegend, 2=detailliert, 3=Trace)",
"usage_header": "Verwendung:",
"application_options_header": "Anwendungsoptionen:",
"help_options_header": "Hilfe-Optionen:",
"help_message": "Diese Hilfenachricht anzeigen",
"options_placeholder": "[OPTIONEN]",
"available_vendors_header": "Verfügbare Anbieter:",
"available_models_header": "Verfügbare Modelle",
"no_items_found": "Keine %s",
"no_description_available": "Keine Beschreibung verfügbar",
"i18n_download_failed": "Fehler beim Herunterladen der Übersetzung für Sprache '%s': %v",
"i18n_load_failed": "Fehler beim Laden der Übersetzungsdatei: %v"
}