@adminiumjs/i18n 0.1.2 → 0.2.2-rc.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 (241) hide show
  1. package/dist/a11y-keys.d.ts +17 -0
  2. package/dist/a11y-keys.d.ts.map +1 -0
  3. package/dist/a11y-keys.js +479 -0
  4. package/dist/a11y-keys.js.map +1 -0
  5. package/dist/create-i18n.d.ts.map +1 -1
  6. package/dist/create-i18n.js +38 -4
  7. package/dist/create-i18n.js.map +1 -1
  8. package/dist/editing.d.ts +17 -0
  9. package/dist/editing.d.ts.map +1 -0
  10. package/dist/editing.js +17 -0
  11. package/dist/editing.js.map +1 -0
  12. package/dist/fallback.d.ts +24 -0
  13. package/dist/fallback.d.ts.map +1 -0
  14. package/dist/fallback.js +41 -0
  15. package/dist/fallback.js.map +1 -0
  16. package/dist/format/index.d.ts.map +1 -1
  17. package/dist/format/index.js +1 -0
  18. package/dist/format/index.js.map +1 -1
  19. package/dist/format-errors.d.ts +41 -0
  20. package/dist/format-errors.d.ts.map +1 -0
  21. package/dist/format-errors.js +64 -0
  22. package/dist/format-errors.js.map +1 -0
  23. package/dist/icu-format.d.ts +4 -0
  24. package/dist/icu-format.d.ts.map +1 -1
  25. package/dist/icu-format.js +44 -3
  26. package/dist/icu-format.js.map +1 -1
  27. package/dist/index.d.ts +10 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +15 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/keys.d.ts +33 -0
  32. package/dist/keys.d.ts.map +1 -0
  33. package/dist/keys.js +78 -0
  34. package/dist/keys.js.map +1 -0
  35. package/dist/locales.d.ts +106 -13
  36. package/dist/locales.d.ts.map +1 -1
  37. package/dist/locales.js +147 -17
  38. package/dist/locales.js.map +1 -1
  39. package/dist/overrides.d.ts +62 -0
  40. package/dist/overrides.d.ts.map +1 -0
  41. package/dist/overrides.js +113 -0
  42. package/dist/overrides.js.map +1 -0
  43. package/dist/react.d.ts +6 -0
  44. package/dist/react.d.ts.map +1 -1
  45. package/dist/react.js +18 -26
  46. package/dist/react.js.map +1 -1
  47. package/dist/resources/ar-eg/common.d.ts +786 -3
  48. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  49. package/dist/resources/ar-eg/common.js +813 -29
  50. package/dist/resources/ar-eg/common.js.map +1 -1
  51. package/dist/resources/ar-eg/errors.d.ts +1 -0
  52. package/dist/resources/ar-eg/errors.d.ts.map +1 -1
  53. package/dist/resources/ar-eg/errors.js +2 -0
  54. package/dist/resources/ar-eg/errors.js.map +1 -1
  55. package/dist/resources/ar-eg/generated.d.ts.map +1 -1
  56. package/dist/resources/ar-eg/generated.js +1 -0
  57. package/dist/resources/ar-eg/generated.js.map +1 -1
  58. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  59. package/dist/resources/ar-eg/studio.js +1 -0
  60. package/dist/resources/ar-eg/studio.js.map +1 -1
  61. package/dist/resources/ar-eg/ui.d.ts +586 -586
  62. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  63. package/dist/resources/ar-eg/ui.js +587 -586
  64. package/dist/resources/ar-eg/ui.js.map +1 -1
  65. package/dist/resources/cs-cz/common.d.ts +786 -3
  66. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  67. package/dist/resources/cs-cz/common.js +811 -27
  68. package/dist/resources/cs-cz/common.js.map +1 -1
  69. package/dist/resources/cs-cz/errors.d.ts +1 -0
  70. package/dist/resources/cs-cz/errors.d.ts.map +1 -1
  71. package/dist/resources/cs-cz/errors.js +2 -0
  72. package/dist/resources/cs-cz/errors.js.map +1 -1
  73. package/dist/resources/cs-cz/generated.d.ts.map +1 -1
  74. package/dist/resources/cs-cz/generated.js +1 -0
  75. package/dist/resources/cs-cz/generated.js.map +1 -1
  76. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  77. package/dist/resources/cs-cz/studio.js +1 -0
  78. package/dist/resources/cs-cz/studio.js.map +1 -1
  79. package/dist/resources/cs-cz/ui.d.ts +582 -582
  80. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  81. package/dist/resources/cs-cz/ui.js +583 -582
  82. package/dist/resources/cs-cz/ui.js.map +1 -1
  83. package/dist/resources/da-dk/common.d.ts +787 -4
  84. package/dist/resources/da-dk/common.d.ts.map +1 -1
  85. package/dist/resources/da-dk/common.js +814 -30
  86. package/dist/resources/da-dk/common.js.map +1 -1
  87. package/dist/resources/da-dk/errors.d.ts +1 -0
  88. package/dist/resources/da-dk/errors.d.ts.map +1 -1
  89. package/dist/resources/da-dk/errors.js +2 -0
  90. package/dist/resources/da-dk/errors.js.map +1 -1
  91. package/dist/resources/da-dk/generated.d.ts.map +1 -1
  92. package/dist/resources/da-dk/generated.js +1 -0
  93. package/dist/resources/da-dk/generated.js.map +1 -1
  94. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  95. package/dist/resources/da-dk/studio.js +1 -0
  96. package/dist/resources/da-dk/studio.js.map +1 -1
  97. package/dist/resources/da-dk/ui.d.ts +568 -568
  98. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  99. package/dist/resources/da-dk/ui.js +569 -568
  100. package/dist/resources/da-dk/ui.js.map +1 -1
  101. package/dist/resources/de-de/common.d.ts +790 -7
  102. package/dist/resources/de-de/common.d.ts.map +1 -1
  103. package/dist/resources/de-de/common.js +817 -33
  104. package/dist/resources/de-de/common.js.map +1 -1
  105. package/dist/resources/de-de/errors.d.ts +1 -0
  106. package/dist/resources/de-de/errors.d.ts.map +1 -1
  107. package/dist/resources/de-de/errors.js +2 -0
  108. package/dist/resources/de-de/errors.js.map +1 -1
  109. package/dist/resources/de-de/generated.d.ts.map +1 -1
  110. package/dist/resources/de-de/generated.js +1 -0
  111. package/dist/resources/de-de/generated.js.map +1 -1
  112. package/dist/resources/de-de/studio.d.ts.map +1 -1
  113. package/dist/resources/de-de/studio.js +1 -0
  114. package/dist/resources/de-de/studio.js.map +1 -1
  115. package/dist/resources/de-de/ui.d.ts +569 -569
  116. package/dist/resources/de-de/ui.d.ts.map +1 -1
  117. package/dist/resources/de-de/ui.js +570 -569
  118. package/dist/resources/de-de/ui.js.map +1 -1
  119. package/dist/resources/en-us/common.d.ts +786 -3
  120. package/dist/resources/en-us/common.d.ts.map +1 -1
  121. package/dist/resources/en-us/common.js +813 -29
  122. package/dist/resources/en-us/common.js.map +1 -1
  123. package/dist/resources/en-us/errors.d.ts +1 -0
  124. package/dist/resources/en-us/errors.d.ts.map +1 -1
  125. package/dist/resources/en-us/errors.js +2 -0
  126. package/dist/resources/en-us/errors.js.map +1 -1
  127. package/dist/resources/en-us/generated.d.ts.map +1 -1
  128. package/dist/resources/en-us/generated.js +1 -0
  129. package/dist/resources/en-us/generated.js.map +1 -1
  130. package/dist/resources/en-us/studio.d.ts.map +1 -1
  131. package/dist/resources/en-us/studio.js +1 -0
  132. package/dist/resources/en-us/studio.js.map +1 -1
  133. package/dist/resources/en-us/ui.d.ts.map +1 -1
  134. package/dist/resources/en-us/ui.js +1 -0
  135. package/dist/resources/en-us/ui.js.map +1 -1
  136. package/dist/resources/fr-fr/common.d.ts +788 -5
  137. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  138. package/dist/resources/fr-fr/common.js +815 -31
  139. package/dist/resources/fr-fr/common.js.map +1 -1
  140. package/dist/resources/fr-fr/errors.d.ts +1 -0
  141. package/dist/resources/fr-fr/errors.d.ts.map +1 -1
  142. package/dist/resources/fr-fr/errors.js +2 -0
  143. package/dist/resources/fr-fr/errors.js.map +1 -1
  144. package/dist/resources/fr-fr/generated.d.ts.map +1 -1
  145. package/dist/resources/fr-fr/generated.js +1 -0
  146. package/dist/resources/fr-fr/generated.js.map +1 -1
  147. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  148. package/dist/resources/fr-fr/studio.js +1 -0
  149. package/dist/resources/fr-fr/studio.js.map +1 -1
  150. package/dist/resources/fr-fr/ui.d.ts +559 -559
  151. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  152. package/dist/resources/fr-fr/ui.js +560 -559
  153. package/dist/resources/fr-fr/ui.js.map +1 -1
  154. package/dist/resources/index.d.ts.map +1 -1
  155. package/dist/resources/index.js +1 -0
  156. package/dist/resources/index.js.map +1 -1
  157. package/dist/resources/lazy.d.ts.map +1 -1
  158. package/dist/resources/lazy.js.map +1 -1
  159. package/dist/resources/zh-cn/common.d.ts +787 -4
  160. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  161. package/dist/resources/zh-cn/common.js +814 -30
  162. package/dist/resources/zh-cn/common.js.map +1 -1
  163. package/dist/resources/zh-cn/errors.d.ts +1 -0
  164. package/dist/resources/zh-cn/errors.d.ts.map +1 -1
  165. package/dist/resources/zh-cn/errors.js +2 -0
  166. package/dist/resources/zh-cn/errors.js.map +1 -1
  167. package/dist/resources/zh-cn/generated.d.ts.map +1 -1
  168. package/dist/resources/zh-cn/generated.js +1 -0
  169. package/dist/resources/zh-cn/generated.js.map +1 -1
  170. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  171. package/dist/resources/zh-cn/studio.js +1 -0
  172. package/dist/resources/zh-cn/studio.js.map +1 -1
  173. package/dist/resources/zh-cn/ui.d.ts +575 -575
  174. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  175. package/dist/resources/zh-cn/ui.js +576 -575
  176. package/dist/resources/zh-cn/ui.js.map +1 -1
  177. package/dist/resources/zh-tw/common.d.ts +786 -3
  178. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  179. package/dist/resources/zh-tw/common.js +813 -29
  180. package/dist/resources/zh-tw/common.js.map +1 -1
  181. package/dist/resources/zh-tw/errors.d.ts +1 -0
  182. package/dist/resources/zh-tw/errors.d.ts.map +1 -1
  183. package/dist/resources/zh-tw/errors.js +2 -0
  184. package/dist/resources/zh-tw/errors.js.map +1 -1
  185. package/dist/resources/zh-tw/generated.d.ts.map +1 -1
  186. package/dist/resources/zh-tw/generated.js +1 -0
  187. package/dist/resources/zh-tw/generated.js.map +1 -1
  188. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  189. package/dist/resources/zh-tw/studio.js +1 -0
  190. package/dist/resources/zh-tw/studio.js.map +1 -1
  191. package/dist/resources/zh-tw/ui.d.ts +575 -575
  192. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  193. package/dist/resources/zh-tw/ui.js +576 -575
  194. package/dist/resources/zh-tw/ui.js.map +1 -1
  195. package/dist/review-status.d.ts +55 -0
  196. package/dist/review-status.d.ts.map +1 -0
  197. package/dist/review-status.js +60 -0
  198. package/dist/review-status.js.map +1 -0
  199. package/dist/revision.d.ts +35 -0
  200. package/dist/revision.d.ts.map +1 -0
  201. package/dist/revision.js +56 -0
  202. package/dist/revision.js.map +1 -0
  203. package/dist/server.d.ts +36 -0
  204. package/dist/server.d.ts.map +1 -0
  205. package/dist/server.js +36 -0
  206. package/dist/server.js.map +1 -0
  207. package/dist/validate-message.d.ts +57 -0
  208. package/dist/validate-message.d.ts.map +1 -0
  209. package/dist/validate-message.js +179 -0
  210. package/dist/validate-message.js.map +1 -0
  211. package/locales/ar-EG/.meta.json +13246 -0
  212. package/locales/ar-EG/common.json +812 -29
  213. package/locales/ar-EG/errors.json +1 -0
  214. package/locales/ar-EG/ui.json +586 -586
  215. package/locales/cs-CZ/.meta.json +13246 -0
  216. package/locales/cs-CZ/common.json +810 -27
  217. package/locales/cs-CZ/errors.json +1 -0
  218. package/locales/cs-CZ/ui.json +582 -582
  219. package/locales/da-DK/.meta.json +13246 -0
  220. package/locales/da-DK/common.json +813 -30
  221. package/locales/da-DK/errors.json +1 -0
  222. package/locales/da-DK/ui.json +568 -568
  223. package/locales/de-DE/.meta.json +13246 -0
  224. package/locales/de-DE/common.json +816 -33
  225. package/locales/de-DE/errors.json +1 -0
  226. package/locales/de-DE/ui.json +569 -569
  227. package/locales/en-US/common.json +812 -29
  228. package/locales/en-US/errors.json +1 -0
  229. package/locales/fr-FR/.meta.json +13246 -0
  230. package/locales/fr-FR/common.json +814 -31
  231. package/locales/fr-FR/errors.json +1 -0
  232. package/locales/fr-FR/ui.json +559 -559
  233. package/locales/zh-CN/.meta.json +13246 -0
  234. package/locales/zh-CN/common.json +813 -30
  235. package/locales/zh-CN/errors.json +1 -0
  236. package/locales/zh-CN/ui.json +575 -575
  237. package/locales/zh-TW/.meta.json +13246 -0
  238. package/locales/zh-TW/common.json +812 -29
  239. package/locales/zh-TW/errors.json +1 -0
  240. package/locales/zh-TW/ui.json +575 -575
  241. package/package.json +11 -3
@@ -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);
@@ -50,7 +51,10 @@ export default {
50
51
  "done": "Retour à la connexion",
51
52
  "rateLimited": "Trop de demandes — réessayez plus tard.",
52
53
  "failed": "Une erreur s’est produite. Réessayez.",
53
- "smtpUnconfigured": "Cet Adminium n'a pas de serveur e-mail configuré : il ne peut pas envoyer de lien de réinitialisation. Demandez à un administrateur de réinitialiser votre mot de passe."
54
+ "smtpUnconfigured": "Cet Adminium n'a pas de serveur e-mail configuré : il ne peut pas envoyer de lien de réinitialisation. Demandez à un administrateur de réinitialiser votre mot de passe.",
55
+ "subtitle": "Saisissez votre adresse e-mail et nous vous enverrons un lien de réinitialisation.",
56
+ "sentBody": "Nous avons envoyé un lien de réinitialisation à {email}. Il expire dans 15 minutes.",
57
+ "resendHint": "Vous ne l’avez pas reçu ?"
54
58
  },
55
59
  "reset": {
56
60
  "title": "Définir un nouveau mot de passe",
@@ -66,7 +70,8 @@ export default {
66
70
  "strong": "Fort",
67
71
  "tooShort": "Utilisez au moins 8 caractères.",
68
72
  "submit": "Réinitialiser le mot de passe",
69
- "failed": "Échec de la réinitialisation. Réessayez."
73
+ "failed": "Échec de la réinitialisation. Réessayez.",
74
+ "mismatch": "Les mots de passe ne correspondent pas."
70
75
  },
71
76
  "otp": {
72
77
  "title": "Authentification à deux facteurs",
@@ -101,7 +106,12 @@ export default {
101
106
  "planning": "Planification",
102
107
  "people": "Personnes",
103
108
  "account": "Compte"
104
- }
109
+ },
110
+ "back": "Retour",
111
+ "team": "Équipe",
112
+ "roles": "Rôles et permissions",
113
+ "audit": "Journal d’audit",
114
+ "security": "Mot de passe et sessions"
105
115
  },
106
116
  "topbar": {
107
117
  "search": "Rechercher…",
@@ -113,6 +123,7 @@ export default {
113
123
  "userMenu": "Menu du compte",
114
124
  "profile": "Profil",
115
125
  "preferences": "Préférences",
126
+ "studio": "Studio",
116
127
  "signOut": "Se déconnecter"
117
128
  },
118
129
  "palette": {
@@ -123,11 +134,15 @@ export default {
123
134
  "askAi": "Demander à l’IA",
124
135
  "shortcuts": "Raccourcis clavier",
125
136
  "signOut": "Se déconnecter",
126
- "themeDark": "Passer au thème sombre",
127
- "themeLight": "Passer au thème clair",
137
+ "themeDark": "Mode sombre",
138
+ "themeLight": "Mode clair",
128
139
  "footerNavigate": "naviguer",
129
140
  "footerOpen": "sélectionner",
130
- "footerClose": "fermer"
141
+ "footerClose": "fermer",
142
+ "recent": "Récents",
143
+ "searching": "Recherche d’enregistrements…",
144
+ "records": "Enregistrements",
145
+ "empty": "Aucun résultat pour « {query} »"
131
146
  },
132
147
  "shortcuts": {
133
148
  "title": "Raccourcis clavier",
@@ -138,6 +153,7 @@ export default {
138
153
  "panel": "Afficher le panneau des raccourcis",
139
154
  "search": "Activer la recherche",
140
155
  "sidebar": "Afficher/masquer la barre latérale",
156
+ "studio": "Aller au Studio",
141
157
  "theme": "Basculer clair / sombre",
142
158
  "then": "puis",
143
159
  "footerPre": "Appuyez sur",
@@ -145,7 +161,86 @@ export default {
145
161
  },
146
162
  "states": {
147
163
  "checked": "vérifié il y a 8 s",
148
- "diagnostics": "Diagnostics"
164
+ "diagnostics": "Diagnostics",
165
+ "reference": {
166
+ "label": "Référence",
167
+ "copy": "Copier la référence",
168
+ "copied": "Copié",
169
+ "hint": "Indiquez-la lorsque vous signalez le problème — le journal de votre serveur contient le même identifiant."
170
+ },
171
+ "notFound": {
172
+ "title": "Page introuvable",
173
+ "body": "Nous n’avons pas trouvé cette page. Elle a peut-être été déplacée, ou le lien est rompu.",
174
+ "primary": "Retour au tableau de bord",
175
+ "secondary": "Contacter le support"
176
+ },
177
+ "forbidden": {
178
+ "title": "Vous n’avez pas accès",
179
+ "body": "Ce tableau de bord est restreint. Demandez à un administrateur de l’espace de travail de vous donner accès.",
180
+ "primary": "Demander l’accès",
181
+ "secondary": "Retour"
182
+ },
183
+ "error": {
184
+ "title": "Une erreur est survenue",
185
+ "body": "Adminium a rencontré une erreur inattendue en traitant cette requête. Les détails se trouvent dans le journal du serveur.",
186
+ "primary": "Réessayer"
187
+ },
188
+ "dbUnreachable": {
189
+ "title": "Base de données injoignable",
190
+ "body": "Impossible de joindre prod-db. Vos tableaux de bord reprendront une fois la connexion rétablie.",
191
+ "primary": "Réessayer la connexion",
192
+ "secondary": "Modifier la connexion",
193
+ "diag": {
194
+ "status": "connexion expirée (10 s)",
195
+ "hint": "autorisez 52.9.14.2, puis réessayez"
196
+ }
197
+ },
198
+ "maintenance": {
199
+ "title": "Maintenance planifiée",
200
+ "body": "Adminium est en maintenance et sera de retour sous peu. Merci de votre patience.",
201
+ "primary": "Voir le statut"
202
+ },
203
+ "rateLimited": {
204
+ "title": "Limite de requêtes atteinte",
205
+ "body": "Trop de requêtes en peu de temps. Patientez quelques minutes, puis réessayez.",
206
+ "primary": "Réessayer",
207
+ "secondary": "Retour"
208
+ },
209
+ "offline": {
210
+ "title": "Vous êtes hors ligne",
211
+ "body": "Vérifiez votre connexion Internet. Adminium se reconnectera automatiquement dès votre retour en ligne.",
212
+ "primary": "Réessayer maintenant",
213
+ "banner": "Hors ligne — tentative de reconnexion…"
214
+ },
215
+ "expiredLink": {
216
+ "title": "Ce lien a expiré",
217
+ "body": "Les liens de connexion magiques expirent au bout de 10 minutes. Demandez-en un nouveau pour continuer.",
218
+ "primary": "Envoyer un nouveau lien",
219
+ "secondary": "Retour à la connexion"
220
+ },
221
+ "expiredSession": {
222
+ "title": "Votre session a expiré",
223
+ "body": "Pour votre sécurité, vous avez été déconnecté après une période d’inactivité. Connectez-vous pour reprendre où vous en étiez.",
224
+ "primary": "Se reconnecter"
225
+ },
226
+ "emptyNoSources": {
227
+ "title": "Aucune source de données",
228
+ "body": "Connectez une base de données PostgreSQL et Adminium générera votre premier tableau de bord d’administration.",
229
+ "primary": "Connecter une base de données",
230
+ "secondary": "Importer des données d’exemple"
231
+ },
232
+ "readOnly": {
233
+ "title": "Mode lecture seule",
234
+ "body": "Vous disposez d’un accès Viewer à cet espace de travail. Vous pouvez explorer les tableaux de bord, mais l’édition et les actions destructrices sont désactivées.",
235
+ "primary": "Demander l’accès en écriture",
236
+ "secondary": "J’ai compris"
237
+ },
238
+ "suspended": {
239
+ "title": "Cet espace de travail est suspendu",
240
+ "body": "Cet espace de travail a été suspendu par un administrateur. Vos données sont conservées — contactez le propriétaire de l’espace de travail pour rétablir l’accès.",
241
+ "primary": "Contacter le propriétaire",
242
+ "secondary": "Retour"
243
+ }
149
244
  },
150
245
  "notFound": {
151
246
  "title": "Cette page a disparu",
@@ -154,7 +249,8 @@ export default {
154
249
  "matches": "Pages correspondantes",
155
250
  "popular": "Destinations populaires",
156
251
  "goBack": "Retour",
157
- "backToDashboard": "Retour au tableau de bord"
252
+ "backToDashboard": "Retour au tableau de bord",
253
+ "noMatches": "Aucune page ne correspond à « {query} »"
158
254
  },
159
255
  "page": {
160
256
  "invalid": {
@@ -205,7 +301,8 @@ export default {
205
301
  },
206
302
  "locale": {
207
303
  "label": "Langue",
208
- "directionNote": "Sens du texte : de droite à gauche (défini automatiquement par la langue)"
304
+ "directionNote": "Sens du texte : de droite à gauche (défini automatiquement par la langue)",
305
+ "communityDraft": "Cette traduction est une version communautaire : elle n’a pas encore été relue par un locuteur natif."
209
306
  }
210
307
  },
211
308
  "account": {
@@ -275,8 +372,8 @@ export default {
275
372
  "drizzle": "Drizzle ORM",
276
373
  "typeorm": "Entités TypeORM",
277
374
  "sequelize": "Modèles Sequelize",
278
- "rails": "Rails schema.rb",
279
- "django": "Django models.py",
375
+ "rails": "schema.rb Rails",
376
+ "django": "models.py Django",
280
377
  "json": "JSON Adminium"
281
378
  },
282
379
  "sqlite": {
@@ -461,6 +558,23 @@ export default {
461
558
  "label": "Nom de l’application",
462
559
  "helper": "Affiché dans la barre latérale, le titre du navigateur et les e-mails.",
463
560
  "error": "Saisissez un nom de 60 caractères maximum."
561
+ },
562
+ "logo": {
563
+ "label": "Logo",
564
+ "drop": "Déposez une image ici",
565
+ "helper": "PNG, JPEG, WebP, GIF ou SVG, jusqu’à 1 Mo. Remplace la marque intégrée partout.",
566
+ "upload": "Importer un logo",
567
+ "replace": "Remplacer le logo",
568
+ "remove": "Supprimer",
569
+ "uploaded": "Logo mis à jour",
570
+ "removed": "Logo supprimé",
571
+ "tooLarge": "Cette image dépasse 1 Mo.",
572
+ "badType": "Choisissez une image PNG, JPEG, WebP, GIF ou SVG.",
573
+ "undo": "Annuler"
574
+ },
575
+ "showVersion": {
576
+ "label": "Version dans la barre latérale",
577
+ "helper": "Le numéro de build à côté du logo. Désactivé, il masque votre version."
464
578
  }
465
579
  },
466
580
  "security": {
@@ -490,6 +604,8 @@ export default {
490
604
  "close": "Fermer",
491
605
  "on": "Activé",
492
606
  "off": "Désactivé",
607
+ "shown": "Affiché",
608
+ "hidden": "Masqué",
493
609
  "change": "{before} → {after}"
494
610
  },
495
611
  "defaultsCard": {
@@ -508,6 +624,11 @@ export default {
508
624
  "heading": "Enrichissement par IA",
509
625
  "body": "Configurez un fournisseur IA (ou l’aller-retour copier-coller) pour enrichir libellés, groupes et relations.",
510
626
  "cta": "Ouvrir les réglages IA"
627
+ },
628
+ "pagesCard": {
629
+ "heading": "Pages",
630
+ "body": "Ajoutez, modifiez et supprimez des pages, changez leur contenu et réordonnez la barre latérale.",
631
+ "cta": "Gérer les pages"
511
632
  }
512
633
  },
513
634
  "settingsAi": {
@@ -873,7 +994,20 @@ export default {
873
994
  "testFailed": "Échec de la connexion.",
874
995
  "v1Note": {
875
996
  "title": "À propos de cette installation",
876
- "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)."
997
+ "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)."
998
+ },
999
+ "move": {
1000
+ "title": "Déplacement des tables d’Adminium",
1001
+ "copying": "Déplacement des tables d’Adminium…",
1002
+ "restarting": "Redémarrage…",
1003
+ "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.",
1004
+ "restartingBody": "La copie est terminée. Adminium redémarre sur la nouvelle base — cette page continuera d’elle-même dans quelques secondes.",
1005
+ "failed": "Impossible de déplacer les tables d’Adminium — réessayez.",
1006
+ "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."
1007
+ },
1008
+ "willMove": {
1009
+ "title": "Cette étape va déplacer les tables d’Adminium",
1010
+ "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é."
877
1011
  }
878
1012
  },
879
1013
  "intent": {
@@ -1027,7 +1161,8 @@ export default {
1027
1161
  "unique": "UNIQUE",
1028
1162
  "pii": "PII",
1029
1163
  "masked": "Masquée"
1030
- }
1164
+ },
1165
+ "unavailableTitle": "Éditeur de remappage du schéma indisponible"
1031
1166
  }
1032
1167
  },
1033
1168
  "onboarding": {
@@ -1147,7 +1282,9 @@ export default {
1147
1282
  "duplicate": "Dupliquer {name}",
1148
1283
  "remove": "Supprimer {name}",
1149
1284
  "removed": "{name} supprimé.",
1150
- "duplicated": "{name} dupliqué."
1285
+ "duplicated": "{name} dupliqué.",
1286
+ "unboundHint": "Ce widget affiche des données d’exemple ici et sur la page en ligne. Ouvrez « Configurer » pour le connecter à une table.",
1287
+ "unbound": "Données d’exemple"
1151
1288
  },
1152
1289
  "families": {
1153
1290
  "kpi": "Indicateurs",
@@ -1170,7 +1307,149 @@ export default {
1170
1307
  "saveVersionTitle": "Enregistrer une version",
1171
1308
  "saveVersionBody": "Capture l’état actuel du document. Restaurez-le à tout moment depuis Versions.",
1172
1309
  "versionName": "Nom de la version",
1173
- "versionNamePlaceholder": "p. ex. Avant le changement des tarifs T3"
1310
+ "versionNamePlaceholder": "p. ex. Avant le changement des tarifs T3",
1311
+ "discard": "Abandonner les modifications",
1312
+ "discardTitle": "Abandonner vos modifications ?",
1313
+ "discardBody": "Le tableau de bord revient à son état à l’ouverture de l’éditeur. Vos données ne sont pas affectées.",
1314
+ "discardConfirm": "Abandonner les modifications",
1315
+ "keepEditing": "Continuer l’édition",
1316
+ "discarded": "Modifications abandonnées.",
1317
+ "binding": {
1318
+ "addFilter": "Ajouter un filtre",
1319
+ "brokenBody": "Elle ne correspond plus à une requête que cette version sait comprendre : le widget affiche donc une erreur sur la page en ligne.",
1320
+ "brokenTitle": "La requête de ce widget est cassée",
1321
+ "bucketColumn": "Colonne de date",
1322
+ "bucketRequired": "Choisissez la colonne qui porte la date.",
1323
+ "bucketUnit": "Regrouper le temps par",
1324
+ "columnNone": "Aucune",
1325
+ "columnPlaceholder": "Choisissez une colonne…",
1326
+ "connect": "Connecter aux données",
1327
+ "edit": "Modifier la requête",
1328
+ "event": {
1329
+ "category": "Colonne de catégorie (facultatif)",
1330
+ "date": "Colonne de date de début",
1331
+ "end": "Colonne de date de fin (facultatif)",
1332
+ "title": "Colonne de titre"
1333
+ },
1334
+ "filterColumnRequired": "Choisissez une colonne.",
1335
+ "filterColumn": "Colonne",
1336
+ "filterListHelper": "Séparez les valeurs par des virgules.",
1337
+ "filterOp": "Condition",
1338
+ "filterValue": "Valeur",
1339
+ "fn": {
1340
+ "avg": "Moyenne",
1341
+ "countDistinct": "Nombre de valeurs distinctes",
1342
+ "count": "Nombre de lignes",
1343
+ "max": "Maximum",
1344
+ "min": "Minimum",
1345
+ "sum": "Somme"
1346
+ },
1347
+ "groupByColumns": "Colonnes",
1348
+ "groupByRequired": "Cette vue nécessite une colonne de ventilation.",
1349
+ "groupByRows": "Lignes",
1350
+ "groupBy": "Regrouper par",
1351
+ "incompleteBody": "Renseignez les champs signalés — une requête écrite à moitié échouerait sur le tableau de bord en ligne.",
1352
+ "incompleteTitle": "Cette requête n’est pas terminée",
1353
+ "limit": "Nombre maximal de lignes à récupérer",
1354
+ "loadingSchema": "Chargement des tables…",
1355
+ "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.",
1356
+ "lossyTitle": "Cette requête est plus avancée que l’éditeur",
1357
+ "measureColumnRequired": "Ce calcul nécessite une colonne.",
1358
+ "measureColumn": "Sur la colonne",
1359
+ "measureFn": "Calculer",
1360
+ "noConnectionBody": "Les widgets ne peuvent être liés aux données que sur une page rattachée à une connexion.",
1361
+ "noConnectionTitle": "Cette page n’a aucune connexion à une base de données",
1362
+ "noDateColumns": "Cette table n’a aucune colonne de type date ou horodatage.",
1363
+ "noFilters": "Aucun filtre — toutes les lignes de la table sont comptées.",
1364
+ "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.",
1365
+ "noSnapshotTitle": "Aucun instantané de schéma pour cette connexion",
1366
+ "op": {
1367
+ "between": "est compris entre",
1368
+ "ilike": "contient (casse ignorée)",
1369
+ "in": "fait partie de",
1370
+ "isNull": "est vide",
1371
+ "like": "contient",
1372
+ "notNull": "n’est pas vide"
1373
+ },
1374
+ "orderAsc": "Plus ancien / plus petit d’abord",
1375
+ "orderBy": "Trier par",
1376
+ "orderDesc": "Plus récent / plus grand d’abord",
1377
+ "orderDir": "Sens",
1378
+ "orderNone": "Ordre de la base de données",
1379
+ "pickTableFirst": "Choisissez une table pour sélectionner ses colonnes.",
1380
+ "removeFilter": "Retirer le filtre",
1381
+ "remove": "Supprimer la source de données",
1382
+ "save": "Utiliser cette requête",
1383
+ "sectionBreakdown": "Ventilation",
1384
+ "sectionColumns": "Colonnes",
1385
+ "sectionFilters": "Filtres",
1386
+ "sectionMeasure": "Mesure",
1387
+ "sectionRows": "Lignes",
1388
+ "sectionSource": "Source",
1389
+ "sectionTime": "Axe temporel",
1390
+ "sectionWindow": "Période",
1391
+ "selectColumns": "Colonnes à afficher",
1392
+ "selectRequired": "Choisissez au moins une colonne à afficher.",
1393
+ "shape": {
1394
+ "calendarEvents": "Des événements datés",
1395
+ "categorical": "Une valeur par catégorie",
1396
+ "distribution": "La répartition d’une colonne",
1397
+ "matrix": "Une grille de lignes par colonnes",
1398
+ "metricDelta": "Un nombre, comparé à la période précédente",
1399
+ "multiTimeseries": "Une courbe dans le temps par catégorie",
1400
+ "recordList": "Une liste de lignes",
1401
+ "record": "Une seule ligne",
1402
+ "singleMetric": "Un seul nombre",
1403
+ "stream": "Un flux en direct des lignes récentes",
1404
+ "timeseries": "Une valeur dans le temps",
1405
+ "tree": "Une valeur par catégorie, répartie sur deux niveaux",
1406
+ "geoPoints": "Une valeur par lieu ou région",
1407
+ "flows": "Le volume qui passe d’une catégorie à une autre",
1408
+ "ohlc": "Ouverture, plus haut, plus bas et clôture par période",
1409
+ "booleanMap": "Un indicateur activé/désactivé par clé"
1410
+ },
1411
+ "shapeHelper": "Modifier ce choix change les réglages de requête applicables.",
1412
+ "shapeLabel": "Ce que ce widget affiche",
1413
+ "summaryColumns": "{count, plural, one {# colonne} other {# colonnes}}",
1414
+ "summaryFilters": "{count, plural, one {# filtre} other {# filtres}}",
1415
+ "tableEmpty": "Aucune table correspondante.",
1416
+ "tablePlaceholder": "Rechercher des tables…",
1417
+ "tableRequired": "Choisissez une table à interroger.",
1418
+ "table": "Table ou vue",
1419
+ "title": "Source de données",
1420
+ "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.",
1421
+ "unbindableTitle": "Ce widget ne peut pas encore interroger de données",
1422
+ "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.",
1423
+ "unboundTitle": "Non connecté à vos données",
1424
+ "unit": {
1425
+ "day": "Quotidien",
1426
+ "hour": "Horaire",
1427
+ "month": "Mensuel",
1428
+ "quarter": "Trimestriel",
1429
+ "week": "Hebdomadaire",
1430
+ "year": "Annuel"
1431
+ },
1432
+ "valueColumnRequired": "Choisissez la colonne à mesurer.",
1433
+ "valueColumn": "Colonne de valeur",
1434
+ "windowColumn": "Colonne de date",
1435
+ "windowLast": "Sur les",
1436
+ "windowNone": "Depuis le début",
1437
+ "windowRequired": "La comparaison avec la période précédente nécessite une colonne de date.",
1438
+ "windowUnit": {
1439
+ "day": "derniers jours",
1440
+ "hour": "dernières heures",
1441
+ "month": "derniers mois",
1442
+ "quarter": "derniers trimestres",
1443
+ "week": "dernières semaines",
1444
+ "year": "dernières années"
1445
+ },
1446
+ "windowUnitLabel": "Unité",
1447
+ "role": {
1448
+ "flagKey": "Colonne de clé",
1449
+ "flagValue": "Colonne activé/désactivé"
1450
+ },
1451
+ "roleColumnsRequired": "Renseignez chaque colonne obligatoire et ne laissez aucun vide avant une colonne renseignée, car les colonnes sont lues dans l’ordre."
1452
+ }
1174
1453
  },
1175
1454
  "setup": {
1176
1455
  "title": "Configurer Adminium",
@@ -1523,7 +1802,8 @@ export default {
1523
1802
  "helpAbout": "À propos d’Adminium"
1524
1803
  },
1525
1804
  "settings": {
1526
- "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."
1805
+ "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.",
1806
+ "title": "Paramètres du bureau"
1527
1807
  },
1528
1808
  "security": {
1529
1809
  "heading": "Connexion"
@@ -1570,7 +1850,8 @@ export default {
1570
1850
  "mismatchBody": "Le partage est désactivé, mais le serveur n'a pas encore libéré le réseau. Redémarrez Adminium pour le fermer.",
1571
1851
  "transportTitle": "Le trafic sur votre réseau local n'est pas chiffré.",
1572
1852
  "transportBody": "Ne partagez que sur des réseaux de confiance. Pour un accès à distance, utilisez Adminium self-host derrière HTTPS.",
1573
- "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."
1853
+ "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.",
1854
+ "manageTeam": "Gérer les utilisateurs et les rôles"
1574
1855
  },
1575
1856
  "setup": {
1576
1857
  "title": "Bienvenue dans Adminium",
@@ -1779,37 +2060,48 @@ export default {
1779
2060
  },
1780
2061
  "templates": {
1781
2062
  "crud": {
1782
- "title": "Enregistrements"
2063
+ "title": "Enregistrements",
2064
+ "description": "Un tableau de lignes consultable, avec ajout, édition et suppression."
1783
2065
  },
1784
2066
  "dashboard": {
1785
- "title": "Tableau de bord"
2067
+ "title": "Tableau de bord",
2068
+ "description": "Une grille de graphiques et de chiffres que vous disposez vous-même."
1786
2069
  },
1787
2070
  "board": {
1788
- "title": "Tableau"
2071
+ "title": "Tableau",
2072
+ "description": "Des cartes en colonnes par statut, déplaçables entre elles."
1789
2073
  },
1790
2074
  "calendar": {
1791
- "title": "Calendrier"
2075
+ "title": "Calendrier",
2076
+ "description": "Des enregistrements placés par date sur une grille mensuelle ou hebdomadaire."
1792
2077
  },
1793
2078
  "scheduler": {
1794
- "title": "Planning"
2079
+ "title": "Planning",
2080
+ "description": "Qui fait quoi, sous forme de planning par personne."
1795
2081
  },
1796
2082
  "logViewer": {
1797
- "title": "Journaux"
2083
+ "title": "Journaux",
2084
+ "description": "Des lignes d’événements denses et filtrables, avec une trace détaillée."
1798
2085
  },
1799
2086
  "files": {
1800
- "title": "Fichiers"
2087
+ "title": "Fichiers",
2088
+ "description": "Fichiers et dossiers sous forme de bibliothèque navigable."
1801
2089
  },
1802
2090
  "chat": {
1803
- "title": "Discussion"
2091
+ "title": "Discussion",
2092
+ "description": "Des conversations en fils avec l’historique des messages."
1804
2093
  },
1805
2094
  "builder": {
1806
- "title": "Éditeur"
2095
+ "title": "Éditeur",
2096
+ "description": "Un canevas glisser-déposer pour documents et modèles."
1807
2097
  },
1808
2098
  "wizard": {
1809
- "title": "Assistant"
2099
+ "title": "Assistant",
2100
+ "description": "Une séquence d’étapes guidée pour accomplir une tâche."
1810
2101
  },
1811
2102
  "settings": {
1812
- "title": "Paramètres"
2103
+ "title": "Paramètres",
2104
+ "description": "Des lignes de préférences groupées, avec interrupteurs et champs."
1813
2105
  },
1814
2106
  "directory": {
1815
2107
  "title": "Annuaire",
@@ -1823,7 +2115,8 @@ export default {
1823
2115
  "noMatchesBody": "Essayez une autre recherche ou retirez un filtre.",
1824
2116
  "errorTitle": "Cet annuaire n’a pas pu être chargé",
1825
2117
  "loading": "Chargement des personnes",
1826
- "memberCount": "{count} personnes"
2118
+ "memberCount": "{count} personnes",
2119
+ "description": "Les personnes en cartes, avec un organigramme des rattachements."
1827
2120
  },
1828
2121
  "masterDetail": {
1829
2122
  "title": "Liste et détail",
@@ -1835,7 +2128,8 @@ export default {
1835
2128
  "noMatchesBody": "Essayez de retirer un filtre.",
1836
2129
  "errorTitle": "Cette liste n’a pas pu être chargée",
1837
2130
  "loading": "Chargement des enregistrements",
1838
- "selectPrompt": "Sélectionnez un enregistrement"
2131
+ "selectPrompt": "Sélectionnez un enregistrement",
2132
+ "description": "Une liste à gauche, l’enregistrement sélectionné à côté."
1839
2133
  },
1840
2134
  "queueInbox": {
1841
2135
  "title": "File d’attente",
@@ -1860,7 +2154,8 @@ export default {
1860
2154
  "errorTitle": "Cette file d’attente n’a pas pu être chargée",
1861
2155
  "loading": "Chargement de la file d’attente",
1862
2156
  "selectPrompt": "Sélectionnez une demande",
1863
- "daysUnit": "{count} jours"
2157
+ "daysUnit": "{count} jours",
2158
+ "description": "Une file de travail avec approuver et rejeter sur chaque élément."
1864
2159
  }
1865
2160
  },
1866
2161
  "dataio": {
@@ -1962,6 +2257,495 @@ export default {
1962
2257
  "reportFailed": "Échec du rapport planifié",
1963
2258
  "backupCompleted": "Sauvegarde terminée"
1964
2259
  }
2260
+ },
2261
+ "theme": {
2262
+ "toLight": "Mode clair",
2263
+ "toDark": "Mode sombre"
2264
+ },
2265
+ "studioPages": {
2266
+ "title": "Pages",
2267
+ "subtitle": "Ajoutez, modifiez et organisez les pages de votre application, ainsi que leur ordre dans la barre latérale.",
2268
+ "createButton": "Nouvelle page",
2269
+ "loadFailed": {
2270
+ "title": "Impossible de charger les pages",
2271
+ "body": "La gestion des pages requiert l’autorisation « Gérer les pages ». Demandez à un administrateur de l’attribuer à l’un de vos rôles."
2272
+ },
2273
+ "tab": {
2274
+ "pages": "Toutes les pages",
2275
+ "sidebar": "Ordre de la barre latérale"
2276
+ },
2277
+ "list": {
2278
+ "title": "Pages",
2279
+ "count": "{count, plural, one {# page} other {# pages}}"
2280
+ },
2281
+ "empty": {
2282
+ "title": "Aucune page pour l’instant",
2283
+ "body": "Connectez une base de données pour générer des pages automatiquement, ou créez-en une à la main."
2284
+ },
2285
+ "status": {
2286
+ "live": "Active",
2287
+ "hidden": "Masquée"
2288
+ },
2289
+ "origin": {
2290
+ "generated": "Générée",
2291
+ "manifest": "Extension",
2292
+ "llm": "Assistant",
2293
+ "system": "Système",
2294
+ "user": "Personnalisée"
2295
+ },
2296
+ "row": {
2297
+ "menu": "Actions pour {title}"
2298
+ },
2299
+ "action": {
2300
+ "edit": "Modifier la page",
2301
+ "duplicate": "Dupliquer",
2302
+ "hide": "Masquer dans la barre latérale",
2303
+ "show": "Afficher dans la barre latérale",
2304
+ "delete": "Supprimer la page"
2305
+ },
2306
+ "create": {
2307
+ "title": "Nouvelle page",
2308
+ "failed": "Impossible de créer la page",
2309
+ "submit": "Créer la page",
2310
+ "subtitle": "Choisissez ce que cette page affiche et son apparence. L’aperçu suit vos choix."
2311
+ },
2312
+ "duplicate": {
2313
+ "title": "Dupliquer la page",
2314
+ "failed": "Impossible de dupliquer la page",
2315
+ "submit": "Dupliquer"
2316
+ },
2317
+ "delete": {
2318
+ "title": "Supprimer cette page ?",
2319
+ "body": "Cette action est irréversible. Les vues enregistrées et les dispositions personnelles de cette page sont supprimées pour tout le monde.",
2320
+ "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.",
2321
+ "prompt": "Saisissez {slug} pour confirmer",
2322
+ "confirm": "Supprimer la page"
2323
+ },
2324
+ "field": {
2325
+ "title": "Titre",
2326
+ "titleHint": "Affiché dans la barre latérale et dans l’en-tête de la page.",
2327
+ "slug": "Adresse de la page",
2328
+ "slugHint": "Minuscules, chiffres et tirets. Seulement la dernière partie — le reste de l’adresse est ajouté pour vous.",
2329
+ "slugTaken": "Une autre page utilise déjà cette adresse.",
2330
+ "slugWarning": "Modifier l’adresse casse les liens et les favoris existants vers cette page.",
2331
+ "template": "Modèle",
2332
+ "templateHint": "Détermine ce que la page peut contenir. Modifiable par la suite.",
2333
+ "group": "Groupe de la barre latérale",
2334
+ "groupHint": "La section de la barre latérale où elle apparaît.",
2335
+ "icon": "Icône",
2336
+ "iconHint": "Affichée à côté du nom de la page dans la barre latérale.",
2337
+ "visible": "Afficher dans la barre latérale",
2338
+ "visibleHint": "Une page masquée reste accessible à son URL pour qui possède le lien.",
2339
+ "table": "Table",
2340
+ "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.",
2341
+ "tableNone": "Non liée",
2342
+ "tableNeedsConnection": "Choisissez d’abord une source de données.",
2343
+ "connection": "Source de données",
2344
+ "connectionNone": "Aucune",
2345
+ "iconPick": "Choisir l’icône de la page",
2346
+ "padding": "Marge de la page"
2347
+ },
2348
+ "editor": {
2349
+ "title": "Modifier la page",
2350
+ "save": "Enregistrer les modifications",
2351
+ "saveFailed": "Impossible d’enregistrer les modifications",
2352
+ "openPage": "Ouvrir la page",
2353
+ "generated": {
2354
+ "title": "Cette page a été générée à partir de votre schéma",
2355
+ "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."
2356
+ },
2357
+ "contentUnavailable": "Impossible de charger le contenu de la page",
2358
+ "contentUnavailableBody": "Les informations ci-dessus peuvent tout de même être enregistrées.",
2359
+ "contentInvalid": "La configuration de cette page est illisible",
2360
+ "contentInvalidBody": "Elle provient d’une version plus récente, ou elle est corrompue. Régénérez la page ou supprimez-la.",
2361
+ "data": "Données",
2362
+ "schemaFailed": "Impossible de lister les tables",
2363
+ "schemaFailedBody": "Cette connexion n’a peut-être pas encore été analysée. Lancez l’introspection depuis Studio → Connexions de données.",
2364
+ "notBindable": "Ce modèle n’est pas lié à une seule table",
2365
+ "notBindableBody": "Son contenu se construit widget par widget. Ouvrez la page et utilisez « Modifier » pour les ajouter.",
2366
+ "recompose": "Cette page va être reconstruite",
2367
+ "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.",
2368
+ "missing": "Cette page n’existe plus",
2369
+ "missingBody": "Elle a peut-être été supprimée, ou retirée par une génération.",
2370
+ "details": "Détails",
2371
+ "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.",
2372
+ "columns": "Colonnes",
2373
+ "appearance": "Apparence"
2374
+ },
2375
+ "sidebar": {
2376
+ "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.",
2377
+ "discard": "Abandonner",
2378
+ "save": "Enregistrer l’ordre",
2379
+ "saveFailed": "Impossible d’enregistrer le nouvel ordre",
2380
+ "emptyGroup": "Aucune page dans ce groupe.",
2381
+ "moveUp": "Monter {title}",
2382
+ "moveDown": "Descendre {title}",
2383
+ "moveTo": "Déplacer {title} vers un groupe",
2384
+ "ungrouped": {
2385
+ "title": "Certaines pages n’appartiennent à aucun groupe",
2386
+ "body": "Ces pages fonctionnent à leur URL mais n’apparaissent nulle part dans la barre latérale. Ouvrez chacune d’elles et choisissez un groupe."
2387
+ }
2388
+ },
2389
+ "columns": {
2390
+ "help": "Réordonnez les colonnes, renommez leurs en-têtes et choisissez celles qui apparaissent dans le tableau.",
2391
+ "discard": "Abandonner",
2392
+ "save": "Enregistrer les colonnes",
2393
+ "saveFailed": "Impossible d’enregistrer les colonnes",
2394
+ "pk": "Clé",
2395
+ "pii": "PII",
2396
+ "header": "En-tête de {name}",
2397
+ "shown": "Affichée",
2398
+ "toggle": "Afficher {name} dans le tableau",
2399
+ "moveUp": "Monter {name}",
2400
+ "moveDown": "Descendre {name}",
2401
+ "remove": "Retirer {name}",
2402
+ "none": {
2403
+ "title": "Cette page n’a pas encore de colonnes",
2404
+ "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."
2405
+ }
2406
+ },
2407
+ "icon": {
2408
+ "none": "Choisir une icône",
2409
+ "search": "Rechercher des icônes",
2410
+ "noMatches": "Aucune icône ne correspond à cette recherche."
2411
+ },
2412
+ "preview": {
2413
+ "untitled": "Page sans titre",
2414
+ "note": "Une illustration de la disposition, pas de vos données. La vraie page se remplit une fois enregistrée."
2415
+ },
2416
+ "padding": {
2417
+ "default": "Par défaut pour ce modèle",
2418
+ "none": "Aucune",
2419
+ "standard": "Standard (28 × 24)",
2420
+ "custom": "Personnalisée…",
2421
+ "x": "Côtés (px)",
2422
+ "y": "Haut et bas (px)"
2423
+ }
2424
+ },
2425
+ "audit": {
2426
+ "action": {
2427
+ "view": "Voir"
2428
+ },
2429
+ "actor": {
2430
+ "apiKey": "Clé d’API",
2431
+ "automation": "Automatisation",
2432
+ "system": "Système",
2433
+ "user": "Utilisateur"
2434
+ },
2435
+ "category": {
2436
+ "auth": "Authentification et comptes",
2437
+ "automation": "Automatisations",
2438
+ "connection": "Connexions de données",
2439
+ "data": "Enregistrements",
2440
+ "export": "Imports et exports",
2441
+ "llm": "Assistance IA",
2442
+ "rbac": "Rôles et permissions",
2443
+ "schema": "Schéma",
2444
+ "settings": "Paramètres",
2445
+ "system": "Système"
2446
+ },
2447
+ "column": {
2448
+ "action": "Action",
2449
+ "actor": "Auteur",
2450
+ "category": "Catégorie",
2451
+ "details": "Détails",
2452
+ "when": "Quand"
2453
+ },
2454
+ "drawer": {
2455
+ "actorId": "Identifiant de l’auteur",
2456
+ "actorKind": "Type d’auteur",
2457
+ "after": "Après",
2458
+ "before": "Avant",
2459
+ "category": "Catégorie",
2460
+ "changes": "Modifications",
2461
+ "connection": "Connexion",
2462
+ "field": "Champ",
2463
+ "ip": "Adresse IP",
2464
+ "noChanges": "Cette action n’a enregistré aucun instantané avant/après.",
2465
+ "none": "Aucun",
2466
+ "requestId": "Identifiant de requête",
2467
+ "resource": "Ressource",
2468
+ "subtitle": "{actor} · {when}",
2469
+ "truncated": "Tronqué à 16 Ko",
2470
+ "userAgent": "Agent utilisateur"
2471
+ },
2472
+ "empty": {
2473
+ "body": "Les modifications apportées aux données, au schéma, aux paramètres et aux permissions apparaissent ici au fil de l’eau.",
2474
+ "filtered": {
2475
+ "body": "Élargissez la plage de dates ou effacez le filtre de catégorie.",
2476
+ "title": "Aucun résultat pour ces filtres"
2477
+ },
2478
+ "title": "Rien n’a encore été enregistré"
2479
+ },
2480
+ "filterActor": "Identifiant de l’auteur",
2481
+ "filterCategoryAny": "Toutes les catégories",
2482
+ "filterCategory": "Filtrer par catégorie",
2483
+ "filterFrom": "Du",
2484
+ "filterTo": "Au",
2485
+ "listFailed": {
2486
+ "title": "Impossible de charger le journal d’audit"
2487
+ },
2488
+ "loadMore": "Charger les entrées plus anciennes",
2489
+ "subtitle": "Chaque modification apportée à cet espace de travail, son auteur, et ce qu’elle a changé.",
2490
+ "title": "Journal d’audit"
2491
+ },
2492
+ "roles": {
2493
+ "action": {
2494
+ "delete": "Supprimer",
2495
+ "rename": "Renommer"
2496
+ },
2497
+ "builtinLocked": "Les rôles intégrés ne peuvent pas être supprimés.",
2498
+ "category": {
2499
+ "access": "Accès",
2500
+ "data": "Données",
2501
+ "operations": "Opérations",
2502
+ "workspace": "Espace de travail"
2503
+ },
2504
+ "column": {
2505
+ "actions": "Actions",
2506
+ "members": "Membres",
2507
+ "name": "Rôle"
2508
+ },
2509
+ "create": {
2510
+ "descriptionLabel": "Description",
2511
+ "description": "Un nouveau rôle démarre sans aucune permission.",
2512
+ "failed": "Impossible de créer le rôle",
2513
+ "namePlaceholder": "ex. Agent de support",
2514
+ "name": "Nom",
2515
+ "submit": "Créer le rôle",
2516
+ "title": "Nouveau rôle"
2517
+ },
2518
+ "createButton": "Nouveau rôle",
2519
+ "delete": {
2520
+ "confirm": "Supprimer le rôle",
2521
+ "description": "Le rôle et ses lignes de permissions sont supprimés.",
2522
+ "failed": "Impossible de supprimer le rôle",
2523
+ "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.",
2524
+ "noMembers": "Personne ne détient « {name} », rien ne sera donc déplacé.",
2525
+ "reassignPlaceholder": "Choisissez un rôle…",
2526
+ "reassignTo": "Déplacer les membres vers",
2527
+ "title": "Supprimer le rôle"
2528
+ },
2529
+ "list": {
2530
+ "title": "Rôles"
2531
+ },
2532
+ "loadFailed": {
2533
+ "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.",
2534
+ "title": "Certaines permissions n’ont pas pu être lues"
2535
+ },
2536
+ "matrix": {
2537
+ "discard": "Abandonner",
2538
+ "empty": {
2539
+ "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.",
2540
+ "title": "Aucune permission à afficher"
2541
+ },
2542
+ "label": "Permissions des rôles",
2543
+ "noChanges": "Aucune modification en attente",
2544
+ "pending": "{count, plural, one {# modification en attente} other {# modifications en attente}}",
2545
+ "rowHeader": "Permission",
2546
+ "title": "Permissions"
2547
+ },
2548
+ "memberCount": "{count, plural, one {# utilisateur} other {# utilisateurs}}",
2549
+ "permission": {
2550
+ "apiKeysManage": "Gérer les clés d’API",
2551
+ "auditRead": "Lire le journal d’audit",
2552
+ "connectionsManage": "Gérer les connexions aux bases de données",
2553
+ "exportsManage": "Gérer les exports de tout le monde",
2554
+ "importsManage": "Gérer les imports de tout le monde",
2555
+ "jobsManage": "Démarrer et annuler les tâches en arrière-plan",
2556
+ "jobsRead": "Voir toutes les tâches en arrière-plan",
2557
+ "llmRun": "Utiliser l’assistance IA",
2558
+ "pagesManage": "Créer et organiser les pages",
2559
+ "reportsManage": "Gérer les rapports planifiés",
2560
+ "rolesManage": "Gérer les rôles et les permissions",
2561
+ "schemaRemap": "Modifier les libellés et les remplacements du schéma",
2562
+ "settingsManage": "Gérer les paramètres de l’espace de travail",
2563
+ "usersManage": "Gérer les utilisateurs"
2564
+ },
2565
+ "rename": {
2566
+ "failed": "Impossible de renommer le rôle",
2567
+ "title": "Renommer le rôle"
2568
+ },
2569
+ "saveFailed": {
2570
+ "title": "Impossible d’enregistrer tous les rôles"
2571
+ },
2572
+ "subtitle": "Ce que chaque rôle est autorisé à faire. Un utilisateur cumule les permissions de tous les rôles qu’il détient.",
2573
+ "title": "Rôles et permissions"
2574
+ },
2575
+ "security": {
2576
+ "password": {
2577
+ "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.",
2578
+ "changed": "Mot de passe modifié",
2579
+ "confirm": "Confirmer le nouveau mot de passe",
2580
+ "current": "Mot de passe actuel",
2581
+ "failed": "Impossible de modifier votre mot de passe",
2582
+ "helper": "Au moins 8 caractères.",
2583
+ "mismatch": "Les deux mots de passe ne correspondent pas.",
2584
+ "new": "Nouveau mot de passe",
2585
+ "submit": "Modifier le mot de passe",
2586
+ "title": "Mot de passe"
2587
+ },
2588
+ "sessions": {
2589
+ "expires": "Expire {at}",
2590
+ "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.",
2591
+ "failed": "Impossible de lire vos sessions",
2592
+ "ip": "IP {ip}",
2593
+ "loading": "Recherche des autres appareils connectés…",
2594
+ "noIp": "Aucune IP enregistrée",
2595
+ "revokeBody": "La session prend fin immédiatement et la personne qui l’utilise devra se reconnecter.",
2596
+ "revokeFailed": "Impossible de déconnecter cet appareil",
2597
+ "revokeTitle": "Déconnecter cet appareil",
2598
+ "revoke": "Déconnecter",
2599
+ "seenUnknown": "Dernière activité : inconnue",
2600
+ "seen": "Dernière activité {since}",
2601
+ "thisDevice": "Cet appareil",
2602
+ "title": "Sessions actives",
2603
+ "unknownDevice": "Appareil non reconnu"
2604
+ },
2605
+ "subtitle": "Votre mot de passe, votre second facteur, et tous les endroits où vous êtes connecté.",
2606
+ "title": "Sécurité",
2607
+ "twoFactor": {
2608
+ "activateFailed": "Ce code n’a pas été accepté",
2609
+ "activate": "Activer la double authentification",
2610
+ "body": "Une application d’authentification génère un code à 6 chiffres qu’Adminium demande après votre mot de passe.",
2611
+ "code": "Code de votre application",
2612
+ "copyKey": "Copier la clé de configuration",
2613
+ "copyLink": "Copier le lien de configuration",
2614
+ "disableBody": "Votre compte revient au mot de passe seul, et vos codes de récupération cessent de fonctionner.",
2615
+ "disableConfirm": "Désactiver",
2616
+ "disableFailed": "Impossible de désactiver la double authentification",
2617
+ "disablePassword": "Votre mot de passe",
2618
+ "disableTitle": "Désactiver l’authentification à deux facteurs",
2619
+ "disable": "Désactiver la double authentification",
2620
+ "enrollFailed": "Impossible de démarrer la configuration",
2621
+ "enroll": "Configurer la double authentification",
2622
+ "hide": "Masquer la clé de configuration",
2623
+ "off": "Désactivée",
2624
+ "on": "Activée",
2625
+ "recovery": {
2626
+ "body": "Chaque code vous connecte une seule fois si vous perdez votre application d’authentification. Ils ne sont affichés que maintenant.",
2627
+ "copy": "Copier les codes",
2628
+ "title": "Enregistrez vos codes de récupération"
2629
+ },
2630
+ "reveal": "Afficher la clé de configuration",
2631
+ "secretHelper": "Collez le lien de configuration dans votre application d’authentification, ou saisissez la clé à la main.",
2632
+ "secret": "Clé de configuration",
2633
+ "title": "Authentification à deux facteurs"
2634
+ }
2635
+ },
2636
+ "team": {
2637
+ "action": {
2638
+ "reactivate": "Réactiver",
2639
+ "remove": "Supprimer",
2640
+ "resend": "Nouveau lien",
2641
+ "roles": "Rôles",
2642
+ "suspend": "Suspendre"
2643
+ },
2644
+ "column": {
2645
+ "actions": "Actions",
2646
+ "lastSeen": "Dernière activité",
2647
+ "person": "Personne",
2648
+ "roles": "Rôles",
2649
+ "status": "Statut"
2650
+ },
2651
+ "counts": "{active} actifs · {invited} invités · {suspended} suspendus",
2652
+ "empty": {
2653
+ "body": "Invitez un coéquipier pour lui donner son propre accès et son propre rôle.",
2654
+ "filtered": {
2655
+ "body": "Effacez les filtres pour voir tout l’annuaire.",
2656
+ "title": "Personne ne correspond à ces filtres"
2657
+ },
2658
+ "title": "Vous êtes la seule personne à avoir un compte"
2659
+ },
2660
+ "filterRoleAny": "Tous les rôles",
2661
+ "filterRole": "Filtrer par rôle",
2662
+ "filterStatusAny": "Tous les statuts",
2663
+ "filterStatus": "Filtrer par statut",
2664
+ "invite": {
2665
+ "copied": "Copié",
2666
+ "copyLink": "Copier le lien",
2667
+ "created": {
2668
+ "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.",
2669
+ "title": "Invitation créée"
2670
+ },
2671
+ "emailIt": "Envoyer l’invitation par e-mail",
2672
+ "expiresRelative": "Le lien expire {at} ({relative}).",
2673
+ "expires": "Le lien expire {at}.",
2674
+ "noEmail": {
2675
+ "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.",
2676
+ "title": "Adminium n’a pas envoyé ce lien par e-mail",
2677
+ "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."
2678
+ }
2679
+ },
2680
+ "inviteButton": "Inviter un coéquipier",
2681
+ "inviteDialog": {
2682
+ "description": "Adminium crée le compte et vous fournit un lien d’activation à usage unique à transmettre.",
2683
+ "emailPlaceholder": "nom@exemple.com",
2684
+ "email": "E-mail",
2685
+ "failed": "Impossible de créer l’invitation",
2686
+ "namePlaceholder": "ex. Dana Osei",
2687
+ "name": "Nom",
2688
+ "rolesHelper": "Choisissez le rôle le moins privilégié qui lui permette de faire son travail. Vous pourrez le modifier plus tard.",
2689
+ "roles": "Rôles",
2690
+ "submit": "Créer l’invitation",
2691
+ "title": "Inviter un coéquipier"
2692
+ },
2693
+ "listFailed": {
2694
+ "title": "Impossible de charger l’annuaire"
2695
+ },
2696
+ "loadMore": "Charger plus",
2697
+ "neverSignedIn": "Jamais connecté",
2698
+ "noRoles": "Aucun rôle",
2699
+ "remove": {
2700
+ "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.",
2701
+ "confirm": "Supprimer définitivement",
2702
+ "prompt": "Saisissez « {email} » pour confirmer",
2703
+ "title": "Supprimer définitivement le compte"
2704
+ },
2705
+ "roles": {
2706
+ "unavailable": "Les rôles ne sont pas visibles pour votre compte : aucun ne peut donc être attribué ici."
2707
+ },
2708
+ "rolesDialog": {
2709
+ "description": "Un utilisateur cumule les permissions de tous les rôles qu’il détient.",
2710
+ "failed": "Impossible de modifier les rôles",
2711
+ "title": "Rôles de {name}"
2712
+ },
2713
+ "rolesLocked": "Modifier les rôles requiert la permission « Gérer les rôles ».",
2714
+ "search": "Rechercher un nom ou un e-mail",
2715
+ "status": {
2716
+ "active": "Actif",
2717
+ "invited": "Invité",
2718
+ "suspended": "Suspendu"
2719
+ },
2720
+ "subtitle": "Qui possède un compte sur cet Adminium, et ce que chacun peut faire.",
2721
+ "title": "Équipe",
2722
+ "twoFactorOn": "L’authentification à deux facteurs est activée",
2723
+ "twoFactorShort": "2FA"
2724
+ },
2725
+ "email": {
2726
+ "linkFallback": "Si le bouton ne fonctionne pas, collez ce lien dans votre navigateur : {url}",
2727
+ "notification": {
2728
+ "action": "Ouvrir {appName}",
2729
+ "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.",
2730
+ "name": "Notification"
2731
+ },
2732
+ "passwordReset": {
2733
+ "action": "Choisir un nouveau mot de passe",
2734
+ "heading": "Réinitialiser votre mot de passe",
2735
+ "intro": "Bonjour {name}, nous avons reçu une demande de réinitialisation du mot de passe de {email}.",
2736
+ "name": "Réinitialisation du mot de passe",
2737
+ "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.",
2738
+ "subject": "Réinitialisez votre mot de passe {appName}"
2739
+ },
2740
+ "userInvite": {
2741
+ "action": "Accepter l’invitation",
2742
+ "heading": "Vous avez reçu une invitation",
2743
+ "intro": "{inviterName} vous invite à rejoindre {appName}. Acceptez l’invitation pour définir un mot de passe pour {email} et vous connecter.",
2744
+ "name": "Invitation à l’équipe",
2745
+ "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.",
2746
+ "subject": "Vous avez reçu une invitation à rejoindre {appName}",
2747
+ "inviterFallback": "Un administrateur"
2748
+ }
1965
2749
  }
1966
2750
  };
1967
2751
  //# sourceMappingURL=common.js.map