-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Expand file tree
/
Copy pathfr.ts
More file actions
4034 lines (4026 loc) · 290 KB
/
Copy pathfr.ts
File metadata and controls
4034 lines (4026 loc) · 290 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
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import type { Dict } from '../types';
export const fr: Dict = {
'chat.amrCard.switchTitle': 'Échec de l\'appel du modèle — cette exécution est en pause',
'chat.amrCard.switchBody': 'Passez au service de modèles Open Design officiel d\'Open Design — aucune clé API à configurer. Après connexion, autorisation et recharge, cette exécution sera relancée automatiquement.',
'chat.amrCard.chipOfficial': 'Hébergement officiel',
'chat.amrCard.chipNoKey': 'Sans clé API',
'chat.amrCard.chipAutoRetry': 'Reprise automatique après connexion',
'chat.amrCard.switchCta': 'Passer à Open Design et relancer',
'chat.amrError.authMessage': 'Votre compte Open Design n\'est pas encore autorisé. Autorisez-le et cette exécution sera relancée automatiquement.',
'chat.amrError.balanceMessage': 'Votre solde Open Design est épuisé. Rechargez pour poursuivre cette exécution.',
'chat.amrError.authorizeCta': 'Autoriser et relancer',
'chat.amrError.rechargeCta': 'Recharger Open Design',
'chat.antigravityError.launchTerminalCta': 'Se connecter via le terminal',
'chat.antigravityError.launchSwitchModelCta': 'Changer de modèle dans le terminal',
'chat.connectionDropped': 'La connexion au service de modèle a été interrompue avant la fin de la réponse — généralement un réseau ou un proxy instable. Veuillez réessayer.',
'chat.runError.title.authRequired': 'Autorisation requise',
'chat.runError.title.balance': 'Solde insuffisant',
'chat.runError.title.connectionDropped': 'Connexion interrompue',
'chat.runError.title.signInRequired': 'Connexion requise',
'chat.runError.title.rateLimited': 'Limite d’utilisation atteinte',
'chat.runError.title.generic': 'Échec de la tâche',
'chat.runError.signInMessage.amr': 'L\'agent Open Design n\'est pas encore connecté — connectez-vous pour l\'utiliser.',
'chat.runError.signInMessage.other': '{agent} n\'est pas connecté. Vérifiez son état de connexion en local. Nous recommandons l\'agent Open Design — plus stable et plus économique.',
'chat.runError.agentFallback': 'l\'agent',
'chat.runError.sourceLabel': 'Source de l’erreur',
'chat.runError.sourceExpandAria': 'Afficher la source de l’erreur',
'chat.runError.sourceCollapseAria': 'Masquer la source de l’erreur',
'common.cancel': 'Annuler',
'chat.selectFromLibrary': 'Importer depuis la bibliothèque',
'chat.importFigma': 'Importer depuis Figma',
'chat.plus.group.files': 'Fichiers',
'chat.plus.group.code': 'Code',
'chat.plus.group.designs': 'Designs',
'chat.plus.group.other': 'Autre',
'chat.plus.attachFiles': 'Joindre des fichiers',
'chat.plus.referenceProject': 'Référencer un autre projet',
'chat.plus.linkLocalCode': 'Lier du code local',
'chat.plus.uploadFig': 'Importer un fichier .fig',
'chat.plus.learnHow': 'En savoir plus',
'chat.plus.designSystem': 'Système de design',
'chat.plus.skills': 'Skills',
'chat.plus.noSkills': 'Aucun skill disponible',
'chat.plus.connectors': 'Connectors',
'chat.plus.plugins': 'Plugins',
'chat.plus.mcp': 'MCP',
'chat.referenceProject.title': 'Référencer un autre projet',
'chat.referenceProject.search': 'Rechercher des projets…',
'chat.referenceProject.empty': 'Aucun projet ne correspond à « {query} »',
'chat.referenceProject.emptyAll': 'Aucun autre projet pour le moment',
'chat.referenceProject.loadFailed': 'Impossible de charger les projets. Vérifiez que le daemon fonctionne, puis réessayez.',
'chat.referenceProject.confirm': 'Référencer le projet',
'chat.contextPrompt.referenceProject': 'Utilise le projet Open Design « {name} » comme contexte de référence. Son chemin local est : {path}. Avant de concevoir ou modifier quoi que ce soit, cherche et lis ce dossier lorsque c’est utile.',
'chat.contextPrompt.localCode': 'Utilise le dossier de code local « {name} » comme référence de code. Son chemin absolu est : {path}. Lis les fichiers pertinents lorsque c’est utile et reste cohérent avec l’implémentation existante.',
'chat.figmaHelp.title': 'Comment télécharger un fichier .fig',
'chat.figmaHelp.intro': 'Depuis l’app web ou desktop de Figma :',
'chat.figmaHelp.step1': 'Ouvrez le fichier dans Figma.',
'chat.figmaHelp.step2': 'Allez dans File → Save local copy… (web : menu principal → File).',
'chat.figmaHelp.step3': 'Figma télécharge un fichier .fig. Déposez-le dans le composeur ou importez-le.',
'chat.figmaHelp.note': 'Le fichier .fig est analysé localement et n’est pas téléversé vers Figma.',
'designFiles.library.label': 'Importer depuis la bibliothèque',
'designFiles.library.title': 'Importer depuis la bibliothèque',
'libraryPicker.title': 'Importer depuis la bibliothèque',
'libraryPicker.searchPlaceholder': 'Rechercher dans la bibliothèque…',
'libraryPicker.empty': 'Aucune ressource dans votre bibliothèque',
'libraryPicker.allKinds': 'Tous',
'libraryPicker.add': 'Importer',
'libraryPicker.loading': 'Chargement…',
'common.save': 'Enregistrer',
'common.close': 'Fermer',
'common.clear': 'Effacer',
'common.delete': 'Supprimer',
'common.rename': 'Renommer',
'common.edit': 'Modifier',
'common.preview': 'Aperçu',
'common.share': 'Partager',
'common.search': 'Rechercher',
'common.searchEllipsis': 'Rechercher…',
'common.loading': 'Chargement…',
'common.all': 'Tout',
'common.none': 'Aucun',
'common.default': 'Par défaut',
'common.installed': 'installé',
'common.notInstalled': 'non installé',
'common.active': 'actif',
'common.offline': 'hors ligne',
'common.selected': 'sélectionné',
'common.create': 'Créer',
'common.openPreview': 'Ouvrir l\'aperçu',
'common.exitFullscreen': 'Quitter le plein écran',
'common.fullscreen': 'Plein écran',
'common.openInNewTab': 'Ouvrir dans un nouvel onglet',
'common.exportPdf': 'Exporter en PDF',
'common.exportZip': 'Télécharger en .zip',
'common.exportHtml': 'Exporter en HTML autonome',
'common.exportImage': 'Exporter en image',
'common.exportImageFailed': 'Échec de la capture d\'image. Veuillez réessayer ou utiliser l\'outil de capture d\'écran de votre navigateur.',
'common.justNow': 'à l\'instant',
'common.minutesAgo': 'il y a {n} min',
'common.hoursAgo': 'il y a {n} h',
'common.daysAgo': 'il y a {n} j',
'common.weeksAgo': 'il y a {n} sem.',
'common.now': 'maintenant',
'common.minutesShort': '{n} min',
'common.hoursShort': '{n} h',
'common.daysShort': '{n} j',
'common.untitled': 'Sans titre',
'designBrowser.savePageBrief': 'Enregistrer le brief de page',
'designBrowser.menu': 'Menu du navigateur',
'designBrowser.copyScreenshot': 'Copier la capture d’écran',
'designBrowser.hardReload': 'Rechargement forcé',
'designBrowser.copyUrl': 'Copier l’URL',
'designBrowser.openExternal': 'Ouvrir en externe',
'designBrowser.downloadPage': 'Télécharger la page',
'designBrowser.downloadPageBusy': 'Téléchargement de la page…',
'designBrowser.clearHistory': 'Effacer l’historique',
'designBrowser.clearCookies': 'Effacer les cookies',
'designBrowser.clearAllData': 'Effacer toutes les données du navigateur',
'designBrowser.status.noUrlToCopy': 'Aucune URL à copier.',
'designBrowser.status.urlCopied': 'URL copiée.',
'designBrowser.status.openHttpFirst': 'Ouvrez d’abord une page http ou https.',
'designBrowser.status.openBeforeScreenshot': 'Ouvrez une page avant de prendre une capture d’écran.',
'designBrowser.status.screenshotSaved': 'Capture d’écran enregistrée.',
'designBrowser.status.screenshotFailed': 'Échec de la capture d’écran.',
'designBrowser.status.openBeforeBrief': 'Ouvrez une page avant d’enregistrer un brief.',
'designBrowser.status.briefSaveFailed': 'Échec de l’enregistrement du brief de page.',
'designBrowser.status.openBeforeDownload': 'Ouvrez une page avant d’enregistrer un instantané.',
'designBrowser.status.pageSnapshotStarted': 'Enregistrement de l’instantané de page…',
'designBrowser.status.pageSnapshotUnsupported': 'Cette page ne peut pas être archivée.',
'designBrowser.status.pageSnapshotFailed': 'Échec de l’enregistrement de l’instantané de page.',
'designBrowser.status.pageSnapshotSaved': 'Instantané de page enregistré (HTML + CSS).',
'designBrowser.status.viewDesignFiles': 'Voir les fichiers de design',
'designBrowser.status.downloadAssistHint': 'Étape 2 : cliquez ici sur Télécharger la page, attendez le message de réussite de l’instantané enregistré, puis revenez à la carte Étape suivante à gauche et cliquez sur Continuer l’extraction.',
'designBrowser.status.desktopDataUnavailable': 'Les données du navigateur desktop ne sont pas disponibles ici.',
'designBrowser.status.browserDataCleared': 'Données du navigateur effacées.',
'designBrowser.status.browserDataClearFailed': 'Échec de l’effacement des données du navigateur.',
'designBrowser.status.historyCleared': 'Historique effacé.',
'plugins.availableDetails.provenance': 'Provenance',
'plugins.availableDetails.provenanceLine': 'depuis {source} · {trust} · {resolved}',
'plugins.availableDetails.provenanceLineWithIntegrity': 'depuis {source} · {trust} · {resolved} · {integrity}',
'plugins.availableDetails.install': 'Installer',
'plugins.availableDetails.version': 'Version',
'plugins.availableDetails.pluginVersion': 'Version du plugin',
'plugins.availableDetails.copyInstallCommand': 'Copier la commande d’installation',
'plugins.availableDetails.copied': 'Copié',
'plugins.availableDetails.deprecatedPrefix': 'Déprécié : {message}',
'plugins.availableDetails.deprecatedFallback': 'Cette version a été marquée comme dépréciée.',
'plugins.availableDetails.yanked': 'Retiré.',
'plugins.availableDetails.yankedWithReason': 'Retiré : {reason}',
'plugins.availableDetails.versionDeprecatedSuffix': ' (dépréciée)',
'plugins.availableDetails.versionYankedSuffix': ' (retirée)',
'plugins.availableDetails.ref': 'Réf.',
'plugins.availableDetails.integrity': 'Integrity',
'plugins.availableDetails.permissions': 'Autorisations',
'plugins.availableDetails.capabilitySummary': 'Résumé des capacités',
'plugins.actions.copyInstallCommand': 'Copier la commande d’installation',
'plugins.actions.copyPluginId': 'Copier l’ID du plugin',
'plugins.actions.copyReadmeBadge': 'Copier le badge README',
'plugins.actions.openSourceGithub': 'Ouvrir la source sur GitHub',
'plugins.actions.openSource': 'Ouvrir la source',
'plugins.actions.openHomepage': 'Ouvrir la page d’accueil',
'plugins.actions.openMarketplace': 'Ouvrir dans la marketplace',
'app.brand': 'Open Design',
'app.brandPill': 'Aperçu de recherche',
'app.brandSubtitle': 'par Nexu Labs',
'app.welcomeLoading': 'Chargement de l\'espace de travail…',
'settings.welcomeKicker': '',
'settings.welcomeTitle': 'Bienvenue sur Open Design',
'settings.welcomeSubtitle': '',
'settings.onboardingCreateTitle': 'Commencer par un brief',
'settings.onboardingCreateBody': 'Décrivez le site, l’app, le deck, l’image ou la vidéo que vous voulez. Open Design créera un projet et gardera le travail modifiable.',
'settings.onboardingMemoryTitle': 'Enregistrer le contexte de travail',
'settings.onboardingMemoryBody': 'Ajoutez vos préférences, les faits du projet et les règles récurrentes afin que les prochaines discussions reprennent le bon contexte.',
'settings.onboardingMemoryCalloutTitle': 'Enregistré dans votre Mémoire',
'settings.onboardingMemoryCalloutBody': 'Ces réponses alimentent votre profil de Mémoire. Open Design le réutilise pour chaque tâche — et continue d’apprendre au fil de votre travail.',
'settings.onboardingMemoryBenefitIntent': 'Comprend ce que vous voulez à partir d’une demande courte',
'settings.onboardingMemoryBenefitFewerQuestions': 'Évite les questions de configuration répétées',
'settings.onboardingMemoryBenefitPersonalized': 'Adapte les résultats à votre rôle, votre audience et vos goûts',
'settings.onboardingSystemsTitle': 'Importer votre système de design',
'settings.onboardingSystemsBody': 'Choisissez ou créez un système de marque pour que les générations respectent les couleurs, la typographie et le langage produit réels.',
'settings.onboardingExecutionTitle': 'Choisir le mode de génération',
'settings.onboardingExecutionBody': 'CLI officielle avec configuration en un clic et valeurs prêtes à l’emploi. Utilisez une seule clé pour choisir parmi de nombreux modèles avec une meilleure tarification.',
'settings.onboardingAmrCloudBenefitOfficial': 'Recommandé officiellement',
'settings.onboardingAmrCloudBenefitReady': 'Sans déploiement',
'settings.onboardingAmrCloudBenefitModels': 'Prend en charge Claude Opus 4.8',
'settings.onboardingAmrCloudBenefitPricing': 'SOTA Harness',
'settings.onboardingAmrCloudUpcomingLabel': 'Bientôt',
'settings.onboardingAmrCloudUpcomingImageVideo': 'Image et vidéo',
'settings.onboardingAmrCloudUpcomingSkills': 'Skills à grande échelle',
'settings.onboardingAmrCloudUpcomingRouting': 'Routage intelligent',
'settings.onboardingAmrModelSourceLabel': 'Open Design CLI',
'settings.onboardingAmrCloudAuthorizeAction': 'Autoriser Open Design',
'settings.onboardingAmrCloudAuthorizedAction': 'Autorisé',
'settings.onboardingStepConnect': 'Connexion',
'settings.onboardingStepDesignSystem': 'Créer un système de design',
'settings.onboardingStepProfile': 'À propos de vous',
'settings.onboardingStepNewsletter': 'Restez informé',
'settings.onboardingNewsletterTitle': 'Restez au courant',
'settings.onboardingNewsletterBody': 'Recevez les nouveautés produit, les nouveaux modèles, les nouveaux systèmes de design et les réalisations des ambassadeurs par e-mail. Facultatif — vous pouvez ignorer cette étape.',
'settings.onboardingConnectTitle': 'Choisir un runtime',
'settings.onboardingConnectBody': '',
'settings.onboardingCloudTitle': 'Se connecter à Open Design',
'settings.onboardingCloudBody': 'Connectez-vous et créez immédiatement avec l’IA cloud, sans configuration complexe.',
'settings.onboardingCloudSignIn': 'Se connecter à Open Design',
'settings.onboardingCloudContinue': 'Continuer (connecté)',
'settings.onboardingCloudAlternative': 'Utiliser une CLI locale ou votre propre clé API',
'settings.onboardingCloudRights': 'Tous droits réservés.',
'settings.onboardingCloudOr': 'ou',
'settings.onboardingGateTooltipNoRuntime': 'Les étapes suivantes tournent sur IA — choisissez un runtime pour continuer.',
'settings.onboardingGateTooltipAmr': 'Les étapes suivantes tournent sur IA — connectez-vous à Open Design pour continuer.',
'settings.onboardingGateTooltipLocal': 'Les étapes suivantes tournent sur IA — sélectionnez une CLI locale disponible pour continuer.',
'settings.onboardingGateTooltipByok': 'Les étapes suivantes tournent sur IA — ajoutez et testez votre clé de modèle pour continuer.',
'settings.onboardingRecommended': 'Recommandé',
'settings.onboardingAmrCloudOfficialBadge': 'Officiel',
'settings.onboardingLocalTitle': 'Agent de code local',
'settings.onboardingLocalBody': 'Utilisez une CLI installée comme Claude Code, Codex, Cursor, Gemini ou OpenCode.',
'settings.onboardingLocalAction': 'Ouvrir les paramètres CLI',
'settings.onboardingCliScanHint': 'Cela prend généralement 5 à 10 secondes.',
'settings.onboardingByokTitle': 'Utiliser votre propre clé',
'settings.onboardingByokBody': 'Utilisez vos propres identifiants de fournisseur de modèles.',
'settings.onboardingByokAction': 'Ouvrir les paramètres BYOK',
'settings.onboardingDesignTitle': 'Système de design',
'settings.onboardingDesignBody': 'Générez une fois, réutilisez partout.',
'settings.onboardingDesignIntroGenerateTitle': 'Générer depuis l’existant',
'settings.onboardingDesignIntroGenerateBody': 'Importez votre système de design depuis GitHub, des dépôts de code locaux, des fichiers Figma, des images ou d’autres contenus.',
'settings.onboardingDesignIntroReuseTitle': 'Réutiliser dans les prochains travaux',
'settings.onboardingDesignIntroReuseBody': 'Les futurs prototypes, présentations et autres contenus pourront réutiliser vos polices, espacements, style de logo et tonalité de couleur.',
'settings.onboardingDesignIntroSkipTitle': 'Optionnel pour l’instant',
'settings.onboardingDesignIntroSkipBody': 'Ignorez cette étape si vous voulez commencer sans générer de système de design.',
'settings.onboardingGithubTitle': 'Importer depuis GitHub',
'settings.onboardingGithubBody': 'Utiliser un dépôt front-end.',
'settings.onboardingUploadTitle': 'Importer des fichiers locaux',
'settings.onboardingUploadBody': 'Ajoutez des fichiers de projet, des captures d’écran, du CSS, de la documentation ou des ressources.',
'settings.onboardingPromptTitle': 'Générer depuis un prompt',
'settings.onboardingPromptBody': 'Décrivez le produit ou la marque.',
'settings.onboardingProfileTitle': 'À propos de vous',
'settings.onboardingProfileBody': 'Détails optionnels pour de meilleurs réglages par défaut.',
'settings.onboardingRoleLabel': 'Votre rôle',
'settings.onboardingOrgSizeLabel': 'Taille de l’organisation',
'settings.onboardingUseCaseLabel': 'Cas d’usage',
'settings.onboardingSourceLabel': 'Où avez-vous entendu parler de nous ?',
'settings.onboardingSelectPlaceholder': 'Sélectionnez une option',
'settings.onboardingSelectMultiplePlaceholder': 'Sélectionnez une ou plusieurs options',
'settings.onboardingOrgSolo': 'Solo / personnel (1)',
'settings.onboardingOrgTeam': 'Petite équipe (2-10)',
'settings.onboardingOrgStartup': 'Startup / PME (11-50)',
'settings.onboardingOrgGrowth': 'Entreprise en croissance (51-200)',
'settings.onboardingOrgMidMarket': 'Entreprise intermédiaire (201-1000)',
'settings.onboardingOrgEnterprise': 'Grande entreprise (1000+)',
'settings.onboardingRolePm': '📋 Responsable produit',
'settings.onboardingRoleDesigner': '🎨 Designer',
'settings.onboardingRoleEngineer': '💻 Ingénieur',
'settings.onboardingRoleMarketing': '📣 Marketing',
'settings.onboardingRoleAgency': '📣 Agence marketing',
'settings.onboardingRoleGrowth': '📈 Croissance',
'settings.onboardingRoleOps': '⚙️ Opérations',
'settings.onboardingRoleFounder': '🚀 Fondateur / dirigeant',
'settings.onboardingRoleStudent': '🎓 Étudiant / enseignant',
'settings.onboardingRoleOther': '✨ Autre',
'settings.onboardingUseProduct': '🎨 Design produit',
'settings.onboardingUseDesignSystem': '🧩 Système de design',
'settings.onboardingUsePrototype': '📱 Prototype / UI d’app',
'settings.onboardingUseLanding': '🌐 Pages de destination',
'settings.onboardingUseAds': '📣 Publicités / contenu social',
'settings.onboardingUseDashboard': '📊 Tableaux de bord / outils internes',
'settings.onboardingUseDeck': '🖥️ Présentation / deck',
'settings.onboardingUseMarketing': '📈 Marketing / croissance',
'settings.onboardingUseEngineering': '🤝 Transmission aux ingénieurs',
'settings.onboardingUseAgency': '💼 Agence / travail client',
'settings.onboardingSourceGithub': '🐙 GitHub',
'settings.onboardingSourceFriend': '👥 Ami ou collègue',
'settings.onboardingSourceSocial': '📱 Réseaux sociaux',
'settings.onboardingSourceProductHunt': '🅿️ Product Hunt',
'settings.onboardingSourceCommunity': '💬 Communauté design / IA',
'settings.onboardingSourceYoutube': '▶️ YouTube',
'settings.onboardingSourceBlog': '📰 Blog ou newsletter',
'settings.onboardingSourceAiTool': '✨ Recommandation d’outil IA',
'settings.onboardingSourceSearch': '🔍 Recherche',
'settings.onboardingSourceEvent': '🎤 Événement ou communauté',
'settings.onboardingBack': 'Retour',
'settings.onboardingContinue': 'Continuer',
'settings.onboardingFinish': 'Terminer la configuration',
'settings.kicker': 'Paramètres',
'settings.title': 'Mode d\'exécution',
'settings.subtitle': 'Choisissez entre CLI local et BYOK.',
'settings.modeAria': 'Mode d\'exécution',
'settings.protocolAria': 'Protocole d\'API',
'settings.modeDaemon': 'CLI local',
'settings.modeDaemonHelp': 'Exécuter via un agent CLI sur votre machine',
'settings.modeDaemonOffline': 'Le daemon n\'est pas en cours d\'exécution',
'settings.modeDaemonOfflineMeta': 'daemon hors ligne',
'settings.modeDaemonInstalledMeta': '{count} installé(s)',
'settings.modeApi': 'Fournisseur API',
'settings.cloudCalloutTitle': 'Use Open Design Cloud',
'settings.cloudCalloutBody': 'Sign in to the cloud version to enable team spaces, shared projects, member permissions, and the audit dashboard.',
'settings.cloudCalloutButton': 'Sign in / Register',
'settings.modeApiMeta': 'BYOK',
'settings.byokNoFileToolsNotice': 'BYOK ne peut pas lire, écrire ni modifier les fichiers du projet. Utilisez la CLI locale quand vous avez besoin de changements de code.',
'settings.codeAgent': 'Agent de code',
'settings.codeAgentHint': 'Choisissez la CLI par laquelle les générations seront routées.',
'settings.rescan': '↻ Réanalyser',
'settings.rescanTitle': 'Réanalyser le PATH',
'settings.rescanRunning': 'Analyse...',
'settings.rescanSuccess': 'Analyse terminée. {count} disponible(s).',
'settings.designSystemRenameFailed': 'Le renommage a échoué. Vérifiez le daemon et réessayez.',
'settings.rescanFailed': 'L’analyse a échoué. Vérifiez le daemon et réessayez.',
'settings.test': 'Tester',
'settings.testTitle': 'Envoie un tout petit message de test pour vérifier la connexion',
'settings.testRunning': 'Test de la connexion…',
'settings.byokReadyToTest': 'Prêt à tester',
'settings.testCancel': 'Annuler',
'settings.testRetry': 'Relancer le test',
'settings.required': 'requis',
'settings.testMissingFields': 'Renseignez {fields} pour tester la connexion.',
'settings.testSuccessApi': 'Connecté. Répondu en {ms} ms — \'{sample}\'',
'settings.testSuccessCli': '{agentName} a répondu en {ms} ms — \'{sample}\'',
'settings.testAuthFailed': 'Échec de l’authentification. Vérifiez votre clé API.',
'settings.testForbidden': 'Accès interdit. Vérifiez le compte, la région ou l’organisation.',
'settings.testNotFoundModel': 'Modèle \'{model}\' introuvable sur ce point d’accès.',
'settings.testInvalidModelId': 'L’id de modèle \'{model}\' est invalide. Les ids personnalisés doivent commencer par une lettre ou un chiffre et ne contenir aucun espace.',
'settings.testInvalidBaseUrl': 'L’URL de base est invalide ou inaccessible.',
'settings.testRateLimited': 'Le fournisseur a limité le test. La configuration semble valide.',
'settings.testUpstream': 'Le fournisseur a renvoyé {status}. Réessayez dans un instant.',
'settings.testTimeout': 'Le test a expiré après {ms} ms.',
'settings.testAgentMissing': '{agentName} n’est pas installé ou pas dans le PATH.',
'settings.testAgentSpawn': 'Impossible de démarrer {agentName} : {detail}.',
'settings.testUnknown': 'Échec du test : {detail}',
'settings.agentInstall.install': 'Installer',
'settings.agentInstall.docs': 'Documentation',
'settings.agentInstall.pathHint': 'Si vous avez installé une CLI avec npm ou Homebrew et qu\'elle apparaît toujours comme non installée, vérifiez que le dossier bin de l\'outil est dans le PATH hérité par le daemon Open Design (le Terminal et les applications graphiques peuvent différer sur macOS). Voir QUICKSTART.md (section "Local agent CLI and PATH").',
'settings.agentInstall.stepOpenLinks': 'Ouvrez Installer ou Documentation pour l\'agent souhaité.',
'settings.agentInstall.stepAuth': 'Authentifiez-vous avec la CLI du fournisseur (connexion ou ajout des identifiants API) avant de revenir dans Open Design.',
'settings.agentInstall.stepRescan': 'Cliquez sur Réanalyser dans cette section.',
'settings.agentInstall.stepSelect': 'Sélectionnez la carte de l\'agent une fois qu\'elle apparaît comme installée.',
'settings.noAgentsDetected': 'Aucun agent détecté pour l’instant. Installez Claude Code, Codex, Devin for Terminal, OpenCode, Cursor Agent, Qwen, GitHub Copilot CLI, Qoder CLI, Hermes, Kimi CLI, Pi, Kiro CLI, Kilo, Mistral Vibe CLI ou DeepSeek TUI, puis cliquez sur Réanalyser.',
'settings.agentInstalledGroup': 'Vos CLI ({count})',
'settings.agentInstallGroup': 'Disponibles à installer ({count})',
'settings.agentAuthRequired': 'Authentification requise',
'settings.agentAuthUnknown': 'Statut d’authentification inconnu',
'settings.amrCloud': 'Open Design',
'settings.amrAuthorize': 'Autoriser',
'settings.amrBenefitOfficial': 'Officiel',
'settings.amrBenefitLowerPrice': 'Coût réduit',
'settings.amrBenefitManyModels': 'Nombreux modèles',
'settings.amrPromoBonus': 'Bonus limité : +100 %',
'settings.amrSignInToContinue': 'Connectez-vous pour continuer',
'settings.amrSignIn': 'Se connecter',
'settings.amrSignedIn': 'Connecté',
'settings.amrWalletBalance': 'Solde du portefeuille',
'settings.amrWalletUnavailable': 'Solde temporairement indisponible',
'settings.amrWalletUpdatedAt': 'Mis à jour {time}',
'settings.amrWalletCached': 'en cache',
'settings.amrWalletRefresh': 'Actualiser',
'settings.amrWalletRefreshTitle': 'Actualiser le solde du portefeuille AMR',
'settings.amrNotSignedIn': 'Non connecté',
'settings.amrSigningIn': 'Connexion…',
'settings.amrActivationHint': 'La page de connexion ne s\'est pas ouverte ? Appuyez sur le bouton ci-dessous pour la rouvrir.',
'settings.amrActivationBrowserFailed': 'Impossible d’ouvrir le navigateur automatiquement. Ouvrez la page de connexion ci-dessous pour continuer.',
'settings.amrActivationOpen': 'Ouvrir la page de connexion',
'settings.amrCancelSignIn': 'Annuler la connexion',
'settings.amrAccountStatus': 'Statut du compte Open Design',
'settings.amrConsole': 'Gérer',
'settings.amrBalance': 'Solde',
'settings.amrPlan': 'Forfait',
'settings.amrUpgrade': 'Mettre à niveau',
'settings.amrLoginErrorCompact': 'Échec de la connexion Open Design.',
'settings.advanced': 'Avancé',
'settings.amrLogin': 'Se connecter',
'settings.amrLogout': 'Se déconnecter',
'settings.amrLoggingIn': 'Connexion…',
'settings.amrLoggingOut': 'Déconnexion…',
'settings.amrLoggedInAs': 'Connecté avec {email}',
'settings.amrLoggedInWithPlan': 'Connecté avec {email} · {plan}',
'settings.amrLoggedInPill': 'Connecté',
'settings.amrNotLoggedIn': 'Non connecté',
'settings.apiSection': 'API Anthropic',
'settings.quickFillProvider': 'Remplissage rapide du fournisseur',
'settings.providerPreset': 'Préréglage de passerelle',
'settings.protocolGroupProtocols': 'Protocoles',
'settings.protocolGroupGateways': 'Passerelles',
'settings.customProvider': 'Fournisseur personnalisé',
'settings.apiKey': 'Clé API',
'settings.apiKeyGetLink': 'Obtenir la clé ↗',
'settings.showKey': 'Afficher la clé',
'settings.hideKey': 'Masquer la clé',
'settings.show': 'Afficher',
'settings.hide': 'Masquer',
'settings.model': 'Modèle',
'settings.apiKeyInvalid': 'Clé API invalide.',
'settings.apiKeyCleaned': 'Les espaces superflus ont été supprimés de la clé API.',
'settings.modelsLoadedFromAccount': '✓ {count} modèles chargés depuis votre compte.',
'settings.modelsLoadedCount': '✓ {count} modèles chargés.',
'settings.modelSourceAccount': 'Depuis votre compte',
'settings.modelSourceSuggested': 'Suggéré',
'settings.fetchModels': 'Récupérer les modèles',
'settings.fetchModelsTitle': 'Récupérer les modèles disponibles auprès de ce fournisseur',
'settings.fetchModelsRunning': 'Récupération des modèles…',
'settings.fetchModelsMissingFields': 'Renseignez {fields} pour récupérer les modèles.',
'settings.fetchModelsInvalidBaseUrl': 'Saisissez une URL de base valide pour récupérer les modèles.',
'settings.fetchModelsUnsupportedAzure': 'Azure OpenAI utilise des noms de déploiement ; la découverte de modèles n’est donc pas disponible ici.',
'settings.fetchModelsUnsupportedOllama': 'La découverte des modèles Ollama Cloud n’est pas encore disponible. Choisissez ou saisissez un modèle.',
'settings.fetchModelsSuccess': 'Modèles récupérés : {count}.',
'settings.fetchModelsEmpty': 'Aucun modèle de texte compatible n’a été renvoyé.',
'settings.fetchModelsUnsupported': 'La découverte de modèles n’est pas disponible pour ce protocole.',
'settings.fetchModelsFailed': 'Impossible de récupérer les modèles : {detail}',
'settings.suggestedModelsHint': 'Ce sont des modèles suggérés pour ce protocole. Votre fournisseur peut prendre en charge d\'autres modèles.',
'settings.baseUrl': 'URL de base',
'settings.baseUrlInvalid': 'Utilisez une URL publique http:// ou https://.',
'settings.baseUrlCustomize': 'Personnaliser',
'settings.baseUrlDefaultHint': 'Point de terminaison par défaut. Inutile de le modifier dans la plupart des cas.',
'settings.azureBaseUrlPlaceholder': 'Collez l’URL de l’endpoint Azure',
'settings.azureBaseUrlHint': 'Trouvez-la dans le portail Azure → votre ressource → Endpoint.',
'settings.azureDeploymentModel': 'Nom du déploiement',
'settings.azureCustomDeploymentName': 'Nom de déploiement personnalisé',
'settings.azureDeploymentModelHint': 'Pour Azure OpenAI, ce champ est utilisé comme nom du déploiement dans /openai/deployments/<model>. Saisissez le nom du déploiement créé dans Azure.',
'settings.azureModelFetchHint': 'Pour Azure OpenAI, saisissez le nom du déploiement créé dans Azure. La découverte automatique des déploiements n’est pas disponible depuis ce point d’accès BYOK.',
'settings.apiVersion': 'Version API',
'settings.byokImageModel': 'Modèle de génération d\'images',
'settings.byokVideoModel': 'Modèle de génération de vidéo',
'settings.byokVideoI2vHint': 'Modèle image-vers-vidéo : une image de référence est requise (sinon la dernière image du projet est utilisée automatiquement)',
'settings.byokSpeechModel': 'Modèle de synthèse vocale',
'settings.byokSpeechVoice': 'Voix',
'settings.byokModelDefaultOption': 'Par défaut',
'settings.maxTokens': 'Tokens max (optionnel)',
'settings.maxTokensHint': 'Limite de la longueur de réponse. Chaque modèle a une valeur par défaut (affichée à titre indicatif) ; laissez vide pour l\'utiliser, ou entrez un nombre pour la remplacer.',
'settings.apiHint': 'Stockée uniquement dans ce navigateur.',
'settings.skipForNow': 'Passer pour l\'instant',
'settings.getStarted': 'Commencer',
'settings.envConfigure': 'Mode d\'exécution',
'settings.localCli': 'CLI local',
'settings.anthropicApi': 'API Anthropic',
'settings.noAgentSelected': 'aucun agent sélectionné',
'settings.language': 'Langue',
'settings.languageHint': 'Changer la langue de l\'interface. Enregistré dans ce navigateur.',
'settings.appearance': 'Apparence',
'settings.appearanceHint': 'Choisissez clair, sombre, ou suivez le paramètre système.',
'settings.themeSystem': 'Système',
'settings.themeLight': 'Clair',
'settings.themeDark': 'Sombre',
'settings.agentModelHead': 'Modèle pour :',
'settings.modelPicker': 'Modèle',
'settings.modelSourceLive': 'En direct depuis la CLI',
'settings.modelSourceFallback': 'Liste intégrée',
'settings.reasoningPicker': 'Effort de raisonnement',
'settings.modelPickerHint': 'Par défaut utilise la configuration propre de la CLI. Personnalisé… vous permet de saisir n’importe quel identifiant de modèle.',
'settings.modelPickerLiveHint': 'Les modèles ont été actualisés depuis la CLI installée. Par défaut utilise toujours la configuration propre de la CLI.',
'settings.modelPickerLiveCatalogOnlyHint': 'Les modèles ont été actualisés depuis la CLI installée.',
'settings.modelPickerFallbackHint': 'Valeurs par défaut intégrées affichées. Cliquez sur Réanalyser pour récupérer les modèles en direct depuis la CLI.',
'settings.cliEnvTitle': 'Avancé : proxy et chemins personnalisés',
'settings.cliEnvHint': 'Utilisez ces champs pour remplacer l’environnement de la CLI sélectionnée : clés API, base URLs de proxy, homes personnalisés ou chemins de binaires non standard. Sans base URL, la CLI utilise son endpoint par défaut. Les secrets restent dans la configuration locale de l’app et seule la CLI sélectionnée les voit.',
'settings.cliEnvClaudeConfigDir': 'Dossier de configuration Claude Code',
'settings.cliEnvClaudeBaseUrl': 'URL de base du proxy Claude',
'settings.cliEnvClaudeApiKey': 'Clé API Claude CLI',
'settings.cliEnvCodexHome': 'Dossier d’accueil Codex',
'settings.cliEnvCodexBin': 'Chemin de l’exécutable Codex',
'settings.cliEnvCodexBaseUrl': 'URL de base du proxy Codex/OpenAI',
'settings.cliEnvCodexApiKey': 'Clé API Codex/OpenAI CLI',
'settings.modelCustom': 'Personnalisé (saisir ci-dessous)…',
'settings.modelCustomLabel': 'Identifiant du modèle personnalisé',
'settings.modelCustomPlaceholder': 'ex. anthropic/claude-sonnet-4-6',
'settings.mediaProviders': 'Fournisseurs de médias',
'settings.mediaProvidersHint': 'Clés API pour la génération d’images, de vidéos et d’audio.',
'settings.mcpServerTitle': 'Serveur MCP',
'settings.mcpServerHint': 'Exposez Open Design comme serveur MCP pour votre agent de code.',
'settings.externalMcpTitle': 'MCP externe',
'settings.externalMcpHint': 'Ajoutez des outils MCP depuis des services externes (Higgsfield, GitHub, …).',
'settings.mediaProviderApiKey': 'Clé API',
'settings.mediaProviderBaseUrl': 'URL de base',
'settings.mediaProviderConfigured': 'Configuré',
'settings.mediaProviderUnset': 'Non défini',
'settings.mediaProviderClear': 'Effacer',
'settings.mediaProviderClearConfirm': 'Effacer les paramètres enregistrés pour {name} ? Vous devrez les saisir à nouveau pour utiliser {name}.',
'settings.mediaProviderPlaceholder': 'Coller la clé API',
'settings.mediaProviderBaseUrlPlaceholder': 'Remplacer l\'URL de base par défaut',
'settings.mediaProviderReload': 'Recharger depuis le daemon',
'settings.mediaProviderReloadError': 'Impossible de recharger les paramètres des fournisseurs de médias depuis le daemon local.',
'settings.mediaProviderReloadSuccess': 'Paramètres des fournisseurs de médias rechargés depuis le daemon local.',
'settings.mediaProviderLoadError': 'Impossible de charger les paramètres des fournisseurs de médias depuis le daemon local. Utilisation temporaire des paramètres enregistrés dans le navigateur.',
'settings.mediaProviderComingSoonHint': 'Nous suivons ces fournisseurs pour la feuille de route ; le daemon ne fournit pas encore de client, il n\'y a donc rien à configurer.',
'settings.privacy': 'Confidentialité',
'settings.privacyHint': 'Données partagées avec l’équipe Open Design',
'settings.privacyConsentKicker': 'Aidez-nous à améliorer Open Design',
'settings.privacyConsentLead': 'Open Design peut partager des données d’utilisation avec notre équipe pour nous aider à améliorer le produit. Cela inclut :',
'settings.privacyConsentFooter': 'Vous pouvez modifier ces options à tout moment dans Paramètres → Confidentialité.',
'settings.privacyConsentShare': 'Partager les données d’utilisation',
'settings.privacyConsentDecline': 'Ne pas partager',
'settings.privacyConsentAccept': 'J’ai compris',
'settings.privacyConsentBannerFooter': 'Le partage de données est activé par défaut. Vous pouvez le désactiver à tout moment dans Paramètres → Confidentialité.',
'settings.privacyConsentPolicyLink': 'Lire la politique de confidentialité',
'settings.privacyMetrics': 'Mesures anonymes',
'settings.privacyMetricsHint': 'Nombre d’exécutions, usage des tokens, taux d’erreur, durée. Aucun prompt ni donnée de projet.',
'settings.privacyContent': 'Contenu de conversation et d’outils',
'settings.privacyContentHint': 'Prompts, réponses de l’assistant, entrées/sorties d’outils et fichiers de contexte complet nécessaires à la revue qualité. Les secrets sont supprimés avant l’envoi.',
'settings.privacyInstallationId': 'ID anonyme',
'settings.privacyOptedOut': 'désactivé',
'settings.privacyDataDeletion': 'Supprimer mes données',
'settings.privacyDataDeletionHint': 'Renouvelle votre ID anonyme et arrête l’envoi. Les traces existantes expirent selon notre politique de conservation.',
'settings.about': 'À propos',
'settings.aboutHint': 'Version et informations d\'exécution',
'settings.appVersion': 'Version',
'settings.appChannel': 'Canal',
'settings.appRuntime': 'Environnement',
'settings.appPlatform': 'Plateforme',
'settings.appArchitecture': 'Architecture',
'settings.runtimePackaged': 'Application empaquetée',
'settings.runtimeDevelopment': 'Développement',
'settings.versionUnavailable': 'Les informations de version sont indisponibles lorsque le daemon est hors ligne.',
'settings.installLatest': 'Installer la dernière version',
'settings.alreadyLatest': 'Vous utilisez la dernière version',
'settings.updateCheck': 'Rechercher des mises à jour',
'settings.updateNow': 'Mettre à jour',
'settings.updateRecheck': 'Vérifier à nouveau',
'settings.updateRetry': 'Réessayer',
'settings.updateViewReleases': 'Notes de version',
'settings.updateActionFailed': 'Impossible de terminer l’action de mise à jour.',
'settings.updateQuitFailed': 'L’installateur est ouvert, mais Open Design n’a pas pu se fermer automatiquement.',
'settings.updateStatusNotChecked': 'Pas encore vérifié',
'settings.updateStatusDevelopment': 'Les builds de développement ne prennent pas en charge les mises à jour dans l’app.',
'settings.updateStatusUnsupported': 'Cet environnement ne prend pas en charge les mises à jour dans l’app.',
'settings.updateStatusChecking': 'Recherche de mises à jour...',
'settings.updateStatusUpToDate': 'Vous utilisez déjà la dernière version.',
'settings.updateStatusAvailable': 'Version {version} trouvée. Préparation du téléchargement.',
'settings.updateStatusAvailableUnknown': 'Nouvelle version trouvée. Préparation du téléchargement.',
'settings.updateStatusDownloading': 'Téléchargement de la mise à jour...',
'settings.updateStatusDownloadingPercent': 'Téléchargement de la mise à jour {percent} %.',
'settings.updateStatusReady': 'La version {version} est prête à installer.',
'settings.updateStatusReadyUnknown': 'La mise à jour est prête à installer.',
'settings.updateStatusInstalling': 'Installation de la mise à jour...',
'settings.updateStatusFailed': 'Échec de la vérification. Réessayez.',
'settings.mcpTitle': 'Serveur MCP',
'settings.mcpHint': 'Permet à un agent de code dans un autre dépôt (Claude Code, Cursor, VS Code, Antigravity, Zed, Windsurf) de lire vos projets Open Design. Utilisez-le pour intégrer un design dans votre app sans exporter d’abord un zip.',
'settings.mcpDaemonError': 'Impossible de joindre le daemon local pour résoudre les chemins d’installation ({error}). Vérifiez qu’Open Design fonctionne, puis rouvrez ce panneau.',
'settings.mcpBuildDaemon': 'Construisez d’abord le daemon.',
'settings.mcpNodeMissing': 'Le binaire Node est introuvable.',
'settings.mcpBuildHint': 'apps/daemon/dist/cli.js est introuvable. Exécutez `pnpm --filter @open-design/daemon build`, puis actualisez.',
'settings.mcpMethodCli': 'Commande CLI',
'settings.mcpInstructionCli': 'Exécutez ceci dans votre terminal.',
'settings.mcpMethodToml': 'Configuration TOML',
'settings.mcpInstructionCodex': 'Ajoutez cette table à {path}. La même configuration est partagée entre la CLI Codex et l’extension Codex IDE.',
'settings.mcpMethodOneClick': 'Installation en un clic',
'settings.mcpInstructionCursor': 'Cliquez sur « Installer dans Cursor » pour installer avec une boîte de validation, ou fusionnez ce JSON dans {path}.',
'settings.mcpDeeplinkInstallCursor': 'Installer dans Cursor',
'settings.mcpMethodJson': 'Configuration JSON',
'settings.mcpInstructionCopilot': 'Ouvrez la palette de commandes ({shortcut}), lancez "MCP: Open User Configuration", puis fusionnez ce JSON. Copilot Chat doit être en mode Agent pour afficher les outils.',
'settings.mcpInstructionAntigravity': 'Dans Antigravity : panneau Agent, menu "..." → MCP Servers → Manage MCP Servers → View raw config. Fusionnez ce JSON.',
'settings.mcpInstructionZed': 'Ouvrez les réglages Zed ({shortcut}) et fusionnez ceci dans l’objet racine. Zed utilise "context_servers", pas "mcpServers".',
'settings.mcpInstructionWindsurf': 'Ouvrez {path} (ou utilisez l’icône MCPs dans Cascade → Configure), puis fusionnez :',
'settings.mcpCopyAria': 'Copier l’extrait de configuration MCP',
'settings.mcpResolvingFailed': '# échec de résolution des chemins, voir l’erreur ci-dessus',
'settings.mcpLoadingPaths': '# chargement des chemins d’installation depuis le daemon local…',
'settings.mcpCopied': 'Copié',
'settings.mcpCopy': 'Copier',
'settings.mcpCursorApproval': 'Cursor affiche une boîte de validation avant d’écrire la configuration.',
'settings.mcpCodexOneClickInstall': 'Installer dans Codex',
'settings.mcpCodexOneClickUninstall': 'Retirer de Codex',
'settings.mcpCodexOneClickUnavailable': 'CLI Codex introuvable dans le PATH — installez Codex ou collez l’extrait manuellement.',
'settings.mcpCodexInstallSuccess': 'Installé. Redémarrez Codex pour charger le nouveau serveur.',
'settings.mcpCodexUninstallSuccess': 'Retiré de Codex.',
'settings.mcpCodexBusy': 'Traitement…',
'settings.mcpCodexInstallError': 'Échec de l’opération : {error}',
'settings.mcpRestartNote': 'Redémarrez votre client pour charger le nouveau serveur.',
'settings.mcpRestartDetail': 'La plupart des éditeurs ne chargent les serveurs MCP qu’au démarrage. Dans Cursor / VS Code / Antigravity / Windsurf, vous pouvez lancer `Developer: Reload Window` depuis la palette de commandes au lieu de tout redémarrer. Zed et Claude Code nécessitent de quitter puis rouvrir.',
'settings.mcpCapabilitiesTitle': 'Ce que votre agent peut faire',
'settings.mcpCapabilityRead': 'Lire ou rechercher n’importe quel fichier dans un projet (HTML, JSX, CSS, JSON, SVG, Markdown).',
'settings.mcpCapabilityPull': 'Récupérer un bundle de design en un seul appel : le fichier d’entrée plus chaque variable CSS, composant et police référencé.',
'settings.mcpCapabilityDefault': 'Utiliser par défaut le projet et le fichier ouverts dans Open Design, afin que vous puissiez dire « intègre ce design dans mon application » sans repréciser quel design.',
'settings.mcpRunningNote': 'Open Design doit être lancé pour que les appels d’outils MCP réussissent. Si vous avez démarré votre agent de code avant d’ouvrir Open Design, redémarrez l’agent pour qu’il puisse joindre le daemon actif.',
'entry.tabDesigns': 'Designs',
'entry.tabTemplates': 'Modèles',
'entry.tabDesignSystems': 'Systèmes de design',
'entry.tabConnectors': 'Connecteurs',
'entry.openSettingsTitle': 'Paramètres',
'entry.openSettingsAria': 'Ouvrir les paramètres',
'entry.discordLabel': 'Rejoindre Discord',
'entry.discordAria': 'Rejoindre le Discord d’Open Design',
'entry.discordAriaWithOnline': 'Rejoindre le Discord d’Open Design - {online}',
'entry.discordOnlineLabel': '{count} en ligne',
'entry.followXLabel': 'Suivre @OpenDesignHQ sur X',
'entry.followThreadsLabel': 'Suivre Open Design sur Threads',
'entry.youtubeLabel': 'Open Design sur YouTube',
'entry.followInstagramLabel': 'Suivre @opendesign.ai sur Instagram',
'entry.followLinkedinLabel': 'Suivre Open Design sur LinkedIn',
'entry.followXiaohongshuLabel': 'Suivre Open Design sur Xiaohongshu',
'entry.resizeAria': 'Redimensionner la barre latérale',
'entry.loadingWorkspace': 'Chargement de l\'espace de travail…',
'entry.useEverywhereTitle': 'Utiliser partout',
'entry.useEverywhereAria': 'Ouvrir le guide « Utiliser partout » (CLI, MCP, HTTP, Skills)',
'entry.workspaceTeamsLabel': 'Équipes',
'workspaceSwitcher.team': 'Team',
'workspaceSwitcher.invite': 'Invite colleague',
'workspaceSwitcher.createTeam': 'New team',
'entry.workspaceTeamsTitle': 'Workspace pour les équipes — dites-nous ce dont votre équipe a besoin',
'entry.workspaceTeamsAria': 'Ouvrir la page Workspace pour les équipes',
'entry.navExpand': 'Afficher la barre latérale',
'entry.navCollapse': 'Masquer la barre latérale',
'entry.navNewProject': 'Nouveau projet',
'entry.navHome': 'Accueil',
'entry.navProjects': 'Projets',
'entry.navTasks': 'Automatisations',
'entry.navPlugins': 'Plugins',
'entry.navDesignSystems': 'Systèmes de design',
'entry.navBrands': 'Kit de marque',
'entry.navIntegrations': 'Intégrations',
'workspaceTabs.project': 'Projet',
'workspaceTabs.pluginDetails': 'Détails du plugin',
'workspaceTabs.marketplace': 'Place de marché',
'homeHero.title': 'Que concevrez-vous aujourd’hui ?',
'homeHero.startWithTemplate': 'Commencer avec un modèle…',
'homeHero.startBlankProject': '…ou démarrer un projet vierge',
'homeHero.templatePicker.label': 'Modèle',
'homeHero.templatePicker.searchPlaceholder': 'Rechercher des modèles',
'homeHero.templatePicker.projectTypes': 'Types de projet',
'homeHero.templatesScrollHint': 'Faites défiler vers le haut pour explorer plus de modèles',
'homeHero.templatesCollapse': 'Réduire les modèles',
'homeHero.subtitlePrefix': 'L’alternative open source à Claude Design.',
'homeHero.placeholder': 'Décrivez ce que vous voulez générer…',
'homeHero.placeholderActive': 'Modifiez la requête d’exemple ou écrivez la vôtre…',
'homeHero.carousel.hint': 'Joignez un fichier, liez votre design system ou décrivez ce que vous voulez créer',
'homeHero.carousel.onePageBrief': 'Rédiger un brief de projet d’une page',
'homeHero.carousel.notesToDeck': 'Transformer mes notes en présentation',
'homeHero.carousel.signupFlow': 'Maquetter un parcours d’inscription',
'homeHero.carousel.improveBrief': 'Améliorer un brief de projet existant',
'homeHero.carousel.loadingAnimation': 'Créer une animation de chargement',
'homeHero.carousel.teamUpdateSlides': 'Concevoir des diapositives pour un point d’équipe',
'homeHero.carousel.ordersDashboard': 'Prototyper un tableau de bord de suivi des commandes',
'homeHero.carousel.productDetail': 'Mettre en page une fiche produit',
'homeHero.carousel.caseStudy': 'Esquisser une étude de cas',
'homeHero.carousel.landingIntro': 'Concevoir une courte intro pour une page d’accueil',
'homeHero.carousel.pitchDeck': 'Créer un pitch deck pour un nouveau produit',
'homeHero.carousel.appIdea': 'Décrire une idée d’application',
'homeHero.carousel.landingLayout': 'Esquisser la mise en page d’une landing page',
'homeHero.skills': 'Skills',
'homeHero.addMenu': 'Ajouter du contexte',
'homeHero.addPlugin': 'Ajouter un plugin',
'homeHero.addConnectors': 'Ajouter des connecteurs',
'homeHero.addMcp': 'Ajouter un serveur MCP',
'homeHero.noPlugins': 'Aucun plugin installé',
'homeHero.noMcp': 'Aucun serveur MCP',
'homeHero.noConnectors': 'Aucun connecteur connecté',
'homeHero.applying': 'Application…',
'homeHero.pluginTitle': 'Plugin : {title}',
'homeHero.pluginPrefix': 'Plugin : {title}',
'homeHero.skillPrefix': 'Skill : {title}',
'homeHero.removePlugin': 'Retirer le plugin',
'homeHero.removePluginAria': 'Retirer le plugin {title}',
'homeHero.clearActivePlugin': 'Effacer le plugin actif',
'homeHero.clearActiveSkill': 'Effacer le Skill actif',
'homeHero.contextItemsResolved': '{n} éléments de contexte résolus',
'homeHero.removeFile': 'Retirer le fichier',
'homeHero.contextSearchResults': 'Résultats de recherche de contexte',
'homeHero.contextSurfaces': 'Surfaces de contexte',
'homeHero.loadingContext': 'Chargement du contexte…',
'homeHero.noResults': 'Aucun résultat pour « {query} ».',
'homeHero.searchPrompt': 'Rechercher des fichiers, plugins, Skills, serveurs MCP et connecteurs.',
'homeHero.parameters': '{n} paramètres',
'homeHero.details': 'Détails',
'homeHero.toRun': 'pour lancer',
'homeHero.forNewLine': 'pour passer à la ligne',
'homeHero.run': 'Lancer',
'homeHero.typeSomethingToRun': 'Saisissez quelque chose à lancer',
'homeHero.promptExamples': 'Exemples de prompts',
'homeHero.footer.designSystem': 'Style',
'homeHero.footer.autoDesignSystem': 'Auto',
'homeHero.footer.autoDesignSystemSummary': 'Associe automatiquement le système de design et le style visuel les plus adaptés au prompt actuel.',
'homeHero.footer.ratio': 'Ratio',
'homeHero.footer.duration': 'Durée',
'homeHero.footer.resolution': 'Résolution',
'homeHero.footer.speakerNotes': 'Notes',
'homeHero.footer.noSpeakerNotes': 'Sans notes',
'homeHero.footer.availableCount': '{n} disponibles',
'homeHero.footer.noMatches': 'Aucun résultat',
'homeHero.moreShortcuts': 'Plus',
'homeHero.railAria': 'Choisir une catégorie de projet ou un raccourci de démarrage',
'homeHero.subTypeAria': 'Choisir un sous-type',
'homeHero.confirmReplaceTitle': 'Remplacer le prompt actuel ?',
'homeHero.confirmReplaceBody': 'Utiliser {title} remplacera le texte actuellement dans le champ.',
'homeHero.confirmReplace': 'Remplacer',
'homeHero.chip.prototype': 'Prototype',
'homeHero.chip.liveArtifact': 'Artefact dynamique',
'homeHero.chip.deck': 'Présentation',
'homeHero.chip.image': 'Image',
'homeHero.chip.video': 'Vidéo',
'homeHero.chip.hyperframes': 'HyperFrames',
'homeHero.chip.audio': 'Audio',
'homeHero.chip.createBrandKit': 'Créer un kit de marque',
'homeHero.chip.createPlugin': 'Créer un plugin',
'homeHero.chip.figma': 'Depuis Figma',
'homeHero.chip.folder': 'Depuis un dossier',
'homeHero.chip.template': 'Depuis un modèle',
'homeHero.chip.liveArtifactHint': 'Créer un artefact HTML/CSS/JS interactif que vous pouvez prévisualiser en direct.',
'homeHero.chip.hyperframesHint': 'Créer du motion design basé sur HTML : sous-titres, visuels réactifs à l’audio, transitions de scènes.',
'homeHero.chip.createBrandKitHint': 'Extrayez un kit de marque depuis un site web, puis appliquez-le dans n’importe quel chat.',
'homeHero.chip.createPluginHint': 'Créer un plugin Open Design réutilisable et l’ajouter à Mes plugins.',
'homeHero.chip.figmaHint': 'Migrer une frame Figma vers le système de design actif.',
'homeHero.chip.folderHint': 'Importer un dossier local existant et continuer à l’éditer.',
'homeHero.chip.templateHint': 'Commencer depuis un modèle intégré.',
'homeHero.chip.wireframe': 'Maquette filaire',
'homeHero.chip.mobile': 'App mobile',
'homeHero.chip.document': 'Document',
'homeHero.chip.prototypeDesc': 'Maquettes d’app interactives',
'homeHero.chip.wireframeDesc': 'Écrans et parcours basse fidélité',
'homeHero.chip.mobileDesc': 'Écrans iOS et Android',
'homeHero.chip.deckDesc': 'Présentations et pitch decks',
'homeHero.chip.documentDesc': 'CV, rapports et PDF',
'homeHero.chip.imageDesc': 'Affiches, visuels et art',
'homeHero.chip.videoDesc': 'Clips, reels et promos',
'homeHero.chip.audioDesc': 'Voix off, musique et effets sonores',
'homeHero.chip.hyperframesDesc': 'Graphismes animés et boucles',
'homeHero.chip.liveArtifactDesc': 'Tableaux de bord live avec données',
'homeHero.chip.createBrandKitDesc': 'Extraire un système de design de marque',
'homeHero.chip.prototypeNext': 'Ouvrir un chat qui crée un prototype web cliquable haute fidélité à affiner étape par étape.',
'homeHero.chip.wireframeNext': 'Ouvrir un chat qui esquisse des écrans et parcours basse fidélité pour valider d’abord la structure.',
'homeHero.chip.mobileNext': 'Ouvrir un chat qui met en page des écrans mobiles pour iOS et Android.',
'homeHero.chip.deckNext': 'Ouvrir un chat qui crée une présentation que vous pouvez présenter et exporter.',
'homeHero.chip.documentNext': 'Ouvrir un chat qui rédige un document soigné — CV, rapport ou PDF.',
'homeHero.chip.imageNext': 'Ouvrir un chat qui génère des images fidèles à la marque et itérables.',
'homeHero.chip.videoNext': 'Ouvrir un chat qui produit une courte vidéo à affiner.',
'homeHero.chip.audioNext': 'Ouvrir un chat qui crée une voix off, de la musique ou des effets sonores.',
'homeWorkingDir.trigger': 'Choisir le dossier de travail',
'homeWorkingDir.pick': 'Choisir un dossier',
'homeWorkingDir.replace': 'Changer de dossier de travail',
'homeWorkingDir.recent': 'Dossiers récents',
'homeWorkingDir.recentEmpty': 'Aucun dossier récent',
'homeWorkingDir.clear': 'Retirer le dossier de travail',
'homeWorkingDir.hint': 'Autoriser l’agent à lire ce dossier local (sans l’importer dans les fichiers de design)',
'homeWorkingDir.missing': 'Ce dossier de travail n’existe plus — choisissez-en un autre',
'homeWorkingDir.applyFailed': 'Impossible de définir le dossier de travail — le dossier n’existe peut-être plus',
'workingDirPicker.title': 'Dossier',
'workingDirPicker.homeTitle': 'Enregistré dans le stockage local — cliquez pour choisir un dossier',
'workingDirPicker.processing': 'Traitement…',
'workingDirPicker.select': 'Stockage local',
'workingDirPicker.clearAria': 'Effacer le dossier de travail',
'workingDirPicker.replaceFailed': 'Impossible de remplacer le dossier de travail',
'workingDirPicker.unavailable': 'Le sélecteur de dossier n’est pas disponible dans cette build. Lancez l’app desktop pour choisir un dossier.',
'workingDirPicker.openUnavailable': 'Ouvrez ce projet dans l’app desktop pour afficher le dossier.',
'workingDirPicker.openFailed': 'Impossible d’afficher ce dossier',
'workingDirPicker.showInFileManager': 'Afficher dans le gestionnaire de fichiers',
'workingDirPicker.replace': 'Choisir un dossier…',
'workingDirPicker.recent': 'Dossiers récents',
'workingDirPicker.defaultLabel': 'Stockage local',
'handoff.toTarget': 'Transférer vers {target}',
'handoff.openInTarget': 'Ouvrir dans {target}',
'handoff.openAction': 'Ouvrir',
'handoff.menuTitle': 'Ouvrir avec quel logiciel ?',
'handoff.action': 'Transférer',
'handoff.fallbackTitle': 'Aucun éditeur trouvé dans $PATH - ouverture dans {target}',
'handoff.chooseTargetAria': 'Choisir la cible du transfert',
'handoff.optionsAria': 'Options de transmission',
'handoff.editorSection': 'Ouvrir avec un logiciel',
'handoff.cliSection': 'Copier pour la CLI',
'handoff.clickOpen': 'Cliquer pour ouvrir',
'handoff.framework': 'Stack cible',
'handoff.framework.react': 'React',
'handoff.framework.vue': 'Vue.js',
'handoff.framework.svelte': 'Svelte',
'handoff.framework.solid': 'SolidJS',
'handoff.framework.next': 'Next.js',
'handoff.framework.vanilla': 'JS',
'handoff.frameworkPrompt.react': 'React',
'handoff.frameworkPrompt.vue': 'Vue.js',
'handoff.frameworkPrompt.svelte': 'Svelte',
'handoff.frameworkPrompt.solid': 'SolidJS',
'handoff.frameworkPrompt.next': 'Next.js / React',
'handoff.frameworkPrompt.vanilla': 'JavaScript, HTML et CSS sans framework',
'handoff.amrWebsite': 'Ouvrir le site Open Design',
'handoff.copyPrompt': 'Copier le prompt',
'handoff.copyPromptForTarget': 'Copier le prompt pour {target}',
'handoff.copied': 'Copié',
'handoff.projectPathUnavailable': 'Le chemin du projet est encore en cours de chargement. Réessayez dans un instant.',
'handoff.copyFailed': 'L’écriture dans le presse-papiers a été bloquée. Réessayez dans un instant.',
'handoff.promptIntro': 'Continuez à partir de ce dossier de projet Open Design local :',
'handoff.promptTarget': 'Cible',
'handoff.promptCli': 'CLI',
'handoff.promptStepsLead': 'Vous reprenez la main dans {cli}. Suivez ces étapes :',
'handoff.promptReadFiles': 'Entrez dans ce répertoire ou lisez-le d’abord. Priorisez DESIGN.md, README, le HTML/CSS/JS existant, les assets et package.json s’ils sont présents.',
'handoff.promptKeepDesign': 'Préservez le design visuel actuel, la mise en page, les interactions et les assets. Ne vous arrêtez pas à un plan.',
'handoff.promptProduceCode': 'Générez ou modifiez du code {framework} réel et exécutable. Si le projet a déjà une stack plus claire, signalez le conflit et gardez un résultat exécutable.',
'handoff.promptVerify': 'Terminez en me donnant les commandes d’exécution, de prévisualisation et de vérification.',
'handoff.promptCommandHint': 'Pour démarrer depuis le répertoire du projet, utilisez :',
'handoff.promptProject': 'Projet',
'handoff.promptProjectId': 'ID du projet',
'handoff.notInstalled': 'Non détecté',
'handoff.notDetectedTitle': '{target} - non détecté dans $PATH',
'designSystemPicker.select': 'Choisir un système de design',
'designSystemPicker.loading': 'Chargement des systèmes de design…',
'designSystemPicker.searchPlaceholder': 'Rechercher des systèmes de design (titre / catégorie / résumé)',
'designSystemPicker.searchCompactPlaceholder': 'Rechercher des systèmes de design',
'designSystemPicker.noneTitle': 'Aucun système de design',
'designSystemPicker.noneSummary': 'Laisser le modèle choisir librement',
'designSystemPicker.empty': 'Aucun système de design correspondant',
'designSystemPicker.openPreview': 'Ouvrir l’aperçu',
'designSystemPicker.loadingPreview': 'Chargement de l’aperçu…',
'designSystemPicker.noPreview': 'Aucune page d’aperçu. Ouvrez Systèmes de design pour voir l’aperçu complet.',
'designSystemPicker.previewHint': 'Survolez un système de design pour le prévisualiser',
'designSystemPicker.fullscreenAria': 'Aperçu plein écran de {title}',
'designSystemPicker.closeFullscreen': 'Fermer l’aperçu plein écran',
'designSystemPicker.closeEsc': 'Fermer (Esc)',
'designSystemPicker.previewFrameTitle': 'Aperçu de {title}',
'designSystemPicker.fullscreenFrameTitle': 'Aperçu plein écran de {title}',
'recentProjects.title': 'Projets récents',
'recentProjects.viewAll': 'Tout voir',
'recentProjects.empty': 'Aucun projet pour l’instant — saisissez un prompt pour en créer un.',
'pluginsHome.title': 'Communauté',
'pluginsHome.subtitle': 'Workflows Open Design prêts à l’emploi, intégrés à ce runtime. Choisissez-en un pour charger un prompt de départ, ou parcourez le registre pour en trouver d’autres.',
'pluginsHome.browseRegistry': 'Parcourir le registre',
'pluginsHome.count': '{filtered} sur {total}',
'pluginsHome.loadingCatalog': 'Chargement du catalogue…',
'pluginsHome.emptyCatalog': 'Le catalogue est vide. Les plugins intégrés sont fournis avec Open Design et devraient apparaître ici automatiquement — essayez de redémarrer le daemon si cela persiste.',
'pluginsHome.emptyFiltered': 'Aucun plugin ne correspond aux filtres actuels.',
'pluginsHome.clearFilters': 'Effacer les filtres',
'pluginsHome.modeAria': 'Mode du plugin',
'pluginsHome.featured': 'Enregistrés',
'pluginsHome.totalInCatalog': '{n} dans le catalogue',
'pluginsHome.categoryFilterAria': 'Filtre de catégorie',
'pluginsHome.subcategoryFilterAria': 'Filtre de sous-catégorie {label}',
'pluginsHome.allCategory': 'Tous les {label}',
'pluginsHome.searchPlaceholder': 'Rechercher des plugins…',
'pluginsHome.searchAria': 'Rechercher des plugins',
'pluginsHome.clearSearch': 'Effacer la recherche',
'pluginsHome.sortAria': 'Ordre de tri',
'pluginsHome.sortHot': 'Tendances',
'pluginsHome.sortNewest': 'Les plus récents',
'pluginsHome.facet.import': 'Importer',
'pluginsHome.facet.create': 'Créer',
'pluginsHome.facet.export': 'Exporter',
'pluginsHome.facet.share': 'Partager',
'pluginsHome.facet.deploy': 'Déployer',
'pluginsHome.facet.refine': 'Affiner',
'pluginsHome.facet.extend': 'Étendre',
'pluginsHome.facet.figma': 'Figma',
'pluginsHome.facet.github': 'GitHub',
'pluginsHome.facet.codeFolder': 'Code / dossier',
'pluginsHome.facet.url': 'URL',
'pluginsHome.facet.screenshot': 'Capture d’écran',
'pluginsHome.facet.pdf': 'PDF',
'pluginsHome.facet.pptx': 'PPTX',
'pluginsHome.facet.framer': 'Framer',
'pluginsHome.facet.webflow': 'Webflow',
'pluginsHome.facet.slides': 'Diapositives',
'pluginsHome.facet.publicLink': 'Lien public',
'pluginsHome.facet.githubPr': 'PR GitHub',
'pluginsHome.facet.githubGist': 'Gist GitHub',
'pluginsHome.subfacet.business-dashboards': 'Tableaux de bord',
'pluginsHome.subfacet.app-prototypes': 'Applis',
'pluginsHome.subfacet.landing-marketing': 'Pages d’atterrissage / marketing',
'pluginsHome.subfacet.developer-tools': 'Outils développeur',
'pluginsHome.subfacet.docs-reports': 'Docs / rapports',
'pluginsHome.subfacet.brand-design': 'Marque / design',
'pluginsHome.subfacet.pitch-business': 'Pitch / business',
'pluginsHome.subfacet.course-training': 'Cours / formation',
'pluginsHome.subfacet.reports-briefings': 'Rapports / synthèses',
'pluginsHome.subfacet.product-sales': 'Produit / ventes',
'pluginsHome.subfacet.engineering-talks': 'Présentations techniques',
'pluginsHome.subfacet.creative-decks': 'Présentations créatives',
'pluginsHome.subfacet.ui-product-mockups': 'UI / maquettes de produit',
'pluginsHome.subfacet.brand-visuals': 'Marque / logo',
'pluginsHome.subfacet.storyboards-motion-refs': 'Storyboards',
'pluginsHome.subfacet.social-content': 'Social / contenu',
'pluginsHome.subfacet.avatar-portrait': 'Avatar / portrait',
'pluginsHome.subfacet.illustration-style': 'Illustration / style',
'pluginsHome.subfacet.motion-effects': 'Motion / effets',
'pluginsHome.subfacet.social-short-form': 'Social / formats courts',
'pluginsHome.subfacet.marketing-product': 'Marketing / produit',
'pluginsHome.subfacet.data-explainers': 'Données / explications',
'pluginsHome.subfacet.cinematic-story': 'Cinématique / récit',
'pluginsView.lede': 'Parcourez les workflows installés, découvrez les entrées du registre, gérez les sources et préparez les plugins pour une distribution d’équipe.',
'pluginsView.importPlugin': 'Importer un plugin',
'pluginsView.agentContext': 'Contexte agent',
'pluginsView.summaryAria': 'Résumé des plugins',
'pluginsView.areasAria': 'Zones des plugins',
'pluginsView.loading': 'Chargement des plugins…',
'pluginsView.tab.installed': 'Installés',
'pluginsView.tab.available': 'Disponibles',
'pluginsView.tab.sources': 'Sources',
'pluginsView.tab.team': 'Équipe',
'pluginsView.tabHint.installed': 'Vos plugins',
'pluginsView.tabHint.available': 'Depuis les sources',
'pluginsView.tabHint.sources': 'Catalogues',
'pluginsView.tabHint.team': 'Entreprise',
'pluginsView.installedTitle': 'Plugins installés',
'pluginsView.installedSubtitle': 'Plugins que vous avez importés ou installés depuis des sources de marketplace.',
'pluginsView.installedEmpty': 'Aucun plugin utilisateur installé pour l’instant. Utilisez Créer / Importer ou installez une entrée disponible.',
'pluginsView.availableTitle': 'Disponibles depuis les sources',
'pluginsView.availableSubtitle': 'Entrées de catalogue découvertes depuis les marketplaces configurées.',
'pluginsView.availableFiltersAria': 'Filtres des plugins disponibles',
'pluginsView.searchAvailableAria': 'Rechercher des plugins disponibles',
'pluginsView.searchAvailablePlaceholder': 'Rechercher des plugins disponibles',
'pluginsView.clearAvailableSearch': 'Effacer la recherche de plugins disponibles',
'pluginsView.source': 'Source',
'pluginsView.availableEmptyInstalled': 'Aucune entrée disponible pour l’instant. Les entrées installées sont retirées de Disponibles ; désinstallez-en une pour la rendre de nouveau disponible.',
'pluginsView.availableEmptyFiltered': 'Aucune entrée disponible ne correspond à vos filtres.',
'pluginsView.availableEmptyNoSources': 'Aucune entrée disponible pour l’instant. Ajoutez une source dans l’onglet Sources.',
'pluginsView.installing': 'Installation…',
'pluginsView.install': 'Installer',
'pluginsView.sourcesTitle': 'Sources du registre',
'pluginsView.sourcesSubtitle': 'Catalogues de marketplaces qui alimentent les plugins disponibles.',
'pluginsView.sourceUrl': 'URL de la source',
'pluginsView.defaultTrust': 'Confiance par défaut',
'pluginsView.trust.restricted': 'Restreinte',
'pluginsView.trust.trusted': 'Fiable',
'pluginsView.trust.official': 'Officielle',
'pluginsView.adding': 'Ajout…',
'pluginsView.addSource': 'Ajouter une source',
'pluginsView.sourcesEmpty': 'Aucune source de registre configurée pour l’instant.',
'pluginsView.pluginsCount': '{n} plugins',
'pluginsView.catalogVersion': 'catalogue v{version}',
'pluginsView.trustFor': 'Confiance pour {name}',
'pluginsView.refreshing': 'Actualisation…',
'pluginsView.removing': 'Suppression…',
'pluginsView.teamTitle': 'Marketplaces privées d’équipe',
'pluginsView.teamBody': 'Cette zone est réservée aux catalogues entreprise et équipe, aux politiques de confiance privées et aux contrôles partagés du cycle de vie des plugins.',
'pluginCard.details': 'Détails',
'pluginCard.use': 'Utiliser',
'pluginCard.useWithQuery': 'Utiliser avec une requête',
'pluginCard.applying': 'Application…',
'pluginCard.duplicate': 'Remix',
'pluginCard.duplicating': 'Remixage…',
'pluginCard.duplicateFailed': 'Impossible de remixer ce modele.',
'pluginCard.saved': 'Enregistré',
'pluginCard.publish': 'Publier',
'pluginCard.contribute': 'Contribuer',
'pluginCard.starting': 'Démarrage…',
'pluginCard.detailsAria': 'Voir les détails de {title}',
'pluginCard.chooseUseAria': 'Choisir comment utiliser {title}',
'pluginCard.useOptionsAria': 'Options d’utilisation pour {title}',
'pluginCard.duplicateAria': 'Remixer {title} dans un nouveau projet',
'pluginCard.saveAria': 'Enregistrer {title}',
'pluginCard.savedAria': '{title} est enregistré',
'pluginCard.shareAria': 'Partager {title}',
'pluginCard.publishAria': 'Publier {title} comme dépôt GitHub',
'pluginCard.publishTitle': 'Publier le plugin comme dépôt GitHub',
'pluginCard.contributeAria': 'Soumettre {title} à Open Design',
'pluginCard.contributeTitle': 'Soumettre le plugin à Open Design via une pull request',
'skillPluginCandidate.createForMe': 'Créer un plugin/modèle',
'skillPluginCandidate.contributeToMain': 'Contribuer à open-design',
'skillPluginCandidate.repoDescription': 'Ce dépôt semble pouvoir fonctionner comme plugin.',
'integrations.kicker': 'Intégration',
'integrations.lede': 'Connectez des systèmes externes, ajoutez des outils MCP à votre boucle agent et utilisez Open Design depuis d’autres IDE, scripts et automatisations.',
'integrations.agentReady': 'Prêt pour les agents',
'integrations.areasAria': 'Zones d’intégration',
'integrations.tabLabel.mcp': 'MCP',
'integrations.tabLabel.skills': 'Skills',
'integrations.tabHint.mcp': 'Outils externes',
'integrations.tabHint.connectors': 'Comptes et API',
'integrations.tabHint.useEverywhere': 'CLI, HTTP, MCP',
'integrations.skillsTitle': 'Intégrations de Skills',
'integrations.skillsBody': 'La gestion des intégrations au niveau des Skills est en cours de reprise depuis une autre branche. Cet onglet est réservé afin que MCP, les connecteurs et la future configuration des Skills vivent dans la même route Intégrations.',
'mcpClient.title': 'Serveurs MCP externes',
'mcpClient.subtitle': 'Outils tiers pour votre agent de code.',
'mcpClient.addServer': 'Ajouter un serveur',
'mcpClient.emptyTitle': 'Aucun serveur MCP configuré.',
'mcpClient.emptyBody': 'Cliquez sur « Ajouter un serveur » pour commencer — choisissez un modèle (Higgsfield OpenClaw, Pollinations, Allyson, Imagician, EdgeOne Pages, GitHub, Filesystem…) ou configurez un serveur stdio / HTTP personnalisé.',
'mcpClient.saveChanges': 'Enregistrer les modifications',
'mcpClient.storedAt': 'Stocké dans',
'mcpClient.daemonError': 'Impossible de joindre le daemon local. Vérifiez qu’Open Design est lancé, puis rouvrez ce panneau.',
'mcpClient.saveFailed': 'Échec de l’enregistrement. Vérifiez que le daemon est lancé, puis réessayez.',
'useEverywhere.modalAria': 'Utiliser Open Design partout',
'useEverywhere.modalTitle': 'Utiliser Open Design partout',
'useEverywhere.modalSubtitle': 'Ajoutez Open Design à n’importe quel IDE, agent ou script — CLI, HTTP, MCP et Skills. Utilisez « Copier le guide pour un agent » puis collez-le dans Claude Code, Codex, Cursor, openclaw ou hermes pour tout configurer.',
'useEverywhere.closeAria': 'Fermer Utiliser partout',
'useEverywhere.closeTitle': 'Fermer (Échap)',
'useEverywhere.tabsAria': 'Surfaces d’intégration',
'useEverywhere.footStrong': 'Transfert en un clic.',
'useEverywhere.footBody': 'Copie un guide Markdown structuré que votre agent peut exécuter immédiatement — installer, vérifier et utiliser.',
'useEverywhere.configureMcp': 'Configurer le serveur MCP',
'useEverywhere.copyGuide': 'Copier le guide pour un agent',
'useEverywhere.copy': 'Copier',
'useEverywhere.copied': 'Copié',
'useEverywhere.copyFailed': 'Échec de la copie',
'useEverywhere.copySnippetAria': 'Copier l’extrait : {label}',
'useEverywhere.section.overview.tab': 'Vue d’ensemble',
'useEverywhere.section.overview.heading': 'Open Design fonctionne partout où votre agent fonctionne',
'useEverywhere.section.overview.intro': 'Open Design est plus qu’une fenêtre : c’est un daemon local privilégié (`od`) plus un registre de Skills, systèmes de design et Atoms. Une fois lancé sur votre machine, tout agent de code (Claude Code, Codex, Cursor, OpenCode/openclaw, Hermes ou votre propre script) peut piloter des générations, inspecter les projets et produire des artefacts de design via quatre surfaces interchangeables.',
'useEverywhere.section.overview.bullet1': 'CLI — `od <command>` pour scripts sans interface, CI et automatisation shell.',
'useEverywhere.section.overview.bullet2': 'Serveur MCP — expose Open Design comme serveur Model Context Protocol afin que tout agent compatible MCP puisse lister les Skills, lancer des scénarios et lire les artefacts.',
'useEverywhere.section.overview.bullet3': 'API HTTP — endpoints REST + SSE `http://127.0.0.1:7456/api/*` ; la même surface que celle utilisée par l’UI web.',
'useEverywhere.section.overview.bullet4': 'Skills — packs `SKILL.md` prêts à déposer (compatibles Claude) que les agents avec chargement natif des Skills peuvent utiliser directement ; les autres agents y accèdent via Open Design.',
'useEverywhere.section.overview.bullet5': 'Artefacts standards — amorcez de vrais projets HTML depuis les Skills, les plugins par défaut intégrés et les exemples de plugins communautaires avant le démarrage du daemon.',
'useEverywhere.section.overview.snippet1': 'Démarrer le daemon (et l’UI web) localement',
'useEverywhere.section.overview.snippet2': 'Confirmer qu’il est joignable',
'useEverywhere.section.overview.snippet3': 'Ingérer les artefacts standards avant le démarrage',
'useEverywhere.section.overview.footer': 'Par défaut, le daemon écrit dans `./.od/` (local au projet). Définissez `OD_DATA_DIR=~/.open-design` pour partager les données entre projets.',
'useEverywhere.section.cli.tab': 'CLI · od',
'useEverywhere.section.cli.heading': 'Piloter Open Design depuis n’importe quel shell',
'useEverywhere.section.cli.intro': 'Le binaire `od` est fourni avec le daemon et c’est le même binaire qu’utilisent Claude Code / Codex lorsqu’ils lancent une génération. La plupart des sous-commandes sont de fins clients qui POSTent vers le daemon local ; elles fonctionnent donc de la même façon, que vous l’ayez lancé via `pnpm tools-dev` ou comme app packagée.',
'useEverywhere.section.cli.bullet1': '`od` (sans argument) — démarre le daemon et ouvre l’UI web.',
'useEverywhere.section.cli.bullet2': '`od media generate ...` — produit des octets image / vidéo / audio via le protocole média unifié.',
'useEverywhere.section.cli.bullet3': '`od run ...` — démarre une exécution de projet depuis un prompt + un Skill.',
'useEverywhere.section.cli.bullet4': '`od plugin install <source>` / `od plugin apply <id>` — installe et applique des plugins communautaires.',
'useEverywhere.section.cli.bullet5': '`od skills list` / `od design-systems list` — inspecte ce qui est disponible localement.',
'useEverywhere.section.cli.bullet6': '`od status` / `od doctor` — vérifie la santé du daemon et détecte les CLI d’agents dans votre PATH.',
'useEverywhere.section.cli.snippet1': 'Générer une image (délègue au fournisseur média configuré)',
'useEverywhere.section.cli.snippet2': 'Lancer un plugin de scénario en mode sans interface et streamer les événements en lignes JSON',
'useEverywhere.section.cli.snippet3': 'Inventorier les Skills et systèmes de design disponibles localement',
'useEverywhere.section.cli.snippet4': 'Vérifier les artefacts amorcés via la CLI',
'useEverywhere.section.cli.snippet5': 'Vérifier l’environnement + les agents détectés (Claude, Codex, Cursor, …)',
'useEverywhere.section.cli.footer': 'Toutes les sous-commandes acceptent `--daemon-url http://127.0.0.1:<port>` pour cibler un daemon en cours d’exécution précis — utile avec une deuxième instance sandboxée pour les tests.',
'useEverywhere.section.mcp.tab': 'Serveur MCP',
'useEverywhere.section.mcp.heading': 'Exposer Open Design comme serveur MCP à tout agent de code',
'useEverywhere.section.mcp.intro': 'Open Design fournit un serveur Model Context Protocol (`od mcp`) qui permet à tout client compatible MCP — Cursor, Claude Code, Antigravity, VS Code Copilot Chat, openclaw, hermes — de découvrir les outils Open Design (lister les Skills, générer des aperçus, générer des médias, lancer des plugins) sans exécuter manuellement de commandes shell. Le daemon publie un extrait d’installation prêt à coller via `GET /api/mcp/install-info` pour chaque grand client.',