#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-06-12 05:36+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"

#: src/uagent/checks.py:17 src/uagent/checks.py:27
#, python-format
msgid "Please install Git. See: %(url)s"
msgstr "Veuillez installer Git. Voir : %(url)s"

#: src/uagent/checks.py:20
msgid ""
"Please install Git. Example: sudo apt install git (Ubuntu/Debian) or sudo "
"yum install git (CentOS/RHEL)"
msgstr ""
"Installez Git. Exemple : sudo apt install git (Ubuntu/Debian) ou sudo yum "
"install git (CentOS/RHEL)"

#: src/uagent/checks.py:23
msgid ""
"Please install Git. If using Homebrew: brew install git, or install Xcode "
"Command Line Tools: xcode-select --install"
msgstr ""
"Installez Git. Si vous utilisez Homebrew : brew install git, ou installez "
"Xcode Command Line Tools : xcode-select --install"

#: src/uagent/checks.py:30
msgid "[ERROR] Git is not installed."
msgstr "[ERREUR] Git n’est pas installé."

#: src/uagent/cli.py:397
msgid "getch() fallback to input()"
msgstr "getch() bascule sur input() si nécessaire"

#: src/uagent/cli.py:604
msgid "Received Ctrl+C. Starting shutdown..."
msgstr "Ctrl+C reçu. Arrêt en cours..."

#: src/uagent/cli.py:636 src/uagent/cli.py:706
#, python-format
msgid ""
"(Multiline input mode: enter the body in multiple lines; to restart, type "
"\"\"\"retry; finish with a line containing %(sentinel)s)"
msgstr ""
"(Mode de saisie multi-lignes : saisissez le corps sur plusieurs lignes ; "
"pour recommencer, tapez \"\"\"retry ; terminez par une ligne contenant "
"%(sentinel)s)"

#: src/uagent/cli.py:666 src/uagent/setup_cli.py:1183
#: src/uagent/setup_cli.py:1202 src/uagent/setup_cli.py:1225
#: src/uagent/setup_cli.py:1241 src/uagent/setup_cli.py:1260
#: src/uagent/setup_cli.py:1279 src/uagent/setup_cli.py:1293
#: src/uagent/setup_cli.py:1306 src/uagent/setup_cli.py:1314
#: src/uagent/setup_cli.py:1327 src/uagent/setup_cli.py:1339
#: src/uagent/setup_cli.py:1350 src/uagent/setup_cli.py:1436
#: src/uagent/setup_cli.py:1462
msgid "Cancelled."
msgstr "Annulé."

#: src/uagent/cli.py:672 src/uagent/cli.py:722
msgid "Discarded previous input. Please start over."
msgstr "La saisie précédente a été ignorée. Veuillez recommencer."

#: src/uagent/cli.py:683
msgid "Received multiline reply."
msgstr "Réponse multi-lignes reçue."

#: src/uagent/cli.py:841
msgid ""
"Image file paths were found in your input.\n"
"Do you want to send these images to the LLM (external API) for analysis?\n"
"\n"
msgstr ""
"Des chemins de fichiers image ont été trouvés dans votre saisie.\n"
"Voulez-vous envoyer ces images au LLM (API externe) pour analyse ?\n"
"\n"

#: src/uagent/cli.py:847
msgid "Reply with y to send, or n (or c/cancel) to skip sending."
msgstr ""
"Répondez par y pour envoyer, ou par n (ou c/cancel) pour ignorer l’envoi."

#: src/uagent/cli.py:865
#, python-format
msgid ""
"Image send confirmation failed; will not send images: %(etype)s: %(err)s"
msgstr ""
"La confirmation d’envoi d’image a échoué ; les images ne seront pas envoyées"
" : %(etype)s: %(err)s"

#: src/uagent/cli.py:893 src/uagent/scheckgui.py:432
#, python-format
msgid "Failed to attach image: %(path)s (%(etype)s: %(err)s)"
msgstr "Échec de l’ajout de l’image : %(path)s (%(etype)s: %(err)s)"

#: src/uagent/cli.py:930
#, python-format
msgid "Unknown event kind=%(kind)r: %(ev)r"
msgstr "Type d’événement inconnu=%(kind)r : %(ev)r"

#: src/uagent/cli.py:948
msgid "Exited uag."
msgstr "uag quitté."

#: src/uagent/cli_docs.py:33
msgid "[docs] name is required"
msgstr "[docs] le nom est requis"

msgid "[INFO] startup genre prompt = numeric-input"
msgstr "[INFO] invite de genre au démarrage = saisie numérique"

msgid ""
"数値の合計を入力してください (例: 3 = comm + office, 15 = すべて, または Enter キーを押してすべて有効化):"
msgstr ""
"Veuillez saisir la somme numérique (ex. : 3 = comm + office, 15 = tout, ou "
"appuyez sur Entrée pour tout activer) :"

msgid "Communication (Teams, Discord, etc.)"
msgstr "Communication (Teams, Discord, etc.)"

msgid "Office suite (Excel, Word, etc.)"
msgstr "Suite bureautique (Excel, Word, etc.)"

msgid "Development (lint, py_compile, test, etc.)"
msgstr "Développement (lint, py_compile, test, etc.)"

msgid "IoT (Bluetooth, etc.)"
msgstr "IoT (Bluetooth, etc.)"

msgid "Tool genre selection"
msgstr "Sélection du genre d’outil"

msgid "Use Space to toggle, Arrow keys to move, Enter to confirm."
msgstr ""
"Utilisez Espace pour basculer, les flèches pour vous déplacer et Entrée pour"
" confirmer."

msgid "OK"
msgstr "OK"

msgid "Default"
msgstr "Par défaut"

msgid "[INFO] startup genre prompt = numeric-input (prompt_toolkit fallback)"
msgstr ""
"[INFO] invite de genre au démarrage = saisie numérique (solution de secours "
"prompt_toolkit)"

#: src/uagent/cli_startup.py:146
#, python-format
msgid "[WARN] Failed to apply startup tool selection: %(err)s"
msgstr ""
"[WARN] Échec de l'application de la sélection de l'outil de démarrage : "
"%(err)s"

#: src/uagent/cli_startup.py:221 src/uagent/web.py:1053
#, python-format
msgid "[FATAL] Failed to set workdir: %(err)s"
msgstr "[FATAL] Échec de la définition du répertoire de travail : %(err)s"

#: src/uagent/cli_startup.py:250
#, python-format
msgid "[FATAL] Failed to launch uag_setup: %(err)s"
msgstr "[FATAL] Échec du lancement de uag_setup : %(err)s"

#: src/uagent/cli_startup.py:291
#, python-format
msgid "provider = %(provider)s; model = %(model)s"
msgstr "fournisseur = %(provider)s ; modèle = %(model)s"

#: src/uagent/cli_startup.py:298 src/uagent/scheckgui.py:296
msgid "OpenRouter fallback models enabled."
msgstr "Modèles de secours OpenRouter activés."

#: src/uagent/cli_startup.py:302
#, python-format
msgid "current workdir = %(cwd)s"
msgstr "répertoire de travail actuel = %(cwd)s"

#: src/uagent/cli_startup.py:313 src/uagent/scheckgui.py:307
msgid "Loaded long-term memory."
msgstr "Mémoire à long terme chargée."

#: src/uagent/cli_startup.py:326 src/uagent/scheckgui.py:320
msgid "Loaded shared long-term memory."
msgstr "Mémoire à long terme partagée chargée."

#: src/uagent/cli_startup.py:333 src/uagent/web.py:718
#, python-format
msgid ""
"[WARN] Exception occurred while loading shared long-term memory: %(err)s"
msgstr ""
"[AVERTISSEMENT] Une exception est survenue lors du chargement de la mémoire "
"longue partagée : %(err)s"

#: src/uagent/cli_startup.py:367
#, python-format
msgid "[WARN] Failed to read startup file: %(path)s (%(err)s)"
msgstr ""
"[AVERTISSEMENT] Impossible de lire le fichier de démarrage : %(path)s "
"(%(err)s)"

#: src/uagent/cli_startup.py:381
#, python-format
msgid "Startup file provided: %(path)s"
msgstr "Fichier de démarrage fourni : %(path)s"

#: src/uagent/cli_startup.py:404
msgid "--non-interactive was specified; exiting without waiting for stdin."
msgstr "--non-interactive a été spécifié ; sortie sans attendre stdin."

#: src/uagent/core.py:286 src/uagent/core.py:307
#, python-format
msgid "Environment variable %(name)s is not set."
msgstr "La variable d'environnement %(name)s n'est pas définie."

#: src/uagent/core.py:607
msgid "No log files found."
msgstr "Aucun fichier journal trouvé."

#: src/uagent/core.py:625
msgid "(unknown time)"
msgstr "(heure inconnue)"

#: src/uagent/core.py:628
#, python-format
msgid "logs: showing %(shown)d/%(total)d (dir=%(dir)s)"
msgstr "journaux : affichage de %(shown)d/%(total)d (dossier=%(dir)s)"

#: src/uagent/core.py:631
msgid "Log files:"
msgstr "Fichiers journaux :"

#: src/uagent/core.py:638
msgid "(mtime unknown)"
msgstr "(heure de modification inconnue)"

#: src/uagent/core.py:756 src/uagent/core.py:759
msgid "(no user message)"
msgstr "(aucun message utilisateur)"

#: src/uagent/core.py:764
#, python-format
msgid ""
"[%(idx)d] %(mtime_text)s | %(turns)d msgs | first: %(first_user)s | last: "
"%(last_user)s"
msgstr ""
"[%(idx)d] %(mtime_text)s | %(turns)d messages | premier : %(first_user)s | "
"dernier : %(last_user)s"

#: src/uagent/core.py:896
#, python-format
msgid ""
"[WARN] Dropping orphan tool message: tool_call_id=%(tool_call_id)r "
"name=%(name)r"
msgstr ""
"[WARN] Suppression du message d’outil orphelin : "
"tool_call_id=%(tool_call_id)r name=%(name)r"

#: src/uagent/core.py:994
#, python-format
msgid ""
"[INFO] There were %(count)d messages to compress, so nothing was changed."
msgstr ""
"[INFO] Il y avait %(count)d messages à compresser, donc rien n’a été "
"modifié."

#: src/uagent/core.py:1004
#, python-format
msgid ""
"[INFO] Compressed in-memory conversation history: %(old_n)d -> %(new_n)d "
"messages (keep_last=%(keep_last)d)"
msgstr ""
"[INFO] Historique de conversation en mémoire compressé : %(old_n)d -> "
"%(new_n)d messages (keep_last=%(keep_last)d)"

#: src/uagent/core.py:1215
msgid "429 retry limit (%(max_retries)s) reached while history compression."
msgstr ""
"Limite de tentatives 429 (%(max_retries)s) atteinte lors de la compression "
"de l'historique."

#: src/uagent/core.py:1225
msgid "Error while calling LLM for history compression: %(err)r"
msgstr ""
"Erreur lors de l'appel du LLM pour la compression de l'historique : %(err)r"

#: src/uagent/core.py:1258
msgid "- Summarize the conversation chunk in English.\n"
msgstr "- Résumez le bloc de conversation en anglais.\n"

#: src/uagent/core.py:1260
msgid ""
"- Keep the summary concise but include key decisions, constraints, and "
"pending items.\n"
msgstr ""
"- Gardez le résumé concis mais incluez les décisions clés, les contraintes "
"et les éléments en attente.\n"

#: src/uagent/core.py:1262
msgid "- Output should be directly usable as a system message."
msgstr "- La sortie doit être directement utilisable comme message système."

#: src/uagent/core.py:1265
msgid "Conversation chunk:\n"
msgstr "Bloc de conversation :\n"

#: src/uagent/core.py:1267
msgid "Write a concise summary of this chunk."
msgstr "Écrivez un résumé concis de ce bloc."

#: src/uagent/core.py:1271
msgid "- You are updating an existing conversation summary.\n"
msgstr "- Vous mettez à jour un résumé de conversation existant.\n"

#: src/uagent/core.py:1272
msgid "- Preserve important facts from the previous summary.\n"
msgstr "- Préservez les faits importants du résumé précédent.\n"

#: src/uagent/core.py:1274
msgid ""
"- Merge in the new chunk without losing constraints, decisions, or pending "
"items.\n"
msgstr ""
"- Fusionnez le nouveau bloc sans perdre les contraintes, les décisions ou "
"les éléments en attente.\n"

#: src/uagent/core.py:1276
msgid "- Keep the result concise and suitable for a system message."
msgstr "- Gardez le résultat concis et adapté à un message système."

#: src/uagent/core.py:1279
msgid "Previous summary:\n"
msgstr "Résumé précédent :\n"

#: src/uagent/core.py:1281
msgid "New chunk:\n"
msgstr "Nouveau bloc :\n"

#: src/uagent/core.py:1283
msgid "Update the summary while keeping the prior context intact."
msgstr "Mettez à jour le résumé tout en gardant le contexte précédent intact."

#: src/uagent/core.py:1304
msgid "Summary of the conversation so far:\n"
msgstr "Résumé de la conversation jusqu'à présent :\n"

#: src/uagent/core.py:1311
msgid ""
"[INFO] shrink_llm: {old_n} -> {new_n} messages (compressed {old_part_n} "
"older messages into 1 summary; kept {tail_n} tail)"
msgstr ""
"[INFO] shrink_llm: {old_n} -> {new_n} messages ({old_part_n} anciens "
"messages compressés en 1 résumé ; {tail_n} conservés à la fin)"

#: src/uagent/core.py:1339
msgid ""
"[WARN] history compression hit context length even at chunk_size=1; falling "
"back to shrink_messages()."
msgstr ""
"[WARN] La compression de l’historique a atteint la limite de contexte même "
"avec chunk_size=1 ; retour à shrink_messages()."

#: src/uagent/core.py:1349
msgid ""
"[WARN] history compression could not reduce chunk_size further; falling back"
" to shrink_messages()."
msgstr ""
"[WARN] Impossible de réduire davantage chunk_size ; retour à "
"shrink_messages()."

#: src/uagent/core.py:1357
#, python-format
msgid ""
"[WARN] history compression context length exceeded; retrying with "
"chunk_size=%(chunk_size)d"
msgstr ""
"[WARN] La limite de contexte a été dépassée lors de la compression de "
"l’historique ; nouvel essai avec chunk_size=%(chunk_size)d"

#: src/uagent/core.py:1367
msgid ""
"[WARN] history compression failed due to LLM error; falling back to "
"shrink_messages()."
msgstr ""
"[WARN] Échec de la compression de l'historique en raison d'une erreur LLM ; "
"repli sur shrink_messages()."

#: src/uagent/core.py:1388
#, python-format
msgid ":help  (help unavailable: %(err)s)"
msgstr ":help  (aide indisponible : %(err)s)"

#: src/uagent/core.py:1400
#, fuzzy
msgid ""
"## Mission\n"
"- You are a capable \"general-purpose tool execution agent\" running on a local environment, and you can actually execute commands and operate on files on the user's machine.\n"
"- Ask the user for confirmation before performing any dangerous operation.\n"
"- Do not flatter the user. Do not use emojis.\n"
"- Do not summarize. Keep information concise.\n"
"- When creating files, output the complete final content (do not output diffs or partial summaries).\n"
"- Do not output raw tool execution results, JSON fragments, or trailing brackets (like `py]}`) in your final response. Keep your output clean and well-formatted.\n"
msgstr ""
"## Mission\n"
"- Vous êtes un agent capable s'exécutant dans un environnement local, et vous pouvez réellement exécuter des commandes et manipuler des fichiers sur la machine de l'utilisateur.\n"
"- Demandez confirmation à l'utilisateur avant toute opération dangereuse.\n"
"- Ne faites pas de flatterie. N'utilisez pas d'emojis.\n"
"- Ne résumez pas. Restez concis.\n"
"- Lors de la création de fichiers, affichez le contenu final complet (pas de diffs ni de résumés partiels).\n"

#: src/uagent/core.py:1409
msgid ""
"## Rules\n"
"- Always use the provided tools and verify the latest information.\n"
"- Be creative, but do not output uncertain information.\n"
"- Consult available tools and choose the most appropriate one.\n"
"- When executing tools, delegate as little decision-making as possible to the user.\n"
msgstr ""
"## Règles\n"
"- Utilisez toujours les outils fournis et vérifiez les informations les plus récentes.\n"
"- Faites preuve de créativité, mais ne produisez pas d'informations incertaines.\n"
"- Consultez les outils disponibles et choisissez celui qui convient le mieux.\n"
"- Lors de l'exécution des outils, déléguez le moins possible la prise de décision à l'utilisateur.\n"

#: src/uagent/core.py:1416
msgid ""
"## Notes\n"
"- All user messages come via this script's standard input.\n"
"- For tool-specific purpose/arguments/constraints/operational details, prefer each tool's description.\n"
"- If you need additional information or confirmation from the user, use the human_ask tool.\n"
"- When handling relative date expressions, call get_current_time to reference the current time.\n"
"- Do not store secrets (passwords/tokens) in long-term memory (add_long_memory, etc.).\n"
"- Files with suffixes like .org / .org1 / .org2 are backup copies and must not be treated as primary editable files.\n"
"- If you create Python files, run `python -m py_compile` to validate syntax.\n"
"- If expert-level knowledge is required, use prompt templates (Agent Skills) and follow them.\n"
"- If the user's input is only a short affirmation and adds no new information, do not repeat the same explanation unless it is a direct answer to the immediately preceding clear question. If needed, ask briefly: \"Which point should I continue with?\"\n"
msgstr ""
"## Notes\n"
"- Tous les messages utilisateur passent par l'entrée standard de ce script.\n"
"- Pour le but, les arguments, les contraintes ou les détails opérationnels propres à un outil, privilégiez la description de chaque outil.\n"
"- Si vous avez besoin d'informations supplémentaires ou d'une confirmation de l'utilisateur, utilisez l'outil human_ask.\n"
"- Lors du traitement d'expressions de date relatives, appelez get_current_time pour connaître l'heure actuelle.\n"
"- Ne stockez pas de secrets (mots de passe/tokens) dans la mémoire longue durée (add_long_memory, etc.).\n"
"- Les fichiers portant des suffixes comme .org / .org1 / .org2 sont des copies de sauvegarde et ne doivent pas être traités comme des fichiers principaux modifiables.\n"
"- Si vous créez des fichiers Python, exécutez `python -m py_compile` pour valider la syntaxe.\n"
"- Si des connaissances de niveau expert sont requises, utilisez les modèles de prompt (Agent Skills) et suivez-les.\n"
"- Si l'entrée de l'utilisateur n'est qu'une brève confirmation et n'ajoute aucune nouvelle information, ne répétez pas la même explication, sauf s'il s'agit d'une réponse directe à la question claire immédiatement précédente. Si nécessaire, demandez brièvement : \"Par quelle partie dois-je poursuivre ?\"\n"

#: src/uagent/core.py:1428
msgid ""
"## Dangerous operation policy (delete_file)\n"
"- For deletion using the delete_file tool, do NOT ask for confirmation before preview.\n"
"- Always run delete_file with dry_run=true first to get the list of deletion candidates.\n"
"- Show the candidates to the user and ask confirmation via human_ask exactly once.\n"
"- Only when the user explicitly replies \"y\" or \"yes\" (or equivalent explicit approval), run delete_file again with the same parameters, dry_run=false, and confirmed=true.\n"
"- If there are zero candidates, do not ask; just report that nothing will be deleted.\n"
msgstr ""
"## Politique d'opération dangereuse (delete_file)\n"
"- Pour la suppression avec l'outil delete_file, ne demandez pas de confirmation avant l'aperçu.\n"
"- Exécutez toujours d'abord delete_file avec dry_run=true pour obtenir la liste des candidats à la suppression.\n"
"- Montrez les candidats à l'utilisateur et demandez une confirmation via human_ask une seule fois.\n"
"- Seulement si l'utilisateur répond explicitement y ou yes (ou une approbation explicite équivalente), relancez delete_file avec les mêmes paramètres, dry_run=false et confirmed=true.\n"
"- S'il n'y a aucun candidat, ne demandez rien ; indiquez simplement qu'aucune suppression ne sera effectuée.\n"

#: src/uagent/core.py:1436
#, fuzzy
msgid ""
"## Mission\n"
"- You are a capable \"general-purpose tool execution agent\" running on a local environment; you can execute commands and operate on the user's machine.\n"
"- Ask the user for confirmation before any dangerous operation.\n"
"- No flattery. No emojis. No conversation summaries. Keep it concise.\n"
"- When creating files, output the complete final content (no diffs/partial summaries).\n"
"- Do not output raw tool execution results, JSON fragments, or trailing brackets (like `py]}`) in your final response. Keep your output clean and well-formatted.\n"
msgstr ""
"## Mission\n"
"- Vous êtes un agent d’exécution d’outils polyvalent exécuté dans un environnement local ; vous pouvez exécuter des commandes et agir sur la machine de l’utilisateur.\n"
"- Demandez une confirmation à l’utilisateur avant toute opération dangereuse.\n"
"- Pas de flatterie. Pas d’emojis. Pas de résumés de conversation. Restez concis.\n"
"- Lors de la création de fichiers, affichez le contenu final complet (pas de diffs ni de résumés partiels).\n"

#: src/uagent/core.py:1444
msgid ""
"## Rules\n"
"- Use the provided tools first and verify results with tools.\n"
"- Consult tool descriptions for purpose/arguments/constraints; choose the most appropriate and safest tool.\n"
"- Be creative, but do not output uncertain information.\n"
"- Delegate as little decision-making as possible to the user.\n"
msgstr ""
"## Règles\n"
"- Utilisez d’abord les outils fournis et vérifiez les résultats avec eux.\n"
"- Consultez les descriptions des outils pour leur but, leurs arguments et leurs contraintes ; choisissez l’outil le plus approprié et le plus sûr.\n"
"- Faites preuve de créativité, mais ne produisez pas d’informations incertaines.\n"
"- Déléguez le moins possible la prise de décision à l’utilisateur.\n"

#: src/uagent/core.py:1451
msgid ""
"## Notes\n"
"- All user messages come via this script's standard input.\n"
"- If required info/parameters are missing, ask via human_ask (do not guess).\n"
"- Relative dates: call get_current_time.\n"
"- Do not store secrets (passwords/tokens) in long-term memory.\n"
"- Files with suffixes like .org / .org1 / .org2 are backup copies and must not be treated as primary editable files.\n"
"- If you create Python files, run `python -m py_compile`.\n"
"- If expert-level knowledge is required, use Agent Skills prompt templates.\n"
"- If the user's input is only a short affirmation and adds no new information, do not repeat the same explanation unless it is a direct answer to the immediately preceding clear question. If needed, ask briefly: \"Which point should I continue with?\"\n"
msgstr ""
"## Notes\n"
"- Tous les messages utilisateur passent par l'entrée standard de ce script.\n"
"- Si les informations/paramètres requis manquent, demandez-les via l'outil human_ask (sans deviner).\n"
"- Pour les dates relatives, appelez get_current_time.\n"
"- Ne stockez pas de secrets (mots de passe/tokens) dans la mémoire longue durée.\n"
"- Les fichiers portant des suffixes comme .org / .org1 / .org2 sont des copies de sauvegarde et ne doivent pas être traités comme des fichiers principaux modifiables.\n"
"- Si vous créez des fichiers Python, exécutez `python -m py_compile`.\n"
"- Si des connaissances expertes sont requises, utilisez les modèles de prompt Agent Skills.\n"
"- Si l'entrée de l'utilisateur n'est qu'une brève confirmation et n'ajoute aucune nouvelle information, ne répétez pas la même explication, sauf s'il s'agit d'une réponse directe à la question claire immédiatement précédente. Si nécessaire, demandez brièvement : \"Par quelle partie dois-je poursuivre ?\"\n"

#: src/uagent/core.py:1464
msgid ""
"- If the user is using Windows cmd.exe, prefer multi-line commands using "
"caret (^) line continuation, and keep each line short to avoid copy/paste "
"line breaks.\n"
msgstr ""
"- Si l'utilisateur utilise Windows cmd.exe, préférez les commandes "
"multilignes avec la continuation caret (^) et gardez chaque ligne courte "
"pour éviter les retours à la ligne lors du copier-coller.\n"

#: src/uagent/core.py:1531
msgid ""
"The following tools are currently loaded in this session. Choose the most "
"appropriate tool for the task."
msgstr ""
"Les outils suivants sont actuellement chargés dans cette session. Choisissez"
" l’outil le plus approprié pour la tâche."

#: src/uagent/docs_util.py:27
msgid "Project README"
msgstr "README du projet"

#: src/uagent/docs_util.py:32
msgid "Quickstart (Windows wheel install)"
msgstr "Démarrage rapide (installation du wheel Windows)"

#: src/uagent/docs_util.py:37
msgid "Web Inspector (playwright_inspector) guide"
msgstr "Guide Web Inspector (playwright_inspector)"

#: src/uagent/docs_util.py:42
msgid "Developer information"
msgstr "Informations pour les développeurs"

#: src/uagent/docs_util.py:149
#, python-format
msgid "unknown doc name: %(name)r"
msgstr "nom de document inconnu : %(name)r"

#: src/uagent/docs_util.py:172
#, python-format
msgid "doc file not found: %(filename)s"
msgstr "fichier de document introuvable : %(filename)s"

#: src/uagent/docs_util.py:203
#, python-format
msgid "doc path resolution failed: %(filename)s: %(err)s"
msgstr "échec de résolution du chemin du document : %(filename)s : %(err)s"

#: src/uagent/docs_util.py:227
msgid "[docs] Available documents:"
msgstr "[docs] Documents disponibles :"

#: src/uagent/docs_util.py:231
msgid "Usage:"
msgstr "Utilisation :"

#: src/uagent/docs_util.py:232
msgid "list"
msgstr "liste"

#: src/uagent/docs_util.py:233
msgid "show"
msgstr "afficher"

#: src/uagent/docs_util.py:234
msgid "show path"
msgstr "afficher le chemin"

#: src/uagent/docs_util.py:235
msgid "open with OS"
msgstr "ouvrir avec l'OS"

#: src/uagent/env_validate.py:42
msgid ""
"Required to select the LLM provider "
"(azure/openai/bedrock/openrouter/gemini/grok/claude/nvidia)."
msgstr ""
"Requis pour sélectionner le fournisseur du LLM "
"(azure/openai/bedrock/openrouter/gemini/grok/claude/nvidia)."

#: src/uagent/env_validate.py:63
#, python-format
msgid ""
"Unknown provider: %(provider)r. Allowed: %(allowed)s (startup will likely "
"fail)."
msgstr ""
"Fournisseur inconnu : %(provider)r. Autorisés : %(allowed)s (le démarrage "
"échouera probablement)."

#: src/uagent/env_validate.py:74
msgid ""
"Azure OpenAI endpoint/base URL (e.g., https://<resource>.openai.azure.com/)."
msgstr ""
"Point de terminaison/URL de base Azure OpenAI (par ex. "
"https://<resource>.openai.azure.com/)."

#: src/uagent/env_validate.py:80
msgid "Azure OpenAI API key."
msgstr "Clé API Azure OpenAI."

#: src/uagent/env_validate.py:85
msgid "Azure OpenAI API version (e.g., 2024-xx-xx)."
msgstr "Version de l’API Azure OpenAI (par ex. 2024-xx-xx)."

#: src/uagent/env_validate.py:92
msgid "OpenAI API key."
msgstr "Clé API OpenAI."

#: src/uagent/env_validate.py:98
msgid "Bedrock proxy endpoint/base URL (OpenAI-compatible)."
msgstr ""
"Point de terminaison/URL de base du proxy Bedrock (compatible OpenAI)."

#: src/uagent/env_validate.py:105
msgid "Bedrock proxy API key (OpenAI-compatible)."
msgstr "Clé API du proxy Bedrock (compatible OpenAI)."

#: src/uagent/env_validate.py:112
msgid "OpenRouter API key."
msgstr "Clé API OpenRouter."

#: src/uagent/env_validate.py:117
msgid "Grok (xAI) API key."
msgstr "Clé API Grok (xAI)."

#: src/uagent/env_validate.py:122
msgid "Gemini API key."
msgstr "Clé API Gemini."

#: src/uagent/env_validate.py:129
msgid ""
"Python package 'google-genai' is not installed. Provider=gemini requires it."
msgstr ""
"Le paquet Python 'google-genai' n’est pas installé. Le fournisseur gemini en"
" a besoin."

#: src/uagent/env_validate.py:140
msgid "Vertex AI API key / model name."
msgstr "Clé API Vertex AI / nom du modèle."

#: src/uagent/env_validate.py:149
msgid ""
"Python package 'google-genai' is not installed. Provider=vertexai requires "
"it."
msgstr ""
"Le paquet Python 'google-genai' n’est pas installé. Le fournisseur vertexai "
"en a besoin."

#: src/uagent/env_validate.py:157
msgid "Anthropic (Claude) API key."
msgstr "Clé API Anthropic (Claude)."

#: src/uagent/env_validate.py:165
msgid ""
"Python package 'anthropic' is not installed. Provider=claude requires it."
msgstr ""
"Le paquet Python 'anthropic' n’est pas installé. Le fournisseur claude en a "
"besoin."

#: src/uagent/env_validate.py:172
msgid "NVIDIA API key."
msgstr "Clé API NVIDIA."

#: src/uagent/env_validate.py:190
#, python-format
msgid ""
"Unknown embedding provider: %(provider)r. Allowed: %(allowed)s (startup will"
" likely fail)."
msgstr ""
"Fournisseur d’embedding inconnu : %(provider)r. Autorisés : %(allowed)s (le "
"démarrage échouera probablement)."

#: src/uagent/env_validate.py:207
msgid "Azure embedding endpoint / API key / API version / deployment name."
msgstr ""
"Point de terminaison d’embedding Azure / clé API / version de l’API / nom du"
" déploiement."

#: src/uagent/env_validate.py:218
msgid "OpenAI embedding API key / model name."
msgstr "Clé API d’embedding OpenAI / nom du modèle."

#: src/uagent/env_validate.py:230
msgid "Bedrock embedding endpoint / API key / deployment name."
msgstr ""
"Point de terminaison d’embedding Bedrock / clé API / nom du déploiement."

#: src/uagent/env_validate.py:241
msgid "OpenRouter embedding API key / model name."
msgstr "Clé API d’embedding OpenRouter / nom du modèle."

#: src/uagent/env_validate.py:252
msgid "Ollama embedding base URL / model name."
msgstr "URL de base d’embedding Ollama / nom du modèle."

#: src/uagent/env_validate.py:263
msgid "NVIDIA embedding API key / model name."
msgstr "Clé API d’embedding NVIDIA / nom du modèle."

#: src/uagent/env_validate.py:274
msgid "Gemini embedding API key / model name."
msgstr "Clé API / nom de modèle d’intégration Gemini."

#: src/uagent/env_validate.py:285
msgid "Vertex AI embedding API key / model name."
msgstr "Clé API / nom de modèle d’intégration Vertex AI."

#: src/uagent/env_validate.py:302
#, python-brace-format
msgid "[FATAL] Environment validation failed ({context})."
msgstr "[FATAL] La validation de l'environnement a échoué ({context})."

#: src/uagent/env_validate.py:310
msgid "Missing required environment variables:"
msgstr "Variables d'environnement requises manquantes :"

#: src/uagent/env_validate.py:317
msgid "Warnings:"
msgstr "Avertissements :"

#: src/uagent/env_validate.py:321
msgid "How to fix:"
msgstr "Comment corriger :"

#: src/uagent/env_validate.py:324
msgid ""
"- Set the variables above in your environment before starting the program."
msgstr ""
"- Définissez les variables ci-dessus dans votre environnement avant de "
"lancer le programme."

#: src/uagent/env_validate.py:330
msgid ""
"- You can set them via your OS environment settings, a .env file, your shell"
" startup scripts,"
msgstr ""
"- Vous pouvez les définir via les paramètres d'environnement de votre "
"système, un fichier .env, vos scripts de démarrage du shell,"

#: src/uagent/env_validate.py:336
msgid ""
"  or your process manager / service configuration (CI secrets, systemd, "
"Docker, etc.)."
msgstr ""
"  ou la configuration de votre gestionnaire de processus / service (secrets "
"CI, systemd, Docker, etc.)."

#: src/uagent/image_session.py:101
msgid "(prompt unavailable)"
msgstr "(invite indisponible)"

#: src/uagent/image_session.py:105
#, python-format
msgid "screenshot: %(title)s"
msgstr "capture d’écran : %(title)s"

#: src/uagent/image_session.py:107
msgid "screenshot"
msgstr "capture d’écran"

#: src/uagent/image_session.py:148
msgid "Image-session context:"
msgstr "Contexte de la session d’images :"

#: src/uagent/image_session.py:149
msgid "This conversation already generated images."
msgstr "Cette conversation a déjà généré des images."

#: src/uagent/image_session.py:151
msgid ""
"Use the prior prompts and saved file paths below as context for follow-up "
"edits, variants, or continuations."
msgstr ""
"Utilisez les invites précédentes et les chemins de fichiers enregistrés ci-"
"dessous comme contexte pour les modifications suivantes, les variantes ou la"
" poursuite."

#: src/uagent/image_session.py:156
#, python-format
msgid "Turn %(idx)d:"
msgstr "Tour %(idx)d :"

#: src/uagent/image_session.py:157
#, python-format
msgid "- prompt: %(prompt)s"
msgstr "- prompt : %(prompt)s"

#: src/uagent/image_session.py:160
#, python-format
msgid "- file: %(path)s"
msgstr "- fichier : %(path)s"

#: src/uagent/llm_errors.py:398
#, python-format
msgid ""
"[RATE_LIMIT] provider=%(provider)s model=%(model)s status=%(status)s "
"attempt=%(attempt)s/%(max_retries)s wait=%(wait_seconds).1fs "
"retry_after=%(retry_after)s"
msgstr ""
"[RATE_LIMIT] fournisseur=%(provider)s modèle=%(model)s statut=%(status)s "
"tentative=%(attempt)s/%(max_retries)s attente=%(wait_seconds).1fs "
"retry_after=%(retry_after)s"

#: src/uagent/llm_flow_helpers.py:205
msgid ""
"The previous assistant reply was empty. Please answer based on the most "
"recent tool result."
msgstr ""
"La réponse précédente de l'assistant était vide. Répondez en vous basant sur"
" le résultat d'outil le plus récent."

#: src/uagent/llm_flow_helpers.py:218
#, python-format
msgid ""
"[WARN] LLM returned an empty assistant message without tool calls.\n"
"provider=%(provider)s depname=%(depname)s empty_no_tool_rounds=%(empty_no_tool_rounds)s (max=%(empty_no_tool_max)s)\n"
"This may happen with OpenAI-compatible local providers after tool calls. You can try setting UAGENT_EMPTY_NO_TOOL_MAX to a higher value, or switching provider."
msgstr ""
"[WARN] Le LLM a renvoyé un message d'assistant vide sans appel d'outil.\n"
"provider=%(provider)s depname=%(depname)s empty_no_tool_rounds=%(empty_no_tool_rounds)s (max=%(empty_no_tool_max)s)\n"
"Cela peut se produire avec des fournisseurs locaux compatibles OpenAI après des appels d'outil. Vous pouvez essayer de définir UAGENT_EMPTY_NO_TOOL_MAX sur une valeur plus élevée ou de changer de fournisseur."

#: src/uagent/llm_flow_helpers.py:265
msgid "arguments must be a JSON object."
msgstr "les arguments doivent être un objet JSON."

#: src/uagent/llm_flow_helpers.py:272
#, python-format
msgid ""
"[tool args error] name=%(name)r raw=%(raw)r err=%(etype)s: %(err)s\n"
"Traceback:\n"
"%(tb)s"
msgstr ""
"[erreur d’arguments d’outil] name=%(name)r raw=%(raw)r err=%(etype)s: %(err)s\n"
"Traceback:\n"
"%(tb)s"

#: src/uagent/llm_flow_helpers.py:298
msgid ""
"[INFO] Reusing the previous result because this tool call matches an earlier"
" one.\n"
msgstr ""
"[INFO] Réutilisation du résultat précédent, car cet appel d'outil correspond"
" à un appel antérieur.\n"

#: src/uagent/llm_flow_helpers.py:313
#, python-format
msgid ""
"[tool runtime error] name=%(name)r err=%(etype)s: %(err)s\n"
"Traceback:\n"
"%(tb)s"
msgstr ""
"[erreur d’exécution de l’outil] name=%(name)r err=%(etype)s: %(err)s\n"
"Traceback:\n"
"%(tb)s"

#: src/uagent/llm_image_helpers.py:7
msgid "Describe this screenshot and summarize the visible UI."
msgstr "Décrivez cette capture d’écran et résumez l’interface visible."

#: src/uagent/llm_image_helpers.py:11
msgid "Read all visible text in this screenshot and summarize it."
msgstr "Lisez tout le texte visible dans cette capture d’écran et résumez-le."

#: src/uagent/llm_image_helpers.py:15
msgid "Inspect this screenshot for errors, warnings, and important UI state."
msgstr ""
"Inspectez cette capture d’écran à la recherche d’erreurs, d’avertissements "
"et d’un état important de l’interface."

#: src/uagent/llm_message_helpers.py:250
#, python-format
msgid "[WARN] Auto shrink_llm failed: %(err)s"
msgstr "[WARN] Échec de shrink_llm automatique : %(err)s"

#: src/uagent/llm_round_helpers.py:136
#, python-format
msgid "[Translate Error] %(diag)s"
msgstr "[Erreur de traduction] %(diag)s"

#: src/uagent/llm_round_helpers.py:195 src/uagent/llm_round_helpers.py:305
#: src/uagent/llm_round_helpers.py:639
#, python-format
msgid "429 retry limit (%(max_retries)s) reached."
msgstr "Limite de tentatives 429 atteinte (%(max_retries)s)."

#: src/uagent/llm_round_helpers.py:219
msgid "[Gemini Error] An error occurred while generating a response."
msgstr ""
"[Erreur Gemini] Une erreur est survenue lors de la génération d’une réponse."

#: src/uagent/llm_round_helpers.py:311
msgid "[Claude Error] An error occurred while generating a response."
msgstr ""
"[Erreur Claude] Une erreur est survenue lors de la génération d’une réponse."

#: src/uagent/llm_round_helpers.py:603
msgid "Input exceeds the context window."
msgstr "L'entrée dépasse la fenêtre de contexte."

#: src/uagent/llm_round_helpers.py:613
msgid "Connection error"
msgstr "Erreur de connexion"

#: src/uagent/llm_round_helpers.py:618
msgid "[Network Error]"
msgstr "[Erreur réseau]"

#: src/uagent/llm_round_helpers.py:645
msgid "Unexpected exception."
msgstr "Exception inattendue."

#: src/uagent/llm_round_helpers.py:723
#, python-format
msgid "Error while parsing response: %(err)s"
msgstr "Erreur lors de l’analyse de la réponse : %(err)s"

#: src/uagent/profile_manager.py:486 src/uagent/profile_manager.py:604
msgid ""
"You are a user profiling agent. Analyze the conversation log and extract the user's:\n"
"1. Environment (OS, shell, editor, etc.)\n"
"2. Preferences (coding style, preferred tools, verbosity preference, etc.)\n"
"3. Constraints (security rules, offline requirements, etc.)\n"
"\n"
"Do NOT include temporary questions, chit-chat, or sensitive credentials.\n"
"You MUST respond ONLY with a valid JSON object matching this schema:\n"
"{\n"
"  \"environment\": {\"os\": \"string\", \"shell\": \"string\", \"editor\": \"string\"},\n"
"  \"preferences\": [\"string\"],\n"
"  \"constraints\": [\"string\"]\n"
"}"
msgstr ""
"Vous êtes un agent de profilage utilisateur. Analysez le journal de conversation et extrayez les éléments suivants concernant l'utilisateur :\n"
"1. Environnement (OS, shell, éditeur, etc.)\n"
"2. Préférences (style de codage, outils préférés, niveau de verbosité préféré, etc.)\n"
"3. Contraintes (règles de sécurité, exigences de fonctionnement hors ligne, etc.)\n"
"\n"
"N'incluez pas les questions temporaires, la discussion informelle ni les identifiants sensibles.\n"
"Vous DEVEZ répondre UNIQUEMENT avec un objet JSON valide correspondant à ce schéma :\n"
"{\n"
"  \"environment\": {\"os\": \"string\", \"shell\": \"string\", \"editor\": \"string\"},\n"
"  \"preferences\": [\"string\"],\n"
"  \"constraints\": [\"string\"]\n"
"}"

#: src/uagent/profile_manager.py:590
msgid "Failed to initialize LLM client."
msgstr "Échec de l’initialisation du client LLM."

#: src/uagent/profile_manager.py:595
#, python-format
msgid "Found %(total_files)d log files. Starting incremental profiling..."
msgstr ""
"%(total_files)d fichiers journaux trouvés. Démarrage du profilage "
"incrémental..."

#: src/uagent/scheckgui.py:131
msgid "Drop files/images here"
msgstr "Glissez-déposez des fichiers/images ici"

#: src/uagent/scheckgui.py:169
msgid "Download"
msgstr "Télécharger"

#: src/uagent/scheckgui.py:329
#, python-format
msgid "Exception occurred while loading shared long-term memory: %(err)s"
msgstr ""
"Une exception s'est produite lors du chargement de la mémoire à long terme "
"partagée : %(err)s"

#: src/uagent/scheckgui.py:382
#, python-format
msgid "[Attached File] %(name)s (%(path)s)"
msgstr "[Fichier joint] %(name)s (%(path)s)"

#: src/uagent/scheckgui.py:467
#, python-format
msgid "[Attached Image] %(path)s"
msgstr "[Image jointe] %(path)s"

#: src/uagent/scheckgui.py:469 src/uagent/web.py:666
#, python-format
msgid "[Image Path] %(path)s"
msgstr "[Chemin de l’image] %(path)s"

#: src/uagent/scheckgui.py:779 src/uagent/scheckgui.py:909
msgid "Welcome / Quick Guide"
msgstr "Bienvenue / Guide rapide"

#: src/uagent/scheckgui.py:787
msgid "uag GUI (Extreme Stability)"
msgstr "Interface graphique uag (stabilité extrême)"

#: src/uagent/scheckgui.py:842
msgid "↑ You can attach files by drag & drop"
msgstr "↑ Vous pouvez les joindre par glisser-déposer"

#: src/uagent/scheckgui.py:863
msgid "Attach..."
msgstr "Joindre..."

#: src/uagent/scheckgui.py:868
msgid "Send"
msgstr "Envoyer"

#: src/uagent/scheckgui.py:908
msgid "Help"
msgstr "Aide"

#: src/uagent/scheckgui.py:923
msgid "Mode"
msgstr "Modalité"

#: src/uagent/scheckgui.py:925
msgid "Reasoning: off"
msgstr "Raisonnement : désactivé"

#: src/uagent/scheckgui.py:928
msgid "Reasoning: auto"
msgstr "Raisonnement : automatique"

#: src/uagent/scheckgui.py:930
msgid "Reasoning: minimal"
msgstr "Raisonnement : minimal"

#: src/uagent/scheckgui.py:932
msgid "Reasoning: low"
msgstr "Raisonnement : faible"

#: src/uagent/scheckgui.py:934
msgid "Reasoning: medium"
msgstr "Raisonnement : moyen"

#: src/uagent/scheckgui.py:936
msgid "Reasoning: high"
msgstr "Raisonnement : élevé"

#: src/uagent/scheckgui.py:939
msgid "Reasoning: xhigh"
msgstr "Raisonnement : très élevé"

#: src/uagent/scheckgui.py:944
msgid "Verbosity: off"
msgstr "Verbosité : désactivée"

#: src/uagent/scheckgui.py:946
msgid "Verbosity: low"
msgstr "Verbosité : faible"

#: src/uagent/scheckgui.py:948
msgid "Verbosity: medium"
msgstr "Verbosité : moyenne"

#: src/uagent/scheckgui.py:950
msgid "Verbosity: high"
msgstr "Verbosité : élevée"

#: src/uagent/scheckgui.py:980
#, python-format
msgid "[mode] reasoning=%(mode)s"
msgstr "[mode] raisonnement=%(mode)s"

#: src/uagent/scheckgui.py:984
msgid ""
":r [0|1|2|3|auto|minimal|xhigh]  (0=off, 1=low, 2=medium, 3=high; "
"auto/minimal/xhigh)"
msgstr ""
":r [0|1|2|3|auto|minimal|xhigh]  (0=désactivé, 1=faible, 2=moyen, 3=élevé ; "
"auto/minimal/xhigh)"

#: src/uagent/scheckgui.py:992
#, python-format
msgid "[mode] verbosity=%(mode)s"
msgstr "[mode] verbosité=%(mode)s"

#: src/uagent/scheckgui.py:994
msgid ":v [0|1|2|3]  (0=off, 1=low, 2=medium, 3=high; no arg=keep)"
msgstr ""
":v [0|1|2|3]  (0=désactivé, 1=faible, 2=moyen, 3=élevé ; sans "
"argument=conserver)"

#: src/uagent/scheckgui.py:1123
msgid "Enter password..."
msgstr "Saisissez le mot de passe..."

#: src/uagent/scheckgui.py:1130
msgid "Enter a message..."
msgstr "Saisissez un message..."

#: src/uagent/scheckgui.py:1147
msgid "Attach files"
msgstr "Joindre des fichiers"

#: src/uagent/scheckgui.py:1149
msgid "All Files (*)"
msgstr "Tous les fichiers (*)"

#: src/uagent/scheckgui.py:1401
msgid "cannot read image"
msgstr "impossible de lire l’image"

#: src/uagent/scheckgui.py:1552 src/uagent/scheckgui.py:1592
#: src/uagent/scheckgui.py:1627
msgid "Downloaded to"
msgstr "Téléchargé dans"

#: src/uagent/scheckgui.py:1646
msgid "Playing"
msgstr "Lecture en cours"

#: src/uagent/scheckgui.py:1656
msgid "Stopped"
msgstr "Arrêté"

#: src/uagent/scheckgui.py:1705
#, python-format
msgid "[REPLY] > %(text)s"
msgstr "[RÉPONSE] > %(text)s"

#: src/uagent/scheckgui.py:1713
#, python-format
msgid "[USER] %(text)s"
msgstr "[UTILISATEUR] %(text)s"

#: src/uagent/setup_cli.py:77 src/uagent/setup_cli.py:482
#: src/uagent/setup_cli.py:572
msgid "OpenAI API key"
msgstr "Clé API OpenAI"

#: src/uagent/setup_cli.py:78 src/uagent/setup_cli.py:483
#: src/uagent/setup_cli.py:573
msgid "OpenAI base URL (optional)"
msgstr "URL de base OpenAI (facultative)"

#: src/uagent/setup_cli.py:79
msgid "OpenAI model/deployment name (optional)"
msgstr "Nom du modèle/déploiement OpenAI (facultatif)"

#: src/uagent/setup_cli.py:85 src/uagent/setup_cli.py:474
#: src/uagent/setup_cli.py:560
msgid "Azure base URL (e.g. https://<resource>.openai.azure.com/)"
msgstr "URL de base Azure (p. ex. https://<resource>.openai.azure.com/)"

#: src/uagent/setup_cli.py:87 src/uagent/setup_cli.py:476
#: src/uagent/setup_cli.py:562
msgid "Azure API key"
msgstr "Clé API Azure"

#: src/uagent/setup_cli.py:91
msgid "Azure API version (optional, e.g. 2024-05-01-preview)"
msgstr "Version de l'API Azure (facultative, par ex. 2024-05-01-preview)"

#: src/uagent/setup_cli.py:93 src/uagent/setup_cli.py:478
msgid "Azure deployment name"
msgstr "Nom du déploiement Azure"

#: src/uagent/setup_cli.py:99 src/uagent/setup_cli.py:491
#: src/uagent/setup_cli.py:581
msgid "Bedrock gateway base URL (e.g. https://<gateway>/v1)"
msgstr "URL de base de la passerelle Bedrock (p. ex. https://<gateway>/v1)"

#: src/uagent/setup_cli.py:101 src/uagent/setup_cli.py:493
#: src/uagent/setup_cli.py:583
msgid "Bedrock API key"
msgstr "Clé API Bedrock"

#: src/uagent/setup_cli.py:105 src/uagent/setup_cli.py:497
msgid "Bedrock model/deployment name (e.g. openai.gpt-oss-120b)"
msgstr "Nom du modèle/déploiement Bedrock (p. ex. openai.gpt-oss-120b)"

#: src/uagent/setup_cli.py:109 src/uagent/setup_cli.py:502
#: src/uagent/setup_cli.py:592
msgid "OpenRouter API key"
msgstr "Clé API OpenRouter"

#: src/uagent/setup_cli.py:110 src/uagent/setup_cli.py:503
#: src/uagent/setup_cli.py:593
msgid "OpenRouter base URL (optional)"
msgstr "URL de base OpenRouter (facultative)"

#: src/uagent/setup_cli.py:114
msgid "OpenRouter model/deployment name (optional)"
msgstr "Nom du modèle/déploiement OpenRouter (facultatif)"

#: src/uagent/setup_cli.py:119
msgid "OpenRouter fallback models (optional, comma-separated)"
msgstr "Modèles de secours OpenRouter (facultatif, séparés par des virgules)"

#: src/uagent/setup_cli.py:123 src/uagent/setup_cli.py:508
msgid "Gemini API key"
msgstr "Clé API Gemini"

#: src/uagent/setup_cli.py:124
msgid "Gemini model name (optional)"
msgstr "Nom du modèle Gemini (facultatif)"

#: src/uagent/setup_cli.py:127
msgid "Vertex AI API key"
msgstr "Clé API Vertex AI"

#: src/uagent/setup_cli.py:128
msgid "Vertex AI project ID (optional)"
msgstr "ID du projet Vertex AI (facultatif)"

#: src/uagent/setup_cli.py:129
msgid "Vertex AI location/region (optional)"
msgstr "Emplacement/région Vertex AI (facultatif)"

#: src/uagent/setup_cli.py:133
msgid "Google credentials for Vertex AI (optional)"
msgstr "Identifiants Google pour Vertex AI (facultatif)"

#: src/uagent/setup_cli.py:138
msgid "Google location/region for Vertex AI (optional)"
msgstr "Emplacement/région Google pour Vertex AI (facultatif)"

#: src/uagent/setup_cli.py:140
msgid "Vertex AI model/deployment name"
msgstr "Nom du modèle/déploiement Vertex AI"

#: src/uagent/setup_cli.py:143
msgid "Grok API key"
msgstr "Clé API Grok"

#: src/uagent/setup_cli.py:144
msgid "Grok base URL (optional)"
msgstr "URL de base Grok (facultative)"

#: src/uagent/setup_cli.py:145
msgid "Grok model/deployment name (optional)"
msgstr "Nom du modèle/déploiement Grok (facultatif)"

#: src/uagent/setup_cli.py:148
msgid "Claude API key"
msgstr "Clé API Claude"

#: src/uagent/setup_cli.py:149
msgid "Claude model/deployment name (optional)"
msgstr "Nom du modèle/déploiement Claude (facultatif)"

#: src/uagent/setup_cli.py:152 src/uagent/setup_cli.py:513
#: src/uagent/setup_cli.py:607
msgid "NVIDIA API key"
msgstr "Clé API NVIDIA"

#: src/uagent/setup_cli.py:153 src/uagent/setup_cli.py:514
#: src/uagent/setup_cli.py:608
msgid "NVIDIA base URL (optional)"
msgstr "URL de base NVIDIA (facultative)"

#: src/uagent/setup_cli.py:154
msgid "NVIDIA model/deployment name (optional)"
msgstr "Nom du modèle/déploiement NVIDIA (facultatif)"

#: src/uagent/setup_cli.py:160 src/uagent/setup_cli.py:601
msgid "Ollama base URL (e.g. http://localhost:11434/v1)"
msgstr "URL de base Ollama (p. ex. http://localhost:11434/v1)"

#: src/uagent/setup_cli.py:165
msgid "Ollama API key (optional, default: dummy)"
msgstr "Clé API Ollama (facultative, valeur par défaut : dummy)"

#: src/uagent/setup_cli.py:167
msgid "Ollama model/deployment name (optional)"
msgstr "Nom du modèle/déploiement Ollama (facultatif)"

#: src/uagent/setup_cli.py:171
msgid "Ollama request timeout in seconds (default: 60)"
msgstr "Délai d'attente des requêtes Ollama en secondes (par défaut : 60)"

#: src/uagent/setup_cli.py:173
msgid "Ollama temperature (default: 0.7)"
msgstr "Température Ollama (par défaut : 0.7)"

#: src/uagent/setup_cli.py:174
msgid "Ollama top_p (default: 0.9)"
msgstr "Ollama top_p (par défaut : 0.9)"

#: src/uagent/setup_cli.py:175
msgid "Ollama top_k (default: 40)"
msgstr "Ollama top_k (par défaut : 40)"

#: src/uagent/setup_cli.py:179
msgid "Ollama repeat_penalty (default: 1.1)"
msgstr "Pénalité de répétition Ollama (par défaut : 1.1)"

#: src/uagent/setup_cli.py:181
msgid "Ollama keep_alive (default: 5m)"
msgstr "Ollama keep_alive (par défaut : 5m)"

#: src/uagent/setup_cli.py:182
msgid "Ollama num_ctx (default: 8192)"
msgstr "Ollama num_ctx (par défaut : 8192)"

#: src/uagent/setup_cli.py:183
msgid "Ollama num_predict (default: 1024)"
msgstr "Ollama num_predict (par défaut : 1024)"

#: src/uagent/setup_cli.py:345 src/uagent/setup_cli.py:434
msgid "Enter number:"
msgstr "Entrez un nombre :"

#: src/uagent/setup_cli.py:358
msgid "Invalid input. Please enter a valid number."
msgstr "Entrée invalide. Veuillez saisir un nombre valide."

#: src/uagent/setup_cli.py:371
#, python-format
msgid " [default: %(default)s]"
msgstr " [par défaut : %(default)s]"

#: src/uagent/setup_cli.py:387
msgid "This field is required. Please enter a value."
msgstr "Ce champ est obligatoire. Veuillez saisir une valeur."

#: src/uagent/setup_cli.py:399
msgid "Select UAGENT_LANG"
msgstr "Sélectionnez UAGENT_LANG"

#: src/uagent/setup_cli.py:410
msgid "UAGENT_LANG (custom)"
msgstr "UAGENT_LANG (personnalisé)"

#: src/uagent/setup_cli.py:423
msgid "Select output files to generate in the current directory"
msgstr ""
"Sélectionnez les fichiers de sortie à générer dans le répertoire actuel"

#: src/uagent/setup_cli.py:424
msgid "  1. .env only"
msgstr "  1. .env uniquement"

#: src/uagent/setup_cli.py:425
msgid "  2. .env + env.sh"
msgstr "  2. .env + env.sh (Unix/Linux)"

#: src/uagent/setup_cli.py:426
msgid "  3. .env + env.ps1"
msgstr "  3. .env + env.ps1 (PowerShell)"

#: src/uagent/setup_cli.py:427
msgid "  4. .env + env.bat"
msgstr "  4. .env + env.bat (Windows)"

#: src/uagent/setup_cli.py:428
msgid "  5. .env + all (sh/ps1/bat)"
msgstr "  5. .env + tout (sh/ps1/bat)"

#: src/uagent/setup_cli.py:430
msgid "  b. back"
msgstr "  b. retour"

#: src/uagent/setup_cli.py:431
msgid "  q. quit"
msgstr "  q. quitter"

#: src/uagent/setup_cli.py:449
msgid "Invalid input. Please enter 1-5, or b/q."
msgstr "Entrée invalide. Veuillez saisir 1-5 ou b/q."

#: src/uagent/setup_cli.py:477 src/uagent/setup_cli.py:566
msgid "Azure API version (e.g. 2024-05-01-preview)"
msgstr "Version de l'API Azure (p. ex. 2024-05-01-preview)"

#: src/uagent/setup_cli.py:484
msgid "OpenAI model/deployment name"
msgstr "Nom du modèle / déploiement OpenAI"

#: src/uagent/setup_cli.py:504
msgid "OpenRouter model/deployment name"
msgstr "Nom du modèle / déploiement OpenRouter"

#: src/uagent/setup_cli.py:509
msgid "Gemini model name"
msgstr "Nom du modèle Gemini"

#: src/uagent/setup_cli.py:515
msgid "NVIDIA model/deployment name"
msgstr "Nom du modèle / déploiement NVIDIA"

#: src/uagent/setup_cli.py:534
msgid "Enable image generation debug output? (0/1)"
msgstr "Sélectionner le fournisseur de génération d’images"

#: src/uagent/setup_cli.py:568
msgid "Azure embedding deployment name"
msgstr "Nom du déploiement Azure pour les embeddings"

#: src/uagent/setup_cli.py:574
msgid "OpenAI embedding model/deployment name"
msgstr "Nom du modèle/déploiement OpenAI pour les embeddings"

#: src/uagent/setup_cli.py:587
msgid "Bedrock embedding model/deployment name"
msgstr "Nom du modèle/déploiement Bedrock pour les embeddings"

#: src/uagent/setup_cli.py:594
msgid "OpenRouter embedding model/deployment name"
msgstr "Nom du modèle/déploiement OpenRouter pour les embeddings"

#: src/uagent/setup_cli.py:603
msgid "Ollama embedding model name"
msgstr "Nom du modèle Ollama pour les embeddings"

#: src/uagent/setup_cli.py:609
msgid "NVIDIA embedding model/deployment name"
msgstr "Nom du modèle/déploiement NVIDIA pour les embeddings"

#: src/uagent/setup_cli.py:613
msgid "Gemini embedding API key"
msgstr "Clé API d’intégration Gemini"

#: src/uagent/setup_cli.py:617
msgid "Gemini embedding model name (e.g. text-embedding-004)"
msgstr "Nom du modèle d’intégration Gemini (p. ex. text-embedding-004)"

#: src/uagent/setup_cli.py:622
msgid "Vertex AI embedding API key"
msgstr "Clé API d’intégration Vertex AI"

#: src/uagent/setup_cli.py:626
msgid "Vertex AI embedding model name (e.g. text-embedding-004)"
msgstr "Nom du modèle d’intégration Vertex AI (p. ex. text-embedding-004)"

#: src/uagent/setup_cli.py:675
msgid "Azure speech deployment name"
msgstr "Nom du déploiement Azure Speech"

#: src/uagent/setup_cli.py:676
msgid "Azure transcription deployment name"
msgstr "Nom du déploiement Azure Transcription"

#: src/uagent/setup_cli.py:677
msgid "OpenAI speech model/deployment name"
msgstr "Nom du modèle/déploiement OpenAI Speech"

#: src/uagent/setup_cli.py:678
msgid "OpenAI transcription model/deployment name"
msgstr "Nom du modèle/déploiement OpenAI Transcription"

#: src/uagent/setup_cli.py:679
msgid "Gemini speech model name (optional)"
msgstr "Nom du modèle de synthèse vocale Gemini (facultatif)"

#: src/uagent/setup_cli.py:680
msgid "Gemini transcription model name (optional)"
msgstr "Nom du modèle de transcription Gemini (facultatif)"

#: src/uagent/setup_cli.py:681
msgid "Vertex AI speech model name (optional)"
msgstr "Nom du modèle de synthèse vocale Vertex AI (facultatif)"

#: src/uagent/setup_cli.py:682
msgid "Vertex AI transcription model name (optional)"
msgstr "Nom du modèle de transcription Vertex AI (facultatif)"

#: src/uagent/setup_cli.py:705
msgid "Configure optional image / embedding / audio settings?"
msgstr "Configurer les paramètres optionnels d’image / d’embedding ?"

#: src/uagent/setup_cli.py:706 src/uagent/setup_cli.py:721
#: src/uagent/setup_cli.py:753 src/uagent/setup_cli.py:784
#: src/uagent/setup_cli.py:800 src/uagent/setup_cli.py:855
#: src/uagent/setup_cli.py:914 src/uagent/setup_cli.py:1159
#: src/uagent/setup_cli.py:1220 src/uagent/setup_cli.py:1274
#: src/uagent/setup_cli.py:1301 src/uagent/setup_cli.py:1322
#: src/uagent/setup_cli.py:1459
msgid "No"
msgstr "Non"

#: src/uagent/setup_cli.py:706 src/uagent/setup_cli.py:721
#: src/uagent/setup_cli.py:753 src/uagent/setup_cli.py:784
#: src/uagent/setup_cli.py:800 src/uagent/setup_cli.py:855
#: src/uagent/setup_cli.py:914 src/uagent/setup_cli.py:1159
#: src/uagent/setup_cli.py:1220 src/uagent/setup_cli.py:1274
#: src/uagent/setup_cli.py:1301 src/uagent/setup_cli.py:1322
#: src/uagent/setup_cli.py:1459
msgid "Yes"
msgstr "Oui"

#: src/uagent/setup_cli.py:720
msgid "Configure image analysis settings?"
msgstr "Configurer les paramètres d’analyse d’image ?"

#: src/uagent/setup_cli.py:731
msgid "Select image analysis provider"
msgstr "Sélectionnez le fournisseur d'analyse d'images"

#: src/uagent/setup_cli.py:752
msgid "Configure image generation settings?"
msgstr "Configurer les paramètres de génération d'images ?"

#: src/uagent/setup_cli.py:763
msgid "Select image generation provider"
msgstr "Sélectionner le fournisseur de génération d’images"

#: src/uagent/setup_cli.py:783
msgid "Open generated images automatically?"
msgstr "Ouvrir automatiquement les images générées ?"

#: src/uagent/setup_cli.py:799
msgid "Configure embedding / semantic search settings?"
msgstr "Configurer les paramètres d’embedding / de recherche sémantique ?"

#: src/uagent/setup_cli.py:825
msgid "Select embedding provider"
msgstr "Sélectionnez le fournisseur d'embeddings"

#: src/uagent/setup_cli.py:854
msgid "Configure audio speech / transcription settings?"
msgstr "Configurer les paramètres audio de synthèse vocale / transcription ?"

#: src/uagent/setup_cli.py:873
msgid "Select audio speech provider"
msgstr "Sélectionnez le fournisseur de synthèse vocale"

#: src/uagent/setup_cli.py:893
msgid "Select audio transcribe provider"
msgstr "Sélectionnez le fournisseur de transcription audio"

#: src/uagent/setup_cli.py:913
msgid "Open generated audio automatically?"
msgstr "Ouvrir automatiquement l’audio généré ?"

#: src/uagent/setup_cli.py:980
msgid "Optional: Responses API (Azure/OpenAI/Bedrock)"
msgstr "Optionnel : API Responses (Azure/OpenAI/Bedrock)"

#: src/uagent/setup_cli.py:993
msgid "Optional runtime"
msgstr "Exécution facultative"

#: src/uagent/setup_cli.py:1007
msgid "Optional image / embedding / audio settings"
msgstr "Paramètres optionnels d’image / d’embedding"

#: src/uagent/setup_cli.py:1149
msgid "Optional specialized sub-agent settings"
msgstr "Paramètres optionnels des sous-agents spécialisés"

#: src/uagent/setup_cli.py:1158
msgid "Encrypt the generated .env file?"
msgstr "Chiffrer le fichier .env généré ?"

#: src/uagent/setup_cli.py:1164
#, python-format
msgid "Encrypted file will be written as %(path)s"
msgstr "Le fichier chiffré sera écrit sous %(path)s"

#: src/uagent/setup_cli.py:1180
msgid "Select provider"
msgstr "Sélectionnez le fournisseur"

#: src/uagent/setup_cli.py:1219
msgid "Enable Responses API options?"
msgstr "Activer les options de l'API Responses ?"

#: src/uagent/setup_cli.py:1235
msgid "Select reasoning"
msgstr "Sélectionnez le niveau de raisonnement"

#: src/uagent/setup_cli.py:1254
msgid "Select verbosity"
msgstr "Sélectionnez la verbosité"

#: src/uagent/setup_cli.py:1273
msgid "Set optional runtime UAGENT_WORKDIR?"
msgstr "Définir la valeur d'exécution facultative UAGENT_WORKDIR ?"

#: src/uagent/setup_cli.py:1300
msgid "Set optional runtime UAGENT_LANG?"
msgstr "Définir la valeur d'exécution facultative UAGENT_LANG ?"

#: src/uagent/setup_cli.py:1321
msgid "Enable streaming?"
msgstr "Activer le streaming ?"

#: src/uagent/setup_cli.py:1362
msgid "Summary"
msgstr "Résumé"

#: src/uagent/setup_cli.py:1363
#, python-format
msgid "  Provider: %(provider)s"
msgstr "  Fournisseur : %(provider)s"

#: src/uagent/setup_cli.py:1370
#, python-format
msgid "  Responses enabled: %(state)s"
msgstr "  Réponses activées : %(state)s"

#: src/uagent/setup_cli.py:1371 src/uagent/setup_cli.py:1378
#: src/uagent/setup_cli.py:1382 src/uagent/setup_cli.py:1388
#: src/uagent/setup_cli.py:1394 src/uagent/setup_cli.py:1399
#: src/uagent/setup_cli.py:1407 src/uagent/setup_cli.py:1418
msgid "yes"
msgstr "oui"

#: src/uagent/setup_cli.py:1371 src/uagent/setup_cli.py:1378
#: src/uagent/setup_cli.py:1382 src/uagent/setup_cli.py:1388
#: src/uagent/setup_cli.py:1394 src/uagent/setup_cli.py:1399
#: src/uagent/setup_cli.py:1407 src/uagent/setup_cli.py:1418
msgid "no"
msgstr "non"

#: src/uagent/setup_cli.py:1377
#, python-format
msgid "  Streaming enabled: %(state)s"
msgstr "  Streaming activé : %(state)s"

#: src/uagent/setup_cli.py:1393
#, python-format
msgid "  Optional extras enabled: %(state)s"
msgstr "  Extras facultatifs activés : %(state)s"

#: src/uagent/setup_cli.py:1398
#, python-format
msgid "  Image analysis enabled: %(state)s"
msgstr "  Analyse d’image activée : %(state)s"

#: src/uagent/setup_cli.py:1406
#, python-format
msgid "  Image generation enabled: %(state)s"
msgstr "  Génération d'images activée : %(state)s"

#: src/uagent/setup_cli.py:1417
#, python-format
msgid "  Embedding enabled: %(state)s"
msgstr "  Embedding activé : %(state)s"

#: src/uagent/setup_cli.py:1427
#, python-format
msgid "  Outputs: %(outputs)s"
msgstr "  Sorties : %(outputs)s"

#: src/uagent/setup_cli.py:1430
msgid "Generate files with this configuration?"
msgstr "Générer des fichiers avec cette configuration ?"

#: src/uagent/setup_cli.py:1431
msgid "Yes, generate"
msgstr "Oui, générer"

#: src/uagent/setup_cli.py:1431
msgid "Back"
msgstr "Retour"

#: src/uagent/setup_cli.py:1455
msgid "The following files already exist and will be overwritten:"
msgstr "Les fichiers suivants existent déjà et seront écrasés :"

#: src/uagent/setup_cli.py:1459
msgid "Proceed?"
msgstr "Continuer ?"

#: src/uagent/setup_cli.py:1483
msgid "Plain .env file removed after encryption."
msgstr "Le fichier .env en clair a été supprimé après le chiffrement."

#: src/uagent/setup_cli.py:1486
#, python-format
msgid "Warning: Failed to remove plain .env: %(error)s"
msgstr ""
"Avertissement : impossible de supprimer le fichier .env non chiffré : "
"%(error)s"

#: src/uagent/setup_cli.py:1505
#, python-format
msgid "generated: %(path)s"
msgstr "Généré : %(path)s"

#: src/uagent/uagent_llm.py:129
#, python-format
msgid "[WARN] Tool rounds exceeded %(max)d; aborting."
msgstr "[AVERTISSEMENT] Nombre de tours d'outil dépassé : %(max)d ; abandon."

#: src/uagent/util_tools.py:181
#, python-format
msgid "image file not found: %(path)s"
msgstr "fichier image introuvable : %(path)s"

#: src/uagent/util_tools.py:186
#, python-format
msgid "image file too large: %(size)d bytes (limit=%(max)d)"
msgstr "fichier image trop volumineux : %(size)d octets (limite=%(max)d)"

#: src/uagent/util_tools.py:210
msgid ""
"Specify working directory. If not set, uses UAGENT_WORKDIR env var or the "
"current directory."
msgstr ""
"Spécifiez le répertoire de travail. S’il n’est pas défini, la variable "
"d’environnement UAGENT_WORKDIR ou le répertoire courant est utilisé."

#: src/uagent/util_tools.py:217
msgid ""
"Non-interactive mode. Do not start the stdin loop; exit after processing the"
" startup file (if any)."
msgstr ""
"Mode non interactif. Ne démarrez pas la boucle stdin ; quittez après le "
"traitement du fichier de démarrage (s'il y en a un)."

#: src/uagent/util_tools.py:355
msgid "invalid reasoning"
msgstr "raisonnement invalide"

#: src/uagent/util_tools.py:373
msgid "invalid verbosity"
msgstr "niveau de verbosité invalide"

#: src/uagent/util_tools.py:547
#, python-format
msgid "[logs] Invalid argument: %(arg)r (specify all / --all / -a / number)"
msgstr ""
"[logs] Argument invalide : %(arg)r (spécifiez all / --all / -a / number)"

#: src/uagent/util_tools.py:586
#, python-format
msgid "failed to parse arguments: %(err)s"
msgstr "échec de l’analyse des arguments : %(err)s"

#: src/uagent/util_tools.py:589
msgid "missing arguments"
msgstr "arguments manquants"

#: src/uagent/util_tools.py:605
msgid "src and dst are required"
msgstr "src et dst sont requis"

#: src/uagent/util_tools.py:973
msgid ""
"[Skill execution]\n"
"This skill is intended to be run. Read the skill body carefully and follow the instructions.\n"
"If the skill contains tasks, continue until they are complete.\n"
"Use tools as needed.\n"
msgstr ""
"[Exécution de la compétence]\n"
"Cette compétence est destinée à être exécutée. Lisez attentivement le corps de la compétence et suivez les instructions.\n"
"Si la compétence contient des tâches, continuez jusqu'à leur achèvement.\n"
"Utilisez les outils si nécessaire.\n"

#: src/uagent/util_tools.py:980
msgid "When finished, always call `finish_skill` if available.\n"
msgstr "Une fois terminé, appelez toujours `finish_skill` si disponible.\n"

#: src/uagent/util_tools.py:1132
msgid ""
"Select a skill number to run. Enter c to cancel.\n"
"Tip: :skills clear  (remove applied skills)\n"
"Enter number:"
msgstr ""
"Sélectionnez un numéro de compétence à exécuter. Entrez c pour annuler.\n"
"Astuce : :skills clear  (supprimer les compétences appliquées)\n"
"Entrez un numéro :"

#: src/uagent/util_tools.py:1168
#, python-format
msgid ""
"Run this skill as a system-level instruction and keep it active in this session?\n"
"\n"
"Name: %(name)s\n"
"Path: %(path)s\n"
"\n"
"Proceed? Enter y to run, or c to cancel."
msgstr ""
"Exécutez cette compétence comme instruction système et gardez-la active dans cette session ?\n"
"\n"
"Nom : %(name)s\n"
"Chemin : %(path)s\n"
"\n"
"Continuer ? Entrez y pour exécuter, ou c pour annuler."

#: src/uagent/util_tools.py:1230
#, python-format
msgid ""
"[clean] Invalid argument: %(arg)r (specify number=threshold; default is "
"%(default)d)"
msgstr ""
"[clean] Argument invalide : %(arg)r (spécifiez number=threshold ; valeur par"
" défaut %(default)d)"

#: src/uagent/util_tools.py:1279
#, python-format
msgid ""
"will delete conversation log files (scheck_log_*.jsonl) from disk.\n"
"Log dir: %(dir)s\n"
"Rule: total user/assistant/tool messages excluding system <= %(threshold)d\n"
"Targets: %(n)d\n"
"\n"
"Proceed? Enter y to run, or c to cancel."
msgstr ""
"Supprimera les fichiers journaux de conversation (scheck_log_*.jsonl) du disque.\n"
"Dossier des journaux : %(dir)s\n"
"Règle : le nombre total de messages user/assistant/tool hors system doit être <= %(threshold)d\n"
"Cibles : %(n)d\n"
"\n"
"Continuer ? Entrez y pour exécuter, ou c pour annuler."

#: src/uagent/util_tools.py:1347
#, python-format
msgid " - (%(count)d msgs) %(path)s"
msgstr " - (%(count)d messages) %(path)s"

#: src/uagent/util_tools.py:1391
#, python-format
msgid ""
"will overwrite the current session log file and prepend the loaded log (no backup).\n"
"\n"
"Current log: %(cur_log)s\n"
"Source log: %(src_log)s\n"
"\n"
"Proceed? Enter y to run, or c to cancel."
msgstr ""
"Écrasera le fichier journal de session actuel et préfixera le journal chargé (sans sauvegarde).\n"
"\n"
"Journal actuel : %(cur_log)s\n"
"Journal source : %(src_log)s\n"
"\n"
"Continuer ? Entrez y pour exécuter, ou c pour annuler."

#: src/uagent/util_tools.py:1522
#, python-brace-format
msgid ""
"Delete {count} path(s)?\n"
"\n"
"{paths}\n"
"\n"
"Enter y to proceed, or c to cancel."
msgstr ""
"Supprimer {count} chemin(s) ?\n"
"\n"
"{paths}\n"
"\n"
"Entrez y pour continuer, ou c pour annuler."

#: src/uagent/util_tools.py:1577
#, python-format
msgid "Specified index %(idx)d is out of range."
msgstr "L’index spécifié %(idx)d est hors plage."

#: src/uagent/util_tools.py:1586
#, python-format
msgid "Log file not found: %(path)s"
msgstr "Fichier journal introuvable : %(path)s"

#: src/uagent/util_tools.py:1669
#, python-format
msgid "[shrink error] Failed to parse as int: %(arg)r -> keep last %(keep)d"
msgstr ""
"[erreur shrink] Impossible d’analyser comme entier : %(arg)r -> conserver "
"les %(keep)d derniers"

#: src/uagent/util_tools.py:1697
#, python-format
msgid ""
"[shrink_llm error] Failed to parse as int: %(arg)r -> keep last %(keep)d"
msgstr ""
"[erreur shrink_llm] Impossible d’analyser la valeur en entier : %(arg)r -> "
"conserver les %(keep)d derniers"

#: src/uagent/util_tools.py:1756 src/uagent/util_tools.py:1836
msgid ""
"Shared long-term memory is not enabled (UAGENT_SHARED_MEMORY_FILE is not "
"set)."
msgstr ""
"La mémoire longue durée partagée n’est pas activée "
"(UAGENT_SHARED_MEMORY_FILE n’est pas défini)."

#: src/uagent/util_tools.py:1787
msgid "Analyzing past logs to generate user profile..."
msgstr ""
"Analyse des journaux précédents pour générer le profil de l’utilisateur..."

#: src/uagent/util_tools.py:1791
msgid "No past logs found or failed to generate profile."
msgstr "Aucun journal précédent trouvé ou impossible de générer le profil."

#: src/uagent/util_tools.py:1793
#, fuzzy
msgid "User profile generated successfully from past logs!"
msgstr "Profil utilisateur effacé avec succès."

#: src/uagent/util_tools.py:1805
msgid "No user profile data found."
msgstr "Aucune donnée de profil utilisateur trouvée."

#: src/uagent/util_tools.py:1808
msgid "User Profile:"
msgstr "Profil utilisateur :"

#: src/uagent/util_tools.py:1820
msgid "User profile cleared successfully."
msgstr "Profil utilisateur effacé avec succès."

#: src/uagent/util_tools.py:1824
msgid "No user profile file found to clear."
msgstr "Aucun fichier de profil utilisateur trouvé à effacer."

#: src/uagent/util_tools.py:1888
msgid "Show this help"
msgstr "Afficher cette aide"

#: src/uagent/util_tools.py:1889
msgid "Restart input from the beginning"
msgstr "Recommencer la saisie depuis le début"

#: src/uagent/util_tools.py:1890
msgid "Show log file list"
msgstr "Afficher la liste des fichiers journaux"

#: src/uagent/util_tools.py:1893
msgid ""
"Change workdir without confirmation (e.g. :cd .. / :cd ~ / :cd C:\\path / "
":cd /)"
msgstr ""
"Changer le répertoire de travail sans confirmation (ex. :cd .. / :cd ~ / :cd"
" C:\\path / :cd /)"

#: src/uagent/util_tools.py:1896
msgid "List directory entries (e.g. :ls / :ls .. / :ls ~ / :ls C:\\path)"
msgstr ""
"Lister les entrées du répertoire (ex. :ls / :ls .. / :ls ~ / :ls C:\\path)"

#: src/uagent/util_tools.py:1899
msgid "Manage UAGENT_* env vars and save .env.sec"
msgstr "Gérer les variables d'environnement UAGENT_* et enregistrer .env.sec"

#: src/uagent/util_tools.py:1901
msgid "Manage/apply skills (e.g. :skills / :skills active / :skills clear)"
msgstr ""
"Gérer/appliquer les skills (ex. :skills / :skills active / :skills clear)"

#: src/uagent/util_tools.py:1908
msgid "Load a past log (overwrites current conversation history)"
msgstr ""
"Charger un journal précédent (écrase l'historique de conversation actuel)"

#: src/uagent/util_tools.py:1910
msgid ""
"                       Note: after running, you will be asked for "
"confirmation; choosing 'y' prepends the loaded log into the current session "
"log file (overwrite, no backup)."
msgstr ""
"                       Remarque : après exécution, une confirmation vous "
"sera demandée ; en choisissant 'y', le journal chargé sera ajouté au début "
"du fichier journal de la session en cours (écrasement, sans sauvegarde)."

#: src/uagent/util_tools.py:1914
msgid ""
"Delete conversation logs (scheck_log_*.jsonl) where the count of "
"user/assistant/tool messages (excluding system) is <= N (default=10)"
msgstr ""
"Supprimer les journaux de conversation (scheck_log_*.jsonl) dont le nombre "
"de messages user/assistant/tool hors system est <= N (par défaut=10)"

#: src/uagent/util_tools.py:1918
msgid ""
"Shrink conversation history (keep last N non-system messages; default=40)"
msgstr ""
"Réduire l'historique de conversation (conserver les N derniers messages non-"
"system ; par défaut=40)"

#: src/uagent/util_tools.py:1922
msgid ""
"Shrink history via LLM summarization (summarize older history into 1 system "
"message; keep last N raw; default=20)"
msgstr ""
"Réduire l'historique via résumé LLM (résumer l'historique ancien en 1 "
"message system ; conserver les N derniers bruts ; par défaut=20)"

#: src/uagent/util_tools.py:1924
msgid "List long-term memory notes"
msgstr "Lister les notes de mémoire à long terme"

#: src/uagent/util_tools.py:1926
msgid "Delete a long-term memory note by index (see :mem-list)"
msgstr "Supprimer une note de mémoire à long terme par index (voir :mem-list)"

#: src/uagent/util_tools.py:1928
#, fuzzy
msgid "Show the learned user profile, or generate it from past logs"
msgstr ""
"Afficher le profil utilisateur appris (environnement, préférences, "
"contraintes)"

#: src/uagent/util_tools.py:1929
#, fuzzy
msgid "Generate user profile from past logs"
msgstr "Aucune donnée de profil utilisateur trouvée."

#: src/uagent/util_tools.py:1930
msgid "Clear the learned user profile data"
msgstr "Effacer les données du profil utilisateur appris"

#: src/uagent/util_tools.py:1932
msgid "Copy file or directory (supports -f/--overwrite and -p/--mkdirs)"
msgstr ""
"Copier un fichier ou un répertoire (prend en charge -f/--overwrite et "
"-p/--mkdirs)"

#: src/uagent/util_tools.py:1934
msgid "Move file or directory (supports -f/--overwrite and -p/--mkdirs)"
msgstr ""
"Déplacer un fichier ou un répertoire (prend en charge -f/--overwrite et "
"-p/--mkdirs)"

#: src/uagent/util_tools.py:1936
msgid "Show the first n lines of a file (default=20)"
msgstr "Afficher les n premières lignes d'un fichier (valeur par défaut=20)"

#: src/uagent/util_tools.py:1937
msgid "Show the last n lines of a file (default=20)"
msgstr "Afficher les n dernières lignes d'un fichier (valeur par défaut=20)"

#: src/uagent/util_tools.py:1939
msgid "Delete file(s)/directory(ies) with preview + confirm"
msgstr "Supprimer des fichier(s)/répertoire(s) avec aperçu + confirmation"

#: src/uagent/util_tools.py:1941
msgid ""
"Set reasoning mode (0=off, 1=low, 2=medium, 3=high; auto/minimal/xhigh)"
msgstr ""
"Définir le mode de raisonnement (0=désactivé, 1=faible, 2=moyen, 3=élevé ; "
"auto/minimal/xhigh)"

#: src/uagent/util_tools.py:1943
msgid "Set verbosity mode (0=off, 1=low, 2=medium, 3=high; no arg=keep)"
msgstr ""
"Définir le mode de verbosité (0=désactivé, 1=faible, 2=moyen, 3=élevé ; sans"
" argument=conserver)"

#: src/uagent/util_tools.py:1944
msgid "Exit"
msgstr "Quitter"

#: src/uagent/util_tools.py:1947
msgid "  - Enter a line that is just 'f' to enter multiline input mode."
msgstr ""
"  - Saisissez une ligne composée uniquement de 'f' pour entrer en mode de "
"saisie multiligne."

#: src/uagent/util_tools.py:1949
#, python-format
msgid ""
"  - To end multiline input mode, enter a line that is exactly %(sentinel)s."
msgstr ""
"  - Pour terminer le mode de saisie multiligne, entrez une ligne qui est "
"exactement %(sentinel)s."

#: src/uagent/util_tools.py:2185
msgid "Exiting."
msgstr "Fermeture."

#: src/uagent/util_tools.py:2188
#, python-format
msgid "Unknown command: :%(cmd)s"
msgstr "Commande inconnue : :%(cmd)s"

#: src/uagent/util_tools.py:2339
msgid ""
"The bullet points listed below are excerpts from this user's long-term memory (persistent memos). Use them as background information about the user. However, always prioritize newly provided information in the conversation, and if it contradicts older information, adopt the latest information.\n"
"\n"
msgstr ""
"Les points ci-dessous sont des extraits de la mémoire à long terme de cet utilisateur (mémos persistants). Utilisez-les comme contexte sur l'utilisateur. Toutefois, accordez toujours la priorité aux informations nouvellement fournies dans la conversation, et si elles contredisent des informations plus anciennes, adoptez les plus récentes.\n"
"\n"

#: src/uagent/web.py:534
msgid ""
"[WARN] Another task is already running in this room. Please retry after it "
"completes."
msgstr ""
"[WARN] Une autre tâche est déjà en cours dans cette salle. Veuillez "
"réessayer une fois qu'elle sera terminée."

#: src/uagent/web.py:626 src/uagent/web.py:767
msgid ""
"[FATAL] Environment variable UAGENT_PROVIDER is not set.\n"
"Please check environment variables when starting the web server."
msgstr ""
"[FATAL] La variable d'environnement UAGENT_PROVIDER n'est pas définie.\n"
"Veuillez vérifier les variables d'environnement au démarrage du serveur web."

#: src/uagent/web.py:664
#, python-format
msgid "[Attached Image] %(name)s"
msgstr "[Image jointe] %(name)s"

#: src/uagent/web.py:669
#, python-format
msgid "[Attached File] %(name)s"
msgstr "[Fichier joint] %(name)s"

#: src/uagent/web.py:670
#, python-format
msgid "[File Path] %(path)s"
msgstr "[Chemin du fichier] %(path)s"

#: src/uagent/web.py:698
msgid "[INFO] Loaded long-term memory."
msgstr "Mémoire à long terme chargée."

#: src/uagent/web.py:710
msgid "[INFO] Loaded shared long-term memory."
msgstr "Mémoire partagée à long terme chargée."

#: src/uagent/web.py:727
msgid ""
"\n"
"\n"
"## Generative UI (Artifacts) Instructions\n"
"When the user asks for a UI, dashboard, interactive tool, or visualization:\n"
"1. Write a complete, self-contained HTML page inside a single ```html code block.\n"
"2. Use Tailwind CSS (via CDN: <script src=\"https://cdn.tailwindcss.com\"></script>) for styling and Lucide Icons or FontAwesome for icons.\n"
"3. Include interactive JavaScript (e.g., Chart.js for charts, or simple state management).\n"
"4. Do not split the code into multiple blocks; keep it in one unified ```html block.\n"
msgstr ""
"\n"
"\n"
"## Instructions Generative UI (Artifacts)\n"
"Lorsque l'utilisateur demande une interface utilisateur, un tableau de bord, un outil interactif ou une visualisation :\n"
"1. Écrivez une page HTML complète et autonome dans un seul bloc de code ```html.\n"
"2. Utilisez Tailwind CSS (via CDN : <script src=\"https://cdn.tailwindcss.com\"></script>) pour le style et Lucide Icons ou FontAwesome pour les icônes.\n"
"3. Incluez du JavaScript interactif (par exemple, Chart.js pour les graphiques, ou une gestion d'état simple).\n"
"4. Ne divisez pas le code en plusieurs blocs ; gardez-le dans un seul bloc ```html unifié.\n"

#: src/uagent/web.py:764
#, python-format
msgid ""
"[FATAL] Web worker error.\n"
"%(err)s"
msgstr ""
"[FATAL] Erreur du worker Web.\n"
"%(err)s"

#: src/uagent/web.py:901
msgid "missing path"
msgstr "chemin manquant"

#: src/uagent/web.py:908
msgid "path outside workdir"
msgstr "chemin en dehors du répertoire de travail"

#: src/uagent/web.py:1071
msgid "Starting server on"
msgstr "Démarrage du serveur sur"

#: src/uagent/web.py:1073
msgid "External URL:"
msgstr "URL externe :"

#: src/uagent/welcome.py:29
msgid ""
"[MCP Servers]\n"
"- Config file not found."
msgstr ""
"[Serveurs MCP]\n"
"- Fichier de configuration introuvable."

#: src/uagent/welcome.py:36
msgid ""
"[MCP Servers]\n"
"- No servers registered."
msgstr "[MCP Servers]\\n- No servers registered."

#: src/uagent/welcome.py:38
msgid "[MCP Servers]"
msgstr "[Serveurs MCP]"

#: src/uagent/welcome.py:45
#, python-format
msgid ""
"[MCP Servers]\n"
"- Failed to get info: %(err)s"
msgstr ""
"[Serveurs MCP]\n"
"- Impossible d’obtenir les informations : %(err)s"

#: src/uagent/welcome.py:64
msgid "[Quick Guide]"
msgstr "[Guide rapide]"

#: src/uagent/welcome.py:65
msgid "- Chat: type a message and send (GUI: Ctrl+Enter is also available)."
msgstr ""
"- Chat : saisissez un message et envoyez-le (interface graphique : "
"Ctrl+Entrée est aussi disponible)."

#: src/uagent/welcome.py:67
msgid ""
"- Multiline: enter a line that is just 'f' to enter multiline mode (end with"
" \"\"\"end)."
msgstr ""
"- Saisie multiligne : saisissez une ligne composée uniquement de 'f' pour "
"entrer en mode multiligne (terminez avec \"\"\"end)."

#: src/uagent/welcome.py:70
msgid ""
"- Commands: type ':help' to see system commands (log management, history "
"compression, etc.). Note: commands start with ':' (colon) instead of '/' "
"(slash)."
msgstr ""
"- Commandes : tapez ':help' pour voir les commandes système (gestion des "
"journaux, compression de l'historique, etc.). Remarque : les commandes "
"commencent par ':' (deux-points) au lieu de '/' (barre oblique)."

#: src/uagent/welcome.py:72
msgid "- Exit: ':exit' or ':quit' ends the session."
msgstr "- Quitter : ':exit' ou ':quit' termine la session."

#: src/uagent/welcome.py:74
msgid ""
"- Images: GUI supports drag & drop; in CUI you can input a file path for "
"image analysis."
msgstr ""
"- Images : l’interface graphique prend en charge le glisser-déposer ; en "
"interface texte, vous pouvez fournir un chemin de fichier pour l’analyse "
"d’image."

#: src/uagent/welcome.py:77
#, python-format
msgid ""
"- Docs: `%(docs_cmd)s` shows bundled docs; `%(webinspect_cmd)s` shows Web "
"Inspector help (`--path/--open` also available)."
msgstr ""
"- Docs : `%(docs_cmd)s` affiche les documents inclus ; `%(webinspect_cmd)s` "
"affiche l’aide de Web Inspector (`--path/--open` également disponibles)."

#: src/uagent/welcome.py:81
msgid "[Examples]"
msgstr "[Exemples]"

#: src/uagent/welcome.py:82
msgid "- \"Analyze the source code in this folder and create a README.md.\""
msgstr "- \"Analyser le code source de ce dossier et créer un README.md.\""

#: src/uagent/welcome.py:84
msgid ""
"- \"Take a screenshot of the current desktop and describe the visible window"
" contents.\""
msgstr ""
"- \"Prendre une capture d'écran du bureau actuel et décrire le contenu de la"
" fenêtre visible.\""

#: src/uagent/welcome.py:86
msgid "- \"Create a monthly summary report from this Excel file.\""
msgstr ""
"- \"Créer un rapport récapitulatif mensuel à partir de ce fichier Excel.\""

#: src/uagent/welcome.py:87
msgid "- \"Read this PDF and list three key points.\""
msgstr "- \"Lire ce PDF et lister trois points clés.\""

#: src/uagent/welcome.py:88
msgid "- \"Search the latest news and summarize a specific topic.\""
msgstr "- \"Rechercher les dernières actualités et résumer un sujet précis.\""

#: src/uagent/welcome.py:195
msgid "-- More -- (Enter: next) "
msgstr "-- Plus -- (Entrée : suivant) "

#: src/uagent/a2a/engine.py:125
msgid "No assistant message produced."
msgstr "Aucun message d’assistant n’a été produit."

#: src/uagent/a2a/engine.py:137
msgid "Generated image(s)."
msgstr "Image(s) générée(s)."

#: src/uagent/a2a/engine.py:150
#, python-format
msgid "ECHO: %(text)s"
msgstr "ÉCHO : %(text)s"

#: src/uagent/a2a/engine.py:165
#, python-format
msgid "uagent initialization failed: %(err)s"
msgstr "l’initialisation de uagent a échoué : %(err)s"

#: src/uagent/a2a/engine.py:177
#, python-format
msgid "uagent execution failed: %(etype)s: %(err)s"
msgstr "l’exécution de uagent a échoué : %(etype)s: %(err)s"

#: src/uagent/a2a/engine.py:188
#, python-format
msgid "Unknown UAGENT_A2A_ENGINE: %(mode)s"
msgstr "UAGENT_A2A_ENGINE inconnu : %(mode)s"

#: src/uagent/providers/gemini_cache_mgr.py:131
msgid "invalid cache meta"
msgstr "métadonnées de cache invalides"

#: src/uagent/providers/llm_claude.py:222
#: src/uagent/providers/util_providers.py:610
msgid "anthropic package is not installed."
msgstr "Le paquet anthropic n'est pas installé."

#: src/uagent/providers/llm_gemini.py:564
msgid ""
"google-genai could not be imported (pip install google-genai is required)."
msgstr ""
"google-genai n’a pas pu être importé (pip install google-genai est requis)."

#: src/uagent/providers/llm_gemini.py:1124
msgid "[Gemini Error: Response blocked by safety filter or finish reason]"
msgstr ""
"[Erreur Gemini : Réponse bloquée par le filtre de sécurité ou le motif de "
"fin]"

#: src/uagent/providers/llm_gemini.py:1129
#, python-format
msgid "[Gemini Error: %(err)s]"
msgstr "[Erreur Gemini : %(err)s]"

#: src/uagent/providers/llm_openai_responses.py:69
msgid "[WARN] assistant history contained image content; converted to text."
msgstr ""
"[WARN] L'historique de l'assistant contenait du contenu d'image ; converti "
"en texte."

#: src/uagent/providers/llm_openai_responses.py:92
msgid "[WARN] invalid image content (missing url)."
msgstr "[WARN] contenu d'image invalide (URL manquante)."

#: src/uagent/providers/llm_openai_responses.py:100
#: src/uagent/providers/llm_openai_responses.py:109
#, python-format
msgid "[WARN] unsupported content item: %(item)r"
msgstr "[WARN] élément de contenu non pris en charge : %(item)r"

#: src/uagent/providers/llm_openai_responses.py:444
msgid "Sources:"
msgstr "Sources :"

#: src/uagent/providers/llm_openai_responses.py:507
msgid "search"
msgstr "rechercher"

#: src/uagent/providers/llm_openai_responses.py:509
msgid "open page"
msgstr "ouvrir la page"

#: src/uagent/providers/llm_openai_responses.py:511
msgid "find in page"
msgstr "trouver dans la page"

#: src/uagent/providers/llm_openai_responses.py:512
msgid "web search"
msgstr "recherche web"

#: src/uagent/providers/llm_openai_responses.py:526
msgid "Web search: searching"
msgstr "Recherche web : recherche en cours"

#: src/uagent/providers/llm_openai_responses.py:528
msgid "Web search: completed"
msgstr "Recherche web : terminée"

#: src/uagent/providers/llm_openai_responses.py:530
#, python-brace-format
msgid "Web search: {action}"
msgstr "Recherche web : {action}"

#: src/uagent/providers/llm_openai_responses.py:587
#, python-brace-format
msgid ""
"[Tool calling rules]\n"
"        - When calling a tool/function, you MUST provide function_call.arguments as a JSON object.\n"
"        - The JSON object MUST include all required parameters defined by the tool schema.\n"
"        - Never call a tool with an empty object {} unless the tool has no required parameters.\n"
"        - If you do not have a required parameter, ask the user for it using human_ask instead of guessing.\n"
"        "
msgstr ""
"[Règles d'appel des outils]\n"
"        - Lors de l'appel d'un outil/fonction, vous DEVEZ fournir function_call.arguments sous forme d'objet JSON.\n"
"        - L'objet JSON DOIT inclure tous les paramètres requis définis par le schéma de l'outil.\n"
"        - Ne jamais appeler un objet vide {} sauf si l'outil n'a aucun paramètre requis.\n"
"        - Si vous ne disposez pas d'un paramètre requis, demandez-le à l'utilisateur via human_ask au lieu de deviner.\n"
"        "

#: src/uagent/providers/llm_openai_responses.py:594
msgid ""
"[Web search rules]\n"
"        - Use web search only when fresh or external information is necessary.\n"
"        - Do not use web search for local or stable information.\n"
"        - Prefer answering without web search when the answer is already sufficient.\n"
"        "
msgstr ""
"[Règles de recherche web]\n"
"        - Utilisez la recherche web uniquement lorsqu'il faut des informations récentes ou externes.\n"
"        - N'utilisez pas la recherche web pour des informations locales ou stables.\n"
"        - Privilégiez une réponse sans recherche web lorsque la réponse est déjà suffisante.\n"
"        "

#: src/uagent/providers/util_providers.py:243
msgid "Environment variable UAGENT_PROVIDER is not set."
msgstr "La variable d'environnement UAGENT_PROVIDER n'est pas définie."

#: src/uagent/providers/util_providers.py:259
#, python-format
msgid "Unknown provider: %(provider)s"
msgstr "Fournisseur inconnu : %(provider)s"

#: src/uagent/providers/util_providers.py:544
#: src/uagent/providers/util_providers.py:570
msgid "google-genai package is not installed."
msgstr "Le paquet google-genai n'est pas installé."

#: src/uagent/runtime/runtime_banner.py:231
msgid "embedding"
msgstr "représentation vectorielle"

#: src/uagent/runtime/runtime_banner.py:232
msgid "audio speech"
msgstr "synthèse vocale"

#: src/uagent/runtime/runtime_banner.py:233
msgid "audio transcribe"
msgstr "transcription audio"

#: src/uagent/runtime/runtime_banner.py:234
msgid "image generation"
msgstr "génération d'images"

#: src/uagent/runtime/runtime_banner.py:235
msgid "image analysis"
msgstr "analyse d'images"

#: src/uagent/runtime/runtime_banner.py:254
#, python-format
msgid "[INFO] workdir = %(workdir)s (source: %(source)s)"
msgstr "[INFO] répertoire de travail = %(workdir)s (source : %(source)s)"

#: src/uagent/runtime/runtime_banner.py:262
#: src/uagent/runtime/runtime_banner.py:276
#: src/uagent/runtime/runtime_banner.py:281
#: src/uagent/runtime/runtime_banner.py:293
#: src/uagent/runtime/runtime_banner.py:305
#: src/uagent/runtime/runtime_banner.py:314
#: src/uagent/runtime/runtime_banner.py:323
#, python-format
msgid "[INFO] base_url = %(base_url)s"
msgstr "[INFO] URL de base = %(base_url)s"

#: src/uagent/runtime/runtime_banner.py:270
#, python-format
msgid "[INFO] api_version = %(api_version)s"
msgstr "[INFO] version de l'API = %(api_version)s"

#: src/uagent/runtime/runtime_banner.py:332
#, python-format
msgid "[INFO] vertexai = project=%(project)s, location=%(location)s"
msgstr "[INFO] vertexai = projet=%(project)s, emplacement=%(location)s"

#: src/uagent/runtime/runtime_banner.py:341
#, python-format
msgid "[INFO] %(label)s = %(provider)s; model = %(model)s"
msgstr "[INFO] %(label)s = %(provider)s; modèle = %(model)s"

#: src/uagent/runtime/runtime_banner.py:368
#, python-format
msgid ""
"UAGENT_RESPONSES=1 is set, but provider '%(provider)s' does not support "
"Responses API. Falling back to ChatCompletions."
msgstr ""
"UAGENT_RESPONSES=1 est défini, mais le fournisseur '%(provider)s' ne prend "
"pas en charge l’API Responses. Retour à ChatCompletions."

#: src/uagent/runtime/runtime_banner.py:375
#, python-format
msgid "LLM API mode = %(mode)s"
msgstr "Mode API LLM = %(mode)s"

#: src/uagent/runtime/runtime_banner.py:378
msgid "Responses (UAGENT_RESPONSES is enabled)"
msgstr "Réponses (UAGENT_RESPONSES est activé)"

#: src/uagent/runtime/runtime_banner.py:382
msgid "Native Gemini/Vertex AI/Claude API (UAGENT_RESPONSES is ignored)"
msgstr "API native Gemini/Vertex AI/Claude (UAGENT_RESPONSES est ignoré)"

#: src/uagent/runtime/runtime_banner.py:385
msgid "ChatCompletions (UAGENT_RESPONSES is disabled)"
msgstr "ChatCompletions (UAGENT_RESPONSES est désactivé)"

#: src/uagent/runtime/runtime_banner.py:393
#, python-format
msgid "LLM streaming = %(state)s"
msgstr "Diffusion LLM = %(state)s"

#: src/uagent/runtime/runtime_banner.py:394
msgid "enabled"
msgstr "activé"

#: src/uagent/runtime/runtime_banner.py:394
msgid "disabled"
msgstr "désactivé"

#: src/uagent/runtime/runtime_env.py:186
msgid ""
"[INFO] .env.sec content does not match the current startup UAGENT_* "
"environment variables. Update it? [y/N] "
msgstr ""
"[INFO] Le contenu de .env.sec ne correspond pas aux variables "
"d'environnement UAGENT_* actuelles. Le mettre à jour ? [o/N] "

#: src/uagent/runtime/runtime_env.py:202
msgid ""
"[INFO] .env.sec content does not match the current startup UAGENT_* "
"environment variables. Use `uag_envsec` to update it."
msgstr ""
"[INFO] Le contenu de .env.sec ne correspond pas aux variables "
"d'environnement UAGENT_* actuelles. Utilisez `uag_envsec` pour le mettre à "
"jour."

#: src/uagent/runtime/runtime_env.py:214
#, python-format
msgid "Updated .env.sec: %(path)s"
msgstr "Mis à jour .env.sec : %(path)s"

#: src/uagent/runtime/runtime_env.py:218
#, python-format
msgid "[WARN] Failed to update .env.sec: %(err)s"
msgstr "[WARN] Échec de la mise à jour de .env.sec : %(err)s"

#: src/uagent/runtime/runtime_env.py:228
msgid ""
"[INFO] .env.sec is missing. Create it from the current startup UAGENT_* "
"environment variables? [y/N] "
msgstr ""
"[INFO] .env.sec est manquant. Le créer à partir des variables "
"d'environnement UAGENT_* actuelles ? [o/N] "

#: src/uagent/runtime/runtime_env.py:244
msgid ""
"[INFO] .env.sec is missing. Use `uag_envsec` to create it from the current "
"startup UAGENT_* environment variables."
msgstr ""
"[INFO] .env.sec est manquant. Utilisez `uag_envsec` pour le créer à partir "
"des variables d'environnement UAGENT_* actuelles."

#: src/uagent/runtime/runtime_env.py:254
#, python-format
msgid "Created .env.sec: %(path)s"
msgstr "Créé .env.sec : %(path)s"

#: src/uagent/runtime/runtime_env.py:258
#, python-format
msgid "[WARN] Failed to create .env.sec: %(err)s"
msgstr "[WARN] Échec de la création de .env.sec : %(err)s"

#: src/uagent/runtime/runtime_env.py:289
#, python-format
msgid "[WARN] Failed to check .env.sec synchronization: %(err)s"
msgstr ""
"[WARN] Échec de la vérification de la synchronisation de .env.sec : %(err)s"

#: src/uagent/runtime/runtime_init.py:83
#, python-format
msgid "[WARN] Failed to decrypt .env.sec: %(err)s"
msgstr "[WARN] Échec du déchiffrement de .env.sec : %(err)s"

#: src/uagent/runtime/runtime_workdir.py:49
#, python-format
msgid "Specified workdir path is a file: %(path)s"
msgstr "Le chemin du répertoire de travail spécifié est un fichier : %(path)s"
