-
Notifications
You must be signed in to change notification settings - Fork 292
Expand file tree
/
Copy pathlocales-fr.ts
More file actions
354 lines (353 loc) · 27.2 KB
/
Copy pathlocales-fr.ts
File metadata and controls
354 lines (353 loc) · 27.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
/**
* French translation of the better-sidebar copy.
*
* Mirrors the key set of the zh dictionary in `locales.ts` (enforced by
* the `Record<keyof typeof zh, string>` type annotation). The better-locale
* override store registers this dict under the `betterSidebar` namespace,
* so it takes effect when the user has selected the `fr` override.
*/
/** fr dictionary for the `betterSidebar` namespace. */
export const fr: Record<string, string> = {
files: 'Fichiers',
explorer: 'Explorateur',
git: 'Gestion de code source',
terminal: 'Terminal',
editor: 'Éditeur',
editorExplorer: 'Comportement d’ouverture des fichiers',
editorExplorerDesc: 'Contrôle la façon dont les fichiers s’ouvrent',
editorExplorerMerged: 'Fusionné',
editorExplorerMergedDesc: 'Les fichiers se remplacent dans la même fenêtre ; les nouvelles fenêtres ouvrent l’arborescence par défaut',
editorExplorerSplit: 'Séparé',
editorExplorerSplitDesc: 'Les fenêtres sans chemin sont l’explorateur autonome (arborescence uniquement) ; chaque fichier ouvre sa propre fenêtre (avec arborescence, réduite par défaut)',
editorTreeToggle: 'Panneau d’arborescence',
editorPathPlaceholder: 'Saisissez un chemin de fichier (relatif au répertoire de session ou absolu), Entrée pour ouvrir',
editorSearchPlaceholder: 'Rechercher par nom de fichier…',
editorSearchNoResults: 'Aucun fichier correspondant',
editorSearchTruncated: 'Trop de résultats, seule une partie des correspondances est affichée',
editorEmptyHint: 'Choisissez un fichier dans l’arborescence à droite ou dans le champ de chemin ci-dessus pour commencer l’aperçu',
openFileNewTab: 'Ouvrir dans un nouvel onglet',
openFileSide: 'Ouvrir de côté',
openWithMenu: 'Ouvrir avec',
openWithSshSuffix: ' (SSH)',
pinOpenWith: 'Épingler au menu',
unpinOpenWith: 'Désépingler',
openWithExplorer: 'Explorateur de fichiers',
openWithVscode: 'VS Code',
openWithCursor: 'Cursor',
openWithZed: 'Zed',
openWithSettingsSshTitle: 'Hôte distant SSH',
openWithSettingsSshDesc: 'Vide = espace de travail local ; avec un user@host ou un alias SSH, les ouvreurs de la famille VSCode passent aux protocoles vscode-remote/ssh-remote, et l’explorateur de fichiers / Zed / les éditeurs personnalisés hors famille VSCode sont masqués du menu',
openWithSettingsSshPlaceholder: 'user@host ou alias SSH',
openWithSettingsCustomTitle: 'Éditeurs personnalisés',
openWithSettingsCustomDesc: 'Nom + modèle d’URL (placeholder {path}) + famille VSCode ou non ; en mode SSH, seuls les éditeurs de la famille VSCode peuvent ouvrir un distant',
openWithSettingsAdd: 'Ajouter',
openWithSettingsName: 'Nom',
openWithSettingsTemplate: 'ex. cursor://file/{path}',
openWithSettingsFamily: 'Famille VSCode',
openWithSettingsFamilyDesc: 'Cet éditeur utilise le protocole d’URL de VSCode (prend en charge l’ouverture à distance via SSH)',
openWithSettingsRemove: 'Supprimer',
openWithSettingsInvalidHint: 'Les éditeurs sans nom ou sans modèle (contenant {path} et commençant par scheme://) n’apparaissent pas dans le menu',
newTab: 'Nouvel onglet',
openExplorer: 'Explorateur',
brokenSymlink: 'Lien symbolique cassé',
openGit: 'Panneau Git',
newTerminal: 'Nouveau terminal',
terminalLimit: 'Nombre maximal de terminaux atteint (3)',
close: 'Fermer',
closeOtherTabs: 'Fermer les autres onglets',
closeLeftTabs: 'Fermer les onglets à gauche',
closeRightTabs: 'Fermer les onglets à droite',
moveToFreeWindow: 'Déplacer vers la fenêtre flottante',
floatDropHint: 'Relâchez pour ouvrir dans une fenêtre flottante',
dockToSidebar: 'Revenir à la barre latérale',
collapse: 'Réduire la barre latérale',
expand: 'Déployer la barre latérale',
collapseBottomPanel: 'Réduire le panneau inférieur',
expandBottomPanel: 'Déployer le panneau inférieur',
terminalError: 'Échec de la connexion au terminal',
terminalConnectFailed: 'Le terminal a échoué à se connecter à plusieurs reprises',
terminalRetry: 'Réessayer',
terminalDepsFailed: 'Échec du chargement de la dépendance terminal node-pty',
terminalDepsHint: 'Exécutez la commande suivante dans un terminal ou cmd de l’environnement DSH pour réparer, puis cliquez sur Réessayer (node-pty reste à la même version que le cœur DSH) :',
terminalDepsProfile: ' (profil détecté : {profile})',
preview: 'Aperçu',
toc: 'Sommaire',
edit: 'Modifier',
mermaidError: 'Échec du rendu Mermaid',
mermaidZoomIn: 'Agrandir',
mermaidZoomOut: 'Réduire',
mermaidZoomReset: 'Réinitialiser',
mermaidZoomHint: 'Molette pour zoomer · glisser pour déplacer · Échap pour fermer',
refresh: 'Actualiser',
showInFolder: 'Afficher dans le dossier',
refreshUnsavedConfirm: 'Le fichier a changé sur le disque. Actualiser supprimera les modifications non enregistrées. Continuer ?',
save: 'Enregistrer',
saved: 'Enregistré',
unsaved: 'Non enregistré',
saveFailed: 'Échec de l’enregistrement',
truncation: 'Fichier trop volumineux, seuls les 512 premiers Ko sont affichés',
binary: 'Fichier binaire, aperçu impossible',
loading: 'Chargement…',
error: 'Échec du chargement',
retry: 'Réessayer',
splitLeft: 'Diviser à gauche',
splitRight: 'Diviser à droite',
splitUp: 'Diviser en haut',
splitDown: 'Diviser en bas',
notRepo: 'Ce répertoire n’est pas un dépôt git',
noChanges: 'Aucune modification',
statusTruncated: 'Trop de modifications ; seules les 2000 premières entrées sont affichées',
stage: 'Mettre en scène',
unstage: 'Annuler la mise en scène',
stageAll: 'Tout mettre en scène',
unstageAll: 'Tout retirer de la scène',
commitPlaceholder: 'Message de commit (Ctrl+Entrée)',
commit: 'Valider',
commitError: 'Échec du commit',
branch: 'Branche',
worktree: 'Arborescence de travail',
checkoutError: 'Échec du changement de branche',
history: 'Historique',
changes: 'Modifications',
staged: 'En scène',
unstaged: 'Hors scène',
cancel: 'Annuler',
diffEmpty: 'Aucune différence textuelle',
diffLoadError: 'Échec du chargement de la différence',
diffBinary: 'Binaire',
diffAdded: 'Ajouté',
diffDeleted: 'Supprimé',
diffRenamed: 'Renommé',
diffExpand: 'Déployer les {count} lignes restantes',
diffCollapse: 'Réduire',
discard: 'Abandonner les modifications',
discardTitle: 'Abandonner les modifications',
discardDesc: 'Les modifications de l’espace de travail de « {path} » seront abandonnées (irréversible).',
viewCommitDiff: 'Voir la différence du commit',
copyShortHash: 'Copier le hash court',
copyFullHash: 'Copier le hash complet',
copySubject: 'Copier le message du commit',
revertCommit: 'Annuler ce commit',
revertTitle: 'Annuler ce commit',
revertDesc: 'Un nouveau commit inversant « {subject} » sera créé sur la branche actuelle.',
cherryPickCommit: 'Cherry-pick de ce commit',
cherryPickTitle: 'Cherry-pick de ce commit',
cherryPickDesc: 'Les modifications de « {subject} » seront appliquées à la branche actuelle.',
timeJustNow: 'à l’instant',
timeMinutesAgo: 'il y a {n} min',
timeHoursAgo: 'il y a {n} h',
timeYesterday: 'hier',
loadMore: 'Charger plus',
historyLoadError: 'Échec du chargement de davantage d’historique',
produced: 'Produits de cette exécution',
producedOpen: 'Ouvrir dans la barre latérale',
disconnected: 'Connexion du terminal perdue, reconnexion…',
exited: 'Le processus du terminal s’est terminé',
noSession: 'Sélectionnez une session pour utiliser la barre latérale',
pluginNotLoaded: 'Plugin non chargé, onglet indisponible pour le moment :',
hiddenFiles: 'Fichiers cachés',
parent: 'Répertoire parent',
copied: 'Copié',
copy: 'Copier',
newFile: 'Nouveau fichier',
openEditor: 'Ouvrir l’éditeur',
gitDetail: 'Voir le détail des modifications',
referenceFile: '@fichier',
addToConversation: 'Ajouter à la discussion',
copyRelative: 'Copier le chemin relatif',
copyAbsolute: 'Copier le chemin absolu',
download: 'Télécharger',
uploadFiles: 'Importer des fichiers',
uploadFolder: 'Importer un dossier',
uploadHere: 'Importer ici',
uploadDropHint: 'Glissez des fichiers/dossiers ici pour les importer',
uploadDropChat: 'Glissez dans la zone de discussion : ajouter des images à la discussion',
uploadTo: 'Importer dans {dir}',
uploadingTo: 'Import en cours vers {dir}…',
uploadProgress: 'Import de {done}/{total} : {name}',
uploadDone: '{count} fichier(s) importé(s)',
uploadFailed: 'Échec de l’import : {error}',
uploadFailedUnknown: 'Erreur inconnue',
uploadTooLarge: 'Fichier trop volumineux, limite d’import dépassée',
uploadCancelled: 'Import annulé',
settingsNav: 'Carte latérale',
settingsIntro: 'Gérer le contenu affiché par la carte latérale et son comportement par défaut',
settingsPopupDesc: 'Configurer les options liées à « {feature} »',
settingsDone: 'Terminé',
settingsOpenTitle: 'Ouvert par défaut pour les nouvelles sessions',
settingsOpenDesc: 'Déployer automatiquement la carte latérale lors de la création d’une session ; les sessions existantes conservent chacune leur disposition',
settingsWidthTitle: 'Part de largeur par défaut',
settingsWidthDesc: 'Pourcentage de la largeur de la fenêtre occupé par la carte latérale pour les nouvelles sessions (20–60)',
settingsWidthSuffix: '%',
settingsOpenPathTitle: 'Ouvrir les fichiers de discussion dans la barre latérale',
settingsOpenPathDesc: 'À la place de l’application par défaut du système, ouvrir dans l’éditeur de la barre latérale les liens vers les fichiers du chat (lignes d’outils, listes de produits, mentions de fichiers)',
settingsOpenToolsTitle: 'Injecter l\'outil d\'ouverture latérale pour le modèle',
settingsOpenToolsDesc: 'Une fois activé, le modèle peut ouvrir des fichiers, dossiers et pages HTTP(S) dans la barre latérale via l\'outil sidebar_open (désactivé par défaut)',
settingsTitleBarTitle: 'Mode de compatibilité de position',
settingsTitleBarDesc: 'Choisissez le schéma de compatibilité de la barre de titre : détection automatique (par défaut, conservateur) / Web officiel DSH / coquilles de bureau connues / schéma personnalisé (distance de décalage + CSS personnalisé)',
settingsTitleBarStripTitle: 'Distance de décalage',
settingsTitleBarStripDesc: 'Hauteur de la bande de la barre de titre : nombre de pixels dont les boutons et le contenu de la barre latérale descendent (0–120, défaut 40 ; s’applique en schéma personnalisé)',
settingsSchemeAutoTitle: 'Détection automatique',
settingsSchemeAutoDesc: 'Schéma conservateur : ne cède de la place selon la hauteur réelle de la barre de titre que lorsque l’API standard Window Controls Overlay est disponible ; aucune modification dans un environnement web',
settingsSchemeWebTitle: 'Web officiel DSH',
settingsSchemeWebDesc: 'Déclare explicitement l’exécution dans la version web officielle : aucune adaptation (même la géométrie standard WCO n’est pas appliquée)',
settingsSchemeCustomTitle: 'Schéma personnalisé',
settingsSchemeCustomDesc: 'Entièrement à votre contrôle : injecter du CSS personnalisé (pouvant remplacer les styles intégrés) et définir la distance de décalage de la barre de titre',
settingsSchemeDetectedSuffix: 'détecté',
settingsCustomCssTitle: 'CSS personnalisé',
settingsCustomCssDesc: 'Styles ajoutés à la fin de la page (à priorité égale, le dernier écrit gagne ; utilisez !important pour remplacer les variables en ligne écrites par JS)',
settingsCustomCssPlaceholder: '/* ex. : réserver 36px pour une coquille à barre de titre dessinée */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
settingsSaveFailed: 'Échec de l’enregistrement',
settingsConflict: 'Les réglages ont été modifiés par une autre fenêtre, veuillez réessayer',
binaryNoPreview: 'Ce type de fichier ne prend pas en charge l’aperçu',
downloadToView: 'Télécharger pour consulter',
settingsSubagentTitle: 'Déployer automatiquement la page de gestion des tâches à la détection d’un sous-agent',
settingsSubagentDesc: 'Lorsque la session actuelle produit un nouveau sous-agent, déployer automatiquement la barre latérale et ouvrir la page de gestion des tâches ; une fois désactivé, l’ouverture est manuelle',
settingsJobsTitle: 'Déployer automatiquement la page des tâches d’arrière-plan sur nouvelle tâche',
settingsJobsDesc: 'Lorsque la session actuelle produit une nouvelle tâche d’arrière-plan, déployer automatiquement la barre latérale et ouvrir la page des tâches (déclenché à chaque nouvelle tâche) ; une fois désactivé, l’ouverture est manuelle',
settingsToolsTitle: 'Injecter des outils de terminal au modèle',
settingsToolsDesc: 'Une fois activé, le modèle peut créer et piloter des terminaux de la barre latérale via les 8 outils terminal_* (désactivé par défaut)',
settingsBottomTerminalTitle: 'Ouvrir automatiquement un terminal au premier déploiement du panneau inférieur',
settingsBottomTerminalDesc: 'Lors du premier déploiement du panneau inférieur dans une session, tenter d’y ouvrir automatiquement un nouvel onglet de terminal (la limite du nombre de terminaux s’applique toujours ; activé par défaut)',
settingsFontFamilyTitle: 'Police du terminal',
settingsFontFamilyDesc: 'Famille de polices personnalisée du terminal (CSS font-family, ex. "JetBrains Mono", monospace ; vide = suit la police monospace du thème)',
settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
settingsFontSizeTitle: 'Taille de police du terminal',
settingsFontSizeDesc: 'Taille de police du terminal (9–32, défaut 13)',
settingsFontSizeSuffix: 'px',
settingsShellTitle: 'Chemin du shell',
settingsShellDesc: 'Shell lancé pour les terminaux de l’interface et du modèle (chemin absolu ou nom d’exécutable). Vide = résolution dans l’ordre existant : config.shell du yaml → $SHELL / shell de connexion / powershell.exe sur Windows. S’applique aux terminaux ouverts ensuite',
settingsShellPlaceholder: 'ex. /bin/zsh (vide = résolution automatique)',
settingsShellArgsTitle: 'Arguments du shell',
settingsShellArgsDesc: 'Arguments explicites de lancement du shell, séparés par des espaces ; non vide = remplacement complet des arguments par défaut (contrat identique aux shellArgs du yaml)',
settingsShellArgsPlaceholder: 'ex. -l (vide = arguments par défaut)',
settingsTabsTitle: 'Contenu de la barre latérale',
settingsViewersTitle: 'Aperçus de fichiers',
settingsGeneralTitle: 'Général',
settingsPopup: 'Réglages de la fonctionnalité',
settingsViewerCatchAll: 'Par défaut : n’importe quel fichier',
viewerImage: 'Image',
viewerPdf: 'PDF',
viewerMarkdown: 'Markdown',
viewerCode: 'Code',
viewerBinary: 'Téléchargement binaire',
viewerHtml: 'HTML',
browser: 'Navigateur',
browserPlaceholder: 'Saisissez une adresse, ex. example.com',
browserGo: 'Aller',
browserBack: 'Précédent',
browserForward: 'Suivant',
browserStart: 'Saisissez une adresse pour commencer à naviguer (mode bac à sable)',
browserBlockedScheme: 'Bloqué : seuls les liens http/https sont pris en charge',
browserBlockedLoopback: 'Bloqué : l’accès aux adresses locales ou internes n’est pas autorisé dans le navigateur',
browserInvalid: 'Adresse invalide',
browserNoSandboxWarning: 'Bac à sable désactivé : la page actuelle partage l’origine de l’interface et dispose de l’ensemble des droits de session (restauration possible dans les réglages)',
htmlNoSandboxWarning: 'Bac à sable désactivé : ce HTML partage l’origine de l’interface, peut lire les fichiers de session et les interfaces internes (restauration possible dans les réglages)',
sandboxStatusOn: 'Mode bac à sable : activé · la page ne peut pas accéder aux données de l’interface ni aux fichiers locaux ; l’état de connexion et les cookies tiers peuvent être indisponibles',
sandboxUnlock: 'Déverrouiller temporairement (non sécurisé)',
sandboxRestore: 'Restaurer le bac à sable',
settingsHtmlDefaultUnsafeTitle: 'Ouvrir l’aperçu HTML en mode non bac à sable par défaut (non sécurisé)',
settingsHtmlDefaultUnsafeDesc: 'Une fois activé, chaque ouverture d’un fichier HTML démarre l’aperçu en état non bac à sable (même origine que l’interface, pouvant lire les fichiers de session et les interfaces internes) ; la barre d’état permet de restaurer temporairement le bac à sable',
settingsHtmlSandboxTitle: 'Désactiver le bac à sable de l’aperçu HTML (non sécurisé)',
settingsHtmlSandboxDesc: 'Une fois désactivé, le HTML de l’aperçu s’exécute avec la même origine que l’interface, peut lire les fichiers de session, le stockage local et appeler les interfaces internes. À activer uniquement pour des fichiers entièrement fiables',
settingsBrowserSandboxTitle: 'Désactiver le bac à sable du navigateur (non sécurisé)',
settingsBrowserSandboxDesc: 'Une fois désactivé, tout site visité s’exécute avec la même origine que l’interface, peut lire les données de session et usurper votre état de connexion. À activer uniquement pour des sites entièrement fiables',
settingsBrowserLinksTitle: 'Ouvrir les liens externes du chat dans la barre latérale',
settingsBrowserLinksDesc: 'Une fois activé, cliquer sur un lien externe dans le chat ou l’interface l’ouvre dans la barre latérale au lieu d’une nouvelle fenêtre ; HTTP et HTTPS sont contrôlés séparément par les interrupteurs ci-dessous ; Ctrl/Cmd+clic autorise temporairement',
settingsBrowserHttpTitle: 'Ouvrir les pages HTTP de côté',
settingsBrowserHttpDesc: 'Une fois activé, cliquer sur un lien externe HTTP du chat ou de l’interface l’ouvre dans la barre latérale (les pages de plugin déclarant urlTarget sont prioritaires) ; Ctrl/Cmd+clic autorise temporairement',
settingsBrowserHttpsTitle: 'Ouvrir les pages HTTPS de côté',
settingsBrowserHttpsDesc: 'Une fois activé, cliquer sur un lien externe HTTPS du chat ou de l’interface l’ouvre dans la barre latérale. Désactivé par défaut : la plupart des sites HTTPS refusent l’encapsulation, le navigateur système est plus fluide',
settingsBrowserLoopbackTitle: 'Adresses locales autorisées',
settingsBrowserLoopbackDesc: 'Liste blanche séparée par des virgules des adresses de bouclage (ex. localhost:5174 ou 127.0.0.1:8080) que le navigateur de la barre latérale peut visiter ; vide bloque toutes les adresses locales par défaut. Le bac à sable reste actif — les pages ne peuvent pas lire les données de l interface',
settingsBrowserLoopbackPlaceholder: 'ex. localhost:5174, 127.0.0.1:8080',
browserOpenExternal: 'Ouvrir dans le navigateur',
browserEmbedBlocked: '{host} a refusé la demande d’encapsulation',
browserEmbedBlockedDesc: 'Ce site interdit son affichage dans d’autres pages (X-Frame-Options / frame-ancestors) et ne peut donc pas être chargé dans la barre latérale. Vous pouvez l’ouvrir directement dans le navigateur',
browserEmbedAnyway: 'Charger quand même',
subagent: 'Gestion des tâches',
openSubagent: 'Gestion des tâches',
subagentMainAgent: 'Agent principal',
subagentActiveOnly: "Actifs uniquement",
subagentActiveOnlyTitle: "Replier les sous-agents inactifs ; garder les actifs et leurs ancêtres",
subagentEmpty: 'Aucun sous-agent pour l’instant',
subagentEmptyDesc: 'Les sous-agents dérivés de l’agent principal actuel s’afficheront ici',
subagentRunning: 'En cours',
subagentInactive: 'Inactif',
subagentModeOneShot: 'À usage unique',
subagentModeContinuable: 'Reprenable',
subagentCount: '{count} sous-agent(s)',
subagentCountRunning: '{count} sous-agent(s) · {running} en cours',
subagentDiagCorrupt: 'Répertoire corrompu',
subagentDiagUnsupported: 'Entrée non prise en charge',
subagentDiagUnavailable: 'Indisponible',
subagentThinking: 'Réflexion…',
sideChat: 'Discussion latérale (bêta)',
sideChatNew: 'Nouvelle discussion',
sideChatUntitled: 'Nouvelle discussion',
sideChatEmpty: 'Aucune discussion latérale pour l’instant',
sideChatEmptyDesc: 'Chaque discussion latérale est un onglet indépendant de la barre d’onglets, qui hérite du contexte de la session actuelle et n’entre jamais dans la session principale',
sideChatCreating: 'Création de la discussion latérale…',
sideChatRetry: 'Réessayer',
sideChatThreads: 'Changer de fil / nouveau',
sideChatSave: 'Enregistrer comme nouvelle session',
sideChatSaveTitle: 'Promouvoir ce fil en session de premier niveau, visible dans la liste des sessions principales',
sideChatSaved: 'Enregistré comme nouvelle session',
sideChatNoTurn: 'Au moins un tour de discussion doit être terminé avant l’enregistrement',
sideChatPendingDrop: 'La dernière relance inachevée ne sera pas incluse dans la nouvelle session',
sideChatFirstPlaceholder: 'Saisissez la première question, le contexte de la session actuelle est hérité…',
sideChatComposerPlaceholder: 'Relance…',
sideChatThinking: 'Approfondissement…',
sideChatThink: 'Processus de réflexion',
sideChatInjection: 'Contexte injecté',
sideChatSend: 'Envoyer',
sideChatCancel: 'Arrêter',
sideChatCancelTitle: 'Interrompre le tour en cours (la file d’attente est conservée)',
sideChatClose: 'Fermer le fil',
sideChatCloseTitle: 'Libérer l’agent du fil (l’historique est conservé)',
sideChatError: 'Erreur de la discussion latérale : {message}',
jobs: 'Tâches d’arrière-plan',
jobsCount: '{count} tâche(s) d’arrière-plan',
jobsCountRunning: '{count} tâche(s) d’arrière-plan · {running} en cours',
jobStatusRunning: 'En cours',
jobStatusStopping: 'Arrêt en cours',
jobStatusCompleted: 'Terminée',
jobStatusKilled: 'Interrompue',
jobStatusFailed: 'Échouée',
jobDurationSeconds: '{seconds} s',
jobDurationMinutes: '{minutes} min {seconds} s',
jobDurationHours: '{hours} h {minutes} min',
jobViewOutput: 'Voir la sortie',
jobHideOutput: 'Réduire la sortie',
jobNoOutput: 'Aucune sortie pour l’instant',
jobNotReadYet: 'En attente que le modèle lise la sortie de cette tâche (la sortie s’affichera ici une fois que le modèle aura exécuté job_output)',
jobOutputTruncated: 'Sortie trop longue, affichage tronqué',
jobOutputError: 'Échec de la lecture de la sortie',
jobKill: 'Interrompre',
jobKillConfirm: 'Cliquez à nouveau pour confirmer l’interruption',
jobKillError: 'Échec de l’interruption',
addPluginsTabCard: 'Ajouter un plugin d’onglet',
addPluginsTabCardDesc: 'Enregistrer une nouvelle page de la barre latérale',
addPluginsViewerCard: 'Ajouter un plugin d’aperçu',
addPluginsViewerCardDesc: 'Enregistrer un aperçu d’un type de fichier',
addPluginsTabDesc: 'Les pages de la barre latérale (onglets) peuvent être étendues par des plugins. Les plugins s’enregistrent via le service ctx.betterSidebar ; cliquez sur « Installer » pour copier la commande d’installation, collez-la dans un terminal de l’environnement DSH et exécutez-la.',
addPluginsViewerDesc: 'Les aperçus de fichiers peuvent être étendus par des plugins. Les plugins s’enregistrent via le service ctx.betterSidebar ; cliquez sur « Installer » pour copier la commande d’installation, collez-la dans un terminal de l’environnement DSH et exécutez-la.',
addPluginsBrowseMore: 'Parcourir plus de plugins sur GitHub (topic : dsh-better-sidebar)',
addPluginsSearch: 'Rechercher par nom / description de plugin…',
addPluginsNoMatch: 'Aucun plugin correspondant',
addPluginsRecommended: 'Plugins recommandés',
addPluginsEmpty: 'Aucun plugin référencé pour l’instant, publiez le vôtre sous le topic GitHub',
openPlugin: 'Aller',
copyInstall: 'Copier la commande d’installation',
pluginOfficeDesc: 'Aperçu de la suite Office (.docx / .xlsx / .pptx) pour l’éditeur better-sidebar, avec les lourdes bibliothèques de rendu Office extraites du package principal et installées à la demande',
pluginFlowglassDesc: 'Schéma de flux de session en temps réel : trois couloirs pour l’utilisateur, l’assistant et les appels d’outils, avec regroupement en parallèle, branches de sous-agents, exploration par niveau et états en temps réel ; enregistre l’onglet natif « Flowglass » une fois better-sidebar installé, sinon conserve un tiroir indépendant',
pluginGitForgeDesc: 'Onglet « Identifiants Git » de better-sidebar : bibliothèque de comptes GitHub/Gitea (et autres forges) + autorisations par projet + blocage strict des stratégies push ; les tokens restent dans les secrets locaux, jamais dans le contexte du modèle ; fournit un outil GitForge en lecture seule et un helper HTTPS de credentials pour l’agent',
pluginGitRemotesDesc: 'Onglet Git Remotes de better-sidebar : branches/amonts/ahead-behind, fetch (avec prune possible), pull en ff-only, push seulement après confirmation. Ne remplace pas la mise en scène/les commits du Git intégré et ne fournit pas de force-push ni de push automatique par le modèle',
pluginSentinelDesc: 'Système de réveil d’agent piloté par conditions : capteurs fichier/processus/port/HTTP/commande/webhook, les sessions en veille se réveillent automatiquement lorsque les conditions sont remplies ; enregistre l’onglet « Sentinel » affichant le tableau de surveillance global du serveur',
pluginSidebarQaDesc: 'Onglet de questions sur sélection basé sur better-sidebar : sélection dans la discussion → question dans le panneau de droite → session de relance indépendante du même espace de travail (❓ relance · thème) : un modèle rapide sans réflexion compresse le contexte de la discussion principale puis l’injecte avec la citation, sans interrompre la discussion principale ; les relances peuvent être imbriquées, poursuivies et archivées',
pluginSshTunnelDesc: 'Onglet « Tunnel SSH » de better-sidebar : inventaire multi-machines + autorisations par projet + clés conservées localement ; outil de modèle SSHManager (exec/SFTP/stratégies de session) ; terminal interactif central et SFTP à deux volets',
pluginTurnReviewDesc: 'Passerelle humaine sur le diff de « ce dernier tour » : Approve / Request changes, sans forker la session ; fichiers regroupés par session principale / sous-agent / non attribués, cochez les fichiers pour renvoyer + commentaire facultatif ; cliquez un fichier pour voir le diff entre l’instantané de début de tour et maintenant. Ce n’est pas /rewind',
pluginVideoPreviewDesc: 'Aperçu vidéo en ligne dans l’éditeur better-sidebar (.mp4/.webm/.mov/.mkv/.avi, etc.), avec une route hôte /video prenant en charge HTTP Range (206) ; barre de progression déplaçable, non limité par la mediaLimit de 20 Mo',
pluginDocsPanelDesc: '« Documentation globale » dans la barre latérale DSH : notes Markdown globales, lisibles depuis n’importe quel espace de travail — sélection dans la liste, saut via le plan flottant, ouverture externe Chrome / VS Code, copie de code, répertoire configurable (défaut ~/.dsh/docs)',
pluginEgoBrowserDesc: 'Le navigateur d’agent pour DeepSeek Harness : 32 outils ego_* pilotent un vrai Chromium ; un onglet natif « ego browser » dans la barre latérale montre en direct chaque page visitée par l’agent — cliquez, glissez et tapez pour reprendre la main. Enregistre l’onglet automatiquement si better-sidebar est présent, sinon une bulle flottante',
}