@adminiumjs/i18n 0.3.0-rc.1 → 0.3.0-rc.3

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 (183) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +122 -24
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/resources/ar-eg/apiDocs.d.ts +101 -0
  6. package/dist/resources/ar-eg/apiDocs.d.ts.map +1 -0
  7. package/dist/resources/ar-eg/apiDocs.js +101 -0
  8. package/dist/resources/ar-eg/apiDocs.js.map +1 -0
  9. package/dist/resources/ar-eg/common.d.ts +35 -55
  10. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  11. package/dist/resources/ar-eg/common.js +42 -62
  12. package/dist/resources/ar-eg/common.js.map +1 -1
  13. package/dist/resources/ar-eg/studio.d.ts +369 -5
  14. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  15. package/dist/resources/ar-eg/studio.js +379 -15
  16. package/dist/resources/ar-eg/studio.js.map +1 -1
  17. package/dist/resources/ar-eg/ui.d.ts +14 -0
  18. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  19. package/dist/resources/ar-eg/ui.js +15 -1
  20. package/dist/resources/ar-eg/ui.js.map +1 -1
  21. package/dist/resources/cs-cz/apiDocs.d.ts +101 -0
  22. package/dist/resources/cs-cz/apiDocs.d.ts.map +1 -0
  23. package/dist/resources/cs-cz/apiDocs.js +101 -0
  24. package/dist/resources/cs-cz/apiDocs.js.map +1 -0
  25. package/dist/resources/cs-cz/common.d.ts +35 -55
  26. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  27. package/dist/resources/cs-cz/common.js +42 -62
  28. package/dist/resources/cs-cz/common.js.map +1 -1
  29. package/dist/resources/cs-cz/studio.d.ts +369 -5
  30. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  31. package/dist/resources/cs-cz/studio.js +379 -15
  32. package/dist/resources/cs-cz/studio.js.map +1 -1
  33. package/dist/resources/cs-cz/ui.d.ts +14 -0
  34. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  35. package/dist/resources/cs-cz/ui.js +15 -1
  36. package/dist/resources/cs-cz/ui.js.map +1 -1
  37. package/dist/resources/da-dk/apiDocs.d.ts +101 -0
  38. package/dist/resources/da-dk/apiDocs.d.ts.map +1 -0
  39. package/dist/resources/da-dk/apiDocs.js +101 -0
  40. package/dist/resources/da-dk/apiDocs.js.map +1 -0
  41. package/dist/resources/da-dk/common.d.ts +35 -55
  42. package/dist/resources/da-dk/common.d.ts.map +1 -1
  43. package/dist/resources/da-dk/common.js +42 -62
  44. package/dist/resources/da-dk/common.js.map +1 -1
  45. package/dist/resources/da-dk/studio.d.ts +369 -5
  46. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  47. package/dist/resources/da-dk/studio.js +379 -15
  48. package/dist/resources/da-dk/studio.js.map +1 -1
  49. package/dist/resources/da-dk/ui.d.ts +14 -0
  50. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  51. package/dist/resources/da-dk/ui.js +15 -1
  52. package/dist/resources/da-dk/ui.js.map +1 -1
  53. package/dist/resources/de-de/apiDocs.d.ts +101 -0
  54. package/dist/resources/de-de/apiDocs.d.ts.map +1 -0
  55. package/dist/resources/de-de/apiDocs.js +101 -0
  56. package/dist/resources/de-de/apiDocs.js.map +1 -0
  57. package/dist/resources/de-de/common.d.ts +35 -55
  58. package/dist/resources/de-de/common.d.ts.map +1 -1
  59. package/dist/resources/de-de/common.js +42 -62
  60. package/dist/resources/de-de/common.js.map +1 -1
  61. package/dist/resources/de-de/studio.d.ts +369 -5
  62. package/dist/resources/de-de/studio.d.ts.map +1 -1
  63. package/dist/resources/de-de/studio.js +379 -15
  64. package/dist/resources/de-de/studio.js.map +1 -1
  65. package/dist/resources/de-de/ui.d.ts +14 -0
  66. package/dist/resources/de-de/ui.d.ts.map +1 -1
  67. package/dist/resources/de-de/ui.js +15 -1
  68. package/dist/resources/de-de/ui.js.map +1 -1
  69. package/dist/resources/en-us/apiDocs.d.ts +101 -0
  70. package/dist/resources/en-us/apiDocs.d.ts.map +1 -0
  71. package/dist/resources/en-us/apiDocs.js +101 -0
  72. package/dist/resources/en-us/apiDocs.js.map +1 -0
  73. package/dist/resources/en-us/common.d.ts +35 -55
  74. package/dist/resources/en-us/common.d.ts.map +1 -1
  75. package/dist/resources/en-us/common.js +42 -62
  76. package/dist/resources/en-us/common.js.map +1 -1
  77. package/dist/resources/en-us/studio.d.ts +369 -5
  78. package/dist/resources/en-us/studio.d.ts.map +1 -1
  79. package/dist/resources/en-us/studio.js +379 -15
  80. package/dist/resources/en-us/studio.js.map +1 -1
  81. package/dist/resources/en-us/ui.d.ts +14 -0
  82. package/dist/resources/en-us/ui.d.ts.map +1 -1
  83. package/dist/resources/en-us/ui.js +15 -1
  84. package/dist/resources/en-us/ui.js.map +1 -1
  85. package/dist/resources/fr-fr/apiDocs.d.ts +101 -0
  86. package/dist/resources/fr-fr/apiDocs.d.ts.map +1 -0
  87. package/dist/resources/fr-fr/apiDocs.js +101 -0
  88. package/dist/resources/fr-fr/apiDocs.js.map +1 -0
  89. package/dist/resources/fr-fr/common.d.ts +35 -55
  90. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  91. package/dist/resources/fr-fr/common.js +42 -62
  92. package/dist/resources/fr-fr/common.js.map +1 -1
  93. package/dist/resources/fr-fr/studio.d.ts +369 -5
  94. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  95. package/dist/resources/fr-fr/studio.js +379 -15
  96. package/dist/resources/fr-fr/studio.js.map +1 -1
  97. package/dist/resources/fr-fr/ui.d.ts +14 -0
  98. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  99. package/dist/resources/fr-fr/ui.js +15 -1
  100. package/dist/resources/fr-fr/ui.js.map +1 -1
  101. package/dist/resources/index.d.ts.map +1 -1
  102. package/dist/resources/index.js +2 -0
  103. package/dist/resources/index.js.map +1 -1
  104. package/dist/resources/lazy.d.ts.map +1 -1
  105. package/dist/resources/lazy.js +8 -0
  106. package/dist/resources/lazy.js.map +1 -1
  107. package/dist/resources/namespaces.d.ts +5 -4
  108. package/dist/resources/namespaces.d.ts.map +1 -1
  109. package/dist/resources/namespaces.js +11 -2
  110. package/dist/resources/namespaces.js.map +1 -1
  111. package/dist/resources/zh-cn/apiDocs.d.ts +101 -0
  112. package/dist/resources/zh-cn/apiDocs.d.ts.map +1 -0
  113. package/dist/resources/zh-cn/apiDocs.js +101 -0
  114. package/dist/resources/zh-cn/apiDocs.js.map +1 -0
  115. package/dist/resources/zh-cn/common.d.ts +35 -55
  116. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  117. package/dist/resources/zh-cn/common.js +42 -62
  118. package/dist/resources/zh-cn/common.js.map +1 -1
  119. package/dist/resources/zh-cn/studio.d.ts +369 -5
  120. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  121. package/dist/resources/zh-cn/studio.js +379 -15
  122. package/dist/resources/zh-cn/studio.js.map +1 -1
  123. package/dist/resources/zh-cn/ui.d.ts +14 -0
  124. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  125. package/dist/resources/zh-cn/ui.js +15 -1
  126. package/dist/resources/zh-cn/ui.js.map +1 -1
  127. package/dist/resources/zh-tw/apiDocs.d.ts +101 -0
  128. package/dist/resources/zh-tw/apiDocs.d.ts.map +1 -0
  129. package/dist/resources/zh-tw/apiDocs.js +101 -0
  130. package/dist/resources/zh-tw/apiDocs.js.map +1 -0
  131. package/dist/resources/zh-tw/common.d.ts +35 -55
  132. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  133. package/dist/resources/zh-tw/common.js +42 -62
  134. package/dist/resources/zh-tw/common.js.map +1 -1
  135. package/dist/resources/zh-tw/studio.d.ts +369 -5
  136. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  137. package/dist/resources/zh-tw/studio.js +379 -15
  138. package/dist/resources/zh-tw/studio.js.map +1 -1
  139. package/dist/resources/zh-tw/ui.d.ts +14 -0
  140. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  141. package/dist/resources/zh-tw/ui.js +15 -1
  142. package/dist/resources/zh-tw/ui.js.map +1 -1
  143. package/dist/review-status.js +7 -7
  144. package/locales/ar-EG/.meta.json +1395 -155
  145. package/locales/ar-EG/apiDocs.json +90 -0
  146. package/locales/ar-EG/common.json +42 -62
  147. package/locales/ar-EG/studio.json +379 -15
  148. package/locales/ar-EG/ui.json +15 -1
  149. package/locales/cs-CZ/.meta.json +1395 -155
  150. package/locales/cs-CZ/apiDocs.json +90 -0
  151. package/locales/cs-CZ/common.json +42 -62
  152. package/locales/cs-CZ/studio.json +379 -15
  153. package/locales/cs-CZ/ui.json +15 -1
  154. package/locales/da-DK/.meta.json +1396 -156
  155. package/locales/da-DK/apiDocs.json +90 -0
  156. package/locales/da-DK/common.json +42 -62
  157. package/locales/da-DK/studio.json +379 -15
  158. package/locales/da-DK/ui.json +15 -1
  159. package/locales/de-DE/.meta.json +1395 -155
  160. package/locales/de-DE/apiDocs.json +90 -0
  161. package/locales/de-DE/common.json +42 -62
  162. package/locales/de-DE/studio.json +379 -15
  163. package/locales/de-DE/ui.json +15 -1
  164. package/locales/en-US/apiDocs.json +90 -0
  165. package/locales/en-US/common.json +42 -62
  166. package/locales/en-US/studio.json +379 -15
  167. package/locales/en-US/ui.json +15 -1
  168. package/locales/fr-FR/.meta.json +1394 -154
  169. package/locales/fr-FR/apiDocs.json +90 -0
  170. package/locales/fr-FR/common.json +42 -62
  171. package/locales/fr-FR/studio.json +379 -15
  172. package/locales/fr-FR/ui.json +15 -1
  173. package/locales/zh-CN/.meta.json +1397 -157
  174. package/locales/zh-CN/apiDocs.json +90 -0
  175. package/locales/zh-CN/common.json +42 -62
  176. package/locales/zh-CN/studio.json +379 -15
  177. package/locales/zh-CN/ui.json +15 -1
  178. package/locales/zh-TW/.meta.json +1395 -155
  179. package/locales/zh-TW/apiDocs.json +90 -0
  180. package/locales/zh-TW/common.json +42 -62
  181. package/locales/zh-TW/studio.json +379 -15
  182. package/locales/zh-TW/ui.json +15 -1
  183. package/package.json +1 -1
@@ -398,7 +398,15 @@
398
398
  "noteTitle": "Ce qui compte comme changement",
399
399
  "updated": "Quand une ligne change"
400
400
  },
401
- "unbound": "Reste à remplir : {slots}"
401
+ "unbound": "Reste à remplir : {slots}",
402
+ "deleteConfirm": {
403
+ "title": "Supprimer ce mappage ?",
404
+ "body": "La règle qui le déclenche est aussi supprimée, et les documents déjà produits perdent leur lien vers lui. Cette action est irréversible.",
405
+ "prompt": "Saisissez {name} pour confirmer",
406
+ "confirm": "Supprimer le mappage"
407
+ },
408
+ "deleteFailed": "Le mappage n’a pas été supprimé",
409
+ "loadFailed": "Impossible de charger les mappages"
402
410
  },
403
411
  "enrich": {
404
412
  "byo": {
@@ -454,6 +462,8 @@
454
462
  },
455
463
  "fileBody": "Les sources de type fichier de schéma n’ont pas encore d’instantané à enrichir. Connectez une base de données active pour utiliser l’enrichissement par IA, ou continuez — la base heuristique génère tout de même une application complète.",
456
464
  "fileTitle": "L’enrichissement par IA nécessite une base de données active",
465
+ "noTablesBody": "Cette base de données n’a pas encore de tables : l’IA n’a donc rien à étiqueter ni à regrouper. Continuez — dès que des tables existeront, vous pourrez lancer l’enrichissement par IA à tout moment depuis Paramètres → IA.",
466
+ "noTablesTitle": "Aucune table à enrichir",
457
467
  "generatePrompt": "Générer l’invite",
458
468
  "intentLabel": "Comment souhaitez-vous enrichir ?",
459
469
  "localeLocked": "(requis)",
@@ -518,7 +528,10 @@
518
528
  "subtitle": "Une page par table incluse plus des tableaux de bord par domaine — intention :",
519
529
  "successBody": "{pages} pages dans {groups} groupes de navigation — générées depuis votre schéma, modifiables dans le Studio.",
520
530
  "successTitle": "Votre tableau de bord est prêt",
521
- "title": "Générez votre application"
531
+ "title": "Générez votre application",
532
+ "blankBody": "Rien n’a été généré, comme vous l’avez demandé. Construisez votre première page à partir de cette connexion quand vous serez prêt.",
533
+ "blankTitle": "Votre connexion est prête",
534
+ "createPage": "Créer une page"
522
535
  },
523
536
  "hostedApps": {
524
537
  "browse": {
@@ -601,7 +614,8 @@
601
614
  "toggleDdl": "Afficher l’aperçu DDL",
602
615
  "ddl": "Aperçu DDL",
603
616
  "ddlNote": "À titre indicatif. Le serveur produit l’instruction exacte pour votre moteur, clés étrangères comprises.",
604
- "summary": "{created} créées · {reused} réutilisées"
617
+ "summary": "{created} créées · {reused} réutilisées",
618
+ "pageWarnings": "Certaines pages de cette app arriveront sans table"
605
619
  },
606
620
  "done": {
607
621
  "title": "Installée",
@@ -649,7 +663,9 @@
649
663
  "needsNewer": "v{version} nécessite Adminium {minimum} ou plus récent",
650
664
  "missing": "Introuvable",
651
665
  "missingBody": "Ses fichiers ne sont pas sur ce serveur, elle n'est donc pas servie. Réinstallez la même version, ou désinstallez-la.",
652
- "update": "Mettre à jour"
666
+ "update": "Mettre à jour",
667
+ "discardFailed": "Le téléversement n’a pas été abandonné",
668
+ "uninstallFailed": "L’application n’a pas été désinstallée"
653
669
  },
654
670
  "instances": {
655
671
  "add": "Ajouter une instance",
@@ -705,6 +721,16 @@
705
721
  "veto": {
706
722
  "title": "Ce déploiement ne peut pas consulter le catalogue en ligne",
707
723
  "body": "Le réglage est enregistré, mais les fonctions réseau sont coupées sur ce serveur et cela prime. Les applications installées continuent de fonctionner, et vous pouvez toujours en téléverser une."
724
+ },
725
+ "columns": {
726
+ "title": "Mettre à jour {app} vers v{version}",
727
+ "subtitle": "Cette version a besoin de colonnes que des tables de votre base de données n’ont pas encore.",
728
+ "body": "Adminium peut les ajouter pour vous. Vous verrez l’instruction exacte avant toute exécution, rien n’est supprimé, et l’app n’est mise à jour qu’une fois les colonnes créées.",
729
+ "alsoCreates": "La mise à jour crée aussi ces tables :",
730
+ "noDdl": "Adminium ne peut pas ajouter ces colonnes ici",
731
+ "failed": "Les colonnes n’ont pas pu être ajoutées",
732
+ "valuesFailed": "Les colonnes ont été ajoutées, mais leurs valeurs autorisées n’ont pas pu être enregistrées",
733
+ "confirm": "Ajouter les colonnes et mettre à jour"
708
734
  }
709
735
  },
710
736
  "hub": {
@@ -743,7 +769,12 @@
743
769
  "failed": "Impossible de supprimer la connexion. Réessayez.",
744
770
  "prompt": "Saisissez {name} pour confirmer",
745
771
  "success": "Connexion « {name} » supprimée",
746
- "title": "Supprimer la connexion"
772
+ "title": "Supprimer la connexion",
773
+ "forbidden": "Votre rôle ne permet pas de gérer les connexions : celle-ci n’a donc pas été supprimée.",
774
+ "liveKeys": {
775
+ "body": "Les pages construites sur ces clés cesseraient de fonctionner. Révoquez-les d’abord sur la page API publique, puis supprimez la connexion.",
776
+ "title": "Des clés publiables utilisent encore cette connexion"
777
+ }
747
778
  },
748
779
  "empty": {
749
780
  "body": "Connectez une base de données : Adminium génère votre panneau d’administration à partir de son schéma.",
@@ -833,7 +864,11 @@
833
864
  "title": "Console de support"
834
865
  },
835
866
  "title": "De quoi avez-vous besoin ?",
836
- "trust": "Nous ne lisons que votre schéma — jamais vos données de lignes pendant la configuration."
867
+ "trust": "Nous ne lisons que votre schéma — jamais vos données de lignes pendant la configuration.",
868
+ "blank": {
869
+ "description": "Ne rien générer. Connectez une base et construisez les pages que vous voulez, une par une.",
870
+ "title": "Page blanche"
871
+ }
837
872
  },
838
873
  "llmRuns": {
839
874
  "review": {
@@ -1153,7 +1188,8 @@
1153
1188
  "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.",
1154
1189
  "confirm": "Supprimer la page",
1155
1190
  "prompt": "Saisissez {slug} pour confirmer",
1156
- "title": "Supprimer cette page ?"
1191
+ "title": "Supprimer cette page ?",
1192
+ "failed": "La page n’a pas été supprimée"
1157
1193
  },
1158
1194
  "derived": {
1159
1195
  "add": "Ajouter une colonne",
@@ -1237,8 +1273,10 @@
1237
1273
  "slugTaken": "Une autre page utilise déjà cette adresse.",
1238
1274
  "slugWarning": "Modifier l’adresse casse les liens et les favoris existants vers cette page.",
1239
1275
  "table": "Table",
1240
- "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.",
1276
+ "tableChoose": "Choisissez une table…",
1277
+ "tableCreateHint": "La table que cette page lit.",
1241
1278
  "tableNeedsConnection": "Choisissez d’abord une source de données.",
1279
+ "tableNoConnection": "Connectez d’abord une base de données — cette page est construite à partir de l’une de ses tables.",
1242
1280
  "tableNone": "Non liée",
1243
1281
  "template": "Modèle",
1244
1282
  "templateHint": "Détermine ce que la page peut contenir. Modifiable par la suite.",
@@ -1262,6 +1300,69 @@
1262
1300
  "title": "Filtres",
1263
1301
  "up": "Déplacer {column} vers le haut"
1264
1302
  },
1303
+ "fit": {
1304
+ "alternatives": {
1305
+ "title": "Utiliser une table qui convient déjà",
1306
+ "help": "Rien n’est écrit dans votre base de données — la page pointe simplement vers une table qui a déjà ce qu’il faut.",
1307
+ "use": "Utiliser cette table"
1308
+ },
1309
+ "checkFailed": "Adminium n’a pas pu vérifier cette table",
1310
+ "checkFailedBody": "Vous pouvez quand même créer la page. Si la table ne convient pas, la création vous le dira.",
1311
+ "columns": {
1312
+ "title": "Ajouter ce qui manque à cette table",
1313
+ "help": "Adminium ajoute ces colonnes à votre table. Vous verrez l’instruction exacte avant toute exécution, et rien n’est supprimé.",
1314
+ "review": "Voir la modification",
1315
+ "confirm": "Exécuter",
1316
+ "failed": "Cela n’a pas fonctionné",
1317
+ "partial": "Une des choses dont cette page a besoin ne peut pas être ajoutée pour vous ; elle restera donc incomplète.",
1318
+ "cannot": "Adminium ne peut pas ajouter celle-ci pour vous",
1319
+ "cannotBody": "Cette page a besoin d’un lien vers une autre table, à configurer dans Studio → Schéma.",
1320
+ "halfDone": "Les colonnes ont été ajoutées, mais Adminium n’a pas pu enregistrer leur signification",
1321
+ "halfDoneBody": "Rien n’est à relancer — les colonnes existent. Définissez leur signification dans Studio → Schéma, ou demandez-le à un administrateur."
1322
+ },
1323
+ "needs": "Pour construire cette page, la table a besoin de :",
1324
+ "noDdl": "Adminium ne peut pas modifier cette table pour vous",
1325
+ "role": {
1326
+ "eventDate": "une date sur chaque ligne",
1327
+ "title": "une colonne de texte à afficher comme titre de chaque ligne",
1328
+ "status": "une colonne de statut dont les valeurs décrivent des étapes de travail",
1329
+ "personFk": "un lien vers une table de personnes",
1330
+ "shiftType": "une colonne indiquant le type de créneau de chaque ligne"
1331
+ },
1332
+ "slotOnly": "Rien dans cette table ne peut remplir sa zone « {slot} ».",
1333
+ "tag": {
1334
+ "title": "Utiliser une colonne que vous avez déjà",
1335
+ "help": "Cela enregistre seulement ce que signifie la colonne. Votre base de données n’est pas modifiée et vous pouvez annuler dans Studio → Schéma.",
1336
+ "action": "Utiliser cette colonne",
1337
+ "failed": "Cette colonne n’a pas pu être marquée"
1338
+ },
1339
+ "title": "Cette table ne peut pas encore alimenter cette page",
1340
+ "table": {
1341
+ "title": "Créer une nouvelle table pour cette page",
1342
+ "help": "Adminium crée une table avec tout ce dont cette page a besoin. Vous verrez l’instruction exacte avant toute exécution, et vos autres tables ne sont pas modifiées.",
1343
+ "open": "Ou créer une nouvelle table pour cette page",
1344
+ "name": "Nom de la table",
1345
+ "nameTaken": "Une table porte déjà ce nom.",
1346
+ "nameInvalid": "Utilisez des minuscules, des chiffres et des tirets bas, en commençant par une lettre.",
1347
+ "people": "Attribuer chaque ligne à une personne de",
1348
+ "peopleNew": "Une nouvelle table de personnes",
1349
+ "peopleCreated": "Crée aussi « {table} », une petite table des personnes auxquelles les lignes sont attribuées.",
1350
+ "noCompose": "Une table portant ce nom ne fonctionnerait pas pour cette page. Essayez un autre nom.",
1351
+ "confirm": "Créer la table",
1352
+ "noDdl": "Adminium ne peut pas créer de table ici",
1353
+ "halfDone": "La table a été créée, mais Adminium n’a pas pu enregistrer la signification de ses colonnes",
1354
+ "halfDoneBody": "Rien n’est à relancer — la table existe. Définissez la signification de ses colonnes dans Studio → Schéma, ou demandez-le à un administrateur.",
1355
+ "notReread": "La table a été créée, mais Adminium n’a pas encore pu la relire",
1356
+ "notRereadBody": "Rien n’est à relancer. Actualisez le schéma depuis Studio → Connexions de données, puis choisissez ici la nouvelle table."
1357
+ },
1358
+ "related": {
1359
+ "title": "Utiliser les dates d’une table liée",
1360
+ "help": "Rien n’est écrit dans votre base de données. La page est construite sur une table liée à celle-ci, et chaque entrée affiche un nom provenant de cette table.",
1361
+ "reason": "Dates tirées de « {date} », chacune intitulée avec « {title} » via « {via} »",
1362
+ "chosen": "Construite sur {table}, chaque entrée intitulée avec « {title} » de {from}",
1363
+ "undo": "Revenir à {table}"
1364
+ }
1365
+ },
1265
1366
  "form": {
1266
1367
  "addLines": "{label} en lignes",
1267
1368
  "dialog": {
@@ -1465,7 +1566,8 @@
1465
1566
  "narrow": "Étroite (720 px)",
1466
1567
  "page": "Page (1080 px)",
1467
1568
  "wide": "Large (1800 px)"
1468
- }
1569
+ },
1570
+ "toggleFailed": "La page n’a pas été modifiée"
1469
1571
  },
1470
1572
  "project": {
1471
1573
  "actions": {
@@ -1579,7 +1681,6 @@
1579
1681
  "connectionLabel": "Identifiant de connexion",
1580
1682
  "create": "Créer la portée",
1581
1683
  "delete": "Supprimer",
1582
- "deleteBody": "Toute page utilisant une clé liée à cette portée cesse de charger des données. Les clés ne sont pas supprimées — révoquez-les d’abord si c’est ce que vous vouliez.",
1583
1684
  "deleteConfirm": "Supprimer la portée",
1584
1685
  "deletePrompt": "Saisissez le nom de la portée pour confirmer",
1585
1686
  "deleteTitle": "Supprimer cette portée",
@@ -1592,7 +1693,12 @@
1592
1693
  "keyCount": "{count, plural, =0 {aucune clé} one {# clé} other {# clés}}",
1593
1694
  "nameLabel": "Nom",
1594
1695
  "subtitle": "Une portée est tout ce qu’une clé peut atteindre — les tables, les colonnes exactes et un filtre que l’appelant peut restreindre mais jamais retirer.",
1595
- "title": "Portées"
1696
+ "title": "Portées",
1697
+ "deleteBodyKeys": "Une portée qui a des clés actives ne peut pas être supprimée. Révoquez d’abord ses clés. Les clés déjà révoquées ou expirées sont supprimées avec la portée.",
1698
+ "liveKeys": {
1699
+ "body": "Les pages construites sur ces clés cesseraient de fonctionner. Révoquez-les d’abord dans la liste des clés, puis supprimez la portée.",
1700
+ "title": "Des clés publiables utilisent encore cette portée"
1701
+ }
1596
1702
  },
1597
1703
  "status": {
1598
1704
  "heading": "Statut"
@@ -1907,6 +2013,22 @@
1907
2013
  "cta": "Ouvrir les réglages IA",
1908
2014
  "heading": "Enrichissement par IA"
1909
2015
  },
2016
+ "apiCard": {
2017
+ "api": {
2018
+ "helper": "Sert les points de terminaison auxquels vos clés sont limitées. Désactivée, plus aucune clé ne fonctionne, immédiatement ; rien n’est supprimé.",
2019
+ "label": "API publique"
2020
+ },
2021
+ "docs": {
2022
+ "helper": "Une page publique à l’adresse /api-docs qui liste, pour toute personne pouvant joindre ce serveur, les points de terminaison que vos clés actives peuvent appeler — y compris ceux réservés au personnel — avec leurs chemins, leurs méthodes et leurs noms de colonnes. Elle n’affiche ni données ni clés.",
2023
+ "label": "Page de documentation de l’API"
2024
+ },
2025
+ "failed": "L’interrupteur n’a pas changé. Réessayez.",
2026
+ "heading": "API publique",
2027
+ "notRegistered": {
2028
+ "body": "Définissez ADMINIUM_PUBLIC_API_ORIGINS et redémarrez. D’ici là, ces interrupteurs ne changent rien.",
2029
+ "title": "Non activée sur ce serveur"
2030
+ }
2031
+ },
1910
2032
  "danger": {
1911
2033
  "deleteCta": "Supprimer la connexion",
1912
2034
  "deleteDesc": "Supprime la connexion et les pages générées. Votre base de données n’est pas touchée. Irréversible.",
@@ -2011,9 +2133,9 @@
2011
2133
  "heading": "Projet"
2012
2134
  },
2013
2135
  "publicApiCard": {
2014
- "body": "Laissez vos propres pages destinées aux clients ou au personnel lire cette base de données, via une portée que vous définissez.",
2015
- "cta": "Ouvrir l’API publique",
2016
- "heading": "API publique"
2136
+ "body": "Créez des points de terminaison et les clés autorisées à les appeler.",
2137
+ "cta": "Ouvrir les clés API",
2138
+ "heading": "Clés API"
2017
2139
  },
2018
2140
  "review": {
2019
2141
  "cancel": "Annuler",
@@ -2256,7 +2378,10 @@
2256
2378
  "usedBytes": "{size} utilisés"
2257
2379
  },
2258
2380
  "tables": {
2381
+ "emptyBody": "Cette base de données n’a pas encore de tables. Vous pouvez tout de même continuer — une fois les tables créées, utilisez « Réintrospecter » sur cette connexion pour les importer.",
2382
+ "emptyFileBody": "Ce fichier de schéma ne définit aucune table. Revenez en arrière pour importer un autre fichier, ou continuez quand même.",
2259
2383
  "emptyFilter": "Aucune table ne correspond à votre filtre.",
2384
+ "emptyTitle": "Aucune table trouvée",
2260
2385
  "highVolume": "gros volume",
2261
2386
  "highVolumeNote": "Les tables de plus de 100 000 lignes démarrent décochées — les tables techniques ont rarement leur place dans un tableau de bord.",
2262
2387
  "importNoCounts": "Les fichiers de schéma ne contiennent pas de nombres de lignes — la colonne affiche — tant qu’aucune base réelle n’est connectée.",
@@ -2329,7 +2454,8 @@
2329
2454
  "meta": "Stockage méta",
2330
2455
  "source": "Source",
2331
2456
  "tables": "Tables",
2332
- "test": "Analyser"
2457
+ "test": "Analyser",
2458
+ "finish": "Terminer"
2333
2459
  },
2334
2460
  "title": "Nouvelle connexion"
2335
2461
  },
@@ -2381,5 +2507,243 @@
2381
2507
  "valueCount": "{count} valeurs",
2382
2508
  "values": "Valeurs",
2383
2509
  "view": "Voir"
2510
+ },
2511
+ "apiKeys": {
2512
+ "banner": {
2513
+ "bodyOnce": "Copiez-la maintenant — vous ne pourrez plus la voir ensuite. Limitée à {summary}.",
2514
+ "bodyRevealable": "Copiez-la maintenant — vous pourrez l’afficher de nouveau depuis la liste ci-dessous. Limitée à {summary}.",
2515
+ "copied": "Copié",
2516
+ "copy": "Copier",
2517
+ "titleNamed": "{name} créée"
2518
+ },
2519
+ "builder": {
2520
+ "auth": {
2521
+ "anon": "Anon",
2522
+ "authenticated": "Authentifié",
2523
+ "label": "Authentification requise",
2524
+ "service": "Rôle de service"
2525
+ },
2526
+ "cancel": "Annuler",
2527
+ "columns": {
2528
+ "all": "Toutes",
2529
+ "label": "Colonnes exposées",
2530
+ "none": "Aucune"
2531
+ },
2532
+ "create": "Créer le point de terminaison",
2533
+ "delete": "Supprimer le point de terminaison",
2534
+ "deleteRefused": "{count, plural, one {# clé utilise encore} other {# clés utilisent encore}} ce point de terminaison : {names}.",
2535
+ "filters": {
2536
+ "add": "Ajouter",
2537
+ "empty": "Aucun filtre — chaque ligne de la source est accessible.",
2538
+ "label": "Filtres par défaut",
2539
+ "remove": "Retirer le filtre",
2540
+ "value": "valeur"
2541
+ },
2542
+ "footer": {
2543
+ "applyFirst": "Appliquez ou annulez d’abord la définition modifiée."
2544
+ },
2545
+ "methodUnsupported": "Cette source ne peut pas prendre en charge {method} : elle n’a pas de clé primaire.",
2546
+ "methods": "Méthodes",
2547
+ "op": {
2548
+ "between": "entre",
2549
+ "eq": "égal à",
2550
+ "gt": "supérieur à",
2551
+ "gte": "au moins",
2552
+ "ilike": "contient (sans tenir compte de la casse)",
2553
+ "in": "dans la liste",
2554
+ "is_null": "est vide",
2555
+ "like": "contient",
2556
+ "lt": "inférieur à",
2557
+ "lte": "au plus",
2558
+ "neq": "différent de",
2559
+ "not_null": "n’est pas vide"
2560
+ },
2561
+ "paging": {
2562
+ "asc": "Croiss.",
2563
+ "defaultLimit": "Limite par défaut",
2564
+ "desc": "Décroiss.",
2565
+ "label": "Pagination et tri",
2566
+ "maxLimit": "Limite maximale",
2567
+ "orderBy": "Trier par"
2568
+ },
2569
+ "pane": {
2570
+ "apply": "Appliquer au formulaire",
2571
+ "dirty": "modifiée — non appliquée",
2572
+ "format": "Mettre en forme",
2573
+ "label": "Définition de la route, JSON",
2574
+ "more": "{first} (+{n} autres)",
2575
+ "revert": "Annuler",
2576
+ "synced": "synchronisée avec le formulaire",
2577
+ "title": "Définition de la route"
2578
+ },
2579
+ "rate": {
2580
+ "hour": "heure",
2581
+ "label": "Limite de requêtes et réponse",
2582
+ "minute": "minute",
2583
+ "per": "Par",
2584
+ "requests": "Requêtes",
2585
+ "second": "seconde"
2586
+ },
2587
+ "refused": {
2588
+ "keys": "Enregistrer ceci casserait {count, plural, one {# clé} other {# clés}} : {names}."
2589
+ },
2590
+ "route": "Route",
2591
+ "routePlaceholder": "customers",
2592
+ "routeRename": "Les appelants devront passer au nouveau chemin.",
2593
+ "save": "Enregistrer les modifications",
2594
+ "shape": {
2595
+ "array": "Tableau brut",
2596
+ "label": "Forme de la réponse",
2597
+ "single": "Objet unique",
2598
+ "wrapped": "Enveloppé dans '{' data '}'"
2599
+ },
2600
+ "source": "Table ou vue source",
2601
+ "subtitle": "Configurez-le visuellement — Adminium écrit la définition de la route pour vous",
2602
+ "titleEdit": "Modifier le point de terminaison",
2603
+ "titleNew": "Nouveau point de terminaison"
2604
+ },
2605
+ "connection": {
2606
+ "label": "Connexion"
2607
+ },
2608
+ "create": "Créer une clé",
2609
+ "endpoints": {
2610
+ "col": {
2611
+ "auth": "Auth.",
2612
+ "methods": "Méthodes",
2613
+ "rate": "Limite de requêtes",
2614
+ "route": "Route"
2615
+ },
2616
+ "custom": "PERSONNALISÉ",
2617
+ "edit": "Modifier le point de terminaison",
2618
+ "explore": "Explorer l’API",
2619
+ "new": "Nouveau point de terminaison",
2620
+ "subtitle": "Générés à partir de votre schéma. Les clés sont limitées à ceux-ci.",
2621
+ "title": "Points de terminaison",
2622
+ "unavailable": "INDISPONIBLE"
2623
+ },
2624
+ "keys": {
2625
+ "col": {
2626
+ "access": "Accès",
2627
+ "actions": "Actions",
2628
+ "key": "Clé",
2629
+ "lastUsed": "Dernière utilisation",
2630
+ "name": "Nom"
2631
+ },
2632
+ "count": "{n, plural, one {# clé} other {# clés}}",
2633
+ "empty": "Aucune clé active. Créez-en une pour commencer.",
2634
+ "hide": "Masquer la clé",
2635
+ "kind": {
2636
+ "browser": "NAVIGATEUR",
2637
+ "server": "SERVEUR"
2638
+ },
2639
+ "never": "Jamais",
2640
+ "reveal": "Afficher la clé",
2641
+ "revoke": "Révoquer",
2642
+ "revokeConfirm": {
2643
+ "body": "Tout ce qui utilise cette clé cesse aussitôt de fonctionner. Cette action est irréversible.",
2644
+ "confirm": "Révoquer la clé",
2645
+ "prompt": "Saisissez « {name} » pour confirmer",
2646
+ "title": "Révoquer {name} ?"
2647
+ },
2648
+ "revokeFailed": "Cette clé n’a pas pu être révoquée. Elle est toujours active.",
2649
+ "title": "Clés actives",
2650
+ "untitled": "Clé sans nom"
2651
+ },
2652
+ "method": {
2653
+ "BATCH": {
2654
+ "desc": "Insertion ou upsert en masse, jusqu’à 500 lignes",
2655
+ "title": "Lot"
2656
+ },
2657
+ "DELETE": {
2658
+ "desc": "Supprimer une ligne par sa clé primaire",
2659
+ "title": "Supprimer"
2660
+ },
2661
+ "GET": {
2662
+ "desc": "Lister des lignes et récupérer un enregistrement",
2663
+ "title": "Lire"
2664
+ },
2665
+ "PATCH": {
2666
+ "desc": "Mise à jour partielle d’une ligne par sa clé primaire",
2667
+ "title": "Mettre à jour"
2668
+ },
2669
+ "POST": {
2670
+ "desc": "Insérer une nouvelle ligne",
2671
+ "title": "Créer"
2672
+ },
2673
+ "PUT": {
2674
+ "desc": "Remplacer une ligne entière par sa clé primaire",
2675
+ "title": "Remplacer"
2676
+ }
2677
+ },
2678
+ "note": {
2679
+ "notRegistered": "L’API publique n’est pas activée sur ce serveur. Définissez ADMINIUM_PUBLIC_API_ORIGINS et redémarrez — les clés créées ici fonctionneront dès lors.",
2680
+ "off": "L’API publique est désactivée, donc aucune clé ne fonctionne pour le moment.",
2681
+ "offLink": "Ouvrir les paramètres de l’espace de travail"
2682
+ },
2683
+ "quick": {
2684
+ "body": "Authentifiez les requêtes avec votre clé dans l’en-tête Authorization.",
2685
+ "title": "Démarrage rapide"
2686
+ },
2687
+ "sheet": {
2688
+ "allMethods": "Sélectionner toutes les méthodes",
2689
+ "app": {
2690
+ "label": "App",
2691
+ "none": "Aucune"
2692
+ },
2693
+ "cancel": "Annuler",
2694
+ "clear": "Effacer",
2695
+ "close": "Fermer",
2696
+ "count": "{permissions, plural, one {autorisation} other {autorisations}} sur {endpoints, plural, one {# point de terminaison} other {# points de terminaison}}",
2697
+ "deselectAll": "Tout désélectionner",
2698
+ "edit": "Modifier le point de terminaison",
2699
+ "expires": {
2700
+ "d30": "30 jours",
2701
+ "d90": "90 jours",
2702
+ "label": "Expire",
2703
+ "never": "Jamais"
2704
+ },
2705
+ "filter": "Filtrer les points de terminaison",
2706
+ "focusMeta": "{source} · {rows} lignes · limite {limit}, tri {order}",
2707
+ "focusMetaNoRows": "{source} · limite {limit}, tri {order}",
2708
+ "footer": {
2709
+ "empty": "Sélectionnez au moins une méthode pour créer une clé.",
2710
+ "more": "+{n} autres",
2711
+ "refused": "Cette clé ne peut pas encore être créée : {issue}",
2712
+ "summary": "Cette clé pourra appeler {paths}"
2713
+ },
2714
+ "kind": {
2715
+ "browser": "Navigateur",
2716
+ "label": "Utilisée depuis",
2717
+ "server": "Serveur"
2718
+ },
2719
+ "layout": {
2720
+ "label": "Disposition",
2721
+ "list": "Liste",
2722
+ "panes": "Volets"
2723
+ },
2724
+ "name": {
2725
+ "label": "Nom de la clé",
2726
+ "placeholder": "p. ex. Worker de synchronisation des commandes"
2727
+ },
2728
+ "newEndpoint": "Nouveau point de terminaison",
2729
+ "readOnly": "Préréglage lecture seule",
2730
+ "rowMeta": "{source} · {rows} lignes",
2731
+ "rowMetaNoRows": "{source}",
2732
+ "selectAll": "Tout sélectionner",
2733
+ "selectAllShort": "Tout sélectionner",
2734
+ "submit": "Créer la clé",
2735
+ "subtitle": "Choisissez les points de terminaison et les méthodes que cette clé peut appeler",
2736
+ "title": "Créer une clé d’API",
2737
+ "toggleAll": "Basculer toutes les méthodes",
2738
+ "unsupported": "{count, plural, one {{methods} n’est pas exposée sur cette route. Modifiez le point de terminaison pour l’activer.} other {{methods} ne sont pas exposées sur cette route. Modifiez le point de terminaison pour les activer.}}"
2739
+ },
2740
+ "stats": {
2741
+ "endpoints": "Points de terminaison",
2742
+ "keys": "Clés actives",
2743
+ "requests": "Requêtes · 24 h"
2744
+ },
2745
+ "subtitle": "Gérez l’accès programmatique à votre espace de travail",
2746
+ "summary": "{endpoints, plural, one {# point de terminaison} other {# points de terminaison}} · {methods, plural, one {# méthode} other {# méthodes}}",
2747
+ "title": "Clés d’API et jetons"
2384
2748
  }
2385
2749
  }
@@ -1774,6 +1774,11 @@
1774
1774
  "backToLatest": "Revenir aux dernières entrées",
1775
1775
  "eventFallback": "Événement"
1776
1776
  },
1777
+ "board": {
1778
+ "invalidLayout": "La disposition enregistrée de ce tableau est invalide. Régénérez la page ou réinitialisez sa disposition.",
1779
+ "noRowsTitle": "Aucune carte pour l’instant",
1780
+ "noRowsBody": "Les cartes apparaissent ici dès que la table contient des lignes."
1781
+ },
1777
1782
  "calendar": {
1778
1783
  "eventCount": "{count, plural, one {{n} événement} other {{n} événements}}",
1779
1784
  "composePlaceholder": "Titre de l’événement…",
@@ -1782,7 +1787,9 @@
1782
1787
  "agendaTitle": "Agenda",
1783
1788
  "categoriesTitle": "Catégories",
1784
1789
  "upcomingTitle": "À venir",
1785
- "invalidLayout": "La disposition enregistrée de ce calendrier est invalide. Régénérez la page ou réinitialisez sa disposition."
1790
+ "invalidLayout": "La disposition enregistrée de ce calendrier est invalide. Régénérez la page ou réinitialisez sa disposition.",
1791
+ "composeChoose": "Objet de cet événement",
1792
+ "composeChoosePlaceholder": "Choisir…"
1786
1793
  },
1787
1794
  "scheduler": {
1788
1795
  "previousWeek": "Semaine précédente",
@@ -1873,6 +1880,13 @@
1873
1880
  },
1874
1881
  "pageRecord": {
1875
1882
  "description": "Un enregistrement en pleine page : ses champs, ses enregistrements liés avec compteurs en direct et son activité."
1883
+ },
1884
+ "planning": {
1885
+ "unplaced": {
1886
+ "calendar": "Aucune ligne de cette table n’a encore de date, le calendrier est donc vide. Une ligne apparaît ici dès qu’elle en a une.",
1887
+ "board": "Aucune ligne de cette table n’a encore de statut, le tableau est donc vide. Une ligne apparaît ici dès qu’elle en a un.",
1888
+ "scheduler": "Aucune ligne de cette table n’a encore de personne, de date et de type de poste, le planning est donc vide. Une ligne apparaît ici dès qu’elle a les trois."
1889
+ }
1876
1890
  }
1877
1891
  },
1878
1892
  "frame": {