Oregami
Repositories/oxedyne/daimond

oxedyne/daimond/www/i18n/fr.js

230 KiB, 3 runs

created by r2519314175:1327, which is this file's identity for as long as the history lasts, whatever it is later renamed to

download · who wrote it · its history

1/* i18n/fr.js — French. Machine-drafted from `en.js`; pending native review.
2 *
3 * The keys are the baseline's, unchanged. Product nouns are not translated:
4 * Daimond, Diamond, Daimond Pro, Hands, Stripe. Register is "vous". Quotation
5 * marks around a button's name are the French « … ».
6 */
7(function () {
8 'use strict';
9 if (!window.DaimondI18n) return;
10
11 window.DaimondI18n.register('fr', {
12
13 // ── Shared words ───────────────────────────────────────────
14 'common.close': 'Fermer',
15 'common.close_named': 'Fermer {name}',
16 'admin.close_drawer': 'Fermer le panneau Admin',
17 'rail.close_rail': 'Fermer le panneau Diamonds',
18 'sheet.close': 'Fermer la feuille',
19 'pal.close': 'Fermer la boîte Aller à',
20 'common.dismiss': 'Fermer',
21 'agents.read': 'Lire',
22 'agents.read_help': 'Ouvrir la transcription de cet agent comme un fichier dans le panneau Doc',
23 'agents.read_nothing': 'Cet agent n’a encore rien dit.',
24 'common.close_panel': 'Fermer le panneau',
25 'common.refresh': 'Actualiser',
26 'common.copy': 'Copier',
27 'common.cancel': 'Annuler',
28 'common.save': 'Enregistrer',
29
30 // Copying an identifier. `copy.aria` wraps each `what_` so a reader hears
31 // "Copier l’identifiant du build" rather than five buttons all called Copier.
32 'copy.aria': 'Copier {what}',
33 'copy.failed': 'Copie impossible',
34 'copy.nothing': 'Rien à copier',
35 'copy.what_build': 'l’identifiant du build',
36 'copy.what_build_n': 'l’identifiant du build {id}',
37 'copy.what_fingerprint': 'l’empreinte de votre compte',
38 'copy.what_device': 'l’identifiant de {name}',
39 'copy.what_model': 'l’identifiant du modèle {id}',
40 'copy.what_default_model': 'l’identifiant du modèle par défaut',
41 'copy.what_handle': 'votre nom public',
42
43 // ── The top bar ────────────────────────────────────────────
44 'topbar.menu': 'Menu',
45 'topbar.open_menu': 'Ouvrir le menu',
46 'topbar.brand': 'Daimond, la page d’accueil de daimond.app',
47 'topbar.made_by': 'Réalisé par Oxedyne',
48 'topbar.made_with_ai': 'Code réalisé surtout avec de l’IA',
49 'topbar.up_to_date': 'Daimond est à jour',
50 'topbar.about': 'À propos de Daimond',
51 'topbar.guide': 'Ouvrir le guide d’utilisation',
52 'topbar.guide_short': 'Guide',
53 'topbar.appearance': 'Apparence et disposition',
54
55 // ── À propos ───────────────────────────────────────────────
56 // `about.what` est le paragraphe d’ouverture du guide : il le dit déjà, et
57 // une seconde formulation serait une seconde à tenir à jour.
58 'about.title': 'À propos de Daimond',
59 'about.splash_alt': 'Une silhouette vole dans la nuit vers un diamant, au-dessus de la courbe d’une planète.',
60 'about.what': 'Daimond est un espace de travail à agents IA qui tourne dans votre navigateur. Aucun compte sur un serveur, rien à télécharger. Vos chats, vos clés et vos fichiers restent sur cet appareil.',
61 'about.verify': 'Vérifier ce build par rapport au code source publié',
62
63 // ── Panel names ────────────────────────────────────────────
64 'panel.rail': 'Diamonds',
65 'panel.ai': 'IA',
66 'panel.web': 'Web',
67 'panel.doc': 'Doc',
68 'panel.preview': 'Aperçu',
69 'panel.msg': 'Message e-mail',
70 'panel.tools': 'Outils',
71 'panel.compose': 'Rédiger',
72 'panel.graph': 'Graphe',
73 'panel.agents': 'Agents',
74 'panel.mail': 'E-mail',
75 'panel.work': 'Espace',
76 'panel.spend': 'Dépenses',
77 'panel.term': 'Terminal',
78
79 // ── The chip row ───────────────────────────────────────────
80 'chip.dock_full': 'Le dock est plein. Choisissez une grille plus grande dans Apparence, ou fermez un panneau.',
81 'chip.show': 'Afficher {name}',
82 'chip.close': 'Fermer {name}',
83 'chip.open': 'Ouvrir {name}',
84 'chip.open_instead': 'Ouvrir {name} à la place du panneau à côté du chat',
85 'chip.more.one': '{n} autre panneau',
86 'chip.more.other': '{n} autres panneaux',
87
88 // ── The panel gallery and the command palette ──────────────
89 'gallery.title': 'Panneaux',
90 'pal.title': 'Aller à',
91 'pal.placeholder': 'Aller à un panneau, ou à un réglage…',
92 'pal.results': 'Résultats',
93 'pal.nothing': 'Aucun résultat.',
94 'pal.kind_panel': 'Panneau',
95 'pal.kind_theme': 'Thème',
96 'pal.kind_size': 'Taille',
97 'pal.kind_dock': 'Dock',
98 'pal.kind_lang': 'Langue',
99 'pal.kind_ccy': 'Devise',
100 'pal.hint_open': 'ouvert',
101 'pal.hint_full': 'dock plein',
102 'pal.hint_current': 'actuel',
103
104 // ── The rail ───────────────────────────────────────────────
105 'rail.diamonds': 'Diamonds',
106 'rail.diamonds_help': 'Une méthode reproductible, distillée d’une conversation.',
107 'rail.new_diamond': 'Nouveau Diamond',
108 'rail.unnamed_diamond': 'Diamond sans nom',
109 'rail.chats': 'Chats',
110 'rail.chats_help': 'Conversation brute. Un Diamond y est taillé.',
111 'rail.new_chat': 'Nouveau chat',
112 'rail.chats_menu': 'Plus',
113 'rail.delete_all_chats': 'Supprimer tous les chats',
114 'layout.handle': 'Glissez pour redimensionner, double-cliquez pour réinitialiser',
115
116 // ── Admin ──────────────────────────────────────────────────
117 'admin.identity': 'Votre identité Daimond',
118 'admin.settings': 'Réglages',
119 'admin.local_identity': 'Identité locale',
120 'admin.account_help': 'Votre compte. Cliquez pour la déconnexion, la phrase secrète et la sauvegarde.',
121 'admin.locked': 'Verrouillé',
122 'admin.locked_help': 'Verrouillé. Saisissez votre phrase secrète pour déverrouiller.',
123 'admin.no_account': 'Pas de compte',
124 'admin.no_account_help': 'Votre clé d’API est stockée sans chiffrement. Cliquez pour créer un compte et la chiffrer.',
125 'admin.no_crypto_help': 'Ce navigateur n’a pas WebCrypto : les clés ne peuvent pas être chiffrées ici.',
126 'admin.version_history': 'Historique des versions',
127
128 // ── Models and provider keys ───────────────────────────────
129 'models.lead': 'Une clé par fournisseur que vous utilisez. Les nouveaux chats et Diamonds démarrent sur le modèle par défaut ; n’importe quel modèle peut être choisi pour un chat donné.',
130 'models.add': '+ Ajouter un fournisseur',
131 'models.provider': 'Fournisseur',
132 'models.choose_provider': 'Choisissez un fournisseur…',
133 'models.custom_provider': 'Personnalisé (avancé)…',
134 'models.base_url': 'URL de base',
135 'models.api_key': 'Clé d’API',
136 'models.api_key_ph': 'Collez votre clé d’API',
137 'models.default_model': 'Modèle par défaut',
138 'models.choose_provider_first': 'Choisissez d’abord un fournisseur…',
139 'models.model_id_ph': 'Identifiant du modèle (saisie manuelle)',
140 'models.default_note': 'Les nouveaux agents utilisent ce modèle, sauf si vous leur en choisissez un autre.',
141 'models.save_start': 'Enregistrer et démarrer',
142 'models.privacy': '<strong>Tout reste sur cet appareil.</strong> Vos clés, vos chats et vos fichiers ne vivent que dans ce navigateur, et rien ne nous est envoyé.',
143
144 // ── Search ─────────────────────────────────────────────────
145 // « Moteur de recherche » désigne le service, pas l'action de chercher.
146 // Les noms des moteurs (Brave, Exa, Tavily, Serper) sont des noms propres
147 // et ne se traduisent pas. `search.kind_academic` ne dit pas « Recherche »,
148 // qui serait le titre du panneau : le sens visé est celui des travaux
149 // universitaires.
150 'search.head': 'Recherche',
151 'search.engine': 'Moteur de recherche',
152 // Un quota gratuit, pas une clé gratuite : au-delà, c'est le fournisseur qui
153 // facture l'utilisateur. Volontairement sans chiffre et sans nommer de moteur.
154 'search.engine_note': 'Le service avec lequel Daimond cherche. La plupart donnent un quota gratuit chaque mois si vous apportez votre propre clé.',
155 'search.credits': 'Crédits Daimond',
156 'search.key': 'Clé d’API',
157 'search.key_note': 'Gardée sur cet appareil, scellée par votre phrase secrète, et envoyée seulement avec la recherche qu’elle paie.',
158 // {engine} est un nom propre, par exemple Brave, et ne se traduit pas.
159 'search.no_key': 'Ajoutez une clé pour {engine}, ou passez aux crédits Daimond.',
160 'search.kind_web': 'Web',
161 'search.kind_news': 'Actualités',
162 'search.kind_academic': 'Universitaire',
163 'search.refused_serper': '{engine} ne peut être utilisé qu’avec votre propre clé.',
164 // {n} arrive déjà formaté ; n'ajoutez aucun séparateur. La réserve de la fin
165 // reste : c'est le tarif d'un tiers et il vieillira.
166 'search.free_month': '{engine} : environ {n} recherches gratuites par mois, la dernière fois que nous avons vérifié.',
167
168 // ── Credits, packs and Pro ─────────────────────────────────
169 'credits.lead': 'Achetez des crédits et Daimond fait tourner le modèle pour vous, sans clé de fournisseur à gérer. Sans abonnement. Ce que vous achetez vous reste, et rien n’est prélevé à nouveau, sauf si vous activez la recharge automatique.',
170 'credits.balance': 'Solde : {amount}',
171 'credits.balance_unavailable': 'Solde indisponible.',
172 'credits.see_spend': 'Voir où vont vos dépenses →',
173 'credits.offline': 'Le service de comptes Daimond est injoignable : les crédits sont indisponibles. Votre propre clé de fournisseur fonctionne toujours.',
174 'credits.need_account': 'Les crédits vous permettent d’utiliser Daimond sans clé de fournisseur. Ils demandent un compte : une phrase secrète gardée sur cet appareil.',
175 'credits.need_passcode': 'Les credits necessitent un compte, et cette passerelle n\'en ouvre pas de nouveau tant que la beta est fermee. Utilisez un code ci-dessus pour en ouvrir un.',
176 'credits.create_account': 'Créer un compte',
177 'credits.added': 'Crédits ajoutés',
178 'credits.now': 'Votre solde est maintenant de {amount}.',
179 'pro.owned': '<b>Vous avez Daimond Pro.</b> La synchronisation entre appareils, le stockage en ligne et l’e-mail sont actifs. Sans abonnement, et rien ne se renouvelle.',
180 'pro.offer': '<p><b>Daimond Pro, pour cinq ans.</b> Un paiement. Pro active la synchronisation entre appareils, le stockage en ligne et l’e-mail, de sorte que votre courrier est lu et envoyé dans l’espace de travail.</p>',
181 'pro.fine': 'Sans abonnement, et rien ne se renouvelle. L’usage mesuré (inférence, bande passante, stockage au-delà du palier gratuit) est payé avec des crédits, que vous ayez Pro ou non.',
182 'pro.buy': 'Acheter cinq ans de Pro',
183 'pro.buy_priced': 'Acheter cinq ans de Pro pour {price}',
184 'billing.usd_note': 'Vous êtes facturé en dollars américains (USD) ; le montant converti est approximatif.',
185 'billing.rates_as_of': 'Taux au {date}, approximatifs.',
186
187 // ── The closed beta and its passcode ───────────────────────
188 'beta.title': 'Bêta fermée',
189 'beta.title_unavailable': 'Aucun compte n’a été créé',
190 'beta.title_plain': 'Code de bêta',
191 'beta.lead_beta_only': 'Ce serveur n’ouvre pas encore de nouveaux comptes. C’est le compte qui est fermé, pas l’application : Daimond est gratuit, fonctionne dans votre navigateur et marche sans aucun compte avec votre propre clé de fournisseur. Un compte ajoute des crédits et de l’inférence achetée pour vous, vous n’avez donc pas besoin de votre propre clé. La synchronisation entre appareils et l’e-mail Daimond font partie de Pro, qui s’achète à part.',
192 'beta.lead_unavailable': 'Ce serveur n’a pas pu dire s’il accepte de nouveaux comptes, il n’en a donc créé aucun. Votre appareil n’a rien d’anormal, et Daimond fonctionne entre-temps avec votre propre clé de fournisseur. Réessayez dans un instant.',
193 'beta.lead_no_reason': 'Cet appareil n’a pas encore de compte Daimond.',
194 'beta.have_code': 'Si Oxedyne vous a envoyé un code de bêta, saisissez-le ici. Il vaut une fois, sur cet appareil.',
195 'beta.no_code': 'Pas de code ? Les places de chaque vague de test sont attribuées sur candidature.',
196 'beta.apply': 'Candidater pour tester Daimond',
197 'beta.code': 'Code',
198 'beta.code_ph': 'abcd-efgh-ijkl',
199 'beta.redeem': 'Utiliser le code',
200 'beta.redeeming': 'Validation…',
201 'beta.try_again': 'Réessayer',
202 'beta.enter_code': 'Saisir un code',
203 'beta.still_closed': 'Toujours pas de compte. Le serveur a donné la même réponse.',
204 'beta.err_enter_code': 'Saisissez le code qui vous a été envoyé.',
205 'beta.err_locked': 'Déverrouillez Daimond d’abord : un code s’utilise sur la clé de cet appareil.',
206 'beta.err_no_identity': 'Cet appareil n’a pas d’identité sur laquelle utiliser un code. Créez-en une d’abord.',
207 'beta.err_unknown': 'Ce code n’est pas l’un des nôtres. Vérifiez-le caractère par caractère — douze caractères, en trois groupes.',
208 'beta.err_spent': 'Ce code a déjà été utilisé. Chacun vaut une fois, sur un seul appareil.',
209 'beta.err_expired': 'Ce code a expiré. Demandez-en un autre à Oxedyne.',
210 'beta.err_throttled': 'Trop de tentatives depuis cette connexion. Attendez un moment et réessayez.',
211 'beta.err_generic': 'Ce code n’a pas été accepté.',
212 'beta.err_unreachable': 'Le service de comptes Daimond n’a pas pu être joint : le code n’a donc pas été consommé. Réessayez dans un instant.',
213 'beta.done_title': 'Vous y êtes',
214 'beta.done_pro': 'Cet appareil a un compte Daimond, et Pro est actif dessus : synchronisation entre appareils, stockage en ligne et e-mail.',
215 'beta.done_plain': 'Cet appareil a un compte Daimond. L’application fonctionne entièrement, et les crédits achètent l’inférence pour vous : aucune clé de fournisseur n’est nécessaire. La synchronisation entre appareils, le stockage en ligne et l’e-mail sont ce que Pro ajoute — achetez-le quand vous en avez besoin.',
216 'beta.done_handle': 'Les autres voient ce compte sous le nom {handle}.',
217 'beta.done_not_signed_in': 'Le code a été consommé et le compte existe, mais cet appareil n’a pas pu terminer la connexion à l’instant. Il réessaiera de lui-même.',
218
219 // ── La seule chose que l’on demande d’accepter ─────────────
220 // En attente de relecture par une personne native, comme toute la table.
221 // `tel_never` est une affirmation sur le code, pas une promesse sur notre
222 // vigilance : ne pas l’adoucir en « nous ne collectons pas de données
223 // personnelles ».
224 'beta.tel_title': 'Envoyer des compteurs d’usage ?',
225 'beta.tel_title_on': 'Compteurs d’usage',
226 'beta.tel_lead': 'Le test nous sert beaucoup plus si Daimond peut signaler comment il est utilisé. Il n’envoie que des nombres : laquelle de vingt choses s’est produite, combien de millisecondes après le début de la session, et un compteur pour chacune — la durée d’un tour, le panneau ouvert, le nombre d’erreurs survenues.',
227 'beta.tel_never': 'Il n’envoie jamais de mots. Ni un message, ni un nom de fichier, ni le nom d’un Diamond, ni un chemin, ni un message d’erreur. Il n’existe aucun champ pour cela, et notre serveur refuse tout rapport qui en contient.',
228 'beta.tel_who': 'Cela va à Oxedyne, sur le compte créé par votre code : nous voyons donc quels nombres sont les vôtres et pouvons revenir vous en parler.',
229 'beta.tel_free': 'Dire non ne vous coûte rien. Votre compte, vos crédits et tout le reste restent identiques, et rien dans l’application ne se comporte autrement.',
230 'beta.tel_more': 'Ce qui est envoyé, en détail',
231 'beta.tel_yes': 'Envoyer les compteurs',
232 'beta.tel_no': 'Ne pas envoyer',
233 'beta.tel_on': 'Daimond envoie des compteurs d’usage pour ce compte : des nombres seulement, jamais de mots.',
234 'beta.tel_stop': 'Arrêter d’envoyer les compteurs',
235
236 // ── La porte d’entrée ──────────────────────────────────────
237 // Traduction automatique, non relue par un locuteur natif.
238 'door.head': 'Nouveau sur Daimond ?',
239 'door.lead': 'Il est en test fermé : les comptes se donnent par code d’accès.',
240 'door.test': 'Demander à tester',
241 'door.waitlist': 'Rejoindre la liste',
242 'door.code': 'J’ai un code',
243 'door.code_later': 'Créez d’abord votre phrase secrète : un code s’utilise sur la clé de cet appareil. Le champ du code s’ouvrira de lui-même dès que possible.',
244
245 // ── Auto-reload ────────────────────────────────────────────
246 'autoreload.title': 'Recharge automatique',
247 'autoreload.lead': 'Daimond peut acheter des crédits quand ils s’épuisent, pour qu’un long travail ne s’arrête pas à mi-chemin. Il débite la carte ci-dessous sans demander, jusqu’à la limite que vous fixez ici.',
248 'autoreload.card_word': 'carte',
249 'autoreload.card_has': '{brand} finissant par {last4}',
250 'autoreload.replace': 'Remplacer…',
251 'autoreload.replace_help': 'Enregistrer une autre carte. Stripe la recueille ; Daimond ne la voit jamais.',
252 'autoreload.no_card': 'Aucune carte enregistrée.',
253 'autoreload.save_card': 'Enregistrer une carte',
254 'autoreload.save_card_help': 'Ouvre la page de Stripe. Rien n’est débité, et aucune donnée de carte n’atteint Daimond.',
255 'autoreload.switch_on': 'Acheter des crédits automatiquement',
256 'autoreload.switch_no_card': 'Acheter des crédits automatiquement (enregistrez d’abord une carte)',
257 'autoreload.when_below': 'Quand le solde passe sous',
258 'autoreload.when_below_hint': 'Une recharge se déclenche dès qu’un tour fait passer le solde sous ce seuil.',
259 'autoreload.buy_amount': 'Acheter ce montant',
260 'autoreload.buy_amount_hint': 'Une recharge. La passerelle ne vend pas plus de {max} à la fois.',
261 'autoreload.monthly_cap': 'Ne jamais dépenser plus, par mois, que',
262 'autoreload.monthly_cap_hint': 'Le maximum que la recharge automatique peut dépenser dans un mois civil. Relevez-le ici s’il vous en faut plus.',
263 'autoreload.spent': 'Dépensé ce mois-ci : {spent}',
264 'autoreload.spent_of': 'Dépensé ce mois-ci : {spent} sur {cap}',
265 'autoreload.last_error': 'La dernière recharge automatique a échoué : {reason}',
266 'autoreload.saving': 'Enregistrement…',
267 'autoreload.on_note': 'Activée. Daimond se recharge tout seul, dans la limite de votre plafond mensuel.',
268 'autoreload.off_note': 'Désactivée. Rien ne sera débité.',
269
270 // ── The chat ───────────────────────────────────────────────
271 'chat.no_chat': 'Aucun chat',
272 'chat.model_for_chat': 'Modèle pour ce chat',
273 'chat.select_all': 'Tout sélectionner',
274 'chat.deselect_all': 'Tout désélectionner',
275 'chat.fold_selected': 'Replier la sélection',
276 'chat.fold_now': 'Plier',
277 'chat.fold_now_help': 'Plier cette conversation maintenant, en gardant un résumé de ce qui précède.',
278 'say.more': 'le détail',
279 'say.less': 'masquer le détail',
280 'rail.dupes_trashed': '{n} copies en double des Diamonds intégrés ont été supprimées — une ancienne synchronisation les avait créées. Elles sont dans la Corbeille si vous en voulez une.',
281 'rail.dupes_kept': 'Il reste {n} Diamonds intégrés en double, mais vous y avez travaillé, donc rien n’a été supprimé. Supprimez ceux dont vous ne voulez pas.',
282 'ask.of': 'Décision {n} sur {of}',
283 'ask.recommended': 'Recommandé',
284 'ask.why': 'Pourquoi : {why}',
285 'ask.silent': 'Si vous ne dites rien : {what}',
286 'ask.other': 'Autre chose…',
287 'ask.other_ph': 'Répondez avec vos propres mots',
288 'ask.send': 'Envoyer cette réponse',
289 'ask.answered': 'Votre réponse : {what}',
290 'say.more_help': 'Environ {n} jetons, conservés sur cet appareil. Fermés, ils ne sont pas envoyés au modèle ; ouverts, si.',
291 'say.less_help': 'Environ {n} jetons. Tant que ceci est ouvert, le modèle les voit aussi, à chaque tour.',
292 'chat.copy_all_aria': 'Copier la conversation',
293 'wire.role_help': 'Votre invite de rôle. Modifiable dans prompts/ — la part du message système qui vous appartient.',
294 'wire.safety_help': 'Ajoutée après vos modifications, à chaque tour. Vous ne pouvez pas la retirer en modifiant votre invite.',
295 'wire.tools_help': 'Écrite d’après les outils dont cette conversation dispose vraiment, pour qu’elle n’en promette pas un absent.',
296 'wire.machine_help': 'Écrite d’après la clôture qui l’applique, de sorte que la description et la règle ne peuvent diverger.',
297 'wire.schemas_help': 'Le schéma JSON complet de chaque outil, envoyé à chaque requête. Souvent la plus grosse part.',
298 'wire.diamond_help': 'Composé pour ce tour seulement : le dossier propre du Diamond, ce que le trombone a marqué, et sa mémoire — crystal.json — telle qu’elle est. La capp à côté est nommée, jamais transmise.',
299 'wire.standing_help': 'Votre DAIMOND.md, ajouté au message système de chaque tour, dans chaque conversation.',
300 'wire.chip': 'Wire',
301 'wire.chip_help': 'Montre ce qui est réellement envoyé au modèle à chaque tour : le message système, à qui appartient chaque partie, et les schémas des outils.',
302 'wire.head': 'Envoyé à chaque tour, avant tout ce que vous avez dit — environ {n} jetons',
303 'wire.role': 'Invite de rôle',
304 'wire.role_why': 'la vôtre',
305 'wire.safety': 'Clause de sécurité',
306 'wire.safety_why': 'inamovible',
307 'wire.tools': 'Noms des outils',
308 'wire.tools_why': 'du registre',
309 'wire.machine': 'Cet ordinateur',
310 'wire.machine_why': 'de la clôture',
311 'wire.diamond': 'Ce Diamond',
312 'wire.diamond_why': 'ce tour seulement',
313 'wire.standing': 'Instructions permanentes',
314 'wire.standing_why': 'les vôtres',
315 'wire.schemas': 'Schémas des outils ({n})',
316 'wire.schemas_why': 'chaque tour',
317 'chat.copy_all': 'Copier',
318 'chat.copy_all_help': 'Copier toute la conversation dans le presse-papiers, en texte brut.',
319 'chat.copy_all_said': 'La conversation a été copiée dans le presse-papiers.',
320 'chat.copy_all_empty': 'Il n’y a encore rien à copier dans cette conversation.',
321 'chat.copy_all_failed': 'Daimond n’a pas pu accéder au presse-papiers. Sélectionnez le texte et copiez-le vous-même.',
322 'chat.steps': 'Étapes',
323 'chat.concise': 'Concis',
324 'chat.concise_help': 'Demandez des réponses brèves dans ce chat. Chaque message porte la compétence /concise, un fichier de votre espace de travail que vous pouvez modifier.',
325 'chat.concise_failed_title': 'Concis n’est pas disponible',
326 'chat.concise_failed': 'Daimond n’a pas pu écrire .daimond/skills/concise.md : la puce refuserait chaque tour au lieu de l’abréger. Ouvrez un dossier d’espace de travail, ou regardez le panneau Fichiers, puis réessayez.',
327 'chat.steps_help': 'Afficher ou masquer les étapes des outils dans le fil',
328 'chat.collapse_help': 'Replier toutes les réponses en laissant vos questions, et choisir les tours à replier',
329 'chat.input_ph': 'Écrivez un message…',
330 'chat.send': 'Envoyer',
331 'chat.busy': 'Réflexion…',
332 'chat.thinking': 'Raisonnement',
333 'chat.busy_tool': 'Exécution de {tool}, étape {n}…',
334 'chat.busy_next': 'Étape {n} terminée, réflexion…',
335 'chat.busy_road': 'Connexion interrompue — nouvelle tentative de {name} ({n} sur {of})…',
336 'chat.busy_writing': 'Rédaction de la réponse…',
337 // One command's own line, when the turn's fence withheld the network from it.
338 // `src/tools.rs`'s NO_NET_NOTE says the same thing to the model; this is the
339 // half a person can read. A statement of what happened, not a failure.
340 'chat.tool_no_net': 'Cette commande s’est exécutée sans réseau, parce que Daimond avait lu quelque chose écrit par quelqu’un d’autre. Tout ce qui, à l’intérieur, cherchait à télécharger, installer ou cloner n’a rien obtenu. Le bouton des autorisations le rend.',
341 'chat.answered': 'Daimond a répondu, {n} mots',
342 'chat.answer_failed': 'Daimond n’a pas pu répondre',
343 'chat.collapse': 'Replier toutes les réponses',
344 'chat.jump': 'Revenir à votre dernier message',
345 'chat.end': 'Aller à la fin du chat',
346 'chat.jump_help': 'Revenir à votre dernier message. Appuyez encore pour remonter les précédents.',
347 'chat.end_help': 'Aller à la fin du chat.',
348 'chat.new': '+ Nouveau chat',
349 // Messages typed while an answer is still arriving. They are held, shown, and
350 // sent one turn each once the answer is finished. Short on purpose: a phone’s
351 // composer is ~120px wide, and a longer line wraps to two clipped rows.
352 'chat.queue_ph': 'Écrivez le message suivant…',
353 'chat.queue_help': 'En attente. Envoyé à la fin de cette réponse',
354 'chat.queued_pending': 'Pas encore envoyé. Cliquez pour le modifier.',
355 'chat.queue_cancel': 'Ne pas envoyer ceci',
356 // Traduction automatique : parler dans un tour déjà en cours. La ligne dit aussi
357 // la limite -- une réponse sans outil n'a pas de couture où glisser un mot.
358 'chat.send_into': 'Envoyer dans cette réponse',
359 'chat.interject_help': 'En attente. Entre à la prochaine étape du modèle, ou à la fin de cette réponse',
360 'chat.interject_pending': 'Pas encore transmis. Cliquez pour le modifier.',
361 'chat.interjected': 'Vous êtes intervenu ici',
362 'chat.interjected_help': 'Dit dans le tour à cet endroit. Le modèle l’a eu à partir d’ici.',
363 'chat.queue_returned': 'Ce tour n’est pas allé au bout : ce que vous aviez mis en attente est revenu dans la zone de saisie, non envoyé.',
364 // The same thing said on the chat's TILE, for a queue left on a conversation
365 // the user has walked away from: money about to be spent should not depend
366 // on remembering.
367 'chat.queue_badge.one': '{n} en attente',
368 'chat.queue_badge.other': '{n} en attente',
369 'chat.queue_badge_help.one': 'Un message est en attente dans ce chat. Ouvrez-le et il part comme son propre tour.',
370 'chat.queue_badge_help.other': '{n} messages sont en attente dans ce chat. Ouvrez-le et ils partent, un par tour.',
371
372 // ── Comment le tour s’est terminé, et un modèle de Diamond ─
373 'end.how_answered': 'Répondu',
374 'end.how_stopped': 'Arrêté',
375 'end.how_capped': 'Limite d’étapes atteinte',
376 'end.how_silent': 'Terminé sans rien dire',
377 'end.how_failed': 'Terminé sur une erreur',
378 'end.no_calls': 'aucun outil utilisé',
379 'end.calls.one': '{n} appel d’outil',
380 'end.calls.other': '{n} appels d’outils',
381 'end.refused.one': '{n} refusé',
382 'end.refused.other': '{n} refusés',
383 'end.broke.one': '{n} en échec',
384 'end.broke.other': '{n} en échec',
385 'end.missing': 'non écrit : {paths}',
386 'end.help': 'Comment ce tour s’est terminé. Outils disponibles : {offered}. Requêtes envoyées : {rounds}. Appels d’outils : {calls}.',
387
388 'tmpl.section': 'Modèle',
389 'tmpl.dlg_help': 'Un modèle emporte la forme de ce Diamond — la page à travers laquelle il se dessine, son automatisation et ce qu’une capp garde à côté d’elle — et rien de ce qu’il a enregistré. Les actions déclenchées sont laissées de côté à dessein : un déclencheur part sans que personne n’appuie sur rien, et un déclencheur qui voyagerait mettrait la machine de quelqu’un d’autre au travail parce qu’un fichier y a été ouvert. Celui qui l’ouvre obtient un NOUVEAU Diamond ; rien de ce qui lui appartient n’est écrasé.',
390 'tmpl.with_conversation': 'Inclure ce qu’il a enregistré',
391 'tmpl.with_conversation_help': 'Emporte tout à la place : la mémoire, la conversation gardée et les entrées propres à une capp. Cela reste un modèle, donc cela s’ouvre toujours comme un nouveau Diamond.',
392 'tmpl.save': 'Enregistrer comme modèle…',
393 'tmpl.saving': 'Création du modèle…',
394 'tmpl.saved': 'Enregistré sous {file}. Celui à qui vous le donnez l’ouvre comme un Diamond à lui, depuis la vue Partager du panneau Social.',
395 'tmpl.panel_head': 'Ouvrir un modèle',
396 'tmpl.panel_help': 'Un modèle, c’est la forme d’un Diamond sans son contenu : la page à travers laquelle il se dessine et son automatisation, et rien de ce qu’il a enregistré. Il s’ouvre comme un NOUVEAU Diamond et ne peut jamais écraser celui que vous avez déjà. Les actions déclenchées ne voyagent jamais, car un déclencheur part sans que personne n’appuie sur rien.',
397 'tmpl.panel_open': 'Ouvrir un fichier de modèle…',
398 'tmpl.opened': 'Ouvert comme un nouveau Diamond, « {name} ». {n} fichier(s) sont arrivés.',
399 'tmpl.unnamed': 'ce modèle',
400 'tmpl.code_title': 'Ce modèle contient du code',
401 'tmpl.code_body': '« {name} » comprend une page : un programme écrit par quelqu’un d’autre, que Daimond exécutera à l’ouverture. Un modèle ne porte ni signature ni nom, donc rien ici ne peut vous dire d’où il vient — seule la personne qui vous a donné le fichier le peut.\n\nCe qui serait ajouté : {files}\n\nIl s’ouvre comme un NOUVEAU Diamond et ne peut jamais écraser celui que vous avez déjà. Refuser n’écrit rien du tout.',
402 'tmpl.code_ok': 'Accepter la page et l’ouvrir',
403 'tmpl.declined': 'La page n’a pas été acceptée, donc rien n’a été ouvert.',
404 'tmpl.err_empty': 'Ce fichier est vide, il n’y a donc rien à ouvrir.',
405 'tmpl.err_not_template': 'Ce fichier n’est pas un modèle Daimond.',
406 'tmpl.err_file_huge': 'Ce fichier fait {size}, ce qui dépasse la taille de tout modèle, il n’a donc pas été ouvert.',
407 'tmpl.err_no_file': 'Aucun fichier n’a été choisi, donc rien n’a été ouvert.',
408 'tmpl.err_nothing': 'Il n’y a rien à enregistrer : ce Diamond a produit un modèle vide.',
409 'tmpl.err_no_door': 'Cette version sait lire un modèle mais n’a nulle part où l’ouvrir.',
410
411 // ── The Web panel ──────────────────────────────────────────
412 'web.who_drives': 'Qui conduit',
413 'web.back': 'Retour',
414 'web.reload': 'Recharger',
415 'web.pop_out': 'Ouvrir dans un vrai onglet',
416 // Le nom du bouton de pause dans l'en-tête du panneau, pour que
417 // `pause.act_pause` donne « Mettre Accès au web en pause ». Il gouverne
418 // `root/web`, qui va plus loin que ce panneau : il ne s'appelle donc pas
419 // « Ce panneau ».
420 'web.pause': 'Accès au web',
421 'web.blind_title': 'C’est vous qui conduisez. Je ne regarde pas.',
422 'web.blind_note': 'Daimond a cessé de lire cette page. Ni texte, ni image, ni frappe au clavier. Connectez-vous, puis cliquez sur <b>Reprendre Daimond</b> dans l’onglet du navigateur pour lui rendre le volant. Ce bouton est dans l’onglet, afin que cette page ne puisse jamais vous prendre le volant.',
423 'web.resumed': 'J’ai repris, vérifiez',
424
425 // ── Compose ────────────────────────────────────────────────
426 'compose.from': 'De',
427 'compose.to': 'À',
428 'compose.cc': 'Cc',
429 'compose.subject': 'Objet',
430 'compose.optional': 'Facultatif',
431 'compose.body_ph': 'Écrivez votre message.',
432 'compose.send': 'Envoyer',
433 'compose.save_draft': 'Enregistrer le brouillon',
434 'compose.attach': 'Joindre…',
435 'compose.discard': 'Abandonner',
436
437 // ── Agents ─────────────────────────────────────────────────
438 'agents.control_all': 'Contrôler tous les agents',
439 'agents.pause_all': 'Mettre en pause tous les agents',
440 'agents.resume_all': 'Reprendre tous les agents en pause',
441 'agents.stop_all': 'Arrêter tous les agents',
442 'agents.clear_finished': 'Effacer les agents terminés',
443 'agents.search': 'Rechercher des agents',
444 'agents.search_help': 'Rechercher des agents par nom, tâche, Diamond ou étiquette',
445
446 // ── Email ──────────────────────────────────────────────────
447 'mail.write': 'Écrire un message',
448 'mail.add_mailbox': 'Ajouter une boîte mail',
449 'mail.sync_now': 'Synchroniser maintenant',
450
451 // The pitch, shown while Email is not unlocked on this account.
452 'mail.pitch.head': '<b>Daimond peut lire votre courrier.</b> Votre boîte de réception arrive dans l’espace de travail sous forme de fichiers ordinaires, si bien que chaque agent peut la lire, la chercher et travailler à partir d’elle.',
453 'mail.pitch.fine': 'L’e-mail fait partie de Pro — un paiement, et cinq ans de Pro — avec la synchronisation entre appareils et le stockage en ligne. Couvre {cap} boîtes mail. L’envoi et la récupération sont décomptés des crédits, comme l’inférence. Sans abonnement, et rien ne se renouvelle.',
454 'mail.pitch.privacy': 'La passerelle de Daimond établit la connexion et oublie votre mot de passe. Aucun courrier n’est jamais stocké chez nous.',
455 'mail.pitch.unknown': 'Le service de comptes est injoignable : Daimond ne peut pas dire si l’e-mail est débloqué ici.',
456 'mail.pro_pitch': 'L’e-mail fait partie de Pro. Achetez cinq ans de Pro pour l’activer, avec la synchronisation et le stockage en ligne.',
457
458 // The mailbox list.
459 'mail.remove_mailbox': 'Retirer cette boîte mail',
460 'mail.remove_mailbox_named': 'Retirer la boîte mail {address}',
461 'mail.no_mailbox': 'Aucune boîte mail pour l’instant. Appuyez sur <b>+</b> pour en ajouter une.',
462 'mail.remove.title': 'Retirer {address} ?',
463 'mail.remove.body': 'Le courrier déjà synchronisé reste dans l’espace de travail. La boîte mail libère une place sur votre déblocage.',
464 'mail.remove.ok': 'Retirer',
465 'mail.ago.never': 'jamais',
466 'mail.ago.just_now': 'à l’instant',
467 'mail.ago.mins': 'il y a {n} min',
468 'mail.ago.hours': 'il y a {n} h',
469 'mail.ago.days': 'il y a {n} j',
470
471 // Folders.
472 'mail.folders': 'Dossiers',
473 'mail.folders_loading': 'Recherche des dossiers…',
474 'mail.refreshed_held': '{done} dossiers actualisés dans {boxes} boîtes ; {held} retenus par une pause.',
475 'mail.refreshed': '{done} dossiers actualisés dans {boxes} boîtes.',
476 'mail.count.never': 'Pas encore relevé, il n’y a donc aucun compte.',
477 'mail.count.asat': '{n} messages, au {when}.',
478 'mail.count.more': '{n} de plus attendaient sur le serveur à ce moment-là.',
479 'mail.settings': 'Réglages de la boîte',
480 'mail.settings_named': 'Réglages de {address}',
481 'mail.all_mailboxes': 'Toutes les boîtes',
482 'mail.refresh_all': 'Actualiser les {folders} dossiers de {boxes} boîtes mail',
483 'mail.every.0': 'Manuel seulement',
484 'mail.every.300': 'Toutes les 5 minutes',
485 'mail.every.900': 'Toutes les 15 minutes',
486 'mail.every.1800': 'Toutes les 30 minutes',
487 'mail.every.3600': 'Toutes les heures',
488 'mail.every.14400': 'Toutes les 4 heures',
489 'mail.every.43200': 'Toutes les 12 heures',
490 'mail.every.86400': 'Une fois par jour',
491 'mail.every.secs': 'Toutes les {n} secondes',
492 'mail.every_for': 'À quelle fréquence {folder} s’actualise',
493 'mail.cfg.head': 'À quelle fréquence chaque dossier va voir, et lesquels en ont le droit. Chaque actualisation coûte des crédits, donc rien n’interroge tant que vous ne l’avez pas dit.',
494 'mail.cfg.self': 'Retient tous les dossiers en dessous.',
495 'mail.cfg.title': 'Réglages de {address}',
496 'mail.folders_err': 'La liste des dossiers n’a pas pu être récupérée : {reason}',
497 'mail.folder.inbox': 'Boîte de réception',
498 'mail.folder.sent': 'Envoyés',
499 'mail.folder.drafts': 'Brouillons',
500 'mail.folder.trash': 'Corbeille',
501 'mail.folder.junk': 'Spam',
502 'mail.folder.archive': 'Archives',
503 'mail.folder.all': 'Tous les messages',
504 'mail.folder.flagged': 'Suivis',
505
506 // The message list.
507 'mail.drafts_head': 'Brouillons · {n}',
508 'mail.no_subject': '(sans objet)',
509 'mail.no_recipient': '(sans destinataire)',
510 'mail.unknown_sender': '(inconnu)',
511 'mail.nothing_yet': 'Rien ici pour l’instant. Appuyez sur <b>⟳</b> pour synchroniser.',
512
513 // Syncing.
514 'mail.note.syncing': 'Synchronisation de {folder} dans {address}…',
515 'mail.note.fetching_older': 'Récupération de courrier plus ancien depuis {folder} dans {address}…',
516 'mail.note.rebuilt': 'La boîte mail a été reconstruite sur le serveur ; resynchronisation depuis le début…',
517 'mail.note.up_to_date': 'À jour.',
518 'mail.note.no_older': 'Plus de courrier ancien à récupérer.',
519 'mail.note.new.one': '{n} nouveau message',
520 'mail.note.new.other': '{n} nouveaux messages',
521 'mail.note.older.one': '{n} message plus ancien',
522 'mail.note.older.other': '{n} messages plus anciens',
523 'mail.note.still_older.one': '{n} plus ancien encore sur le serveur',
524 'mail.note.still_older.other': '{n} plus anciens encore sur le serveur',
525
526 // The foot of the list: what the cap held back.
527 'mail.more.note.one': '{n} message plus ancien est encore sur le serveur. Daimond récupère les {batch} plus récents à la fois, pour que votre boîte entière ne soit jamais téléchargée d’un coup.',
528 'mail.more.note.other': '{n} messages plus anciens sont encore sur le serveur. Daimond récupère les {batch} plus récents à la fois, pour que votre boîte entière ne soit jamais téléchargée d’un coup.',
529 'mail.more.next': 'Récupérer les {n} suivants',
530 'mail.more.stop': 'Arrêter',
531 'mail.more.all': 'Tout récupérer',
532
533 // Walking a whole mailbox down.
534 'mail.all.title': 'Récupérer les {n} messages restants ?',
535 'mail.all.body': 'Ils arrivent par lots de {batch} et sont écrits dans l’espace de travail : une grande boîte prend du temps et occupe du disque. La synchronisation est décomptée de vos crédits au mégaoctet. Arrêtez en chemin et ce qui est arrivé reste.',
536 'mail.all.ok': 'Tout récupérer',
537 'mail.all.progress': '{got} sur {total} récupérés…',
538 'mail.all.count.one': '{n} message',
539 'mail.all.count.other': '{n} messages',
540 'mail.all.done': 'Terminé. {count} récupérés.',
541 'mail.all.done_left': 'Terminé. {count} récupérés, {left} encore sur le serveur.',
542 'mail.all.stopped': 'Arrêté. {count} récupérés.',
543 'mail.all.stopped_left': 'Arrêté. {count} récupérés, {left} encore sur le serveur.',
544
545 // Quoting and forwarding.
546 'mail.quote.head': 'Le {date}, {who} a écrit :',
547 'mail.quote.they': 'quelqu’un',
548 'mail.fwd.sep': '---------- Message transféré ----------',
549
550 // Adding a mailbox.
551 'mail.add.title': 'Ajouter une boîte mail',
552 'mail.add.lead': 'La passerelle de Daimond se connecte à votre serveur de messagerie, rend les messages et oublie votre mot de passe. Le mot de passe est chiffré sur cet appareil sous votre phrase secrète.',
553 'mail.add.ok': 'Ajouter et synchroniser',
554 'mail.add.address': 'Adresse e-mail',
555 'mail.add.password': 'Mot de passe d’application',
556 'mail.add.password_ph': 'Le mot de passe d’application de votre fournisseur',
557 'mail.add.imap': 'Serveur IMAP',
558 'mail.add.smtp': 'Serveur SMTP',
559 'mail.add.port': 'Port',
560 'mail.add.guess': 'Daimond aura besoin des noms de serveur de ce fournisseur (souvent imap.{domain} pour la lecture, smtp.{domain} pour l’envoi).',
561 'mail.add.err_address': 'Ce n’est pas une adresse e-mail.',
562 'mail.add.err_password': 'Le mot de passe d’application est obligatoire.',
563 'mail.add.err_imap': 'Daimond a besoin du nom du serveur IMAP.',
564 'mail.add.err_port': 'IMAP tourne sur le port 993 (TLS) ou 143.',
565 'mail.add.err_smtp': 'Daimond a besoin du nom du serveur SMTP pour envoyer depuis cette boîte mail.',
566 'mail.add.err_smtp_port': 'Le courrier est soumis sur le port 587 ou 465.',
567
568 // Provider guidance.
569 'mail.preset.gmail': 'Gmail exige un <b>mot de passe d’application</b> (Compte Google → Sécurité → Validation en deux étapes → Mots de passe des applications), et non votre mot de passe Google.',
570 'mail.preset.gmail_short': 'Gmail exige un <b>mot de passe d’application</b>, et non votre mot de passe Google.',
571 'mail.preset.outlook': 'Outlook exige un <b>mot de passe d’application</b> si la validation en deux étapes est activée.',
572 'mail.preset.yahoo': 'Yahoo exige un <b>mot de passe d’application</b> généré dans la sécurité du compte.',
573 'mail.preset.icloud': 'iCloud exige un <b>mot de passe pour application</b>.',
574 'mail.preset.fastmail': 'Fastmail exige un mot de passe d’application avec accès IMAP.',
575 'mail.unreachable.proton': 'Le courrier Proton n’est accessible qu’à travers le Proton Bridge tournant sur votre propre machine, auquel la passerelle de Daimond ne peut pas se connecter.',
576 'mail.unreachable.tuta': 'Tuta ne propose pas d’IMAP : aucun client de messagerie ne peut le lire, Daimond compris.',
577
578 // What can go wrong.
579 'mail.err.unlock_first': 'Déverrouillez d’abord Daimond. Le mot de passe du courrier est chiffré sous votre phrase secrète.',
580 'mail.err.draft_needs_mailbox': 'Un brouillon a besoin d’une boîte mail d’où partir.',
581 'mail.err.draft_unreadable': 'Ce brouillon n’a pas pu être lu.',
582 'mail.err.msg_unreadable': 'Ce message n’a pas pu être lu.',
583 'mail.err.send_from_added': 'Envoyez depuis une boîte mail que vous avez ajoutée et synchronisée.',
584 'mail.err.no_recipients': 'Un message sans destinataire ne peut pas être envoyé.',
585 'mail.err.add_mailbox_first': 'Ajoutez une boîte mail avant d’écrire un message.',
586 'mail.err.service_unavailable': 'Le service de comptes est indisponible.',
587 'mail.err.service_unreachable': 'Impossible de joindre le service de comptes Daimond. Réessayez dans un instant.',
588 'mail.err.cap.one': 'Ce déblocage couvre {n} boîte mail. Retirez-en une pour en ajouter une autre.',
589 'mail.err.cap.other': 'Ce déblocage couvre {n} boîtes mail. Retirez-en une pour en ajouter une autre.',
590
591 'mail.err.protocol_pending': 'Daimond ne peut pas encore relever le courrier : le tunnel privé est terminé et le protocole de messagerie n’y est pas encore raccordé. Rien n’a été envoyé, et votre mot de passe n’a jamais quitté cet appareil.',
592
593 // Le tunnel : TLS se termine dans le navigateur, donc ce sont les seuls mots
594 // que l’on obtient sur une connexion que la passerelle ne peut pas lire.
595 'mail.tunnel.close.auth': 'Daimond a déconnecté cet appareil, la connexion mail a donc été refusée. Déverrouillez Daimond et relevez à nouveau.',
596 'mail.tunnel.close.pro': 'Le courrier fait partie de Pro, et ce compte ne l’a pas débloqué. Achetez Pro dans Crédits et le courrier s’ouvre.',
597 'mail.tunnel.close.host': 'Daimond ne joint qu’un serveur de messagerie que ce compte a lié, et {host} n’en fait pas partie. Ajoutez la boîte à nouveau — Daimond lie ses serveurs à ce moment-là — puis relevez.',
598 'mail.tunnel.close.port': 'Le courrier se connecte sur les ports 993, 143, 465 et 587, et {port} n’en est aucun. Corrigez le port dans les réglages de la boîte.',
599 'mail.tunnel.close.credits': 'Vos crédits se sont épuisés en cours de route. Rechargez dans Crédits et relevez à nouveau ; ce qui est déjà descendu est sur cet appareil.',
600 'mail.tunnel.close.concurrent': 'Ce compte tient déjà quatre connexions mail. Laissez une autre boîte finir, ou fermez un autre onglet Daimond, puis relevez à nouveau.',
601 'mail.tunnel.close.unresolved': '{host} ne se résout pas en une adresse que Daimond peut joindre. Vérifiez le nom du serveur dans les réglages de la boîte — une faute de frappe ressemble exactement à cela — ou si le DNS de ce réseau le connaît.',
602 'mail.tunnel.close.toobig': 'La connexion mail a envoyé d’un coup plus que la passerelle ne transporte, elle a donc été fermée. Relevez à nouveau.',
603 'mail.tunnel.close.done': 'Le serveur de messagerie a mis fin à la connexion avant la fin de la relève. Relevez à nouveau ; ce qui est descendu est sur cet appareil.',
604 'mail.tunnel.close.unreachable': '{host} n’a pas pu être joint. Vérifiez le nom du serveur dans les réglages de la boîte, ou réessayez sous peu.',
605 'mail.tunnel.close.no_socket': 'La connexion mail n’a pas pu s’ouvrir du tout. Vérifiez que vous êtes en ligne, puis relevez à nouveau.',
606 'mail.tunnel.close.idle': 'Le serveur de messagerie a cessé de répondre, la connexion a donc été fermée. Relevez à nouveau pour continuer.',
607 'mail.tunnel.close.expired': 'Cela prenait trop de temps, la connexion mail a donc été fermée. Relevez à nouveau et cela reprend là où cela s’était arrêté.',
608 'mail.tunnel.close.other': 'La connexion mail s’est fermée de façon inattendue (code {code}). Relevez à nouveau.',
609 'mail.tunnel.err.no_server': 'Cette boîte n’a ni serveur ni port renseignés. Ouvrez ses réglages et complétez-les.',
610 'mail.tunnel.err.no_client': 'Daimond n’a pas pu établir de connexion mail chiffrée — {reason}',
611 'mail.tunnel.err.slow': '{host} n’a pas terminé la poignée de main chiffrée en {secs} secondes. Réessayez sous peu.',
612 'mail.tunnel.err.no_reply': '{host} n’a pas répondu à l’étape {what} en {secs} secondes. Relevez à nouveau.',
613 'mail.tunnel.err.cert': 'Daimond n’a pas pu vérifier le certificat de {host} ({fault}), il n’a donc rien envoyé. Votre mot de passe reste sur cet appareil jusqu’à ce que le serveur puisse prouver qui il est.',
614 'mail.tunnel.err.cert_name': '{host} a présenté un certificat émis pour un autre serveur ({fault}), Daimond n’a donc rien envoyé. Vérifiez le nom du serveur dans les réglages de la boîte.',
615 'mail.tunnel.err.cert_expired': '{host} a présenté un certificat expiré ({fault}), Daimond n’a donc rien envoyé. Si l’horloge de cette machine est fausse, corrigez-la et relevez à nouveau.',
616 'mail.tunnel.err.cert_issuer': '{host} a présenté un certificat d’un émetteur auquel Daimond ne fait pas confiance ({fault}), il n’a donc rien envoyé. Un certificat auto-signé ressemble à cela, et une connexion interceptée aussi.',
617 'mail.tunnel.err.starttls': 'Le canal chiffré vers {host} n’a pas pu être établi — {reason}',
618 'mail.tunnel.err.starttls_early': '{host} a envoyé quelque chose avant que le canal chiffré ne soit en place ; Daimond a abandonné la connexion plutôt que de lui faire confiance. Rien n’a été envoyé.',
619
620 // ── Workspace files ────────────────────────────────────────
621 'work.new_file': 'Nouveau fichier',
622 'work.new_folder': 'Nouveau dossier',
623 'work.upload': 'Téléverser des fichiers',
624 'work.parent': 'Dossier parent',
625 'work.filter_ph': 'Filtrer…',
626 'work.breadcrumb': 'Chemin du dossier',
627
628 // ── The phone shell ────────────────────────────────────────
629 'sheet.panel': 'Panneau',
630 'sheet.ask': 'Demander',
631 'sheet.ask_ph': 'Posez une question là-dessus…',
632 'sheet.ask_about': 'Posez une question sur {thing}…',
633
634 // ── Identity: creating and unlocking ───────────────────────
635 'identity.your_name': 'Votre nom',
636 'identity.passphrase': 'Phrase secrète',
637 'identity.confirm_passphrase': 'Confirmez la phrase secrète',
638 'identity.show_passphrase': 'Afficher la phrase secrète',
639 'identity.hide_passphrase': 'Masquer la phrase secrète',
640 'identity.generate_another': 'En générer une autre',
641 'identity.wrote_it_down': 'Je l’ai notée en lieu sûr',
642 'identity.choose_own': 'Choisir plutôt ma propre phrase secrète',
643 'identity.skip': 'Plus tard',
644 'identity.create_account': 'Créer le compte',
645 'identity.unlock': 'Déverrouiller',
646 'identity.forget': 'Oublier cette identité…',
647 'identity.use_generated': 'Utiliser plutôt une phrase générée',
648 'identity.title_create': 'Créez votre compte',
649 'identity.title_unlock': 'Déverrouiller Daimond',
650 'identity.title_welcome': 'Bon retour, {name}',
651 'identity.title_linked': 'Associé. Déverrouillez-le maintenant',
652 'identity.lead_create': 'Choisissez un nom. Daimond génère lui-même la phrase secrète, ci-dessous. Si vous utilisez déjà Daimond sur un autre appareil, ne créez pas un deuxième compte : choisissez « Vous avez un code d’association ? » pour associer celui-ci. (Ouvrir un vrai dossier que les agents peuvent modifier demande Chrome, Edge ou Brave.)',
653 'identity.lead_unlock': 'Saisissez votre phrase secrète pour déverrouiller cet appareil et déchiffrer la clé enregistrée.',
654 'identity.lead_linked': 'Cet appareil est associé à votre compte. Saisissez la MÊME phrase secrète que sur votre autre appareil — pas une nouvelle — pour faire venir vos chats et vos fichiers ici.',
655 'identity.lead_linked_named': 'Cet appareil est associé à votre compte « {name} ». Saisissez la MÊME phrase secrète que sur votre autre appareil — pas une nouvelle — pour faire venir vos chats et vos fichiers ici.',
656 'identity.gen_note': 'Huit mots tirés au hasard par cet appareil, environ {bits} bits, bien au-delà du devinable. C’est la clé de tout ce que vous gardez ici, et personne ne peut la réinitialiser à votre place. Notez-la sur papier. Un gestionnaire de mots de passe proposera peut-être de la conserver ; à cette force, c’est sûr.',
657
658 // ── Cross-device sync ──────────────────────────────────────
659 'sync.syncing': 'Synchronisation…',
660 'sync.synced': 'Synchronisé',
661 'sync.off': 'Sync désactivée',
662 'sync.off_reason': 'La synchronisation entre appareils fait partie de Pro, que ce compte ne possède pas.',
663 // The chip is the only place this is said, so it also has to be the way to
664 // the offer: it is clickable in this state, and opens Pro in Credits.
665 'sync.off_click': 'Cliquez pour voir Pro dans Crédits.',
666 'sync.off_pitch': 'La synchronisation est désactivée parce que ce compte n’a pas Pro. Pro ajoute la synchronisation entre appareils, le stockage en ligne et l’e-mail.',
667 // A refused parcel. Say what is too large, and what usually makes it so.
668 'sync.too_big': 'Synchronisation en pause',
669 'sync.too_big_reason': 'Le colis de cet appareil est trop gros pour être envoyé : son travail ne circule plus. La cause est en général un Diamond ou un fichier de l’espace de travail très volumineux ; réduisez-le ou retirez-le, et la synchronisation repart d’elle-même.',
670 'sync.diamonds_left.one': '{n} Diamond n’a pas tenu dans le colis de synchronisation de cet appareil et n’atteindra vos autres appareils qu’une fois plus petit : {names}',
671 'sync.diamonds_left.other': '{n} Diamonds n’ont pas tenu dans le colis de synchronisation de cet appareil et n’atteindront vos autres appareils qu’une fois plus petits : {names}',
672 // A file the parcel had no room for, named the way a Diamond that did not fit is
673 // named. The same news in the same shape; not an error -- the budget is doing what
674 // it is for, and nothing at the far end is deleted.
675 'sync.files_left.one': '{n} fichier n’a pas tenu dans le colis de synchronisation de cet appareil et n’atteindra vos autres appareils qu’une fois la place trouvée : {names}',
676 'sync.files_left.other': '{n} fichiers n’ont pas tenu dans le colis de synchronisation de cet appareil et n’atteindront vos autres appareils qu’une fois la place trouvée : {names}',
677 // Une session terminée et impossible à reprendre. Même libellé que ci-dessous :
678 // ce qui compte est que le travail de cet appareil ne circule plus.
679 'sync.signed_out': 'Synchronisation en pause',
680 'sync.signed_out_reason': 'Cet appareil est déconnecté du service de comptes Daimond et n’a pas pu se reconnecter : son travail n’atteint pas vos autres appareils. Cela repart dès que le service est joignable. Sinon, verrouillez Daimond puis déverrouillez-le.',
681 'sync.paused': 'Synchronisation en pause',
682 'sync.busy_reason': 'Un autre appareil enregistre dans ce compte en même temps, le travail de cet appareil n’est donc pas encore parti. Il partira au prochain changement.',
683 'sync.merge_reason': 'Une partie de ce qui est arrivé de l’autre appareil n’a pas pu être fusionnée ici, cet appareil n’a donc rien écrit par-dessus. Recharger la page suffit en général.',
684 'sync.last_synced': 'Dernière synchronisation {when}.',
685 'sync.last_never': 'Rien n’a encore été synchronisé depuis cet appareil.',
686 'sync.when_just_now': 'à l’instant',
687 'sync.when_mins': 'il y a {n} min',
688 'sync.when_hours': 'il y a {n} h',
689 'sync.when_days': 'il y a {n} j',
690
691 // ── L’identifiant public du compte ─────────────────────────
692 'handle.taken': 'Cet identifiant est déjà pris par quelqu’un d’autre. Essayez-en un autre.',
693 'handle.invalid': 'Un identifiant compte 3 à 24 caractères : lettres minuscules, chiffres et traits d’union entre eux.',
694 'handle.reserved': 'Cet identifiant est réservé à Daimond et ne peut pas être pris.',
695 'handle.failed': 'L’identifiant n’a pas pu être changé pour le moment. Réessayez dans un instant.',
696
697 // ── Cloud storage cleanup ──────────────────────────────────
698 'chunks.sweep_held': 'Nettoyage en pause',
699 'chunks.sweep_held_reason': 'Le stockage cloud conserve {n} de ses {m} fragments enregistrés auxquels plus aucun fichier de ce compte ne renvoie. Ils n’ont PAS été supprimés : aucune requête ne peut retirer plus de la moitié de ce qui est stocké. Rien ne vous manque, et l’espace est libéré à la prochaine synchronisation capable de tout justifier.',
700 'chunks.upload_refused': 'Téléversements en pause',
701 'chunks.upload_refused_title': 'Le stockage cloud a refusé un téléversement',
702 'chunks.sweep_confirm_ask': 'Les supprimer maintenant ? Rien de ce que vous pouvez encore voir n’est touché, et l’espace est libéré.',
703 'chunks.sweep_confirm_ok': 'Supprimer les fragments',
704 'chunks.sweep_confirm_title': 'Libérer les fragments auxquels plus rien ne renvoie ?',
705
706 // ── Pairing a second device ────────────────────────────────
707 'pair.link_another': 'Associer un autre appareil',
708 'pair.link_this': 'Associer cet appareil',
709 'pair.have_code': 'Vous avez un code d’association ?',
710 'pair.making_code': 'Création d’un code à usage unique…',
711 'pair.scan_lead': 'Sur votre autre téléphone, visez ceci avec l’appareil photo pour ouvrir Daimond et l’associer :',
712 'pair.no_camera': 'Sans appareil photo, ouvrez Daimond là-bas, choisissez « Vous avez un code d’association ? », et saisissez :',
713 'pair.type_lead': 'Sur votre autre appareil, ouvrez Daimond, choisissez « Vous avez un code d’association ? », et saisissez :',
714 'pair.code_expiry': 'Ce code sert une seule fois et expire dans environ {mins} minutes. Vous déverrouillerez l’autre appareil avec votre phrase secrète habituelle.',
715 'pair.code_ph': 'code d’association',
716 'pair.code_check': 'C’est le code de votre autre appareil. Il doit correspondre à celui qui y est affiché.',
717 'pair.scanned_lead': 'Scanné depuis votre autre appareil. Touchez « Associer cet appareil » ci-dessous pour faire venir votre compte ici.',
718 'pair.manual_lead': 'Sur l’appareil que vous utilisez déjà, choisissez « Associer un autre appareil » et tapez ici le code affiché.',
719 'pair.linked': 'Cet appareil est associé',
720 'pair.linked_note': 'Il porte maintenant votre compte. Touchez Déverrouiller, puis saisissez la MÊME phrase secrète que sur votre autre appareil — pas une nouvelle.',
721 'pair.linked_named': 'Il porte maintenant votre compte « {name} ». Touchez Déverrouiller, puis saisissez la MÊME phrase secrète que sur votre autre appareil — pas une nouvelle.',
722 'pair.name_this': 'Nommer cet appareil (facultatif)',
723 'pair.name_ph': 'p. ex. Ordinateur de la cuisine',
724 'pair.named_note': 'Cet appareil apparaîtra sous le nom « {name} » dans votre liste d’appareils. Vous pourrez le changer ensuite depuis cette liste.',
725 'pair.err_no_identity': 'Il n’y a aucune identité à associer sur cet appareil.',
726 'pair.err_unreadable_local': 'Impossible de lire l’identité de cet appareil.',
727 'pair.err_sign_in_first': 'Connectez-vous sur cet appareil avant d’en associer un autre.',
728 'pair.err_enter_code': 'Saisissez le code d’association de votre autre appareil.',
729 'pair.err_bad_code': 'Ce code est invalide ou a expiré. Créez-en un nouveau sur votre autre appareil.',
730 'pair.err_bundle_unreadable': 'L’identité associée était illisible.',
731 'pair.err_bundle_import': 'L’identité associée n’a pas pu être importée.',
732 'pair.err_create': 'Impossible de créer un code d’association.',
733 'pair.err_link': 'Impossible d’associer cet appareil.',
734 // The one-time presentation handover. Say that it happened and that it is
735 // this device’s own from now on.
736 'pair.look_carried': 'Votre thème, votre langue et la disposition des panneaux ont suivi. Désormais chaque appareil garde les siens : en changer un ne touche pas l’autre.',
737
738 // ── The appearance menu ────────────────────────────────────
739 'menu.view': 'Affichage',
740 'menu.view_simple': 'Simple',
741 'menu.view_max': 'Max',
742 'menu.view_simple_help': 'Chaque élément indique son nom et s’il tourne. Le reste est à un clic.',
743 'menu.view_max_help': 'Modèles, coût et contexte à côté de chaque élément, pour comparer sans rien ouvrir.',
744 'menu.view_note': 'Définit aussi la forme de chaque tuile. L’engrenage d’une tuile règle cette tuile autrement.',
745 'menu.theme': 'Thème',
746 'menu.tone_light': 'Clair',
747 'menu.tone_mid': 'Intermédiaire',
748 'menu.tone_dark': 'Sombre',
749 'menu.theme_light': 'Papier',
750 'menu.theme_mist': 'Brume',
751 'menu.theme_linen': 'Lin',
752 'menu.theme_lollypop': 'Sucette',
753 'menu.theme_sage': 'Sauge',
754 'menu.theme_dusk': 'Crépuscule',
755 'menu.theme_dark': 'Braise',
756 'menu.theme_amber': 'Ambre',
757 'menu.theme_amber_help': 'Chaud et pauvre en bleu, pour lire la nuit.',
758 'menu.theme_midnight': 'Minuit',
759 'menu.theme_forest': 'Forêt',
760 'menu.theme_plum': 'Prune',
761 'menu.text_size': 'Taille du texte',
762 'menu.smaller': 'Texte plus petit',
763 'menu.larger': 'Texte plus grand',
764 'menu.dock_tiling': 'Grille du dock',
765 'menu.dock_auto': 'Auto',
766 'menu.dock_auto_help': 'Une deuxième colonne dès que la fenêtre est assez large',
767 'menu.dock_grid_help.one': '{cols} colonne, jusqu’à {cells} panneaux',
768 'menu.dock_grid_help.other': '{cols} colonnes, jusqu’à {cells} panneaux',
769 'menu.language': 'Langue',
770 'menu.language_help': 'Ce que dit Daimond. Une langue sans table reste en anglais.',
771 'menu.language_pending': 'pas encore traduit',
772 'menu.currency': 'Devise',
773 'menu.currency_help': 'La devise d’affichage des montants. La facturation est toujours en dollars américains.',
774 'menu.this_diamond': 'Ce Diamond',
775 'menu.arrangement_update': 'Mettre à jour la disposition enregistrée',
776 'menu.arrangement_keep': 'Garder cette disposition avec {name}',
777 'menu.arrangement_keep_this': 'Garder cette disposition avec ce Diamond',
778 'menu.arrangement_forget': 'L’oublier',
779 'menu.arrangement_note': 'Rouvrir ce Diamond restaure les panneaux dans lesquels il a été travaillé. Rien n’est retenu tant que vous ne le demandez pas.',
780
781 // ── Text-size steps ────────────────────────────────────────
782 'size.small': 'Petit',
783 'size.normal': 'Normal',
784 'size.large': 'Grand',
785 'size.larger': 'Très grand',
786
787 // ── Dock grids ─────────────────────────────────────────────
788 'dock.one_column': 'Une colonne',
789 'dock.2x2': '2 × 2',
790 'dock.2x3': '2 × 3',
791 'dock.3x2': '3 × 2',
792 'dock.automatic': 'Automatique',
793
794 // ── The panel gallery rows ─────────────────────────────────
795 'gallery.search_ph': 'Rechercher un panneau',
796 'gallery.no_match': 'Aucun panneau de ce nom.',
797 'gallery.zone_rail': 'La barre latérale',
798 'gallery.zone_stage': 'À côté du chat',
799 'gallery.zone_dock': 'Le dock',
800 'gallery.note': 'Les panneaux épinglés se placent dans la barre du haut. Appuyez sur <kbd>Ctrl</kbd> <kbd>K</kbd> pour atteindre n’importe quel panneau au clavier.',
801 'gallery.state_unrevealed': 'pas encore utilisé',
802 'gallery.state_full': 'dock plein',
803 'gallery.state_open': 'ouvert',
804 'gallery.state_no_room': 'pas de place dans la barre',
805 'gallery.pin': 'Garder {name} dans la barre du haut',
806 'gallery.unpin': 'Retirer {name} de la barre du haut',
807
808 // ── Spending ───────────────────────────────────────────────
809 'spend.intro': 'Deux caisses, tenues séparées. L’inférence tourne sur votre propre clé de fournisseur ; les crédits paient à la passerelle les quelques choses qui sortent du navigateur.',
810 'spend.inference': 'Inférence',
811 'spend.inference_hint': 'facturée sur votre propre clé de fournisseur',
812 'spend.credits': 'Crédits',
813 'spend.credits_hint': 'services de la passerelle : web, mail, sync',
814 'spend.no_usage': 'Aucun usage enregistré.',
815 'spend.no_account': 'Pas encore de compte passerelle. Les crédits paient les quelques choses qui sortent du navigateur : récupérer une page web, envoyer ou synchroniser du courrier, la synchronisation entre appareils. Ajoutez une phrase secrète et des crédits pour commencer.',
816 'spend.this_week': 'cette semaine',
817 'spend.this_month': 'ce mois-ci',
818 'spend.session': 'cette session',
819 'spend.balance': 'solde',
820 'spend.tok': 'tok',
821 'spend.period_day': 'Aujourd’hui',
822 'spend.period_week': 'Semaine',
823 'spend.period_month': 'Mois',
824 'spend.no_turns': 'Aucun tour dans cette fenêtre pour l’instant.',
825 'spend.nothing_yet': 'Rien pour l’instant.',
826 'spend.nothing_spent': 'Rien de dépensé ici pour l’instant.',
827 'spend.no_movements': 'Aucun mouvement de crédits pour l’instant.',
828 'spend.where_credits_went': 'Où sont passés les crédits',
829 'spend.unknown_model': '(inconnu)',
830 'spend.meter_help': 'Voir où vont vos dépenses',
831 'spend.rates_note': 'Les montants sont convertis à des taux approximatifs ({date}) ; vous êtes facturé en dollars américains.',
832 'spend.col_model': 'Modèle',
833 'spend.col_turns': 'Tours',
834 'spend.col_tokens': 'Tokens',
835 'spend.col_cost': 'Coût',
836 'spend.col_key': 'Clé',
837 'spend.col_left': 'Reste',
838 'spend.col_period_spend': 'Dépensé',
839 'spend.provider_keys': 'Clés de fournisseur',
840 'spend.left_auto': 'Ce que le fournisseur dit qu’il reste sur cette clé.',
841 'spend.left_manual': 'Votre propre chiffre, diminué de ce que Daimond estime que vous avez dépensé depuis.',
842 'spend.left_unknown': 'Ce fournisseur ne dit pas ce qu’il reste, et vous ne l’avez pas dit à Daimond.',
843 'spend.all_reported': 'Chaque tour de cette période est venu avec un coût du fournisseur : c’est donc ce qui a été facturé.',
844 'spend.part_reported': '{amount} de ce total ont été signalés par les fournisseurs ; le reste est chiffré d’après la table de tarifs de Daimond.',
845 'spend.none_reported': 'Chiffré d’après la table de tarifs de Daimond. Aucun fournisseur n’a signalé de coût pour ces tours.',
846 'spend.none_reported_unknown': 'Chiffré d’après la table de tarifs de Daimond, où l’un de ces modèles manque : le chiffre n’est qu’un ordre de grandeur.',
847 'spend.repriced': 'Les estimations faites avant la correction de la table de tarifs ont été rechiffrées sur cet appareil ; avec l’ancienne table, cette période affichait {amount}.',
848 'spend.col_when': 'Quand',
849 'spend.col_what': 'Objet',
850 'spend.col_amount': 'Montant',
851 'spend.col_balance': 'Solde',
852 'spend.cat_web': 'Pages web',
853 'spend.cat_search': 'Recherches web',
854 'spend.cat_mail': 'Courrier',
855 'spend.cat_sync': 'Sync entre appareils',
856 'spend.cat_storage': 'Fichiers stockés',
857 'spend.cat_infer': 'Inférence sur crédits',
858 'spend.cat_other': 'Autres services',
859 'spend.cat_topup': 'Crédits achetés',
860 'spend.cat_refund': 'Remboursements',
861 'spend.cat_grant': 'Cadeaux et dotations',
862 'spend.cat_adjust': 'Ajustements',
863 'spend.cat_fallback': 'Autre',
864 'spend.cat_unlisted': 'Non attribué',
865
866 // ── Tools ──────────────────────────────────────────────────
867 'tools.unlock_price': 'Débloquer pour {price}',
868 'tools.unreachable': 'Le service de comptes n’a pas pu être joint : ce qui est débloqué ici est inconnu.',
869 'tools.no_service': 'Le service de comptes est indisponible.',
870
871 // ── Errors the app rewrites for the user ───────────────────
872 'err.unreachable': 'Impossible de joindre ce point d’accès. Vérifiez l’URL de base dans les Réglages, et votre connexion.',
873 'err.rejected_401': 'Votre clé d’API a été refusée (401). Ouvrez les Réglages et vérifiez-la.',
874 'err.denied_403': 'Le fournisseur a refusé l’accès (403). Vérifiez votre clé et votre offre.',
875 'err.notfound_404': 'Le fournisseur a répondu 404. Si les étapes précédentes de ce tour ont fonctionné, l’URL de base est correcte et le modèle n’a pas pu traiter cette requête précise — le plus souvent une requête contenant une image. Sinon, vérifiez l’URL de base dans les Réglages.',
876 'err.ratelimit_429': 'Le fournisseur vous limite (429). Attendez un instant et réessayez.',
877 'err.server_5xx': 'Le fournisseur a eu une erreur serveur. Réessayez dans un instant.',
878 'err.generic': 'Quelque chose s’est mal passé. Réessayez.',
879 'err.reply_cut': 'La réponse a manqué de place à {max} jetons, un appel d’outil est donc arrivé incomplet et n’a pas pu s’exécuter. Augmentez la longueur de réponse dans les Réglages, ou demandez un changement plus petit',
880
881 // ── Longueur maximale d’une réponse ────────────────────────
882 'settings.max_tokens': 'Réponse la plus longue',
883 'settings.max_tokens_auto': 'Automatique',
884 'settings.tokens': 'jetons',
885 'settings.max_rounds': 'Étapes par tour',
886 'settings.crystal_limits': 'Taille du cristal',
887 'settings.crystal_cap': 'Limite de taille du cristal',
888 'settings.crystal_cap_note': 'Un cristal est le résumé d’un Diamond : il a donc un plafond. Au-delà, un daimon met le détail dans un fichier de la portée du Diamond.',
889 'settings.crystal_cap_auto': 'Par défaut',
890 'settings.crystal_page_cap': 'Limite de taille de la page',
891 'settings.crystal_page_cap_note': 'La page qui affiche les données d’un Diamond. Elle voyage à chaque synchronisation et partage le budget avec les données.',
892 'settings.max_rounds_auto': 'Par défaut',
893 'settings.steps': 'étapes',
894 'settings.max_rounds_note': 'Combien de fois un agent peut utiliser un outil avant qu’un tour s’arrête. Il le dit en s’arrêtant, et vous pouvez lui demander de continuer.',
895 'settings.fold_at': 'Replier la conversation à',
896 'settings.fold_at_auto': 'Par défaut',
897 'settings.fold_at_note': 'Le remplissage de la fenêtre de contexte avant que Daimond ne remplace la partie ancienne d’un chat par un résumé. Il le dit dans le fil quand cela arrive. Plus bas replie plus tôt et plus souvent ; plus haut garde davantage de la conversation mot pour mot.',
898 'settings.max_tokens_note': 'Longueur maximale d’une seule réponse. Trop basse, et un gros fichier arrive coupé en deux.',
899 'settings.max_tokens_ceiling': 'accepte jusqu’à',
900
901 // ── Quand les conversations ne sont plus enregistrées ──────
902 'store.alarm': 'Vos conversations ne sont pas enregistrées.',
903 'store.alarm_advice': 'Tout ce qui est à l’écran est encore là, mais un rechargement le perdrait. Téléchargez une copie maintenant.',
904 'store.alarm_download': 'Télécharger une copie',
905 'store.alarm_retry': 'Réessayer',
906 'store.full': 'il ne reste plus de place dans le stockage de ce navigateur pour ce site',
907 'identity.err_no_sealing_key': 'Cet appareil n’a pas de clé de scellement, il ne peut donc pas ouvrir un message scellé. Déverrouillez l’identité une fois et une clé sera créée.',
908 'store.empty_read': 'ce navigateur n’a rendu aucune des {n} conversations qu’il détient',
909 // ── L’échelle des permissions ──────────────────────────────
910 'permmode.title': 'Mode de permission',
911 'permmode.lead': 'Ce que Daimond fait sans demander',
912 'permmode.chip_help': 'Ce que Daimond fait sans demander',
913 'permmode.chip_aria': 'Mode de permission : {mode}. Changez-le.',
914 'permmode.astat': 'Permissions : {mode}',
915 'permmode.never': 'Aucun mode ne déplace l’enclos, les dossiers d’un Diamond, ni le journal.',
916 'permmode.failed': 'Ce mode de permission n’a pas pu être appliqué ; rien n’a changé.',
917 'permmode.net_head': 'Les commandes et le réseau',
918 'permmode.net_open': 'Rien n’a été lu de l’extérieur, donc rien n’est retenu.',
919 'permmode.net_cut': 'Quelque chose écrit par quelqu’un d’autre a été lu, donc les commandes s’exécutent sans réseau.',
920 'permmode.net_allowed': 'Les commandes peuvent atteindre le réseau.',
921 'permmode.net_refused': 'Les commandes s’exécutent sans réseau.',
922 'permmode.net_bypass': 'En mode « Sans demande », rien n’est retenu.',
923 'permmode.net_each': 'Demander une fois par conversation',
924 'permmode.net_always': 'Toujours autoriser',
925 'permmode.net_never': 'Jamais',
926 'permmode.net_cut_mark': 'sans réseau',
927 'permmode.ask': 'Demander à chaque fois',
928 'permmode.ask_blurb': 'Chaque commande vous est soumise d’abord. Joindre le web aussi, une fois par conversation.',
929 'permmode.guarded': 'Surveillé',
930 'permmode.guarded_blurb': 'Les commandes s’exécutent. Dès que quelque chose écrit par quelqu’un d’autre a été lu, Daimond demande avant de sortir.',
931 'permmode.bypass': 'Sans demande',
932 'permmode.bypass_blurb': 'Rien n’est demandé, quoi qu’il ait été lu.',
933 'permmode.bypass_title': 'Arrêter de demander ?',
934 'permmode.bypass_body': 'Les commandes s’exécutent sur votre machine et les pages sont récupérées sans demander — y compris après que Daimond a lu une page, un courriel ou un journal de compilation écrit par quelqu’un d’autre.\n\nC’est ce dernier cas que vous cédez : celui où quelque chose que vous n’avez pas écrit pourrait convaincre Daimond d’envoyer votre travail ailleurs.\n\nRestent intacts : l’enclos dans lequel une commande s’exécute, les dossiers propres de chaque Diamond, le filtre d’appels système et le journal que vous pouvez vérifier après coup — et le texte venu de l’extérieur reste marqué comme les mots de quelqu’un d’autre.\n\nOn ne vous le redemandera pas.',
935 'permmode.bypass_ok': 'Utiliser sans demande',
936 'permmode.run_title': 'Exécuter cette commande ?',
937 'permmode.run_body': 'Daimond veut exécuter une commande sur votre machine.\n\n{cmd}\n\ndans {cwd}\n\nLe mode « demander à chaque fois » vous soumet chaque commande d’abord.',
938 'permmode.run_ok': 'L’exécuter',
939 'permmode.net_title': 'Laisser cette commande atteindre le réseau ?',
940 'permmode.net_body': 'Daimond a lu quelque chose écrit par quelqu’un d’autre, donc les commandes s’exécutent sans réseau. Ce qu’il a lu pourrait choisir où va cette commande.\n\n{cmd}\n\ndans {cwd}\n\nOui laisse passer cette commande, et elle seule. Non l’exécute quand même, sans réseau — et c’est aussi ce qui arrive si vous ne dites rien.',
941 'permmode.net_ok': 'Autoriser le réseau',
942 'permmode.net_remember': 'Autoriser dans chaque conversation et ne plus demander',
943 'permmode.act_worker_title': 'Un agent veut agir sur une page',
944 'permmode.act_worker_body': 'Un agent qui travaille de lui-même veut cliquer sur quelque chose sur {host}. Vous ne le pilotez pas et il ne peut pas vous demander lui-même : c’est donc Daimond qui demande. Un clic peut dépenser votre argent, envoyer un message ou valider un formulaire, et rien de tout cela ne peut être annulé. Dire oui autorise ce seul clic et rien après lui.',
945 'permmode.type_worker_body': 'Un agent qui travaille de lui-même veut saisir ceci dans {host} et l’envoyer :\n\n{text}\n\nVous ne le pilotez pas et il ne peut pas vous demander lui-même : c’est donc Daimond qui demande. Un texte envoyé à un site ne peut plus être retiré. Dire oui autorise ce seul acte et rien après lui.',
946 'permmode.net_not_fetch': 'Il s’agit ici des commandes. Une page que Daimond va chercher lui-même est une question distincte : posée une fois par conversation, et un oui y vaut pour tous les sites jusqu’à la fin de cette conversation.',
947 'pal.kind_permmode': 'Permissions',
948 'chat.compacted': 'Conversation repliée',
949 'chat.compacted_help': 'Daimond a remplacé la partie ancienne par un résumé, pour que la conversation tienne dans la fenêtre de contexte du modèle.',
950 'chat.fold_boundary': 'Le modèle n’a plus ce qui est au-dessus de cette ligne tel qu’il a été écrit : il a le résumé de cette note, plus les {kept} messages les plus récents. Tout ce qui est au-dessus reste à l’écran, vous pouvez le lire et le citer.',
951 'chat.shortened': 'Réponses raccourcies pour le modèle',
952 'chat.shortened_help': 'Daimond a envoyé les réponses anciennes raccourcies, pour que la conversation tienne dans la fenêtre de contexte du modèle. Chacun de leurs mots reste à l’écran et dans votre historique.',
953 'chat.working_more': '+{n} caractères',
954
955 // ── Toasts ─────────────────────────────────────────────────
956 'toast.copied': 'Copié',
957 'render.copy_failed': 'Échec',
958
959 // ── The model list ─────────────────────────────────────────
960 'models.credits_row': 'Crédits Daimond',
961 'models.custom_provider_name': 'Fournisseur personnalisé',
962 'models.the_provider': 'votre fournisseur',
963 'models.empty': 'Aucun fournisseur pour l’instant. Ajoutez-en un pour donner à Daimond un modèle avec lequel penser.',
964 'models.balance_left': 'il reste {amount}',
965 'models.via': 'via {provider}',
966 'models.count.one': '{n} modèle',
967 'models.count.other': '{n} modèles',
968 'models.row_paid_help': 'Ces modèles dépensent votre solde Daimond. Votre navigateur appelle {provider} directement avec une clé émise pour vous ; rien ne passe par Daimond.',
969 'models.row_own_help': 'Ces modèles sont facturés sur votre propre compte {provider}. Ils ne touchent pas à votre solde Daimond.',
970 'models.sealed': 'scellée',
971 'models.key_set': 'clé enregistrée',
972 'models.no_key': 'pas de clé',
973 'models.connecting': 'connexion…',
974 'models.no_credits': 'pas de crédits',
975 'models.offline': 'service de comptes injoignable',
976 'models.could_not_connect': 'connexion impossible',
977 'models.unlock_to_use': 'déverrouillez pour utiliser',
978 'models.sealed_unlock': 'scellée, déverrouillez pour l’utiliser',
979 'models.top_up_to_use': 'rechargez pour utiliser',
980 'models.top_up': 'Rechargez vos crédits →',
981 'models.ask_provider': 'Demander à ce fournisseur ce qu’il peut exécuter',
982 'models.ask_provider_again': 'Redemander à ce fournisseur',
983 'models.list_asked': 'Listé {when}.',
984 'models.list_never': 'Jamais demandé.',
985 'models.add_key_first': 'Ajoutez d’abord une clé',
986 'models.asking': 'Demande en cours…',
987 'models.econ_credits': 'crédits',
988 'models.econ_own': 'votre clé',
989 'models.favourites': 'Favoris',
990 'models.is_default': 'par défaut',
991 'models.model_is_default': 'Les nouveaux chats et Diamonds démarrent sur ce modèle.',
992 'models.model_make_default': 'Faire démarrer les nouveaux chats et Diamonds sur ce modèle.',
993 'models.model_paid': 'Dépense votre solde Daimond, via {provider}.',
994 'models.model_own': 'Facturé sur votre propre compte {provider}.',
995 'models.model_twin': 'Un autre fournisseur sert un modèle de ce nom. Voici celui de {provider}.',
996 'models.remove': 'Retirer {provider}',
997 'models.starts_on': 'Les nouveaux chats démarrent sur : {model}',
998 'models.no_default': 'Aucun modèle par défaut. Mettez une étoile à l’un des modèles ci-dessus.',
999 'models.none_yet': 'Aucun fournisseur',
1000 'models.err_refused': 'Le service de comptes a refusé (HTTP {status}).',
1001 'models.err_bad_key': 'Le service de comptes a envoyé une clé que Daimond ne peut pas utiliser.',
1002 'models.err_no_key': 'Ce fournisseur n’a pas encore de clé.',
1003 'models.err_key_refused': 'Le fournisseur a refusé la clé (HTTP {status}).',
1004 // What is left on a provider key, and how that is known. The manual line is
1005 // deliberately not called a balance: it is the user’s own figure less an estimate.
1006 'models.credit_auto': 'Il reste {amount} sur cette clé, selon le fournisseur le {when}.',
1007 'models.credit_manual': 'Il reste {amount}. Vos {base} du {when}, moins environ {spent} dépensés depuis.',
1008 'models.credit_unknown': 'On ne sait rien de ce qui reste sur cette clé.',
1009 'models.credit_check': 'Demander ce qu’il reste',
1010 'models.credit_recheck': 'Redemander',
1011 'models.credit_probe_failed': '{provider} n’a pas voulu dire ce qu’il reste. Dites-le vous-même à Daimond.',
1012 'models.credit_base_ph': 'p. ex. 12.50',
1013 'models.credit_base_label': 'Ce qu’il y a sur cette clé maintenant, en dollars américains',
1014 'models.credit_base_set': 'J’ai ce montant, à cet instant',
1015 'models.credit_base_update': 'Mettre à jour mon chiffre',
1016 'models.credit_base_bad': 'Ce n’est pas un montant. Saisissez un nombre de dollars américains.',
1017 // Un chiffre demandé au fournisseur, dont cet appareil a vu partir de
1018 // l’argent depuis.
1019 'models.credit_auto_spent': 'Il reste {amount}. Le fournisseur annonçait {base} le {when}, moins environ {spent} dépensés ici depuis.',
1020 // L’âge du chiffre. Sans lui, un montant qui ne bouge plus ressemble
1021 // exactement à un montant à jour.
1022 'models.age_now': 'Vérifié à l’instant.',
1023 'models.age_mins.one': 'Vérifié il y a {n} minute.',
1024 'models.age_mins.other': 'Vérifié il y a {n} minutes.',
1025 'models.age_hours.one': 'Vérifié il y a {n} heure.',
1026 'models.age_hours.other': 'Vérifié il y a {n} heures.',
1027 'models.age_days.one': 'Vérifié il y a {n} jour.',
1028 'models.age_days.other': 'Vérifié il y a {n} jours.',
1029 'models.age_failed': 'La dernière vérification n’a pas répondu, ce chiffre n’a donc pas bougé depuis.',
1030
1031 // ── The Web panel, continued ───────────────────────────────
1032 'web.blind_title_at': 'C’est vous qui conduisez. Je me suis arrêté à {where}.',
1033 'web.guide': 'Guide',
1034 'web.guide_title': 'Le guide d’utilisation de Daimond',
1035 'web.panel_for': 'Le panneau Web',
1036 'web.who_you': 'Vous',
1037 'web.who_daimond': 'Daimond',
1038 'web.who_ready': 'Prêt',
1039 'web.who_view_only': 'Lecture seule',
1040 'web.who_you_help': 'C’est vous qui conduisez. Daimond ne regarde pas cette page.',
1041 'web.who_daimond_help': 'Daimond conduit. Vous pouvez reprendre le volant à tout moment.',
1042 'web.who_ready_help': 'Daimond Hands est installé.',
1043 'web.who_view_only_help': 'Cette page peut être affichée, mais pas pilotée. Installez Daimond Hands pour la conduire.',
1044 'web.opening': '<b>Ouverture de {host}…</b><br>Une fenêtre <b>Daimond Hands</b> s’ouvre devant. Approuvez-y le site, puis confirmez une fois dans Chrome. Les deux n’arrivent qu’à la première visite d’un site.',
1045 'web.not_approved': '<b>{host} n’a pas été approuvé.</b><br>',
1046 'web.approval_closed': 'La fenêtre d’approbation a été fermée, ou vous avez refusé. Pour autoriser, redemandez le site et cliquez sur <b>Autoriser, puis confirmer dans Chrome</b>. La fenêtre s’ouvre devant celle-ci, et l’icône <b>Daimond Hands</b> garde la question jusqu’à votre réponse.',
1047 'web.approved_late': '<b>{host} a été approuvé.</b> Votre réponse est arrivée après que Daimond a cessé d’attendre : le panneau a donc dit le contraire un instant. La page est ouverte à présent.',
1048 'web.answer_late': 'Votre réponse est arrivée après que Daimond a cessé d’attendre. ',
1049 'web.driving_tab': '<b>Daimond conduit {host}</b> dans un onglet du navigateur. Regardez-y, ou ramenez une image en direct dans ce panneau.',
1050 'web.show_live': 'Afficher la vue en direct ici',
1051 'web.real_tab': 'La page s’ouvre dans un véritable onglet du navigateur, seul capable de porter vos propres connexions ; ce panneau n’en montre donc qu’une image.',
1052 'web.mirror_wait': 'En attente de la première image de cet onglet. Si Chrome a placé une fenêtre d’autorisation devant, elle attend votre réponse.',
1053 'web.mirror_silent': 'Rien ne revient de Daimond Hands depuis un moment : il n’y a pas d’image en direct. L’onglet lui-même est toujours ouvert, et reste la page.',
1054 'web.mirror_refused': 'Cet onglet ne peut pas être photographié : il n’y a pas d’image en direct. Regardez l’onglet lui-même, ou redemandez l’image.',
1055 'web.blocked': '<b>{host}</b> refuse de s’afficher dans une autre page. La plupart des sites bloquent cela pour se protéger du clickjacking ; ce n’est pas une panne.',
1056 'web.blocked_hands': 'Daimond Hands peut le conduire dans un vrai onglet.',
1057 'web.blocked_install': 'Installez Daimond Hands pour le conduire en direct.',
1058 'web.open_new_tab': 'Ouvrir dans un nouvel onglet',
1059 'web.read_as_text': 'Le lire en texte',
1060 'web.reading': 'Lecture…',
1061 'web.read_failed': 'Cette page n’a pas pu être lue : {reason}',
1062 'web.readonly_badge': 'Copie en lecture seule, pas le site en direct. Ne vous connectez pas ici.',
1063
1064 // ── Passkeys ───────────────────────────────────────────────
1065 'passkey.err_need_passphrase': 'Une phrase secrète est nécessaire pour enregistrer une clé d’accès.',
1066 'passkey.err_no_identity': 'Il n’y a aucune identité à protéger par une clé d’accès.',
1067 'passkey.err_bad_passphrase': 'Cette phrase secrète ne correspond pas.',
1068 'passkey.err_cannot_create': 'Ce navigateur ou cet appareil ne peut pas créer de clé d’accès.',
1069 'passkey.err_create_failed': 'La création de la clé d’accès a été annulée ou a échoué.',
1070 'passkey.err_none_created': 'Aucune clé d’accès n’a été créée.',
1071 'passkey.err_no_prf': 'Cet authentificateur ne prend pas en charge l’extension PRF : il ne peut pas déverrouiller Daimond.',
1072 'passkey.err_not_sealed': 'La clé d’accès n’a pas pu être scellée. Rien n’a été enregistré.',
1073 'passkey.err_not_saved': 'La clé d’accès n’a pas pu être enregistrée sur cet appareil.',
1074 'passkey.err_not_enrolled': 'Aucune clé d’accès n’est enregistrée sur cet appareil.',
1075 'passkey.err_unreadable': 'La clé d’accès n’a pas pu être lue.',
1076 'passkey.err_unreadable_use_pass': 'La clé d’accès n’a pas pu être lue. Utilisez votre phrase secrète.',
1077 'passkey.err_wrong_identity': 'La clé d’accès ne correspond pas à cette identité. Utilisez votre phrase secrète.',
1078 'passkey.err_out_of_date': 'Cette clé d’accès est périmée. Déverrouillez avec votre phrase secrète, puis rajoutez-la.',
1079 'passkey.err_cannot_use': 'Ce navigateur ou cet appareil ne peut pas utiliser de clé d’accès.',
1080 'passkey.err_no_identity_support': 'La prise en charge de l’identité est indisponible.',
1081 'passkey.err_no_offer': 'Aucune clé d’accès Daimond n’a été proposée, ou elle ne portait pas de secret PRF.',
1082 'passkey.err_no_account_carried': 'Cette clé d’accès n’est pas configurée pour porter un compte. Sur l’appareil qui a votre compte, ouvrez les Réglages et rajoutez la clé d’accès.',
1083 'passkey.err_did_not_open': 'Cette clé d’accès n’a pas ouvert le compte.',
1084 'passkey.err_stored_unreadable': 'Le compte enregistré n’a pas pu être lu.',
1085 'passkey.err_stored_locked': 'Le compte enregistré ne s’est pas ouvert. Utilisez votre phrase secrète.',
1086 'passkey.err_not_resealed': 'La clé d’accès n’a pas pu être rescellée.',
1087
1088 // ── Verifying what was delivered ───────────────────────────
1089 'verify.page_title': 'Vérifier Daimond',
1090 'verify.page_lede': 'Vérifiez que le Daimond d’où vient cette page est bien la source ouverte publiée. La preuve est une empreinte que vous pouvez reproduire vous-même.',
1091 'verify.checking': 'Vérification de ce build…',
1092 'verify.recheck': 'Vérifier à nouveau',
1093 'verify.hashing': 'calcul des empreintes des fichiers servis… {done} / {total}',
1094 'verify.ids': 'build {build} · lot {bundle}',
1095 'verify.verdict_ok': 'Ce build est la source publiée, et il a été scellé.',
1096 'verify.verdict_no': 'Ce build ne correspond PAS à la source publiée.',
1097 'verify.verdict_partial': 'Vérification incomplète. Les contrôles disent pourquoi.',
1098 'verify.independent': 'La vérification indépendante.',
1099 'verify.independent_body': 'Une page ne peut pas se porter entièrement garante d’elle-même. Compilez la source publique et lancez le vérificateur ; rien de ce que ce serveur contrôle n’entre dans cette boucle :',
1100 'verify.this_site': 'ce site',
1101 'verify.green_means': 'Vert signifie que les octets servis par ce site sont la source que vous venez de compiler, et que ce build est une entrée scellée du <a href="{url}">journal public de transparence</a>.',
1102 'verify.check_manifest': 'manifeste',
1103 'verify.check_self': 'manifeste cohérent avec lui-même',
1104 'verify.check_log': 'journal public de transparence',
1105 'verify.check_sealed': 'scellé dans le journal public',
1106 'verify.check_files': 'chaque fichier servi correspond au manifeste',
1107 'verify.no_manifest': 'ce build a été servi sans manifest.json, il ne peut donc pas être vérifié',
1108 'verify.self_mismatch': 'l’empreinte du lot dans le manifeste ne correspond pas à sa liste de fichiers',
1109 'verify.log_broken': 'le journal public n’est pas une chaîne intacte : {reason}',
1110 'verify.log_unreachable': 'impossible de joindre le journal public (hors ligne, ou bloqué par une politique) ; lancez verify/check.mjs pour en être sûr',
1111 'verify.on_record': '{n} versions au registre',
1112 'verify.never_published': 'ce lot servi n’est PAS dans l’historique public ; il n’a jamais été publié',
1113 'verify.unreadable': '(illisible)',
1114 'verify.files_differ': '{n} diffèrent : {list}',
1115 'verify.files_ok': '{n} fichiers',
1116 'verify.chain_order': 'l’entrée {n} est hors ordre',
1117 'verify.chain_break': 'l’entrée {n} ne s’enchaîne pas sur {prev}',
1118 'verify.chain_hash': 'empreinte de l’entrée {n} incorrecte',
1119 'verify.caveat': 'Une page ne peut pas se porter garante d’elle-même : un serveur trafiqué pourrait trafiquer cette vérification aussi. Pour un verdict indépendant, compilez la source publique et lancez verify/check.mjs, ou utilisez l’extension de navigateur delivery-verify. Ce serveur ne peut toucher ni l’une ni l’autre.',
1120
1121 // ── Versions and the release history ───────────────────────
1122 'rel.version': 'Version',
1123 'rel.prerelease': 'Préversion',
1124 'rel.unsealed': 'Non scellé',
1125 'rel.update_ready': 'mise à jour prête',
1126 'rel.not_published': 'non publié',
1127 'rel.planned': 'prévu',
1128 'rel.next': 'suivant',
1129 'rel.you_are_here': 'vous êtes ici',
1130 'rel.today': 'aujourd’hui',
1131 'rel.yesterday': 'hier',
1132 'rel.days_ago.one': 'il y a {n} jour',
1133 'rel.days_ago.other': 'il y a {n} jours',
1134 'rel.months_ago.one': 'il y a {n} mois',
1135 'rel.months_ago.other': 'il y a {n} mois',
1136 'rel.years_ago.one': 'il y a {n} an',
1137 'rel.years_ago.other': 'il y a {n} ans',
1138 'rel.title_named': '{name}, build {build}, publié {date}.',
1139 'rel.title_prerelease': 'Préversion, build {build}, publié le {date}.',
1140 'rel.title_behind': 'Un build plus récent a été publié ; rechargez pour le prendre.',
1141 'rel.title_click': 'Cliquez pour voir ce qui a changé.',
1142 'rel.title_unlogged': 'Ce build n’est pas dans le journal publié. Cliquez pour l’historique.',
1143 'rel.no_date': 'Pas encore publié, et sans date promise.',
1144 'rel.no_history': 'Aucun historique publié n’a pu être lu.',
1145 'rel.none_declared': 'Aucune version n’a encore été déclarée. Vous utilisez un build antérieur à la première.',
1146 'rel.sealed_no': 'scellé nº {n}',
1147 'rel.sealed_builds.one': '{n} build scellé',
1148 'rel.sealed_builds.other': '{n} builds scellés',
1149 'rel.foot': 'Une version se déclare ; un build se déploie. Chaque build ici est inscrit dans une chaîne qui ne peut être réécrite sans se rompre. Il n’y a volontairement pas de retour à un build plus ancien.',
1150
1151 // ── Updates ────────────────────────────────────────────────
1152 'update.checking': 'Recherche de mises à jour…',
1153 'update.latest': 'Vous êtes sur la dernière version',
1154 'update.ready': 'Mise à jour prête',
1155 'update.click_now': 'Cliquez pour mettre à jour maintenant.',
1156 'update.ready_help': 'Mise à jour prête. Elle s’applique à la fin de ceci, ou cliquez pour la forcer.',
1157 'update.updated': 'Daimond mis à jour',
1158 'update.stale': 'Daimond n’est plus à jour et doit recharger pour continuer à fonctionner. Cliquez pour recharger.',
1159
1160 // ── Typst ──────────────────────────────────────────────────
1161 'typst.load_failed': 'Le compilateur Typst n’a pas pu se charger : {reason}',
1162 'typst.no_pdf': 'Typst n’a produit aucun PDF (erreur de compilation inconnue).',
1163 'typst.compile_error': 'Erreur de compilation Typst : {reason}',
1164 'typst.pack_locked': 'La composition fait partie d’un pack d’outils que ce compte n’a pas acheté. Le panneau Outils en donne le nom et le prix : acheté une seule fois, conservé définitivement, et payé en argent plutôt que sur vos crédits.',
1165 'typst.watch.starting': 'Composition des pages…',
1166 'typst.watch.building': 'Recompilation…',
1167 'typst.watch.live_preview': 'Aperçu en direct',
1168 'typst.watch.stale': 'Affichage de la dernière compilation réussie',
1169 'typst.watch.held': 'Recompilation arrêtée',
1170 'typst.watch.dead': 'Le compilateur s’est arrêté',
1171 'typst.watch.rebuild': 'Recompiler',
1172 'typst.watch.nothing': 'Le compilateur n’a rien produit et n’a donné aucune raison.',
1173 'typst.watch.heap': 'Le compilateur occupe {heap} Mo et une nouvelle compilation pourrait en demander {more} Mo de plus, ce qui dépasse les {budget} Mo qui lui sont accordés sur cette page. La recompilation à chaque enregistrement est arrêtée, et les pages ci-dessous sont les dernières qui se sont compilées. Le compilateur ne peut pas rendre cette mémoire : rechargez la page pour repartir à neuf, ou appuyez sur Recompiler pour essayer une fois quand même.',
1174 'typst.watch.spin': 'Un fichier surveillé continue d’annoncer un changement et il est trop gros pour être relu et vérifié : les pages ont été composées {n} fois de suite à cause de lui. La recompilation à chaque enregistrement est arrêtée, pour qu’elle ne remplisse pas la mémoire du compilateur. Appuyez sur Recompiler quand vous voulez les pages. Le fichier était {what}.',
1175 'typst.watch.page': 'Page',
1176 'typst.watch.zoom_out': 'Plus petit',
1177 'typst.watch.zoom_in': 'Plus grand',
1178 // Un mot sur le bouton, la forme longue dans l’infobulle.
1179 'typst.watch.fit_width': 'Ajuster à la largeur',
1180 'typst.watch.fit_page': 'Ajuster à la page entière',
1181 'typst.watch.paper_dark': 'Sombre',
1182 'typst.watch.paper_light': 'Clair',
1183 'typst.watch.paper_dark_why': 'Papier sombre, pour lire la nuit',
1184 'typst.watch.paper_light_why': 'Papier clair',
1185 'typst.watch.sections': 'Sections',
1186 'typst.watch.sections_none': 'Ce document n’a aucun titre à lister.',
1187 'typst.watch.dead_why': 'Le compilateur a manqué de mémoire sur ce document et ne peut pas redémarrer sans un rechargement de la page. Les pages ci-dessous sont les dernières qui se sont compilées. Rechargez, puis rouvrez le même fichier.',
1188
1189
1190 // ── The Admin drawer ───────────────────────────────────────
1191 'drawer.admin': 'Admin',
1192 'drawer.models': 'Modèles',
1193 'drawer.version': 'Version',
1194 'drawer.credits': 'Crédits',
1195 'drawer.push': 'Push',
1196
1197 // ── Dialogs ────────────────────────────────────────────────
1198 'dlg.are_you_sure': 'Vous êtes sûr ?',
1199 'dlg.ok': 'OK',
1200 'dlg.done': 'Terminé',
1201 'dlg.not_now': 'Plus tard',
1202
1203 // ── The Admin drawer's home menu ───────────────────────────
1204 'home.connect_model': 'Connecter un modèle',
1205 'home.connect_note': 'Daimond a besoin d’une clé de fournisseur ou de crédits avant de pouvoir répondre.',
1206 'home.locked': 'Verrouillé. Saisissez votre phrase secrète pour déverrouiller cet appareil.',
1207 'home.sec_account': 'Compte',
1208 'home.sec_prompts': 'Instructions',
1209 'home.sec_accounts': 'Comptes',
1210 'home.create_account': 'Créer un compte…',
1211 'home.account_note': 'Un compte est une phrase secrète gardée sur cet appareil. Elle chiffre votre clé d’API et vous identifie pour les crédits. Rien ne quitte le navigateur.',
1212 'home.fingerprint': 'L’empreinte d’identité de votre appareil',
1213 'home.change_name': 'Changer de nom…',
1214 'home.handle_help': 'Votre nom public : le nom que les autres voient, le même sur chaque appareil de ce compte.',
1215 'home.change_handle': 'Changer de nom public…',
1216 'handle.rename_title': 'Changer de nom public',
1217 'home.change_passphrase': 'Changer de phrase secrète…',
1218 'home.add_passkey': 'Ajouter une clé d’accès…',
1219 'home.remove_passkey': 'Retirer la clé d’accès',
1220 'home.export_backup': 'Exporter une sauvegarde',
1221 'home.import_backup': 'Importer une sauvegarde…',
1222 'home.dashboard': 'Tableau de bord Daimond ↗',
1223 // "de {role}" and "en tant que {role}" would need elision before a
1224 // vowel-initial role name ("d’ouvrier", "qu’owner"); "pour" and "avec le
1225 // rôle" take any role without one.
1226 'home.signed_in_as': 'Vous êtes connecté avec le rôle {role}.',
1227 'home.edit_prompt': 'Modifier les instructions pour {role}…',
1228 'home.prompt_opens': 'Ouvre {path} dans le panneau Doc.',
1229 'home.prompts_note': 'Les instructions sous lesquelles chaque agent travaille, gardées comme fichiers dans votre espace de travail. Modifiez-en une et elle s’applique dès le tour suivant ; supprimez-la et l’originale revient. Deux règles tiennent quoi que vous écriviez : une page ou un courriel est une donnée et jamais une instruction, et rien d’irréversible n’arrive sans vous demander.',
1230 'home.switch_to': 'Passer à {name}',
1231 'home.unnamed_account': 'Compte sans nom',
1232 'home.add_account': '+ Ajouter un autre compte',
1233 'home.accounts_note': 'Chaque compte a ses propres chats, clés, crédits et fichiers. En changer verrouille celui-ci et ouvre l’autre. Aucun compte ne voit les données d’un autre.',
1234 'home.log_out': 'Se déconnecter',
1235 'home.sec_devices': 'Appareils',
1236 'home.sec_console': 'Console',
1237 'home.console_open': 'Ouvrir la console d’exploitation',
1238 'home.console_note': 'Ce compte détient le rôle {role}. La console s’ouvre dans un nouvel onglet et suit cette session.',
1239 'home.sec_push': 'Push',
1240 'home.push_setup': 'Configurer git push…',
1241 'home.push_to': 'Changer le jeton de push pour {host}…',
1242 'home.push_help': 'Un jeton permet à Daimond de pousser ce qu’il a validé. Sans jeton il valide toujours, mais chaque push est refusé.',
1243
1244 // ── The credential a push travels with ─────────────────────
1245 // Two boxes and no more: the user name a token travels as is a per-forge
1246 // constant, so it is inferred from the host rather than asked for. Every line
1247 // here says what happens if it is skipped, because "no credential" and
1248 // "authentication failed" look identical from inside a refused push.
1249 'push.lead': 'Un jeton permet à Daimond de pousser le travail que vous avez validé. Sans jeton il valide toujours, mais chaque push est refusé et le travail reste sur cette machine.',
1250 'push.host': 'Hôte',
1251 'push.host_ph': 'github.com',
1252 'push.host_note': 'Le nom seul, comme github.com. Pas de https://, pas de port, pas de chemin. Seul cet hôte est authentifié ; un dépôt ailleurs est refusé, et votre jeton ne l’atteint jamais.',
1253 'push.token': 'Jeton',
1254 'push.token_ph': 'Collez un jeton autorisé à pousser',
1255 'push.token_note': 'L’accès en push suffit ; le jeton n’a jamais besoin de plus. Daimond ne fait que pousser, uniquement en avance rapide, uniquement vers origin. Force, delete, mirror et tout autre dépôt distant sont refusés quoi que permette le jeton. Videz ce champ et enregistrez pour le retirer.',
1256 'push.save': 'Enregistrer',
1257 'push.privacy': 'Le jeton est chiffré avec votre phrase secrète et reste dans ce navigateur. Il n’est plus jamais affiché, jamais envoyé chez nous, jamais confié à un modèle. Sans compte, il n’y a rien pour le chiffrer : il ne vaut alors que pour cet onglet et vous sera redemandé après un rechargement.',
1258 'push.set': 'Défini. Un push atteint {host}.',
1259 'push.none': 'Non défini. Chaque push est refusé tant qu’aucun jeton n’est enregistré ici.',
1260 'push.saved': 'Enregistré. Chiffré avec votre phrase secrète et repris à chaque déverrouillage.',
1261 'push.cleared': 'Retiré. Les push sont de nouveau refusés tant qu’aucun jeton n’est enregistré ici.',
1262 'push.session_only': 'Valable pour cet onglet seulement. Sans compte, il n’y a rien pour le chiffrer : un rechargement le redemandera. Créez un compte pour le conserver.',
1263 'push.err_host': 'Indiquez l’hôte visé par le push, comme github.com, ou videz le champ du jeton pour retirer les identifiants.',
1264 'push.err_not_held': 'Cela n’a pas été accepté : aucun identifiant de push n’est conservé. Vérifiez l’hôte et le jeton.',
1265 'push.not_resealed': 'Votre phrase secrète a changé, mais le jeton de push n’a pas pu être rechiffré avec elle. Le push fonctionne jusqu’au rechargement. Redonnez le jeton pour le conserver.',
1266 'push.the_token': 'votre jeton de push',
1267
1268 // ── The devices that sync this account ─────────────────────
1269 'devices.on_platform': '{brand} sur {platform}',
1270 'devices.unknown': 'Cet appareil',
1271 'devices.this_device': 'cet appareil',
1272 'devices.only_this': 'Seul cet appareil synchronise ce compte.',
1273 'devices.rename_title': 'Nommer cet appareil',
1274 'devices.rename_body': 'Un nom pour distinguer cet appareil des autres. Videz le champ pour revenir à « {derived} ». Le nom est conservé avec vos propres données chiffrées et ne voyage que vers vos autres appareils.',
1275 'devices.rename_aria': 'Renommer {name}',
1276 'devices.note': 'Les appareils qui ont synchronisé ce compte. Celui qui détient le compte sans avoir jamais synchronisé n’y figure pas. Rien ici ne déconnecte un appareil : un appareil lié détient les mêmes clés que celui-ci, il faut donc s’en occuper là-bas.',
1277 'devices.remove_aria': 'Retirer {name}',
1278 'devices.remove_body': '« {name} » disparaît de cette liste. Cela ne déconnecte pas l’appareil. Il détient les mêmes clés que celui-ci, il réapparaîtra donc à sa prochaine synchronisation.',
1279 'devices.remove': 'Retirer',
1280 'devices.remove_title': 'Retirer cet appareil',
1281
1282 // ── The status rows under the rail ─────────────────────────
1283 'astat.offline': 'Hors ligne',
1284 'astat.service_unreachable': 'Service de comptes injoignable',
1285 'astat.no_account': 'Pas de compte de crédits',
1286 'money.daimond_credits': 'Crédits Daimond',
1287 'money.own_key': 'Votre clé {provider}',
1288 'money.own_keys': 'Vos propres clés',
1289 'money.left_at_rate': '~{mins} min à ce rythme',
1290 'money.spent_so_far': '{amt} dépensé',
1291 'money.spent_help': 'Votre fournisseur ne communique pas de solde : voici ce qui est passé par cette clé depuis le début du comptage.',
1292 'money.estimate_help': 'Votre propre chiffre, moins ce qui a été dépensé depuis. Mettez-le à jour dans Modèles lors d’une recharge.',
1293 'astat.locked': 'Verrouillé',
1294 'astat.credits': 'Crédits',
1295 'astat.credits_help': 'Achetez des crédits, ou connectez votre propre clé de fournisseur',
1296 'astat.pro_owned': 'Acquis',
1297 'astat.pro_owned_help': 'Vous avez Daimond Pro. Sync, stockage en ligne et e-mail sont actifs.',
1298 'astat.pro_ended': 'Licence terminée',
1299 'astat.pro_ended_help': 'Votre licence Pro a pris fin. Sync, stockage en ligne et e-mail sont coupés ; sur cet appareil, rien n’est touché.',
1300 'astat.pro_upgrade': 'Passer à Pro',
1301 'astat.pro_upgrade_help': 'Achetez cinq ans de Pro pour activer la sync, le stockage en ligne et l’e-mail.',
1302 'astat.tools': 'Outils · {have}',
1303 'astat.tools_of': 'Outils · {have} sur {all}',
1304 'astat.tools_help': 'Ce que Daimond sait faire, et ce que coûterait le reste.',
1305 'astat.workspace_browser': 'Espace · Navigateur',
1306 'astat.workspace_native': 'Espace · Machine',
1307 'astat.evictable': 'expulsable',
1308 'astat.store_of': '{used} sur {quota} que ce navigateur autorise.',
1309 'astat.store_persistent': 'Marqué comme persistant : le navigateur ne l’expulsera pas.',
1310 'astat.store_evictable': 'Non persistant : le navigateur peut expulser cet espace de travail s’il manque de place. Cliquez pour demander un stockage permanent.',
1311 'astat.not_connected': 'non connecté',
1312 'astat.native_help': 'Laissez les agents travailler sur un vrai dossier de cette machine.',
1313 'astat.n_files': '{n} fichiers',
1314 'astat.counting': 'Comptage. Cliquez pour arrêter.',
1315 'astat.part': '(partiel)',
1316 'astat.counted': '{n} fichiers sous {folder}.',
1317 'astat.counted_partial': '{n} fichiers sous {folder}, comptés jusqu’à votre arrêt.',
1318 'astat.count_again': 'Cliquez pour recompter.',
1319 'astat.count_offer': 'Cliquez pour compter. Le navigateur ne dit pas la taille d’un vrai dossier, et compter lit chaque fichier : une grande arborescence prend donc du temps. Vous pouvez arrêter à tout moment.',
1320 'astat.no_model': 'Aucun modèle connecté',
1321 'astat.model_help': 'Les modèles que Daimond peut faire tourner, et les clés derrière eux',
1322
1323 // ── Pro, in its own words ──────────────────────────────────
1324 'pro.owned_plain': 'Vous avez Daimond Pro. La synchronisation entre appareils, le stockage en ligne et l’e-mail sont actifs. Sans abonnement, et rien ne se renouvelle.',
1325 'pro.offer_plain': 'Un paiement, et Pro dure cinq ans. Il active la synchronisation entre appareils, le stockage en ligne et l’e-mail, de sorte que votre courrier est lu et envoyé dans l’espace de travail. Sans abonnement, et rien ne se renouvelle : au bout de cinq ans, vous décidez si vous rachetez. L’inférence, la bande passante et les autres usages mesurés restent payés avec des crédits.',
1326 'pro.checkout_failed': 'Impossible d’ouvrir le paiement',
1327 'pro.term_note': 'Pro dure cinq ans à compter de l’achat.',
1328 'pro.ends_on': 'Votre licence Pro prend fin le {date}.',
1329 'pro.ended_on': 'Votre licence Pro a pris fin le {date}. Sync, stockage en ligne et e-mail sont coupés ; sur cet appareil, rien n’est touché, et vous pouvez toujours récupérer ce qui est déjà stocké.',
1330 'pro.buy_again': 'Acheter cinq ans de plus',
1331 'pro.buy_again_priced': 'Acheter cinq ans de plus pour {price}',
1332
1333 // ── The egress gate ────────────────────────────────────────
1334 'egress.type_title': 'Saisir dans {host} ?',
1335 'egress.type_body': 'Ce tour a lu du contenu venu de l’extérieur de votre espace de travail. Daimond veut maintenant saisir du texte dans la page de {host}, qui peut le transmettre.\n\nCe qu’il veut entrer :\n\n{text}\n\nSi vous ne vous y attendiez pas, refusez.',
1336 'egress.type_ok': 'Le saisir',
1337 'egress.nothing': '(rien)',
1338 'egress.act_title': 'Agir sur {host} ?',
1339 'egress.act_body': 'Ce tour a lu du contenu venu de l’extérieur de votre espace de travail. Daimond veut maintenant agir sur la page de {host}.\n\nCelui qui a écrit la page a écrit ses liens, et en suivre un peut emporter de l’information.\n\nNe l’autorisez que si vous vous y attendiez.',
1340 'egress.act_ok': 'Autoriser à agir sur {host}',
1341 'egress.heavy_title': 'Envoyer ceci à {host} ?',
1342 'egress.heavy_body': 'Ce tour a lu du contenu venu de l’extérieur de votre espace de travail. Daimond veut maintenant joindre {host} avec une adresse inhabituellement longue.\n\nUne adresse peut emporter de l’information. Celle-ci emporte :\n\n{text}\n\nSi vous ne vous y attendiez pas, refusez. Rien n’est perdu, sinon cette seule requête.',
1343 'egress.heavy_ok': 'L’envoyer quand même',
1344 'egress.reach_title': 'Joindre {host} ?',
1345 'egress.reach_body': 'Ce tour a lu une page web ou un message venu de l’extérieur de votre espace de travail, et quelque chose là-dedans oriente peut-être Daimond.\n\nIl veut maintenant joindre {host}, où il n’est jamais allé. Tout ce qu’il sait pourrait partir dans cette adresse.\n\nNe l’autorisez que si vous vous y attendiez.',
1346 'egress.reach_ok': 'Autoriser {host}',
1347 'egress.any_title': 'Autoriser Daimond à joindre n’importe quel site ?',
1348 'egress.any_body': 'Cette conversation a lu une page web ou un message écrit par quelqu’un d’autre, et quelque chose là-dedans oriente peut-être Daimond.\n\nIl veut maintenant joindre {host}.\n\nDire oui lui permet de joindre n’importe quel site pendant le reste de cette conversation, et pas seulement celui-ci ; vous ne serez plus interrogé ici. Tout ce que Daimond sait peut s’écrire dans une adresse web : une page qu’il joint peut donc emporter vos mots.\n\nUne nouvelle discussion redemande, un nouveau daimon aussi. Une adresse anormalement longue vous est toujours soumise à part, quoi que vous répondiez maintenant.',
1349 'egress.any_ok': 'Autoriser tous les sites ici',
1350 // Dans une recherche, ce qui part est la REQUÊTE, pas une adresse. {query}
1351 // tient seule dans son paragraphe et jamais entre guillemets -- elle peut
1352 // en contenir elle-même.
1353 'egress.search_title': 'Chercher sur le web ?',
1354 'egress.search_body': 'Ce tour a lu du contenu venu de l’extérieur de votre espace de travail. Daimond veut maintenant chercher sur le web.\n\nCe qu’il veut chercher :\n\n{query}\n\nLa recherche passe par {engine}, votre réglage. Ce qui quitte cet appareil, c’est la requête.\n\nSi vous ne vous y attendiez pas, refusez. Rien n’est perdu, sinon cette seule recherche.',
1355 'egress.search_ok': 'Lancer cette recherche',
1356
1357 // ── A chat tile in the rail ────────────────────────────────
1358 'chat.tool_refused': 'refusé',
1359 'chat.tool_failed': 'échoué',
1360 'chat.copy_message': 'Copier le message',
1361 'chat.include_turn': 'Inclure ce tour au repliage',
1362 'chat.connect_to_chat': 'Connectez un fournisseur, ou déverrouillez, pour discuter avec ce modèle.',
1363 'tile.cost_estimated': 'Estimé. Ce modèle n’est pas dans la table des prix.',
1364 'tile.cost_so_far': 'Coût de ce chat jusqu’ici.',
1365 'tile.click_to_open': 'Cliquez pour ouvrir, double-cliquez pour renommer',
1366 'tile.settings': 'Réglages de cette tuile',
1367 'tile.settings_named': 'Réglages de « {name} »',
1368 'tile.close_named': 'Fermer « {name} »',
1369 'tile.dlg_name': 'Nom',
1370 'tile.dlg_name_hint': 'Sans nom : la barre latérale affiche l’heure',
1371 'tile.dlg_running': 'En marche',
1372 'tile.dlg_detail': 'Détail',
1373 'tile.spend_help': 'Ce que ce Diamond a coûté, sur {turns} tours.',
1374 'tile.detail_default': 'Par défaut ({what})',
1375 'tile.detail_default_help': 'Suivre l’affichage choisi dans Apparence, y compris ses changements.',
1376 'tile.detail_simple': 'Simple',
1377 'tile.detail_simple_help': 'Le nom, si elle tourne, et ce qui attend.',
1378 'tile.detail_max': 'Max',
1379 'tile.detail_max_help': 'Modèles, contexte, coût, version et dernière activité.',
1380 'tile.detail_note': 'Les tuiles suivent l’affichage sauf réglage contraire ici.',
1381 'tile.dlg_delete': 'Supprimer',
1382 'tile.start': 'Démarrer',
1383 'tile.start_help': 'Confirmez le modèle et démarrez ce chat',
1384 'tile.workers': 'Ouvriers',
1385 'tile.worker_model_help': 'Le modèle sur lequel tournent les ouvriers. Si vous n’y touchez pas, ils tournent sur le modèle du chat.',
1386 'tile.folded': 'Replié',
1387 'tile.fold_all': 'Tout replier',
1388 'tile.folded_help': 'Déjà replié dans « {name} ». Repliez encore pour ajouter ce qui est venu depuis.',
1389 'tile.fold_all_help': 'Replier ce chat entier dans un Diamond',
1390 'tile.dlg_colour': 'Couleur',
1391 'tile.colour_bg': 'Fond',
1392 'tile.colour_fg': 'Texte',
1393 'tile.colour_clear': 'Reprendre les couleurs du thème',
1394 'tile.colour_faint': 'Ces deux couleurs contrastent à {ratio}:1, sous le plancher habituel de {min}:1 pour du texte de cette taille. Laissé tel que choisi.',
1395
1396 // ── The spend governor ─────────────────────────────────────
1397 'gov.past_budget': 'Bien au-delà de votre budget',
1398 'gov.faster': 'Dépense plus vite que d’habitude',
1399 'gov.per_min': '{rate}/min',
1400 'gov.run_spent': 'Cette exécution a dépensé {spent} sur un budget de rythme de {budget}. Un grand déploiement demande avant de partir.',
1401 'gov.fanout_body.one': 'Ce Diamond va lancer {n} agent, pour environ {total} ({each} chacun).',
1402 'gov.fanout_body.other': 'Ce Diamond va lancer {n} agents, pour environ {total} ({each} chacun).',
1403 'gov.burst_spent': 'Cette rafale a déjà dépensé {spent}.',
1404 'gov.would_pass': 'Cela dépasserait votre budget de rythme de {budget} pour une exécution.',
1405 'gov.run_n.one': 'Lancer {n} agent',
1406 'gov.run_n.other': 'Lancer {n} agents',
1407 'spend.includes_estimate': 'Estimé. Au moins un des modèles présents n’est pas dans la table des prix.',
1408
1409 // ── Quoting a message without a readable date ──────────────
1410 'mail.quote.head_undated': '{who} a écrit :',
1411
1412 // ── The rail's Diamonds and chats ──────────────────────────
1413 'rail.no_diamonds': 'Aucun Diamond pour l’instant.',
1414 'rail.no_match': 'Aucun Diamond ne correspond.',
1415 'rail.no_chats': 'Aucun chat pour l’instant.',
1416 'rail.not_synced': 'pas encore synchronisée',
1417 'rail.not_synced_help': 'Cette conversation est sur un autre de vos appareils et n’est pas encore arrivée ici.',
1418 // Shown under the search box when nothing is tagged, so that an empty
1419 // filing system cannot be read as a missing one.
1420 'rail.tag_hint': 'Aucune étiquette pour l’instant. Étiquetez un Diamond et des puces de filtre apparaîtront ici.',
1421 'rail.tag_hint_help': 'Ouvrez un Diamond, puis Étiquettes sur son cristal. Des étiquettes de départ y sont proposées : {tags}.',
1422 'rail.dblclick_rename': 'Double-cliquez pour renommer',
1423 'rail.rename_diamond': 'Renommer le Diamond',
1424 'rail.rename': 'Renommer',
1425 'rail.rename_failed': 'Le renommage a échoué',
1426 'rail.delete_failed': 'La suppression a échoué',
1427 'rail.create': 'Créer',
1428 'rail.name': 'Nom',
1429 'rail.model': 'Modèle',
1430 'rail.worker_model': 'Modèle pour les ouvriers',
1431 'rail.worker_model_help': 'Le daimon dépêche des ouvriers, plusieurs à la fois. Si vous n’y touchez pas, ils tournent sur le modèle du Diamond.',
1432 'rail.err_no_key_worker': 'Le fournisseur des ouvriers n’a pas encore de clé lisible : ils retomberaient sur le modèle du Diamond. Déverrouillez la clé, ou choisissez un autre fournisseur.',
1433 'rail.err_name': 'Donnez un nom au Diamond.',
1434 'rail.err_model': 'Choisissez un modèle avec lequel ce Diamond va penser.',
1435 'rail.err_no_key': 'Ce fournisseur n’a pas encore de clé lisible. Déverrouillez, ou ajoutez-en une.',
1436 'rail.create_failed': 'Impossible de créer le Diamond',
1437 'rail.created_unreadable': 'Diamond créé, mais illisible',
1438 'rail.created_unreadable_body': '« {name} » a été écrit mais n’a pas pu être relu : il n’est donc pas dans la barre latérale. Rechargez la page. S’il manque toujours, le stockage de cet appareil refuse de rendre ce qu’il a accepté.',
1439
1440 // ── Quand un chat a eu lieu, et le garder ──────────────────
1441 'rail.day_today': 'Aujourd’hui',
1442 'rail.day_yesterday': 'Hier',
1443 'rail.day_earlier': 'Avant',
1444 'rail.when_now': 'à l’instant',
1445 'rail.when_min': 'il y a {n} min',
1446 'rail.when_hr': 'il y a {n} h',
1447 'rail.a_chat': 'un chat',
1448 // Entre parenthèses : {when} vaut aussi bien « il y a 5 min » qu’une heure
1449 // ou une date, et aucune préposition ne convient aux trois.
1450 'rail.chat_from': 'le chat ({when})',
1451 'rail.show_preview': 'Afficher le premier message',
1452 'rail.show_preview_help': 'Affiche sous l’heure la première chose que vous avez dite dans chaque chat. Désactivé, la barre latérale n’indique plus que le moment.',
1453 'tile.keep': 'Garder',
1454 'tile.keep_help': 'Fait de ce chat un Diamond, avec toute la conversation comme premier artefact.',
1455 'keep.title': 'Garder comme Diamond',
1456 'keep.body': 'Donnez-lui un nom, et cette conversation y est conservée en entier. Les chats expirent ; les Diamonds, non.',
1457 'keep.ok': 'Le garder',
1458 'keep.gone': 'Ce chat n’est plus là',
1459 'keep.gone_body': 'Il a été détruit sur cet appareil ou sur un autre. Rien n’a été créé.',
1460 'keep.made': '{name} est gardé, avec la conversation à l’intérieur.',
1461 'keep.made_bare': '{name} est créé, mais la conversation n’a pas pu y être écrite.',
1462
1463 // ── Le PPTW : pause, lecture, feu tricolore ────────────────
1464 'pause.everything': 'Tout',
1465 'pause.everything_help': 'Mettre en pause ou reprendre tout ce qui peut dépenser : chaque Diamond, chaque discussion, les workers, les boîtes aux lettres et toute page chargée pour vous.',
1466 'pause.act_pause': 'Mettre {name} en pause',
1467 'pause.act_play': 'Reprendre {name}',
1468 'pause.state_play': 'en cours',
1469 'pause.state_pause': 'en pause',
1470 'pause.state_mixed': 'partiellement en pause',
1471 'pause.this': 'ceci',
1472 'pause.workers': 'Workers',
1473 'pause.mail': 'Courrier',
1474 'pause.mail_polling': 'Relève de la boîte',
1475 'pause.unnamed_chat': 'Discussion sans nom',
1476 'pause.web': 'Web',
1477 'pause.refused_title': 'En pause',
1478 'pause.refused.turn': '{node} est en pause. Aucun tour lancé, rien de dépensé. Appuyez sur lecture dessus pour reprendre.',
1479 'pause.refused.dispatch': '{node} est en pause. Aucun agent envoyé, rien de dépensé. Appuyez sur lecture dessus pour reprendre.',
1480 'pause.refused.web': '{node} est en pause. La page n’a pas été chargée et rien n’a été dépensé. Appuyez sur lecture dessus pour reprendre.',
1481 'pause.refused.mail': '{node} est en pause. La boîte aux lettres n’a pas été contactée et rien n’a été dépensé. Appuyez sur lecture dessus pour reprendre.',
1482 'pause.state_idle': 'ici rien n’agit de soi-même',
1483
1484 // ── Tags ───────────────────────────────────────────────────
1485 'tag.only_agents': 'N’afficher que les agents étiquetés « {tag} »',
1486 'tag.only_diamonds': 'N’afficher que les Diamonds étiquetés « {tag} »',
1487 'tag.clear_filter': 'Retirer le filtre « {tag} »',
1488 'tag.remove': 'Retirer « {tag} »',
1489 'tag.add': 'Ajouter « {tag} »',
1490 'tag.starters': 'personne, projet, sujet, organisation',
1491 'tag.add_btn': 'Ajouter',
1492 'tag.add_ph': 'Ajouter une étiquette',
1493 'tag.on_diamond': 'Sur ce Diamond',
1494 'tag.all': 'Toutes vos étiquettes',
1495 'tag.all_used': 'Toutes vos étiquettes sont déjà sur ce Diamond.',
1496 'tag.none_yet': 'Aucune étiquette pour l’instant.',
1497 'tag.save_failed': 'Impossible d’enregistrer les étiquettes',
1498 // The rail's boolean filter: the tags wanted, the tags refused, and how two
1499 // or more wanted tags combine. A chip in the rail cycles off, wanted,
1500 // refused, off; a chip in the summary comes out of the filter altogether.
1501 'tag.exclude_next': 'Affiche les Diamonds étiquetés « {tag} ». Cliquez encore pour les masquer.',
1502 'tag.clear_exclude': 'Ne plus masquer les Diamonds étiquetés « {tag} »',
1503 'tag.not_tagged': 'Sans l’étiquette « {tag} »',
1504 'tag.mode_all': 'Toutes',
1505 'tag.mode_any': 'Une',
1506 'tag.mode_all_help': 'N’afficher que les Diamonds portant toutes ces étiquettes',
1507 'tag.mode_any_help': 'Afficher les Diamonds portant au moins une de ces étiquettes',
1508 'tag.mode_aria': 'Comment les étiquettes choisies se combinent',
1509 'tag.clear_all': 'Vider',
1510 'tag.clear_all_help': 'Retirer toutes les étiquettes du filtre',
1511 // The one row the pool of chips sits behind, under the search box. It is
1512 // there whenever a tag is, because a filter nobody can see is a filter
1513 // nobody finds -- and it is only a row, because a vocabulary of thirty tags
1514 // standing open costs the rail's two lists four rows on every screen.
1515 // {n} is how many tags are behind it.
1516 'tag.pool_toggle': 'Filtrer par étiquette ({n})',
1517 'tag.pool_show_help': 'Afficher toutes les étiquettes sur lesquelles vous pouvez filtrer',
1518 'tag.pool_hide_help': 'Ranger les étiquettes. Ce sur quoi vous filtrez reste actif et reste visible.',
1519 // The chips that are doing the filtering, shown on their own while the tags
1520 // are put away.
1521 'tag.active_aria': 'Étiquettes sur lesquelles la barre latérale filtre',
1522 // Deleting a tag from the pool, which takes it off every Diamond that carries it.
1523 'tag.delete_help': 'Supprimer l’étiquette « {tag} » partout',
1524 'tag.delete_title': 'Supprimer cette étiquette ?',
1525 'tag.delete_body_used.one': 'Supprimer l’étiquette « {tag} » ? Elle est retirée du {n} Diamond qui la porte. Rien d’autre ne change sur ce Diamond.',
1526 'tag.delete_body_used.other': 'Supprimer l’étiquette « {tag} » ? Elle est retirée des {n} Diamonds qui la portent. Rien d’autre ne change sur eux.',
1527 'tag.delete_body_unused': 'Supprimer l’étiquette « {tag} » ? Aucun Diamond ne la porte : cela ne fait que la retirer de la liste.',
1528 'tag.delete_ok': 'Supprimer l’étiquette',
1529 'tag.deleted': 'Étiquette « {tag} » supprimée.',
1530 'tag.deleted_from.one': 'Étiquette « {tag} » supprimée de {n} Diamond.',
1531 'tag.deleted_from.other': 'Étiquette « {tag} » supprimée de {n} Diamonds.',
1532 'tag.editor_note': 'Les étiquettes classent ce Diamond dans la barre latérale. Elles ne sont jamais envoyées à un modèle et n’entrent jamais dans le cristal.',
1533
1534 // ── Starting and interrupting a turn ───────────────────────
1535 'chat.choose_model': 'Choisissez un modèle pour démarrer ce chat.',
1536 'chat.no_key_start': 'Ce fournisseur n’a pas encore de clé lisible. Déverrouillez, ou ajoutez-en une, pour démarrer ce chat.',
1537 'chat.connect_start': 'Connectez un fournisseur pour démarrer ce chat.',
1538 'chat.pending_hint': 'Choisissez un modèle dans la tuile de ce chat et appuyez sur ▶ Démarrer.',
1539 'chat.start_selected': 'Démarrer avec le modèle choisi',
1540 'chat.stop': 'Arrêter',
1541 'turn.interrupted': 'Interrompu. Le navigateur s’est fermé avant la fin.',
1542 'turn.interrupted_early': 'Interrompu avant d’avoir pu répondre.',
1543 'turn.offline': 'La connexion a été interrompue avant la fin. Rien n’est perdu — reprenez là où cela s’est arrêté.',
1544 'turn.offline_early': 'La connexion a été interrompue avant l’arrivée d’une réponse. Rien n’est perdu — redemandez à partir d’ici.',
1545 'turn.continue': 'Continuer',
1546 'turn.continue_help': 'Relancer ce tour à partir de votre message.',
1547
1548 // ── Folding a chat into a Diamond ──────────────────────────
1549 'fold.nothing': 'Rien à replier',
1550 'fold.chat_empty': 'Ce chat est vide. Envoyez d’abord un message, puis repliez-le dans un Diamond.',
1551 'fold.turns_empty': 'Les tours que vous avez choisis n’ont rien à replier.',
1552 'fold.agent_empty': 'Cet agent n’a produit aucun résumé à replier.',
1553 'fold.into': 'Replier dans…',
1554 'fold.n_turns_into.one': 'Replier {n} tour dans…',
1555 'fold.n_turns_into.other': 'Replier {n} tours dans…',
1556 'fold.no_diamonds': 'Aucun Diamond pour l’instant. Créez-en un :',
1557 'fold.new_diamond': '+ Nouveau Diamond…',
1558 'fold.connect_first': 'Connectez un fournisseur pour replier dans un Diamond.',
1559 'fold.create_and_fold': 'Créer et replier',
1560 'fold.no_key': 'Le fournisseur de ce Diamond n’a pas de clé lisible. Déverrouillez, ou ajoutez-en une, pour y replier.',
1561 'fold.nothing_new': 'Rien de nouveau à replier',
1562 'fold.nothing_new_body': '« {chat} » n’a pas changé depuis son repliage dans « {diamond} ».',
1563 'fold.proposing': 'Proposition de repliage…',
1564 'fold.busy_title': 'Ce Diamond travaille',
1565 'fold.busy_body': '« {diamond} » a un tour en cours, et un repliage réécrit le même crystal. Attendez la fin, puis repliez.',
1566 'fold.diamond_gone': 'Le Diamond a disparu',
1567 'fold.diamond_gone_body': 'Le Diamond qui a dépêché cet agent n’existe plus.',
1568 'fold.diamond_gone_chat_body': 'Le Diamond que vous avez choisi n’existe plus ; il a pu être supprimé dans un autre onglet. Rien n’a été replié.',
1569 'fold.empty_reply': 'Le modèle n’a rien renvoyé à replier, rien n’a donc été proposé. Réessayez.',
1570 'fold.proposed_toast': 'Repliage proposé. Acceptez ou Rejetez ci-dessous.',
1571 'fold.proposed_elsewhere': 'Repliage proposé sur « {diamond} ». Ouvrez-le pour Accepter ou Rejeter.',
1572 'fold.pending_badge': 'repliage en attente',
1573 'fold.pending_badge_help': 'Un repliage proposé attend sur ce Diamond. Ouvrez-le pour accepter ou rejeter le changement.',
1574 'fold.nothing_chosen': 'Rien de choisi',
1575 'fold.nothing_chosen_body': 'Cochez les tours à replier, puis appuyez sur Replier la sélection.',
1576
1577 // The fold diff's heading.
1578 'diff.folding_chat': 'Repliage de « {chat} ». Vérifiez le changement, puis Acceptez ou Rejetez.',
1579 'diff.folding_chat_into': 'Repliage de « {chat} » dans « {diamond} ». Vérifiez le changement, puis Acceptez ou Rejetez.',
1580 'diff.proposed': 'Repliage proposé. Vérifiez le changement, puis Acceptez ou Rejetez.',
1581 'diff.proposed_into': 'Repliage proposé dans « {diamond} ». Vérifiez le changement, puis Acceptez ou Rejetez.',
1582 'diff.no_change': 'Aucun changement proposé. Le cristal couvre déjà cela.',
1583 'diff.no_change_into': 'Aucun changement proposé dans « {diamond} ». Le cristal couvre déjà cela.',
1584 'diff.accept': 'Accepter',
1585 'diff.reject': 'Rejeter',
1586 'diff.nothing_to_apply': 'Rien à appliquer. La proposition correspond au cristal actuel.',
1587 'fold.keys_lost': 'Accepter retire : {keys}',
1588
1589 // ── The crystal ────────────────────────────────────────────
1590 'crystal.page': 'Page',
1591 'crystal.page_help': 'Demander au daimon de changer l’apparence de ce cristal, pas ce qu’il dit',
1592 'crystal.page_note': 'Change la PAGE de ce Diamant (crystal.html), pas sa mémoire (crystal.json). Lis d’abord crystal.html, puis modifie-le, et laisse crystal.json tranquille. Garde-la autonome : tout le CSS et le JavaScript en ligne, les images uniquement en data: URIs, pas de fetch, pas de fichiers externes, pas d’eval. Conserve ses messages ready, rendered et height, et que rendered nomme chaque clé de premier niveau des données qui a du contenu. Une page peut aussi enregistrer des fichiers dans ce Diamant avec le message save et les relire avec asset, pour qu’une page interactive garde ce que fait l’utilisateur. Ce que je veux : ',
1593 'crystal.history': 'Historique',
1594 'crystal.tags': 'Étiquettes',
1595 'crystal.tags_help': 'Classer ce Diamond dans la barre latérale',
1596 'crystal.marks_unread': 'Les pièces jointes n’ont pas pu être lues : ce tour ne travaille que dans le Diamond.',
1597 'crystal.empty': 'Le cristal est vide. Orientez-le ci-dessous pour commencer.',
1598 'crystal.empty_paren': '(vide)',
1599 'crystal.save_failed': 'Impossible d’enregistrer le cristal',
1600 'crystal.back': 'Retour au cristal',
1601 'crystal.no_history': 'Aucun historique pour l’instant.',
1602 'crystal.view': 'Voir',
1603 'crystal.restore': 'Restaurer',
1604 'crystal.restore_v': 'Restaurer la v{v}',
1605 'crystal.restore_title': 'Restaurer une version',
1606 'crystal.restore_body': 'Restaurer le cristal à la v{v} ? Le texte actuel reste dans l’historique, cela peut donc être défait à son tour.',
1607 'crystal.restore_failed': 'Impossible de restaurer',
1608 'crystal.at_version': 'Cristal à la v{v}',
1609 'crystal.read_version_failed': 'Impossible de lire cette version',
1610 'crystal.delta': 'Delta',
1611 'crystal.delta_help': 'L’entrée brute d’où vient ce repliage',
1612 'crystal.delta_at': 'Delta replié à la v{v}',
1613 'crystal.read_delta_failed': 'Impossible de lire le delta',
1614 'crystal.steering': 'Orientation…',
1615 'crystal.no_key_steer': 'Le fournisseur de ce Diamond n’a pas de clé lisible. Déverrouillez, ou ajoutez-en une, pour l’orienter.',
1616 'crystal.page_failed': 'La page de ce Diamond ne s’est pas chargée, ses données sont donc affichées à la place.',
1617 'crystal.page_partial': 'La page de ce Diamond n’a pas montré tout ce qu’il contient, ses données sont donc affichées à la place.',
1618 'crystal.page_reset': 'Réinitialiser la page',
1619 'crystal.page_reset_confirm': 'Remplacer la page de ce Diamond par la page standard ? On ne touche pas à ses données.',
1620 'crystal.ask': 'Demander au daimon de changer cette page',
1621 'crystal.edit_json': 'Modifier en JSON',
1622 'crystal.json_invalid': 'Ce n’est pas du JSON valide, rien n’a donc été enregistré.',
1623 'crystal.field_title': 'Titre',
1624 'crystal.field_summary': 'Résumé',
1625 'crystal.field_sections': 'Sections',
1626 'crystal.field_facts': 'Faits',
1627 'crystal.field_open': 'Questions ouvertes',
1628 'crystal.field_links': 'Liens',
1629 'crystal.field_heading': 'Intitulé',
1630 'crystal.field_body': 'Texte',
1631 'crystal.add_section': 'Ajouter une section',
1632 'crystal.remove': 'Supprimer',
1633 'crystal.other_fields': 'Autres champs',
1634 'crystal.other_fields_note': 'Conservés tels quels, et affichés ici pour que rien ne disparaisse.',
1635
1636 // ── Artefacts ──────────────────────────────────────────────
1637 'arte.count.one': '{n} artefact',
1638 'arte.count.other': '{n} artefacts',
1639 'arte.strip_help': 'Ce que ce Diamond a produit ou consulté',
1640 'arte.refer_help': 'Y renvoyer dans la boîte d’orientation',
1641 'arte.drop_help': 'Pas un artefact de ce Diamond',
1642 'arte.drop_named': 'Retirer « {name} » des artefacts',
1643 'arte.file_fenced': 'Ce chemin est hors de ce que ce Diamond peut lire',
1644 'arte.file_fenced_body': 'La barrière a arrêté la lecture. Accorde le dossier à ce Diamond, ou déplace le fichier dans un dossier qu’il a déjà.',
1645 'arte.file_gone': 'Ce fichier n’est plus là',
1646 'arte.file_gone_body': '« {path} » est un artefact de ce Diamond, mais il est illisible maintenant ; il a pu être renommé, déplacé ou supprimé.',
1647 'arte.nothing_to_open': 'Rien à ouvrir',
1648 'arte.no_viewer': 'Cet artefact est un « {kind} », pour lequel cette version n’a pas de visionneuse.',
1649
1650 // ── Attach to focus (ATTACH_CONTRACT.md) ────────────
1651 'attach.to_focus': 'Joindre au focus actuel',
1652 'attach.note': 'Note',
1653 'attach.read': 'Lire',
1654 'attach.note_help': 'Le chemin mérite d’être connu. Coûte quelques jetons.',
1655 'attach.read_help': 'Le contenu est voulu maintenant. Un fichier peut atteindre des milliers de jetons.',
1656 'attach.add': 'Joindre',
1657 'attach.view_stack': 'Pile',
1658 'attach.view_icons': 'Icônes',
1659 'attach.prefix_note': 'Note {paths}',
1660 'attach.prefix_read': 'Lis {paths} en entier.',
1661 'attach.cleared': 'Pièces jointes effacées',
1662 'attach.list': 'Pièces jointes',
1663 'attach.pick_title': 'Joindre des fichiers et des dossiers',
1664 'attach.pick_empty': 'Il n’y a rien ici.',
1665 'attach.already': 'Déjà joint',
1666 'attach.ws_mark': 'Espace',
1667 'attach.ws_add': 'Marquer un dossier dans l’espace',
1668 'attach.add_mark': 'Marquer un dossier',
1669 'attach.mark_note': 'Cocher un DOSSIER le marque : cet espace pourra lire et modifier ce qu’il contient. Cocher un fichier ne fait que le mettre devant le modèle.',
1670 'attach.mark_focus': 'Marquer ce dossier dans {name}, pour que son daimon puisse lire et modifier ce qu’il contient',
1671 'attach.not_here': 'Retenu par cette conversation, mais il se trouve {where}, qui n’est pas l’espace que vous avez ouvert. Cette conversation ne peut pas l’atteindre d’ici.',
1672 'attach.ws_help': 'Les dossiers que cette conversation peut lire et modifier. Marquer un dossier ici vaut permission, et rien ne vous le redemandera.',
1673 'attach.ws_on': 'Dans l’espace de cette conversation : elle peut lire et modifier ce qui s’y trouve. Appuyez pour le retirer.',
1674 'attach.ws_off': 'Hors de l’espace, cette conversation ne peut donc pas l’ouvrir. Appuyez pour le marquer.',
1675 'attach.ws_empty': 'Aucun dossier n’est marqué. Cette conversation n’atteint rien de ce qui est à vous, seulement son propre dossier de travail. Marquez-en un avec le trombone, ou avec + ci-dessus.',
1676 'attach.group_prompt': 'Devant le modèle',
1677 'attach.group_prompt_help': 'Nommé ou cité dans le prompt à l’envoi. Cela n’accorde aucun accès.',
1678 'attach.read_block': 'Le contenu de {path} :',
1679 'attach.read_cut': 'Voilà tout ce qui tient ici de {path}.',
1680
1681 // ── This Diamond's workspace ───────────────────────────────
1682 'dws.title': 'L’espace de travail de ce Diamond',
1683 'dws.count.one': '{n} élément',
1684 'dws.count.other': '{n} éléments',
1685 'dws.none_yet': 'Rien de conservé ici pour l’instant',
1686 'dws.mode_all': 'Tout',
1687 'dws.mode_diamond': 'Ce Diamond',
1688 'dws.empty': 'Rien n’est encore gardé avec ce Diamond. Ce que vous gardez ici est ce que son daimon peut ouvrir.',
1689 'dws.not_here': 'Gardé avec ce Diamond, mais il vit {where}, ce qui n’est pas l’espace de travail que vous avez ouvert. Son daimon ne peut pas l’atteindre depuis ici.',
1690 'dws.in_machine': 'dans le dossier « {name} » sur cette machine',
1691 'dws.in_browser': 'dans l’espace de travail du navigateur',
1692 'dws.a_folder': 'un dossier',
1693 'dws.attach_dir': 'Garder ce dossier avec {name}',
1694 'dws.detach_dir': 'Ne plus garder ce dossier avec {name}',
1695 'dws.kits': 'Chaînes d’outils',
1696 'dws.kits_help': 'Quels compilateurs et gestionnaires de paquets une commande de ce Diamond peut atteindre sur votre ordinateur. Désactivé sauf si vous le dites ; aucun daimon ne choisit cela.',
1697 'dws.kit_on': 'Accorder la chaîne {kit} à {name}',
1698 'dws.kit_off': 'Retirer la chaîne {kit} à {name}',
1699 'dws.kit_failed': 'Cette chaîne d’outils n’a pas été enregistrée',
1700 'dws.kit_none': 'Aucune chaîne d’outils. Une commande atteint les fichiers de ce Diamond et rien d’autre sur votre ordinateur.',
1701 'dws.elsewhere': 'Vit dans l’espace de travail',
1702 'dws.readonly': 'Lecture seule',
1703 'dws.showing': 'Affiché',
1704 'dws.reach': 'Portée',
1705 'dws.reach_help': 'Les dossiers dans lesquels le daimon de ce Diamond peut écrire. Affiché dans les deux arbres, parce que cela vaut dans les deux.',
1706 'dws.reach_own': 'son propre dossier',
1707 'dws.reach_search': 'Une recherche qui ne nomme aucun chemin regarde ici et nulle part ailleurs.',
1708 'dws.reach_none': 'Rien d’autre n’est marqué, donc le daimon de {name} ne peut écrire nulle part ailleurs chez vous — et une recherche qui ne nomme aucun chemin ne regarde qu’ici.',
1709 'dws.mark_here': 'Marquer « {name} »',
1710 'dws.mark_here_help': 'Mettre le dossier que vous regardez dans l’espace de {name}. Son daimon pourra alors lire et modifier ce qu’il contient, et une recherche qui ne nomme aucun chemin y regardera.',
1711
1712 // ── Links between Diamonds ─────────────────────────────────
1713 'link.count.one': '{n} Diamond lié',
1714 'link.count.other': '{n} Diamonds liés',
1715 'link.strip_help': 'Comment ce Diamond se situe par rapport à vos autres Diamonds',
1716 'link.none': 'Aucun lien avec un autre Diamond pour l’instant.',
1717 'link.this': 'celui-ci',
1718 'link.rel_blank': 'lié',
1719 'link.out_help': 'Ce Diamond → {rel} → « {name} »',
1720 'link.in_help': '« {name} » → {rel} → ce Diamond',
1721 'link.open_other': 'Afficher « {name} »',
1722 'link.note_help': 'Afficher la note de ce lien',
1723 'link.drop': 'Retirer le lien',
1724 'link.drop_help': 'Retirer ce lien',
1725 'link.drop_confirm': 'Retirer le lien « {rel} » avec « {name} » ? Les deux Diamonds restent ; seul le lien disparaît.',
1726 'link.drop_failed': 'Impossible de retirer le lien',
1727 'link.gone': 'Ce Diamond n’est plus là',
1728 'link.gone_body': '« {ref} » est lié depuis ce Diamond, mais aucun Diamond de cet id n’est lisible maintenant ; il a pu être supprimé.',
1729 'link.gone_name': '(Diamond supprimé)',
1730 'link.add_btn': 'Lier',
1731 'link.add_title': 'Lier ce Diamond à un autre',
1732 'link.pick_label': 'Diamond',
1733 'link.pick_ph': 'Chercher un Diamond par son nom',
1734 'link.pick_none': 'Aucun Diamond ne correspond.',
1735 'link.pick_empty': 'Il n’y a pas encore d’autre Diamond à lier.',
1736 'link.change_pick': 'Changer',
1737 'link.rel_label': 'Relation',
1738 'link.rel_sug_help': 'Suggestions seulement — n’importe quel mot convient',
1739 'link.rel_use': 'Utiliser « {rel} »',
1740 'link.note_label': 'Note',
1741 'link.note_ph': 'Pourquoi, en une phrase (facultatif)',
1742 'link.direction_note': 'Le lien va de ce Diamond à celui que vous choisissez.',
1743 'link.need_target': 'Choisissez d’abord le Diamond à lier.',
1744 'link.save': 'Ajouter le lien',
1745 'link.graph_open': 'Graphe',
1746
1747 // ── Agents ─────────────────────────────────────────────────
1748 'agents.none_yet': 'Aucun agent pour l’instant. Demandez à un Diamond d’en lancer un et il apparaîtra ici.',
1749 'agents.no_match': 'Aucun agent ne correspond. Effacez la recherche ou le filtre.',
1750 'agents.fold_in': 'Replier',
1751 'agents.fold_in_help': 'Replier le résumé de cet agent dans « {name} »',
1752 'agents.folded': 'replié',
1753 'agents.already_folded': 'Déjà replié',
1754 'agents.already_folded_body': 'Le résumé de cet agent a déjà été replié dans le cristal.',
1755 'agents.a_diamond': 'Diamond',
1756 'agents.clear_diamond_filter': 'Retirer le filtre Diamond',
1757 'agents.clear_chat_filter': 'Retirer le filtre de conversation',
1758 'agents.no_diamond': 'sans Diamond',
1759 'agents.no_diamond_help': 'Cette exécution n’a pas de Diamond',
1760 'agents.only_from': 'N’afficher que les agents de « {name} »',
1761 'agents.only_from_chat': 'N’afficher que les agents de cette conversation.',
1762 'agents.from_chat': 'un chat',
1763 'agents.from_chat_help': 'Envoyé depuis le chat « {name} ».',
1764 // Entre parenthèses, comme « rail.chat_from » : aucune préposition ne convient
1765 // à la fois à « il y a 5 min », à une heure et à une date.
1766 'agents.from_chat_help_when': 'Envoyé depuis un chat que vous n’avez pas nommé (dernière activité : {when}).',
1767 'agents.no_diamond_fold': 'Cet agent a été envoyé depuis un chat : il n’y a donc pas de cristal où le replier. Son compte rendu est dans cette conversation, et son texte complet est sous « Lire ».',
1768 'agents.report_one': 'Un agent que vous avez envoyé a terminé.',
1769 'agents.report_n': '{n} agents que vous avez envoyés ont terminé.',
1770 'agents.no_task': 'Un agent a été demandé sans tâche : rien n’a donc été lancé.',
1771 'instructions.chip_help': 'Vos instructions permanentes, données à chaque agent. Cliquez pour les ouvrir.',
1772 'instructions.chip_empty': 'Rien ici pour l’instant. Ce fichier est transmis à chaque agent que Daimond exécute. Cliquez pour l’écrire.',
1773
1774 // ── What each kind of agent is told ────────────────────────
1775 'role.chat': 'Chat',
1776 'role.chat_help': 'L’agent à qui vous parlez.',
1777 'role.daimon': 'Daimon du Diamond',
1778 'role.daimon_help': 'Tient le cristal d’un Diamond et dépêche des ouvriers.',
1779 'role.worker': 'Ouvrier dépêché',
1780 'role.worker_help': 'Une tâche, son propre contexte, un rapport en retour.',
1781 'role.reducer': 'Repli du cristal',
1782 'role.reducer_help': 'Replie un delta dans le cristal.',
1783
1784 // ── The Workspace panel ────────────────────────────────────
1785 'files.rest': 'Le reste de ce dossier',
1786 'files.rest_count.one': '{n} \u00e9l\u00e9ment',
1787 'files.rest_count.other': '{n} \u00e9l\u00e9ments',
1788 'files.rest_help': 'Tout le reste de ce dossier\u00a0: les fichiers et dossiers dont le nom commence par un point, et ceux que Daimond tient pour son propre travail \u2014 vos r\u00e8gles et comp\u00e9tences, votre courrier, la consigne donn\u00e9e \u00e0 chaque type d\u2019agent. Rien ici ne vous est interdit\u00a0; c\u2019est seulement rang\u00e9 \u00e0 l\u2019\u00e9cart. Ouvrez-le pour le lire ou le modifier.',
1789 'files.back': 'Retour',
1790 'files.edit': 'Modifier',
1791 'files.stop_editing': 'Ne plus modifier',
1792 'files.line_numbers': 'Numéros de ligne',
1793 'files.download': 'Télécharger',
1794 'files.download_help': 'Enregistrer sur cette machine',
1795 'files.hold_add': 'Garder ce fichier avec {name}',
1796 'files.hold_drop': 'Ne plus garder ce fichier avec {name}',
1797 'files.mode_browser': 'Navigateur',
1798 'files.browser_switch': 'Ramener l’agent dans l’espace de travail privé du navigateur.',
1799 'files.browser_help': 'L’agent travaille dans un espace de travail privé, dans le navigateur. C’est ce qui est synchronisé.',
1800 'files.mode_machine': 'Machine',
1801 'files.machine_here': 'L’agent lit et écrit dans ce dossier réel. Il n’est pas synchronisé.',
1802 'files.machine_pick': 'Laisser l’agent travailler dans un dossier réel de cette machine. Il ne sera pas synchronisé.',
1803 'files.machine_needs_chromium': 'Les dossiers réels demandent un navigateur basé sur Chromium.',
1804 'files.machine_reconnect': 'Reconnecter {name}',
1805 'files.mode_cloud': 'Cloud',
1806 'files.cloud_on_machine': 'Le stockage cloud porte l’espace de travail du navigateur, pas un dossier de cette machine.',
1807 'files.cloud_help': 'Là où vit votre espace de travail, pour qu’il puisse dépasser la taille de cet appareil.',
1808 'files.import_folder': 'Importer un dossier…',
1809 'files.import_folder_help': 'Copier un dossier de cette machine dans l’espace de travail, pour qu’il soit synchronisé',
1810 'files.save_copy': 'Enregistrer une copie…',
1811 'files.save_copy_help': 'Écrire l’espace de travail dans un dossier de cette machine',
1812 'files.delete': 'Supprimer',
1813 'files.rename_move': 'Renommer ou déplacer',
1814 'files.rename_hint': 'Un nom, ou un chemin, pour le déplacer ailleurs.',
1815 'files.err_name': 'Saisissez un nom.',
1816 'files.rename_failed': 'Impossible de renommer : {reason}',
1817 'files.no_match': 'Rien ne correspond à « {filter} ».',
1818 'files.new_doc_here': 'Nouveau document. Enregistrer l’écrit dans {place}.',
1819 'files.new_file_hint': 'Appelez-le DAIMOND.md pour écrire des instructions permanentes que chaque agent suivra.',
1820 'files.create_failed': 'Impossible de créer le fichier : {reason}',
1821 'files.create_folder_failed': 'Impossible de créer le dossier : {reason}',
1822 'files.delete_file_body': 'Supprimer « {name} » ? C’est irréversible.',
1823 'files.delete_folder_body': 'Supprimer le dossier « {name} » et tout ce qu’il contient ? C’est irréversible.',
1824 'files.delete_failed': 'Impossible de supprimer {name} : {reason}',
1825 'files.upload_failed': 'Impossible de téléverser {name} : {reason}',
1826 'files.uploaded.one': '{n} fichier téléversé.',
1827 'files.uploaded.other': '{n} fichiers téléversés.',
1828 'files.saving': 'Enregistrement…',
1829 'files.saved': 'Enregistré.',
1830 'files.save_failed': 'L’enregistrement a échoué : {reason}',
1831 'files.save_cancelled': 'Enregistrement annulé. Le fichier a changé sur le disque.',
1832 'files.discard': 'Abandonner',
1833 'files.discard_title': 'Abandonner vos modifications ?',
1834 'files.keep_editing': 'Continuer à modifier',
1835 'files.unsaved_body': 'Vos modifications de {path} ne sont pas enregistrées. Fermer l’éditeur et les perdre ?',
1836 'files.editing_stopped': 'Modification arrêtée. Rien n’a été écrit.',
1837 'files.overwrite': 'Écraser',
1838 'files.conflict_title': 'Il a changé pendant que vous modifiiez',
1839 'files.conflict_body': 'Ce fichier a changé sur le disque depuis que vous l’avez ouvert, très probablement un agent. Enregistrer quand même et écraser ces changements ?',
1840 'files.changed_while_editing': 'Ce fichier a changé sur le disque ; un agent l’a modifié. Vos modifications sont gardées, et l’enregistrement demande avant d’écraser.',
1841 'files.reloaded': 'Rechargé. Le fichier a changé sur le disque.',
1842 'files.compile': 'Compiler',
1843 'files.compiling': 'compilation',
1844 'files.compiling_path': 'Compilation de {path} …',
1845 'files.compiled': 'Compilé → {path} ({size})',
1846 'files.compile_failed': 'La compilation a échoué : {reason}',
1847 'files.binary_note': 'Un fichier binaire de {size}. Il est stocké et synchronisé comme tout le reste ici, mais il n’y a rien à montrer. Téléchargez-le pour l’ouvrir avec quelque chose qui le comprend.',
1848 'files.cloud': 'En ligne',
1849 'files.cloud_storage': 'Stockage en ligne',
1850 'files.cloud_empty': 'Rien encore dans le stockage en ligne. Votre espace de travail se limite à ce que ce navigateur accorde.',
1851 'files.cloud_locked': 'Déverrouillez pour utiliser le stockage en ligne. Sans lui, votre espace de travail se limite à ce que ce navigateur accorde.',
1852 'files.cloud_some_away': '{n} fichiers en ligne ; {away} d’entre eux ne sont pas sur cet appareil.',
1853 'files.cloud_all_here': '{n} fichiers en ligne, tous également sur cet appareil.',
1854 'files.cloud_intro': 'Votre espace de travail vit dans le stockage en ligne, et cet appareil en garde autant qu’il peut. {n} fichiers, {total} au total ;',
1855 'files.cloud_away': '{n} d’entre eux ({bytes}) ne sont pas sur cet appareil.',
1856 'files.cloud_here': 'tous sont également sur cet appareil.',
1857 'files.cloud_none': 'Rien encore dans le stockage en ligne. Sans lui, votre espace de travail se limite à ce que ce navigateur vous accorde.',
1858 'files.cloud_none_quota': 'Rien encore dans le stockage en ligne. Sans lui, votre espace de travail se limite à ce que ce navigateur vous accorde, ici {quota}.',
1859 'files.cloud_cap': 'Ce navigateur a accordé {quota}, dont {used} sont utilisés. Les fichiers sont libérés automatiquement à mesure que cela se remplit, sauf ceux que vous avez épinglés.',
1860 'files.reclaim': 'Libérer de la place',
1861 'files.reclaim_help': 'Libérer de la place sur cet appareil maintenant',
1862 'files.get_help': 'Amener ce fichier sur cet appareil ({size})',
1863 'files.pinned_short': 'Épinglé à cet appareil',
1864 'files.pinned_help': 'Épinglé : toujours gardé sur cet appareil. Cliquez pour le relâcher.',
1865 'files.pin_help': 'Épingler : ne jamais libérer celui-ci pour faire de la place.',
1866 'files.free_help': 'Le garder en ligne, abandonner la copie d’ici',
1867 'files.fetch': 'Récupérer',
1868 'files.fetch_body': 'Amener « {path} » sur cet appareil ? Cela télécharge {size}.',
1869 'files.fetching': 'Récupération de {path}…',
1870 // Where the agent works: the root, and its scope. Changing the root is a separate
1871 // act from switching between the browser sandbox and the disk.
1872 'files.change_root': 'Changer de dossier…',
1873 'files.change_root_help': 'Diriger l’agent vers un autre dossier de cette machine',
1874 'files.machine_scope': 'L’agent ne travaille qu’à l’intérieur de {name}. Rien en dehors de ce dossier n’est visible pour Daimond.',
1875 'files.machine_return': 'Remettre l’agent au travail dans {name}',
1876 'files.forget_root': 'Oublier ce dossier',
1877 'files.forget_root_help': 'Ne plus proposer ce dossier. Daimond n’en garde aucune trace et vous demandera d’en choisir un la prochaine fois.',
1878 'files.root_forgotten': 'Oublié. Daimond ne garde plus aucune trace de ce dossier.',
1879
1880 'files.adopted_title.one': 'Un Diamond a été récupéré',
1881 'files.adopted_title.other': '{n} Diamonds ont été récupérés',
1882 'files.adopted_body': 'Daimond a trouvé ses propres fichiers dans ce dossier et les a recopiés dans son propre stockage, où ils se synchronisent : {names}. Les copies sont restées où elles sont, sous diamonds/ ; supprimez-les une fois rassuré.',
1883 'files.adopted_kept': 'Ceux-ci différaient de ce que Daimond avait déjà, donc les deux copies ont été conservées :\n{paths}',
1884 'files.adopt_left_title': 'Certains fichiers sont restés dans le dossier',
1885 'files.adopted_skipped': 'Ceux-ci n’ont pas été copiés, faisant plus de 8 Mio ou étant illisibles : un Diamond qui en a besoin est donc ici sans eux, voire pas là du tout :\n{paths}',
1886 'fileview.read_failed': 'Ce fichier n’a pas pu être lu : {reason}',
1887 'fileview.disagree': 'Le nom dit {named}. Les octets disent {found}, et ce sont les octets qui sont montrés.',
1888 'fileview.empty': 'Ce fichier est vide.',
1889 'fileview.too_large': '{fmt} de {size} : trop volumineux pour être gardé en mémoire ici. Ses octets suivent ; téléchargez-le pour l’ouvrir ailleurs.',
1890 'fileview.decode_failed': 'Ce navigateur n’a pas pu décoder ceci : {fmt}.',
1891 'fileview.frame_title': 'Le contenu de {name}',
1892 'fileview.json_bad': 'Ce n’est pas une seule valeur JSON, c’est donc montré comme du texte.',
1893 'fileview.tree_capped': 'L’arbre est coupé ici ; le fichier est plus grand qu’il n’y paraît.',
1894 'fileview.rows_capped': 'Affichage des {shown} premières lignes sur {total}.',
1895 'fileview.capped': 'Affichage des {shown} premiers sur {total}.',
1896 'fileview.hex_note': 'Il n’y a pas de visionneuse ici pour {fmt} : voici donc ses octets.',
1897 'fileview.hex_note_unknown': 'Rien ici ne reconnaît ce fichier : voici donc ses octets.',
1898 'fileview.hex_prev': 'Octets précédents',
1899 'fileview.hex_next': 'Octets suivants',
1900 'fileview.hex_at': 'Octets {from} à {to} sur {total}',
1901 'fileview.office_too_large': '{fmt} de {size} : trop volumineux pour être décompressé ici. Ses octets suivent.',
1902 'fileview.office_failed': 'Ce document n’a pas pu être lu : {why}',
1903 'fileview.office_reading': 'Vue de lecture. Voici ce que dit le document, pas la façon dont il s’imprime.',
1904 'fileview.office_tracked': '{n} insertion(s) suivie(s) sont affichées comme acceptées ; les suppressions ne sont pas affichées.',
1905 'fileview.office_macros': 'Ce fichier contient des macros. Elles ne sont ni exécutées ni lues.',
1906 'fileview.office_undrawn': '{total} éléments ne sont pas dessinés : {parts}.',
1907 'fileview.sheet_failed': 'Cette feuille de calcul n’a pas pu être lue : {why}',
1908 'fileview.sheet_stored': 'Les valeurs sont celles enregistrées dans le fichier. Les formules ne sont pas recalculées.',
1909 'fileview.sheet_capped': 'Affichage de {shown} sur {rows} lignes et {cols} colonnes de cette feuille.',
1910 'fileview.sheet_formulas': '{n} cellule(s) ici portent une formule ; la valeur affichée est celle qui est enregistrée.',
1911 'fileview.sheet_missing': 'Ce classeur nomme {n} feuille(s) qui n’ont pas pu être lues : {names}.',
1912 'fileview.save': 'Enregistrer une copie',
1913 'fileview.save_help': 'Enregistre une copie de ceci sur votre propre appareil. Le fichier ici n’est pas modifié.',
1914 'fileview.save_failed': 'Impossible d’enregistrer ceci : {why}',
1915 'fileview.save_capped': 'Seul le début de ce fichier est à l’écran, il n’est donc pas écrit comme document : ce qui reviendrait serait un document amputé de sa fin.',
1916 'fileview.save_as': 'Enregistrer comme document',
1917 'fileview.save_as_help': 'Écrit ce texte comme un vrai document et l’enregistre sur votre appareil. Le fichier ici n’est pas modifié.',
1918 'fileview.save_as_failed': 'Impossible d’enregistrer ceci en {fmt} : {why}',
1919 'fileview.write_left': 'Tout ce qui est dans ce texte n’arrive pas dans le document : {parts}.',
1920 'fileview.left_image': '{n} image(s)',
1921 'fileview.left_notes': 'Notes de l’intervenant de {n} diapositive(s)',
1922 'fileview.left_image_named': '{n} image(s) : {names}',
1923 'fileview.left_notes_named': 'Notes de l’intervenant de {n} diapositive(s) : {names}',
1924 'fileview.edit': 'Faire une modification',
1925 'fileview.edit_find': 'Rechercher',
1926 'fileview.edit_replace': 'Remplacer par',
1927 'fileview.edit_nth': 'Laquelle',
1928 'fileview.edit_note': 'Laissez « {which} » vide pour toutes les changer. Tout le reste du fichier reste octet pour octet tel qu’il était.',
1929 'fileview.edit_apply': 'Appliquer',
1930 'fileview.edit_failed': 'Cette modification n’a pas été faite : {why}',
1931 'fileview.edit_nothing': 'l’éditeur n’a renvoyé aucun document',
1932 'fileview.edited': 'Modifié ici {n} fois. Le fichier lui-même n’a pas changé — enregistrez une copie pour garder ceci.',
1933 'fileview.edit_sheet': 'Feuille',
1934 'fileview.edit_cell': 'Cellule',
1935 'fileview.edit_value': 'Valeur',
1936 'fileview.edit_cell_note': 'Une valeur commençant par « = » est enregistrée comme formule. Rien n’est recalculé, ni ici ni dans le fichier.',
1937 // the nine kinds a reading view names but does not draw
1938 'fileview.undrawn_image': '{n} image(s)',
1939 'fileview.undrawn_chart': '{n} graphique(s)',
1940 'fileview.undrawn_diagram': '{n} diagramme(s)',
1941 'fileview.undrawn_textbox': '{n} zone(s) de texte',
1942 'fileview.undrawn_object': '{n} objet(s) incorporé(s)',
1943 'fileview.undrawn_equation': '{n} équation(s)',
1944 'fileview.undrawn_footnote': '{n} note(s) de bas de page',
1945 'fileview.undrawn_endnote': '{n} note(s) de fin',
1946 'fileview.undrawn_comment': '{n} commentaire(s)',
1947 'files.folder_open_failed': 'Impossible d’ouvrir ce dossier.',
1948 'files.import': 'Importer',
1949 'files.import_body': 'Copier « {name} » dans l’espace de travail ? Tout ce qu’il contient se synchronisera alors sur vos autres appareils et comptera dans votre stockage.',
1950 'files.this_file': 'ce fichier',
1951 'files.unsaved_close': 'Vos modifications de {path} ne sont pas enregistrées. Le fermer et les perdre ?',
1952
1953 // ── One message, read ──────────────────────────────────────
1954 'msg.unknown_sender': '(expéditeur inconnu)',
1955 'msg.reply_to': 'Répondre à',
1956 'msg.reply': 'Répondre',
1957 'msg.reply_all': 'Répondre à tous',
1958 'msg.forward': 'Transférer',
1959 'msg.save_help': 'Enregistrer dans l’espace de travail',
1960 'msg.saved_to': 'Enregistré · {path}',
1961 'msg.save_failed': 'Impossible d’enregistrer {name}',
1962 'msg.pictures_blocked': 'Les images et autres contenus distants sont bloqués. Les charger dit à l’expéditeur que vous avez ouvert ceci.',
1963 'msg.load_pictures': 'Charger les images',
1964 'msg.no_text': '(Ce message n’a aucune partie texte lisible.)',
1965
1966 // ── Writing one ────────────────────────────────────────────
1967 'compose.new_message': 'Nouveau message',
1968 'compose.draft': 'Brouillon',
1969 'compose.remove_attachment': 'Retirer cette pièce jointe',
1970 'compose.err_no_to': 'Dites à qui il part.',
1971 'compose.send_title': 'Envoyer ce message ?',
1972 'compose.send_body': 'Il partira par {from}, et ne pourra pas être rappelé.',
1973 'compose.discard_title': 'Abandonner ce brouillon ?',
1974 'compose.discard_body': 'Le brouillon est supprimé et ce qui y est écrit est perdu.',
1975
1976 // ── Identity, at the gate ──────────────────────────────────
1977 'identity.err_enter_pass': 'Saisissez une phrase secrète.',
1978 'identity.err_choose_name': 'Choisissez un nom.',
1979 'identity.err_confirm_written': 'Confirmez d’abord que vous avez noté la phrase secrète.',
1980 'identity.err_too_short_gen': 'Cette phrase secrète est trop courte. Générez-en une autre, ou choisissez la vôtre.',
1981 'identity.err_too_short': 'Prenez une phrase secrète d’au moins 8 caractères.',
1982 'identity.err_mismatch': 'Les phrases secrètes ne correspondent pas.',
1983 'identity.err_create': 'Impossible de créer le compte.',
1984 'identity.err_wrong_pass': 'Cette phrase secrète ne correspond pas. Réessayez.',
1985 'identity.err_locked': 'L’identité Daimond est verrouillée.',
1986 'identity.err_no_webcrypto': 'WebCrypto est indisponible dans ce navigateur.',
1987
1988 // ── Passkeys, in the interface ─────────────────────────────
1989 'passkey.have_one': 'J’ai une clé d’accès pour Daimond',
1990 'passkey.use_one': 'Utiliser une clé d’accès',
1991 'passkey.browser_cannot': 'Ce navigateur ne peut pas utiliser votre clé d’accès : ici, la phrase secrète est la voie d’entrée.',
1992 'passkey.adopt_note': 'Si vous avez ajouté une clé d’accès sur un autre appareil, elle amène ce compte ici, sans code d’association ni phrase secrète.',
1993 'passkey.looking': 'Recherche de votre clé d’accès…',
1994 'passkey.waiting': 'En attente de votre clé d’accès…',
1995 'passkey.err_unusable': 'La clé d’accès n’a pas pu être utilisée.',
1996 'passkey.err_did_not_work': 'Cette clé d’accès n’a pas marché. Utilisez votre phrase secrète.',
1997 'passkey.err_enter_pass': 'Saisissez votre phrase secrète.',
1998 'passkey.add_title': 'Ajouter une clé d’accès',
1999 'passkey.add_body': 'Confirmez votre phrase secrète pour la protéger par une clé d’accès. Votre appareil vous demandera ensuite de la créer : Face ID, Touch ID, Windows Hello ou une clé de sécurité.',
2000 'passkey.continue': 'Continuer',
2001 'passkey.not_added': 'Clé d’accès non ajoutée',
2002 'passkey.err_create_failed2': 'La clé d’accès n’a pas pu être créée.',
2003 'passkey.err_create_retry': 'La clé d’accès n’a pas pu être créée. Vous pouvez réessayer depuis les Réglages.',
2004 'passkey.added': 'Clé d’accès ajoutée',
2005 'passkey.added_synced': 'Vous pouvez maintenant déverrouiller Daimond avec votre clé d’accès. Elle se synchronise entre vos propres appareils et amène donc ce compte sur un nouveau téléphone ou un nouvel ordinateur, sans code d’association. Votre phrase secrète marche toujours et reste le recours.',
2006 'passkey.added_local': 'Vous pouvez maintenant déverrouiller Daimond sur cet appareil avec votre clé d’accès. Le service de comptes était injoignable : pour l’instant elle ne vaut qu’ici ; rajoutez-la une fois en ligne et elle portera le compte vers vos autres appareils. Votre phrase secrète marche toujours et reste le recours.',
2007 'passkey.added_offer': 'La prochaine fois, Daimond demandera votre clé d’accès plutôt que votre phrase secrète. Vous pouvez la retirer depuis les Réglages à tout moment.',
2008 'passkey.remove_title': 'Retirer la clé d’accès ?',
2009 'passkey.remove_body': 'La clé d’accès quitte cet appareil et cesse d’ouvrir votre compte ailleurs ; vous déverrouillerez avec votre phrase secrète. La clé elle-même reste dans votre authentificateur jusqu’à ce que vous l’y supprimiez.',
2010 'passkey.removed': 'Clé d’accès retirée',
2011 'passkey.removed_body': 'Cet appareil demandera votre phrase secrète désormais.',
2012 'passkey.offer_title': 'Déverrouiller avec votre visage ?',
2013 'passkey.offer_body': 'Daimond peut se déverrouiller avec Face ID, Touch ID ou le code de votre appareil au lieu de la phrase secrète. Votre clé d’accès se synchronise entre vos appareils et y porte donc aussi ce compte. Votre phrase secrète continue de marcher dans tous les cas.',
2014
2015 // ── Forgetting an account ──────────────────────────────────
2016 'forget.credits_title': 'Sauver vos crédits d’abord ?',
2017 'forget.credits_body': 'Ce compte détient {amount}, conservés sur le serveur de Daimond et déverrouillés par cette seule identité. Une sauvegarde enregistre l’identité chiffrée, qu’un autre appareil peut reprendre, mais seulement avec la phrase secrète de ce compte, que la sauvegarde ne contient pas. Perdez la phrase secrète et rien ne ramène le solde. Exporter une sauvegarde maintenant ?',
2018 'forget.skip': 'Passer',
2019 'forget.title': 'Oublier ce compte ?',
2020 'forget.ok': 'Tout effacer',
2021 'forget.body': 'Cela efface votre phrase secrète, votre clé d’API chiffrée, et tous vos chats, Diamonds et historique de dépenses sur cet appareil.',
2022 'forget.tail': 'Il n’y a aucune récupération. Tout est perdu.',
2023 'forget.body_secondary': 'Cela retire le compte « {name} » de ce navigateur : sa phrase secrète, ses clés, ses chats, ses Diamonds, ses dépenses et ses fichiers.',
2024 'forget.tail_secondary': 'Il n’y a aucune récupération. Les autres comptes d’ici ne sont pas touchés.',
2025 'forget.abandons': 'Cela abandonne aussi {amount} conservés sur le serveur. Seule cette identité les déverrouille, et seule la phrase secrète de ce compte ouvre une sauvegarde de cette identité.',
2026
2027 // ── Changing a name, and a passphrase ──────────────────────
2028 'rename.title': 'Changer de nom',
2029 'rename.failed': 'Le renommage a échoué',
2030 'changepass.title': 'Changer de phrase secrète',
2031 'changepass.enter_current': 'Saisissez votre phrase secrète actuelle.',
2032 'changepass.next': 'Suivant',
2033 'changepass.lead': 'Ceci remplace votre phrase secrète actuelle. Il n’y a aucune récupération, alors notez la nouvelle avant de continuer.',
2034 'changepass.gen_note': 'Huit mots tirés au hasard par cet appareil, environ {bits} bits, bien au-delà du devinable. Elle devient la clé de tout ce que vous gardez ici, et personne ne peut la réinitialiser à votre place. Notez-la sur papier. Un gestionnaire de mots de passe proposera peut-être de la mettre à jour ; à cette force, c’est sûr.',
2035 'changepass.new_ph': 'Nouvelle phrase secrète',
2036 'changepass.again_ph': 'Tapez-la encore une fois',
2037 'changepass.change_it': 'La changer',
2038 'changepass.select_above': 'Sélectionnez-la ci-dessus',
2039 'changepass.err_same_gen': 'Celle-ci correspond à votre phrase secrète actuelle. Générez-en une autre.',
2040 'changepass.err_short': 'Prenez au moins 8 caractères.',
2041 'changepass.err_same': 'C’est votre phrase secrète actuelle. Choisissez-en une différente.',
2042 'changepass.failed': 'Cela n’a pas marché',
2043 'changepass.failed_body': 'Votre phrase secrète actuelle ne correspondait pas. Rien n’a été changé.',
2044 'changepass.careful': 'Attention',
2045 'changepass.key_not_resealed': 'La phrase secrète a changé, mais votre clé d’API n’a pas pu être rechiffrée. Ressaisissez-la dans les Réglages.',
2046 'changepass.mail_not_resealed': 'Ces boîtes mail n’ont pas pu être rechiffrées sous la nouvelle phrase secrète et redemandent leur mot de passe : {list}.',
2047 'changepass.mail_not_unsealed': 'Ces boîtes mail n’ont pas pu être lues sous l’ancienne phrase secrète, leur mot de passe reste donc à redonner : {list}.',
2048 'changepass.post_not_resealed': 'Vos messages privés n’ont pas pu être rechiffrés avec la nouvelle phrase secrète.',
2049 'changepass.post_not_unsealed': 'Vos messages privés n’ont pas pu être lus avec votre ancienne phrase secrète ; ils ont donc été laissés tels quels.',
2050 'changepass.models_not_resealed': 'Ces fournisseurs n’ont pas pu être rechiffrés sous la nouvelle phrase secrète et redemandent leur clé : {list}.',
2051 'changepass.models_not_unsealed': 'Ces fournisseurs avaient déjà des clés illisibles avant le changement, et leur clé reste à redonner : {list}.',
2052 'changepass.all_of_them': 'tous',
2053 'changepass.the_api_key': 'votre clé d’API',
2054 'changepass.search_not_resealed': 'Ces services de recherche n’ont pas pu être rechiffrés sous la nouvelle phrase secrète et redemandent leur clé : {list}.',
2055 'changepass.search_not_unsealed': 'Ces services de recherche avaient déjà des clés illisibles avant le changement, et leur clé reste à redonner : {list}.',
2056 'changepass.voice_not_resealed': 'Votre voix de la forge n’a pas pu être rechiffrée sous la nouvelle phrase secrète. Redonnez-la à partir de la ligne que la forge a imprimée pour vous.',
2057 'changepass.voice_not_unsealed': 'Votre voix de la forge n’a pas pu être lue sous l’ancienne phrase secrète, elle reste donc à redonner à partir de la ligne que la forge a imprimée pour vous.',
2058 'changepass.settle_not_resealed': 'Votre voix de règlement n’a pas pu être rechiffrée sous la nouvelle phrase secrète. Recollez-la à partir de la ligne que la forge a imprimée pour vous.',
2059 'changepass.settle_not_unsealed': 'Votre voix de règlement n’a pas pu être lue sous l’ancienne phrase secrète, elle reste donc à recoller à partir de la ligne que la forge a imprimée pour vous.',
2060 'changepass.rekey_generic': '{who} : {list}.',
2061 'changepass.rekey_failed': 'Une partie de ce qui est gardé ici n’a pas pu être rechiffrée sous la nouvelle phrase secrète. Vérifiez vos clés et les mots de passe de vos boîtes mail dans les Réglages.',
2062 'changepass.changed': 'Phrase secrète changée',
2063 'changepass.changed_body': 'Votre nouvelle phrase secrète est active. Votre clé d’API enregistrée a été rechiffrée avec elle.',
2064 'changepass.passkey_stale': 'Votre clé d’accès n’a pas pu être mise à jour : elle demandera la nouvelle phrase secrète. Rajoutez-la depuis les Réglages.',
2065
2066 // ── Backups ────────────────────────────────────────────────
2067 'backup.unreadable': 'Ce fichier de sauvegarde n’a pas pu être lu.',
2068 'backup.not_a_backup': 'Ce n’est pas une sauvegarde Daimond.',
2069 'backup.version_title': 'Cette sauvegarde est plus récente que ce Daimond',
2070 'backup.version_body': 'Le fichier a été écrit au format de sauvegarde {found}, et ce build lit le format {known}. Rien n’a été restauré, et rien dans le fichier n’a été modifié. Mettez Daimond à jour, puis rouvrez-le.',
2071 'backup.identity_title': 'Identité du compte restaurée',
2072 'backup.identity_body': 'La sauvegarde contenait l’identité de « {name} » : ce navigateur est désormais ce compte, avec les crédits et la licence Pro conservés pour lui sur le serveur. Déverrouillez avec la phrase secrète de ce compte ; la sauvegarde ne la contient pas, et rien d’autre n’ouvre le compte.',
2073 'backup.identity_kept': 'Ce navigateur détient déjà un compte\u202f: l\u2019identité de \u00ab\u202f{name}\u202f\u00bb contenue dans la sauvegarde a été laissée telle quelle. Tout le reste a été restauré.',
2074 'backup.identity_failed': 'L\u2019identité de cette sauvegarde n\u2019a pas pu être restaurée.',
2075 'backup.restored': 'Sauvegarde restaurée',
2076 'backup.n_files.one': '{n} fichier de l’espace de travail',
2077 'backup.n_files.other': '{n} fichiers de l’espace de travail',
2078 'backup.n_diamonds.one': '{n} diamond',
2079 'backup.n_diamonds.other': '{n} diamonds',
2080 'backup.restored_body': '{files} et {diamonds} restaurés. Daimond va recharger pour ouvrir votre espace de travail restauré.',
2081 'backup.n_foreign.one': '{n} fichier de cette sauvegarde appartient à un autre compte de ce navigateur : il n’a pas été restauré et ne reste que dans la sauvegarde.',
2082 'backup.n_foreign.other': '{n} fichiers de cette sauvegarde appartiennent à un autre compte de ce navigateur : ils n’ont pas été restaurés et ne restent que dans la sauvegarde.',
2083
2084 // ── The provider form ──────────────────────────────────────
2085 'models.other': 'Autre (saisie manuelle)…',
2086 'models.enter_key_first': 'Saisissez votre clé d’API pour charger les modèles…',
2087 'models.key_rejected': 'Cette clé d’API a été refusée. Vérifiez-la et réessayez.',
2088 'models.list_failed': 'Impossible de charger les modèles automatiquement. Choisissez « Autre » et tapez un identifiant de modèle.',
2089
2090 // ── The provider form's refusals ───────────────────────────
2091 'byok.err_provider': 'Choisissez d’abord un fournisseur.',
2092 'byok.err_base_url': 'Saisissez l’URL de base du fournisseur.',
2093 'byok.err_bad_url': 'Cette URL de base n’est pas une adresse web. Elle doit commencer par https:// et nommer l’hôte du fournisseur.',
2094 'byok.err_key': 'Collez votre clé d’API.',
2095 'byok.err_model': 'Choisissez un modèle, ou attendez un instant que la liste se charge.',
2096 'byok.err_rejected': 'Le fournisseur a refusé cette clé d’API. Vérifiez-la et réessayez.',
2097
2098 // ── Confirming something irreversible ──────────────────────
2099 'confirm.yes_do_it': 'Oui, fais-le',
2100 'confirm.irreversible': 'Daimond veut faire quelque chose d’irréversible',
2101
2102 // ── Coming back from a checkout ────────────────────────────
2103 'checkout.cancelled': 'Annulé',
2104 'checkout.cancelled_body': 'Rien n’a été débité et votre solde est inchangé.',
2105 'checkout.card_saved': 'Carte enregistrée',
2106 'checkout.card_saved_body': 'Daimond peut maintenant recharger vos crédits automatiquement. Fixez les limites ci-dessous, puis activez-la. Rien n’a été débité.',
2107 'checkout.card_pending_body': 'Stripe a pris la carte. Elle peut mettre un instant à apparaître ici ; rouvrez Crédits sous peu. Rien n’a été débité.',
2108 'checkout.pro_unlocked': 'Pro débloqué',
2109 'checkout.pro_unlocked_body': 'Vous avez Daimond Pro. La synchronisation entre appareils, le stockage en ligne et l’e-mail sont actifs. Pro dure cinq ans à compter de l’achat. Sans abonnement, et rien ne se renouvelle.',
2110 'checkout.received': 'Paiement reçu',
2111 'checkout.pro_pending_body': 'Votre déblocage Pro est en cours de confirmation et apparaîtra ici sous peu. Rouvrez Crédits dans un instant.',
2112 'checkout.credits_pending_body': 'Vos crédits sont encore en cours de confirmation. Ils apparaîtront ici sous peu.',
2113 'gateway.acct_unreachable': 'Impossible de joindre le service de comptes Daimond. Réessayez dans un instant.',
2114 'gateway.session_no_url': 'La session de paiement est revenue sans URL.',
2115 'gateway.card_no_url': 'La session de carte est revenue sans URL.',
2116
2117 // ── The Graph pane ─────────────────────────────────────────
2118 // One still picture of the Diamonds and the links between them. It is an
2119 // instrument for checking the structure, so the wording states what is
2120 // there rather than praising it.
2121 'graph.no_diamonds': 'Pas encore de Diamonds, donc rien à dessiner.',
2122 'graph.isolated': 'Non lié',
2123 'graph.unnamed': 'Sans titre',
2124 'graph.link_mode': 'Lier',
2125 'graph.link_help': 'Cliquez le Diamond d’où part le lien, puis celui qu’il vise. Échap annule.',
2126 'graph.organise': 'Organiser',
2127 'graph.organise_help': 'Replacer les Diamonds pour réduire les croisements, et garder les nouvelles positions.',
2128 'graph.pick_source': 'Cliquez la source, puis la cible. Échap annule.',
2129 'graph.pick_target': 'Depuis {name}. Cliquez la cible, ou appuyez sur Échap.',
2130 'graph.menu_link': 'Lier depuis ici…',
2131 'graph.menu_open': 'Ouvrir ce Diamond',
2132 'graph.menu_reset_node': 'Remettre ce Diamond en place',
2133 'graph.menu_reset_all': 'Remettre tous les Diamonds en place',
2134 'graph.menu_reset_view': 'Réinitialiser la vue',
2135 'graph.menu_edit_link': 'Modifier ce lien…',
2136 'graph.menu_drop_link': 'Supprimer ce lien',
2137 'graph.fit': 'Tout',
2138 'graph.fit_help': 'Mettre le dessin à l’échelle jusqu’à ce que tous les Diamonds soient visibles.',
2139 'graph.edit_title': 'Lien',
2140 'graph.new_title': 'Nouveau lien',
2141 'graph.rels_label': 'Relations',
2142 'graph.rel_add_ph': 'partie de, bloque… une à la fois',
2143 'graph.rel_add': 'Ajouter cette relation',
2144 'graph.rel_pool': 'Déjà utilisées',
2145 'graph.rel_none': 'Pas encore de relation.',
2146 'graph.rel_remove': 'Retirer {rel}',
2147 'graph.rel_full': 'Un lien porte au plus {n} caractères de relation.',
2148 'graph.rel_label': 'Relation',
2149 'graph.rel_ph': 'partie de, bloque, remplace…',
2150 'graph.note_label': 'Note',
2151 'graph.note_ph': 'Ce que la relation ne dit pas.',
2152 'graph.save': 'Enregistrer',
2153 'graph.create': 'Créer',
2154 'graph.cancel': 'Annuler',
2155 'graph.drop': 'Supprimer',
2156 'graph.self_link': 'Un lien joint deux Diamonds différents.',
2157 'graph.write_failed': 'Cela n’a pas pu être écrit : {err}',
2158 'graph.edit_help': 'Modifier ce lien',
2159 'graph.in_cycle': 'Ce Diamond est sur un cycle.',
2160 'graph.back_edge': 'Ce lien ferme un cycle. Les cycles sont permis ; il est tracé en pointillés pour qu’on le voie.',
2161 'graph.edge_tip': '{from} → {to}',
2162 'graph.edge_rel': 'Relation : {rel}',
2163 'graph.failed': 'Le graphe n’a pas pu être lu : {err}',
2164 'graph.artefacts.one': '{n} lien vers un fichier, une page ou un chat',
2165 'graph.artefacts.other': '{n} liens vers des fichiers, des pages ou des chats',
2166 'graph.stat_diamonds.one': '{n} Diamond',
2167 'graph.stat_diamonds.other': '{n} Diamonds',
2168 'graph.stat_links.one': '{n} lien entre Diamonds',
2169 'graph.stat_links.other': '{n} liens entre Diamonds',
2170 'graph.stat_cycles.one': '{n} lien ferme un cycle',
2171 'graph.stat_cycles.other': '{n} liens ferment des cycles',
2172 'graph.stat_dangling.one': '{n} lien pointe vers un Diamond qui n’est plus là',
2173 'graph.stat_dangling.other': '{n} liens pointent vers des Diamonds qui ne sont plus là',
2174
2175 // ── The terminal ───────────────────────────────────────────
2176 'term.label': 'Terminal',
2177 'term.menu_copy': 'Copier',
2178 'term.menu_paste': 'Coller',
2179 'term.menu_select_all': 'Tout sélectionner',
2180 'term.clipboard_denied': 'Le navigateur n\'a pas donné le presse-papiers. Utilise Ctrl-V, qui marche toujours.',
2181 'termroot.browse': 'Changer…',
2182 'termroot.browse_wait': 'Demande…',
2183 'termroot.browse_use': 'Utiliser',
2184 'grantroot.head': 'Dossier de Daimond',
2185 'grantroot.note': 'Borne chaque commande. Effectif au rechargement.',
2186 'termroot.reset': 'Dossier accordé',
2187 'termroot.head': 'Dossier du terminal',
2188 'termroot.note': 'Un terminal, c\'est toi : il peut aller plus loin qu\'un daimon.',
2189 'termroot.pinned': 'Défini sur cet ordinateur depuis le shell.',
2190 'term.hint': 'Tapez pour envoyer les touches directement au programme. Ctrl-Maj-C copie la sélection, Ctrl-Maj-V colle, Ctrl-Maj-A tout sélectionne, et Maj avec Page précédente ou Page suivante parcourt ce qui a défilé.',
2191 'term.screen_label': 'Écran du terminal, en texte',
2192 'term.screen_now': 'L’écran indique maintenant :',
2193 'term.nothing_selected': 'Rien n’est sélectionné.',
2194 'term.copied.one': '{n} ligne copiée.',
2195 'term.copied.other': '{n} lignes copiées.',
2196 'term.printed_lines.one': '{n} ligne affichée.',
2197 'term.printed_lines.other': '{n} lignes affichées.',
2198 'term.paste_warn': 'Ce collage fait {n} lignes. Le programme n’a pas demandé à être prévenu d’un collage, donc chaque ligne après la première s’exécuterait dès son arrivée.',
2199 'term.paste_first': 'Coller seulement la première ligne',
2200 'term.paste_all': 'Coller les {n} lignes',
2201 'term.exited': 'Le programme s’est terminé avec le statut {code}.',
2202
2203 'term.notices_label': 'Avis concernant ce terminal',
2204 'term.dismiss_notice': 'Masquer cet avis',
2205 'term.gaps_count.one': 'Sortie manquante à {n} endroit.',
2206 'term.gaps_count.other': 'Sortie manquante à {n} endroits.',
2207 'term.start': 'Démarrer un terminal',
2208 'term.restart': 'Redémarrer le terminal',
2209 'term.stop': 'Arrêter le programme',
2210 'term.leave_hint': 'Appuyez sur F6 pour sortir le clavier du terminal.',
2211 'term.starting': 'Démarrage d’un terminal…',
2212 'term.running': 'Le terminal est en cours d’exécution.',
2213 'term.nothing_running': 'Aucun programme ne tourne dans ce terminal.',
2214 'term.not_paired': 'Aucune main machine n’est associée à ce navigateur : il n’y a pas de machine sur laquelle ouvrir un terminal. Tout le reste de Daimond fonctionne sans elle.',
2215 'term.no_composer': 'Ce build ne peut pas dire ce qu’un terminal serait autorisé à toucher : il n’en ouvrira pas. C’est la partie Rust de l’application qui le calcule, et cette page est plus ancienne qu’elle. Mettez Daimond à jour ; les commandes et les outils de fichiers ne sont pas concernés.',
2216 'term.unreadable_request': 'Daimond n’a pas pu lire sa propre réponse sur ce que ce terminal serait autorisé à toucher : rien n’a été démarré. Rechargez l’application ; si cela se reproduit, elle doit être mise à jour.',
2217 'term.no_relay_script': 'Le relais du terminal ne s’est pas chargé dans cette page : aucun terminal ne peut être ouvert. Votre machine n’y est pour rien. Rechargez Daimond.',
2218 'term.no_renderer': 'Le terminal lui-même ne s’est pas chargé dans cette page : il n’y a rien pour en dessiner un. Votre machine n’y est pour rien. Rechargez Daimond.',
2219
2220
2221 // ── Added 2026-08-07 with the notes2 phases D-H ──────────
2222 'panel.pending': 'En attente',
2223 'skills.menu': 'Compétences que vous pouvez appeler',
2224 'skills.none': 'Aucune compétence pour l’instant. Placez un fichier markdown dans {dir} et son nom devient une commande.',
2225 'skills.draft_badge': '· brouillon',
2226 'skills.draft_title': 'Installer /{name} ?',
2227 'skills.draft_ask': 'Daimond a rédigé cette compétence. L’installer écrit exactement le texte ci-dessous dans {into}, où taper /{name} l’exécutera.',
2228 'skills.draft_install': 'Installer',
2229 'skills.draft_bad': 'Ce brouillon ne peut pas être installé',
2230 'tile.dlg_models': 'Modèles',
2231 'tile.model_daimon': 'Daimon',
2232 'tile.model_daimon_help': 'Le modèle avec lequel ce Diamond pense. La conversation se poursuit ; utilisez Nouveau daimon pour y mettre fin.',
2233 'tile.daimon_reset': 'Nouveau daimon',
2234 'tile.daimon_reset_help': 'Mettre fin à la conversation de ce daimon sans la replier dans le cristal',
2235 'tile.daimon_reset_title': 'Démarrer un nouveau daimon ?',
2236 'tile.daimon_reset_body': 'La conversation de ce daimon ({n} messages) est abandonnée, et la prochaine instruction en commence une autre. Rien ne passe dans le cristal — repliez-la d’abord si quelque chose mérite d’être gardé. Le cristal, les fichiers et les liens restent intacts.',
2237 'tile.daimon_reset_ok': 'Abandonner la conversation',
2238 'tile.daimon_reset_done': 'Un nouveau daimon. Le cristal est intact.',
2239 'tile.daimon_reset_busy_title': 'Le daimon travaille encore',
2240 'tile.daimon_reset_busy': 'Ce daimon est au milieu d’un tour. Sa réponse arriverait dans la conversation que vous êtes sur le point de jeter, et la conversation que le modèle tient aussi — rien n’est donc jeté pour l’instant. Arrêtez le tour d’abord : tant qu’il tourne, le bouton à côté de la zone de saisie s’appelle Arrêter.',
2241 'tile.model_workers': 'Ouvriers',
2242 'tile.model_vision': 'Ouvriers, images',
2243 'tile.model_vision_help': 'Le modèle sur lequel tourne un ouvrier quand sa tâche nomme une image, et celui sur lequel il passe quand le modèle en cours s’avère ne pas prendre d’images. Daimond ne peut pas savoir à l’avance quels modèles voient : le choix vous revient, et il agit au premier refus.',
2244 'tile.model_same_as_text': 'Comme le daimon',
2245 'tile.model_none': 'aucun',
2246 'tile.diamond_model_help': 'Ce Diamond pense avec {model}.',
2247 'tile.model_note': 'Un ouvrier garde le modèle avec lequel il a commencé. Un nouveau modèle vaut pour le prochain envoyé.',
2248 'tile.model_changed': 'Daimon passé de {from} à {to}. La conversation se poursuit.',
2249 'tile.model_change_note': 'Daimon passé de {from} à {to}.',
2250 'tile.model_change_unlogged': 'Le modèle a changé, mais l’entrée d’historique n’a pas pu être écrite.',
2251 'tile.dlg_context': 'Contexte',
2252 'tile.context_line': '{used} sur {all} utilisés. Repliage à {at} %.',
2253 'tile.context_unknown': 'Ce modèle ne publie aucune fenêtre de contexte : il n’y a rien à quoi se mesurer tant qu’une requête n’a pas été refusée.',
2254 'tile.context_used_folds': 'Fenêtre de contexte utilisée : {used} / {all}. Repliage à {at} %.',
2255 'tile.fold_context': 'Replier maintenant',
2256 'tile.fold_context_help': 'Résumer maintenant la partie ancienne de cette conversation, avant qu’elle ne se remplisse',
2257 'tile.fold_context_title': 'Replier cette conversation ?',
2258 'tile.fold_context_body': 'Un modèle résume la partie ancienne, ce qui coûte un appel, et le résumé devient ce dont ce chat se souvient. Les messages à l’écran restent où ils sont.',
2259 'tile.fold_context_ok': 'Replier',
2260 'tile.fold_nothing': 'Rien à replier. Cette conversation est déjà aussi courte que possible.',
2261 'tile.fold_mid_turn': 'Attendez la fin de ce tour avant de replier.',
2262 'tile.fold_unavailable': 'Rien n’a encore été dit dans ce chat.',
2263 'tile.fold_failed': 'Le repliage n’est pas allé au bout',
2264 'agent.model_vision': 'Cette tâche nomme une image : elle tourne sur le modèle image de ce Diamond, {model}.',
2265 'agent.model_vision_fallback': 'Cette tâche nomme une image, mais aucun modèle image n’est réglé pour ce Diamond : elle tourne sur le modèle texte, {model}.',
2266 'agent.model_rerouted': 'On ne peut pas montrer d’images à {from} : cet ouvrier est passé sur {to}.',
2267 'agent.model_blind': 'On ne peut pas montrer d’images à {model} : l’image a été laissée de côté.',
2268 'agent.model_blind_none': 'On ne peut pas montrer d’images à {model}, et aucun modèle image n’est réglé pour ce Diamond.',
2269 'pending.empty': 'Rien ne vous attend.',
2270 'pending.sort': 'Trier',
2271 'pending.by_priority': 'Par priorité',
2272 'pending.by_newest': 'Les plus récents d’abord',
2273 'pending.by_oldest': 'Les plus anciens d’abord',
2274 'pending.priority': 'Priorité',
2275 'pending.prio_high': 'Haute',
2276 'pending.prio_normal': 'Normale',
2277 'pending.prio_low': 'Basse',
2278 'pending.no_detail': 'Aucun détail supplémentaire n’a été donné.',
2279 'pending.execute': 'Faites-le',
2280 'pending.execute_named': 'Faites-le : {what}',
2281 'pending.discuss': 'En discuter d’abord',
2282 'pending.discuss_named': 'En discuter d’abord : {what}',
2283 'pending.cancel': 'Abandonner',
2284 'pending.cancel_named': 'Abandonner : {what}',
2285 'pending.noted': 'Noté, et retiré de la liste.',
2286 'pending.opened': 'Ouvert pour envoi. Reste ici jusqu’à l’envoi.',
2287 'pending.diamond_gone': 'Le Diamond qui a soulevé ceci n’est plus là : il n’y a personne avec qui en discuter.',
2288 'pending.discuss_prompt': 'Il faut qu’on en discute davantage avant que j’approuve : « {headline} »',
2289 'crystal.view_switch': 'Quelle face de ce Diamond',
2290 'crystal.view_crystal': 'Cristal',
2291 'crystal.view_chat': 'Chat',
2292 'crystal.full': 'Plein écran',
2293 'crystal.full_help': 'Remplir l’écran avec cette page',
2294 'crystal.full_exit': 'Quitter le plein écran',
2295 'crystal.full_exit_help': 'Rétablir la barre latérale et la barre du haut',
2296 'capp.title': '{name}',
2297 'capp.make_body': 'Ceci crée un Diamond nommé « {name} » et y place la page {name}. Ce que vous enregistrez reste dans ce Diamond, sur cet appareil.',
2298 'capp.make_ok': 'Le créer',
2299 'capp.exists_body': 'Vous avez déjà un Diamond nommé « {name} », et ce que vous y avez consigné s’y trouve. En créer un second laisserait ces entrées derrière.',
2300 'capp.exists_ok': 'L’ouvrir',
2301 'capp.missing_body': 'Cette version de Daimond ne contient pas le modèle {name} : il n’y a donc rien à mettre dans un Diamond. Rien n’a été créé. Demandez une page à votre daimon, ou mettez Daimond à jour et réessayez.',
2302 'capp.page_failed': 'Le Diamond a été créé, mais sa page n’a pas pu être écrite : {why}',
2303 // Tenir à jour la page d’une capp. On DEMANDE, on ne remplace pas d’office :
2304 // c’est une proposition, pas un avertissement. « lanes » reste en anglais,
2305 // comme Diamond, parce que la page elle-même est en anglais.
2306 'capp.legacy_body': 'Ce {name} a été créé avant que les capps ne portent une version : Daimond ne peut donc pas savoir quelles parties de sa page sont celles qui lui ont été données. Mettre sa page à jour vers la page actuelle ? Vos lanes et vos entrées restent intactes.',
2307 'capp.legacy_ok': 'Mettre la page à jour',
2308 'capp.update_kept': 'La page a été mise à jour. Ces fichiers sont les vôtres et ont été laissés tels quels : {files}.',
2309 'capp.update_failed': 'La page n’a pas pu être remplacée : {why}',
2310 // Le retour se fait vers le modèle PROPRE à la capp, pas vers une page vide
2311 // ni vers la page standard.
2312 'capp.page_reset_confirm': 'Remplacer la page de ce Diamond par la page {name} actuelle ? Ce que vous avez consigné n’est pas touché.',
2313 'crystal.chat_empty': 'Rien n’a encore été dit. Le cristal est ce que ce Diamond sait ; ceci est comment il l’a appris.',
2314 'crystal.dispatch_after_error': 'Le tour s’est mal terminé : les agents qu’il demandait n’ont pas été lancés.',
2315 'instructions.chip_two': 'Deux couches sont en vigueur : la vôtre et celle de ce projet. Cliquez pour ouvrir la vôtre.',
2316 'sys.head': 'Système',
2317 'sys.note': 'Les fichiers propres à Daimond. Ils vivent dans le navigateur, pas dans le dossier que vous avez ouvert, et voyagent entre vos appareils.',
2318 'sys.empty': 'rien ici pour l’instant',
2319 'sys.up': 'Dossier parent',
2320 'trig.head': 'Quand ce Diamond agit',
2321 'trig.none': 'Rien de réglé. Ce Diamond répond quand vous le sollicitez, et à aucun autre moment.',
2322 'trig.activity': 'Après {n} minutes de votre activité',
2323 'trig.mail': 'Quand du courrier arrive dans {folder} ({mailbox})',
2324 'trig.edit': 'Modifier cette action',
2325 'trig.choose': 'Quelle action',
2326 'trig.opt_on': '▶ {what}',
2327 'trig.opt_off': '⏸ {what}',
2328 'trig.nothing_written': 'rien d’écrit',
2329 'trig.edit_this': 'Modifier {what}',
2330 'trig.copy_this': 'Copier {what}',
2331 'trig.copy': 'Copier son instruction et son contexte',
2332 'trig.copied': 'Copié.',
2333 'trig.copy_failed': 'Le presse-papiers a refusé. Ouvrez l’action et copiez depuis le champ.',
2334 'trig.remove': 'Supprimer',
2335 'trig.remove_body': 'Supprimer « {what} » ? Ce Diamond cessera d’agir dessus.',
2336 'trig.add': 'Ajouter une action',
2337 'trig.add_kind': 'Ce qui la déclenche',
2338 'trig.kind_activity': 'Minutes de mon activité',
2339 'trig.kind_mail': 'Courrier qui arrive',
2340 'trig.note': 'Elles se trouvent dans {path}, où vous et ce Diamond pouvez les lire tous les deux.',
2341 'trig.edit_title': 'Modifier : {what}',
2342 'trig.minutes': 'Minutes',
2343 'trig.minutes_note': 'Des minutes où vous travaillez, pas des minutes d’horloge. Un onglet laissé ouvert la nuit n’en compte aucune.',
2344 'trig.mailbox': 'Boîte aux lettres',
2345 'trig.folder': 'Dossier',
2346 'trig.no_mailbox': 'Aucune boîte aux lettres configurée pour l’instant',
2347 'trig.instruction': 'Instruction',
2348 'trig.instruction_ph': 'Ce qu’il faut demander à ce Diamond quand elle se déclenche…',
2349 'trig.context': 'Contexte',
2350 'trig.context_ph': 'Le fond dont il a besoin la première fois, et seulement la première fois…',
2351 'trig.context_note': 'Envoyé une fois, devant la première instruction. Changez-le et il est envoyé de nouveau.',
2352 'trig.section': 'Actions automatiques',
2353 'role.compactor': 'Repliage du contexte',
2354 'role.compactor_help': 'Résume une conversation qui a dépassé sa fenêtre. Sa réponse devient ce dont le chat se souvient.',
2355 'settings.fold_model': 'Replier avec',
2356 'settings.fold_model_own': 'Le modèle propre de la conversation',
2357 'settings.fold_model_group': 'Replier plutôt avec',
2358 'settings.fold_model_note': 'Quand une conversation dépasse sa fenêtre, elle est résumée, et le résumé devient ce dont le modèle se souvient. Ceci choisit qui l’écrit, pour les chats du même fournisseur ; tout autre chat se replie avec son propre modèle.',
2359
2360 // The durable trail, shown on the lock screen only when the app is
2361 // actually looping -- three boots in ninety seconds. See breadcrumb.js.
2362 'trail.looping': 'Daimond a redémarré {n} fois dans la dernière minute. Voici ce qu’il a fait ; copiez-le dans un rapport de bogue.',
2363 'trail.copy': 'Copier',
2364 'trail.copied': 'Copié',
2365 'trail.clear': 'Effacer',
2366
2367 // A safe start: the app opens without the sync engine, so a device that
2368 // cannot stay open long enough to be used gets to be used. See safe.js.
2369 'safe.armed': 'Daimond a démarré sans synchronisation, il devrait donc rester ouvert. Votre travail est en sécurité sur cet appareil et atteindra de nouveau vos autres appareils dès la synchronisation réactivée.',
2370 'safe.offer': 'Si Daimond ne reste pas ouvert, démarrez-le sans synchronisation. Votre travail reste sur cet appareil et rien n’est supprimé.',
2371 'safe.turn_off': 'Démarrer sans synchronisation',
2372 'safe.turn_on': 'Réactiver la synchronisation',
2373 'safe.chip': 'Sync. désactivée (démarrage sûr)',
2374 'safe.chip_reason': 'Daimond a démarré sans synchronisation : le travail de cet appareil n’atteint pas vos autres appareils. Rien n’est perdu ; tout est encore là.',
2375 'safe.chip_click': 'Cliquez pour réactiver la synchronisation.',
2376 'safe.turn_on_title': 'Réactiver la synchronisation ?',
2377 'safe.turn_on_ask': 'Daimond redémarre et tente de se synchroniser à nouveau avec vos autres appareils. S’il se met à se fermer tout seul, il revient de lui-même au démarrage sûr.',
2378 'safe.turn_on_ok': 'Redémarrer avec la synchronisation',
2379
2380 // The sync switch and the durable trail, both reachable from the admin
2381 // panel. See safe.js and breadcrumb.js.
2382 'home.sec_sync': 'Synchronisation et diagnostic',
2383 'settings.sync': 'Synchronisation',
2384 'settings.sync_on_note': 'Cet appareil envoie son travail à vos autres appareils. L’arrêt est immédiat et ne perd rien ; tout reste ici.',
2385 'settings.sync_off_note': 'Cet appareil ne se synchronise pas. Son travail est en sécurité ici et ne parvient pas à vos autres appareils.',
2386 'settings.trail': 'Diagnostic',
2387 'settings.trail_copy': 'Copier le journal de l’application',
2388 'settings.trail_note': 'Ce que Daimond vient de faire : des noms d’événements et une horloge, aucune clé, aucun texte de message, rien de vos fichiers. Sans risque à coller dans un rapport de bogue.',
2389 'settings.trail_empty': 'Rien d’enregistré pour l’instant.',
2390 // ── The email doorbell ─────────────────────────────────────
2391 'doorbell.title': 'Sonnette par courriel',
2392 'doorbell.asking': 'Vérification…',
2393 'doorbell.saving': 'Enregistrement…',
2394 'doorbell.turn_off': 'Désactiver la sonnette par courriel',
2395 'doorbell.turn_on': 'Activer la sonnette par courriel',
2396 'doorbell.on_note': 'Lorsqu’un message arrive et que Daimond n’est ouvert nulle part, nous pouvons envoyer un courriel à l’adresse de votre compte indiquant que quelque chose attend. Sans expéditeur, sans objet, sans décompte, et au plus un toutes les 24 heures. La désactivation arrête aussi celui qui attendait déjà de partir.',
2397 'doorbell.off_note': 'Aucun courriel ne sera envoyé. Vous verrez le message à votre prochaine ouverture de Daimond, et nulle part ailleurs.',
2398 'doorbell.default_note': 'C’est le réglage par défaut d’un compte bêta ; vous ne l’avez pas modifié.',
2399 'doorbell.no_address': 'Aucune adresse de courriel n’est enregistrée sur votre compte : rien ne peut donc être envoyé, quel que soit ce réglage.',
2400 'doorbell.unconfigured': 'Cette passerelle ne peut pas envoyer de courriel : rien ne sera donc envoyé, quel que soit ce réglage.',
2401 'doorbell.err_save': 'Cela n’a pas été enregistré. Le réglage est inchangé ; réessayez.',
2402 'doorbell.notice_title': 'Un courriel, au plus une fois par jour',
2403 'doorbell.notice_body': 'Lorsque quelqu’un vous envoie un message privé et que Daimond n’est ouvert nulle part, nous pouvons envoyer un courriel à l’adresse de votre compte indiquant que quelque chose attend. Il ne comporte ni expéditeur, ni objet, ni décompte, ni lien vers un message — et au plus un toutes les 24 heures.\n\nVous pouvez le désactiver quand vous voulez : ouvrez les Réglages depuis la roue dentée à côté de votre nom, c’est la ligne « Sonnette par courriel ». La désactivation arrête aussi celui qui attendait déjà de partir.',
2404 // ── Reporting a message, and sharing a Diamond ─────────────
2405 // i18n-family: report.reason_ = harassment threat spam impersonation other
2406 'post.report': 'Signaler',
2407 'report.title': 'Signaler ce message',
2408 'report.rule': 'Ces mots exacts vont à l’exploitant, avec la signature de l’expéditeur et l’unique clé qui ouvre ce message. Rien d’autre de cette conversation ne part : ni le reste du fil, ni ses autres messages, ni vos autres conversations.',
2409 'report.signed_by': 'Signé par {fp}',
2410 'report.why': 'Pourquoi le signalez-vous ?',
2411 'report.reason_harassment': 'Des insultes qui me visent',
2412 'report.reason_threat': 'Une menace',
2413 'report.reason_spam': 'Des messages de masse non sollicités',
2414 'report.reason_impersonation': 'Se fait passer pour quelqu’un d’autre',
2415 'report.reason_other': 'Autre chose',
2416 'report.send': 'Envoyer ce signalement',
2417 'report.cancel': 'Annuler',
2418 'report.sending': 'Envoi…',
2419 'report.sent': 'Signalé. L’exploitant peut maintenant lire ce seul message.',
2420 'report.already': 'Vous avez déjà signalé ce message. Rien de nouveau n’a été envoyé.',
2421 'report.done': 'Fermer',
2422 'report.err_no_message': 'Ce message n’est pas un de ceux que cet appareil détient.',
2423 'report.err_no_artefact': 'Cette version n’a pas conservé la forme signée de ce message : rien ne prouve donc qui l’a envoyé. Un signalement sans cela serait une accusation, aussi rien n’a été envoyé.',
2424 'report.err_no_envelope': 'Cette version n’a pas conservé la forme scellée de ce message : le signalement n’aurait donc pas pu être recoupé avec ce que le relais a transporté. Rien n’a été envoyé.',
2425 'report.err_no_bridge': 'Cette version ne peut pas lire le message qu’elle s’apprête à envoyer, elle ne l’enverra donc pas.',
2426 'report.err_not_a_post': 'Ce n’est pas un message ; c’est un {kind}.',
2427 'report.err_no_reasons': 'Le signalement n’est pas disponible pour l’instant.',
2428 'report.err_failed': 'Ce signalement n’a pas été déposé. Rien n’a été envoyé.',
2429 'share.err_no_bridge': 'Cette version ne peut pas partager de Diamond : son format de partage n’est pas chargé.',
2430 'share.err_no_seal': 'Cette version ne peut pas partager de Diamond : le sceau sous lequel il partirait n’est pas chargé.',
2431 'share.err_no_store': 'Cette version sait lire un partage mais n’a nulle part où le mettre.',
2432 'share.err_locked': 'Déverrouillez Daimond pour partager : un partage est signé avec votre propre clé.',
2433 'share.err_empty': 'Il n’y a encore rien à envoyer dans ce Diamond.',
2434 'share.err_nothing': 'Il n’y a rien à partager : nommez un Diamond ou les fichiers à envoyer.',
2435 'share.err_no_name': 'Un partage a besoin d’un nom pour ce qu’il contient.',
2436 'share.err_note_long': 'Cette note dépasse {n} caractères et n’a pas été envoyée. Un partage porte une ligne sur ce qu’il est ; une lettre est un message.',
2437 'share.err_too_many_files': 'Ce Diamond contient {n} fichiers, et un partage en porte au plus {max}.',
2438 'share.err_too_big': 'Ce Diamond pèse {mb} Mo, et un partage en porte au plus {max} Mo. Il est refusé plutôt que rogné : une copie à laquelle il manque un fichier n’est pas une copie plus petite.',
2439 'share.err_bad_key': 'Cette personne n’a pas de clé utilisable, rien n’a donc été envoyé.',
2440 'share.err_no_card': 'Il n’y a pas encore de clé de scellement pour cette personne, rien ne peut donc lui être scellé. Scannez son code, ou demandez-lui de vous envoyer le sien.',
2441 'share.err_not_addressed': 'Ce partage est adressé à une clé différente de celle-ci.',
2442 'share.err_addr_mismatch': 'Le partage annoncé n’est pas celui qui est arrivé.',
2443 'share.err_all_code': 'Tout ce que contient ce partage est une page, et la page n’a pas été acceptée : rien n’a donc été ajouté.',
2444 'share.code_title': 'Ce partage contient du code',
2445 'share.code_body': '« {name} » comprend une page : un programme écrit par quelqu’un d’autre, que Daimond exécutera à son ouverture. Il vient de {who}. Ne l’acceptez que si vous attendiez une page de sa part.\n\nCe qui serait ajouté : {files}',
2446 'share.code_ok': 'Accepter la page',
2447 'share.landed_name': 'Un Diamond partagé',
2448 'share.landed_title': 'Diamond partagé ajouté',
2449 'share.landed_partial': 'Ces fichiers n’ont pas pu être écrits dans le Diamond : {list}. Tout le reste du partage est là.',
2450 'share.left_page': 'c’est une page que vous n’avez pas acceptée',
2451 'share.landed_ok': 'Ajouté comme Diamond à vous. {n} fichier(s) sont arrivés.',
2452 'share.panel_take_head': 'Ouvrir un partage',
2453 'share.panel_take_help': 'Prenez un fichier {ext} que quelqu’un vous a donné. Une page à l’intérieur est un programme qu’il a écrit, et elle n’est jamais écrite dans votre espace de travail sans vous demander d’abord.',
2454 'share.panel_take': 'Ouvrir un fichier de partage…',
2455 'share.panel_send_head': 'Envoyer un Diamond',
2456 'share.panel_no_diamond': 'Ouvrez un Diamond pour le partager. Un partage porte les fichiers d’un seul Diamond, il faut donc en avoir un devant vous.',
2457 'share.panel_no_people': 'Personne ici n’a encore de clé de scellement, il n’y a donc personne à qui sceller un partage. Montrez votre code à quelqu’un, ou lisez le sien.',
2458 'share.panel_this': 'Partage de « {name} » : une copie qui sera la leur, pas une vue de la vôtre.',
2459 'share.panel_who': 'À qui cela va',
2460 'share.panel_send': 'Partager',
2461 'share.panel_sealing': 'Scellement…',
2462 'share.panel_sent': 'Envoyé à {who}.',
2463 'share.panel_refused': 'Le relais ne l’a pas pris : {why} Il est enregistré comme fichier à la place — donnez-leur celui-là.',
2464 'share.by_relay': 'Ce partage fait {size} et part directement vers cette personne par le relais.',
2465 'share.by_file': 'Ce partage fait {size} et le relais porte au plus {max} : il voyage donc comme fichier. Enregistrez-le et donnez-lui le fichier. Il lui est scellé dans les deux cas.',
2466 'share.saved_as': 'Enregistré sous {name}. Donnez-lui ce fichier : il est scellé pour elle et pour personne d’autre.',
2467 'share.err_not_share': 'Ce fichier n’est pas un partage Daimond.',
2468 'share.err_no_file': 'Aucun fichier n’a été choisi, rien n’a donc été ouvert.',
2469 'share.err_file_huge': 'Ce fichier fait {size}, plus que ne peut faire un partage : il n’a pas été ouvert.',
2470 // ── The Trash ──────────────────────────────────────────────
2471 'panel.trash': 'Corbeille',
2472
2473 // ── Le panneau Améliorer ───────────────────────────────────
2474 // Où l’on écrit une note sur Daimond et où l’on lit les propositions. Les
2475 // deux moitiés passent désormais par la forge Oregami.
2476 'panel.social': 'Social',
2477 'social.notes': 'Notes',
2478 'social.proposals': 'Propositions',
2479 'social.messages': 'Messages',
2480 'social.people': 'Personnes',
2481 'social.messages_off': 'Les messages ne sont pas activés dans cette version.',
2482 'social.people_off': 'Personne pour l’instant. Montrez votre code à quelqu’un dans la pièce, ou lisez le sien.',
2483 'social.share': 'Partager',
2484 'social.share_off': 'Le partage n’est pas disponible dans cette version.',
2485
2486 'post.err_no_bridge': 'Cette version ne peut pas rédiger de message : son format de message n’est pas chargé.',
2487 'post.err_no_draft': 'Cette version ne peut pas rédiger de message : son encodeur de messages n’est pas chargé.',
2488 'post.err_no_recipient': 'Un message scellé a besoin d’au moins une clé de destinataire.',
2489 'post.err_too_many': 'Un message peut être scellé pour {n} personnes au plus à la fois.',
2490 'post.err_bad_key': 'L’un des destinataires n’a pas de clé utilisable, rien n’a donc été envoyé.',
2491 'post.err_short': 'Ce message est trop court pour en être un.',
2492 'post.err_not_sealed': 'Ce n’est pas un message Daimond scellé.',
2493 'post.err_no_sealing_key': 'Cet appareil n’a pas de clé de scellement, il ne peut donc pas ouvrir un message scellé. Déverrouillez Daimond une fois et une clé sera créée.',
2494 'post.err_not_for_you': 'Ce message n’a été scellé pour aucune clé que cet appareil détient.',
2495 'post.err_locked': 'Déverrouillez Daimond pour envoyer un message : il est signé avec votre propre clé.',
2496 'post.err_empty': 'Il n’y a rien à envoyer.',
2497 'post.err_long': 'Ce message dépasse {n} caractères de texte et n’a pas été envoyé. Il est refusé plutôt que coupé : un demi-message n’est pas un message plus court.',
2498 'post.err_no_card': 'Il n’y a pas encore de clé de scellement pour cette personne, rien ne peut donc lui être scellé. Scannez son code, ou demandez-lui de vous envoyer le sien.',
2499 'post.err_no_groups': 'Cette version ne peut pas envoyer à un groupe.',
2500 'post.err_group_none': 'Le message n’a atteint personne dans ce groupe : rien n’a donc été envoyé.',
2501 'post.err_reserved_line': 'Un message ne peut pas commencer par cette ligne : Daimond s’en sert pour transporter la liste des membres d’un groupe. Mettez quelque chose avant.',
2502 'post.err_bad_ref': 'Ce n’est pas un type de référence qu’un message peut porter.',
2503 'post.err_not_a_post': 'Ce n’est pas un message ; c’est un {kind}.',
2504 'post.err_not_addressed': 'Ce message est adressé à une clé différente de celle-ci.',
2505 'post.err_addr_mismatch': 'Le message que le relais a nommé n’est pas celui qu’il a porté.',
2506 'post.err_offline': 'Daimond n’a pas pu joindre le relais, le message n’a donc pas été envoyé.',
2507 'post.err_box_full': 'Cette boîte est pleine, le message n’est donc pas arrivé. Il faut relever ce qui s’y trouve déjà avant qu’un autre puisse entrer.',
2508 'post.err_no_account': 'Aucun compte ne détient cette clé, le message n’a donc pas été envoyé.',
2509 'post.err_too_big': 'Ce message est trop volumineux pour que le relais le porte.',
2510 'post.err_refused': 'Le relais n’a pas pris ce message, il n’a donc pas été envoyé.',
2511 'post.locked': 'Déverrouillez Daimond pour lire vos messages : ils sont conservés chiffrés sur cet appareil.',
2512 'post.tray_head': 'En attente de votre réponse',
2513 'post.none': 'Pas encore de messages.',
2514 'post.you': 'Vous',
2515 'post.someone': 'Quelqu’un de nouveau',
2516 'post.unreadable': 'Un message est arrivé que cet appareil n’a pas pu ouvrir.',
2517 'post.accept': 'Accepter',
2518 'post.ignore': 'Ignorer',
2519 'post.block': 'Bloquer',
2520 'post.expired': 'Un message que vous avez envoyé n’a jamais été relevé et le relais l’a laissé partir.',
2521 'post.expired_group': 'Un message que vous avez envoyé à un groupe n’a jamais été relevé par {n} des personnes à qui il est allé, et le relais a laissé partir ces copies.',
2522 'post.notice': 'Le relais a laissé un avis ici.',
2523 'post.nobody': 'Il n’y a encore personne à qui écrire. Échangez des codes avec quelqu’un dans Personnes, et il apparaîtra ici.',
2524 'post.to_label': 'À qui cela va',
2525 'post.audience': 'Privé. Vous et la personne à qui vous écrivez êtes les seuls à pouvoir lire ceci.',
2526 'post.audience_group': 'Scellé une fois pour chacune des {n} personnes de ce groupe. Il n’y a pas de clé partagée : qui rejoint plus tard ne pourra pas lire ceci, et qui est retiré ensuite le garde.',
2527 'post.group_count': '{n} personnes',
2528 'post.box_label': 'Écrire un message privé',
2529 'post.box_ph': 'Ce que vous voulez dire, et à qui.',
2530 'post.send': 'Envoyer en privé',
2531 'post.err_no_to': 'Choisissez d’abord à qui cela va.',
2532 'post.sending': 'Envoi en cours…',
2533 'post.sent': 'Envoyé.',
2534 'post.sent_group': 'Envoyé à {n} personnes.',
2535 'post.refused_offline': 'le relais était injoignable',
2536 'post.refused_full': 'leur boîte est pleine',
2537 'post.refused_no_account': 'aucun compte ne détient leur clé',
2538 'post.refused_too_big': 'trop volumineux pour le relais',
2539 'post.refused_other': 'le relais l’a refusé',
2540 'post.group_refused': 'Le relais ne l’a pas pris pour : {who}.',
2541
2542 // ── A group, and who is in it ──
2543 // A group is a LIST OF PEOPLE a message is sealed to one by one. No
2544 // shared key, nothing kept on the relay: that decides every line here.
2545 'group.err_unknown': 'Cet appareil ne connaît pas ce groupe.',
2546 'group.err_left': 'Vous n’êtes plus dans ce groupe, rien ne peut donc lui être envoyé. Les messages déjà ici restent où ils sont.',
2547 'group.err_closed': 'Ce groupe a été fermé, plus rien ne peut donc lui être envoyé. Les messages déjà ici restent où ils sont.',
2548 'group.err_close_not_creator': 'Seule la personne qui a créé un groupe peut le fermer.',
2549 'group.err_not_joined': 'Rejoignez ce groupe avant de lui écrire.',
2550 'group.err_nobody': 'Il n’y a personne dans ce groupe pour qui cet appareil puisse sceller.',
2551 'group.err_locked': 'Déverrouillez Daimond pour créer un groupe : sa liste des membres est signée avec votre propre clé.',
2552 'group.err_no_id': 'Cet appareil n’a pas pu nommer de groupe.',
2553 'group.err_not_creator': 'Seule la personne qui a créé un groupe peut changer qui en fait partie.',
2554 'group.err_no_sealing_key': 'Cet appareil n’a pas encore de clé de scellement, il ne peut donc pas créer de groupe.',
2555 'group.err_too_many': 'Un groupe peut contenir au plus {n} personnes.',
2556 'group.err_no_card': 'Il n’y a pas de clé de scellement pour {n} des personnes choisies : elles ne peuvent donc pas être ajoutées. Scannez d’abord leur code.',
2557 'group.err_bad_keys': 'Ce ne sont pas des clés : {who}.',
2558 'group.err_pick': 'Choisissez au moins une personne.',
2559
2560 // lower case and no full stop: each finishes `group.refused`
2561 'group.skip_blocked': 'vous avez bloqué cette clé',
2562 'group.refused': 'Non scellé à : {who}.',
2563 'group.skip_changed': 'sa clé a changé et vous n’avez pas comparé la nouvelle',
2564 'group.skip_disagree': 'la clé que le groupe a pour cette personne n’est pas celle que vous détenez',
2565
2566 // The two sentences. Each states a LIMIT: what a new member cannot be
2567 // shown, and what somebody taken out keeps. Neither may be softened.
2568 'group.joining_shows_nothing': 'En rejoignant le groupe, vous ne verrez rien de ce qui a été envoyé avant votre arrivée. Ces messages n’ont jamais été scellés pour votre clé : aucun appareil ne peut donc les ouvrir pour vous.',
2569 'group.removing_retracts_nothing': 'Retirer quelqu’un ne reprend rien. Cette personne garde tous les messages qui lui ont déjà été envoyés ; elle ne recevra rien de ce qui sera envoyé à partir de maintenant.',
2570 'group.close_note': 'Fermer un groupe le ferme pour tout le monde. Personne ne pourra plus lui écrire, vous non plus ; tous les messages déjà envoyés restent où ils sont. C’est irréversible.',
2571
2572 'group.unnamed': 'Un groupe',
2573 'group.invites_head': 'Invitations à des groupes',
2574 'group.head': 'Groupes',
2575 'group.none_joined': 'Aucun groupe rejoint pour l’instant. Répondez à l’invitation ci-dessus, ou créez-en un ci-dessous.',
2576 'group.none': 'Pas encore de groupes. Un groupe est une liste de personnes pour lesquelles un message est scellé une par une — il n’y a pas de clé partagée, et rien n’est conservé sur le relais.',
2577 'group.invited_by': '{n} personnes, invitées par la personne qui a créé le groupe.',
2578 'group.join': 'Rejoindre',
2579 'group.decline': 'Pas maintenant',
2580 'group.count': '{n} personnes',
2581
2582 // "stop sending to", never "remove": nothing is taken back
2583 'group.stop_sending': 'Ne plus envoyer à {who}',
2584 'group.leave': 'Quitter ce groupe',
2585 'group.gone': 'Vous n’êtes plus dans ce groupe. Rien n’a été retiré : tous les messages déjà ici restent, et rien de nouveau n’arrivera.',
2586
2587 'group.close': 'Fermer ce groupe',
2588 'group.close_title': 'Fermer ce groupe pour tout le monde ?',
2589 'group.close_ask': 'Cela ferme « {name} » pour tout le monde qui en fait partie.',
2590 'group.close_ok': 'Le fermer pour tout le monde',
2591 'group.closed_said': 'Fermé, et {n} personnes ont été prévenues.',
2592 'group.closed': 'Ce groupe a été fermé par la personne qui l’a créé. Rien n’a été retiré : tous les messages déjà ici restent, et personne ne peut plus lui écrire.',
2593
2594 'group.nobody': 'Il n’y a encore personne à mettre dans un groupe. Échangez des codes avec quelqu’un dans Personnes, et il apparaîtra ici.',
2595 'group.name_ph': 'Comment appeler ce groupe',
2596 'group.name_label': 'Le nom du groupe',
2597 'group.members_label': 'Qui fait partie de ce groupe',
2598 'group.make': 'Créer ce groupe',
2599 'group.sending_roster': 'On prévient tout le monde…',
2600 'group.roster_sent': 'Terminé.',
2601 'group.making': 'Création du groupe…',
2602 'group.made': 'Créé, et {n} personnes ont été prévenues.',
2603
2604 'trust.key_blocked': 'Clé bloquée',
2605 'trust.key_matched_qr': 'Clé comparée en personne, {when}',
2606 'trust.key_matched_number': 'Clé comparée par numéro de sécurité, {when}',
2607 'trust.key_changed': 'Clé différente — celle que vous avez comparée a été vue pour la dernière fois {when}',
2608 'trust.key_new': 'Nouvelle clé — vous n’avez pas encore comparé celle-ci',
2609 'trust.no_name': '(aucun nom donné)',
2610 'trust.calls_themselves': 'se fait appeler « {name} »',
2611 'trust.lookalike': 'Ce nom ressemble à un que vous avez déjà comparé ({fp}). Un nom n’est pas une identité — regardez la clé.',
2612 'trust.held': 'Les messages venant de cette clé attendent votre décision.',
2613 'trust.compare_numbers': 'Comparer les numéros de sécurité',
2614 'trust.unblock': 'Débloquer',
2615 'trust.block': 'Bloquer',
2616 'trust.show_mine': 'Montrer mon code',
2617 'trust.show_lead': 'Laissez-les pointer leur caméra dessus. Le lire en personne est la seule façon pour l’un de vous de marquer l’autre comme comparé sans appel téléphonique.',
2618 'trust.no_card': 'Cet appareil n’a pas encore de carte. Déverrouillez-le et réessayez.',
2619 'trust.paste_lead': 'Pas de caméra ? Envoyez-leur ceci à la place. Un code arrivé ainsi est une nouvelle clé et le reste jusqu’à ce que vous compariez les numéros.',
2620 'trust.add': 'Ajouter quelqu’un',
2621 'trust.add_lead': 'Pointez cet appareil sur leur code, ou collez ce qu’ils vous ont envoyé.',
2622 'trust.read_paste': 'Lire ceci',
2623 'trust.bad_card': 'Ce n’est pas un code Daimond, ou le contrôle a échoué.',
2624 'trust.arrived': 'Un code est arrivé',
2625 'trust.qr_lead': 'Vous l’avez lu sur leur écran, il n’y avait donc aucun canal par lequel quelqu’un aurait pu s’intercaler. Ne le marquez comparé que si c’est bien ce qui s’est passé.',
2626 'trust.mark_matched': 'Marquer comme comparée',
2627 'trust.async_lead': 'Ceci est passé par un intermédiaire, cela reste donc une nouvelle clé. Lisez le numéro de sécurité à voix haute lors d’un appel pour changer cela.',
2628 'trust.numbers': 'Numéros de sécurité',
2629 'trust.numbers_lead': 'Lisez-vous ces soixante chiffres lors d’un appel, ou en personne. Vous devez voir tous les deux les mêmes douze groupes. Les lire dans un message ne prouve rien — ce qui pourrait échanger les clés pourrait échanger le message.',
2630 'trust.numbers_differ': 'Ils sont différents',
2631 'trust.numbers_match': 'Les numéros correspondent',
2632 'trust.no_number': 'Cet appareil ne peut pas encore calculer le numéro.',
2633 'trust.numbers_differ_note': 'Alors quelqu’un est entre vous. N’utilisez pas cette clé. Rencontrez-vous, ou repartez d’un code que vous lisez en personne.',
2634
2635 'ref.kind_proposal': 'Proposition',
2636 'ref.kind_build': 'Build',
2637 'ref.kind_panel': 'Panneau',
2638 'ref.kind_guide': 'Guide',
2639 'ref.proposal': 'Proposition n° {n}',
2640 'ref.build': 'Build {id}',
2641 'ref.panel': 'Panneau {name}',
2642 'ref.guide': 'Guide : {page}',
2643 'ref.open_proposal': 'Ouvrir la proposition',
2644 'ref.open_build': 'Ouvrir la note de version',
2645 'ref.open_panel': 'L’ouvrir',
2646 'ref.open_guide': 'Ouvrir la page',
2647 'ref.expand': 'Montrer ce que c’est',
2648 'ref.reading': 'Lecture en cours…',
2649 'ref.signin': 'Connectez-vous pour ouvrir ceci.',
2650 'ref.said': 'Décrit comme : {text}',
2651 'ref.unopenable': 'Il n’y a pas moyen d’ouvrir cela ici.',
2652 'ref.said_n.one': '{n} commentaire, public',
2653 'ref.said_n.other': '{n} commentaires, publics',
2654 'ref.build_here': 'C’est le build sur lequel vous êtes.',
2655 'ref.build_other': 'Vous êtes sur le build {id}.',
2656 'ref.build_update': 'Mettre à jour vers celui-ci',
2657
2658 'dock.unseen.one': '{n} non lu',
2659 'dock.unseen.other': '{n} non lus',
2660 'social.info': 'Ce qu’est ce panneau, dans le guide',
2661 'social.box_label': 'Écrire une note sur Daimond',
2662 'social.box_ph': 'Où c’était, ce que vous attendiez et ce qui s’est passé à la place.',
2663 'social.with': 'Ce qui part avec',
2664 'social.with_off': 'Retirer les détails de cette note',
2665 'social.keep': 'Garder',
2666 'social.keep_help': 'Enregistre cette note sur cet appareil. Rien n’est envoyé.',
2667 'social.send': 'Envoyer',
2668 'social.send_help': 'Envoie à Oxedyne exactement ce qui est au-dessus. Rien d’autre ne part avec.',
2669 // Une note part sous la VOIX de celui qui écrit. Aucun pseudonyme et aucun nom
2670 // ne voyage, donc rien ici ne doit nommer cette personne.
2671 'social.as_novoice': 'Vous n’avez pas de voix, donc une note ne peut que rester ici.',
2672 // Au-dessus d’Envoyer, et à l’écran exactement quand Envoyer y est. Le dépôt
2673 // est public : une note envoyée est lisible par N’IMPORTE QUI, SANS COMPTE, et
2674 // sous le NOM de votre voix. Ces trois faits doivent survivre à la traduction.
2675 // `{host}` est rempli par js/improve.js : à laisser tel quel.
2676 'social.publish_body': 'Daimond veut publier ceci en votre nom, là où d’autres peuvent le lire. C’est irréversible.\n\n{what}\n\nSi vous ne vous y attendiez pas, refusez. Vous ne perdez que cette publication.',
2677 'social.publish_ok': 'Publier',
2678 'social.publish_title': 'Publier ceci ?',
2679 'social.public_note': 'Envoyer publie cette note sur {host}, avec le nom de votre voix. N’importe qui peut l’y lire sans compte. Une note que vous gardez reste sur cet appareil.',
2680 'social.compose_public': 'Publié publiquement, sous le nom de votre voix — n’importe qui peut le lire.',
2681 'social.title_hint': 'La première ligne est le titre de la proposition. Ce qui s’est passé vient en dessous.',
2682 'social.no_title': 'La première ligne est le titre. Écrivez-en un, puis ce qui s’est passé en dessous.',
2683 'social.nothing': 'Écrivez d’abord quelque chose.',
2684 // Dit après un refus. Rien n’est mis en file ni réessayé, donc la traduction
2685 // ne doit pas promettre une nouvelle tentative.
2686 'social.kept_here': 'Votre note reste ici et rien n’a été réessayé.',
2687 'social.copied': 'Copié.',
2688 'social.state_kept': 'Ici seulement',
2689 'social.state_sent': 'Envoyée le {date}',
2690 'social.state_sent_n': 'Envoyée le {date}, et c’est la proposition {n}',
2691 'social.drop': 'Supprimer cette note',
2692 'social.drop_ask': 'Supprimer cette note ? Elle n’est que sur cet appareil, il n’y a donc pas d’autre copie.',
2693 'social.drop_ok': 'Supprimer',
2694 'social.no_notes': 'Pas encore de notes.',
2695 'social.ctx_build': 'Build {id}',
2696 'social.ctx_touch': 'tactile',
2697 'social.ctx_pointer': 'pointeur',
2698 'social.ctx_palette': 'palette {name}',
2699 'social.ctx_panels': 'panneaux ouverts : {list}',
2700
2701 // La voix : un secret propre à chacun, par lequel la forge reconnaît qui
2702 // écrit. Elle est gardée ici chiffrée sous votre phrase secrète et ne va
2703 // jamais dans une adresse.
2704 'social.voice_held': 'Une voix est gardée sur cet appareil, chiffrée sous votre phrase secrète.',
2705 'social.voice_none': 'Vous n’avez pas de voix : vous pouvez lire ce que d’autres ont écrit ici, mais rien y ajouter. Garder est tout ce qu’une note à vous peut faire.',
2706 'social.voice_replace': 'Remplacer la voix',
2707 'social.voice_help': 'Les 45 caractères que le suivi vous a montrés. Ils restent ici chiffrés et ne passent jamais dans une adresse.',
2708 'social.voice_ph': 'Collez les 45 caractères que le suivi vous a montrés',
2709 'social.voice_save': 'Enregistrer la voix',
2710 'social.voice_saved': 'Votre voix est gardée ici, chiffrée.',
2711 'social.voice_failed': 'Cette voix n’a pas pu être enregistrée.',
2712 'social.voice_forget': 'L’oublier',
2713 'social.voice_forget_help': 'Retirer la copie de cet appareil.',
2714 'social.voice_forgotten': 'La copie sur cet appareil n’est plus là.',
2715 'social.voice_ask_forget': 'Oublier votre voix sur cet appareil ? La forge l’a montrée une fois et ne peut pas la montrer à nouveau.',
2716 'voice.err.empty': 'Il faut une voix pour écrire sur la forge.',
2717 'voice.err.shape': 'Cela ne ressemble pas à une voix. C’est une seule suite de 45 caractères, sans espaces.',
2718 'voice.err.short': 'C’est plus court que toute voix émise par la forge. Copiez les 45 caractères.',
2719 'voice.err.long': 'C’est plus long qu’une voix ne peut l’être.',
2720 'voice.err.locked': 'Déverrouillez Daimond d’abord : votre voix est gardée chiffrée sous votre phrase secrète.',
2721 'voice.err.locked_send': 'Déverrouillez Daimond pour écrire sur la forge : votre voix est chiffrée sous votre phrase secrète.',
2722 'voice.err.unreadable': 'Votre voix ne peut pas être lue avec cette phrase secrète. Redonnez-la à partir de la ligne que la forge a imprimée pour vous.',
2723 'voice.err.inurl': 'Une voix va dans un en-tête, jamais dans une adresse.',
2724 'voice.the_voice': 'votre voix de la forge',
2725
2726 'tracker.the_settle_voice': 'votre voix de règlement',
2727 // Les propositions sont lues depuis la forge pendant qu’on les regarde. Rien
2728 // n’annonce qu’une proposition a reçu une réponse, et aucune phrase ici ne
2729 // doit laisser croire le contraire.
2730 'social.live_note': 'Ceci est lu depuis la forge pendant que vous regardez. Rien ne vous dit quand une proposition a reçu une réponse ; regardez à nouveau pour le savoir.',
2731 'social.loading': 'Lecture des propositions…',
2732 'social.none_shown': 'Rien n’a pu être lu pour l’instant.',
2733 'social.none_yet': 'Pas encore de propositions ici. La vôtre serait la première.',
2734 'social.reading': 'Lecture en cours…',
2735 'social.more': 'Voir les plus anciennes',
2736 'social.count.one': '{n} proposition',
2737 'social.count.other': '{n} propositions',
2738 'social.by': 'de {who}',
2739 'social.said_n.one': '{n} réponse',
2740 'social.said_n.other': '{n} réponses',
2741 'social.built_on': 'écrite sur le build {build}',
2742 'social.closed_by': 'close par la marque {mark}',
2743 'social.move_floor': 'Une note ne suit son contenu au-delà de la limite d’un fichier que lorsque le changement est reconnu comme un déplacement, et le seuil pour cela est de 64 octets. Coupez moins que cela d’un fichier vers un autre et l’historique retient une suppression et une insertion, si bien qu’une note ancrée là signale honnêtement que son contenu a été supprimé. La note a raison et l’historique a raison.',
2744 'social.state_open': 'Ouverte',
2745 'social.state_taken': 'En cours',
2746 'social.state_done': 'Faite',
2747 'social.state_declined': 'Refusée',
2748 'social.tally': '{yes} pour, {no} contre',
2749 'social.do': 'Faire ceci',
2750 'social.not': 'Pas ceci',
2751 'social.vote_novoice': 'Définissez une voix pour voter ici.',
2752 'social.vote_off': 'Appuyez à nouveau pour retirer votre vote.',
2753 'social.reply': 'Le dire',
2754 'social.reply_ph': 'Dites quelque chose sur cette proposition.',
2755 'social.reply_help': 'Envoie exactement ce qui est dans ce champ. Rien d’autre ne part avec.',
2756
2757 // Ce que la forge a refusé, dit en mots. Aucune de ces phrases ne nomme le
2758 // quota épuisé : une limite qui annonce son propre état est une limite que
2759 // l’on peut doser.
2760 //
2761 // TRADUCTION — `improve.err_absent` est une règle de confidentialité, pas une
2762 // préférence de formulation. La forge répond `absent` aussi bien pour « ce
2763 // dépôt n’existe pas » que pour « ce dépôt est privé », délibérément et pour
2764 // toujours : tout signe qui distinguerait les deux republierait exactement ce
2765 // qu’un dépôt privé retient. La phrase doit donc être vraie dans les deux cas
2766 // — « n’existe pas » est faux quand le dépôt est privé, et « est privé » le
2767 // divulgue. Dites seulement qu’il ne vous est pas accessible.
2768 // Voir dev/IMPROVE_CONTRACT.md §7 (and the forge contract §3.1).
2769 'social.err_absent': 'Ce dépôt ne vous est pas accessible.',
2770 'social.err_unvoiced': 'Aucune voix n’a été donnée à la forge, elle a donc refusé.',
2771 'social.err_unknown': 'La forge ne reconnaît pas votre voix. Redéfinissez-la à partir de la ligne que la forge a imprimée pour vous.',
2772 'social.err_unpermitted': 'Votre voix n’a pas le droit de faire cela ici.',
2773 'social.err_amend_unpermitted': 'Seule la personne qui a ouvert cette proposition peut la réviser.',
2774 'social.err_throttled': 'Trop de requêtes pour l’instant. Attendez un peu, puis réessayez.',
2775 'social.err_throttled_address': 'Trop de requêtes depuis cette adresse pour l’instant. Attendez un peu, puis réessayez.',
2776 'social.err_throttled_failing': 'Trop de requêtes en échec pour l’instant. Attendez un peu, puis réessayez.',
2777 'social.err_malformed': 'La forge n’a pas pu lire ce que Daimond lui a demandé. C’est un défaut de Daimond, pas de ce que vous avez écrit.',
2778 'social.err_no_proposal': 'Il n’y a pas de telle proposition ici.',
2779 'social.err_unsupported': 'La forge ne répond pas à cela.',
2780 'social.err_internal': 'Quelque chose s’est mal passé à la forge. Ce n’est pas de votre faute.',
2781 'social.err_gateway': 'Daimond n’a pas pu joindre la forge pour l’instant.',
2782 'social.err_session': 'Daimond n’est pas connecté pour l’instant, il n’a donc pas pu joindre la forge.',
2783 'social.err_toolong': 'C’est plus long que ce que la forge accepte. Raccourcissez, ou envoyez en deux fois.',
2784 'social.err_offline': 'Rien n’a pu être envoyé pour l’instant.',
2785 'social.amend': 'Réviser',
2786 'social.amend_help': 'Remplace ce que dit cette proposition. Tous ceux qui la lisent voient les nouveaux mots.',
2787 'social.amend_title_ph': 'La seule ligne disant de quoi il s’agit',
2788 'social.amend_body_ph': 'Ce qui s’est passé, et ce qui était attendu à la place',
2789 'social.amend_save': 'Publier la révision',
2790 'social.amend_save_help': 'Envoie exactement ce qui est dans ces deux champs. Rien d’autre ne part avec.',
2791 'social.revised_n.one': 'révisée une fois',
2792 'social.revised_n.other': 'révisée {n} fois',
2793 // Drafting from the whole list of kept notes at once (www/js/triage.js).
2794 'social.triage_run': 'Rédiger à partir des {n} notes',
2795 'social.triage_run_help': 'Lit chaque note conservée et les propositions déjà sur la forge, puis écrit un plan. Rien ne quitte cet appareil tant que vous n’avez pas appuyé sur Envoyer sur un des brouillons.',
2796 'social.triage_running': 'Lecture de vos notes…',
2797 'social.triage_cost': 'Lit les {n} notes avec {model}, sur votre propre clé : environ {in} jetons en entrée et au plus {out} en sortie, donc au plus {usd} — le plus souvent bien moins.',
2798 'social.triage_cost_unknown': 'Lit les {n} notes avec {model}, sur votre propre clé : environ {in} jetons en entrée et au plus {out} en sortie. Rien ici ne donne le prix de ce modèle, le coût n’est donc pas connu avant l’exécution.',
2799 'social.triage_cost_stop': 'Rien n’est envoyé à la forge tant que vous n’avez pas appuyé sur Envoyer sur un brouillon.',
2800 'social.triage_nomodel': 'Choisissez un modèle dans IA avant de rédiger à partir de vos notes.',
2801 'social.triage_nonotes': 'Il n’y a aucune note conservée à partir de laquelle rédiger.',
2802 'social.triage_unread': 'Le modèle n’a pas répondu par un plan que ce panneau pouvait lire. Rien n’a été envoyé et vos notes sont intactes.',
2803 'social.triage_failed': 'La rédaction n’est pas allée au bout : {why}',
2804 'social.triage_plan': '{n} brouillons, écrits par {model} à partir de vos notes. Lisez-les, corrigez ce qui est faux et envoyez ceux que vous voulez. Rien de tout cela n’a quitté cet appareil.',
2805 'social.triage_dropped': '{n} autres ont été renvoyés sous une forme que ce panneau n’a pas pu lire et ne sont pas affichés.',
2806 'social.triage_left': '{n} notes ne sont dans aucun brouillon :',
2807 'social.triage_clear': 'Oublier ce plan',
2808 'social.triage_clear_help': 'Retire les brouillons de l’écran. Rien n’est envoyé et aucune note n’est modifiée.',
2809 'social.triage_drop': 'Pas celui-ci',
2810 'social.triage_drop_help': 'Retire ce brouillon du plan. Rien n’est envoyé.',
2811 'social.triage_send_help': 'Envoie exactement les caractères du cadre ci-dessus. Rien d’autre ne part avec.',
2812 'social.triage_kept': 'Rien n’a été envoyé et rien n’a été réessayé. Vos notes sont intactes.',
2813 'social.triage_from': 'à partir de {n} notes',
2814 'social.triage_from_one': 'à partir d’une note',
2815 'social.triage_kind_new': 'Nouvelle proposition',
2816 'social.triage_kind_comment': 'Commentaire sur #{n}',
2817 'social.triage_kind_revision': 'Révision de #{n}',
2818 'social.triage_opened': 'Ouverte comme proposition #{n}.',
2819 'social.triage_said': 'Dit sur la proposition #{n}.',
2820 'social.triage_revised': 'La proposition #{n} est révisée.',
2821 'trash.nothing': 'Rien n’a été supprimé.',
2822 'trash.kept_days': 'Conservé {days} jours, puis détruit.',
2823 'trash.holding.one': '{n} élément, {bytes}',
2824 'trash.holding.other': '{n} éléments, {bytes}',
2825 'trash.until': 'Jusqu’au {date}',
2826 'trash.deleted_why': 'Supprimé — il n’est plus qu’ici.',
2827 'trash.expired_why': 'Son temps est écoulé. Il n’est plus qu’ici.',
2828 'trash.kind_chat': 'chat',
2829 'trash.kind_diamond': 'diamond',
2830 'trash.unnamed_chat': 'Chat sans nom',
2831 'trash.keep': 'Garder',
2832 'trash.keep_help': 'Fait de ce chat un Diamond, avec toute la conversation comme premier artefact.',
2833 'trash.keep_named': 'Garder {name} comme Diamond',
2834 'trash.restore': 'Restaurer',
2835 'trash.restore_named': 'Restaurer « {name} »',
2836 'trash.restore_all': 'Tout restaurer',
2837 'trash.purge': 'Supprimer définitivement',
2838 'trash.purge_named': 'Supprimer « {name} » définitivement',
2839 'trash.purge_ask': 'Supprimer « {name} » définitivement ? Il disparaît de tous vos appareils, sans retour possible.',
2840 'trash.purge_ok': 'Supprimer définitivement',
2841 'trash.empty': 'Vider la corbeille',
2842 'trash.empty_ask.one': 'Détruire définitivement le {n} élément de la corbeille ? Il disparaît de tous vos appareils, sans retour possible.',
2843 'trash.empty_ask.other': 'Détruire définitivement les {n} éléments de la corbeille ? Ils disparaissent de tous vos appareils, sans retour possible.',
2844 'trash.empty_ok': 'Vider la corbeille',
2845 'trash.moved': '« {name} » est dans la corbeille.',
2846 'trash.moved_n.one': '{n} élément est dans la corbeille.',
2847 'trash.moved_n.other': '{n} éléments sont dans la corbeille.',
2848 'trash.swept.one': 'Un élément était dans la corbeille depuis {days} jours et a été détruit.',
2849 'trash.swept.other': '{n} éléments étaient dans la corbeille depuis {days} jours et ont été détruits.',
2850
2851 // Added 2026-08-12: a worker's consent question parked on the Pending
2852 // panel, the Agents panel's own controls, and the rewritten Tools panel.
2853 'pending.consent.click_head': 'Un agent veut cliquer sur quelque chose sur {host}',
2854 'pending.consent.type_head': 'Un agent veut envoyer du texte à {host}',
2855 'pending.consent.reach_head': 'Un agent veut atteindre {host}',
2856 'pending.consent.why': 'Il a demandé alors que cette page n’était pas devant toi, donc la question attend ici plutôt que dans une boîte de dialogue que personne n’aurait vue.',
2857 'pending.consent.agent': 'L’agent est {name}. Sa tâche : {task}',
2858 'pending.consent.waiting': 'L’agent attend toujours cette réponse.',
2859 'pending.consent.expired': 'L’agent qui a demandé n’est plus là — cela a été soulevé avant le dernier rechargement de l’application. Dire oui maintenant ne pourrait pas permettre l’acte.',
2860 'pending.consent.allowed': 'Autorisé. On a dit à l’agent d’y aller.',
2861 'pending.consent.gone': 'Plus rien n’attend là-dessus, il n’y avait donc rien à autoriser.',
2862 'pending.consent.nochat': 'Refusé. Il n’y a aucune conversation où porter cela : deux agents tournaient, Daimond ne peut donc pas dire lequel a demandé.',
2863 'agents.act_pause': 'Pause',
2864 'agents.act_pause_help': 'Suspend cet agent en gardant son travail jusqu’ici ; reprends-le plus tard.',
2865 'agents.act_stop': 'Arrêter',
2866 'agents.act_stop_help': 'Arrête cet agent pour de bon. Il garde ce qu’il a réussi à faire.',
2867 'agents.act_resume': 'Reprendre',
2868 'agents.act_resume_help': 'Continue cet agent là où il s’est arrêté.',
2869 'agents.act_discard_help': 'Jette cet agent en pause.',
2870 'agents.tally_running': '{n} en cours',
2871 'agents.tally_paused': '{n} en pause',
2872 'agents.tally_queued': '{n} en attente',
2873 'agents.live': '{n} actifs',
2874 'agents.dropped.one': 'Une exécution plus ancienne n’est pas conservée.',
2875 'agents.dropped.other': '{n} exécutions plus anciennes ne sont pas conservées.',
2876 'agents.status_queued': 'en attente',
2877 'agents.status_running': 'en cours',
2878 'agents.status_paused': 'en pause',
2879 'agents.status_done': 'terminé',
2880 'agents.status_error': 'échoué',
2881 'agents.status_stopped': 'arrêté',
2882 'agents.status_interrupted': 'interrompu',
2883 'tools.intro': 'Ce que Daimond peut faire pour toi. L’essentiel est inclus. Un pack ouvre un terrain nouveau et s’achète une fois, en dollars, et non sur tes crédits.',
2884 'tools.count': '<b>{have} sur {all}</b> disponibles sur ce compte.',
2885 'tools.sec_included': 'Inclus',
2886 'tools.sec_packs': 'Packs',
2887 'tools.packs_none': 'Aucun pack n’est encore en vente. Dès qu’il y en aura un, il apparaîtra ici.',
2888 'tools.packs_fine': 'Un pack s’achète une fois et reste acquis. Il se paie en dollars, par la même caisse que Pro, et jamais sur tes crédits — un pack coûte donc la même chose que tu fasses tourner Daimond sur ses crédits ou sur ta propre clé d’API.',
2889 'tools.status_included': 'Inclus',
2890 'tools.status_owned': 'À toi',
2891 'tools.locked_why': 'Pas acheté sur ce compte : ceci est le pack {pack}. Daimond le refuse et le dit, plutôt que de le faire à moitié.',
2892 'tools.expand': 'Ce que ça fait ({n})',
2893 'tools.collapse': 'Masquer ce que ça fait',
2894 'tools.fn_pack': 'dans le pack {pack}',
2895 'tools.cap.files.name': 'Tes fichiers',
2896 'tools.cap.files.blurb': 'Daimond lit, écrit et modifie les fichiers de ton espace de travail — les cellules d’un tableur et les mots d’un document compris —, y cherche dans tous à la fois et range derrière lui.',
2897 'tools.cap.cloud.name': 'Fichiers gardés dans le nuage',
2898 'tools.cap.cloud.blurb': 'Un fichier que cet appareil ne détient pas est récupéré depuis ton stockage en ligne au moment où Daimond a besoin de le lire, plutôt que de tout garder partout.',
2899 'tools.cap.work.name': 'Garder le travail ensemble',
2900 'tools.cap.work.blurb': 'Daimond note quels fichiers appartiennent à un travail, si bien qu’une chose que tu as faite toi-même est listée avec lui au lieu de rester sans mention dans un dossier.',
2901 'tools.cap.asking.name': 'Vous poser une question',
2902 'tools.cap.asking.blurb': 'Daimond vous soumet une décision à la fois, sous forme de réponses à toucher : chaque option dit ce qu’elle signifierait concrètement, l’une d’elles est nommée comme la recommandation avec sa raison, et vous pouvez toujours répondre avec vos propres mots.',
2903 'tools.cap.show.name': 'Vous montrer un fichier',
2904 'tools.cap.show.blurb': 'Daimond met un fichier à l’écran à côté de la conversation — un PDF avec ses pages composées, une image dessinée, un tableau sous forme de tableau — au lieu de se contenter de vous le décrire.',
2905 'tools.cap.checking.name': 'Vérifier son propre travail',
2906 'tools.cap.checking.blurb': 'Daimond exécute l’une des vérifications du projet et indique ce qui a réussi, ce qui a échoué et quels tests de rupture n’ont rien prouvé.',
2907 'tools.cap.social.name': 'Parler de Daimond avec d’autres',
2908 'tools.cap.social.blurb': 'Daimond lit ce que les gens ont signalé ou demandé au sujet de Daimond lui-même et, avec votre accord à chaque fois et après vous avoir montré exactement ce qui partirait, signale ou soutient quelque chose en votre nom.',
2909 'tools.cap.machine.name': 'Ton ordinateur',
2910 'tools.cap.machine.blurb': 'Avec la main machine de Daimond installée, Daimond compile, teste et exécute des outils en ligne de commande dans le dossier que tu lui as accordé, et nulle part ailleurs.',
2911 'tools.cap.reading.name': 'Lire le web',
2912 'tools.cap.reading.blurb': 'Daimond cherche avec le moteur que tu as choisi et lit ce qu’une page dit vraiment, sans que ni l’un ni l’autre ne quitte Daimond.',
2913 'tools.cap.browsing.name': 'Se servir d’un site',
2914 'tools.cap.browsing.blurb': 'Daimond ouvre une page à côté de la conversation et s’en sert — clics, saisie, défilement — pendant que tu regardes.',
2915 'tools.cap.typeset.name': 'Composer un document',
2916 'tools.cap.typeset.blurb': 'Daimond transforme une source Typst en un PDF fini, proprement composé, ici dans le navigateur.',
2917 'tools.cap.dispatch.name': 'Envoyer des ouvriers',
2918 'tools.cap.dispatch.blurb': 'Daimond découpe un gros travail en tâches bornées et envoie un ouvrier à chacune, plusieurs à la fois, puis replie ce qu’ils rapportent en une seule réponse.',
2919 'tools.cap.graph.name': 'Comment ton travail se relie',
2920 'tools.cap.graph.blurb': 'Daimond lit et enregistre les relations entre tes Diamonds, fichiers, pages et conversations — ce qui remplace quoi, ce qui a produit quoi.',
2921 'tools.cap.other.name': 'Pas encore décrites',
2922 'tools.cap.other.blurb': 'Daimond les possède et on n’a pas dit à ce panneau comment les nommer. Ouvre-le pour voir ce que c’est.',
2923 'legal.terms': 'Conditions d’utilisation',
2924 'legal.privacy': 'Politique de confidentialité',
2925 'legal.draft_note': 'En vigueur depuis le 13 août 2026. Les points marqués [TO CONFIRM] sont encore en cours de règlement.',
2926 'lapse.hide': 'Masquer jusqu’à demain',
2927 'lapse.read_clause': 'Ce que disent les Conditions',
2928 'lapse.storage_head': 'Les fichiers stockés au-delà du palier gratuit seront supprimés le {date}.',
2929 'lapse.storage_head_undated': 'Les fichiers stockés au-delà du palier gratuit seront supprimés à la fin du délai de grâce.',
2930 'lapse.storage_why': 'Vos crédits ne couvrent pas le stockage en ligne que vous occupez, donc le décompte est en pause. Rien n’est facturé rétroactivement, et vous pouvez toujours lire tout ce que vous avez stocké.',
2931 'lapse.storage_size': 'Environ {size} sont conservés au-delà du palier gratuit.',
2932 'lapse.storage_what': 'Si le solde n’est pas rétabli d’ici là, les données stockées au-delà du palier gratuit sont supprimées. Les fichiers sur cet appareil ne sont pas touchés.',
2933 'lapse.top_up': 'Recharger les crédits',
2934 'lapse.credits_pitch': 'Recharger empêche la suppression des données stockées au-delà du palier gratuit.',
2935 'lapse.lic_head': 'Votre licence Pro prend fin le {date}.',
2936 'lapse.lic_head_past': 'Votre licence Pro a pris fin le {date}.',
2937 'lapse.lic_off': 'La synchronisation entre appareils, le stockage en ligne et Daimond Email s’arrêtent alors, car chacun est un service que nous faisons tourner de notre côté.',
2938 'lapse.lic_off_past': 'La synchronisation entre appareils, le stockage en ligne et Daimond Email sont arrêtés, car chacun est un service que nous faisons tourner de notre côté.',
2939 'lapse.lic_keep': 'Sur cet appareil, tout continue exactement comme avant : vos fichiers, vos conversations, vos Diamonds, votre identité et votre propre clé de fournisseur. Rien n’est supprimé, rien n’est verrouillé, et rien de ce que vous avez fait ne devient illisible.',
2940 'lapse.lic_pull': 'Récupérer ce que vous avez déjà stocké ne s’arrête jamais, et vos crédits ne sont pas touchés.',
2941 });
2942})();