@adminiumjs/i18n 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +219 -4
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/create-i18n.d.ts.map +1 -1
  6. package/dist/create-i18n.js +1 -0
  7. package/dist/create-i18n.js.map +1 -1
  8. package/dist/editing.d.ts +1 -1
  9. package/dist/editing.d.ts.map +1 -1
  10. package/dist/editing.js +2 -1
  11. package/dist/editing.js.map +1 -1
  12. package/dist/fallback.d.ts.map +1 -1
  13. package/dist/fallback.js +1 -0
  14. package/dist/fallback.js.map +1 -1
  15. package/dist/format/index.d.ts.map +1 -1
  16. package/dist/format/index.js +1 -0
  17. package/dist/format/index.js.map +1 -1
  18. package/dist/format-errors.d.ts.map +1 -1
  19. package/dist/format-errors.js +1 -0
  20. package/dist/format-errors.js.map +1 -1
  21. package/dist/icu-format.d.ts.map +1 -1
  22. package/dist/icu-format.js +1 -0
  23. package/dist/icu-format.js.map +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/keys.d.ts.map +1 -1
  28. package/dist/keys.js +1 -0
  29. package/dist/keys.js.map +1 -1
  30. package/dist/locales.d.ts +6 -2
  31. package/dist/locales.d.ts.map +1 -1
  32. package/dist/locales.js +7 -2
  33. package/dist/locales.js.map +1 -1
  34. package/dist/overrides.d.ts.map +1 -1
  35. package/dist/overrides.js +1 -0
  36. package/dist/overrides.js.map +1 -1
  37. package/dist/react.d.ts.map +1 -1
  38. package/dist/react.js +1 -0
  39. package/dist/react.js.map +1 -1
  40. package/dist/resources/ar-eg/common.d.ts +858 -5
  41. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  42. package/dist/resources/ar-eg/common.js +882 -28
  43. package/dist/resources/ar-eg/common.js.map +1 -1
  44. package/dist/resources/ar-eg/errors.d.ts +1 -0
  45. package/dist/resources/ar-eg/errors.d.ts.map +1 -1
  46. package/dist/resources/ar-eg/errors.js +2 -0
  47. package/dist/resources/ar-eg/errors.js.map +1 -1
  48. package/dist/resources/ar-eg/generated.d.ts.map +1 -1
  49. package/dist/resources/ar-eg/generated.js +1 -0
  50. package/dist/resources/ar-eg/generated.js.map +1 -1
  51. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  52. package/dist/resources/ar-eg/studio.js +1 -0
  53. package/dist/resources/ar-eg/studio.js.map +1 -1
  54. package/dist/resources/ar-eg/ui.d.ts +9 -0
  55. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  56. package/dist/resources/ar-eg/ui.js +18 -8
  57. package/dist/resources/ar-eg/ui.js.map +1 -1
  58. package/dist/resources/cs-cz/common.d.ts +858 -5
  59. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  60. package/dist/resources/cs-cz/common.js +882 -28
  61. package/dist/resources/cs-cz/common.js.map +1 -1
  62. package/dist/resources/cs-cz/errors.d.ts +1 -0
  63. package/dist/resources/cs-cz/errors.d.ts.map +1 -1
  64. package/dist/resources/cs-cz/errors.js +2 -0
  65. package/dist/resources/cs-cz/errors.js.map +1 -1
  66. package/dist/resources/cs-cz/generated.d.ts.map +1 -1
  67. package/dist/resources/cs-cz/generated.js +1 -0
  68. package/dist/resources/cs-cz/generated.js.map +1 -1
  69. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  70. package/dist/resources/cs-cz/studio.js +1 -0
  71. package/dist/resources/cs-cz/studio.js.map +1 -1
  72. package/dist/resources/cs-cz/ui.d.ts +9 -0
  73. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  74. package/dist/resources/cs-cz/ui.js +18 -8
  75. package/dist/resources/cs-cz/ui.js.map +1 -1
  76. package/dist/resources/da-dk/common.d.ts +858 -5
  77. package/dist/resources/da-dk/common.d.ts.map +1 -1
  78. package/dist/resources/da-dk/common.js +882 -28
  79. package/dist/resources/da-dk/common.js.map +1 -1
  80. package/dist/resources/da-dk/errors.d.ts +1 -0
  81. package/dist/resources/da-dk/errors.d.ts.map +1 -1
  82. package/dist/resources/da-dk/errors.js +2 -0
  83. package/dist/resources/da-dk/errors.js.map +1 -1
  84. package/dist/resources/da-dk/generated.d.ts.map +1 -1
  85. package/dist/resources/da-dk/generated.js +1 -0
  86. package/dist/resources/da-dk/generated.js.map +1 -1
  87. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  88. package/dist/resources/da-dk/studio.js +1 -0
  89. package/dist/resources/da-dk/studio.js.map +1 -1
  90. package/dist/resources/da-dk/ui.d.ts +9 -0
  91. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  92. package/dist/resources/da-dk/ui.js +18 -8
  93. package/dist/resources/da-dk/ui.js.map +1 -1
  94. package/dist/resources/de-de/common.d.ts +858 -5
  95. package/dist/resources/de-de/common.d.ts.map +1 -1
  96. package/dist/resources/de-de/common.js +882 -28
  97. package/dist/resources/de-de/common.js.map +1 -1
  98. package/dist/resources/de-de/errors.d.ts +1 -0
  99. package/dist/resources/de-de/errors.d.ts.map +1 -1
  100. package/dist/resources/de-de/errors.js +2 -0
  101. package/dist/resources/de-de/errors.js.map +1 -1
  102. package/dist/resources/de-de/generated.d.ts.map +1 -1
  103. package/dist/resources/de-de/generated.js +1 -0
  104. package/dist/resources/de-de/generated.js.map +1 -1
  105. package/dist/resources/de-de/studio.d.ts.map +1 -1
  106. package/dist/resources/de-de/studio.js +1 -0
  107. package/dist/resources/de-de/studio.js.map +1 -1
  108. package/dist/resources/de-de/ui.d.ts +9 -0
  109. package/dist/resources/de-de/ui.d.ts.map +1 -1
  110. package/dist/resources/de-de/ui.js +18 -8
  111. package/dist/resources/de-de/ui.js.map +1 -1
  112. package/dist/resources/en-us/common.d.ts +858 -5
  113. package/dist/resources/en-us/common.d.ts.map +1 -1
  114. package/dist/resources/en-us/common.js +882 -28
  115. package/dist/resources/en-us/common.js.map +1 -1
  116. package/dist/resources/en-us/errors.d.ts +1 -0
  117. package/dist/resources/en-us/errors.d.ts.map +1 -1
  118. package/dist/resources/en-us/errors.js +2 -0
  119. package/dist/resources/en-us/errors.js.map +1 -1
  120. package/dist/resources/en-us/generated.d.ts.map +1 -1
  121. package/dist/resources/en-us/generated.js +1 -0
  122. package/dist/resources/en-us/generated.js.map +1 -1
  123. package/dist/resources/en-us/studio.d.ts.map +1 -1
  124. package/dist/resources/en-us/studio.js +1 -0
  125. package/dist/resources/en-us/studio.js.map +1 -1
  126. package/dist/resources/en-us/ui.d.ts +9 -0
  127. package/dist/resources/en-us/ui.d.ts.map +1 -1
  128. package/dist/resources/en-us/ui.js +18 -8
  129. package/dist/resources/en-us/ui.js.map +1 -1
  130. package/dist/resources/fr-fr/common.d.ts +858 -5
  131. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  132. package/dist/resources/fr-fr/common.js +882 -28
  133. package/dist/resources/fr-fr/common.js.map +1 -1
  134. package/dist/resources/fr-fr/errors.d.ts +1 -0
  135. package/dist/resources/fr-fr/errors.d.ts.map +1 -1
  136. package/dist/resources/fr-fr/errors.js +2 -0
  137. package/dist/resources/fr-fr/errors.js.map +1 -1
  138. package/dist/resources/fr-fr/generated.d.ts.map +1 -1
  139. package/dist/resources/fr-fr/generated.js +1 -0
  140. package/dist/resources/fr-fr/generated.js.map +1 -1
  141. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  142. package/dist/resources/fr-fr/studio.js +1 -0
  143. package/dist/resources/fr-fr/studio.js.map +1 -1
  144. package/dist/resources/fr-fr/ui.d.ts +9 -0
  145. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  146. package/dist/resources/fr-fr/ui.js +18 -8
  147. package/dist/resources/fr-fr/ui.js.map +1 -1
  148. package/dist/resources/index.d.ts.map +1 -1
  149. package/dist/resources/index.js +1 -0
  150. package/dist/resources/index.js.map +1 -1
  151. package/dist/resources/lazy.d.ts.map +1 -1
  152. package/dist/resources/lazy.js.map +1 -1
  153. package/dist/resources/zh-cn/common.d.ts +858 -5
  154. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  155. package/dist/resources/zh-cn/common.js +882 -28
  156. package/dist/resources/zh-cn/common.js.map +1 -1
  157. package/dist/resources/zh-cn/errors.d.ts +1 -0
  158. package/dist/resources/zh-cn/errors.d.ts.map +1 -1
  159. package/dist/resources/zh-cn/errors.js +2 -0
  160. package/dist/resources/zh-cn/errors.js.map +1 -1
  161. package/dist/resources/zh-cn/generated.d.ts.map +1 -1
  162. package/dist/resources/zh-cn/generated.js +1 -0
  163. package/dist/resources/zh-cn/generated.js.map +1 -1
  164. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  165. package/dist/resources/zh-cn/studio.js +1 -0
  166. package/dist/resources/zh-cn/studio.js.map +1 -1
  167. package/dist/resources/zh-cn/ui.d.ts +9 -0
  168. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  169. package/dist/resources/zh-cn/ui.js +18 -8
  170. package/dist/resources/zh-cn/ui.js.map +1 -1
  171. package/dist/resources/zh-tw/common.d.ts +858 -5
  172. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  173. package/dist/resources/zh-tw/common.js +882 -28
  174. package/dist/resources/zh-tw/common.js.map +1 -1
  175. package/dist/resources/zh-tw/errors.d.ts +1 -0
  176. package/dist/resources/zh-tw/errors.d.ts.map +1 -1
  177. package/dist/resources/zh-tw/errors.js +2 -0
  178. package/dist/resources/zh-tw/errors.js.map +1 -1
  179. package/dist/resources/zh-tw/generated.d.ts.map +1 -1
  180. package/dist/resources/zh-tw/generated.js +1 -0
  181. package/dist/resources/zh-tw/generated.js.map +1 -1
  182. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  183. package/dist/resources/zh-tw/studio.js +1 -0
  184. package/dist/resources/zh-tw/studio.js.map +1 -1
  185. package/dist/resources/zh-tw/ui.d.ts +9 -0
  186. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  187. package/dist/resources/zh-tw/ui.js +18 -8
  188. package/dist/resources/zh-tw/ui.js.map +1 -1
  189. package/dist/review-status.d.ts.map +1 -1
  190. package/dist/review-status.js +8 -7
  191. package/dist/review-status.js.map +1 -1
  192. package/dist/revision.d.ts.map +1 -1
  193. package/dist/revision.js +1 -0
  194. package/dist/revision.js.map +1 -1
  195. package/dist/server.d.ts.map +1 -1
  196. package/dist/server.js +1 -0
  197. package/dist/server.js.map +1 -1
  198. package/dist/validate-message.d.ts.map +1 -1
  199. package/dist/validate-message.js +1 -0
  200. package/dist/validate-message.js.map +1 -1
  201. package/locales/ar-EG/.meta.json +5508 -2872
  202. package/locales/ar-EG/common.json +881 -28
  203. package/locales/ar-EG/errors.json +1 -0
  204. package/locales/ar-EG/ui.json +17 -8
  205. package/locales/cs-CZ/.meta.json +5542 -2906
  206. package/locales/cs-CZ/common.json +881 -28
  207. package/locales/cs-CZ/errors.json +1 -0
  208. package/locales/cs-CZ/ui.json +17 -8
  209. package/locales/da-DK/.meta.json +5613 -2977
  210. package/locales/da-DK/common.json +881 -28
  211. package/locales/da-DK/errors.json +1 -0
  212. package/locales/da-DK/ui.json +17 -8
  213. package/locales/de-DE/.meta.json +5600 -2964
  214. package/locales/de-DE/common.json +881 -28
  215. package/locales/de-DE/errors.json +1 -0
  216. package/locales/de-DE/ui.json +17 -8
  217. package/locales/en-US/common.json +881 -28
  218. package/locales/en-US/errors.json +1 -0
  219. package/locales/en-US/ui.json +17 -8
  220. package/locales/fr-FR/.meta.json +5644 -3008
  221. package/locales/fr-FR/common.json +881 -28
  222. package/locales/fr-FR/errors.json +1 -0
  223. package/locales/fr-FR/ui.json +17 -8
  224. package/locales/zh-CN/.meta.json +5504 -2868
  225. package/locales/zh-CN/common.json +881 -28
  226. package/locales/zh-CN/errors.json +1 -0
  227. package/locales/zh-CN/ui.json +17 -8
  228. package/locales/zh-TW/.meta.json +5507 -2871
  229. package/locales/zh-TW/common.json +881 -28
  230. package/locales/zh-TW/errors.json +1 -0
  231. package/locales/zh-TW/ui.json +17 -8
  232. package/package.json +2 -2
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
1
2
  /**
2
3
  * GENERATED MIRROR of ../../../locales/fr-FR/common.json — do not edit by hand.
3
4
  * The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);
@@ -22,6 +23,7 @@ export default {
22
23
  },
23
24
  "auth": {
24
25
  "headline": "Transformez n’importe quelle base de données en tableau de bord.",
26
+ "description": "Connectez PostgreSQL et Adminium génère une application d’administration personnalisable et respectueuse des permissions — sans écrire une ligne de code.",
25
27
  "trust": "Cœur AGPL · Auto-hébergé · Vos données restent les vôtres",
26
28
  "signIn": {
27
29
  "title": "Bon retour",
@@ -105,7 +107,12 @@ export default {
105
107
  "planning": "Planification",
106
108
  "people": "Personnes",
107
109
  "account": "Compte"
108
- }
110
+ },
111
+ "back": "Retour",
112
+ "team": "Équipe",
113
+ "roles": "Rôles et permissions",
114
+ "audit": "Journal d’audit",
115
+ "security": "Mot de passe et sessions"
109
116
  },
110
117
  "topbar": {
111
118
  "search": "Rechercher…",
@@ -128,8 +135,8 @@ export default {
128
135
  "askAi": "Demander à l’IA",
129
136
  "shortcuts": "Raccourcis clavier",
130
137
  "signOut": "Se déconnecter",
131
- "themeDark": "Passer au thème sombre",
132
- "themeLight": "Passer au thème clair",
138
+ "themeDark": "Mode sombre",
139
+ "themeLight": "Mode clair",
133
140
  "footerNavigate": "naviguer",
134
141
  "footerOpen": "sélectionner",
135
142
  "footerClose": "fermer",
@@ -238,6 +245,7 @@ export default {
238
245
  },
239
246
  "notFound": {
240
247
  "title": "Cette page a disparu",
248
+ "body": "La page que vous cherchez n’existe pas ou a été déplacée. Vérifiez l’URL, ou revenez à votre tableau de bord.",
241
249
  "errorLine": "Erreur 404",
242
250
  "searchPlaceholder": "Rechercher une page…",
243
251
  "matches": "Pages correspondantes",
@@ -255,10 +263,12 @@ export default {
255
263
  "title": "Cette page n’a pas pu s’afficher"
256
264
  },
257
265
  "tooNew": {
258
- "title": "Cette page nécessite une version plus récente d’Adminium"
266
+ "title": "Cette page nécessite une version plus récente d’Adminium",
267
+ "body": "Cette page a été enregistrée avec la version de configuration {version}, mais cette version d’Adminium ne comprend que jusqu’à la version {latest}. Mettez Adminium à jour pour l’ouvrir."
259
268
  },
260
269
  "unknownTemplate": {
261
- "title": "Modèle de page inconnu"
270
+ "title": "Modèle de page inconnu",
271
+ "body": "Cette page utilise un modèle que cette version ne reconnaît pas. Il provient peut-être d’un Adminium plus récent ou d’une extension qui n’est pas installée."
262
272
  }
263
273
  },
264
274
  "mutation": {
@@ -347,6 +357,70 @@ export default {
347
357
  "emptyTitle": "Rien à configurer pour l’instant",
348
358
  "emptyBody": "Les événements de notification apparaissent ici à mesure que leurs producteurs sont livrés.",
349
359
  "saveFailed": "Impossible d’enregistrer cette modification."
360
+ },
361
+ "translations": {
362
+ "title": "Langues et traductions",
363
+ "subtitle": "Modifiez n’importe quelle formulation d’Adminium, choisissez les langues proposées et ajoutez les vôtres.",
364
+ "warning": "Les messages d’erreur et les textes de connexion sont modifiables eux aussi. Ce sont eux que l’on lit quand quelque chose ne va pas : modifiez-les avec précaution.",
365
+ "editor": {
366
+ "heading": "Modifier les traductions"
367
+ },
368
+ "localeLabel": "Langue",
369
+ "groupLabel": "Section",
370
+ "allAreas": "Toutes les sections",
371
+ "stateLabel": "Afficher",
372
+ "state": {
373
+ "all": "Tout",
374
+ "overridden": "Personnalisés uniquement",
375
+ "untranslated": "Non traduits uniquement",
376
+ "stale": "Anglais modifié depuis"
377
+ },
378
+ "searchLabel": "Rechercher",
379
+ "searchPlaceholder": "Clé ou texte anglais",
380
+ "loading": "Chargement des textes…",
381
+ "noMatches": "Aucun texte ne correspond à ces filtres.",
382
+ "count": "{total, plural, one {# texte} other {# textes}}",
383
+ "badge": {
384
+ "custom": "Personnalisé",
385
+ "stale": "Anglais modifié",
386
+ "a11y": "Nom accessible"
387
+ },
388
+ "sourceLabel": "Source anglaise",
389
+ "valueLabel": "Traduction",
390
+ "save": "Enregistrer",
391
+ "saved": "Traduction enregistrée",
392
+ "resetAction": "Rétablir le texte d’origine",
393
+ "reset": "Texte d’origine rétabli",
394
+ "locales": {
395
+ "heading": "Langues disponibles",
396
+ "help": "Désactivez une langue pour la retirer de tous les sélecteurs de langue. Les personnes qui l’utilisent déjà la conservent jusqu’à ce qu’elles en choisissent une autre."
397
+ },
398
+ "locale": {
399
+ "builtin": "Intégrée",
400
+ "custom": "Personnalisée",
401
+ "overrides": "{count, plural, =0 {aucun texte personnalisé} one {# texte personnalisé} other {# textes personnalisés}}",
402
+ "enable": "Activer",
403
+ "disable": "Désactiver",
404
+ "delete": "Supprimer",
405
+ "deleted": "Langue supprimée",
406
+ "deletedDetail": "{users, plural, one {# personne est revenue} other {# personnes sont revenues}} à la langue par défaut de l’espace de travail ; {strings, plural, one {# traduction supprimée} other {# traductions supprimées}}.",
407
+ "deleteFailed": "Impossible de supprimer cette langue",
408
+ "add": "Ajouter une langue",
409
+ "added": "Langue ajoutée",
410
+ "create": "Ajouter la langue",
411
+ "id": "Code de langue",
412
+ "intlTag": "Règles de format issues de",
413
+ "native": "Nom dans la langue elle-même",
414
+ "english": "Nom en anglais",
415
+ "dir": "Sens du texte",
416
+ "ltr": "De gauche à droite",
417
+ "rtl": "De droite à gauche",
418
+ "font": "Écriture",
419
+ "latin": "Latine",
420
+ "arabic": "Arabe",
421
+ "cjk": "Chinois / japonais / coréen",
422
+ "intlHelp": "Les règles de format déterminent le comportement des nombres, des dates et des pluriels. Choisissez la langue la plus proche qui les possède déjà — elle n’a pas à correspondre à votre code de langue."
423
+ }
350
424
  }
351
425
  },
352
426
  "studio": {
@@ -552,13 +626,31 @@ export default {
552
626
  "label": "Nom de l’application",
553
627
  "helper": "Affiché dans la barre latérale, le titre du navigateur et les e-mails.",
554
628
  "error": "Saisissez un nom de 60 caractères maximum."
629
+ },
630
+ "logo": {
631
+ "label": "Logo",
632
+ "drop": "Déposez une image ici",
633
+ "helper": "PNG, JPEG, WebP, GIF ou SVG, jusqu’à 1 Mo. Remplace la marque intégrée partout.",
634
+ "upload": "Importer un logo",
635
+ "replace": "Remplacer le logo",
636
+ "remove": "Supprimer",
637
+ "uploaded": "Logo mis à jour",
638
+ "removed": "Logo supprimé",
639
+ "tooLarge": "Cette image dépasse 1 Mo.",
640
+ "badType": "Choisissez une image PNG, JPEG, WebP, GIF ou SVG.",
641
+ "undo": "Annuler"
642
+ },
643
+ "showVersion": {
644
+ "label": "Version dans la barre latérale",
645
+ "helper": "Le numéro de build à côté du logo. Désactivé, il masque votre version."
555
646
  }
556
647
  },
557
648
  "security": {
558
649
  "heading": "Sécurité",
559
650
  "require2fa": {
560
651
  "label": "Exiger l’authentification à deux facteurs",
561
- "desc": "Chaque membre doit activer la 2FA pour se connecter."
652
+ "desc": "Chaque membre doit activer la 2FA pour se connecter.",
653
+ "note": "Indicatif, pas bloquant : les membres sans 2FA sont dirigés vers sa configuration et ne peuvent plus la désactiver, mais leur connexion n’est jamais bloquée, et les clés API ne sont pas concernées."
562
654
  },
563
655
  "allowSignup": {
564
656
  "label": "Autoriser l’auto-inscription",
@@ -573,6 +665,41 @@ export default {
573
665
  "error": "Entre {min, number} et {max, number} caractères."
574
666
  }
575
667
  },
668
+ "email": {
669
+ "heading": "E-mail (SMTP)",
670
+ "unconfigured": "Aucun serveur de messagerie n’est configuré, donc Adminium ne peut envoyer ni réinitialisation de mot de passe, ni invitation, ni rapport planifié.",
671
+ "host": {
672
+ "label": "Hôte SMTP",
673
+ "error": "Un nom d’hôte ou une adresse IP uniquement — sans schéma, port ni identifiants."
674
+ },
675
+ "port": {
676
+ "label": "Port",
677
+ "error": "Entre {min, number} et {max, number}."
678
+ },
679
+ "user": {
680
+ "label": "Nom d’utilisateur",
681
+ "helper": "Laissez vide si le relais ne demande pas d’authentification."
682
+ },
683
+ "pass": {
684
+ "label": "Mot de passe",
685
+ "helper": "Chiffré au stockage et jamais réaffiché. Laissez vide pour conserver l’actuel.",
686
+ "error": "Ce nom d’utilisateur exige un mot de passe."
687
+ },
688
+ "from": {
689
+ "label": "Adresse d’expéditeur",
690
+ "helper": "Une adresse seule, ou un nom d’affichage devant.",
691
+ "error": "Saisissez une adresse e-mail."
692
+ },
693
+ "secure": {
694
+ "label": "TLS implicite",
695
+ "helper": "Activé pour le port 465. Désactivé démarre en clair puis passe à STARTTLS, ce qu’attend le port 587."
696
+ },
697
+ "remove": "Supprimer le serveur de messagerie",
698
+ "review": {
699
+ "removed": "Supprimé",
700
+ "password": "Remplacé"
701
+ }
702
+ },
576
703
  "review": {
577
704
  "title": "Enregistrer les paramètres de l’espace de travail",
578
705
  "subtitle": "Vérifiez vos modifications avant d’enregistrer.",
@@ -581,6 +708,8 @@ export default {
581
708
  "close": "Fermer",
582
709
  "on": "Activé",
583
710
  "off": "Désactivé",
711
+ "shown": "Affiché",
712
+ "hidden": "Masqué",
584
713
  "change": "{before} → {after}"
585
714
  },
586
715
  "defaultsCard": {
@@ -599,6 +728,16 @@ export default {
599
728
  "heading": "Enrichissement par IA",
600
729
  "body": "Configurez un fournisseur IA (ou l’aller-retour copier-coller) pour enrichir libellés, groupes et relations.",
601
730
  "cta": "Ouvrir les réglages IA"
731
+ },
732
+ "pagesCard": {
733
+ "heading": "Pages",
734
+ "body": "Ajoutez, modifiez et supprimez des pages, changez leur contenu et réordonnez la barre latérale.",
735
+ "cta": "Gérer les pages"
736
+ },
737
+ "translationsCard": {
738
+ "heading": "Langues et traductions",
739
+ "body": "Reformulez n’importe quel texte d’Adminium, choisissez les langues proposées et ajoutez les vôtres.",
740
+ "cta": "Ouvrir les traductions"
602
741
  }
603
742
  },
604
743
  "settingsAi": {
@@ -964,7 +1103,20 @@ export default {
964
1103
  "testFailed": "Échec de la connexion.",
965
1104
  "v1Note": {
966
1105
  "title": "À propos de cette installation",
967
- "body": "Ce serveur a choisi son magasin méta au premier démarrage. Cette étape vérifie que votre choix est compatible avec cette connexion et l’enregistre — le serveur applique la même règle indépendamment (409 META_PLACEMENT_INVALID). Déplacer un magasin méta existant est une tâche d’exploitation (M10)."
1106
+ "body": "Ce serveur garde déjà ses propres tables dans une base configurée, et cette étape ne les déplace pas. Elle vérifie que votre choix est compatible avec cette connexion — le serveur applique la même règle indépendamment (409 META_PLACEMENT_INVALID)."
1107
+ },
1108
+ "move": {
1109
+ "title": "Déplacement des tables d’Adminium",
1110
+ "copying": "Déplacement des tables d’Adminium…",
1111
+ "restarting": "Redémarrage…",
1112
+ "copyingBody": "Copie de chaque table adminium_ vers la nouvelle base. Vos données sources ne sont pas touchées, et rien n’est basculé tant que la copie n’est pas vérifiée.",
1113
+ "restartingBody": "La copie est terminée. Adminium redémarre sur la nouvelle base — cette page continuera d’elle-même dans quelques secondes.",
1114
+ "failed": "Impossible de déplacer les tables d’Adminium — réessayez.",
1115
+ "timeout": "Adminium a déplacé ses tables mais n’est pas encore revenu. Vos données sont en sécurité dans la nouvelle base — rechargez cette page dans un instant."
1116
+ },
1117
+ "willMove": {
1118
+ "title": "Cette étape va déplacer les tables d’Adminium",
1119
+ "body": "Adminium utilise actuellement son magasin SQLite intégré. « Continuer » copie ce magasin dans la base choisie et redémarre dessus — comptes, pages et paramètres suivent, vous restez connecté."
968
1120
  }
969
1121
  },
970
1122
  "intent": {
@@ -1119,7 +1271,64 @@ export default {
1119
1271
  "pii": "PII",
1120
1272
  "masked": "Masquée"
1121
1273
  },
1122
- "unavailableTitle": "Éditeur de remappage du schéma indisponible"
1274
+ "unavailableTitle": "Éditeur de remappage du schéma indisponible",
1275
+ "unavailableBody": "Cette version n’inclut pas encore l’éditeur de remappage (09-T12). Relancez la génération une fois qu’il sera disponible pour remapper les libellés, les types et les relations."
1276
+ },
1277
+ "publicApi": {
1278
+ "error": "Something went wrong",
1279
+ "scopes": {
1280
+ "deleteTitle": "Delete this scope",
1281
+ "deleteBody": "Any page using a key bound to this scope stops loading data. Keys are not deleted — revoke them first if that is what you meant.",
1282
+ "deletePrompt": "Type the scope name to confirm",
1283
+ "deleteConfirm": "Delete scope",
1284
+ "issuesTitle": "This scope did not compile",
1285
+ "title": "Scopes",
1286
+ "subtitle": "A scope is the whole of what a key may reach — the tables, the exact columns, and a filter the caller can narrow but never remove.",
1287
+ "emptyTitle": "No scopes yet",
1288
+ "emptyBody": "Create one below. It is checked against your live schema before it is saved.",
1289
+ "keyCount": "{count, plural, =0 {no keys} one {# key} other {# keys}}",
1290
+ "delete": "Delete",
1291
+ "nameLabel": "Name",
1292
+ "connectionLabel": "Connection ID",
1293
+ "documentLabel": "Scope document",
1294
+ "documentHint": "Compiled against your schema when you save. Every column a caller can reach is listed here and nowhere else.",
1295
+ "create": "Create scope",
1296
+ "formLabel": "Create a scope"
1297
+ },
1298
+ "cancel": "Cancel",
1299
+ "close": "Close",
1300
+ "title": "Public API",
1301
+ "subtitle": "Let your own customer- or staff-facing pages read this database, through a scope you define.",
1302
+ "notRegistered": {
1303
+ "title": "Not enabled on this server",
1304
+ "body": "Set ADMINIUM_PUBLIC_API_ORIGINS to the exact origins allowed to call it, then restart. Until then these routes are not served at all."
1305
+ },
1306
+ "toggle": {
1307
+ "label": "Serve the public API",
1308
+ "hint": "Turning this off stops every public request immediately. Nothing is deleted — keys, scopes and data all survive."
1309
+ },
1310
+ "origins": {
1311
+ "label": "Origins allowed to call it"
1312
+ },
1313
+ "keys": {
1314
+ "title": "Keys",
1315
+ "subtitle": "These go in your page’s JavaScript, so anyone can read them. That is expected — a key can only ever do what its scope allows.",
1316
+ "emptyTitle": "No keys yet",
1317
+ "emptyBody": "Create a scope first, then mint a key for it.",
1318
+ "reveal": "Show key",
1319
+ "rotate": "Rotate",
1320
+ "revoke": "Revoke",
1321
+ "nameLabel": "Name",
1322
+ "scopeLabel": "Scope",
1323
+ "scopePlaceholder": "Choose a scope",
1324
+ "create": "Create key",
1325
+ "formLabel": "Create a key",
1326
+ "scopeIsAuthTitle": "The scope is the only permission",
1327
+ "scopeIsAuthBody": "A key can reach exactly what its scope lists and nothing else. It does not use roles or table permissions, and it cannot read anything through the rest of the API."
1328
+ },
1329
+ "status": {
1330
+ "heading": "Status"
1331
+ }
1123
1332
  }
1124
1333
  },
1125
1334
  "onboarding": {
@@ -1239,7 +1448,9 @@ export default {
1239
1448
  "duplicate": "Dupliquer {name}",
1240
1449
  "remove": "Supprimer {name}",
1241
1450
  "removed": "{name} supprimé.",
1242
- "duplicated": "{name} dupliqué."
1451
+ "duplicated": "{name} dupliqué.",
1452
+ "unboundHint": "Ce widget affiche des données d’exemple ici et sur la page en ligne. Ouvrez « Configurer » pour le connecter à une table.",
1453
+ "unbound": "Données d’exemple"
1243
1454
  },
1244
1455
  "families": {
1245
1456
  "kpi": "Indicateurs",
@@ -1262,7 +1473,149 @@ export default {
1262
1473
  "saveVersionTitle": "Enregistrer une version",
1263
1474
  "saveVersionBody": "Capture l’état actuel du document. Restaurez-le à tout moment depuis Versions.",
1264
1475
  "versionName": "Nom de la version",
1265
- "versionNamePlaceholder": "p. ex. Avant le changement des tarifs T3"
1476
+ "versionNamePlaceholder": "p. ex. Avant le changement des tarifs T3",
1477
+ "discard": "Abandonner les modifications",
1478
+ "discardTitle": "Abandonner vos modifications ?",
1479
+ "discardBody": "Le tableau de bord revient à son état à l’ouverture de l’éditeur. Vos données ne sont pas affectées.",
1480
+ "discardConfirm": "Abandonner les modifications",
1481
+ "keepEditing": "Continuer l’édition",
1482
+ "discarded": "Modifications abandonnées.",
1483
+ "binding": {
1484
+ "addFilter": "Ajouter un filtre",
1485
+ "brokenBody": "Elle ne correspond plus à une requête que cette version sait comprendre : le widget affiche donc une erreur sur la page en ligne.",
1486
+ "brokenTitle": "La requête de ce widget est cassée",
1487
+ "bucketColumn": "Colonne de date",
1488
+ "bucketRequired": "Choisissez la colonne qui porte la date.",
1489
+ "bucketUnit": "Regrouper le temps par",
1490
+ "columnNone": "Aucune",
1491
+ "columnPlaceholder": "Choisissez une colonne…",
1492
+ "connect": "Connecter aux données",
1493
+ "edit": "Modifier la requête",
1494
+ "event": {
1495
+ "category": "Colonne de catégorie (facultatif)",
1496
+ "date": "Colonne de date de début",
1497
+ "end": "Colonne de date de fin (facultatif)",
1498
+ "title": "Colonne de titre"
1499
+ },
1500
+ "filterColumnRequired": "Choisissez une colonne.",
1501
+ "filterColumn": "Colonne",
1502
+ "filterListHelper": "Séparez les valeurs par des virgules.",
1503
+ "filterOp": "Condition",
1504
+ "filterValue": "Valeur",
1505
+ "fn": {
1506
+ "avg": "Moyenne",
1507
+ "countDistinct": "Nombre de valeurs distinctes",
1508
+ "count": "Nombre de lignes",
1509
+ "max": "Maximum",
1510
+ "min": "Minimum",
1511
+ "sum": "Somme"
1512
+ },
1513
+ "groupByColumns": "Colonnes",
1514
+ "groupByRequired": "Cette vue nécessite une colonne de ventilation.",
1515
+ "groupByRows": "Lignes",
1516
+ "groupBy": "Regrouper par",
1517
+ "incompleteBody": "Renseignez les champs signalés — une requête écrite à moitié échouerait sur le tableau de bord en ligne.",
1518
+ "incompleteTitle": "Cette requête n’est pas terminée",
1519
+ "limit": "Nombre maximal de lignes à récupérer",
1520
+ "loadingSchema": "Chargement des tables…",
1521
+ "lossyBody": "Certaines de ses parties — mesures supplémentaires, tris ou liens vers les filtres de page — ne sont pas affichées ici et seront supprimées si vous enregistrez.",
1522
+ "lossyTitle": "Cette requête est plus avancée que l’éditeur",
1523
+ "measureColumnRequired": "Ce calcul nécessite une colonne.",
1524
+ "measureColumn": "Sur la colonne",
1525
+ "measureFn": "Calculer",
1526
+ "noConnectionBody": "Les widgets ne peuvent être liés aux données que sur une page rattachée à une connexion.",
1527
+ "noConnectionTitle": "Cette page n’a aucune connexion à une base de données",
1528
+ "noDateColumns": "Cette table n’a aucune colonne de type date ou horodatage.",
1529
+ "noFilters": "Aucun filtre — toutes les lignes de la table sont comptées.",
1530
+ "noSnapshotBody": "Les tables et les colonnes proviennent de la dernière introspection de la connexion. Lancez une introspection dans le Studio, puis rouvrez cet éditeur.",
1531
+ "noSnapshotTitle": "Aucun instantané de schéma pour cette connexion",
1532
+ "op": {
1533
+ "between": "est compris entre",
1534
+ "ilike": "contient (casse ignorée)",
1535
+ "in": "fait partie de",
1536
+ "isNull": "est vide",
1537
+ "like": "contient",
1538
+ "notNull": "n’est pas vide"
1539
+ },
1540
+ "orderAsc": "Plus ancien / plus petit d’abord",
1541
+ "orderBy": "Trier par",
1542
+ "orderDesc": "Plus récent / plus grand d’abord",
1543
+ "orderDir": "Sens",
1544
+ "orderNone": "Ordre de la base de données",
1545
+ "pickTableFirst": "Choisissez une table pour sélectionner ses colonnes.",
1546
+ "removeFilter": "Retirer le filtre",
1547
+ "remove": "Supprimer la source de données",
1548
+ "save": "Utiliser cette requête",
1549
+ "sectionBreakdown": "Ventilation",
1550
+ "sectionColumns": "Colonnes",
1551
+ "sectionFilters": "Filtres",
1552
+ "sectionMeasure": "Mesure",
1553
+ "sectionRows": "Lignes",
1554
+ "sectionSource": "Source",
1555
+ "sectionTime": "Axe temporel",
1556
+ "sectionWindow": "Période",
1557
+ "selectColumns": "Colonnes à afficher",
1558
+ "selectRequired": "Choisissez au moins une colonne à afficher.",
1559
+ "shape": {
1560
+ "calendarEvents": "Des événements datés",
1561
+ "categorical": "Une valeur par catégorie",
1562
+ "distribution": "La répartition d’une colonne",
1563
+ "matrix": "Une grille de lignes par colonnes",
1564
+ "metricDelta": "Un nombre, comparé à la période précédente",
1565
+ "multiTimeseries": "Une courbe dans le temps par catégorie",
1566
+ "recordList": "Une liste de lignes",
1567
+ "record": "Une seule ligne",
1568
+ "singleMetric": "Un seul nombre",
1569
+ "stream": "Un flux en direct des lignes récentes",
1570
+ "timeseries": "Une valeur dans le temps",
1571
+ "tree": "Une valeur par catégorie, répartie sur deux niveaux",
1572
+ "geoPoints": "Une valeur par lieu ou région",
1573
+ "flows": "Le volume qui passe d’une catégorie à une autre",
1574
+ "ohlc": "Ouverture, plus haut, plus bas et clôture par période",
1575
+ "booleanMap": "Un indicateur activé/désactivé par clé"
1576
+ },
1577
+ "shapeHelper": "Modifier ce choix change les réglages de requête applicables.",
1578
+ "shapeLabel": "Ce que ce widget affiche",
1579
+ "summaryColumns": "{count, plural, one {# colonne} other {# colonnes}}",
1580
+ "summaryFilters": "{count, plural, one {# filtre} other {# filtres}}",
1581
+ "tableEmpty": "Aucune table correspondante.",
1582
+ "tablePlaceholder": "Rechercher des tables…",
1583
+ "tableRequired": "Choisissez une table à interroger.",
1584
+ "table": "Table ou vue",
1585
+ "title": "Source de données",
1586
+ "unbindableBody": "Il affiche une forme de données que le moteur de requêtes ne construit pas encore : il rend donc son propre contenu d’exemple.",
1587
+ "unbindableTitle": "Ce widget ne peut pas encore interroger de données",
1588
+ "unboundBody": "Il affiche des chiffres d’exemple ici ET sur la page en ligne. Connectez-le à une table pour afficher des données réelles.",
1589
+ "unboundTitle": "Non connecté à vos données",
1590
+ "unit": {
1591
+ "day": "Quotidien",
1592
+ "hour": "Horaire",
1593
+ "month": "Mensuel",
1594
+ "quarter": "Trimestriel",
1595
+ "week": "Hebdomadaire",
1596
+ "year": "Annuel"
1597
+ },
1598
+ "valueColumnRequired": "Choisissez la colonne à mesurer.",
1599
+ "valueColumn": "Colonne de valeur",
1600
+ "windowColumn": "Colonne de date",
1601
+ "windowLast": "Sur les",
1602
+ "windowNone": "Depuis le début",
1603
+ "windowRequired": "La comparaison avec la période précédente nécessite une colonne de date.",
1604
+ "windowUnit": {
1605
+ "day": "derniers jours",
1606
+ "hour": "dernières heures",
1607
+ "month": "derniers mois",
1608
+ "quarter": "derniers trimestres",
1609
+ "week": "dernières semaines",
1610
+ "year": "dernières années"
1611
+ },
1612
+ "windowUnitLabel": "Unité",
1613
+ "role": {
1614
+ "flagKey": "Colonne de clé",
1615
+ "flagValue": "Colonne activé/désactivé"
1616
+ },
1617
+ "roleColumnsRequired": "Renseignez chaque colonne obligatoire et ne laissez aucun vide avant une colonne renseignée, car les colonnes sont lues dans l’ordre."
1618
+ }
1266
1619
  },
1267
1620
  "setup": {
1268
1621
  "title": "Configurer Adminium",
@@ -1615,7 +1968,8 @@ export default {
1615
1968
  "helpAbout": "À propos d’Adminium"
1616
1969
  },
1617
1970
  "settings": {
1618
- "explainer": "Ces paramètres s’appliquent uniquement à l’application Adminium sur cet ordinateur. Ils sont enregistrés sur cette machine, pas dans votre espace de travail."
1971
+ "explainer": "Ces paramètres s’appliquent uniquement à l’application Adminium sur cet ordinateur. Ils sont enregistrés sur cette machine, pas dans votre espace de travail.",
1972
+ "title": "Paramètres du bureau"
1619
1973
  },
1620
1974
  "security": {
1621
1975
  "heading": "Connexion"
@@ -1662,7 +2016,8 @@ export default {
1662
2016
  "mismatchBody": "Le partage est désactivé, mais le serveur n'a pas encore libéré le réseau. Redémarrez Adminium pour le fermer.",
1663
2017
  "transportTitle": "Le trafic sur votre réseau local n'est pas chiffré.",
1664
2018
  "transportBody": "Ne partagez que sur des réseaux de confiance. Pour un accès à distance, utilisez Adminium self-host derrière HTTPS.",
1665
- "firewall": "La première fois que vous partagez, votre système d'exploitation vous demandera d'autoriser les connexions entrantes — choisissez Autoriser, sinon les autres appareils ne pourront pas accéder à Adminium."
2019
+ "firewall": "La première fois que vous partagez, votre système d'exploitation vous demandera d'autoriser les connexions entrantes — choisissez Autoriser, sinon les autres appareils ne pourront pas accéder à Adminium.",
2020
+ "manageTeam": "Gérer les utilisateurs et les rôles"
1666
2021
  },
1667
2022
  "setup": {
1668
2023
  "title": "Bienvenue dans Adminium",
@@ -1871,37 +2226,48 @@ export default {
1871
2226
  },
1872
2227
  "templates": {
1873
2228
  "crud": {
1874
- "title": "Enregistrements"
2229
+ "title": "Enregistrements",
2230
+ "description": "Un tableau de lignes consultable, avec ajout, édition et suppression."
1875
2231
  },
1876
2232
  "dashboard": {
1877
- "title": "Tableau de bord"
2233
+ "title": "Tableau de bord",
2234
+ "description": "Une grille de graphiques et de chiffres que vous disposez vous-même."
1878
2235
  },
1879
2236
  "board": {
1880
- "title": "Tableau"
2237
+ "title": "Tableau",
2238
+ "description": "Des cartes en colonnes par statut, déplaçables entre elles."
1881
2239
  },
1882
2240
  "calendar": {
1883
- "title": "Calendrier"
2241
+ "title": "Calendrier",
2242
+ "description": "Des enregistrements placés par date sur une grille mensuelle ou hebdomadaire."
1884
2243
  },
1885
2244
  "scheduler": {
1886
- "title": "Planning"
2245
+ "title": "Planning",
2246
+ "description": "Qui fait quoi, sous forme de planning par personne."
1887
2247
  },
1888
2248
  "logViewer": {
1889
- "title": "Journaux"
2249
+ "title": "Journaux",
2250
+ "description": "Des lignes d’événements denses et filtrables, avec une trace détaillée."
1890
2251
  },
1891
2252
  "files": {
1892
- "title": "Fichiers"
2253
+ "title": "Fichiers",
2254
+ "description": "Fichiers et dossiers sous forme de bibliothèque navigable."
1893
2255
  },
1894
2256
  "chat": {
1895
- "title": "Discussion"
2257
+ "title": "Discussion",
2258
+ "description": "Des conversations en fils avec l’historique des messages."
1896
2259
  },
1897
2260
  "builder": {
1898
- "title": "Éditeur"
2261
+ "title": "Éditeur",
2262
+ "description": "Un canevas glisser-déposer pour documents et modèles."
1899
2263
  },
1900
2264
  "wizard": {
1901
- "title": "Assistant"
2265
+ "title": "Assistant",
2266
+ "description": "Une séquence d’étapes guidée pour accomplir une tâche."
1902
2267
  },
1903
2268
  "settings": {
1904
- "title": "Paramètres"
2269
+ "title": "Paramètres",
2270
+ "description": "Des lignes de préférences groupées, avec interrupteurs et champs."
1905
2271
  },
1906
2272
  "directory": {
1907
2273
  "title": "Annuaire",
@@ -1915,7 +2281,8 @@ export default {
1915
2281
  "noMatchesBody": "Essayez une autre recherche ou retirez un filtre.",
1916
2282
  "errorTitle": "Cet annuaire n’a pas pu être chargé",
1917
2283
  "loading": "Chargement des personnes",
1918
- "memberCount": "{count} personnes"
2284
+ "memberCount": "{count} personnes",
2285
+ "description": "Les personnes en cartes, avec un organigramme des rattachements."
1919
2286
  },
1920
2287
  "masterDetail": {
1921
2288
  "title": "Liste et détail",
@@ -1927,7 +2294,8 @@ export default {
1927
2294
  "noMatchesBody": "Essayez de retirer un filtre.",
1928
2295
  "errorTitle": "Cette liste n’a pas pu être chargée",
1929
2296
  "loading": "Chargement des enregistrements",
1930
- "selectPrompt": "Sélectionnez un enregistrement"
2297
+ "selectPrompt": "Sélectionnez un enregistrement",
2298
+ "description": "Une liste à gauche, l’enregistrement sélectionné à côté."
1931
2299
  },
1932
2300
  "queueInbox": {
1933
2301
  "title": "File d’attente",
@@ -1952,7 +2320,8 @@ export default {
1952
2320
  "errorTitle": "Cette file d’attente n’a pas pu être chargée",
1953
2321
  "loading": "Chargement de la file d’attente",
1954
2322
  "selectPrompt": "Sélectionnez une demande",
1955
- "daysUnit": "{count} jours"
2323
+ "daysUnit": "{count} jours",
2324
+ "description": "Une file de travail avec approuver et rejeter sur chaque élément."
1956
2325
  }
1957
2326
  },
1958
2327
  "dataio": {
@@ -2056,8 +2425,493 @@ export default {
2056
2425
  }
2057
2426
  },
2058
2427
  "theme": {
2059
- "toLight": "Passer au thème clair",
2060
- "toDark": "Passer au thème sombre"
2428
+ "toLight": "Mode clair",
2429
+ "toDark": "Mode sombre"
2430
+ },
2431
+ "studioPages": {
2432
+ "title": "Pages",
2433
+ "subtitle": "Ajoutez, modifiez et organisez les pages de votre application, ainsi que leur ordre dans la barre latérale.",
2434
+ "createButton": "Nouvelle page",
2435
+ "loadFailed": {
2436
+ "title": "Impossible de charger les pages",
2437
+ "body": "La gestion des pages requiert l’autorisation « Gérer les pages ». Demandez à un administrateur de l’attribuer à l’un de vos rôles."
2438
+ },
2439
+ "tab": {
2440
+ "pages": "Toutes les pages",
2441
+ "sidebar": "Ordre de la barre latérale"
2442
+ },
2443
+ "list": {
2444
+ "title": "Pages",
2445
+ "count": "{count, plural, one {# page} other {# pages}}"
2446
+ },
2447
+ "empty": {
2448
+ "title": "Aucune page pour l’instant",
2449
+ "body": "Connectez une base de données pour générer des pages automatiquement, ou créez-en une à la main."
2450
+ },
2451
+ "status": {
2452
+ "live": "Active",
2453
+ "hidden": "Masquée"
2454
+ },
2455
+ "origin": {
2456
+ "generated": "Générée",
2457
+ "manifest": "Extension",
2458
+ "llm": "Assistant",
2459
+ "system": "Système",
2460
+ "user": "Personnalisée"
2461
+ },
2462
+ "row": {
2463
+ "menu": "Actions pour {title}"
2464
+ },
2465
+ "action": {
2466
+ "edit": "Modifier la page",
2467
+ "duplicate": "Dupliquer",
2468
+ "hide": "Masquer dans la barre latérale",
2469
+ "show": "Afficher dans la barre latérale",
2470
+ "delete": "Supprimer la page"
2471
+ },
2472
+ "create": {
2473
+ "title": "Nouvelle page",
2474
+ "failed": "Impossible de créer la page",
2475
+ "submit": "Créer la page",
2476
+ "subtitle": "Choisissez ce que cette page affiche et son apparence. L’aperçu suit vos choix."
2477
+ },
2478
+ "duplicate": {
2479
+ "title": "Dupliquer la page",
2480
+ "failed": "Impossible de dupliquer la page",
2481
+ "submit": "Dupliquer"
2482
+ },
2483
+ "delete": {
2484
+ "title": "Supprimer cette page ?",
2485
+ "body": "Cette action est irréversible. Les vues enregistrées et les dispositions personnelles de cette page sont supprimées pour tout le monde.",
2486
+ "bodyGenerated": "Cette page provient de la génération du schéma : elle réapparaîtra à la prochaine génération. Les vues enregistrées et les dispositions personnelles sont supprimées pour tout le monde.",
2487
+ "prompt": "Saisissez {slug} pour confirmer",
2488
+ "confirm": "Supprimer la page"
2489
+ },
2490
+ "field": {
2491
+ "title": "Titre",
2492
+ "titleHint": "Affiché dans la barre latérale et dans l’en-tête de la page.",
2493
+ "slug": "Adresse de la page",
2494
+ "slugHint": "Minuscules, chiffres et tirets. Seulement la dernière partie — le reste de l’adresse est ajouté pour vous.",
2495
+ "slugTaken": "Une autre page utilise déjà cette adresse.",
2496
+ "slugWarning": "Modifier l’adresse casse les liens et les favoris existants vers cette page.",
2497
+ "template": "Modèle",
2498
+ "templateHint": "Détermine ce que la page peut contenir. Modifiable par la suite.",
2499
+ "group": "Groupe de la barre latérale",
2500
+ "groupHint": "La section de la barre latérale où elle apparaît.",
2501
+ "icon": "Icône",
2502
+ "iconHint": "Affichée à côté du nom de la page dans la barre latérale.",
2503
+ "visible": "Afficher dans la barre latérale",
2504
+ "visibleHint": "Une page masquée reste accessible à son URL pour qui possède le lien.",
2505
+ "table": "Table",
2506
+ "tableCreateHint": "La table que cette page lit. Choisissez-en une maintenant et la page est prête à l’emploi ; laissez vide pour la lier plus tard.",
2507
+ "tableNone": "Non liée",
2508
+ "tableNeedsConnection": "Choisissez d’abord une source de données.",
2509
+ "connection": "Source de données",
2510
+ "connectionNone": "Aucune",
2511
+ "iconPick": "Choisir l’icône de la page",
2512
+ "padding": "Marge de la page"
2513
+ },
2514
+ "editor": {
2515
+ "title": "Modifier la page",
2516
+ "save": "Enregistrer les modifications",
2517
+ "saveFailed": "Impossible d’enregistrer les modifications",
2518
+ "openPage": "Ouvrir la page",
2519
+ "generated": {
2520
+ "title": "Cette page a été générée à partir de votre schéma",
2521
+ "body": "Vos modifications sont conservées lors d’une nouvelle génération : la page est marquée comme modifiée et laissée intacte. En revanche, une suppression ne tient que jusqu’à ce que la génération suivante la recrée."
2522
+ },
2523
+ "contentUnavailable": "Impossible de charger le contenu de la page",
2524
+ "contentUnavailableBody": "Les informations ci-dessus peuvent tout de même être enregistrées.",
2525
+ "contentInvalid": "La configuration de cette page est illisible",
2526
+ "contentInvalidBody": "Elle provient d’une version plus récente, ou elle est corrompue. Régénérez la page ou supprimez-la.",
2527
+ "data": "Données",
2528
+ "schemaFailed": "Impossible de lister les tables",
2529
+ "schemaFailedBody": "Cette connexion n’a peut-être pas encore été analysée. Lancez l’introspection depuis Studio → Connexions de données.",
2530
+ "notBindable": "Ce modèle n’est pas lié à une seule table",
2531
+ "notBindableBody": "Son contenu se construit widget par widget. Ouvrez la page et utilisez « Modifier » pour les ajouter.",
2532
+ "recompose": "Cette page va être reconstruite",
2533
+ "recomposeBody": "L’enregistrement remplace son contenu par une nouvelle disposition pour le modèle et la table ci-dessus. Les ajustements de colonnes et les modifications de widgets de cette page seront perdus.",
2534
+ "missing": "Cette page n’existe plus",
2535
+ "missingBody": "Elle a peut-être été supprimée, ou retirée par une génération.",
2536
+ "details": "Détails",
2537
+ "itemsPending": "Enregistrez d’abord la modification ci-dessus — le contenu de la page est reconstruit à partir du nouveau modèle et de la nouvelle table.",
2538
+ "columns": "Colonnes",
2539
+ "appearance": "Apparence"
2540
+ },
2541
+ "sidebar": {
2542
+ "help": "Réordonnez les pages au sein d’un groupe, ou déplacez-en une vers un autre groupe. Les changements s’appliquent à tout le monde.",
2543
+ "discard": "Abandonner",
2544
+ "save": "Enregistrer l’ordre",
2545
+ "saveFailed": "Impossible d’enregistrer le nouvel ordre",
2546
+ "emptyGroup": "Aucune page dans ce groupe.",
2547
+ "moveUp": "Monter {title}",
2548
+ "moveDown": "Descendre {title}",
2549
+ "moveTo": "Déplacer {title} vers un groupe",
2550
+ "ungrouped": {
2551
+ "title": "Certaines pages n’appartiennent à aucun groupe",
2552
+ "body": "Ces pages fonctionnent à leur URL mais n’apparaissent nulle part dans la barre latérale. Ouvrez chacune d’elles et choisissez un groupe."
2553
+ }
2554
+ },
2555
+ "columns": {
2556
+ "help": "Réordonnez les colonnes, renommez leurs en-têtes et choisissez celles qui apparaissent dans le tableau.",
2557
+ "discard": "Abandonner",
2558
+ "save": "Enregistrer les colonnes",
2559
+ "saveFailed": "Impossible d’enregistrer les colonnes",
2560
+ "pk": "Clé",
2561
+ "pii": "PII",
2562
+ "header": "En-tête de {name}",
2563
+ "shown": "Affichée",
2564
+ "toggle": "Afficher {name} dans le tableau",
2565
+ "moveUp": "Monter {name}",
2566
+ "moveDown": "Descendre {name}",
2567
+ "remove": "Retirer {name}",
2568
+ "none": {
2569
+ "title": "Cette page n’a pas encore de colonnes",
2570
+ "body": "Les colonnes sont lues dans la table lors de la génération de la page. Liez cette page à une table puis régénérez pour les renseigner."
2571
+ }
2572
+ },
2573
+ "icon": {
2574
+ "none": "Choisir une icône",
2575
+ "search": "Rechercher des icônes",
2576
+ "noMatches": "Aucune icône ne correspond à cette recherche."
2577
+ },
2578
+ "preview": {
2579
+ "untitled": "Page sans titre",
2580
+ "note": "Une illustration de la disposition, pas de vos données. La vraie page se remplit une fois enregistrée."
2581
+ },
2582
+ "padding": {
2583
+ "default": "Par défaut pour ce modèle",
2584
+ "none": "Aucune",
2585
+ "standard": "Standard (28 × 24)",
2586
+ "custom": "Personnalisée…",
2587
+ "x": "Côtés (px)",
2588
+ "y": "Haut et bas (px)"
2589
+ }
2590
+ },
2591
+ "audit": {
2592
+ "action": {
2593
+ "view": "Voir"
2594
+ },
2595
+ "actor": {
2596
+ "apiKey": "Clé d’API",
2597
+ "automation": "Automatisation",
2598
+ "system": "Système",
2599
+ "user": "Utilisateur"
2600
+ },
2601
+ "category": {
2602
+ "auth": "Authentification et comptes",
2603
+ "automation": "Automatisations",
2604
+ "connection": "Connexions de données",
2605
+ "data": "Enregistrements",
2606
+ "export": "Imports et exports",
2607
+ "llm": "Assistance IA",
2608
+ "rbac": "Rôles et permissions",
2609
+ "schema": "Schéma",
2610
+ "settings": "Paramètres",
2611
+ "system": "Système"
2612
+ },
2613
+ "column": {
2614
+ "action": "Action",
2615
+ "actor": "Auteur",
2616
+ "category": "Catégorie",
2617
+ "details": "Détails",
2618
+ "when": "Quand"
2619
+ },
2620
+ "drawer": {
2621
+ "actorId": "Identifiant de l’auteur",
2622
+ "actorKind": "Type d’auteur",
2623
+ "after": "Après",
2624
+ "before": "Avant",
2625
+ "category": "Catégorie",
2626
+ "changes": "Modifications",
2627
+ "connection": "Connexion",
2628
+ "field": "Champ",
2629
+ "ip": "Adresse IP",
2630
+ "noChanges": "Cette action n’a enregistré aucun instantané avant/après.",
2631
+ "none": "Aucun",
2632
+ "requestId": "Identifiant de requête",
2633
+ "resource": "Ressource",
2634
+ "subtitle": "{actor} · {when}",
2635
+ "truncated": "Tronqué à 16 Ko",
2636
+ "userAgent": "Agent utilisateur"
2637
+ },
2638
+ "empty": {
2639
+ "body": "Les modifications apportées aux données, au schéma, aux paramètres et aux permissions apparaissent ici au fil de l’eau.",
2640
+ "filtered": {
2641
+ "body": "Élargissez la plage de dates ou effacez le filtre de catégorie.",
2642
+ "title": "Aucun résultat pour ces filtres"
2643
+ },
2644
+ "title": "Rien n’a encore été enregistré"
2645
+ },
2646
+ "filterActor": "Identifiant de l’auteur",
2647
+ "filterCategoryAny": "Toutes les catégories",
2648
+ "filterCategory": "Filtrer par catégorie",
2649
+ "filterFrom": "Du",
2650
+ "filterTo": "Au",
2651
+ "listFailed": {
2652
+ "title": "Impossible de charger le journal d’audit"
2653
+ },
2654
+ "loadMore": "Charger les entrées plus anciennes",
2655
+ "subtitle": "Chaque modification apportée à cet espace de travail, son auteur, et ce qu’elle a changé.",
2656
+ "title": "Journal d’audit"
2657
+ },
2658
+ "roles": {
2659
+ "action": {
2660
+ "delete": "Supprimer",
2661
+ "rename": "Renommer"
2662
+ },
2663
+ "builtinLocked": "Les rôles intégrés ne peuvent pas être supprimés.",
2664
+ "category": {
2665
+ "access": "Accès",
2666
+ "data": "Données",
2667
+ "operations": "Opérations",
2668
+ "workspace": "Espace de travail"
2669
+ },
2670
+ "column": {
2671
+ "actions": "Actions",
2672
+ "members": "Membres",
2673
+ "name": "Rôle"
2674
+ },
2675
+ "create": {
2676
+ "descriptionLabel": "Description",
2677
+ "description": "Un nouveau rôle démarre sans aucune permission.",
2678
+ "failed": "Impossible de créer le rôle",
2679
+ "namePlaceholder": "ex. Agent de support",
2680
+ "name": "Nom",
2681
+ "submit": "Créer le rôle",
2682
+ "title": "Nouveau rôle"
2683
+ },
2684
+ "createButton": "Nouveau rôle",
2685
+ "delete": {
2686
+ "confirm": "Supprimer le rôle",
2687
+ "description": "Le rôle et ses lignes de permissions sont supprimés.",
2688
+ "failed": "Impossible de supprimer le rôle",
2689
+ "hasMembers": "« {name} » compte encore {count, plural, one {# membre} other {# membres}}. Choisissez le rôle vers lequel les déplacer — Adminium ne laissera jamais un compte sans rôle.",
2690
+ "noMembers": "Personne ne détient « {name} », rien ne sera donc déplacé.",
2691
+ "reassignPlaceholder": "Choisissez un rôle…",
2692
+ "reassignTo": "Déplacer les membres vers",
2693
+ "title": "Supprimer le rôle"
2694
+ },
2695
+ "list": {
2696
+ "title": "Rôles"
2697
+ },
2698
+ "loadFailed": {
2699
+ "body": "La matrice ci-dessous est incomplète : l’enregistrer retirerait des permissions qui ne sont simplement pas chargées. Rechargez la page avant toute modification.",
2700
+ "title": "Certaines permissions n’ont pas pu être lues"
2701
+ },
2702
+ "matrix": {
2703
+ "discard": "Abandonner",
2704
+ "empty": {
2705
+ "body": "Cette instance n’a signalé aucune permission attribuable, ce qui ne devrait pas arriver — rechargez la page, et si le problème persiste, consultez le journal du serveur.",
2706
+ "title": "Aucune permission à afficher"
2707
+ },
2708
+ "label": "Permissions des rôles",
2709
+ "noChanges": "Aucune modification en attente",
2710
+ "pending": "{count, plural, one {# modification en attente} other {# modifications en attente}}",
2711
+ "rowHeader": "Permission",
2712
+ "title": "Permissions"
2713
+ },
2714
+ "memberCount": "{count, plural, one {# utilisateur} other {# utilisateurs}}",
2715
+ "permission": {
2716
+ "apiKeysManage": "Gérer les clés d’API",
2717
+ "auditRead": "Lire le journal d’audit",
2718
+ "connectionsManage": "Gérer les connexions aux bases de données",
2719
+ "exportsManage": "Gérer les exports de tout le monde",
2720
+ "importsManage": "Gérer les imports de tout le monde",
2721
+ "jobsManage": "Démarrer et annuler les tâches en arrière-plan",
2722
+ "jobsRead": "Voir toutes les tâches en arrière-plan",
2723
+ "llmRun": "Utiliser l’assistance IA",
2724
+ "pagesManage": "Créer et organiser les pages",
2725
+ "reportsManage": "Gérer les rapports planifiés",
2726
+ "rolesManage": "Gérer les rôles et les permissions",
2727
+ "schemaRemap": "Modifier les libellés et les remplacements du schéma",
2728
+ "settingsManage": "Gérer les paramètres de l’espace de travail",
2729
+ "usersManage": "Gérer les utilisateurs"
2730
+ },
2731
+ "rename": {
2732
+ "failed": "Impossible de renommer le rôle",
2733
+ "title": "Renommer le rôle"
2734
+ },
2735
+ "saveFailed": {
2736
+ "title": "Impossible d’enregistrer tous les rôles"
2737
+ },
2738
+ "subtitle": "Ce que chaque rôle est autorisé à faire. Un utilisateur cumule les permissions de tous les rôles qu’il détient.",
2739
+ "title": "Rôles et permissions"
2740
+ },
2741
+ "security": {
2742
+ "password": {
2743
+ "changedBody": "Utilisez le nouveau mot de passe à votre prochaine connexion. Les sessions sur vos autres appareils ne sont pas affectées — révoquez-les ci-dessous si vous voulez les déconnecter.",
2744
+ "changed": "Mot de passe modifié",
2745
+ "confirm": "Confirmer le nouveau mot de passe",
2746
+ "current": "Mot de passe actuel",
2747
+ "failed": "Impossible de modifier votre mot de passe",
2748
+ "helper": "Au moins 8 caractères.",
2749
+ "mismatch": "Les deux mots de passe ne correspondent pas.",
2750
+ "new": "Nouveau mot de passe",
2751
+ "submit": "Modifier le mot de passe",
2752
+ "title": "Mot de passe"
2753
+ },
2754
+ "sessions": {
2755
+ "expires": "Expire {at}",
2756
+ "failedBody": "Cette liste est le seul endroit qui indique où votre compte est connecté : si elle est vide, considérez que l’information est inconnue, et non qu’il n’y a aucune session.",
2757
+ "failed": "Impossible de lire vos sessions",
2758
+ "ip": "IP {ip}",
2759
+ "loading": "Recherche des autres appareils connectés…",
2760
+ "noIp": "Aucune IP enregistrée",
2761
+ "revokeBody": "La session prend fin immédiatement et la personne qui l’utilise devra se reconnecter.",
2762
+ "revokeFailed": "Impossible de déconnecter cet appareil",
2763
+ "revokeTitle": "Déconnecter cet appareil",
2764
+ "revoke": "Déconnecter",
2765
+ "seenUnknown": "Dernière activité : inconnue",
2766
+ "seen": "Dernière activité {since}",
2767
+ "thisDevice": "Cet appareil",
2768
+ "title": "Sessions actives",
2769
+ "unknownDevice": "Appareil non reconnu"
2770
+ },
2771
+ "subtitle": "Votre mot de passe, votre second facteur, et tous les endroits où vous êtes connecté.",
2772
+ "title": "Sécurité",
2773
+ "twoFactor": {
2774
+ "activateFailed": "Ce code n’a pas été accepté",
2775
+ "activate": "Activer la double authentification",
2776
+ "body": "Une application d’authentification génère un code à 6 chiffres qu’Adminium demande après votre mot de passe.",
2777
+ "code": "Code de votre application",
2778
+ "copyKey": "Copier la clé de configuration",
2779
+ "copyLink": "Copier le lien de configuration",
2780
+ "disableBody": "Votre compte revient au mot de passe seul, et vos codes de récupération cessent de fonctionner.",
2781
+ "disableConfirm": "Désactiver",
2782
+ "disableFailed": "Impossible de désactiver la double authentification",
2783
+ "disablePassword": "Votre mot de passe",
2784
+ "disableTitle": "Désactiver l’authentification à deux facteurs",
2785
+ "disable": "Désactiver la double authentification",
2786
+ "enrollFailed": "Impossible de démarrer la configuration",
2787
+ "enroll": "Configurer la double authentification",
2788
+ "hide": "Masquer la clé de configuration",
2789
+ "off": "Désactivée",
2790
+ "on": "Activée",
2791
+ "recovery": {
2792
+ "body": "Chaque code vous connecte une seule fois si vous perdez votre application d’authentification. Ils ne sont affichés que maintenant.",
2793
+ "copy": "Copier les codes",
2794
+ "title": "Enregistrez vos codes de récupération"
2795
+ },
2796
+ "reveal": "Afficher la clé de configuration",
2797
+ "secretHelper": "Collez le lien de configuration dans votre application d’authentification, ou saisissez la clé à la main.",
2798
+ "secret": "Clé de configuration",
2799
+ "title": "Authentification à deux facteurs"
2800
+ }
2801
+ },
2802
+ "team": {
2803
+ "action": {
2804
+ "reactivate": "Réactiver",
2805
+ "remove": "Supprimer",
2806
+ "resend": "Nouveau lien",
2807
+ "roles": "Rôles",
2808
+ "suspend": "Suspendre"
2809
+ },
2810
+ "column": {
2811
+ "actions": "Actions",
2812
+ "lastSeen": "Dernière activité",
2813
+ "person": "Personne",
2814
+ "roles": "Rôles",
2815
+ "status": "Statut"
2816
+ },
2817
+ "counts": "{active} actifs · {invited} invités · {suspended} suspendus",
2818
+ "empty": {
2819
+ "body": "Invitez un coéquipier pour lui donner son propre accès et son propre rôle.",
2820
+ "filtered": {
2821
+ "body": "Effacez les filtres pour voir tout l’annuaire.",
2822
+ "title": "Personne ne correspond à ces filtres"
2823
+ },
2824
+ "title": "Vous êtes la seule personne à avoir un compte"
2825
+ },
2826
+ "filterRoleAny": "Tous les rôles",
2827
+ "filterRole": "Filtrer par rôle",
2828
+ "filterStatusAny": "Tous les statuts",
2829
+ "filterStatus": "Filtrer par statut",
2830
+ "invite": {
2831
+ "copied": "Copié",
2832
+ "copyLink": "Copier le lien",
2833
+ "created": {
2834
+ "body": "Envoyez vous-même ce lien à {email}. Il n’est affiché qu’une seule fois — Adminium n’en stocke qu’une empreinte, donc si vous le perdez, vous devrez supprimer l’invitation et en créer une nouvelle.",
2835
+ "title": "Invitation créée"
2836
+ },
2837
+ "emailIt": "Envoyer l’invitation par e-mail",
2838
+ "expiresRelative": "Le lien expire {at} ({relative}).",
2839
+ "expires": "Le lien expire {at}.",
2840
+ "noEmail": {
2841
+ "smtp": "Aucun serveur SMTP n’est configuré sur cette instance : il n’y a donc rien pour envoyer le courrier. Partagez le lien par un canal auquel vous faites déjà confiance.",
2842
+ "title": "Adminium n’a pas envoyé ce lien par e-mail",
2843
+ "unknown": "Adminium n’a pas pu vérifier si cette instance est capable d’envoyer des e-mails. Partagez le lien par un canal auquel vous faites déjà confiance."
2844
+ }
2845
+ },
2846
+ "inviteButton": "Inviter un coéquipier",
2847
+ "inviteDialog": {
2848
+ "description": "Adminium crée le compte et vous fournit un lien d’activation à usage unique à transmettre.",
2849
+ "emailPlaceholder": "nom@exemple.com",
2850
+ "email": "E-mail",
2851
+ "failed": "Impossible de créer l’invitation",
2852
+ "namePlaceholder": "ex. Dana Osei",
2853
+ "name": "Nom",
2854
+ "rolesHelper": "Choisissez le rôle le moins privilégié qui lui permette de faire son travail. Vous pourrez le modifier plus tard.",
2855
+ "roles": "Rôles",
2856
+ "submit": "Créer l’invitation",
2857
+ "title": "Inviter un coéquipier"
2858
+ },
2859
+ "listFailed": {
2860
+ "title": "Impossible de charger l’annuaire"
2861
+ },
2862
+ "loadMore": "Charger plus",
2863
+ "neverSignedIn": "Jamais connecté",
2864
+ "noRoles": "Aucun rôle",
2865
+ "remove": {
2866
+ "body": "Cette action efface le compte de {name}, ses préférences et ses sessions de connexion, et retire son nom de l’historique des paramètres qu’il a modifiés. Suspendre le compte conserve tout cela et l’empêche seulement de se connecter. Cette action est irréversible.",
2867
+ "confirm": "Supprimer définitivement",
2868
+ "prompt": "Saisissez « {email} » pour confirmer",
2869
+ "title": "Supprimer définitivement le compte"
2870
+ },
2871
+ "roles": {
2872
+ "unavailable": "Les rôles ne sont pas visibles pour votre compte : aucun ne peut donc être attribué ici."
2873
+ },
2874
+ "rolesDialog": {
2875
+ "description": "Un utilisateur cumule les permissions de tous les rôles qu’il détient.",
2876
+ "failed": "Impossible de modifier les rôles",
2877
+ "title": "Rôles de {name}"
2878
+ },
2879
+ "rolesLocked": "Modifier les rôles requiert la permission « Gérer les rôles ».",
2880
+ "search": "Rechercher un nom ou un e-mail",
2881
+ "status": {
2882
+ "active": "Actif",
2883
+ "invited": "Invité",
2884
+ "suspended": "Suspendu"
2885
+ },
2886
+ "subtitle": "Qui possède un compte sur cet Adminium, et ce que chacun peut faire.",
2887
+ "title": "Équipe",
2888
+ "twoFactorOn": "L’authentification à deux facteurs est activée",
2889
+ "twoFactorShort": "2FA"
2890
+ },
2891
+ "email": {
2892
+ "linkFallback": "Si le bouton ne fonctionne pas, collez ce lien dans votre navigateur : {url}",
2893
+ "notification": {
2894
+ "action": "Ouvrir {appName}",
2895
+ "footer": "Vous recevez cet e-mail parce que les notifications par e-mail sont activées pour votre compte {appName}. Vous pouvez les désactiver dans vos préférences de notification.",
2896
+ "name": "Notification"
2897
+ },
2898
+ "passwordReset": {
2899
+ "action": "Choisir un nouveau mot de passe",
2900
+ "heading": "Réinitialiser votre mot de passe",
2901
+ "intro": "Bonjour {name}, nous avons reçu une demande de réinitialisation du mot de passe de {email}.",
2902
+ "name": "Réinitialisation du mot de passe",
2903
+ "notice": "Ce lien ne fonctionne qu’une seule fois et expire dans {expiresInMinutes} minutes. Si vous n’avez pas demandé la réinitialisation de votre mot de passe, vous pouvez ignorer cet e-mail — votre mot de passe actuel reste actif.",
2904
+ "subject": "Réinitialisez votre mot de passe {appName}"
2905
+ },
2906
+ "userInvite": {
2907
+ "action": "Accepter l’invitation",
2908
+ "heading": "Vous avez reçu une invitation",
2909
+ "intro": "{inviterName} vous invite à rejoindre {appName}. Acceptez l’invitation pour définir un mot de passe pour {email} et vous connecter.",
2910
+ "name": "Invitation à l’équipe",
2911
+ "notice": "Cette invitation ne fonctionne qu’une seule fois et expire dans {expiresInDays} jours. Si vous ne l’attendiez pas, vous pouvez ignorer cet e-mail.",
2912
+ "subject": "Vous avez reçu une invitation à rejoindre {appName}",
2913
+ "inviterFallback": "Un administrateur"
2914
+ }
2061
2915
  }
2062
2916
  };
2063
2917
  //# sourceMappingURL=common.js.map