mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-01-08 22:08:03 -05:00
- 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"
166 lines
15 KiB
JSON
166 lines
15 KiB
JSON
{
|
||
"html_readability_error": "utilise l'entrée originale, car la lisibilité HTML ne peut pas être appliquée",
|
||
"vendor_not_configured": "le fournisseur %s n'est pas configuré",
|
||
"vendor_no_transcription_support": "le fournisseur %s ne prend pas en charge la transcription audio",
|
||
"transcription_model_required": "un modèle de transcription est requis (utilisez --transcribe-model)",
|
||
"youtube_not_configured": "YouTube n'est pas configuré, veuillez exécuter la procédure de configuration",
|
||
"youtube_api_key_required": "Clé API YouTube requise pour les commentaires et métadonnées. Exécutez 'fabric --setup' pour configurer",
|
||
"youtube_ytdlp_not_found": "yt-dlp introuvable dans PATH. Veuillez installer yt-dlp pour utiliser la fonctionnalité de transcription YouTube",
|
||
"youtube_invalid_url": "URL YouTube invalide, impossible d'obtenir l'ID de vidéo ou de liste de lecture : '%s'",
|
||
"youtube_url_is_playlist_not_video": "L'URL est une liste de lecture, pas une vidéo",
|
||
"youtube_no_video_id_found": "aucun ID de vidéo trouvé dans l'URL",
|
||
"youtube_rate_limit_exceeded": "Limite de taux YouTube dépassée. Réessayez plus tard ou utilisez différents arguments yt-dlp comme '--sleep-requests 1' pour ralentir les requêtes.",
|
||
"youtube_auth_required_bot_detection": "YouTube nécessite une authentification (détection de bot). Utilisez --yt-dlp-args='--cookies-from-browser BROWSER' où BROWSER peut être chrome, firefox, brave, etc.",
|
||
"youtube_ytdlp_stderr_error": "Erreur lors de la lecture du stderr de yt-dlp",
|
||
"youtube_invalid_ytdlp_arguments": "arguments yt-dlp invalides : %v",
|
||
"youtube_failed_create_temp_dir": "échec de création du répertoire temporaire : %v",
|
||
"youtube_no_transcript_content": "aucun contenu de transcription trouvé dans le fichier VTT",
|
||
"youtube_no_vtt_files_found": "aucun fichier VTT trouvé dans le répertoire",
|
||
"youtube_failed_walk_directory": "échec du parcours du répertoire : %v",
|
||
"youtube_error_getting_video_details": "erreur lors de l'obtention des détails de la vidéo : %v",
|
||
"youtube_invalid_duration_string": "chaîne de durée invalide : %s",
|
||
"youtube_error_getting_metadata": "erreur lors de l'obtention des métadonnées de la vidéo : %v",
|
||
"youtube_error_parsing_duration": "erreur lors de l'analyse de la durée de la vidéo : %v",
|
||
"youtube_error_getting_comments": "erreur lors de l'obtention des commentaires : %v",
|
||
"youtube_error_saving_csv": "erreur lors de l'enregistrement des vidéos en CSV : %v",
|
||
"youtube_no_video_found_with_id": "aucune vidéo trouvée avec l'ID : %s",
|
||
"youtube_invalid_timestamp_format": "format d'horodatage invalide : %s",
|
||
"youtube_empty_seconds_string": "chaîne de secondes vide",
|
||
"youtube_invalid_seconds_format": "format de secondes invalide %q : %w",
|
||
"error_fetching_playlist_videos": "erreur lors de la récupération des vidéos de la liste de lecture : %w",
|
||
"openai_api_base_url_not_configured": "URL de base de l'API non configurée pour le fournisseur %s",
|
||
"openai_failed_to_create_models_url": "échec de création de l'URL des modèles : %w",
|
||
"openai_unexpected_status_code_with_body": "code d'état inattendu : %d du fournisseur %s, corps de réponse : %s",
|
||
"openai_unexpected_status_code_read_error_partial": "code d'état inattendu : %d du fournisseur %s (erreur de lecture : %v), réponse partielle : %s",
|
||
"openai_unexpected_status_code_read_error": "code d'état inattendu : %d du fournisseur %s (échec de lecture du corps de réponse : %v)",
|
||
"openai_unable_to_parse_models_response": "impossible d'analyser la réponse des modèles ; réponse brute : %s",
|
||
"scraping_not_configured": "la fonctionnalité de scraping n'est pas configurée. Veuillez configurer Jina pour activer le scraping",
|
||
"could_not_determine_home_dir": "impossible de déterminer le répertoire home de l'utilisateur : %w",
|
||
"could_not_stat_env_file": "impossible de vérifier le fichier .env : %w",
|
||
"could_not_create_config_dir": "impossible de créer le répertoire de configuration : %w",
|
||
"could_not_create_env_file": "impossible de créer le fichier .env : %w",
|
||
"could_not_copy_to_clipboard": "impossible de copier dans le presse-papiers : %v",
|
||
"file_already_exists_not_overwriting": "le fichier %s existe déjà, ne sera pas écrasé. Renommez le fichier existant ou choisissez un nom différent",
|
||
"error_creating_file": "erreur lors de la création du fichier : %v",
|
||
"error_writing_to_file": "erreur lors de l'écriture dans le fichier : %v",
|
||
"error_creating_audio_file": "erreur lors de la création du fichier audio : %v",
|
||
"error_writing_audio_data": "erreur lors de l'écriture des données audio dans le fichier : %v",
|
||
"tts_model_requires_audio_output": "le modèle TTS '%s' nécessite une sortie audio. Veuillez spécifier un fichier de sortie audio avec le flag -o (ex. -o output.wav)",
|
||
"audio_output_file_specified_but_not_tts_model": "fichier de sortie audio '%s' spécifié mais le modèle '%s' n'est pas un modèle TTS. Veuillez utiliser un modèle TTS comme gemini-2.5-flash-preview-tts",
|
||
"file_already_exists_choose_different": "le fichier %s existe déjà. Veuillez choisir un nom de fichier différent ou supprimer le fichier existant",
|
||
"no_notification_system_available": "aucun système de notification disponible",
|
||
"cannot_convert_string": "impossible de convertir la chaîne %q en %v",
|
||
"unsupported_conversion": "conversion non prise en charge de %v vers %v",
|
||
"invalid_config_path": "chemin de configuration invalide : %w",
|
||
"config_file_not_found": "fichier de configuration non trouvé : %s",
|
||
"error_reading_config_file": "erreur lors de la lecture du fichier de configuration : %w",
|
||
"error_parsing_config_file": "erreur lors de l'analyse du fichier de configuration : %w",
|
||
"error_reading_piped_message": "erreur lors de la lecture du message redirigé depuis stdin : %w",
|
||
"image_file_already_exists": "le fichier image existe déjà : %s",
|
||
"invalid_image_file_extension": "extension de fichier image invalide '%s'. Formats pris en charge : .png, .jpeg, .jpg, .webp",
|
||
"image_parameters_require_image_file": "les paramètres d'image (--image-size, --image-quality, --image-background, --image-compression) ne peuvent être utilisés qu'avec --image-file",
|
||
"invalid_image_size": "taille d'image invalide '%s'. Tailles prises en charge : 1024x1024, 1536x1024, 1024x1536, auto",
|
||
"invalid_image_quality": "qualité d'image invalide '%s'. Qualités prises en charge : low, medium, high, auto",
|
||
"invalid_image_background": "arrière-plan d'image invalide '%s'. Arrière-plans pris en charge : opaque, transparent",
|
||
"image_compression_jpeg_webp_only": "la compression d'image ne peut être utilisée qu'avec les formats JPEG et WebP, pas %s",
|
||
"image_compression_range_error": "la compression d'image doit être entre 0 et 100, reçu %d",
|
||
"transparent_background_png_webp_only": "l'arrière-plan transparent ne peut être utilisé qu'avec les formats PNG et WebP, pas %s",
|
||
"available_transcription_models": "Modèles de transcription disponibles :",
|
||
"tts_audio_generated_successfully": "Audio TTS généré avec succès et sauvegardé dans : %s\n",
|
||
"fabric_command_complete": "Commande Fabric terminée",
|
||
"fabric_command_complete_with_pattern": "Fabric : %s terminé",
|
||
"command_completed_successfully": "Commande terminée avec succès",
|
||
"output_truncated": "Sortie : %s...",
|
||
"output_full": "Sortie : %s",
|
||
"choose_pattern_from_available": "Choisissez un motif parmi les motifs disponibles",
|
||
"pattern_variables_help": "Valeurs pour les variables de motif, ex. -v=#role:expert -v=#points:30",
|
||
"choose_context_from_available": "Choisissez un contexte parmi les contextes disponibles",
|
||
"choose_session_from_available": "Choisissez une session parmi les sessions disponibles",
|
||
"attachment_path_or_url_help": "Chemin de pièce jointe ou URL (ex. pour les messages de reconnaissance d'image OpenAI)",
|
||
"run_setup_for_reconfigurable_parts": "Exécuter la configuration pour toutes les parties reconfigurables de fabric",
|
||
"set_temperature": "Définir la température",
|
||
"set_top_p": "Définir le top P",
|
||
"stream_help": "Streaming",
|
||
"set_presence_penalty": "Définir la pénalité de présence",
|
||
"use_model_defaults_raw_help": "Utilise les valeurs par défaut du modèle sans envoyer d’options de discussion (temperature, top_p, etc.). N’affecte que les fournisseurs compatibles avec OpenAI. Les modèles Anthropic utilisent toujours une sélection intelligente des paramètres pour respecter les exigences propres à chaque modèle.",
|
||
"set_frequency_penalty": "Définir la pénalité de fréquence",
|
||
"list_all_patterns": "Lister tous les motifs",
|
||
"list_all_available_models": "Lister tous les modèles disponibles",
|
||
"list_all_contexts": "Lister tous les contextes",
|
||
"list_all_sessions": "Lister toutes les sessions",
|
||
"update_patterns": "Mettre à jour les motifs",
|
||
"messages_to_send_to_chat": "Messages à envoyer au chat",
|
||
"copy_to_clipboard": "Copier dans le presse-papiers",
|
||
"choose_model": "Choisir le modèle",
|
||
"specify_vendor_for_model": "Spécifier le fournisseur pour le modèle sélectionné (ex. -V \"LM Studio\" -m openai/gpt-oss-20b)",
|
||
"model_context_length_ollama": "Longueur de contexte du modèle (affecte seulement ollama)",
|
||
"output_to_file": "Sortie vers fichier",
|
||
"output_entire_session": "Sortie de toute la session (même temporaire) vers le fichier de sortie",
|
||
"number_of_latest_patterns": "Nombre des motifs les plus récents à lister",
|
||
"change_default_model": "Changer le modèle par défaut",
|
||
"youtube_url_help": "Vidéo YouTube ou \"URL\" de liste de lecture pour récupérer la transcription, les commentaires et envoyer au chat ou afficher dans la console et stocker dans le fichier de sortie",
|
||
"prefer_playlist_over_video": "Préférer la liste de lecture à la vidéo si les deux IDs sont présents dans l'URL",
|
||
"grab_transcript_from_youtube": "Récupérer la transcription de la vidéo YouTube et envoyer au chat (utilisé par défaut).",
|
||
"grab_transcript_with_timestamps": "Récupérer la transcription de la vidéo YouTube avec horodatage et envoyer au chat",
|
||
"grab_comments_from_youtube": "Récupérer les commentaires de la vidéo YouTube et envoyer au chat",
|
||
"output_video_metadata": "Afficher les métadonnées de la vidéo",
|
||
"additional_yt_dlp_args": "Arguments supplémentaires à passer à yt-dlp (ex. '--cookies-from-browser brave')",
|
||
"specify_language_code": "Spécifier le code de langue pour le chat, ex. -g=en -g=zh -g=pt-BR -g=pt-PT",
|
||
"scrape_website_url": "Scraper l'URL du site web en markdown en utilisant Jina AI",
|
||
"search_question_jina": "Question de recherche en utilisant Jina AI",
|
||
"seed_for_lmm_generation": "Graine à utiliser pour la génération LMM",
|
||
"wipe_context": "Effacer le contexte",
|
||
"wipe_session": "Effacer la session",
|
||
"print_context": "Afficher le contexte",
|
||
"print_session": "Afficher la session",
|
||
"convert_html_readability": "Convertir l'entrée HTML en vue propre et lisible",
|
||
"apply_variables_to_input": "Appliquer les variables à l'entrée utilisateur",
|
||
"disable_pattern_variable_replacement": "Désactiver le remplacement des variables de motif",
|
||
"show_dry_run": "Montrer ce qui serait envoyé au modèle sans l'envoyer réellement",
|
||
"serve_fabric_rest_api": "Servir l'API REST Fabric",
|
||
"serve_fabric_api_ollama_endpoints": "Servir l'API REST Fabric avec les endpoints ollama",
|
||
"address_to_bind_rest_api": "Adresse pour lier l'API REST",
|
||
"api_key_secure_server_routes": "Clé API utilisée pour sécuriser les routes du serveur",
|
||
"path_to_yaml_config": "Chemin vers le fichier de configuration YAML",
|
||
"print_current_version": "Afficher la version actuelle",
|
||
"list_all_registered_extensions": "Lister toutes les extensions enregistrées",
|
||
"register_new_extension": "Enregistrer une nouvelle extension depuis le chemin du fichier de configuration",
|
||
"remove_registered_extension": "Supprimer une extension enregistrée par nom",
|
||
"choose_strategy_from_available": "Choisir une stratégie parmi les stratégies disponibles",
|
||
"list_all_strategies": "Lister toutes les stratégies",
|
||
"list_all_vendors": "Lister tous les fournisseurs",
|
||
"output_raw_list_shell_completion": "Sortie de liste brute sans en-têtes/formatage (pour la complétion shell)",
|
||
"enable_web_search_tool": "Activer l'outil de recherche web pour les modèles pris en charge (Anthropic, OpenAI, Gemini)",
|
||
"set_location_web_search": "Définir l'emplacement pour les résultats de recherche web (ex. 'America/Los_Angeles')",
|
||
"save_generated_image_to_file": "Sauvegarder l'image générée dans le chemin de fichier spécifié (ex. 'output.png')",
|
||
"image_dimensions_help": "Dimensions de l'image : 1024x1024, 1536x1024, 1024x1536, auto (par défaut : auto)",
|
||
"image_quality_help": "Qualité de l'image : low, medium, high, auto (par défaut : auto)",
|
||
"compression_level_jpeg_webp": "Niveau de compression 0-100 pour les formats JPEG/WebP (par défaut : non défini)",
|
||
"background_type_help": "Type d'arrière-plan : opaque, transparent (par défaut : opaque, seulement pour PNG/WebP)",
|
||
"suppress_thinking_tags": "Supprimer le texte encadré par les balises de réflexion",
|
||
"start_tag_thinking_sections": "Balise de début pour les sections de réflexion",
|
||
"end_tag_thinking_sections": "Balise de fin pour les sections de réflexion",
|
||
"disable_openai_responses_api": "Désactiver l'API OpenAI Responses (par défaut : false)",
|
||
"audio_video_file_transcribe": "Fichier audio ou vidéo à transcrire",
|
||
"model_for_transcription": "Modèle à utiliser pour la transcription (séparé du modèle de chat)",
|
||
"split_media_files_ffmpeg": "Diviser les fichiers audio/vidéo de plus de 25MB en utilisant ffmpeg",
|
||
"tts_voice_name": "Nom de voix TTS pour les modèles pris en charge (ex. Kore, Charon, Puck)",
|
||
"list_gemini_tts_voices": "Lister toutes les voix TTS Gemini disponibles",
|
||
"list_transcription_models": "Lister tous les modèles de transcription disponibles",
|
||
"send_desktop_notification": "Envoyer une notification de bureau quand la commande se termine",
|
||
"custom_notification_command": "Commande personnalisée à exécuter pour les notifications (remplace les notifications intégrées)",
|
||
"set_reasoning_thinking_level": "Définir le niveau de raisonnement/réflexion (ex. off, low, medium, high, ou tokens numériques pour Anthropic ou Google Gemini)",
|
||
"set_debug_level": "Définir le niveau de débogage (0=désactivé, 1=basique, 2=détaillé, 3=trace)",
|
||
"usage_header": "Utilisation :",
|
||
"application_options_header": "Options de l'application :",
|
||
"help_options_header": "Options d'aide :",
|
||
"help_message": "Afficher ce message d'aide",
|
||
"options_placeholder": "[OPTIONS]",
|
||
"available_vendors_header": "Fournisseurs disponibles :",
|
||
"available_models_header": "Modèles disponibles",
|
||
"no_items_found": "Aucun %s",
|
||
"no_description_available": "Aucune description disponible",
|
||
"i18n_download_failed": "Échec du téléchargement de la traduction pour la langue '%s' : %v",
|
||
"i18n_load_failed": "Échec du chargement du fichier de traduction : %v"
|
||
}
|