@adminiumjs/i18n 0.1.0 → 0.2.1

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 (147) 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 +478 -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 +37 -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 +16 -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 +40 -0
  15. package/dist/fallback.js.map +1 -0
  16. package/dist/format-errors.d.ts +41 -0
  17. package/dist/format-errors.d.ts.map +1 -0
  18. package/dist/format-errors.js +63 -0
  19. package/dist/format-errors.js.map +1 -0
  20. package/dist/icu-format.d.ts +4 -0
  21. package/dist/icu-format.d.ts.map +1 -1
  22. package/dist/icu-format.js +43 -3
  23. package/dist/icu-format.js.map +1 -1
  24. package/dist/index.d.ts +11 -3
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +15 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/keys.d.ts +33 -0
  29. package/dist/keys.d.ts.map +1 -0
  30. package/dist/keys.js +77 -0
  31. package/dist/keys.js.map +1 -0
  32. package/dist/locales.d.ts +102 -13
  33. package/dist/locales.d.ts.map +1 -1
  34. package/dist/locales.js +142 -17
  35. package/dist/locales.js.map +1 -1
  36. package/dist/overrides.d.ts +62 -0
  37. package/dist/overrides.d.ts.map +1 -0
  38. package/dist/overrides.js +112 -0
  39. package/dist/overrides.js.map +1 -0
  40. package/dist/react.d.ts +16 -0
  41. package/dist/react.d.ts.map +1 -1
  42. package/dist/react.js +34 -6
  43. package/dist/react.js.map +1 -1
  44. package/dist/resources/ar-eg/common.d.ts +100 -0
  45. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  46. package/dist/resources/ar-eg/common.js +107 -7
  47. package/dist/resources/ar-eg/common.js.map +1 -1
  48. package/dist/resources/ar-eg/ui.d.ts +769 -1
  49. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  50. package/dist/resources/ar-eg/ui.js +823 -55
  51. package/dist/resources/ar-eg/ui.js.map +1 -1
  52. package/dist/resources/cs-cz/common.d.ts +100 -0
  53. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  54. package/dist/resources/cs-cz/common.js +105 -5
  55. package/dist/resources/cs-cz/common.js.map +1 -1
  56. package/dist/resources/cs-cz/ui.d.ts +770 -2
  57. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  58. package/dist/resources/cs-cz/ui.js +824 -56
  59. package/dist/resources/cs-cz/ui.js.map +1 -1
  60. package/dist/resources/da-dk/common.d.ts +101 -1
  61. package/dist/resources/da-dk/common.d.ts.map +1 -1
  62. package/dist/resources/da-dk/common.js +108 -8
  63. package/dist/resources/da-dk/common.js.map +1 -1
  64. package/dist/resources/da-dk/ui.d.ts +769 -1
  65. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  66. package/dist/resources/da-dk/ui.js +823 -55
  67. package/dist/resources/da-dk/ui.js.map +1 -1
  68. package/dist/resources/de-de/common.d.ts +104 -4
  69. package/dist/resources/de-de/common.d.ts.map +1 -1
  70. package/dist/resources/de-de/common.js +111 -11
  71. package/dist/resources/de-de/common.js.map +1 -1
  72. package/dist/resources/de-de/ui.d.ts +769 -1
  73. package/dist/resources/de-de/ui.d.ts.map +1 -1
  74. package/dist/resources/de-de/ui.js +823 -55
  75. package/dist/resources/de-de/ui.js.map +1 -1
  76. package/dist/resources/en-us/common.d.ts +100 -0
  77. package/dist/resources/en-us/common.d.ts.map +1 -1
  78. package/dist/resources/en-us/common.js +107 -7
  79. package/dist/resources/en-us/common.js.map +1 -1
  80. package/dist/resources/en-us/ui.d.ts +809 -41
  81. package/dist/resources/en-us/ui.d.ts.map +1 -1
  82. package/dist/resources/en-us/ui.js +861 -93
  83. package/dist/resources/en-us/ui.js.map +1 -1
  84. package/dist/resources/fr-fr/common.d.ts +102 -2
  85. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  86. package/dist/resources/fr-fr/common.js +109 -9
  87. package/dist/resources/fr-fr/common.js.map +1 -1
  88. package/dist/resources/fr-fr/ui.d.ts +769 -1
  89. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  90. package/dist/resources/fr-fr/ui.js +823 -55
  91. package/dist/resources/fr-fr/ui.js.map +1 -1
  92. package/dist/resources/zh-cn/common.d.ts +101 -1
  93. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  94. package/dist/resources/zh-cn/common.js +108 -8
  95. package/dist/resources/zh-cn/common.js.map +1 -1
  96. package/dist/resources/zh-cn/ui.d.ts +769 -1
  97. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  98. package/dist/resources/zh-cn/ui.js +823 -55
  99. package/dist/resources/zh-cn/ui.js.map +1 -1
  100. package/dist/resources/zh-tw/common.d.ts +100 -0
  101. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  102. package/dist/resources/zh-tw/common.js +107 -7
  103. package/dist/resources/zh-tw/common.js.map +1 -1
  104. package/dist/resources/zh-tw/ui.d.ts +769 -1
  105. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  106. package/dist/resources/zh-tw/ui.js +823 -55
  107. package/dist/resources/zh-tw/ui.js.map +1 -1
  108. package/dist/review-status.d.ts +55 -0
  109. package/dist/review-status.d.ts.map +1 -0
  110. package/dist/review-status.js +59 -0
  111. package/dist/review-status.js.map +1 -0
  112. package/dist/revision.d.ts +35 -0
  113. package/dist/revision.d.ts.map +1 -0
  114. package/dist/revision.js +55 -0
  115. package/dist/revision.js.map +1 -0
  116. package/dist/server.d.ts +36 -0
  117. package/dist/server.d.ts.map +1 -0
  118. package/dist/server.js +35 -0
  119. package/dist/server.js.map +1 -0
  120. package/dist/validate-message.d.ts +57 -0
  121. package/dist/validate-message.d.ts.map +1 -0
  122. package/dist/validate-message.js +178 -0
  123. package/dist/validate-message.js.map +1 -0
  124. package/locales/ar-EG/.meta.json +11134 -0
  125. package/locales/ar-EG/common.json +107 -7
  126. package/locales/ar-EG/ui.json +823 -55
  127. package/locales/cs-CZ/.meta.json +11134 -0
  128. package/locales/cs-CZ/common.json +105 -5
  129. package/locales/cs-CZ/ui.json +824 -56
  130. package/locales/da-DK/.meta.json +11134 -0
  131. package/locales/da-DK/common.json +108 -8
  132. package/locales/da-DK/ui.json +823 -55
  133. package/locales/de-DE/.meta.json +11134 -0
  134. package/locales/de-DE/common.json +111 -11
  135. package/locales/de-DE/ui.json +823 -55
  136. package/locales/en-US/common.json +107 -7
  137. package/locales/en-US/ui.json +861 -93
  138. package/locales/fr-FR/.meta.json +11134 -0
  139. package/locales/fr-FR/common.json +109 -9
  140. package/locales/fr-FR/ui.json +823 -55
  141. package/locales/zh-CN/.meta.json +11134 -0
  142. package/locales/zh-CN/common.json +108 -8
  143. package/locales/zh-CN/ui.json +823 -55
  144. package/locales/zh-TW/.meta.json +11134 -0
  145. package/locales/zh-TW/common.json +107 -7
  146. package/locales/zh-TW/ui.json +823 -55
  147. package/package.json +10 -2
@@ -25,7 +25,8 @@ export default {
25
25
  "showPassword": "Afficher le mot de passe",
26
26
  "hidePassword": "Masquer le mot de passe",
27
27
  "reveal": "Révéler",
28
- "hide": "Masquer"
28
+ "hide": "Masquer",
29
+ "clearSearch": "Effacer la recherche"
29
30
  },
30
31
  "state": {
31
32
  "loading": "Chargement…",
@@ -67,7 +68,9 @@ export default {
67
68
  "description": "La carte de mesure de référence : un agrégat principal avec pastille de tendance et mini-sparkline en option."
68
69
  },
69
70
  "usageMeter": {
70
- "description": "Consommation du quota par rapport à une limite ; la barre passe à l'orange puis au rouge au-delà de vos seuils."
71
+ "description": "Consommation du quota par rapport à une limite ; la barre passe à l'orange puis au rouge au-delà de vos seuils.",
72
+ "usageLabel": "Utilisation",
73
+ "ofLabel": "sur"
71
74
  },
72
75
  "statTileCompact": {
73
76
  "description": "Une tuile de mesure fine avec micro-libellé, puce de tendance et spark à 6 barres — pour des rangées denses de 4 à 6."
@@ -83,13 +86,17 @@ export default {
83
86
  "description": "Une jauge annulaire pour un score ou un pourcentage, teintée selon la plage où tombe la valeur."
84
87
  },
85
88
  "gaugeArc": {
86
- "description": "Un arc de compteur avec plages qualitatives et aiguille ; affiche aussi une grille de jauges."
89
+ "description": "Un arc de compteur avec plages qualitatives et aiguille ; affiche aussi une grille de jauges.",
90
+ "emptyTitle": "Aucune jauge à afficher",
91
+ "emptyBody": "Les services apparaissent ici sous forme de jauges dès qu’une mesure existe pour eux."
87
92
  },
88
93
  "periodComparison": {
89
94
  "description": "Cette période face à la précédente en deux barres, avec l'écart calculé en dessous.",
90
95
  "higherLabel": "de plus",
91
96
  "lowerLabel": "de moins",
92
- "flatLabel": "stable"
97
+ "flatLabel": "stable",
98
+ "periodALabel": "Cette période",
99
+ "periodBLabel": "Période précédente"
93
100
  },
94
101
  "microKpiSubtitle": {
95
102
  "description": "Une statistique d'en-tête sur une ligne, construite à partir d'un modèle et recalculée en direct."
@@ -105,54 +112,250 @@ export default {
105
112
  "boxplot": {
106
113
  "description": "Résumé en boîte à moustaches de la dispersion d'une colonne numérique par catégorie — min, quartiles, médiane et max.",
107
114
  "emptyTitle": "Aucune distribution à tracer",
108
- "emptyBody": "Aucune ligne ne correspond aux filtres pour les boîtes à moustaches."
115
+ "emptyBody": "Aucune ligne ne correspond aux filtres pour les boîtes à moustaches.",
116
+ "chartLabel": "Boîte à moustaches"
109
117
  },
110
118
  "violin": {
111
119
  "description": "Courbes de densité en miroir comparant la distribution d'une colonne numérique entre les groupes.",
112
120
  "emptyTitle": "Aucune distribution à tracer",
113
- "emptyBody": "Aucune ligne ne correspond aux filtres pour les profils de densité."
121
+ "emptyBody": "Aucune ligne ne correspond aux filtres pour les profils de densité.",
122
+ "chartLabel": "Diagramme en violon"
114
123
  },
115
124
  "ridgeline": {
116
125
  "description": "Crêtes de densité superposées comparant une colonne numérique entre groupes ordonnés.",
117
126
  "emptyTitle": "Aucune crête à tracer",
118
- "emptyBody": "Aucune ligne ne correspond aux filtres pour les profils de densité."
127
+ "emptyBody": "Aucune ligne ne correspond aux filtres pour les profils de densité.",
128
+ "chartLabel": "Crêtes de densité"
119
129
  },
120
130
  "scatterBubble": {
121
131
  "description": "Deux colonnes numériques en points, avec une taille de bulle et une ligne de tendance en option.",
122
132
  "emptyTitle": "Aucun point à tracer",
123
- "emptyBody": "Aucune ligne ne correspond aux filtres pour les colonnes choisies."
133
+ "emptyBody": "Aucune ligne ne correspond aux filtres pour les colonnes choisies.",
134
+ "chartLabel": "Nuage de points"
124
135
  },
125
136
  "hexbin": {
126
137
  "description": "Densité hexagonale de deux colonnes numériques, teintée selon le nombre de lignes par tuile.",
127
138
  "emptyTitle": "Aucune densité à tracer",
128
- "emptyBody": "Aucune ligne ne correspond aux filtres à regrouper."
139
+ "emptyBody": "Aucune ligne ne correspond aux filtres à regrouper.",
140
+ "chartLabel": "Densité hexagonale"
129
141
  },
130
142
  "correlationMatrix": {
131
143
  "description": "Corrélation de Pearson entre colonnes numériques choisies, du fortement positif au fortement négatif.",
132
144
  "emptyTitle": "Rien à corréler",
133
- "emptyBody": "Choisissez au moins deux colonnes numériques avec des lignes correspondantes."
145
+ "emptyBody": "Choisissez au moins deux colonnes numériques avec des lignes correspondantes.",
146
+ "chartLabel": "Matrice de corrélation"
134
147
  },
135
148
  "parallelCoordinates": {
136
149
  "description": "Chaque enregistrement en ligne sur plusieurs axes numériques normalisés, coloré par catégorie.",
137
150
  "emptyTitle": "Aucun enregistrement à tracer",
138
- "emptyBody": "Aucune ligne ne correspond aux filtres sur les axes choisis."
151
+ "emptyBody": "Aucune ligne ne correspond aux filtres sur les axes choisis.",
152
+ "chartLabel": "Coordonnées parallèles"
153
+ },
154
+ "unexpectedShape": "Format de données inattendu.",
155
+ "lineArea": {
156
+ "chartLabel": "Graphique en courbes",
157
+ "description": "Une mesure dans le temps sous forme de courbe avec aire remplie en douceur, et une comparaison en pointillés avec la période précédente en option."
158
+ },
159
+ "bar": {
160
+ "chartLabel": "Graphique à barres",
161
+ "description": "Des valeurs par catégorie ou par intervalle de temps en barres verticales, avec mise en évidence de la barre la plus haute ou de la barre actuelle en option."
162
+ },
163
+ "donut": {
164
+ "chartLabel": "Graphique en anneau",
165
+ "otherLabel": "Autres",
166
+ "description": "Les parts de chaque catégorie en segments d’anneau, avec légende et total au centre, les petites parts étant regroupées sous « Autres »."
167
+ },
168
+ "bullet": {
169
+ "chartLabel": "Graphique en puce",
170
+ "description": "La progression vers un objectif sous forme de barre de mesure sur des plages qualitatives, avec un repère de cible par ligne.",
171
+ "emptyTitle": "Aucun objectif à suivre",
172
+ "emptyBody": "Ajoutez des mesures assorties de cibles à comparer."
173
+ },
174
+ "rankingBars": {
175
+ "chartLabel": "Classement",
176
+ "description": "Un classement des N premiers en barres horizontales — le leader en pleine intensité, les autres atténués — avec les valeurs à côté.",
177
+ "emptyTitle": "Rien à classer",
178
+ "emptyBody": "Aucun enregistrement ne correspond encore à cette répartition."
179
+ },
180
+ "pareto": {
181
+ "chartLabel": "Diagramme de Pareto",
182
+ "description": "Des barres de catégories triées sous une courbe de pourcentage cumulé, avec une ligne de coupure à 80 % en option.",
183
+ "emptyTitle": "Aucune catégorie à représenter",
184
+ "emptyBody": "Aucun décompte groupé n’a été renvoyé pour cette plage."
185
+ },
186
+ "waterfall": {
187
+ "chartLabel": "Graphique en cascade",
188
+ "description": "Un pont de barres flottantes allant d’un total de départ à un total net, en passant par des étapes positives et négatives.",
189
+ "emptyTitle": "Aucune variation à relier",
190
+ "emptyBody": "Aucune étape de départ, de variation ou de total n’a été trouvée."
191
+ },
192
+ "marimekko": {
193
+ "chartLabel": "Graphique Marimekko",
194
+ "description": "Une répartition à deux niveaux en colonnes empilées de largeur variable — la largeur pour la part extérieure, les segments pour la répartition intérieure.",
195
+ "emptyTitle": "Aucune répartition à détailler",
196
+ "emptyBody": "Aucune répartition à deux niveaux n’a été renvoyée pour cette plage."
197
+ },
198
+ "stackedBar100": {
199
+ "chartLabel": "Barre empilée à 100 %",
200
+ "description": "Une barre à 100 % découpée en segments proportionnels avec légende, pour comparer les parts d’un tout.",
201
+ "emptyTitle": "Aucune part à répartir",
202
+ "emptyBody": "Aucune part n’a été renvoyée pour cette répartition."
203
+ },
204
+ "slope": {
205
+ "chartLabel": "Graphique de pente",
206
+ "description": "Deux périodes reliées par une ligne par enregistrement, colorée selon que la valeur a augmenté ou baissé.",
207
+ "emptyTitle": "Aucune évolution entre périodes à afficher",
208
+ "emptyBody": "Aucune valeur avant/après n’a été renvoyée à comparer."
209
+ },
210
+ "multiline": {
211
+ "chartLabel": "Graphique multicourbes",
212
+ "description": "Plusieurs séries en courbes superposées avec libellés en fin de courbe, pour comparer les tendances sur la même période.",
213
+ "emptyTitle": "Aucune série à tracer",
214
+ "emptyBody": "Aucune série temporelle ne correspond aux filtres pour cette plage."
215
+ },
216
+ "stream": {
217
+ "chartLabel": "Graphique en flux",
218
+ "description": "Des bandes empilées ondulant autour d’un axe central, montrant comment la composition d’un total évolue dans le temps.",
219
+ "emptyTitle": "Aucun flux à représenter",
220
+ "emptyBody": "Aucune série empilée n’a été renvoyée pour cette plage."
221
+ },
222
+ "forecast": {
223
+ "chartLabel": "Graphique de prévision",
224
+ "nowLabel": "Maintenant",
225
+ "forecastLabel": "Prévision",
226
+ "actualLabel": "Réel",
227
+ "description": "Une courbe d’historique prolongée par une projection en pointillés dans une bande de confiance qui s’élargit, séparée par un repère du moment présent.",
228
+ "emptyTitle": "Aucun historique à projeter",
229
+ "emptyBody": "Aucun point passé n’a été renvoyé pour établir une prévision."
230
+ },
231
+ "anomaly": {
232
+ "chartLabel": "Graphique d’anomalies",
233
+ "description": "Une courbe de valeurs sur sa plage attendue, signalant par des points auréolés ceux qui en sortent.",
234
+ "emptyTitle": "Aucun signal à analyser",
235
+ "emptyBody": "Aucun point n’a été renvoyé pour rechercher des anomalies."
236
+ },
237
+ "candlestick": {
238
+ "chartLabel": "Graphique en chandeliers",
239
+ "livePillLabel": "Actif",
240
+ "description": "Des chandeliers ouverture-haut-bas-clôture colorés selon le sens, avec une ligne de dernier cours en pointillés et une pastille d’activité en option.",
241
+ "emptyTitle": "Aucun chandelier à représenter",
242
+ "emptyBody": "Aucune ligne ouverture-haut-bas-clôture ne correspond à cette plage."
243
+ },
244
+ "bump": {
245
+ "chartLabel": "Graphique de rangs",
246
+ "description": "Des courbes de rang dans le temps montrant comment les concurrents échangent leurs places d’une période à l’autre.",
247
+ "emptyTitle": "Aucun rang à tracer",
248
+ "emptyBody": "Aucun classement d’une période à l’autre n’a été renvoyé."
249
+ },
250
+ "timelineLanes": {
251
+ "chartLabel": "Couloirs chronologiques",
252
+ "laneLabel": "Événements",
253
+ "description": "Des événements datés sous forme de pastilles sur des couloirs horizontaux partageant un même axe temporel.",
254
+ "emptyTitle": "Aucun événement à placer",
255
+ "emptyBody": "Aucun événement ne correspond aux filtres pour cette plage."
256
+ },
257
+ "treemap": {
258
+ "chartLabel": "Carte proportionnelle",
259
+ "otherLabel": "Autres",
260
+ "description": "Une répartition partie-tout sous forme de tuiles carrées dimensionnées par valeur, les petites parts étant regroupées dans une tuile « Autres ».",
261
+ "emptyTitle": "Aucune part à disposer",
262
+ "emptyBody": "Aucune catégorie n’a été renvoyée pour cette répartition."
263
+ },
264
+ "sunburst": {
265
+ "chartLabel": "Rayons de soleil",
266
+ "description": "Une hiérarchie à deux niveaux en anneaux imbriqués — les parents à l’intérieur, leurs enfants à l’extérieur — avec une légende des parents.",
267
+ "emptyTitle": "Aucun anneau à dessiner",
268
+ "emptyBody": "Aucune catégorie groupée n’a été renvoyée à imbriquer."
269
+ },
270
+ "funnel": {
271
+ "chartLabel": "Entonnoir",
272
+ "description": "Des étapes ordonnées qui se rétrécissent, avec un taux de passage par étape et un pied de page indiquant la conversion globale.",
273
+ "emptyTitle": "Aucune étape à représenter",
274
+ "emptyBody": "Aucun décompte d’étape n’a été renvoyé pour cette plage."
275
+ },
276
+ "radialBar": {
277
+ "chartLabel": "Barres radiales",
278
+ "description": "Jusqu’à quatre pourcentages en anneaux de progression concentriques avec une légende à pastilles.",
279
+ "emptyTitle": "Aucun anneau à remplir",
280
+ "emptyBody": "Aucune catégorie ne correspond encore à cette répartition."
281
+ },
282
+ "radar": {
283
+ "chartLabel": "Radar",
284
+ "description": "Plusieurs axes nommés sur un polygone avec une forme remplie par série, sur une superposition de cible en option.",
285
+ "emptyTitle": "Aucun axe à comparer",
286
+ "emptyBody": "Aucune matrice de séries et d’axes n’a été renvoyée."
287
+ },
288
+ "chord": {
289
+ "chartLabel": "Diagramme en cordes",
290
+ "description": "Des flux deux à deux sous forme de rubans entre des nœuds disposés en anneau, l’opacité des rubans reflétant le volume.",
291
+ "emptyTitle": "Aucun flux à relier",
292
+ "emptyBody": "Aucune connexion entre groupes n’a été renvoyée."
293
+ },
294
+ "wordcloud": {
295
+ "chartLabel": "Nuage de mots",
296
+ "description": "Des termes dimensionnés selon leur fréquence et répartis en lignes, pour voir d’un coup d’œil ce qui domine.",
297
+ "emptyTitle": "Aucun terme à afficher",
298
+ "emptyBody": "Aucun terme pondéré ne correspond aux filtres."
299
+ },
300
+ "cohortMatrix": {
301
+ "chartLabel": "Rétention par cohorte",
302
+ "description": "Des lignes de cohortes face à des colonnes de périodes, chaque cellule étant teintée selon la rétention ou le chiffre d’affaires."
303
+ },
304
+ "heatmapCalendar": {
305
+ "chartLabel": "Calendrier d’activité",
306
+ "legendLessLabel": "Moins",
307
+ "legendMoreLabel": "Plus",
308
+ "description": "Une année d’activité quotidienne sous forme de grille semaines × jours teintée selon l’intensité."
309
+ },
310
+ "heatMonth": {
311
+ "chartLabel": "Activité mensuelle",
312
+ "description": "Un mois calendaire sous forme de grille de jours teintée selon la valeur de chaque jour."
313
+ },
314
+ "choroplethGrid": {
315
+ "chartLabel": "Répartition régionale",
316
+ "legendLowLabel": "Faible",
317
+ "legendHighLabel": "Élevé",
318
+ "description": "Des valeurs régionales sous forme de carte en tuiles des États-Unis ou de grille compacte, avec une liste de classement des N premiers en option."
319
+ },
320
+ "sankey": {
321
+ "chartLabel": "Flux",
322
+ "description": "Des flux source-cible en couches sous forme de rubans dont l’épaisseur traduit le volume."
323
+ },
324
+ "sparkline": {
325
+ "description": "Une micro-tendance en ligne des valeurs récentes — sans axes ni libellés — pour les cartes d’indicateurs, les cellules de tableau et les lignes de liste."
139
326
  }
140
327
  },
141
328
  "feeds": {
142
329
  "activityFeed": {
143
330
  "description": "Un fil continu de qui a fait quoi dans votre espace de travail, du plus récent au plus ancien.",
144
331
  "emptyTitle": "Aucune activité récente",
145
- "emptyBody": "Les actions de votre espace de travail apparaîtront ici."
332
+ "emptyBody": "Les actions de votre espace de travail apparaîtront ici.",
333
+ "viewAllLabel": "Tout afficher"
146
334
  },
147
335
  "notificationFeed": {
148
336
  "description": "Notifications groupées avec état non lu, filtres et actions intégrées.",
149
337
  "emptyTitle": "Aucune notification",
150
- "emptyBody": "Les nouvelles notifications apparaîtront ici."
338
+ "emptyBody": "Les nouvelles notifications apparaîtront ici.",
339
+ "allLabel": "Toutes",
340
+ "unreadLabel": "Non lues",
341
+ "mentionsLabel": "Mentions",
342
+ "filterLabel": "Filtre de notifications",
343
+ "markAllReadLabel": "Tout marquer comme lu",
344
+ "todayLabel": "Aujourd’hui",
345
+ "yesterdayLabel": "Hier",
346
+ "earlierLabel": "Plus tôt",
347
+ "dismissLabel": "Fermer",
348
+ "emptyUnreadTitle": "Vous êtes à jour",
349
+ "emptyMentionsTitle": "Aucune mention"
151
350
  },
152
351
  "realtimeFeed": {
153
352
  "description": "Un flux d’événements en direct qui ajoute les nouveaux éléments en tête.",
154
353
  "emptyTitle": "En attente d’événements",
155
- "emptyBody": "Les événements en direct s’afficheront au fur et à mesure."
354
+ "emptyBody": "Les événements en direct s’afficheront au fur et à mesure.",
355
+ "liveLabel": "Actif",
356
+ "pausedLabel": "En pause",
357
+ "pauseLabel": "Mettre en pause",
358
+ "resumeLabel": "Reprendre"
156
359
  },
157
360
  "timelineVertical": {
158
361
  "description": "Une chronologie verticale d’événements, de versions, d’incidents ou d’étapes d’exécution.",
@@ -181,22 +384,41 @@ export default {
181
384
  "calendarMonth": {
182
385
  "description": "Une grille mensuelle des événements planifiés avec des puces par jour et la navigation entre les mois.",
183
386
  "emptyTitle": "Rien de planifié",
184
- "emptyBody": "Les événements planifiés apparaîtront dans ce calendrier."
387
+ "emptyBody": "Les événements planifiés apparaîtront dans ce calendrier.",
388
+ "previousLabel": "Mois précédent",
389
+ "nextLabel": "Mois suivant",
390
+ "overflowLabel": "+{count} de plus"
185
391
  },
186
392
  "dayAgenda": {
187
393
  "description": "Les événements du jour sélectionné sous forme d'agenda chronologique.",
188
394
  "emptyTitle": "Rien de planifié",
189
- "emptyBody": "Les événements du jour sélectionné apparaîtront ici."
395
+ "emptyBody": "Les événements du jour sélectionné apparaîtront ici.",
396
+ "countLabel": "{count, plural, one {{n} événement} other {{n} événements}}"
190
397
  },
191
398
  "scheduleMatrix": {
192
399
  "description": "Une grille de postes par ressource et par jour avec la couverture quotidienne et une légende.",
193
400
  "emptyTitle": "Aucun poste planifié",
194
- "emptyBody": "Les postes attribués apparaîtront dans ce planning."
401
+ "emptyBody": "Les postes attribués apparaîtront dans ce planning.",
402
+ "resourceLabel": "Ressource",
403
+ "coverageLabel": "Couverture",
404
+ "hoursLabel": "{hours}h"
195
405
  },
196
406
  "capacityBoard": {
197
407
  "description": "Des barres d'utilisation par membre avec une répartition par projet et un statut de charge.",
198
408
  "emptyTitle": "Aucune donnée de charge",
199
- "emptyBody": "L'utilisation des membres apparaîtra ici une fois les affectations créées."
409
+ "emptyBody": "L'utilisation des membres apparaîtra ici une fois les affectations créées.",
410
+ "status": {
411
+ "overloaded": "Surchargé",
412
+ "balanced": "Équilibré",
413
+ "available": "Disponible"
414
+ },
415
+ "utilizationLabel": "{name} : {util} %",
416
+ "assignmentLabel": "{project} · {hours}h",
417
+ "periodLabel": "h · {period}",
418
+ "period": {
419
+ "week": "semaine",
420
+ "month": "mois"
421
+ }
200
422
  },
201
423
  "calendarLegendFilter": {
202
424
  "description": "Catégories d'événements avec compteur ; cocher filtre le calendrier voisin.",
@@ -236,12 +458,28 @@ export default {
236
458
  "masterList": {
237
459
  "description": "Une liste sélectionnable d’enregistrements qui pilote un volet de détail.",
238
460
  "emptyTitle": "Aucun élément",
239
- "emptyBody": "Les éléments apparaîtront ici une fois créés."
461
+ "emptyBody": "Les éléments apparaîtront ici une fois créés.",
462
+ "allLabel": "Tous",
463
+ "toggleLabel": "Basculer {title}",
464
+ "progressLabel": "Progression de {title}"
240
465
  },
241
466
  "logTable": {
242
467
  "description": "Un journal d’événements avec recherche, filtre d’erreurs et actions par ligne.",
243
468
  "emptyTitle": "Aucune entrée de journal",
244
- "emptyBody": "Les événements seront enregistrés ici au fur et à mesure."
469
+ "emptyBody": "Les événements seront enregistrés ici au fur et à mesure.",
470
+ "liveLabel": "Actif",
471
+ "placeholder": "Rechercher dans les journaux…",
472
+ "filterLabel": "Filtre du journal",
473
+ "allLabel": "Tout",
474
+ "errorsLabel": "Erreurs",
475
+ "noMatchesLabel": "Aucune entrée correspondante",
476
+ "todayLabel": "Aujourd’hui",
477
+ "yesterdayLabel": "Hier",
478
+ "action": {
479
+ "retry": "réessayer",
480
+ "download": "télécharger",
481
+ "inspect": "inspecter"
482
+ }
245
483
  },
246
484
  "cardGallery": {
247
485
  "description": "Une galerie responsive de cartes d’entités avec statut et actions rapides.",
@@ -251,17 +489,23 @@ export default {
251
489
  "groupedSummaryTable": {
252
490
  "description": "Lignes groupées avec colonnes d’agrégats, détails dépliables et totaux.",
253
491
  "emptyTitle": "Aucune donnée de synthèse",
254
- "emptyBody": "Les totaux groupés apparaîtront ici dès qu’il y aura des données."
492
+ "emptyBody": "Les totaux groupés apparaîtront ici dès qu’il y aura des données.",
493
+ "groupLabel": "Groupe",
494
+ "totalsLabel": "Total"
255
495
  },
256
496
  "schemaTree": {
257
497
  "description": "Un explorateur de schémas, tables et colonnes avec badges de type et de clé.",
258
498
  "emptyTitle": "Aucun schéma analysé",
259
- "emptyBody": "Connectez une base de données pour explorer son schéma ici."
499
+ "emptyBody": "Connectez une base de données pour explorer son schéma ici.",
500
+ "treeLabel": "Schéma",
501
+ "viewLabel": "vue"
260
502
  },
261
503
  "toggleMatrix": {
262
504
  "description": "Une grille interactive de bascules booléennes pour rôles, règles ou canaux.",
263
505
  "emptyTitle": "Aucune matrice configurée",
264
- "emptyBody": "Les lignes et colonnes apparaîtront ici une fois configurées."
506
+ "emptyBody": "Les lignes et colonnes apparaîtront ici une fois configurées.",
507
+ "matrixLabel": "Matrice de permissions",
508
+ "rowHeaderLabel": "Permission"
265
509
  },
266
510
  "sparklineTable": {
267
511
  "description": "Lignes de métriques avec micro-courbe, valeur actuelle et pastille d'évolution positive ou négative.",
@@ -294,6 +538,40 @@ export default {
294
538
  "emptyTitle": "Rien de détecté",
295
539
  "emptyBody": "Les tables et variables apparaîtront ici sous forme de puces une fois détectées.",
296
540
  "moreLabel": "+{n} de plus"
541
+ },
542
+ "dataGrid": {
543
+ "selectAllLabel": "Sélectionner toutes les lignes",
544
+ "selectRowLabel": "Sélectionner la ligne",
545
+ "sortByLabel": "Trier par {column}",
546
+ "description": "La grille CRUD de référence, avec colonnes triables, sélection de lignes et cellules adaptées au type."
547
+ },
548
+ "paginationFooter": {
549
+ "emptyLabel": "0 ligne",
550
+ "ofLabel": "sur",
551
+ "pageSizeLabel": "Lignes",
552
+ "a11y": {
553
+ "pageSize": "Lignes par page"
554
+ },
555
+ "prevLabel": "Page précédente",
556
+ "nextLabel": "Page suivante",
557
+ "description": "Un pied de page avec la plage de lignes visible, la pagination précédent/suivant et un sélecteur de taille de page."
558
+ },
559
+ "bulkActionToolbar": {
560
+ "selectedLabel": "sélectionnées",
561
+ "clearLabel": "Effacer la sélection",
562
+ "toolbarLabel": "Actions groupées",
563
+ "description": "Une barre d’outils liée à la sélection, affichant le nombre d’éléments sélectionnés et les actions groupées."
564
+ },
565
+ "miniTable": {
566
+ "viewAllLabel": "Tout afficher",
567
+ "description": "Une liste de lignes compacte pour tableau de bord, avec colonnes mappées et un lien « tout afficher »."
568
+ },
569
+ "revealLabel": "Révéler la valeur",
570
+ "hideLabel": "Masquer la valeur",
571
+ "trueLabel": "vrai",
572
+ "falseLabel": "faux",
573
+ "detailKeyValue": {
574
+ "description": "Les champs d’un enregistrement en lignes libellé/valeur, avec des valeurs adaptées au type."
297
575
  }
298
576
  },
299
577
  "boards": {
@@ -347,7 +625,8 @@ export default {
347
625
  "composerPlaceholder": "Écrire un message…",
348
626
  "sendLabel": "Envoyer",
349
627
  "attachLabel": "Ajouter une pièce jointe",
350
- "typingLabel": "en train d'écrire…"
628
+ "typingLabel": "en train d'écrire…",
629
+ "composerLabel": "Message"
351
630
  },
352
631
  "aiChatPanel": {
353
632
  "description": "Un panneau d'assistant pour poser des questions sur votre schéma et vos données.",
@@ -358,7 +637,9 @@ export default {
358
637
  "pendingLabel": "Réflexion…",
359
638
  "configureTitle": "Aucun fournisseur d'IA configuré",
360
639
  "configureBody": "Ajoutez une clé Anthropic ou OpenAI — ou pointez Adminium vers votre propre point de terminaison — pour poser des questions sur votre schéma.",
361
- "configureCtaLabel": "Configurer un fournisseur"
640
+ "configureCtaLabel": "Configurer un fournisseur",
641
+ "assistantLabel": "Assistant",
642
+ "composerLabel": "Poser une question"
362
643
  },
363
644
  "typingIndicator": {
364
645
  "description": "Un avatar et une ligne en italique « en train d’écrire… », liée à un booléen actif par conversation.",
@@ -395,7 +676,8 @@ export default {
395
676
  "emptyTitle": "Aucune région",
396
677
  "emptyBody": "Les lignes comportant un code de région et une valeur numérique apparaissent ici sous forme de tuiles teintées.",
397
678
  "legendLowLabel": "Faible",
398
- "legendHighLabel": "Élevé"
679
+ "legendHighLabel": "Élevé",
680
+ "chartLabel": "Répartition régionale"
399
681
  }
400
682
  },
401
683
  "domain": {
@@ -423,7 +705,9 @@ export default {
423
705
  "blockListLabel": "Blocs du document",
424
706
  "billedToLabel": "Facturé à",
425
707
  "issuedLabel": "Émis le",
426
- "dueLabel": "Échéance"
708
+ "dueLabel": "Échéance",
709
+ "noDocumentTitle": "Aucun document pour l’instant",
710
+ "noDocumentBody": "Choisissez un modèle de départ ou ajoutez un bloc pour commencer."
427
711
  },
428
712
  "blockTotalsSummary": {
429
713
  "description": "Les totaux du document — sous-total, remise, taxe et total dû, recalculés à partir des lignes.",
@@ -451,12 +735,14 @@ export default {
451
735
  "blockBarChart": {
452
736
  "description": "Un mini-graphique à barres dans la couleur du document, dimensionné pour un bloc.",
453
737
  "emptyTitle": "Aucune donnée à représenter",
454
- "emptyBody": "Les barres apparaissent dès que le rapport contient une série."
738
+ "emptyBody": "Les barres apparaissent dès que le rapport contient une série.",
739
+ "a11yLabel": "Graphique à barres"
455
740
  },
456
741
  "blockLineChart": {
457
742
  "description": "Un mini-graphique en courbe avec aire remplie facultative, dimensionné pour un bloc.",
458
743
  "emptyTitle": "Aucune donnée à représenter",
459
- "emptyBody": "La courbe apparaît dès que le rapport contient une série."
744
+ "emptyBody": "La courbe apparaît dès que le rapport contient une série.",
745
+ "a11yLabel": "Graphique en courbes"
460
746
  },
461
747
  "blockTwoColTable": {
462
748
  "description": "Un tableau à deux colonnes avec une ligne d'en-tête stylisée et une colonne de valeurs en chasse fixe.",
@@ -514,7 +800,8 @@ export default {
514
800
  "emptyBody": "Les lignes de signature apparaissent dès que le document désigne un signataire.",
515
801
  "namePlaceholder": "Nom complet",
516
802
  "titlePlaceholder": "Fonction",
517
- "dateLabel": "Date"
803
+ "dateLabel": "Date",
804
+ "nameInputLabel": "Nom du signataire"
518
805
  },
519
806
  "blockTermsCheckbox": {
520
807
  "description": "Une case pour les conditions, avec libellé modifiable.",
@@ -559,77 +846,159 @@ export default {
559
846
  "starterTemplatePicker": {
560
847
  "description": "Une grille de modèles prédéfinis avec vignettes générées ; en choisir un initialise un document complet.",
561
848
  "emptyTitle": "Aucun modèle",
562
- "emptyBody": "Définissez des modèles dans la configuration ou liez une table de modèles."
849
+ "emptyBody": "Définissez des modèles dans la configuration ou liez une table de modèles.",
850
+ "blankLabel": "Vierge",
851
+ "kicker": {
852
+ "invoice": "Facture",
853
+ "report": "Rapport",
854
+ "email": "E-mail"
855
+ }
563
856
  },
564
857
  "sloMonitorCard": {
565
858
  "description": "Carte SLA par service avec statut, disponibilité par rapport à la cible, bande de disponibilité quotidienne, budget d'erreur et latence p95.",
566
859
  "emptyTitle": "Aucun moniteur",
567
- "emptyBody": "Liez une table de moniteurs avec une colonne de statut et de disponibilité."
860
+ "emptyBody": "Liez une table de moniteurs avec une colonne de statut et de disponibilité.",
861
+ "targetLabel": "Cible",
862
+ "budgetLabel": "Budget d’erreur",
863
+ "latencyLabel": "Latence p95",
864
+ "status": {
865
+ "operational": "Opérationnel",
866
+ "degraded": "Dégradé",
867
+ "down": "Hors service",
868
+ "unknown": "Inconnu"
869
+ }
568
870
  },
569
871
  "uptimeSegmentBar": {
570
872
  "description": "Bandes journalières de type page de statut, colorées selon le statut du jour, avec bascule 30/90 jours.",
571
873
  "emptyTitle": "Aucun historique de disponibilité",
572
- "emptyBody": "Les lignes de statut quotidien apparaissent ici sous forme de bande."
874
+ "emptyBody": "Les lignes de statut quotidien apparaissent ici sous forme de bande.",
875
+ "daysAgoLabel": "Il y a {days} jours",
876
+ "todayLabel": "Aujourd’hui",
877
+ "uptimeLabel": "de disponibilité",
878
+ "period30Label": "30 j",
879
+ "period90Label": "90 j",
880
+ "status": {
881
+ "operational": "Opérationnel",
882
+ "degraded": "Dégradé",
883
+ "down": "Hors service",
884
+ "unknown": "Aucune donnée"
885
+ }
573
886
  },
574
887
  "experimentVariantCompare": {
575
888
  "description": "Barres de conversion par variante avec le gain face au témoin et un indicateur de significativité.",
576
889
  "emptyTitle": "Aucune variante",
577
- "emptyBody": "Liez une table de variantes d'expérience avec des chiffres de conversion."
890
+ "emptyBody": "Liez une table de variantes d'expérience avec des chiffres de conversion.",
891
+ "controlLabel": "TÉMOIN",
892
+ "winnerLabel": "GAGNANTE",
893
+ "significanceLabel": "Confiance",
894
+ "verdictSignificantLabel": "Statistiquement significatif — vous pouvez conclure.",
895
+ "verdictInconclusiveLabel": "Pas encore significatif — laissez le test se poursuivre.",
896
+ "countsLabel": "{users} participants · {conversions} conversions"
578
897
  },
579
898
  "creditCardTile": {
580
899
  "description": "Un moyen de paiement enregistré sous forme de carte de marque avec numéro masqué, titulaire et expiration.",
581
900
  "emptyTitle": "Aucun moyen de paiement",
582
- "emptyBody": "Ajoutez une carte pour la voir ici."
901
+ "emptyBody": "Ajoutez une carte pour la voir ici.",
902
+ "defaultLabel": "Par défaut",
903
+ "setDefaultLabel": "Définir par défaut",
904
+ "manageLabel": "Gérer",
905
+ "addLabel": "Ajouter un moyen de paiement",
906
+ "expiresLabel": "Expire le"
583
907
  },
584
908
  "planPricingCards": {
585
909
  "description": "Paliers tarifaires avec bascule mensuel/annuel, listes de fonctionnalités et une offre mise en avant.",
586
910
  "emptyTitle": "Aucune offre",
587
- "emptyBody": "Liez une table d'offres avec un nom et un prix mensuel."
911
+ "emptyBody": "Liez une table d'offres avec un nom et un prix mensuel.",
912
+ "monthlyLabel": "Mensuel",
913
+ "annualLabel": "Annuel",
914
+ "popularLabel": "POPULAIRE",
915
+ "perMonthLabel": "/ mois",
916
+ "billedAnnuallyLabel": "Facturé {total} par an",
917
+ "currentLabel": "Offre actuelle",
918
+ "ctaLabel": "Choisir cette offre"
588
919
  },
589
920
  "apiKeysPanel": {
590
921
  "description": "Clés d'API avec badges d'environnement, valeurs masquées, portées, dernière utilisation et actions de copie, de renouvellement et de révocation.",
591
922
  "emptyTitle": "Aucune clé d'API",
592
- "emptyBody": "Créez une clé pour commencer à appeler l'API."
923
+ "emptyBody": "Créez une clé pour commencer à appeler l'API.",
924
+ "revealedTitle": "Clé créée",
925
+ "revealedBody": "Copiez-la maintenant — elle ne sera plus jamais affichée.",
926
+ "copyLabel": "Copier",
927
+ "copiedLabel": "Copié",
928
+ "revealLabel": "Révéler la clé",
929
+ "hideLabel": "Masquer la clé",
930
+ "rollLabel": "Renouveler la clé",
931
+ "revokeLabel": "Révoquer la clé",
932
+ "neverUsedLabel": "Jamais utilisée",
933
+ "lastUsedLabel": "Dernière utilisation {since}"
593
934
  },
594
935
  "apiPlayground": {
595
936
  "description": "Un compositeur de requête avec paramètres et volet de réponse. Il compose seulement et n'envoie jamais de vraie requête.",
596
937
  "emptyTitle": "Aucun point de terminaison sélectionné",
597
- "emptyBody": "Choisissez un point de terminaison pour composer une requête."
938
+ "emptyBody": "Choisissez un point de terminaison pour composer une requête.",
939
+ "sendLabel": "Envoyer",
940
+ "requestLabel": "Requête",
941
+ "responseLabel": "Réponse",
942
+ "paramsLabel": "Paramètres",
943
+ "responsePlaceholder": "Envoyez la requête pour voir la réponse."
598
944
  },
599
945
  "codeSnippetBlock": {
600
946
  "description": "Un extrait de code copiable avec une puce de langage et des onglets optionnels par langage.",
601
947
  "emptyTitle": "Aucun extrait",
602
- "emptyBody": "Liez une colonne de code ou définissez un extrait statique dans la configuration."
948
+ "emptyBody": "Liez une colonne de code ou définissez un extrait statique dans la configuration.",
949
+ "copyLabel": "Copier",
950
+ "copiedLabel": "Copié"
603
951
  },
604
952
  "webhookEndpointsList": {
605
953
  "description": "Points de terminaison webhook avec leur événement, URL cible, dernier déclenchement et interrupteur d'activation.",
606
954
  "emptyTitle": "Aucun point de terminaison",
607
- "emptyBody": "Ajoutez un point de terminaison webhook pour recevoir les événements de table."
955
+ "emptyBody": "Ajoutez un point de terminaison webhook pour recevoir les événements de table.",
956
+ "neverFiredLabel": "Jamais déclenché",
957
+ "lastFiredLabel": "Dernier déclenchement {since}"
608
958
  },
609
959
  "resourceApiCard": {
610
960
  "description": "La surface d'API générée d'une table : nombre de lignes, badge de sécurité, puces de méthode et volume de requêtes.",
611
961
  "emptyTitle": "Aucune ressource",
612
- "emptyBody": "Liez une table pour afficher sa surface d'API générée."
962
+ "emptyBody": "Liez une table pour afficher sa surface d'API générée.",
963
+ "rlsLabel": "RLS",
964
+ "publicLabel": "Public",
965
+ "rowsLabel": "lignes",
966
+ "perDayLabel": "{count}/jour"
613
967
  },
614
968
  "liveTimer": {
615
969
  "description": "Un chronomètre démarrer/arrêter pour une tâche ; l'arrêter enregistre une entrée de temps.",
616
970
  "emptyTitle": "Aucun chronomètre",
617
- "emptyBody": "Liez une ligne d'entrée de temps avec une tâche et une colonne de durée."
971
+ "emptyBody": "Liez une ligne d'entrée de temps avec une tâche et une colonne de durée.",
972
+ "startLabel": "Démarrer",
973
+ "stopLabel": "Arrêter",
974
+ "taskPlaceholder": "Tâche sans titre"
618
975
  },
619
976
  "syncStatusCard": {
620
977
  "description": "Identité de la connexion, latence, lignes synchronisées et planning de synchronisation, avec une action de synchronisation immédiate.",
621
978
  "emptyTitle": "Aucune connexion",
622
- "emptyBody": "Liez une ligne de connexion pour afficher son état de synchronisation."
979
+ "emptyBody": "Liez une ligne de connexion pour afficher son état de synchronisation.",
980
+ "connectedLabel": "Connectée",
981
+ "disconnectedLabel": "Déconnectée",
982
+ "rowsSyncedLabel": "Lignes synchronisées",
983
+ "tablesLabel": "Tables",
984
+ "lastSyncLabel": "Dernière synchronisation",
985
+ "nextSyncLabel": "Prochaine synchronisation",
986
+ "syncingLabel": "Synchronisation…",
987
+ "syncActionLabel": "Synchroniser maintenant"
623
988
  },
624
989
  "ipAllowlistCard": {
625
990
  "description": "Adresses IP de sortie fixes à autoriser dans un pare-feu, chacune avec un bouton de copie.",
626
991
  "emptyTitle": "Aucune IP de sortie",
627
- "emptyBody": "Les adresses de sortie apparaissent ici une fois la connexion provisionnée."
992
+ "emptyBody": "Les adresses de sortie apparaissent ici une fois la connexion provisionnée.",
993
+ "copyLabel": "Copier",
994
+ "copiedLabel": "Copié"
628
995
  },
629
996
  "onboardingChecklist": {
630
997
  "description": "Étapes de configuration avec estimations de durée et actions, au-dessus d'un anneau et d'une barre de progression recalculés en direct.",
631
998
  "emptyTitle": "Rien à configurer",
632
- "emptyBody": "Ajoutez des étapes d'intégration dans la configuration ou liez une table d'étapes."
999
+ "emptyBody": "Ajoutez des étapes d'intégration dans la configuration ou liez une table d'étapes.",
1000
+ "progressLabel": "{done} sur {total} terminées",
1001
+ "celebrateTitle": "Tout est terminé"
633
1002
  },
634
1003
  "testimonialCard": {
635
1004
  "description": "Une citation client avec avatar et attribution.",
@@ -672,7 +1041,8 @@ export default {
672
1041
  "imageBoard": {
673
1042
  "description": "Une grille de moodboard avec emplacements d'images et légendes, pour les tables contenant des URL d'images.",
674
1043
  "emptyTitle": "Aucune image pour l'instant",
675
- "emptyBody": "Les images de référence apparaîtront sur ce tableau."
1044
+ "emptyBody": "Les images de référence apparaîtront sur ce tableau.",
1045
+ "placeholder": "Déposez une référence"
676
1046
  },
677
1047
  "linkList": {
678
1048
  "description": "Liens de référence avec titres et URL, ouverts dans un nouvel onglet.",
@@ -712,13 +1082,17 @@ export default {
712
1082
  "done": "Terminé",
713
1083
  "successTitle": "Enregistrement créé",
714
1084
  "successBody": "L’enregistrement a été sauvegardé.",
715
- "required": "Ce champ est obligatoire."
1085
+ "required": "Ce champ est obligatoire.",
1086
+ "titleLabel": "Créer un enregistrement",
1087
+ "closeLabel": "Fermer"
716
1088
  },
717
1089
  "drawerForm": {
718
1090
  "description": "Un panneau latéral de création ou d’édition pour les enregistrements à nombreux champs.",
719
1091
  "trigger": "Nouveau",
720
1092
  "submit": "Enregistrer",
721
- "cancel": "Annuler"
1093
+ "cancel": "Annuler",
1094
+ "titleLabel": "Nouvel enregistrement",
1095
+ "closeLabel": "Fermer"
722
1096
  },
723
1097
  "stepper": {
724
1098
  "description": "Un indicateur d’étapes montrant l’avancement d’un parcours en plusieurs étapes.",
@@ -768,7 +1142,23 @@ export default {
768
1142
  "operator": "Opérateur",
769
1143
  "value": "Valeur",
770
1144
  "valuePlaceholder": "Valeur…",
771
- "emptyBody": "Aucune condition — ajoutez-en une pour définir ce segment."
1145
+ "emptyBody": "Aucune condition — ajoutez-en une pour définir ce segment.",
1146
+ "op": {
1147
+ "eq": "est",
1148
+ "neq": "n’est pas",
1149
+ "gt": "est supérieur à",
1150
+ "gte": "est supérieur ou égal à",
1151
+ "lt": "est inférieur à",
1152
+ "lte": "est inférieur ou égal à",
1153
+ "contains": "contient",
1154
+ "not-contains": "ne contient pas",
1155
+ "starts-with": "commence par",
1156
+ "in": "fait partie de",
1157
+ "before": "est avant",
1158
+ "after": "est après",
1159
+ "is-null": "est vide",
1160
+ "is-not-null": "n’est pas vide"
1161
+ }
772
1162
  },
773
1163
  "flowBuilder": {
774
1164
  "description": "Un canevas vertical de workflow : étapes déclencheur, condition et action.",
@@ -833,14 +1223,27 @@ export default {
833
1223
  "required": "Obligatoire",
834
1224
  "questionPlaceholder": "Posez une question…",
835
1225
  "emptyTitle": "Aucune question",
836
- "emptyBody": "Choisissez un type de question pour commencer votre sondage."
1226
+ "emptyBody": "Choisissez un type de question pour commencer votre sondage.",
1227
+ "questionLabel": "Question",
1228
+ "dropdownPlaceholder": "Choisir…",
1229
+ "kind": {
1230
+ "single-choice": "Choix unique",
1231
+ "multi-choice": "Choix multiple",
1232
+ "dropdown": "Liste déroulante",
1233
+ "short-text": "Texte court",
1234
+ "long-text": "Texte long",
1235
+ "rating": "Note en étoiles",
1236
+ "nps": "NPS 0–10",
1237
+ "date": "Date"
1238
+ }
837
1239
  },
838
1240
  "inlineEditableField": {
839
1241
  "description": "Une valeur modifiable d’un clic dans un document ou un canevas.",
840
1242
  "edit": "Modifier",
841
1243
  "save": "Enregistrer",
842
1244
  "cancel": "Annuler",
843
- "empty": "Vide"
1245
+ "empty": "Vide",
1246
+ "valueLabel": "Valeur"
844
1247
  },
845
1248
  "passwordStrengthMeter": {
846
1249
  "description": "Un indicateur en quatre segments de la robustesse du mot de passe.",
@@ -865,7 +1268,7 @@ export default {
865
1268
  "navigate": "Naviguer",
866
1269
  "select": "Ouvrir",
867
1270
  "close": "Fermer",
868
- "emptyTitle": "Aucun résultat",
1271
+ "emptyTitle": "Aucun résultat pour « {query} »",
869
1272
  "emptyBody": "Commencez à taper pour rechercher.",
870
1273
  "groupActions": "Actions",
871
1274
  "groupNavigate": "Naviguer",
@@ -881,7 +1284,9 @@ export default {
881
1284
  "all": "Tout",
882
1285
  "summary": "{count} résultats pour « {query} »",
883
1286
  "emptyTitle": "Aucun résultat",
884
- "emptyBody": "Essayez un autre terme de recherche."
1287
+ "emptyBody": "Essayez un autre terme de recherche.",
1288
+ "searchLabel": "Rechercher",
1289
+ "facetRailLabel": "Filtrer par type"
885
1290
  },
886
1291
  "breadcrumb": {
887
1292
  "description": "Le fil d’Ariane de l’enregistrement ou du dossier courant.",
@@ -900,11 +1305,23 @@ export default {
900
1305
  "description": "L’aide-mémoire des raccourcis clavier.",
901
1306
  "footerHint": "Appuyez sur ? à tout moment",
902
1307
  "then": "puis",
903
- "emptyTitle": "Aucun raccourci enregistré."
1308
+ "emptyTitle": "Aucun raccourci enregistré.",
1309
+ "generalGroupLabel": "Général",
1310
+ "navigationGroupLabel": "Navigation",
1311
+ "recordsGroupLabel": "Enregistrements",
1312
+ "openCommandPaletteLabel": "Ouvrir la palette de commandes",
1313
+ "searchLabel": "Rechercher",
1314
+ "showShortcutsLabel": "Afficher les raccourcis",
1315
+ "goToDashboardLabel": "Aller au tableau de bord",
1316
+ "goToOrdersLabel": "Aller aux commandes",
1317
+ "newRecordLabel": "Nouvel enregistrement",
1318
+ "saveLabel": "Enregistrer",
1319
+ "undoLabel": "Annuler"
904
1320
  },
905
1321
  "avatarStack": {
906
1322
  "description": "Des avatars superposés avec débordement « +N » et présence optionnelle.",
907
- "online": "{count} en ligne"
1323
+ "online": "{count} en ligne",
1324
+ "a11yLabel": "Personnes"
908
1325
  }
909
1326
  },
910
1327
  "system": {
@@ -977,6 +1394,12 @@ export default {
977
1394
  "tls": "TLS",
978
1395
  "auth": "Authentification",
979
1396
  "latency": "Latence"
1397
+ },
1398
+ "widgetMissing": {
1399
+ "description": "La carte de repli affichée lorsqu’une page enregistrée référence un widget qui n’est pas installé.",
1400
+ "title": "Widget indisponible",
1401
+ "bodyLead": "Aucun widget n’est enregistré sous",
1402
+ "bodyTail": "Il appartient peut-être à une version plus récente ou à une extension désinstallée."
980
1403
  }
981
1404
  }
982
1405
  },
@@ -989,6 +1412,351 @@ export default {
989
1412
  "resized": "{title} redimensionné à {w} colonnes sur {h} lignes.",
990
1413
  "committed": "{title} placé à la colonne {col}, ligne {row}.",
991
1414
  "reverted": "{title} remis à sa position initiale."
1415
+ },
1416
+ "draggableRole": "widget déplaçable"
1417
+ },
1418
+ "templates": {
1419
+ "crud": {
1420
+ "newRow": "Nouvelle ligne",
1421
+ "exportAction": "Exporter",
1422
+ "searchPlaceholder": "Rechercher dans {table}…",
1423
+ "removeFilter": "Supprimer le filtre {column}",
1424
+ "queryFailed": "Échec de la requête",
1425
+ "loadingRows": "Chargement des lignes",
1426
+ "noMatchesTitle": "Aucune ligne correspondante",
1427
+ "emptyTitle": "{count, plural, one {Pas encore de {entity}} other {Pas encore de {entity}}}",
1428
+ "createTitle": "Ajouter {entity}",
1429
+ "createSubtitle": "Crée une ligne dans {table}.",
1430
+ "createSubmit": "Ajouter {entity}",
1431
+ "createSuccessTitle": "{name} ajouté",
1432
+ "createSuccessBody": "Vous pouvez annuler cette action depuis la notification.",
1433
+ "editTitle": "Modifier {entity}",
1434
+ "saveSubmit": "Enregistrer les modifications",
1435
+ "deleteTitle": "Supprimer {entity}",
1436
+ "deletePreflight": "Vérification des références…",
1437
+ "deleteNoReferences": "Cette ligne n’a aucune référence entrante.",
1438
+ "deleteConsequencesIntro": "Supprimer cette ligne affecte aussi :",
1439
+ "referenceRows": "{count, plural, one {{n} ligne} other {{n} lignes}}",
1440
+ "confirmPrompt": "Saisissez {value} pour confirmer",
1441
+ "bulkDeleteTitle": "{count, plural, one {Supprimer {n} ligne} other {Supprimer {n} lignes}}",
1442
+ "bulkDeleteBody": "Les conséquences référentielles s’appliquent à chaque ligne sélectionnée.",
1443
+ "bulkDeleteConfirm": "Supprimer les lignes",
1444
+ "uniqueHelper": "Doit être unique dans {table}.",
1445
+ "uniqueHelperCounted": "{count, plural, one {Vérifié sur {n} ligne.} other {Vérifié sur {n} lignes.}}",
1446
+ "toast": {
1447
+ "created": "{entity} créé.",
1448
+ "createFailed": "Échec de la création.",
1449
+ "saved": "Modifications enregistrées.",
1450
+ "updateFailed": "Échec de la mise à jour.",
1451
+ "deleted": "{name} supprimé.",
1452
+ "deleteFailed": "Échec de la suppression.",
1453
+ "bulkDeleted": "{count, plural, one {{n} ligne supprimée.} other {{n} lignes supprimées.}}",
1454
+ "bulkDeleteFailed": "Échec de la suppression groupée.",
1455
+ "undone": "Modification annulée.",
1456
+ "undoFailed": "Échec de l’annulation."
1457
+ },
1458
+ "detail": {
1459
+ "fields": "Champs",
1460
+ "inboundReferences": "références entrantes",
1461
+ "relatedCount": "{count, plural, one {{n} enregistrement lié dans {table}} other {{n} enregistrements liés dans {table}}}",
1462
+ "loadError": "Impossible de charger l’enregistrement."
1463
+ }
1464
+ },
1465
+ "queue": {
1466
+ "allSegment": "Tout",
1467
+ "daysUnit": "{count, plural, one {{count} jour} other {{count} jours}}",
1468
+ "approvedToast": "{count} approuvées.",
1469
+ "rejectedToast": "{count} rejetées.",
1470
+ "undoneToast": "Décision annulée.",
1471
+ "undoFailedToast": "Impossible d’annuler cette décision.",
1472
+ "failedToast": "Échec de la décision.",
1473
+ "invalidConfig": "La configuration enregistrée de cette file d’attente est invalide. Régénérez la page pour la restaurer.",
1474
+ "queueLabel": "File d’attente",
1475
+ "statusFilterLabel": "Filtre de statut",
1476
+ "errorTitle": "Cette file d’attente n’a pas pu être chargée",
1477
+ "loading": "Chargement de la file d’attente",
1478
+ "emptyTitle": "Rien dans la file d’attente",
1479
+ "emptyBody": "Les nouvelles demandes apparaissent ici à mesure qu’elles arrivent.",
1480
+ "caughtUpTitle": "Vous êtes à jour",
1481
+ "caughtUpBody": "Aucune demande dans cet onglet pour l’instant.",
1482
+ "selectItem": "Sélectionner {title}",
1483
+ "selectPrompt": "Sélectionnez une demande",
1484
+ "selectBody": "Choisissez un élément pour en examiner les détails.",
1485
+ "rejectTitle": "Rejeter les demandes",
1486
+ "rejectCount": "Sélectionnées · {count}",
1487
+ "rejectPlaceholder": "Ajoutez une note pour le demandeur…",
1488
+ "rejectReasonLabel": "Motif du rejet",
1489
+ "rejectNote": "Le demandeur sera notifié avec votre note."
1490
+ },
1491
+ "dashboard": {
1492
+ "invalidLayout": "La disposition enregistrée de ce tableau de bord est invalide. Régénérez la page ou réinitialisez sa disposition."
1493
+ },
1494
+ "builder": {
1495
+ "publish": "Publier",
1496
+ "paletteTitle": "Blocs",
1497
+ "inspectorTitle": "Inspecteur",
1498
+ "startFromTemplate": "Partir d’un modèle",
1499
+ "untitledDoc": "Document sans titre",
1500
+ "invalidConfig": "La configuration enregistrée de cette page d’éditeur est invalide. Régénérez la page ou réinitialisez-la.",
1501
+ "starterPicker": {
1502
+ "subtitle": "Votre sélection remplace le brouillon actuel."
1503
+ },
1504
+ "inspector": {
1505
+ "titleLabel": "Titre",
1506
+ "numberLabel": "Numéro",
1507
+ "currencyLabel": "Devise",
1508
+ "taxRateLabel": "Taux de taxe %",
1509
+ "modulesLabel": "Modules"
1510
+ },
1511
+ "summary": {
1512
+ "questions": "Questions",
1513
+ "estLength": "Durée est.",
1514
+ "estMinutes": "~{minutes} min",
1515
+ "steps": "Étapes",
1516
+ "triggers": "Déclencheurs",
1517
+ "conditions": "Conditions",
1518
+ "actions": "Actions",
1519
+ "triggerLocked": "L’étape de déclenchement ne peut pas être supprimée."
1520
+ },
1521
+ "publishModal": {
1522
+ "confirmTitle": "Publier le sondage ?",
1523
+ "confirmSubtitle": "Vérifiez avant la mise en ligne.",
1524
+ "confirmCta": "Publier le sondage",
1525
+ "publishedTitle": "Sondage publié",
1526
+ "publishedSubtitle": "Votre sondage est en ligne et collecte des réponses dès maintenant."
1527
+ },
1528
+ "blocks": {
1529
+ "block-totals-summary": "Récapitulatif des totaux",
1530
+ "block-line-items": "Lignes du document",
1531
+ "block-kpi-row": "Rangée de KPI",
1532
+ "block-bar-chart": "Graphique à barres",
1533
+ "block-line-chart": "Graphique en courbes",
1534
+ "block-two-col-table": "Tableau à deux colonnes",
1535
+ "block-tax-breakdown": "Détail des taxes",
1536
+ "block-multi-currency": "Multidevise",
1537
+ "block-payment-history": "Historique des paiements",
1538
+ "block-discount-codes": "Codes de remise",
1539
+ "block-loyalty-banner": "Points de fidélité",
1540
+ "block-recurring-banner": "Récurrence",
1541
+ "block-qr-pay": "QR de paiement",
1542
+ "block-delivery-stepper": "Suivi de livraison",
1543
+ "block-signature": "Signature",
1544
+ "block-terms-checkbox": "Conditions",
1545
+ "block-approval": "Approbation",
1546
+ "block-attachments": "Pièces jointes",
1547
+ "block-late-fees": "Pénalités de retard",
1548
+ "block-image-placeholder": "Image",
1549
+ "block-contact": "Contact",
1550
+ "block-highlight-box": "Encadré"
1551
+ },
1552
+ "starters": {
1553
+ "titles": {
1554
+ "st-standard": "Facture standard",
1555
+ "st-recurring": "Abonnement récurrent",
1556
+ "st-deposit": "Demande d’acompte",
1557
+ "st-credit-note": "Avoir",
1558
+ "st-late-reminder": "Relance de paiement en retard",
1559
+ "st-quote": "Devis / estimation",
1560
+ "st-proforma": "Pro forma",
1561
+ "st-receipt": "Reçu de paiement",
1562
+ "st-retainer": "Provision sur honoraires",
1563
+ "st-usage": "Facture à l’usage",
1564
+ "st-milestone": "Jalon de projet",
1565
+ "st-donation": "Reçu de don (numéro fiscal)",
1566
+ "st-monthly": "Récapitulatif mensuel",
1567
+ "st-quarterly": "Bilan trimestriel",
1568
+ "st-usage-report": "Détail de la consommation",
1569
+ "st-exec": "Synthèse d’une page",
1570
+ "st-welcome": "E-mail de bienvenue",
1571
+ "st-receipt-email": "Reçu de facture",
1572
+ "st-digest": "Résumé hebdomadaire",
1573
+ "st-dunning": "Rappel de paiement"
1574
+ },
1575
+ "categories": {
1576
+ "billing": "Facturation",
1577
+ "sales": "Ventes",
1578
+ "nonProfit": "Associatif",
1579
+ "reports": "Rapports",
1580
+ "lifecycle": "Cycle de vie",
1581
+ "transactional": "Transactionnel",
1582
+ "marketing": "Marketing"
1583
+ }
1584
+ }
1585
+ },
1586
+ "common": {
1587
+ "clearFilters": "Effacer les filtres",
1588
+ "noMatchesBody": "Essayez une autre recherche ou supprimez un filtre.",
1589
+ "detailLabel": "Détail",
1590
+ "loadingRecord": "Chargement de l’enregistrement"
1591
+ },
1592
+ "directory": {
1593
+ "invalidConfig": "La configuration enregistrée de cet annuaire est invalide. Régénérez la page pour la restaurer.",
1594
+ "searchPlaceholder": "Rechercher des personnes…",
1595
+ "memberCount": "{count, plural, one {{n} personne} other {{n} personnes}}",
1596
+ "errorTitle": "Cet annuaire n’a pas pu être chargé",
1597
+ "loading": "Chargement des personnes",
1598
+ "emptyTitle": "Aucune personne pour l’instant",
1599
+ "emptyBody": "Les personnes apparaissent ici à mesure que des lignes arrivent dans la table.",
1600
+ "noMatchesTitle": "Aucune personne correspondante",
1601
+ "detailTitle": "Personne"
1602
+ },
1603
+ "masterDetail": {
1604
+ "invalidConfig": "La configuration enregistrée de cette page est invalide. Régénérez la page pour la restaurer.",
1605
+ "railTitle": "Enregistrements",
1606
+ "errorTitle": "Cette liste n’a pas pu être chargée",
1607
+ "loading": "Chargement des enregistrements",
1608
+ "emptyBody": "Les enregistrements apparaissent ici à mesure que des lignes arrivent dans la table.",
1609
+ "noMatchesTitle": "Aucun enregistrement correspondant",
1610
+ "noMatchesBody": "Essayez de supprimer un filtre.",
1611
+ "selectPrompt": "Sélectionnez un enregistrement",
1612
+ "selectBody": "Choisissez un élément de la liste pour en voir les détails."
1613
+ },
1614
+ "chat": {
1615
+ "invalidLayout": "La disposition enregistrée de cette page de messagerie est invalide. Régénérez la page ou réinitialisez sa disposition.",
1616
+ "noInboxTitle": "Aucune boîte de réception sur cette page",
1617
+ "noInboxBody": "Régénérez la page.",
1618
+ "conversationsFailed": "La requête des conversations a échoué",
1619
+ "messagesFailed": "La requête des messages a échoué",
1620
+ "loadingConversations": "Chargement des conversations",
1621
+ "loadingMessages": "Chargement des messages",
1622
+ "selectTitle": "Sélectionnez une conversation",
1623
+ "selectBody": "Choisissez une conversation dans la boîte de réception pour lire ses messages."
1624
+ },
1625
+ "files": {
1626
+ "allFiles": "Tous les fichiers",
1627
+ "recent": "Récents",
1628
+ "starred": "Favoris",
1629
+ "invalidLayout": "La disposition enregistrée de cette page de fichiers est invalide. Régénérez la page ou réinitialisez sa disposition.",
1630
+ "missingSlotTitle": "Aucun explorateur de fichiers sur cette page",
1631
+ "missingSlotBody": "La disposition enregistrée n’a aucun emplacement d’explorateur. Régénérez la page.",
1632
+ "loadFailed": "La requête des fichiers a échoué",
1633
+ "loading": "Chargement des fichiers",
1634
+ "uploadsUnavailable": "Les téléversements ne sont pas encore disponibles sur cette page.",
1635
+ "previewTitle": "Fichier",
1636
+ "kindLabel": "Nature",
1637
+ "linkLabel": "Lien"
1638
+ },
1639
+ "logViewer": {
1640
+ "invalidLayout": "La disposition enregistrée de cette page de journal est invalide. Régénérez la page ou réinitialisez sa disposition.",
1641
+ "levelFilterLabel": "Filtre de niveau de journal",
1642
+ "timeFilterLabel": "Filtre de fenêtre temporelle",
1643
+ "window": {
1644
+ "1h": "1 h",
1645
+ "24h": "24 h",
1646
+ "7d": "7 j"
1647
+ },
1648
+ "heldCount": "+{count}",
1649
+ "missingSlotTitle": "Aucun widget de journal sur cette page",
1650
+ "missingSlotBody": "La disposition enregistrée n’a aucun emplacement de journal. Régénérez la page.",
1651
+ "loadFailed": "La requête du journal a échoué",
1652
+ "loading": "Chargement des entrées de journal",
1653
+ "traceTitle": "Trace",
1654
+ "latestTitle": "Activité récente",
1655
+ "backToLatest": "Revenir aux dernières entrées",
1656
+ "eventFallback": "Événement"
1657
+ },
1658
+ "calendar": {
1659
+ "eventCount": "{count, plural, one {{n} événement} other {{n} événements}}",
1660
+ "composePlaceholder": "Titre de l’événement…",
1661
+ "addEvent": "Ajouter un événement",
1662
+ "dateRange": "Période",
1663
+ "agendaTitle": "Agenda",
1664
+ "categoriesTitle": "Catégories",
1665
+ "upcomingTitle": "À venir",
1666
+ "invalidLayout": "La disposition enregistrée de ce calendrier est invalide. Régénérez la page ou réinitialisez sa disposition."
1667
+ },
1668
+ "scheduler": {
1669
+ "previousWeek": "Semaine précédente",
1670
+ "nextWeek": "Semaine suivante",
1671
+ "week": "Semaine",
1672
+ "month": "Mois",
1673
+ "invalidLayout": "La disposition enregistrée de ce planning est invalide. Régénérez la page ou réinitialisez sa disposition.",
1674
+ "shiftCount": "{count, plural, one {{n} créneau} other {{n} créneaux}}",
1675
+ "addShift": "Ajouter un créneau"
1676
+ },
1677
+ "settings": {
1678
+ "title": "Paramètres de notification",
1679
+ "subtitle": "Choisissez de quoi vous êtes notifié et comment",
1680
+ "matrixLabel": "Me notifier pour",
1681
+ "rowHeader": "Événement",
1682
+ "saved": "Enregistré",
1683
+ "unavailableTag": "Pas encore disponible",
1684
+ "loading": "Chargement des préférences",
1685
+ "errorTitle": "Ces paramètres n’ont pas pu être chargés",
1686
+ "emptyTitle": "Rien à configurer pour l’instant",
1687
+ "emptyBody": "Les événements de notification apparaissent ici à mesure que leurs producteurs sont livrés."
1688
+ },
1689
+ "pageCrud": {
1690
+ "description": "La page de table de référence : grille de données avec recherche, formulaires de création et d’édition, suppressions sûres avec vérification des références et modifications annulables."
1691
+ },
1692
+ "pageDashboard": {
1693
+ "description": "Un tableau de bord de widgets sur vos données : cartes de KPI, graphiques et listes sur une grille modifiable."
1694
+ },
1695
+ "pageBoard": {
1696
+ "description": "Un tableau kanban regroupé par un champ de statut — faites glisser les cartes entre les colonnes pour mettre à jour les enregistrements."
1697
+ },
1698
+ "pageCalendar": {
1699
+ "description": "Un calendrier mensuel avec agenda, filtres de catégorie et saisie rapide d’événements à partir d’un champ de date."
1700
+ },
1701
+ "pageScheduler": {
1702
+ "description": "Une matrice de créneaux semaine par ressource, avec suivi de la capacité et totaux de couverture."
1703
+ },
1704
+ "pageDirectory": {
1705
+ "description": "Un annuaire de personnes avec recherche, filtres de groupe et un panneau latéral de profil."
1706
+ },
1707
+ "pageMasterDetail": {
1708
+ "description": "Une disposition liste et détail : choisissez un enregistrement à gauche, travaillez dessus à droite."
1709
+ },
1710
+ "pageQueueInbox": {
1711
+ "description": "Une file d’attente de revue avec décisions d’approbation ou de rejet, actions groupées et annulation."
1712
+ },
1713
+ "pageLogViewer": {
1714
+ "description": "Un tableau de journal en suivi direct, avec filtres de niveau et de temps et un panneau latéral de trace."
1715
+ },
1716
+ "pageFiles": {
1717
+ "description": "Un explorateur de fichiers avec dossiers intelligents, téléversements et un panneau latéral d’aperçu."
1718
+ },
1719
+ "pageChat": {
1720
+ "description": "Une boîte de réception de conversations à côté d’un fil de messages, liée à vos tables de messages."
1721
+ },
1722
+ "pageBuilder": {
1723
+ "description": "Un éditeur de documents en glisser-déposer avec palette de blocs, inspecteur et flux de publication."
1724
+ },
1725
+ "pageWizard": {
1726
+ "description": "Un flux guidé en plusieurs étapes qui accompagne les utilisateurs dans un processus structuré."
1727
+ },
1728
+ "pageSettings": {
1729
+ "description": "Une matrice de préférences de notification avec interrupteurs par canal et enregistrement automatique."
1730
+ }
1731
+ },
1732
+ "frame": {
1733
+ "noResult": "Aucun résultat pour ce widget",
1734
+ "emptyTitle": "Aucune donnée pour cette période",
1735
+ "loadError": "Une erreur s’est produite lors du chargement de ce widget.",
1736
+ "renderError": "Ce widget n’a pas pu s’afficher.",
1737
+ "refreshing": "Actualisation",
1738
+ "infoLabel": "Infos du widget",
1739
+ "menuLabel": "Menu du widget"
1740
+ },
1741
+ "charts": {
1742
+ "livePillLabel": "En direct",
1743
+ "forecast": {
1744
+ "nowLabel": "Maintenant",
1745
+ "forecastLabel": "Prévision",
1746
+ "actualLabel": "Réel"
1747
+ },
1748
+ "otherLabel": "Autre",
1749
+ "heat": {
1750
+ "lessLabel": "Moins",
1751
+ "moreLabel": "Plus"
1752
+ },
1753
+ "choropleth": {
1754
+ "lowLabel": "Faible",
1755
+ "highLabel": "Élevé"
1756
+ },
1757
+ "funnel": {
1758
+ "stepConversion": "{pct}% poursuivent",
1759
+ "overallConversion": "{pct}% au total"
992
1760
  }
993
1761
  }
994
1762
  };