Files
paseo/packages/app/src/i18n/resources/fr.ts
Mohamed Boudra 26f169866f Add app diagnostic report (#1728)
* feat(diagnostics): add app diagnostic report

* fix(diagnostics): guard app diagnostic runs

* fix(diagnostics): include websocket runtime metrics

* fix(diagnostics): type websocket metric snapshot

* fix(diagnostics): include daemon shell env

* fix(loop): make stop cancellation test deterministic
2026-06-25 23:20:52 +08:00

1955 lines
75 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { TranslationResources } from "./en";
export const fr: TranslationResources = {
common: {
back: "Dos",
loading: "Chargement...",
actions: {
back: "Dos",
cancel: "Annuler",
close: "Fermer",
copy: "Copie",
dismiss: "Rejeter",
retry: "Réessayer",
search: "Recherche",
select: "Sélectionner",
},
placeholders: {
search: "Recherche...",
},
empty: {
noResults: "Aucun résultat trouvé",
noOptionsMatchSearch: "Aucune option ne correspond à votre recherche.",
},
states: {
loading: "Chargement...",
starting: "Départ...",
copied: "Copié",
copiedLabel: "{{label}}copié",
downloadComplete: "Téléchargement terminé",
downloadFailed: "Le téléchargement a échoué",
},
errors: {
error: "Erreur",
unableToSave: "Impossible d'enregistrer",
nameRequired: "Le nom est requis",
daemonUnavailable: "Daemonindisponible",
daemonClientUnavailable: "ClientDaemonindisponible",
daemonClientDisconnected: "Le clientDaemonest déconnecté",
noFileFound: "Aucun fichier trouvé pour{{token}}",
unexpectedDictationError:
"Une erreur inattendue s'est produite lors du traitement de la dictée.",
},
connectionStatus: {
online: "En ligne",
connecting: "De liaison",
offline: "Hors ligne",
error: "Erreur",
idle: "Inactif",
},
},
shell: {
menu: {
toggleSidebar: "Basculer la barre latérale",
open: "Ouvrir le menu",
close: "Fermer le menu",
},
commandCenter: {
placeholder: "Tapez une commande ou recherchez des agents...",
noMatches: "Aucune correspondance",
actions: "Actes",
agents: "Agents",
newAgent: "Nouvel agent",
openProject: "Projet ouvert",
home: "Maison",
},
},
composer: {
placeholders: {
desktop: "Envoyez un message à l'agent, marquez@filesou utilisez/commandset/skills",
mobile: "Message,@files,/commands",
fallback: "Message...",
},
input: {
accessibilityLabel: "Agent de messagerie...",
focusHint: "{{shortcut}}pour se concentrer",
addAttachment: "Ajouter une pièce jointe",
interruptAgent: "Agent d'interruption",
queueMessage: "Message de file d'attente",
sendAndInterrupt: "Envoyer et interrompre",
sendMessage: "Envoyer un message",
queue: "File d'attente",
send: "Envoyer",
},
cancel: {
cancelingAgent: "Agent d'annulation",
stopAgent: "Agent d'arrêt",
interrupt: "Interrompre",
},
voice: {
enableVoiceMode: "Activer le mode vocal",
voiceMode: "Mode vocal",
unmuteVoiceMode: "Activer le mode vocal",
muteVoiceMode: "Mode voix muette",
stopDictation: "Arrêter la dictée",
startDictation: "Démarrer la dictée",
unmuteVoice: "Réactiver la voix",
muteVoice: "Voix muette",
dictation: "Dictée",
interruptBeforeVoice: "Interrompre l'agent avant de démarrer le mode vocal",
},
attachments: {
addImage: "Ajouter une image",
addFile: "Upload file",
addIssueOrPr: "Ajouter un problème ouPR",
dropImagesHere: "Déposez des images ici",
dropFilesHere: "Drop files here",
editQueuedMessage: "Modifier le message en file d'attente",
sendQueuedMessageNow: "Envoyer le message en file d'attente maintenant",
openImage: "Ouvrir la pièce jointe de l'image",
removeImage: "Supprimer l'image jointe",
removeFile: "Remove file attachment",
openGithub: "Ouvrir{{kind}}#{{number}}",
removeGithub: "Supprimer{{kind}}#{{number}}",
element: "Élément",
openBrowserElement: "Ouvrir la pièce jointe de l'élément de navigateur",
removeBrowserElement: "Supprimer la pièce jointe d'un élément de navigateur",
openReview: "Ouvrir la pièce jointe de l'avis",
removeReview: "Supprimer la pièce jointe de l'avis",
},
errors: {
failedToSend: "Échec de l'envoi du message",
failedToCreateAgent: "Échec de la création de l'agent",
noHostSelected: "Aucun hôte sélectionné",
initialPromptRequired: "Une invite initiale est requise",
alreadyLoading: "Déjà en cours de chargement",
uploadFailed: "Failed to upload file",
fileTooLarge: "{{fileName}} is too large (max {{size}})",
},
clientCommands: {
archiveAgent: "Archiver l'agent actuel",
freshDraft: "Archivez cet agent et démarrez un nouveau brouillon",
},
github: {
searching: "Recherche...",
noResults: "Aucun résultat trouvé.",
searchPlaceholder: "Problèmes de recherche et PR...",
title: "Joindre le problème ouPR",
},
},
agentControls: {
provider: {
fallback: "Fournisseur",
select: "Sélectionnez le fournisseur d'agent",
},
thinking: {
title: "Pensée",
unknown: "Inconnu",
extraHigh: "Très haut",
select: "Sélectionnez l'option de réflexion",
selectWithValue: "Sélectionnez l'option de réflexion ({{value}})",
},
model: {
unknown: "Modèle inconnu",
},
features: {
title: "Caractéristiques",
open: "Fonctionnalités de l'agent ouvert",
on: "Sur",
off: "Désactivé",
},
mode: {
title: "Mode",
searchPlaceholder: "Modes de recherche...",
selectWithValue: "Sélectionnez le mode agent ({{value}})",
},
hints: {
thinking: "Mode réflexion",
model: "Changer de modèle",
mode: "Changer de mode",
},
},
agentStream: {
empty: "Commencez à discuter avec cet agent...",
scrollToBottom: "Faire défiler vers le bas",
permission: {
plan: "Plan",
required: "Autorisation requise",
deny: "Refuser",
accept: "Accepter",
implement: "Mettre en œuvre",
question: "Comment souhaitez-vous procéder?",
proposedPlan: "Plan proposé",
},
},
agentPanel: {
states: {
notFound: "Agentintrouvable",
failedToLoad: "Échec du chargement de l'agent",
reconnecting: "Reconnexion...",
archivingTitle: "Agent d'archivage...",
archivingSubtitle: "Veuillez patienter pendant que nous archivons cet agent.",
},
unavailable: {
selectedHost: "Hôte sélectionné",
unknownHost:
"Impossible d'ouvrir cet agent car{{serverLabel}}n'est pas configuré sur ce périphérique.",
addHost:
"Ajoutez l'hôte dans Paramètres ou ouvrez un agent sur un serveur configuré pour continuer.",
preparingSession: "Préparation de la séance{{serverLabel}}...",
connecting: "Connexion à{{serverLabel}}...",
showSoon: "Nous montrerons cet agent dans un instant.",
showWhenOnline: "Nous afficherons cet agent une fois que l'hôte sera en ligne.",
reconnectingTo: "Reconnexion à{{serverLabel}}...",
showAgainWhenReachable: "Nous afficherons à nouveau cet agent dès que l'hôte sera joignable.",
},
archived: {
callout: "Cet agent est archivé",
unarchive: "Désarchiver",
},
},
sessions: {
title: "Historique",
empty: "Aucune séance pour l'instant",
actions: {
loadMore: "Charger plus",
},
},
agentList: {
fallbackTitle: "Nouvelle séance",
dateSections: {
recent: "Récent",
today: "Aujourd'hui",
yesterday: "Hier",
thisWeek: "Cette semaine",
thisMonth: "Ce mois-ci",
older: "Plus vieux",
},
status: {
initializing: "Départ",
idle: "Inactif",
running: "En cours d'exécution",
error: "Erreur",
closed: "Fermé",
},
badges: {
archived: "Archivé",
pending: "{{count}}en attente",
attention: "Attention",
},
archiveSheet: {
hostOffline: "Hosthors ligne",
runningAgent: "Cet agent est toujours en cours d'exécution. Larchiver arrêtera lagent.",
archive: "Archive",
},
},
message: {
actions: {
copyCode: "Copier le code",
copyTurn: "Copier le tour",
copyMessage: "Copier le message",
openFile: "Ouvrir le fichier",
copied: "Copié",
},
attachments: {
dismissImage: "Ignorer l'image",
closeImage: "Fermer l'image",
imageLoadFailed: "Impossible de charger l'image",
imageUnavailable: "Image indisponible",
imagePreviewUnavailable: "Aperçu de l'image indisponible.",
imagePreviewLoadFailed: "Impossible de charger l'aperçu de l'image.",
review: "Revue",
commentsOne: "1 commentaire",
commentsMany: "{{count}} commentaires",
textAttachment: "Texte en pièce jointe",
text: "Texte",
file: "Fichier",
},
speak: {
header: "Rayon",
},
activity: {
details: "Détails",
},
dictation: {
start: "Démarrer la dictée vocale",
cancel: "Annuler la dictée",
retry: "Réessayer la dictée",
insert: "Insérer la transcription",
insertAndSend: "Insérer la transcription et envoyer",
failed: "Échec de la dictée:{{error}}",
failedRetry: "La dictée a échoué. Appuyez sur réessayer.",
},
question: {
submit: "Soumettre",
next: "Suivant",
answerPlaceholder: "Tapez votre réponse...",
otherPlaceholder: "Autre...",
},
todo: {
title: "Tâches",
empty: "Aucune tâche pour l'instant.",
},
compaction: {
loading: "Compactage...",
auto: "Contexte automatiquement compacté",
manual: "Contexte compacté manuellement",
withTokens: "Contexte compacté (jetons{{tokens}}K)",
completed: "Contexte compacté",
},
},
importSession: {
title: "Session d'importation",
filters: {
all: "Tous",
},
status: {
connectHost: "Connectez-vous à un hôte pour importer des sessions",
updateHost: "Mettez à jour l'hôte pour importer des sessions.",
noProviders: "Aucun fournisseur importable n'est activé.",
loading: "Chargement des sessions récentes...",
failedAll: "Impossible de charger les sessions récentes.",
failedProviders: "Impossible de charger les sessions pour{{providers}}.",
failedImport: "Impossible d'importer la session sélectionnée.",
},
actions: {
refresh: "Sessions de rafraîchissement",
},
preview: {
untitledSession: "Séance sans titre",
noPrompt: "Aucun aperçu rapide",
},
empty: {
noRecent: "Aucune session récente à importer.",
alreadyImported: "Toutes les sessions récentes sont déjà importées.",
noProviderSessions: "Aucune session{{provider}}trouvée.",
},
row: {
importing: "Importation...",
},
},
workspace: {
route: {
loading: "Chargement de l'espace de travail",
restoring: "Restauration de l'espace de travail",
restoreFailed:
"Impossible de restaurer cet espace de travail — le répertoire a peut-être été déplacé ou supprimé",
connecting: "De liaison",
hostOffline: "{{hostName}}est hors ligne",
cannotReachHost: "Impossible d'atteindre{{hostName}}",
hostStatus: "StatutHost:{{status}}",
missing: "Workspaceintrouvable",
needsHostUpgrade: "Mettez à jour votre hôte pour restaurer cet espace de travail",
manageHost: "Gérer l'hôte",
},
hoverCard: {
scriptsAccessibility: "ScriptsWorkspace",
copyPath: "Copier le chemin",
copyBranchName: "Copier le nom de la branche",
copied: "Copié",
},
fileExplorer: {
sort: {
name: "Nom",
modified: "Modifié",
size: "Taille",
},
context: {
size: "Taille",
modified: "Modifié",
copyPath: "Copier le chemin",
download: "Télécharger",
},
actions: {
back: "Dos",
retry: "Réessayer",
refresh: "Actualiser les fichiers",
refreshing: "Actualisation des fichiers",
hideHiddenFiles: "Masquer les fichiers cachés",
showHiddenFiles: "Afficher les fichiers cachés",
},
empty: {
noFiles: "Aucun fichier",
noVisibleFiles: "Aucun fichier visible",
},
states: {
unavailable: "Workspacen'est pas disponible",
loading: "Chargement des fichiers...",
},
errors: {
failedToListDirectory: "Échec de la liste du répertoire",
},
},
setup: {
descriptor: {
label: "Installation",
completed: "Configuration terminée",
failed: "Échec de l'installation",
workspace: "ConfigurationWorkspace",
},
status: {
running: "En cours d'exécution",
completed: "Complété",
failed: "Échoué",
waiting: "En attente de la sortie de configuration",
},
waiting: "Configuration de l'espace de travail...",
empty: {
noCommands: "Aucune commande de configuration n'a été exécutée pour cet espace de travail.",
},
accessibility: {
noCommands: "Aucune commande de configuration n'a été exécutée pour cet espace de travail",
log: "Journal de configurationWorkspace",
},
log: {
noOutput: "Aucune sortie",
},
},
browser: {
unavailable: {
title: "Le navigateur est réservé au bureau",
subtitle: "Ouvrez cet espace de travail dans Electron pour utiliser le navigateur intégré.",
},
session: "Session de navigateur{{browserId}}",
controls: {
back: "Dos",
forward: "Avant",
stopLoading: "Arrêter le chargement",
refresh: "Rafraîchir",
browserUrl: "NavigateurURL",
enterUrl: "EntrezURL",
openDevTools: "Outils de développement du navigateur ouvert",
cancelSelector: "Annuler le sélecteur d'élément",
selectElement: "Sélectionner un élément",
},
errors: {
failedToLoad: "Échec du chargement de la page",
invalidUrl: "NavigateurURLinvalide",
unsupportedProtocol: "Navigateur non pris en charge bloquéURL:{{protocol}}",
},
},
terminal: {
hostDisconnected: "Hostn'est pas connecté",
unableToSubscribe: "Impossible de s'abonner au terminal",
},
tabs: {
loading: "Chargement...",
loadingAgentTitle: "Titre d'agent de chargement",
emptyPane: "Aucun onglet dans ce volet.",
fallback: {
newAgent: "Nouvel agent",
setup: "Installation",
workspaceSetup: "ConfigurationWorkspace",
terminal: "Terminal",
browser: "Navigateur",
agent: "Agent",
workspace: "Workspace",
},
switcher: {
trigger: "Changer d'onglet ({{count}}ouvert)",
title: "Changer d'onglet",
searchPlaceholder: "Onglets de recherche",
},
menu: {
openFor: "Ouvrir le menu pour{{label}}",
copyResumeCommand: "Copier la commande de reprise",
copyAgentId: "Copier l'identifiant de l'agent",
copyFilePath: "Copy file path",
rename: "Rebaptiser",
closeAbove: "Fermer les onglets ci-dessus",
closeBelow: "Fermer les onglets ci-dessous",
closeLeft: "Près de la gauche",
closeRight: "Près de la droite",
closeOthers: "Fermer les autres onglets",
reloadAgent: "Agent de rechargement",
reloadAgentTooltip:
"Rechargez l'agent pour mettre à jour les compétences, les MCP ou le statut de connexion.",
close: "Fermer",
renameTerminal: "Renommer le terminal",
renameAgent: "Renommer l'agent",
},
actions: {
newAgent: "Nouvel agent",
newTerminal: "Nouveau terminal",
preparingTerminal: "Préparation de l'onglet du terminal",
preparingTerminalTooltip: "Préparation du terminal...",
newBrowser: "Nouveau navigateur",
splitRight: "Volet divisé à droite",
splitDown: "Diviser le volet vers le bas",
terminalProfilesMenu: "Terminal profiles",
editTerminalProfiles: "Edit profiles…",
pinTarget: "Épingler",
unpinTarget: "Détacher",
},
explorer: {
open: "Ouvrir l'explorateur",
close: "Fermer l'explorateur",
toggle: "Basculer l'explorateur",
changes: "Changements",
files: "Fichiers",
},
toasts: {
copyFailed: "Échec de la copie",
agentIdCopiedLabel: "AgentID",
resumeCommandCopiedLabel: "reprendre la commande",
filePathCopiedLabel: "File path",
resumeIdUnavailable: "ReprendreIDnon disponible",
resumeCommandUnavailable: "Commande de reprise non disponible",
reloadingAgent: "Agent de rechargement...",
reloadedAgent: "Agent rechargé",
failedToReloadAgent: "Échec du rechargement de l'agent",
},
confirmations: {
close: "Fermer",
cancel: "Annuler",
archive: "Archive",
closeTerminalTitle: "Fermer le terminal?",
closeTerminalMessage:
"Tout processus en cours dexécution dans ce terminal sera immédiatement arrêté.",
archiveRunningAgentTitle: "Archiver l'agent en cours d'exécution?",
archiveRunningAgentMessage:
"Cet agent est toujours en cours d'exécution. L'archiver arrêtera l'agent et fermera l'onglet.",
closeTabsLeftTitle: "Fermer les onglets à gauche?",
closeTabsRightTitle: "Fermer les onglets à droite?",
closeOtherTabsTitle: "Fermer les autres onglets?",
bulk: {
all: "Cela archivera les agents{{agents}}, fermera les terminaux{{terminals}}et fermera les onglets{{tabs}}. Tout processus en cours dexécution dans un terminal fermé sera immédiatement arrêté.",
agentsAndTerminals:
"Cela archivera les agents{{agents}}et fermera les terminaux{{terminals}}. Tout processus en cours dexécution dans un terminal fermé sera immédiatement arrêté.",
terminalsAndTabs:
"Cela fermera le(s) terminal(s){{terminals}}et fermera le(s) onglet(s){{tabs}}. Tout processus en cours dexécution dans un terminal fermé sera immédiatement arrêté.",
agentsAndTabs: "Cela archivera les agents{{agents}}et fermera les onglets{{tabs}}.",
terminals:
"Cela fermera le(s) terminal(s){{terminals}}. Tout processus en cours dexécution dans un terminal fermé sera immédiatement arrêté.",
tabs: "Cela fermera les onglets{{tabs}}.",
agents: "Cela archivera les agents{{agents}}.",
},
},
},
header: {
actions: {
workspaceActions: "ActionsWorkspace",
newAgent: "Nouvel agent",
newTerminal: "Nouvelle borne",
newBrowser: "Nouvel onglet du navigateur",
importSession: "Session d'importation",
copyPath: "Copier le chemin de l'espace de travail",
copyBranchName: "Copier le nom de la branche",
showSetup: "Afficher la configuration",
},
toasts: {
workspacePathUnavailable: "Le cheminWorkspacen'est pas encore disponible",
branchNameUnavailable: "Nom de la succursale non disponible",
terminalQueued:
"Préparation de l'espace de travail, ouverture du terminal lorsque vous êtes prêt...",
workspacePathCopiedLabel: "CheminWorkspace",
branchNameCopiedLabel: "Nom de la succursale",
},
},
scripts: {
title: "Scripts",
actions: {
run: "Courir",
view: "Voir",
},
accessibility: {
trigger: "ScriptsWorkspace",
openAt: "Ouvrir{{scriptName}}à{{label}}",
viewTerminal: "Voir le terminal{{scriptName}}",
runScript: "Exécuter le script{{scriptName}}",
script: "Script{{scriptName}}",
},
states: {
exitCode: "quitter{{code}}",
startFailed: "Échec du démarrage de{{scriptName}}",
},
},
git: {
actions: {
moreOptions: "Plus d'options",
moreActions: "Plus de propositions",
commit: {
label: "Commettre",
pending: "S'engager...",
success: "Engagé",
},
pull: {
label: "Tirer",
pending: "Tirer...",
success: "Tiré",
},
push: {
label: "Pousser",
pending: "Pousser...",
success: "Poussé",
},
pullAndPush: {
label: "Tirez et poussez",
pending: "Tirer et pousser...",
success: "Tiré et poussé",
},
viewPr: "VoirPR",
createPr: {
label: "CréerPR",
pending: "Création dePR...",
success: "PRcréé",
},
mergeBranch: {
label: "Fusionner localement",
pending: "Fusion...",
success: "Fusionné",
},
mergeFromBase: {
label: "Mise à jour de{{baseRef}}",
pending: "Mise à jour...",
success: "Mis à jour",
},
archive: {
label: "Arbre de travail d'archivage",
pending: "Archivage...",
success: "Archivé",
},
mergePr: {
squash: "Fusionner PR (squash)",
merge: "Fusionner PR (merge)",
rebase: "Fusionner PR (rebase)",
pending: "Fusion de PR...",
success: "PR fusionné",
},
autoMerge: {
enableSquash: "Fusion automatique (squash)",
enableMerge: "Fusion automatique (merge)",
enableRebase: "Fusion automatique (rebase)",
enabled: "Fusion automatique activée",
enabling: "Activation de la fusion automatique...",
disabling: "Désactivation de la fusion automatique...",
disabled: "Fusion automatique désactivée",
},
unavailable: {
viewPrNoGithub: "ViewPRn'est pas disponible pour le moment carGitHubn'est pas connecté",
pullNoRemote:
"Pull n'est pas disponible ici car cette branche n'est pas encore connectée à une télécommande",
pullDirty:
"Pull n'est pas disponible tant que vous avez des modifications locales, alors validez-les ou cachez-les d'abord",
pullUpToDate: "Pull n'est pas disponible car cette branche est déjà à jour",
pushNoRemote:
"Push n'est pas disponible ici car cette branche n'est pas encore connectée à une télécommande",
pushBehind:
"Push n'est pas encore disponible, car de nouvelles modifications doivent être apportées en premier.",
pushNothing: "Push n'est pas disponible car il n'y a rien de nouveau à envoyer",
pullAndPushNoRemote:
"Le pull et le push ne sont pas disponibles ici car cette branche n'est pas encore connectée à une télécommande",
pullAndPushDirty:
"Pull et push ne sont pas disponibles tant que vous avez des modifications locales, alors validez-les ou cachez-les d'abord",
pullAndPushInSync:
"Les fonctions Pull et Push ne sont pas disponibles car cette branche est déjà synchronisée",
createPrNoGithub:
"CréerPRn'est pas disponible pour le moment carGitHubn'est pas connecté",
createPrNoCommits:
"CréerPRn'est pas disponible car cette branche n'a pas encore de nouveaux commits",
mergeNoBase:
"La fusion n'est pas disponible car nous n'avons pas pu déterminer la branche de base",
mergeDirty:
"La fusion n'est pas disponible tant que vous avez des modifications locales, alors validez-les ou cachez-les d'abord",
mergeNothing:
"La fusion n'est pas disponible car cette branche n'a encore rien de nouveau à fusionner",
updateNoBase:
"La mise à jour n'est pas disponible car nous n'avons pas pu déterminer la branche de base",
updateDirty:
"La mise à jour n'est pas disponible tant que vous avez des modifications locales, alors validez-les ou cachez-les d'abord",
updateCurrent:
"La mise à jour n'est pas disponible car cette branche est déjà à jour avec{{baseRef}}",
archiveNotWorktree:
"L'archive n'est pas disponible ici car cet espace de travail n'a pas été créé en tant qu'arbre de travailPaseo",
mergePrNoGithub:
"La fusionPRn'est pas disponible pour le moment carGitHubn'est pas connecté",
mergePrMissing:
"La fusionPRn'est pas disponible car il n'y a pas encore de demande d'extraction",
mergePrDraft:
"La fusionPRn'est pas disponible car la demande d'extraction est encore un brouillon",
mergePrMerged:
"La fusionPRn'est pas disponible car la demande d'extraction est déjà fusionnée",
mergePrClosed: "La fusionPRn'est pas disponible car la demande d'extraction est fermée",
mergePrConflicts:
"La fusionPRn'est pas disponible car la demande d'extraction présente des conflits",
mergePrQueue:
"MergePRn'est pas disponible ici car ce référentiel utilise une file d'attente de fusion",
mergePrNotReady:
"La fusionPRn'est pas disponible jusqu'à ce queGitHubsignale que la demande d'extraction est prête à fusionner",
autoMergeCannotDisable:
"La fusion automatique est activée, mais ce compte ne peut pas la désactiver",
},
toasts: {
failedCommit: "Échec de la validation",
failedPull: "Échec de l'extraction",
failedPush: "Échec de la poussée",
failedPullAndPush: "Impossible de tirer et de pousser",
failedCreatePr: "Échec de la création dePR",
failedMergePr: "Échec de la fusion dePR",
failedEnableAutoMerge: "Échec de l'activation de la fusion automatique",
failedDisableAutoMerge: "Échec de la désactivation de la fusion automatique",
baseRefUnavailable: "Réf de base indisponible",
failedMerge: "Échec de la fusion",
failedMergeFromBase: "Échec de la fusion à partir de la base",
worktreePathUnavailable: "Chemin d'accès à l'arbre de travail indisponible",
failedArchive: "Échec de l'archivage de l'arbre de travail",
},
archiveWarning: {
title: "Archiver «{{worktreeName}}»?",
confirm: "Archive",
cancel: "Annuler",
uncommittedChanges: "Modifications non validées",
uncommittedChangesWithDiff: "Modifications non validées ({{diffStat}})",
addedLine: "Ligne ajoutée{{count}}",
addedLines: "{{count}}lignes ajoutées",
deletedLine: "Ligne supprimée{{count}}",
deletedLines: "{{count}}lignes supprimées",
unpushedCommit: "Validation non poussée{{count}}",
unpushedCommits: "Validations non poussées{{count}}",
},
},
diff: {
binaryFile: "Fichier binaire",
tooLarge: "Diff trop grand pour être affiché",
unified: "Différentiel unifié",
split: "Différent côte à côte",
hideWhitespace: "Masquer les espaces",
scrollLongLines: "Faire défiler les longues lignes",
wrapLongLines: "Enroulez les longues lignes",
collapseAll: "Réduire tous les fichiers",
expandAll: "Développer tous les fichiers",
refreshing: "Rafraîchissant",
refresh: "Rafraîchir",
refreshState: "Actualiser l'état de git etGitHub",
failedRefresh: "Échec de l'actualisation de l'état git.",
emptyHiddenWhitespace: "Aucun changement visible après avoir masqué les espaces",
emptyUncommitted: "Aucune modification non validée",
emptyAgainstBase: "Aucun changement par rapport à{{baseRef}}",
checkingRepository: "Vérification du référentiel...",
notRepository: "Pas un dépôt git",
diffMode: "Mode différentiel",
uncommitted: "Non engagé",
committed: "Engagé",
branchUnknown: "Inconnu",
base: "base",
newFile: "Nouveau",
deletedFile: "Supprimé",
},
openInEditor: {
open: "Ouvrir",
chooseEditor: "Choisir l'éditeur",
openIn: "Espace de travail ouvert dans{{target}}",
openFileIn: "Open {{fileName}} in {{target}}",
failedOpen: "Échec de l'ouverture de l'espace de travail",
},
pr: {
actions: {
viewPullRequest: "Voir",
},
sections: {
checks: "Chèques",
reviews: "Avis",
},
accessibility: {
pullRequest: "Demande de tirage #{{number}}",
},
states: {
draft: "Brouillon",
merged: "Fusionné",
closed: "Fermé",
open: "Ouvrir",
},
activity: {
commented: "Commenté",
approved: "Approuvé",
requestedChanges: "Modifications demandées",
reviewed: "Révisé",
},
time: {
justNow: "tout à l' heure",
},
errors: {
statusLoadFailed: "Impossible de charger le statut de la demande d'extraction",
activityLoadFailed: "Impossible de charger l'activité de demande d'extraction",
},
},
},
},
sidebar: {
host: {
noHost: "Aucun hôte",
switchTitle: "Changer d'hôte",
searchPlaceholder: "Rechercher des hôtes...",
},
actions: {
addProject: "Ajouter un projet",
newWorkspace: "Nouvel espace de travail",
home: "Maison",
settings: "Paramètres",
closeSidebar: "Fermer la barre latérale",
},
sections: {
sessions: "Historique",
},
worktreeSetup: {
title: "Configurer les scripts d'arbre de travail",
description:
"Ajoutez des commandes de configuration pour que les nouveaux arbres de travail puissent installer des dépendances et se préparer automatiquement.",
openProjectSettings: "Ouvrir les paramètres du projet",
},
project: {
actions: {
menu: "Actions du projet",
openSettings: "Ouvrir les paramètres du projet",
openNewWindow: "Open in new window",
openNewWindowFailed: "Couldn't open a new window",
remove: "Supprimer le projet",
removing: "Suppression...",
},
confirmations: {
removeTitle: "Supprimer le projet?",
removeMessage:
"Supprimer «{{projectName}}» de la barre latérale?\n\nLes fichiers sur le disque ne seront pas modifiés.",
removeConfirm: "Retirer",
cancel: "Annuler",
},
toasts: {
hostDisconnected: "Hostn'est pas connecté",
removeFailed: "Échec de la suppression de certains espaces de travail",
updateHostToRemove: "Mettez à jour le host pour supprimer des projets.",
},
empty: {
title: "Aucun projet pour l'instant",
description: "Ajoutez un projet pour commencer",
},
},
workspace: {
status: {
scriptsAvailable: "Scripts disponibles",
creating: "Création...",
},
actions: {
menu: "ActionsWorkspace",
newWorkspace: "Nouvel espace de travail",
createWorkspaceFor: "Créer un nouvel espace de travail pour{{projectName}}",
copyPath: "Copier le chemin",
copyBranchName: "Copier le nom de la branche",
rename: "Renommer l'espace de travail",
archive: "Archive",
archiveWorktree: "Arbre de travail d'archivage",
hideFromSidebar: "Masquer de la barre latérale",
archiving: "Archivage...",
hiding: "Dissimulation...",
},
confirmations: {
hideTitle: "Masquer l'espace de travail?",
hideMessage:
"Masquer «{{workspaceName}}» dans la barre latérale?\n\nLes fichiers sur le disque ne seront pas modifiés.",
hideConfirm: "Cacher",
cancel: "Annuler",
},
rename: {
title: "Renommer l'espace de travail",
submit: "Rebaptiser",
invalidBranchName: "Nom de succursale invalide",
},
toasts: {
workspacePathUnavailable: "CheminWorkspacenon disponible",
pathCopied: "Chemin copié",
branchNameCopied: "Nom de la succursale copié",
hostDisconnected: "Hostn'est pas connecté",
hideFailed: "Échec du masquage de l'espace de travail",
archiveFailed: "Échec de l'archivage de l'arbre de travail",
},
},
},
newWorkspace: {
title: "Nouvel espace de travail",
create: "Créer",
isolation: {
local: "Local",
worktree: "Nouveau worktree",
label: "Isolation",
},
fields: {
project: "Projet",
base: "Base",
baseNotApplicable: "Non applicable",
},
titlePlaceholder: "Titre (facultatif)",
errors: {
hostDisconnected: "Hostn'est pas connecté",
createWorktreeFailed: "Échec de la création de l'arbre de travail",
composerStateRequired: "L'état du compositeur est requis",
selectModel: "Sélectionnez un modèle",
},
refPicker: {
startingRef: "Réf de départ",
chooseStart: "Choisissez par où commencer",
checkoutHint: "DécouvrezPR#{{number}}?",
checkoutPr: "DécouvrezPR#{{number}}",
dismissCheckoutHint: "Ignorer l'indice de paiementPR#{{number}}",
intoBase: "dans{{baseRef}}",
searching: "Recherche...",
noMatchingRefs: "Aucune référence correspondante.",
searchPlaceholder: "Rechercher des succursales et des PR",
title: "Commencer à partir de",
},
},
desktop: {
quitting: {
title: "QuitterPaseo...",
detail: "Arrêt du démon local.",
},
daemon: {
title: "Daemon",
status: {
title: "Statut",
builtInOnly: "Seul le démon de bureau intégré est affiché ici",
running: "en cours d'exécution",
notRunning: "ne fonctionne pas",
pid: "PID{{pid}}",
},
management: {
title: "Gérer le démon intégré",
hint: "LaissezPaseodémarrer et arrêter le démon intégré",
pauseTitle: "Suspendre le démon intégré",
pauseMessage:
"Cela arrêtera immédiatement le démon intégré. Les agents en cours d'exécution et les terminaux connectés au démon intégré seront arrêtés.",
pauseAndStop: "Pause et arrêt",
registrationFailed:
"Built-in daemon started, but Paseo could not save the localhost connection. Toggle daemon management off and on again, or add localhost manually.",
pausedStopFailed:
"La gestion du démon intégré a été suspendue, maisPaseon'a pas pu arrêter le démon.",
updateFailed: "Impossible de mettre à jour la gestion des démons intégrés.",
},
keepRunning: {
title: "Laisser le démon fonctionner après avoir quitté",
hint: "Daemoncontinue de fonctionner lorsque vous quittezPaseo",
},
logs: {
title: "Fichier journal",
modalTitle: "JournauxDaemon",
unavailable: "Chemin du journal indisponible",
empty: "(le fichier journal est vide)",
copied: "Chemin du journal copié.",
copyFailed: "Impossible de copier le chemin du journal.",
open: "Journaux ouverts",
copyPath: "Copier le chemin",
},
fullStatus: {
title: "Statut complet",
modalTitle: "StatutDaemon",
hint: "Exécute`paseo daemon status`et affiche la sortie",
view: "Afficher l'état",
copied: "Statut copié dans le presse-papiers.",
fetchFailed: "Échec de la récupération de l'état du démon:{{message}}",
},
advancedSettings: "Paramètres avancés",
openAdvancedSettings: "Ouvrir les paramètres avancés du démon",
versionMismatch:
"Les versions de l'application et du démon ne correspondent pas. Mettez à jour les deux vers la même version pour une meilleure expérience.",
loadFailed: "Impossible de charger l'état du démon de bureau.",
},
updates: {
status: {
checking: "Vérification des mises à jour de l'application...",
installing: "Installation de la mise à jour de l'application...",
upToDate: "L'application est à jour.",
upToDateWithLastChecked: "Up to date. Last checked at {{time}}.",
pending: "Nous vous informerons lorsque la mise à jour sera prête.",
availableWithVersion: "Mise à jour prête:{{version}}",
available: "Une mise à jour de l'application est prête à être installée.",
installed: "Mise à jour de l'application installée. Redémarrage requis.",
failed: "Échec de la mise à jour de l'application.",
idle: "L'état de la mise à jour n'a pas encore été vérifié.",
},
installError: "Impossible d'installer la mise à jour de l'application de bureau.",
callout: {
installingTitle: "Installation de la mise à jour",
failedTitle: "La mise à jour a échoué",
availableTitle: "Mise à jour disponible",
genericError: "Quelque chose s'est mal passé.",
whatsNew: "Quoi de neuf",
installingAction: "Installation...",
installAndRestart: "Installer et redémarrer",
installingDescription: "Installation et redémarrage...",
versionReady: "{{version}}est prêt à être installé.",
newVersionReady: "Une nouvelle version est prête à être installée.",
restartWarning:
"La mise à niveau de l'application arrêtera l'exécution des agents et fermera les sessions de terminal.",
},
},
settings: {
loadFailed: "Impossible de charger les paramètres du bureau.",
saveFailed: "Impossible d'enregistrer les paramètres du bureau.",
},
rosetta: {
title: "Téléchargez la versionApple Silicon",
runningIntel: "Vous exécutez la versionInteldePaseosousRosettasurApple Silicon.",
highCpu:
"Cela entraîne une utilisation élevée du processeur. Téléchargez la versionApple Siliconpour le réparer.",
download: "Télécharger",
},
permissions: {
notifications: {
allowed: "Les notifications sont autorisées par le système d'exploitation.",
denied: "Les notifications sont refusées dans les paramètres système.",
notGranted: "Les notifications n'ont pas encore été accordées.",
webOnly:
"Létat des notifications sur le bureau est uniquement disponible sur lexécution Web.",
supported: "Les notifications de bureau sont prises en charge.",
unsupported:
"Les notifications de bureau ne sont pas prises en charge sur cette plateforme.",
apiUnavailable: "L'API de notification Web n'est pas disponible dans cet environnement.",
requestsWebOnly:
"Les demandes de notification sur le bureau sont uniquement disponibles sur l'exécution Web.",
requestUnavailable: "L'API de notification Web requestPermission() n'est pas disponible.",
requestFailed: "Échec de la demande d'autorisation de notification:{{message}}",
unexpectedState: "État d'autorisation de notification inattendu:{{state}}",
},
microphone: {
webOnly:
"Létat du microphone de bureau est uniquement disponible dans lenvironnement dexécution Web.",
navigatorUnavailable: "Le navigateur n'est pas disponible dans cet environnement.",
granted: "Laccès au microphone est accordé.",
denied: "L'accès au microphone est refusé dans les paramètres système.",
notGranted: "L'autorisation du microphone n'a pas encore été accordée.",
unexpectedState: "État d'autorisation inattendu du microphone:{{state}}",
statusApiUnavailable:
"LAPI détat du microphone nest pas disponible dans ce runtime. Utilisez Request pour vérifier laccès.",
queryFailed: "Échec de l'interrogation de l'état du microphone:{{message}}",
captureUnavailable: "La capture du microphone n'est pas disponible dans cet environnement.",
permissionApiUnavailable:
"L'API d'état des autorisations n'est pas disponible. Utilisez Request pour vérifier laccès.",
requestsWebOnly:
"Les demandes de microphone de bureau sont uniquement disponibles sur le runtime Web.",
captureApiUnavailable:
"L'API de capture de microphone n'est pas disponible dans cet environnement.",
requestDenied:
"L'autorisation du microphone a été refusée par l'utilisateur ou le système.",
noDevice: "Aucun microphone n'a été trouvé.",
requestFailed: "Échec de la demande d'autorisation du microphone:{{message}}",
},
empty: {
notifications: "L'état de la notification n'a pas encore été vérifié.",
microphone: "L'état du microphone n'a pas encore été vérifié.",
},
testNotification: {
title: "Test de notificationPaseo",
body: "Si vous pouvez voir cela, les notifications sur le bureau fonctionnent.",
notDelivered:
"La notification n'a pas été délivrée. Vérifiez Paramètres système > Notifications.",
failed: "Échec de l'envoi de la notification.",
},
},
integrations: {
cli: {
statusFailed: "Impossible de vérifier l'état de l'installation deCLI.",
installFailed: "Impossible d'installer lePaseoCLI.",
},
skills: {
statusFailed: "Impossible de vérifier l'état des compétences d'orchestration.",
installFailed: "Impossible d'installer les compétences d'orchestration.",
updateFailed: "Impossible de mettre à jour les compétences d'orchestration.",
uninstallFailed: "Impossible de désinstaller les compétences d'orchestration.",
},
},
},
startup: {
errorTitle: "Quelque chose s'est mal passé",
errorDescription:
"Le serveur local n'a pas pu démarrer. Si cela continue, veuillez signaler le problème surGitHubet inclure les journaux ci-dessous.",
logs: {
loading: "Chargement des journaux du démon...",
unavailable: "Aucun journal de démon disponible.",
loadFailed: "Impossible de charger les journaux du démon:{{message}}",
},
},
openProject: {
tiles: {
addProject: {
title: "Ajouter un projet",
description: "Ouvrez un dossier sur votre machine",
},
importSession: {
title: "Session d'importation",
description: "Apportez des sessionsCLIexternes récentes",
},
setupProviders: {
title: "Fournisseurs d'installation",
description: "ConfigurezClaude Code,Codexet plus",
},
pairDevice: {
title: "Associer un appareil",
description: "Connectez votre téléphone à ce démon",
},
},
},
projectPicker: {
placeholder: "Tapez un chemin de répertoire...",
opening: "Projet d'ouverture...",
empty: "Commencez à taper un chemin",
errors: {
directory_not_found: "Répertoire introuvable.",
open_failed: "Impossible douvrir le projet.",
},
openPath: "Ouvrir le chemin",
},
branchSwitcher: {
currentBranch: "Branche actuelle:{{branchName}}. Appuyez pour changer de branche.",
placeholder: "Changer de branche...",
searchPlaceholder: "Filtrer les branches...",
empty: "Aucune branche trouvée.",
title: "Changer de branche",
uncommittedTitle: "Modifications non validées",
uncommittedMessage:
"Vous avez des modifications non validées. Les ranger avant de changer de branche?",
stashAndSwitch: "Cachette et changement",
failedToStash: "Échec de la sauvegarde des modifications",
failedToSwitch: "Échec du changement de branche",
restoreStashTitle: "Restaurer les modifications cachées?",
restoreStashMessage:
"Cette branche a caché les modifications d'une session précédente. Souhaitez-vous les restaurer?",
restore: "Restaurer",
later: "Plus tard",
stashRestored: "Modifications cachées restaurées",
},
agentAutocomplete: {
searchingWorkspace: "Recherche dans l'espace de travail...",
loadingCommands: "Chargement des commandes...",
noFiles: "Aucun fichier ou répertoire trouvé",
noCommands: "Aucune commande trouvée",
failedToLoad: "Échec du chargement",
},
loadOlderHistory: {
failed: "Impossible de charger l'ancien historique",
},
imageAttachmentPicker: {
permissionTitle: "Autorisation requise",
permissionMessage: "Veuillez autoriser l'accès à votre photothèque pour joindre des images.",
errorTitle: "Erreur",
failedToSelect: "Échec de la sélection de l'image",
dialogTitle: "Joindre des images",
dialogFilterName: "Images",
},
workspaceSetup: {
title: "Créer un espace de travail",
errors: {
failedCreateWorktree: "Échec de la création de l'arbre de travail",
failedOpenProject: "Échec de l'ouverture du projet",
selectModel: "Sélectionnez un modèle",
hostDisconnected: "Hostn'est pas connecté",
pendingRequired: "Aucune configuration d'espace de travail n'est en attente",
composerStateRequired: "L'état du compositeur de configurationWorkspaceest requis",
},
},
onboarding: {
title: "Bienvenue surPaseo",
subtitle: "Connectez votre ordinateur pour commencer",
actions: {
settings: "Paramètres",
},
},
modelSelector: {
title: "Sélectionnez le fournisseur",
selectModel: "Sélectionnez le modèle",
selectedModel: "Sélectionnez le modèle ({{model}})",
loading: "Chargement...",
loadingShort: "Chargement",
loadingSelector: "Chargement du sélecteur de modèle...",
error: "Erreur",
defaultModel: "Défaut",
favorites: "Favoris",
favoriteModel: "Modèle préféré",
unfavoriteModel: "Modèle défavorisé",
modelCount: "{{count}} modèle",
modelCountPlural: "{{count}} modèles",
retry: "Réessayer",
retrying: "Nouvelle tentative...",
noMatches: "Aucun modèle ne correspond à votre recherche",
searchPlaceholder: "Rechercher des modèles...",
openProviderSettings: "Ouvrir les paramètres{{provider}}",
},
providerCatalog: {
title: "Ajouter un fournisseur",
search: "Fournisseurs de recherche",
noProviders: "Aucun fournisseur trouvé",
actions: {
add: "Ajouter",
adding: "Ajout",
installed: "Installé",
cancel: "Annuler",
installInstructions: "Instructions d'installation",
installInstructionsFor: "Instructions d'installation{{provider}}",
},
errors: {
unableToInstall: "Impossible d'installer le fournisseur",
},
},
providerSelection: {
defaultModel: "Défaut",
selectModel: "Sélectionnez le modèle",
loading: "Chargement...",
error: "Erreur",
unavailable: "Indisponible",
unknownError: "Erreur inconnue",
readiness: {
initialPromptRequired: "Une invite initiale est requise",
noProviders: "Aucun fournisseur disponible sur l'hébergeur sélectionné",
modelDefaultsLoading: "Les valeurs par défaut du modèle sont toujours en cours de chargement",
noModelAvailable: "Aucun modèle n'est disponible pour le fournisseur sélectionné",
workspaceDirectoryNotFound: "RépertoireWorkspaceintrouvable",
hostDisconnected: "Hostn'est pas connecté",
},
},
pairing: {
connectionMethods: {
title: "Ajouter une connexion",
direct: {
title: "Connexion directe",
description: "Réseau local ou VPN.",
},
scanQr: {
title: "Scanner le codeQR",
description: "Connexion relais cryptée.",
},
pasteLink: {
title: "Coller le lien d'association",
description: "Connexion relais cryptée.",
},
},
direct: {
title: "Connexion directe",
helper: "Saisissez l'adresse d'un serveurPaseo.",
fields: {
host: "Host",
port: "Port",
password: "Mot de passe",
optional: "Facultatif",
useSsl: "Utiliser SSL",
connectionUri: "URI de connexion",
},
advanced: {
label: "Avancé",
show: "Afficher avancé",
hide: "Masquer avancé",
},
passwordVisibility: {
show: "Afficher le mot de passe",
hide: "Masquer le mot de passe",
},
actions: {
cancel: "Annuler",
connect: "Connecter",
connecting: "De liaison...",
},
errors: {
hostRequired: "Hostest requis",
invalidPort: "Le port doit être compris entre 1 et 65535",
invalidConnection: "Connexion invalide",
failedTitle: "La connexion a échoué",
failedToConnect: "Nous n'avons pas réussi à nous connecter à{{endpoint}}.",
noAdditionalDetails: "{{detail}}(aucun détail supplémentaire fourni)",
timedOut: "La connexion a expiré. Vérifiez l'hôte/portet votre réseau.",
refused: "Connexion rejetée. Le serveur fonctionne-t-il à cette adresse?",
hostNotFound: "Hostintrouvable. Vérifiez le nom d'hôte et réessayez.",
hostUnreachable: "Hostest inaccessible. Vérifiez votre réseau et votre pare-feu.",
tlsError:
"Erreur TLS. Les connexions directes utilisent SSL uniquement lorsqu'un terminateur TLS se trouve devant le démon.",
unableToConnect:
"Impossible de se connecter. Vérifiez l'hôte/portet que le démon est accessible.",
details: "Détails:{{detail}}",
},
},
link: {
title: "Coller le lien d'association",
helper: "Collez le lien d'appairage depuis votre serveur.",
label: "Lien d'appariement",
errors: {
required: "Collez un lien d'appairage (.../#offer=...)",
missingOffer: "Le lien doit inclure#offer=...",
emptyOffer: "La charge utile de l'offre est vide",
invalid: "Lien d'association invalide",
unableToPair: "Impossible de coupler l'hôte",
},
alert: {
failedTitle: "Échec du couplage",
},
actions: {
cancel: "Annuler",
pair: "Paire",
pairing: "L'appariement...",
},
},
scan: {
title: "ScannerQR",
webUnavailableTitle: "Non disponible sur le Web",
webUnavailableBody:
"L'analyseQRn'est pas prise en charge dans la version Web. Utilisez plutôt \"Coller le lien\".",
backToSettings: "Retour aux paramètres",
cameraPermissionTitle: "Autorisation de la caméra",
cameraPermissionBody:
"Autorisez l'accès à la caméra pour scanner le code d'appairageQRà partir de votre démon.",
grantPermission: "Accorder l'autorisation",
pairing: "L'appariement...",
unableToPair: "Impossible de coupler l'hôte",
errorTitle: "Erreur",
},
device: {
loadingOffer: "Chargement de l'offre d'association...",
failedToLoadOffer: "Échec du chargement de l'offre d'association.",
relayDisabled: "Le relais n'est pas activé. Activer le relais pour coupler un appareil.",
unavailable: "Offre de jumelage indisponible.",
hint: "Scannez ce codeQRavecPaseosur votre téléphone ou copiez le lien ci-dessous.",
qrUnavailable: "CodeQRindisponible.",
retry: "Réessayer",
copy: "Copie",
copied: "Copié",
},
},
realtimeVoice: {
actions: {
mute: "Couper la voix en temps réel",
unmute: "Réactiver la voix en temps réel",
stop: "Arrêtez la voix en temps réel et interrompez le tour",
},
},
rewind: {
tooltip: "Revenez à ce message",
warning: "Cette action ne peut pas être annulée",
actions: {
conversation: "Rembobiner la conversation",
files: "Rembobiner les fichiers",
both: "Rembobiner la conversation et les fichiers",
},
errors: {
failed: "Échec du rembobinage de l'agent",
},
},
diffViewer: {
empty: "Aucun changement à afficher",
},
serviceUrl: {
title: "Service ouvertURL",
message: "Ouvrir{{url}}?",
inPaseo: "DansPaseo",
externalBrowser: "Navigateur externe",
dontAskAgain: "Ne demande plus",
},
downloads: {
requestTokenFailed: "Échec de la demande du jeton de téléchargement.",
hostUnavailable: "L'hôte de téléchargement n'est pas disponible.",
cancelled: "Le téléchargement a été annulé.",
failed: "Échec du téléchargement du fichier.",
shareFile: "Partager un fichier",
shareFileNamed: "Partager{{fileName}}",
},
menu: {
backdrop: "Toile de fond du menu",
},
subagents: {
detachAction: "Detacher {{label}}",
detachTooltip: "Detacher le sous-agent",
archiveAction: "Archiver{{label}}",
archiveTooltip: "Sous-agent d'archivage",
},
panels: {
draft: {
newAgent: "Nouvel agent",
creatingAgent: "Agent créateur",
},
file: {
directoryMissing: "Répertoire Workspace introuvable.",
loading: "Chargement du fichier...",
noPreview: "Aucun aperçu disponible",
binaryPreviewUnavailable: "Aperçu binaire indisponible",
failedToLoad: "Échec du chargement du fichier",
failedToLoadPreview: "Échec du chargement de l'aperçu du fichier",
},
},
toolCallDetails: {
error: "Erreur",
empty: "Aucun détail supplémentaire disponible",
subAgentActivity: "Activité du sous-agent",
input: "Saisir",
output: "Sortir",
},
renameModal: {
rename: "Rebaptiser",
saving: "Sauvegarde...",
},
sidebarCallout: {
dismiss: "Rejeter",
},
contextWindow: {
title: "Fenêtre contextuelle",
used: "{{percentage}}% utilisé",
tokens: "Jetons{{used}}/{{max}}",
sessionCost: "Coût de la séance{{cost}}",
accessibility: "Fenêtre contextuelle{{percentage}}% utilisé",
},
review: {
comment: {
add: "Ajouter un commentaire",
edit: "Modifier le commentaire de l'avis",
delete: "Supprimer le commentaire de l'avis",
label: "Revoir le commentaire",
placeholder: "Laisser un commentaire",
cancel: "Annuler",
cancelAccessibility: "Annuler le commentaire de révision",
save: "Commentaire",
saveAccessibility: "Enregistrer le commentaire de l'avis",
},
},
settings: {
title: "Paramètres",
loading: "Chargement des paramètres...",
groups: {
app: "Application",
host: "Host",
},
hostPicker: {
switchHost: "Changer d'hôte",
local: "Locale",
},
backToWorkspace: "Dos",
addHost: "Ajouter un hôte",
projects: "Projets",
projectList: {
hostLoadFailed: "Impossible de charger les projets depuis l'hôte{{hostName}}:{{message}}",
editProject: "Modifier{{projectName}}",
},
groupInfo: "À propos de{{title}}",
sections: {
general: "Général",
daemon: "Daemon",
appearance: "Apparence",
shortcuts: "Raccourcis",
integrations: "Intégrations",
permissions: "Autorisations",
diagnostics: "Diagnostic",
about: "À propos",
},
hostSections: {
connections: "Relations",
agents: "Agents",
workspaces: "Workspaces",
providers: "Fournisseurs",
usage: "Utilisation",
terminals: "Terminals",
host: "Host",
},
general: {
title: "Général",
defaultSend: {
label: "Envoi par défaut",
descriptions: {
interrupt:
"Lorsque l'agent est en cours d'exécution, Entrée interrompt. Commande/Ctrl+Entrée met en file d'attente.",
queue:
"Lorsque l'agent est en cours d'exécution, Entrée met en file d'attente. Commande/Ctrl+Entrée envoie.",
},
options: {
interrupt: "Interrompre",
queue: "File d'attente",
},
},
serviceUrls: {
label: "URL de services",
description: "Où ouvrir les URL à partir de scripts en cours d'exécution",
options: {
ask: "Demander",
inApp: "DansPaseo",
external: "Navigateur externe",
},
},
terminalScrollback: {
label: "DéfilementTerminal",
description: "Lignes conservées dans le tampon du terminal intégré",
accessibilityLabel: "Lignes de défilementTerminal",
},
language: {
label: "Langue",
description: "Langue de l'application",
options: {
system: "Système",
ar: "العربية",
en: "English",
es: "Español",
fr: "Français",
ja: "日本語",
ptBR: "Português brasileiro",
ru: "Русский",
zhCN: "中文",
},
},
},
diagnostics: {
title: "Diagnostic",
testAudio: "Tester le son",
playTest: "Jouer à l'essai",
playing: "Jouant...",
playbackFailed: "Échec de la lecture:{{message}}",
app: {
title: "App diagnostic",
rowTitle: "App diagnostic",
rowHint: "Collect connection, daemon, provider, desktop, and log details",
run: "Run",
running: "Running diagnostic...",
copyLabel: "diagnostic",
copyAccessibility: "Copy diagnostic",
copyFailed: "Failed to copy diagnostic",
refreshAccessibility: "Refresh diagnostic",
refreshingAccessibility: "Refreshing diagnostic",
progress: {
client: "Client",
desktop: "Desktop",
},
},
},
about: {
title: "À propos",
appVersion: "Version de l'application",
thisDevice: "Cet appareil",
connectedHosts: "Hôtes connectés",
offline: "Hors ligne",
versionDiffers: "La version diffère de cet appareil",
releaseChannel: {
label: "Canal de sortie",
description:
"Passez àBetapour obtenir des mises à jour plus tôt et contribuer à les façonner",
stable: "Stable",
beta: "Beta",
},
updates: {
label: "Mises à jour de l'application",
readyToInstall: "Prêt à installer:{{version}}",
installTitle: "Installer la mise à jour du bureau",
installMessage: "Cela met à jourPaseosur cet ordinateur",
installConfirm: "Installer la mise à jour",
update: "Mise à jour",
updateTo: "Mise à jour vers{{version}}",
installing: "Installation...",
check: "Vérifier",
checking: "Vérification...",
alertTitle: "Erreur",
alertMessage: "Impossible d'ouvrir la boîte de dialogue de confirmation de mise à jour.",
},
},
appearance: {
theme: {
title: "Thème",
accessibilityLabel: "Thème:{{value}}",
options: {
light: "Lumière",
dark: "Sombre",
zinc: "Zinc",
midnight: "Minuit",
claude: "Claude",
ghostty: "Fantôme",
auto: "Système",
},
},
fonts: {
title: "Polices",
systemDefault: "Valeur par défaut du système",
interfaceFont: "Police d'interface",
interfaceFontHint:
"Utilisé dans toute l'application. Laisser vide pour la valeur par défaut du système",
interfaceFontAccessibility: "Famille de polices d'interface",
interfaceSize: "Taille de l'interface",
interfaceSizeAccessibility: "Taille de la police de l'interface",
codeFont: "Police de code",
codeFontHint:
"Utilisé dans le code, les différences et la sortie du terminal. Laisser vide pour la valeur par défaut du système",
codeFontAccessibility: "Famille de polices de code",
codeSize: "Taille du code",
codeSizeAccessibility: "Taille de la police du code",
},
syntax: {
title: "Syntaxe",
highlightTheme: "Thème de surbrillance",
highlightThemeHint: "Couleurs du code, indépendamment du thème de l'application",
highlightThemeAccessibility: "Thème phare:{{value}}",
previewAccessibility: "Aperçu en direct du thème de syntaxe et de la police de code",
},
},
shortcuts: {
dialogTitle: "Raccourcis",
unavailableOnMobile: "Les raccourcis clavier ne sont disponibles que sur le bureau",
capturePrompt: "Appuyez sur le raccourci...",
actions: {
done: "Fait",
cancel: "Annuler",
rebind: "Relier",
reset: "Réinitialiser",
resetAll: "Tout réinitialiser",
},
sections: {
navigation: "Navigation",
tabsPanes: "Onglets et volets",
projects: "Projets",
panels: "Panneaux",
agentInput: "EntréeAgent",
},
help: {
openProject: "Projet ouvert",
newWorkspace: "Nouvel espace de travail",
newWorktree: "Nouvel arbre de travail",
archiveWorktree: "Arbre de travail d'archivage",
newTab: "Nouvel onglet",
closeCurrentTab: "Fermer l'onglet actuel",
jumpToWorkspace: "Accéder à l'espace de travail",
jumpToTab: "Aller à l'onglet",
previousWorkspace: "Espace de travail précédent",
nextWorkspace: "Espace de travail suivant",
previousTab: "Onglet précédent",
nextTab: "Onglet suivant",
splitPaneRight: "Volet divisé à droite",
splitPaneDown: "Diviser le volet vers le bas",
focusPaneLeft: "Volet de mise au point à gauche",
focusPaneRight: "Volet de mise au point à droite",
focusPaneUp: "Volet de mise au point vers le haut",
focusPaneDown: "Volet de mise au point vers le bas",
moveTabLeft: "Déplacer l'onglet vers la gauche",
moveTabRight: "Déplacer l'onglet vers la droite",
moveTabUp: "Déplacer l'onglet vers le haut",
moveTabDown: "Déplacer l'onglet vers le bas",
closePane: "Fermer le volet",
newTerminal: "Nouvelle borne",
toggleCommandCenter: "Basculer le centre de commande",
showKeyboardShortcuts: "Afficher les raccourcis clavier",
toggleLeftSidebar: "Basculer la barre latérale gauche",
toggleRightSidebar: "Basculer la barre latérale droite",
toggleBothSidebars: "Basculer les deux barres latérales",
toggleSettings: "Basculer les paramètres",
toggleFocusMode: "Basculer le mode de mise au point",
cycleTheme: "Thème du cycle",
focusMessageInput: "Saisie du message de focus",
cycleAgentMode: "Parcourir les modes de l'agent",
toggleVoiceMode: "Changer le mode vocal",
startStopDictation: "Démarrer la dictée/stop",
interruptAgent: "Agent d'interruption",
sendMessage: "Envoyer un message",
queueMessage: "Message de file d'attente",
muteUnmuteVoiceMode: "Mode vocal/unmutemuet",
},
helpNotes: {
showKeyboardShortcuts:
"Disponible lorsque le focus nest pas dans un champ de texte ou un terminal.",
},
},
integrations: {
title: "Intégrations",
docs: {
cli: "DocumentsCLI",
skills: "Documents de compétences",
openCli: "Ouvrir la documentationCLI",
openSkills: "Documentation des compétences ouvertes",
},
commandLine: {
title: "Ligne de commande",
description: "Agents de contrôle et de script depuis votre terminal",
},
skills: {
title: "Compétences en orchestration",
description: "Apprenez à vos agents à orchestrer via leCLI",
updateAvailable: "Mise à jour disponible",
updateTitle: "Mettre à jour les compétencesPaseo?",
updateFallback: "Synchronisez les compétences regroupées sur votre machine.",
uninstallTitle: "Désinstaller les compétencesPaseo?",
uninstallMessage:
"Supprime toutes les compétences d'orchestrationPaseode ~/.agents, ~/.claude, ~/.codex.",
},
actions: {
install: "Installer",
installing: "Installation...",
installed: "Installé",
update: "Mise à jour",
working: "Fonctionnement...",
uninstall: "Désinstaller",
},
operations: {
add: "Ajouter une compétence",
update: "Mettre à jour la compétence",
delete: "Supprimer la compétence",
},
},
permissions: {
title: "Autorisations",
notifications: "Notifications",
microphone: "Microphone",
refresh: "Rafraîchir",
refreshing: "Rafraîchissant...",
refreshAccessibility: "Actualiser les autorisations du bureau",
test: "Test",
actions: {
granted: "Accordé",
request: "Demande",
requesting: "Demander...",
busySuffix: "{{label}}...",
},
},
host: {
notFound: "Hostintrouvable",
badges: {
relay: "Relais",
local: "Locale",
},
connections: {
title: "Relations",
removeTitle: "Supprimer la connexion",
removeMessage: "Supprimer{{name}}? Cela ne peut pas être annulé.",
removeAction: "Retirer",
removeErrorTitle: "Erreur",
removeErrorMessage: "Impossible de supprimer la connexion",
timeout: "Temps mort",
},
pairDevices: {
title: "Associer des appareils",
rowTitle: "Associer un appareil",
rowHint: "Scannez un codeQRou copiez un lien pour connecter votre téléphone à cet hôte",
},
orchestration: {
title: "Orchestration",
unavailable: "Connectez-vous à cet hôte pour gérer l'orchestration",
enableTools: {
title: "Activer les outilsPaseo",
hint: "Les agents pourront gérer les arbres de travail, les agents et les horaires",
accessibilityLabel: "Injecter les outilsPaseo",
},
systemPrompt: {
title: "Invite système",
hint: "Ajoute une invite système à tous les agents",
sheetTitle: "Ajouter une invite système",
accessibilityLabel: "Ajouter une invite système",
placeholder: "Gardez toujours des réponses concises.",
edit: "Modifier",
reset: "Réinitialiser",
save: "Sauvegarder",
saving: "Sauvegarde...",
},
},
agents: {
unavailable: "Connect to this host to manage agents",
},
workspaces: {
unavailable: "Connect to this host to manage workspaces",
},
terminalProfiles: {
unavailable: "Connect to this host to manage terminal profiles",
sectionTitle: "Terminal profiles",
editProfile: "Edit profile",
addProfileTitle: "Add terminal profile",
editProfileTitle: "Edit terminal profile",
namePlaceholder: "Claude Code",
commandPlaceholder: "claude",
argsPlaceholder: "--dangerously-skip-permissions",
nameLabel: "Name",
commandLabel: "Command",
argsLabel: "Arguments",
nameRequired: "Name is required",
commandRequired: "Command is required",
argsHint: "Space-separated arguments passed to the command",
saving: "Saving...",
remove: "Remove",
removeConfirmTitle: "Remove profile?",
removeConfirmMessage: 'Remove "{{name}}"?',
moveUp: "Move up",
moveDown: "Move down",
save: "Save",
emptyState: "No profiles yet. Add one to launch terminals with a specific command.",
},
daemon: {
rename: {
editLabel: "Modifier l'étiquette",
title: "Renommer l'hôte",
placeholder: "MonHost",
submit: "Renommer",
},
restart: {
title: "Redémarrer le démon",
hint: "Redémarre le processus démon. L'application se reconnectera automatiquement",
confirm: "Redémarrer",
confirmTitle: "Redémarrer{{name}}",
confirmMessage:
"Cela redémarrera le démon. Les agents qui s'y exécutent continueront à fonctionner; l'application se reconnectera automatiquement.",
restarting: "Redémarrage...",
unableToReconnectTitle: "Impossible de se reconnecter",
unableToReconnectMessage:
"{{name}}n'est pas revenu en ligne. Veuillez vérifier qu'il a redémarré.",
unavailableTitle: "Hostindisponible",
unavailableMessage:
"Cet hôte n'est pas connecté. Attendez qu'il soit en ligne avant de redémarrer.",
offlineTitle: "Hosthors ligne",
offlineMessage:
"Cet hôte est hors ligne.Paseose reconnecte automatiquement: attendez qu'il soit de nouveau en ligne avant de redémarrer.",
requestFailedTitle: "Erreur",
requestFailedMessage:
"Échec de l'envoi de la demande de redémarrage.Paseose reconnecte automatiquement - réessayez une fois que l'hôte apparaît comme en ligne.",
dialogFailedMessage:
"Impossible d'ouvrir la boîte de dialogue de confirmation de redémarrage.",
},
dangerZone: "Zone dangereuse",
remove: {
title: "Supprimer l'hôte",
localTitle: "Remove localhost connection",
hint: "Supprime cet hôte et ses connexions enregistrées de cet appareil",
localHint: "Removes localhost from this device and stops the built-in daemon",
localConfirmTitle: "Remove localhost connection and stop daemon?",
confirmMessage: "Supprimer{{name}}? Cela supprimera ses connexions enregistrées.",
localConfirmMessage:
"This will remove the localhost connection, turn off built-in daemon management, and stop the managed daemon. Remote hosts remain connected.",
errorTitle: "Erreur",
errorMessage: "Impossible de supprimer l'hôte",
localErrorMessage: "Unable to remove localhost connection",
},
},
},
providers: {
title: "Fournisseurs",
addProvider: "Ajouter un fournisseur",
providerDetails: "Détails du fournisseur{{name}}",
enableProvider: "Activer{{name}}",
unavailable: "Connectez-vous à cet hôte pour voir les fournisseurs",
loading: "Chargement...",
addErrorTitle: "Unable to add provider",
updateErrorTitle: "Impossible de mettre à jour le fournisseur",
statuses: {
disabled: "Désactivé",
loading: "Chargement",
error: "Erreur",
available: "Disponible",
notInstalled: "Non installé",
},
models: {
one: "1 modèle",
many: "{{count}} modèles",
addModel: "Ajouter un modèle",
addCustomTitle: "Ajouter un modèle personnalisé",
modelId: "ModèleID",
modelIdPlaceholder: "par ex. ouvert/gpt-5",
add: "Ajouter",
adding: "Ajout...",
failedToSave: "Échec de l'enregistrement du modèle",
removeModel: "Supprimer{{id}}",
searchPlaceholder: "Rechercher des modèles",
loading: "Chargement des modèles...",
retry: "Réessayer",
retrying: "Nouvelle tentative...",
noSearchMatches: "Aucun modèle ne correspond à votre recherche",
noneDetected: "Aucun modèle détecté",
discovered: "Découvert",
custom: "Modèles personnalisés",
updated: "{{time}}mis à jour",
},
diagnostic: {
title: "Diagnostique",
button: "Diagnostique",
refresh: "Rafraîchir",
refreshing: "Rafraîchissant...",
copyLabel: "diagnostic",
copyAccessibility: "Copier le diagnostic",
copyFailed: "Échec de la copie du diagnostic",
refreshAccessibility: "Actualiser le diagnostic",
refreshingAccessibility: "Diagnostic rafraîchissant",
running: "Exécution du diagnostic...",
none: "Aucun diagnostic disponible",
failedToFetch: "Échec de la récupération du diagnostic",
unknownError: "Erreur inconnue",
},
},
project: {
noEditableTarget:
"Nous n'avons pas de copie modifiable de ce projet sur aucun hôte connecté.",
backToProjects: "Retour aux projets",
switchHost: "Changer d'hôte",
rename: {
renamedToast: "Projet renommé",
errorFallback: "Impossible de renommer le projet",
renameLabel: "Renommer le projet",
resetLabel: "Réinitialiser le nom du projet par défaut",
projectNameLabel: "Nom du projet",
saveLabel: "Enregistrer le nom du projet",
cancelLabel: "Annuler le changement de nom",
reset: "Réinitialiser",
},
readFailures: {
invalidTitle: "paseo.json n'a pas pu être analysé",
invalidDescription: "Corrigez le fichier sur le disque, puis rechargez.",
missingTitle: "Cet hôte n'a pas ce projet",
missingWithHosts: "Basculez vers un autre hôte ci-dessus ou rechargez.",
missingSingleHost: "L'hôte sélectionné n'a aucune trace de ce projet.",
transportTitle: "Impossible de charger paseo.json",
transportFallback: "L'hôte n'a pas répondu.",
failedTitle: "Impossible de charger paseo.json",
failedDescription: "Rechargez pour réessayer.",
},
worktree: {
title: "Crochets de cycle de vie Worktree",
info: "Commandes exécutées lorsqu'un arbre de travail est créé ou supprimé pour ce projet",
docs: "Documents",
docsTooltip:
"Voir la documentation pour plus de détails et les variables d'environnement disponibles pour ces commandes",
setup: "Installation",
setupAccessibility: "Commandes de configuration de Worktree",
teardown: "Démolir",
teardownAccessibility: "Commandes de démontage de Worktree",
},
scripts: {
title: "Scripts",
info: "Services de longue durée et commandes ponctuelles que vous pouvez lancer à partir de n'importe quel agent de ce projet",
empty: "Pas encore de scripts.",
untitled: "Script sans titre",
port: "port{{port}}",
menuAccessibility: "Ouvrir le menu des scripts",
removeTitle: "Supprimer le script?",
removeMessage: "Supprimer{{name}}?",
removeFallbackName: "ce scénario",
name: "Nom",
command: "Commande",
nameAccessibility: "Nom du script",
commandAccessibility: "Commande de script",
nameRequired: "Le nom est requis",
commandRequired: "La commande est requise",
newScript: "Nouveau scénario",
editScript: "Modifier{{name}}",
runAsService: "Exécuter en tant que service",
serviceHint: "Paseosupervise le processus et attribue un port via $PASEO_PORT",
actions: {
add: "Ajouter un script",
edit: "Modifier",
remove: "Retirer",
},
},
metadata: {
title: "Génération de métadonnées",
info: "Instructions spécifiques au projet injectées dans les invites de l'IA quePaseoutilise pour générer des métadonnées: utilisez-les pour appliquer les conventions de votre équipe telles que la dénomination des branches, le style de validation ou le formatPR.",
branchName: "Noms des succursales",
branchNamePlaceholder:
"Préfixez les branches avec feat/ ou fix/, mb/ pour les branches personnelles",
commitMessage: "Valider les messages",
commitMessagePlaceholder: "Utiliser des commits conventionnels avec une portée",
pullRequest: "Demandes de tirage",
pullRequestPlaceholder:
"Commencez avec un résumé d'un paragraphe, incluez une section sur le plan de test",
},
writeFailures: {
staleTitle: "Configuration modifiée sur le disque",
staleDescription: "Rechargez pour récupérer le dernier paseo.json avant de sauvegarder.",
failedTitle: "Impossible d'enregistrer paseo.json",
failedDescription: "Réessayez ou rechargez la dernière version à partir du disque.",
},
actions: {
reload: "Recharger",
tryAgain: "Essayer à nouveau",
save: "Sauvegarder",
saved: "Projet enregistré",
saving: "Sauvegarde...",
cancel: "Annuler",
},
},
},
};