@tekki-forge/runtime-admin 0.1.0

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 (138) hide show
  1. package/README.md +5 -0
  2. package/dist/account.d.ts +1 -0
  3. package/dist/account.js +105 -0
  4. package/dist/account.js.map +1 -0
  5. package/dist/activity.d.ts +65 -0
  6. package/dist/activity.js +299 -0
  7. package/dist/activity.js.map +1 -0
  8. package/dist/admin-access.d.ts +4 -0
  9. package/dist/admin-access.js +177 -0
  10. package/dist/admin-access.js.map +1 -0
  11. package/dist/admin.d.ts +5 -0
  12. package/dist/admin.js +129 -0
  13. package/dist/admin.js.map +1 -0
  14. package/dist/auth-pages.d.ts +13 -0
  15. package/dist/auth-pages.js +207 -0
  16. package/dist/auth-pages.js.map +1 -0
  17. package/dist/brand-art.d.ts +24 -0
  18. package/dist/brand-art.js +33 -0
  19. package/dist/brand-art.js.map +1 -0
  20. package/dist/brand.d.ts +11 -0
  21. package/dist/brand.js +16 -0
  22. package/dist/brand.js.map +1 -0
  23. package/dist/charts.d.ts +23 -0
  24. package/dist/charts.js +259 -0
  25. package/dist/charts.js.map +1 -0
  26. package/dist/command-palette.d.ts +9 -0
  27. package/dist/command-palette.js +115 -0
  28. package/dist/command-palette.js.map +1 -0
  29. package/dist/context.d.ts +242 -0
  30. package/dist/context.js +107 -0
  31. package/dist/context.js.map +1 -0
  32. package/dist/dashboard.d.ts +66 -0
  33. package/dist/dashboard.js +144 -0
  34. package/dist/dashboard.js.map +1 -0
  35. package/dist/fields.d.ts +71 -0
  36. package/dist/fields.js +326 -0
  37. package/dist/fields.js.map +1 -0
  38. package/dist/i18n/catalog.d.ts +7 -0
  39. package/dist/i18n/catalog.js +23 -0
  40. package/dist/i18n/catalog.js.map +1 -0
  41. package/dist/i18n/locale.d.ts +15 -0
  42. package/dist/i18n/locale.js +69 -0
  43. package/dist/i18n/locale.js.map +1 -0
  44. package/dist/i18n/messages/de.d.ts +3 -0
  45. package/dist/i18n/messages/de.js +627 -0
  46. package/dist/i18n/messages/de.js.map +1 -0
  47. package/dist/i18n/messages/en.d.ts +3 -0
  48. package/dist/i18n/messages/en.js +627 -0
  49. package/dist/i18n/messages/en.js.map +1 -0
  50. package/dist/i18n/messages/es.d.ts +3 -0
  51. package/dist/i18n/messages/es.js +627 -0
  52. package/dist/i18n/messages/es.js.map +1 -0
  53. package/dist/i18n/messages/fr.d.ts +3 -0
  54. package/dist/i18n/messages/fr.js +627 -0
  55. package/dist/i18n/messages/fr.js.map +1 -0
  56. package/dist/i18n/messages/pt.d.ts +3 -0
  57. package/dist/i18n/messages/pt.js +627 -0
  58. package/dist/i18n/messages/pt.js.map +1 -0
  59. package/dist/i18n/validation.d.ts +3 -0
  60. package/dist/i18n/validation.js +36 -0
  61. package/dist/i18n/validation.js.map +1 -0
  62. package/dist/illustrations.d.ts +6 -0
  63. package/dist/illustrations.js +16 -0
  64. package/dist/illustrations.js.map +1 -0
  65. package/dist/import-dialog.d.ts +11 -0
  66. package/dist/import-dialog.js +152 -0
  67. package/dist/import-dialog.js.map +1 -0
  68. package/dist/index.d.ts +38 -0
  69. package/dist/index.js +39 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/inline-edit.d.ts +18 -0
  72. package/dist/inline-edit.js +115 -0
  73. package/dist/inline-edit.js.map +1 -0
  74. package/dist/landing.d.ts +79 -0
  75. package/dist/landing.js +122 -0
  76. package/dist/landing.js.map +1 -0
  77. package/dist/locale-switcher.d.ts +4 -0
  78. package/dist/locale-switcher.js +15 -0
  79. package/dist/locale-switcher.js.map +1 -0
  80. package/dist/map.d.ts +26 -0
  81. package/dist/map.js +232 -0
  82. package/dist/map.js.map +1 -0
  83. package/dist/notifications.d.ts +12 -0
  84. package/dist/notifications.js +75 -0
  85. package/dist/notifications.js.map +1 -0
  86. package/dist/record-mutation.d.ts +19 -0
  87. package/dist/record-mutation.js +39 -0
  88. package/dist/record-mutation.js.map +1 -0
  89. package/dist/resource-detail.d.ts +4 -0
  90. package/dist/resource-detail.js +96 -0
  91. package/dist/resource-detail.js.map +1 -0
  92. package/dist/resource-form.d.ts +11 -0
  93. package/dist/resource-form.js +92 -0
  94. package/dist/resource-form.js.map +1 -0
  95. package/dist/resource-list.d.ts +10 -0
  96. package/dist/resource-list.js +154 -0
  97. package/dist/resource-list.js.map +1 -0
  98. package/dist/saved-views.d.ts +16 -0
  99. package/dist/saved-views.js +64 -0
  100. package/dist/saved-views.js.map +1 -0
  101. package/dist/schema-editor-diagram.d.ts +14 -0
  102. package/dist/schema-editor-diagram.js +54 -0
  103. package/dist/schema-editor-diagram.js.map +1 -0
  104. package/dist/schema-editor.d.ts +98 -0
  105. package/dist/schema-editor.js +571 -0
  106. package/dist/schema-editor.js.map +1 -0
  107. package/dist/shell.d.ts +10 -0
  108. package/dist/shell.js +228 -0
  109. package/dist/shell.js.map +1 -0
  110. package/dist/skeleton.d.ts +25 -0
  111. package/dist/skeleton.js +34 -0
  112. package/dist/skeleton.js.map +1 -0
  113. package/dist/theme-catalog.d.ts +71 -0
  114. package/dist/theme-catalog.js +55 -0
  115. package/dist/theme-catalog.js.map +1 -0
  116. package/dist/theme-head.d.ts +8 -0
  117. package/dist/theme-head.js +11 -0
  118. package/dist/theme-head.js.map +1 -0
  119. package/dist/theme-preview.d.ts +2 -0
  120. package/dist/theme-preview.js +23 -0
  121. package/dist/theme-preview.js.map +1 -0
  122. package/dist/theme-switcher.d.ts +20 -0
  123. package/dist/theme-switcher.js +159 -0
  124. package/dist/theme-switcher.js.map +1 -0
  125. package/dist/theme.d.ts +24 -0
  126. package/dist/theme.js +30 -0
  127. package/dist/theme.js.map +1 -0
  128. package/dist/toast.d.ts +21 -0
  129. package/dist/toast.js +51 -0
  130. package/dist/toast.js.map +1 -0
  131. package/dist/ui.d.ts +86 -0
  132. package/dist/ui.js +106 -0
  133. package/dist/ui.js.map +1 -0
  134. package/dist/views.d.ts +23 -0
  135. package/dist/views.js +238 -0
  136. package/dist/views.js.map +1 -0
  137. package/package.json +58 -0
  138. package/styles.css +778 -0
@@ -0,0 +1,627 @@
1
+ /** Built-in UI texts in French. */
2
+ export const fr = {
3
+ "locale.label": "Langue",
4
+ "common.actions": "Actions",
5
+ "common.back": "Retour",
6
+ "common.cancel": "Annuler",
7
+ "common.clear": "Effacer",
8
+ "common.close": "Fermer",
9
+ "common.confirm": "Confirmer",
10
+ "common.continue": "Continuer",
11
+ "common.create": "Créer",
12
+ "common.delete": "Supprimer",
13
+ "common.done": "Terminé",
14
+ "common.doneNotice": "Terminé.",
15
+ "common.edit": "Modifier",
16
+ "common.loading": "Chargement…",
17
+ "common.no": "Non",
18
+ "common.none": "Aucun",
19
+ "common.notFound": "Introuvable",
20
+ "common.open": "Ouvrir",
21
+ "common.remove": "Retirer",
22
+ "common.save": "Enregistrer",
23
+ "common.search": "Rechercher",
24
+ "common.searchEllipsis": "Rechercher…",
25
+ "common.select": "Sélectionner…",
26
+ "common.somethingWentWrong": "Une erreur est survenue",
27
+ "common.untitled": "Sans titre",
28
+ "common.yes": "Oui",
29
+ "pagination.label": "Pagination",
30
+ "pagination.next": "Suivant",
31
+ "pagination.previous": "Précédent",
32
+ "pagination.results_one": "{count} résultat",
33
+ "pagination.results_other": "{count} résultats",
34
+ "nav.administration": "Administration",
35
+ "nav.apiDocs": "Documentation de l'API",
36
+ "nav.closeMenu": "Fermer le menu",
37
+ "nav.collapseRail": "Réduire la navigation",
38
+ "nav.expandRail": "Déplier la navigation",
39
+ "nav.dashboard": "Tableau de bord",
40
+ "nav.impersonating": "Vous êtes connecté en tant que {name}.",
41
+ "nav.main": "Navigation principale",
42
+ "nav.newOrganization": "+ Nouvelle organisation",
43
+ "nav.noPage": "Aucune page à l'adresse {path}.",
44
+ "nav.openMenu": "Ouvrir le menu",
45
+ "nav.organization": "Organisation",
46
+ "nav.signOut": "Se déconnecter",
47
+ "nav.stopImpersonating": "Arrêter",
48
+ "auth.acceptInvitation": "Accepter l'invitation",
49
+ "auth.alreadyRegistered": "Déjà inscrit ?",
50
+ "auth.askForInvite": "Demandez à un administrateur de vous inviter.",
51
+ "auth.backToSignIn": "Retour à la connexion",
52
+ "auth.checkEmail": "Consultez votre boîte de réception",
53
+ "auth.chooseNewPassword": "Choisissez un nouveau mot de passe",
54
+ "auth.code": "Code",
55
+ "auth.continueWith": "Continuer avec {provider}",
56
+ "auth.createAccount": "Créer un compte",
57
+ "auth.createOne": "Créez-en un",
58
+ "auth.createOrganization": "Créez votre organisation",
59
+ "auth.createOrganizationSubtitle": "Tout ce que vous créez appartient à une organisation. Vous pourrez ensuite inviter vos collègues.",
60
+ "auth.createYourAccount": "Créez votre compte",
61
+ "auth.email": "E-mail",
62
+ "auth.enterBackupCode": "Saisissez l'un de vos codes de secours.",
63
+ "auth.enterTotpCode": "Saisissez le code à 6 chiffres de votre application d'authentification.",
64
+ "auth.forgotPassword": "Mot de passe oublié ?",
65
+ "auth.invitedSubtitle": "Connectez-vous ou créez un compte avec l'adresse e-mail invitée pour accepter.",
66
+ "auth.invitedTitle": "Vous êtes invité",
67
+ "auth.joinOrganization": "Rejoindre l'organisation",
68
+ "auth.noAccount": "Pas de compte ?",
69
+ "auth.or": "ou",
70
+ "auth.organizationName": "Nom de l'organisation",
71
+ "auth.organizationNamePlaceholder": "Société Exemple",
72
+ "auth.password": "Mot de passe",
73
+ "auth.passwordHint": "Au moins 8 caractères.",
74
+ "auth.registrationClosed": "Les inscriptions sont fermées",
75
+ "auth.resetLinkInvalid": "Ce lien de réinitialisation est invalide ou a expiré.",
76
+ "auth.resetSent": "Si un compte existe pour {email}, un lien de réinitialisation vous a été envoyé.",
77
+ "auth.resetSubtitle": "Nous vous enverrons un lien de réinitialisation par e-mail.",
78
+ "auth.resetTitle": "Réinitialisez votre mot de passe",
79
+ "auth.sendResetLink": "Envoyer le lien",
80
+ "auth.signIn": "Se connecter",
81
+ "auth.signInTo": "Connexion à {app}",
82
+ "auth.signInWithPasskey": "Se connecter avec une clé d'accès",
83
+ "auth.trustDevice": "Faire confiance à cet appareil pendant 30 jours",
84
+ "auth.updatePassword": "Mettre à jour le mot de passe",
85
+ "auth.useAuthenticatorCode": "Utiliser le code de l'application d'authentification",
86
+ "auth.useBackupCode": "Utiliser plutôt un code de secours",
87
+ "auth.verificationSent": "Nous avons envoyé un lien de vérification à {email}. Suivez-le pour finaliser la création de votre compte.",
88
+ "account.addPasskey": "Ajouter une clé d'accès",
89
+ "account.backupCodes": "Codes de secours — conservez-les en lieu sûr",
90
+ "account.changePassword": "Changer le mot de passe",
91
+ "account.confirmWithPassword": "Confirmez avec votre mot de passe",
92
+ "account.currentPassword": "Mot de passe actuel",
93
+ "account.disable2fa": "Désactiver",
94
+ "account.enable2fa": "Activer la 2FA",
95
+ "account.name": "Nom",
96
+ "account.newPassword": "Nouveau mot de passe",
97
+ "account.openInAuthenticator": "Ouvrir dans l'application d'authentification",
98
+ "account.passkey": "Clé d'accès",
99
+ "account.passkeyAdded": "ajoutée le {date}",
100
+ "account.passkeyAddedNotice": "Clé d'accès ajoutée.",
101
+ "account.passkeys": "Clés d'accès",
102
+ "account.passkeysDescription": "Connectez-vous avec votre empreinte digitale, votre visage ou le code PIN de votre appareil.",
103
+ "account.password": "Mot de passe",
104
+ "account.passwordChanged": "Mot de passe modifié. Les autres sessions ont été déconnectées.",
105
+ "account.profile": "Profil",
106
+ "account.profileUpdated": "Profil mis à jour.",
107
+ "account.revoke": "Révoquer",
108
+ "account.secretKey": "Clé secrète",
109
+ "account.sessions": "Sessions actives",
110
+ "account.thisDevice": "cet appareil",
111
+ "account.title": "Compte",
112
+ "account.twoFactor": "Authentification à deux facteurs",
113
+ "account.twoFactorDisabled": "Protégez votre compte avec une application d'authentification.",
114
+ "account.twoFactorEnabled": "Activée. Un code vous sera demandé lors de la connexion.",
115
+ "account.twoFactorSetup": "Ajoutez ce compte à votre application d'authentification, puis saisissez le code affiché.",
116
+ "account.unknownDevice": "Appareil inconnu",
117
+ "account.verificationCode": "Code de vérification",
118
+ "account.verify": "Vérifier",
119
+ "admin.role": "Rôle",
120
+ "admin.roleFor": "Rôle de {name}",
121
+ "admin.users.active": "Actif",
122
+ "admin.users.ban": "Bannir",
123
+ "admin.users.banMessage": "L'utilisateur sera déconnecté et ne pourra plus se connecter.",
124
+ "admin.users.banTitle": "Bannir {name} ?",
125
+ "admin.users.banned": "Banni",
126
+ "admin.users.create": "Créer un utilisateur",
127
+ "admin.users.created": "{name} a été créé.",
128
+ "admin.users.deleteMessage": "Cette action supprime définitivement le compte et ses sessions.",
129
+ "admin.users.deleteTitle": "Supprimer {name} ?",
130
+ "admin.users.description": "Toutes les personnes disposant d'un compte. Rôles globaux, bannissements et sessions.",
131
+ "admin.users.empty": "Aucun utilisateur trouvé",
132
+ "admin.users.impersonate": "Se connecter en tant que",
133
+ "admin.users.joined": "Inscription",
134
+ "admin.users.roleChanged": "{name} a désormais le rôle {role}.",
135
+ "admin.users.search": "Rechercher des utilisateurs",
136
+ "admin.users.searchPlaceholder": "Rechercher par nom ou e-mail…",
137
+ "admin.users.signOut": "Déconnecter",
138
+ "admin.users.signedOut": "{name} a été déconnecté de toutes ses sessions.",
139
+ "admin.users.status": "Statut",
140
+ "admin.users.tempPassword": "Mot de passe temporaire",
141
+ "admin.users.tempPasswordHint": "Au moins 8 caractères. Demandez à l'utilisateur de le modifier après sa connexion.",
142
+ "admin.users.title": "Utilisateurs",
143
+ "admin.users.unban": "Lever le bannissement",
144
+ "admin.users.unbanned": "Le bannissement de {name} a été levé.",
145
+ "admin.users.unverified": "Non vérifié",
146
+ "admin.users.user": "Utilisateur",
147
+ "admin.members.description": "Les membres de {org}.",
148
+ "admin.members.emailPlaceholder": "collegue@entreprise.com",
149
+ "admin.members.invitationCancelled": "Invitation annulée.",
150
+ "admin.members.inviteByEmail": "Inviter par e-mail",
151
+ "admin.members.invited": "Invitation envoyée à {email}.",
152
+ "admin.members.invitedAs": "Invité en tant que {role} · expire le {date}",
153
+ "admin.members.removed": "{name} a été retiré.",
154
+ "admin.members.roleUpdated": "Rôle mis à jour.",
155
+ "admin.members.sendInvite": "Envoyer l'invitation",
156
+ "admin.members.title": "Membres",
157
+ "admin.audit.action": "Action",
158
+ "admin.audit.allResources": "Toutes les ressources",
159
+ "admin.audit.changes": "Modifications",
160
+ "admin.audit.description": "Chaque création, modification, suppression et action sur les ressources auditées.",
161
+ "admin.audit.empty": "Aucune activité pour le moment",
162
+ "admin.audit.emptyHint": "Activez features: { audit: true } sur une entité pour enregistrer son historique.",
163
+ "admin.audit.entity": "Entité",
164
+ "admin.audit.record": "Enregistrement",
165
+ "admin.audit.system": "Système",
166
+ "admin.audit.title": "Journal d'audit",
167
+ "admin.audit.when": "Date",
168
+ "admin.audit.who": "Auteur",
169
+ "dashboard.description": "Voici le contenu de {app}.",
170
+ "dashboard.emptyDescription": "Vous n'avez encore accès à aucune donnée du tableau de bord.",
171
+ "dashboard.emptyTitle": "Rien à afficher",
172
+ "dashboard.nothingYet": "Rien pour le moment.",
173
+ "dashboard.other": "Autres",
174
+ "dashboard.viewAll": "Tout afficher",
175
+ "dashboard.welcome": "Bienvenue",
176
+ "dashboard.welcomeName": "Bienvenue, {name}",
177
+ "charts.bar": "Graphique à barres",
178
+ "charts.donutSummary": "Graphique en anneau, total {total}. {slices}.",
179
+ "charts.label": "Libellé",
180
+ "charts.line": "Graphique linéaire",
181
+ "charts.noData": "Aucune donnée pour le moment",
182
+ "charts.other": "Autres",
183
+ "charts.share": "Part",
184
+ "charts.summary_one": "{kind} avec {count} élément. Maximum {highest} ; minimum {lowest}.",
185
+ "charts.summary_other": "{kind} avec {count} éléments. Maximum {highest} ; minimum {lowest}.",
186
+ "charts.summaryEmpty": "{kind}, aucune donnée",
187
+ "charts.total": "Total",
188
+ "charts.value": "Valeur",
189
+ "list.add": "Ajouter",
190
+ "list.column.createdAt": "Créé le",
191
+ "list.column.updatedAt": "Modifié le",
192
+ "list.bulkDeleteSoft": "Ils pourront être restaurés plus tard depuis le filtre Supprimés.",
193
+ "list.bulkDeleteTitle_one": "Supprimer {count} {item} ?",
194
+ "list.bulkDeleteTitle_other": "Supprimer {count} {items} ?",
195
+ "list.createFirst": "Créer le premier",
196
+ "list.deleteSelected": "Supprimer {count}",
197
+ "list.deletedRecords": "Enregistrements supprimés",
198
+ "list.editField": "Modifier {field}",
199
+ "list.emptyYet": "Aucun élément ({items}) pour le moment",
200
+ "list.export": "Exporter",
201
+ "list.filterAll": "{filter} : Tous",
202
+ "list.filterSearch": "Rechercher {filter}…",
203
+ "list.import": "Importer",
204
+ "list.new": "Nouveau : {item}",
205
+ "list.noMatch": "Aucun élément ({items}) ne correspond",
206
+ "list.noResource": "Aucune ressource à l'adresse {path}.",
207
+ "list.searchPlaceholder": "Rechercher dans {items}…",
208
+ "list.selectAll": "Tout sélectionner",
209
+ "list.selectRow": "Sélectionner la ligne",
210
+ "list.trashed.active": "Actifs",
211
+ "list.trashed.all": "Tous",
212
+ "list.trashed.deleted": "Supprimés",
213
+ "list.view": "Vue",
214
+ "list.views.board": "Tableau Kanban",
215
+ "list.views.calendar": "Calendrier",
216
+ "list.views.map": "Carte",
217
+ "list.views.table": "Tableau",
218
+ "detail.actionCompleted": "{action} : terminé.",
219
+ "detail.created": "Créé",
220
+ "detail.createdUpdated": "{created} · modifié le {updated}",
221
+ "detail.deleteHard": "Cette action est irréversible.",
222
+ "detail.deleteSoft": "Vous pourrez le restaurer plus tard.",
223
+ "detail.deleteTitle": "Supprimer cet élément ({item}) ?",
224
+ "detail.deleted": "Cet enregistrement est supprimé.",
225
+ "detail.history": "Historique",
226
+ "detail.restore": "Restaurer",
227
+ "detail.restored": "Restauré.",
228
+ "detail.transitionConfirm": "Passer cet élément ({item}) à « {state} » ?",
229
+ "detail.transitioned": "{transition} — désormais {state}.",
230
+ "form.createItem": "Créer : {item}",
231
+ "form.editTitle": "Modifier : {item}",
232
+ "form.fixErrors": "Veuillez corriger les champs en surbrillance.",
233
+ "form.invalidValue": "Valeur invalide",
234
+ "form.saveChanges": "Enregistrer les modifications",
235
+ "fields.colorPicker": "Sélecteur de couleur {label}",
236
+ "fields.noMatches": "Aucun résultat",
237
+ "fields.removeItem": "Retirer {item}",
238
+ "fields.file.anyType": "Tout type",
239
+ "fields.file.dropFile": "Déposez un fichier ici ou cliquez pour le choisir",
240
+ "fields.file.dropImage": "Déposez une image ici ou cliquez pour la choisir",
241
+ "fields.file.limits": "{types} · jusqu'à {size}",
242
+ "fields.file.replace": "Remplacer",
243
+ "fields.file.tooLarge": "Fichier trop volumineux — la limite est de {size}.",
244
+ "fields.file.uploadFailedNetwork": "Échec de l'envoi — vérifiez votre connexion.",
245
+ "fields.file.uploadFailedStatus": "Échec de l'envoi ({status})",
246
+ "fields.file.uploading": "Envoi en cours… {percent} %",
247
+ "fields.file.wrongType": "Type de fichier non accepté ({types}).",
248
+ "fields.location.latitude": "Latitude",
249
+ "fields.location.locating": "Localisation…",
250
+ "fields.location.longitude": "Longitude",
251
+ "fields.location.useMine": "Utiliser ma position",
252
+ "views.truncated": "Affichage des {shown} premiers sur {total} — utilisez la recherche ou les filtres pour affiner.",
253
+ "views.board.card": "la carte",
254
+ "views.board.label": "{items} par {field}",
255
+ "views.board.moveCard": "Déplacer {card} vers",
256
+ "views.board.moveFailed": "Impossible de déplacer la carte",
257
+ "views.board.moveTo": "Déplacer vers…",
258
+ "views.board.setField": "Définir {field}…",
259
+ "views.calendar.label": "{items} en {month}",
260
+ "views.calendar.more": "+{count} de plus",
261
+ "views.calendar.newOn": "Nouveau : {item} le {date}",
262
+ "views.calendar.nextMonth": "Mois suivant",
263
+ "views.calendar.previousMonth": "Mois précédent",
264
+ "views.calendar.rescheduleFailed": "Impossible de replanifier",
265
+ "views.calendar.showLess": "Afficher moins",
266
+ "views.calendar.today": "Aujourd'hui",
267
+ "views.map.cluster": "{count} {items} — zoomer",
268
+ "views.map.emptyHere": "Aucun élément ({items}) localisé ici.",
269
+ "views.map.emptyYet": "Aucun élément ({items}) localisé pour le moment.",
270
+ "views.map.label": "Carte : {items}. Flèches pour se déplacer, plus et moins pour zoomer.",
271
+ "views.map.showAll": "Tout afficher",
272
+ "views.map.zoomIn": "Zoom avant",
273
+ "views.map.zoomOut": "Zoom arrière",
274
+ "import.alwaysCreate": "Toujours créer de nouveaux enregistrements",
275
+ "import.check_one": "Vérifier {count} ligne",
276
+ "import.check_other": "Vérifier {count} lignes",
277
+ "import.chooseFile": "Choisissez un fichier CSV ou déposez-le ici",
278
+ "import.column": "Colonne",
279
+ "import.columnFor": "Colonne pour {field}",
280
+ "import.dateDmy": "3 avril (jour/mois/année)",
281
+ "import.dateMdy": "4 mars (mois/jour/année)",
282
+ "import.dateOrder": "Les dates comme 03/04/2026 signifient",
283
+ "import.dateYmd": "ISO (2026-04-03)",
284
+ "import.doneSummary": "{created} créés et {updated} mis à jour ({items}).",
285
+ "import.doneWithFailures_one": "{created} créés et {updated} mis à jour ({items}) ; {count} ligne en échec.",
286
+ "import.doneWithFailures_other": "{created} créés et {updated} mis à jour ({items}) ; {count} lignes en échec.",
287
+ "import.dontImport": "— Ne pas importer —",
288
+ "import.downloadProblems": "Télécharger les lignes en erreur",
289
+ "import.errorsColumn": "Erreurs",
290
+ "import.existing": "Enregistrements existants",
291
+ "import.failedAfter_one": "{message} (après {count} ligne)",
292
+ "import.failedAfter_other": "{message} (après {count} lignes)",
293
+ "import.field": "Champ",
294
+ "import.fileHint": "Première ligne = noms des colonnes. Séparateur virgule, point-virgule ou tabulation. Jusqu'à {size} Mo.",
295
+ "import.fileTooLarge": "Le fichier dépasse {size} Mo — découpez-le d'abord.",
296
+ "import.firstValue": "Première valeur",
297
+ "import.importRows_one": "Importer {count} ligne",
298
+ "import.importRows_other": "Importer {count} lignes",
299
+ "import.importRowsSkip_one": "Importer {count} ligne, en ignorer {skip}",
300
+ "import.importRowsSkip_other": "Importer {count} lignes, en ignorer {skip}",
301
+ "import.line": "Ligne {line} :",
302
+ "import.missingColumns": "Choisissez une colonne pour : {fields}.",
303
+ "import.more": "…et {count} de plus (téléchargez le rapport).",
304
+ "import.new": "Nouveaux",
305
+ "import.noRows": "Ce fichier ne contient aucune ligne de données.",
306
+ "import.parseErrors_one": "{count} ligne n'a pas pu être lue correctement (p. ex. ligne {line} : {message}).",
307
+ "import.parseErrors_other": "{count} lignes n'ont pas pu être lues correctement (p. ex. ligne {line} : {message}).",
308
+ "import.problems": "Problèmes",
309
+ "import.progress": "{done} / {total} lignes",
310
+ "import.relationsHint": "Les relations sont associées par nom (ou identifiant) ; plusieurs valeurs dans une cellule sont séparées par « ; ».",
311
+ "import.rowsFound_one": "{count} ligne. Associez chaque champ à une colonne.",
312
+ "import.rowsFound_other": "{count} lignes. Associez chaque champ à une colonne.",
313
+ "import.rowsFoundTruncated_one": "{count} ligne (tronqué). Associez chaque champ à une colonne.",
314
+ "import.rowsFoundTruncated_other": "{count} lignes (tronqué). Associez chaque champ à une colonne.",
315
+ "import.skipped_one": "{count} ligne vide sera ignorée.",
316
+ "import.skipped_other": "{count} lignes vides seront ignorées.",
317
+ "import.title": "Importer : {items}",
318
+ "import.updateById": "Mettre à jour si l'ID correspond",
319
+ "import.updateWhen": "Mettre à jour si {field} correspond",
320
+ "import.updates": "Mises à jour",
321
+ "savedViews.deleteView": "Supprimer la vue {name}",
322
+ "savedViews.empty": "Aucune vue enregistrée pour le moment.",
323
+ "savedViews.filterFirst": "Filtrez, recherchez ou triez d'abord la liste",
324
+ "savedViews.namePlaceholder": "p. ex. Mes affaires en cours",
325
+ "savedViews.resetFilters": "Réinitialiser les filtres",
326
+ "savedViews.saveCurrent": "Enregistrer la vue actuelle…",
327
+ "savedViews.saveTitle": "Enregistrer la vue",
328
+ "savedViews.shareWithOrg": "Partager avec toute l'organisation",
329
+ "savedViews.shared": "Partagée avec l'équipe",
330
+ "savedViews.views": "Vues",
331
+ "palette.create": "Créer",
332
+ "palette.goTo": "Aller à",
333
+ "palette.label": "Palette de commandes",
334
+ "palette.noMatches": "Aucun résultat pour « {query} ».",
335
+ "palette.placeholder": "Rechercher dans {app} ou accéder à…",
336
+ "palette.searching": "Recherche…",
337
+ "notifications.caughtUp": "Vous êtes à jour",
338
+ "notifications.emptyDescription": "Les notifications concernant les enregistrements que vous suivez apparaissent ici.",
339
+ "notifications.emptyTitle": "Rien ici",
340
+ "notifications.hoursAgo": "il y a {count} h",
341
+ "notifications.justNow": "à l'instant",
342
+ "notifications.labelUnread": "Notifications ({count} non lues)",
343
+ "notifications.markAllRead": "Tout marquer comme lu",
344
+ "notifications.markRead": "Marquer comme lu",
345
+ "notifications.minutesAgo": "il y a {count} min",
346
+ "notifications.seeAll": "Tout voir",
347
+ "notifications.title": "Notifications",
348
+ "notifications.unreadOnly": "Non lues uniquement",
349
+ "validation.required": "Obligatoire",
350
+ "validation.number": "Doit être un nombre",
351
+ "validation.integer": "Doit être un nombre entier",
352
+ "validation.decimal": "Doit être un nombre décimal",
353
+ "validation.decimalPlaces": "{max} décimales au maximum",
354
+ "validation.between": "Doit être compris entre {min} et {max}",
355
+ "validation.min": "Doit être au moins {min}",
356
+ "validation.max": "Doit être au plus {max}",
357
+ "validation.date": "Doit être une date (AAAA-MM-JJ)",
358
+ "validation.datetime": "Doit être une date et une heure",
359
+ "validation.oneOf": "Doit être l'une des valeurs suivantes : {values}",
360
+ "validation.selectOne": "Sélectionnez au moins une option",
361
+ "validation.minLength": "Au moins {min} caractères",
362
+ "validation.maxLength": "Au plus {max} caractères",
363
+ "validation.pattern": "Format invalide",
364
+ "validation.email": "Doit être une adresse e-mail valide",
365
+ "validation.url": "Doit être une URL valide",
366
+ "validation.color": "Doit être une couleur hexadécimale, p. ex. #3b82f6",
367
+ "validation.latitude": "La latitude doit être comprise entre -90 et 90",
368
+ "validation.longitude": "La longitude doit être comprise entre -180 et 180",
369
+ "validation.taken": "Déjà utilisé",
370
+ "nav.accountMenu": "Menu du compte",
371
+ "nav.skipToContent": "Aller au contenu",
372
+ "toast.region": "Messages d'état",
373
+ "toast.saved": "Modifications enregistrées",
374
+ "toast.created": "{item} créé",
375
+ "toast.deleted": "{item} supprimé",
376
+ "toast.failed": "L'opération a échoué",
377
+ "toast.bulkDeleted_one": "{count} enregistrement supprimé",
378
+ "toast.bulkDeleted_other": "{count} enregistrements supprimés",
379
+ "toast.imported_one": "{count} ligne importée",
380
+ "toast.imported_other": "{count} lignes importées",
381
+ // Schema editor (/admin/schema, development only)
382
+ "schema.nav": "Schéma",
383
+ "schema.title": "Éditeur de schéma",
384
+ "schema.description": "Modifiez les entités et les champs visuellement. Rien n’est écrit avant que vous ayez vérifié et appliqué les modifications.",
385
+ "schema.tab.editor": "Éditeur",
386
+ "schema.tab.diagram": "Diagramme",
387
+ "schema.unavailable.title": "Éditeur de schéma indisponible",
388
+ "schema.unavailable.body": "L’éditeur de schéma est disponible pendant l’exécution de `forge dev`. En production, modifiez forge.config.ts puis déployez.",
389
+ "schema.forbidden": "Seuls les administrateurs peuvent modifier le schéma.",
390
+ "schema.loadError": "Impossible de charger le schéma : {message}",
391
+ "schema.reload": "Recharger",
392
+ "schema.invalidConfig": "forge.config.ts ne compile pas actuellement. Corrigez d’abord ces problèmes dans le fichier :",
393
+ "schema.review": "Vérifier les modifications",
394
+ "schema.entities": "Entités",
395
+ "schema.fieldCount_one": "{count} champ",
396
+ "schema.fieldCount_other": "{count} champs",
397
+ "schema.newEntity": "Nouvelle entité",
398
+ "schema.newEntityName": "Nom de l’entité",
399
+ "schema.newEntityHint": "Au singulier, avec une majuscule, par ex. Invoice",
400
+ "schema.noEntity": "Sélectionnez une entité ou créez-en une.",
401
+ "schema.pending": "Modifications en attente",
402
+ "schema.pendingEmpty": "Aucune modification pour l’instant.",
403
+ "schema.discard": "Tout annuler",
404
+ "schema.fixProblems": "Corrigez d’abord :",
405
+ "schema.readOnlyEntity": "Définie hors du bloc entities (par exemple par un plugin) — en lecture seule ici.",
406
+ "schema.removeEntity": "Supprimer l’entité",
407
+ "schema.restoreEntity": "Restaurer",
408
+ "schema.renameEntity.action": "Renommer",
409
+ "schema.renameEntity.label": "Nouveau nom de l’entité",
410
+ "schema.renameEntity.hint": "Les références dans forge.config.ts suivent le nouveau nom. La table, l’URL et les données enregistrées restent les mêmes.",
411
+ "schema.renameEntity.save": "Enregistrer le nom",
412
+ "schema.renameEntity.cancel": "Annuler le renommage",
413
+ "schema.renameEntity.was": "anciennement {name}",
414
+ "schema.entityRemoved": "Cette entité sera supprimée avec toutes ses données.",
415
+ "schema.fields": "Champs",
416
+ "schema.addField": "Ajouter un champ",
417
+ "schema.field.name": "Nom",
418
+ "schema.field.type": "Type",
419
+ "schema.field.target": "Cible",
420
+ "schema.field.required": "Obligatoire",
421
+ "schema.field.unique": "Unique",
422
+ "schema.field.searchable": "Recherchable",
423
+ "schema.field.many": "Multiple (plusieurs-à-plusieurs)",
424
+ "schema.field.owner": "Propriétaire de l’enregistrement",
425
+ "schema.field.values": "Valeurs",
426
+ "schema.field.valuesHint": "Séparées par des virgules, par ex. draft, active, archived",
427
+ "schema.field.currency": "Devise",
428
+ "schema.field.accept": "Types acceptés",
429
+ "schema.field.acceptHint": "par ex. image/*, .pdf",
430
+ "schema.field.maxSize": "Taille max.",
431
+ "schema.field.expression": "Expression",
432
+ "schema.field.computedType": "Type du résultat",
433
+ "schema.field.default": "Valeur par défaut",
434
+ "schema.field.details": "Plus d’options",
435
+ "schema.field.moveUp": "Monter",
436
+ "schema.field.moveDown": "Descendre",
437
+ "schema.field.drag": "Glisser pour réordonner",
438
+ "schema.field.remove": "Supprimer le champ",
439
+ "schema.field.new": "Nouveau",
440
+ "schema.options": "Options de l’entité",
441
+ "schema.option.label": "Libellé",
442
+ "schema.option.pluralLabel": "Libellé au pluriel",
443
+ "schema.option.icon": "Icône",
444
+ "schema.option.display": "Champ d’affichage",
445
+ "schema.option.nav": "Afficher dans la navigation",
446
+ "schema.option.default": "Par défaut",
447
+ "schema.feature.audit": "Journal d’audit",
448
+ "schema.feature.softDelete": "Suppression douce",
449
+ "schema.error.name": "Utilisez des lettres et des chiffres, en commençant par une lettre.",
450
+ "schema.error.duplicate": "Ce nom est déjà utilisé.",
451
+ "schema.error.entityName": "Utilisez le PascalCase : une majuscule, puis des lettres et des chiffres, par ex. Invoice.",
452
+ "schema.error.reserved": "Ce nom est réservé par Forge.",
453
+ "schema.error.noFields": "Une entité doit avoir au moins un champ.",
454
+ "schema.error.enumValues": "Les valeurs doivent commencer par une lettre et ne contenir que des lettres, chiffres ou _.",
455
+ "schema.error.target": "Choisissez l’entité liée.",
456
+ "schema.error.expression": "Saisissez une expression.",
457
+ "schema.reviewTitle": "Vérifier les modifications",
458
+ "schema.previewing": "Vérification du nouveau schéma…",
459
+ "schema.diff": "Modifications de forge.config.ts",
460
+ "schema.noDiff": "Aucune modification du texte.",
461
+ "schema.issues": "Le nouveau schéma comporte des problèmes — corrigez-les avant d’appliquer :",
462
+ "schema.warnings": "Ces modifications touchent des données existantes :",
463
+ "schema.acknowledge": "Je comprends",
464
+ "schema.apply": "Appliquer",
465
+ "schema.appliedTitle": "Schéma mis à jour",
466
+ "schema.applied": "forge.config.ts a été mis à jour. L’application se régénère automatiquement avec `forge dev`.",
467
+ "schema.conflict": "forge.config.ts a changé depuis son chargement. Rechargez et refaites vos modifications.",
468
+ "schema.migration.title": "Créer une migration",
469
+ "schema.migration.hint": "Les modifications qui touchent la base de données nécessitent une migration.",
470
+ "schema.migration.name": "Nom de la migration",
471
+ "schema.migration.run": "Créer la migration",
472
+ "schema.migration.running": "Exécution de forge db migrate…",
473
+ "schema.migration.done": "Migration terminée.",
474
+ "schema.migration.failed": "Échec de la migration (code de sortie {code}).",
475
+ "schema.op.addEntity": "Ajouter l’entité {entity}",
476
+ "schema.op.removeEntity": "Supprimer l’entité {entity}",
477
+ "schema.op.renameEntity": "Renommer l’entité {from} en {to}",
478
+ "schema.op.addField": "Ajouter {entity}.{field}",
479
+ "schema.op.updateField": "Modifier {entity}.{field}",
480
+ "schema.op.removeField": "Supprimer {entity}.{field}",
481
+ "schema.op.moveField": "Déplacer {entity}.{field} en position {position}",
482
+ "schema.op.setEntityOption": "Définir {option} de {entity}",
483
+ "schema.warning.entityRemoved": "Supprimer {entity} supprime sa table et tous ses enregistrements.",
484
+ "schema.warning.entityRenamed": "{detail} devient {entity}. Sa table ({table}), son URL (/{path}) et ses données enregistrées restent telles quelles : la migration ne change rien. Les noms que l’API dérive de l’entité suivent le renommage : types d’événements webhook ({entity}.created…) et collections de ses enregistrements sur les entités liées. Pour déplacer aussi la table ou l’URL, modifiez table et path de {entity} dans forge.config.ts.",
485
+ "schema.warning.fieldRemoved": "Supprimer ou renommer {entity}.{field} efface ses données.",
486
+ "schema.warning.typeChange": "{entity}.{field} change de type ({detail}) ; des valeurs existantes peuvent être perdues.",
487
+ "schema.warning.requiredNoDefault": "{entity}.{field} est obligatoire sans valeur par défaut ; la migration échoue si des lignes existent déjà.",
488
+ "schema.warning.uniqueAdded": "{entity}.{field} devient unique ; la migration échoue en cas de doublons.",
489
+ "schema.warning.optionsDropped": "{entity}.{field} est réécrit ; ces options sont supprimées : {detail}.",
490
+ "schema.diagram.empty": "Aucune entité à dessiner.",
491
+ "schema.diagram.builtin": "intégrée",
492
+ "schema.type.string": "Texte",
493
+ "schema.type.text": "Texte long",
494
+ "schema.type.richtext": "Texte enrichi",
495
+ "schema.type.integer": "Entier",
496
+ "schema.type.decimal": "Décimal",
497
+ "schema.type.money": "Montant",
498
+ "schema.type.percentage": "Pourcentage",
499
+ "schema.type.boolean": "Oui/non",
500
+ "schema.type.date": "Date",
501
+ "schema.type.datetime": "Date et heure",
502
+ "schema.type.enum": "Liste de choix",
503
+ "schema.type.email": "E-mail",
504
+ "schema.type.url": "URL",
505
+ "schema.type.phone": "Téléphone",
506
+ "schema.type.color": "Couleur",
507
+ "schema.type.json": "JSON",
508
+ "schema.type.location": "Emplacement",
509
+ "schema.type.file": "Fichier",
510
+ "schema.type.image": "Image",
511
+ "schema.type.computed": "Calculé",
512
+ "schema.type.relation": "Relation",
513
+ "admin.teams.title": "Équipes",
514
+ "admin.teams.adminsOnly": "Seuls les administrateurs peuvent gérer les équipes.",
515
+ "admin.teams.description": "Regroupez les membres de l’organisation ; les enregistrements attribués à une équipe sont partagés avec ses membres.",
516
+ "admin.teams.create": "Nouvelle équipe",
517
+ "admin.teams.edit": "Modifier l’équipe",
518
+ "admin.teams.empty": "Aucune équipe",
519
+ "admin.teams.emptyHint": "Créez une équipe, ajoutez des membres, puis attribuez-lui des enregistrements.",
520
+ "admin.teams.memberCount_one": "{count} membre",
521
+ "admin.teams.memberCount_other": "{count} membres",
522
+ "admin.teams.members": "Membres",
523
+ "admin.teams.saved": "Équipe {name} enregistrée.",
524
+ "admin.teams.deleteTitle": "Supprimer {name} ?",
525
+ "admin.teams.deleteMessage": "Ses enregistrements sont conservés mais n’appartiennent plus à une équipe. Les membres perdent l’accès accordé par celle-ci.",
526
+ "admin.teams.deleted": "Équipe {name} supprimée.",
527
+ "admin.teams.name": "Nom",
528
+ "admin.teams.teamDescription": "Description",
529
+ "admin.teams.membersOf": "Membres de {name}",
530
+ "admin.teams.pickUser": "Ajouter un membre de l’organisation…",
531
+ "admin.teams.addMember": "Ajouter",
532
+ "admin.teams.noMembers": "Aucun membre",
533
+ "admin.teams.addedOn": "ajouté le {date}",
534
+ "admin.apiKeys.title": "Clés d’API",
535
+ "admin.apiKeys.adminsOnly": "Seuls les administrateurs peuvent gérer les clés d’API.",
536
+ "admin.apiKeys.description": "Clés pour les scripts et intégrations : envoyez Authorization: Bearer fk_… à {prefix}. Une clé agit avec son rôle, limitée à ses portées.",
537
+ "admin.apiKeys.create": "Créer une clé d’API",
538
+ "admin.apiKeys.empty": "Aucune clé d’API",
539
+ "admin.apiKeys.emptyHint": "Créez une clé pour appeler l’API depuis un autre système.",
540
+ "admin.apiKeys.name": "Nom",
541
+ "admin.apiKeys.nameHint": "Où la clé est utilisée, p. ex. « Synchronisation comptable ».",
542
+ "admin.apiKeys.scopes": "Portées",
543
+ "admin.apiKeys.lastUsed": "Dernière utilisation",
544
+ "admin.apiKeys.expires": "Expiration",
545
+ "admin.apiKeys.expiresHint": "Facultatif. La clé cesse de fonctionner après ce jour.",
546
+ "admin.apiKeys.roleHint": "Permissions de la clé (jamais plus que les vôtres).",
547
+ "admin.apiKeys.status": "Statut",
548
+ "admin.apiKeys.status.active": "Active",
549
+ "admin.apiKeys.status.revoked": "Révoquée",
550
+ "admin.apiKeys.status.expired": "Expirée",
551
+ "admin.apiKeys.createdBy": "par {name} le {date}",
552
+ "admin.apiKeys.never": "Jamais",
553
+ "admin.apiKeys.revoke": "Révoquer",
554
+ "admin.apiKeys.revokeTitle": "Révoquer {name} ?",
555
+ "admin.apiKeys.revokeMessage": "Les requêtes avec cette clé seront refusées immédiatement. Action irréversible.",
556
+ "admin.apiKeys.revoked": "{name} révoquée.",
557
+ "admin.apiKeys.createdTitle": "Votre nouvelle clé d’API",
558
+ "admin.apiKeys.shownOnce": "Copiez la clé maintenant : elle n’est affichée qu’une fois et ne peut pas être récupérée.",
559
+ "admin.apiKeys.key": "Clé d’API",
560
+ "admin.apiKeys.copy": "Copier",
561
+ "admin.apiKeys.resource": "Ressource",
562
+ "admin.apiKeys.read": "Lecture",
563
+ "admin.apiKeys.write": "Écriture",
564
+ "admin.apiKeys.allResources": "Toutes les ressources",
565
+ "admin.audit.apiKey": "Clé d’API « {name} »",
566
+ "activity.title": "Activité",
567
+ "activity.loadEarlier": "Afficher l’activité précédente",
568
+ "activity.empty": "Aucune activité pour l’instant",
569
+ "activity.emptyHint": "Les commentaires et mentions sur cet enregistrement apparaissent ici.",
570
+ "activity.created": "{actor} a créé cet enregistrement",
571
+ "activity.updated": "{actor} a apporté des modifications",
572
+ "activity.deleted": "{actor} a supprimé cet enregistrement",
573
+ "activity.restored": "{actor} a restauré cet enregistrement",
574
+ "activity.transition": "{actor} a exécuté « {transition} »",
575
+ "activity.transitionTo": "{actor} a exécuté « {transition} » : {from} → {to}",
576
+ "activity.action": "{actor} a exécuté {action}",
577
+ "activity.changed": "{field} : {from} → {to}",
578
+ "activity.set": "{field} défini sur {to}",
579
+ "activity.cleared": "{field} vidé (était {from})",
580
+ "activity.changedHidden": "{field} modifié",
581
+ "activity.someone": "Quelqu’un",
582
+ "activity.unknownRecord": "indisponible",
583
+ "activity.edited": "modifié",
584
+ "activity.commentLabel": "Ajouter un commentaire",
585
+ "activity.placeholder": "Écrire un commentaire… Tapez @ pour mentionner quelqu’un",
586
+ "activity.send": "Commenter",
587
+ "activity.sendHint": "Ctrl/⌘ + Entrée pour envoyer",
588
+ "activity.editComment": "Modifier le commentaire",
589
+ "activity.deleteComment": "Supprimer le commentaire",
590
+ "activity.deleteTitle": "Supprimer ce commentaire ?",
591
+ "activity.commentPosted": "Commentaire publié",
592
+ "activity.commentUpdated": "Commentaire modifié",
593
+ "activity.commentDeleted": "Commentaire supprimé",
594
+ "activity.mentionSuggestions": "Personnes à mentionner",
595
+ "activity.noMatches": "Aucune personne trouvée",
596
+ "dashboard.trend.vs.week": "par rapport à la semaine précédente",
597
+ "dashboard.trend.vs.month": "par rapport au mois précédent",
598
+ "dashboard.trend.vs.quarter": "par rapport au trimestre précédent",
599
+ "dashboard.trend.vs.year": "par rapport à l'année précédente",
600
+ "dashboard.trend.up": "En hausse de {change}",
601
+ "dashboard.trend.down": "En baisse de {change}",
602
+ "dashboard.trend.flat": "Stable",
603
+ "dashboard.trend.better": "une amélioration",
604
+ "dashboard.trend.worse": "un recul",
605
+ "dashboard.trend.values": "{current} sur cette période, {previous} sur la précédente.",
606
+ "dashboard.trend.noData": "Pas assez de données pour comparer",
607
+ "landingPage.skipToContent": "Aller au contenu",
608
+ "landingPage.navigation": "Navigation principale",
609
+ "landingPage.footerNavigation": "Pied de page",
610
+ "landingPage.signIn": "Se connecter",
611
+ "landingPage.getStarted": "Commencer",
612
+ "landingPage.createAccount": "Créer un compte",
613
+ "landingPage.subheadline": "{app} garde votre travail organisé, partagé et à jour.",
614
+ "landingPage.entityFeature": "Créez, retrouvez et organisez vos {items} au même endroit.",
615
+ "landingPage.featuresTitle": "Ce que vous pouvez faire avec {app}",
616
+ "landingPage.featuresSubtitle": "Connexion sécurisée, permissions, recherche et tableau de bord en direct, prêts dès le premier jour.",
617
+ "landingPage.ctaTitle": "Prêt à commencer ?",
618
+ "landingPage.ctaText": "Créez votre compte {app} en moins d'une minute.",
619
+ "landingPage.ctaSignIn": "Connectez-vous pour accéder à {app}.",
620
+ "landingPage.builtin.dashboard.title": "Tableau de bord en direct",
621
+ "landingPage.builtin.dashboard.description": "Les chiffres clés et leurs tendances, calculés selon les droits de chacun.",
622
+ "landingPage.builtin.access.title": "Rôles et permissions",
623
+ "landingPage.builtin.access.description": "Décidez qui voit et modifie quoi, jusqu'au champ près.",
624
+ "landingPage.builtin.security.title": "Connexion sécurisée",
625
+ "landingPage.builtin.security.description": "Comptes, sessions, réinitialisation des mots de passe et organisations, gérés pour vous.",
626
+ };
627
+ //# sourceMappingURL=fr.js.map