@adminiumjs/i18n 0.3.0-rc.0 → 0.3.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) 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 +48 -1
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/resources/ar-eg/common.d.ts +27 -0
  6. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  7. package/dist/resources/ar-eg/common.js +34 -7
  8. package/dist/resources/ar-eg/common.js.map +1 -1
  9. package/dist/resources/ar-eg/studio.d.ts +166 -52
  10. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  11. package/dist/resources/ar-eg/studio.js +173 -59
  12. package/dist/resources/ar-eg/studio.js.map +1 -1
  13. package/dist/resources/ar-eg/ui.d.ts +14 -0
  14. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  15. package/dist/resources/ar-eg/ui.js +15 -1
  16. package/dist/resources/ar-eg/ui.js.map +1 -1
  17. package/dist/resources/cs-cz/common.d.ts +27 -0
  18. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  19. package/dist/resources/cs-cz/common.js +34 -7
  20. package/dist/resources/cs-cz/common.js.map +1 -1
  21. package/dist/resources/cs-cz/studio.d.ts +166 -52
  22. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  23. package/dist/resources/cs-cz/studio.js +173 -59
  24. package/dist/resources/cs-cz/studio.js.map +1 -1
  25. package/dist/resources/cs-cz/ui.d.ts +14 -0
  26. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  27. package/dist/resources/cs-cz/ui.js +15 -1
  28. package/dist/resources/cs-cz/ui.js.map +1 -1
  29. package/dist/resources/da-dk/common.d.ts +27 -0
  30. package/dist/resources/da-dk/common.d.ts.map +1 -1
  31. package/dist/resources/da-dk/common.js +34 -7
  32. package/dist/resources/da-dk/common.js.map +1 -1
  33. package/dist/resources/da-dk/studio.d.ts +166 -52
  34. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  35. package/dist/resources/da-dk/studio.js +173 -59
  36. package/dist/resources/da-dk/studio.js.map +1 -1
  37. package/dist/resources/da-dk/ui.d.ts +14 -0
  38. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  39. package/dist/resources/da-dk/ui.js +15 -1
  40. package/dist/resources/da-dk/ui.js.map +1 -1
  41. package/dist/resources/de-de/common.d.ts +27 -0
  42. package/dist/resources/de-de/common.d.ts.map +1 -1
  43. package/dist/resources/de-de/common.js +34 -7
  44. package/dist/resources/de-de/common.js.map +1 -1
  45. package/dist/resources/de-de/studio.d.ts +166 -52
  46. package/dist/resources/de-de/studio.d.ts.map +1 -1
  47. package/dist/resources/de-de/studio.js +173 -59
  48. package/dist/resources/de-de/studio.js.map +1 -1
  49. package/dist/resources/de-de/ui.d.ts +14 -0
  50. package/dist/resources/de-de/ui.d.ts.map +1 -1
  51. package/dist/resources/de-de/ui.js +15 -1
  52. package/dist/resources/de-de/ui.js.map +1 -1
  53. package/dist/resources/en-us/common.d.ts +27 -0
  54. package/dist/resources/en-us/common.d.ts.map +1 -1
  55. package/dist/resources/en-us/common.js +34 -7
  56. package/dist/resources/en-us/common.js.map +1 -1
  57. package/dist/resources/en-us/studio.d.ts +166 -52
  58. package/dist/resources/en-us/studio.d.ts.map +1 -1
  59. package/dist/resources/en-us/studio.js +173 -59
  60. package/dist/resources/en-us/studio.js.map +1 -1
  61. package/dist/resources/en-us/ui.d.ts +14 -0
  62. package/dist/resources/en-us/ui.d.ts.map +1 -1
  63. package/dist/resources/en-us/ui.js +15 -1
  64. package/dist/resources/en-us/ui.js.map +1 -1
  65. package/dist/resources/fr-fr/common.d.ts +27 -0
  66. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  67. package/dist/resources/fr-fr/common.js +34 -7
  68. package/dist/resources/fr-fr/common.js.map +1 -1
  69. package/dist/resources/fr-fr/studio.d.ts +166 -52
  70. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  71. package/dist/resources/fr-fr/studio.js +173 -59
  72. package/dist/resources/fr-fr/studio.js.map +1 -1
  73. package/dist/resources/fr-fr/ui.d.ts +14 -0
  74. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  75. package/dist/resources/fr-fr/ui.js +15 -1
  76. package/dist/resources/fr-fr/ui.js.map +1 -1
  77. package/dist/resources/zh-cn/common.d.ts +27 -0
  78. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  79. package/dist/resources/zh-cn/common.js +34 -7
  80. package/dist/resources/zh-cn/common.js.map +1 -1
  81. package/dist/resources/zh-cn/studio.d.ts +166 -52
  82. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  83. package/dist/resources/zh-cn/studio.js +173 -59
  84. package/dist/resources/zh-cn/studio.js.map +1 -1
  85. package/dist/resources/zh-cn/ui.d.ts +14 -0
  86. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  87. package/dist/resources/zh-cn/ui.js +15 -1
  88. package/dist/resources/zh-cn/ui.js.map +1 -1
  89. package/dist/resources/zh-tw/common.d.ts +27 -0
  90. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  91. package/dist/resources/zh-tw/common.js +34 -7
  92. package/dist/resources/zh-tw/common.js.map +1 -1
  93. package/dist/resources/zh-tw/studio.d.ts +166 -52
  94. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  95. package/dist/resources/zh-tw/studio.js +173 -59
  96. package/dist/resources/zh-tw/studio.js.map +1 -1
  97. package/dist/resources/zh-tw/ui.d.ts +14 -0
  98. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  99. package/dist/resources/zh-tw/ui.js +15 -1
  100. package/dist/resources/zh-tw/ui.js.map +1 -1
  101. package/dist/review-status.js +7 -7
  102. package/locales/ar-EG/.meta.json +492 -0
  103. package/locales/ar-EG/common.json +34 -7
  104. package/locales/ar-EG/studio.json +173 -59
  105. package/locales/ar-EG/ui.json +15 -1
  106. package/locales/cs-CZ/.meta.json +492 -0
  107. package/locales/cs-CZ/common.json +34 -7
  108. package/locales/cs-CZ/studio.json +173 -59
  109. package/locales/cs-CZ/ui.json +15 -1
  110. package/locales/da-DK/.meta.json +492 -0
  111. package/locales/da-DK/common.json +34 -7
  112. package/locales/da-DK/studio.json +173 -59
  113. package/locales/da-DK/ui.json +15 -1
  114. package/locales/de-DE/.meta.json +492 -0
  115. package/locales/de-DE/common.json +34 -7
  116. package/locales/de-DE/studio.json +173 -59
  117. package/locales/de-DE/ui.json +15 -1
  118. package/locales/en-US/common.json +34 -7
  119. package/locales/en-US/studio.json +173 -59
  120. package/locales/en-US/ui.json +15 -1
  121. package/locales/fr-FR/.meta.json +492 -0
  122. package/locales/fr-FR/common.json +34 -7
  123. package/locales/fr-FR/studio.json +173 -59
  124. package/locales/fr-FR/ui.json +15 -1
  125. package/locales/zh-CN/.meta.json +492 -0
  126. package/locales/zh-CN/common.json +34 -7
  127. package/locales/zh-CN/studio.json +173 -59
  128. package/locales/zh-CN/ui.json +15 -1
  129. package/locales/zh-TW/.meta.json +492 -0
  130. package/locales/zh-TW/common.json +34 -7
  131. package/locales/zh-TW/studio.json +173 -59
  132. package/locales/zh-TW/ui.json +15 -1
  133. package/package.json +1 -1
@@ -109,7 +109,8 @@
109
109
  "apiKeys": "Clés API",
110
110
  "audit": "Journal d’audit",
111
111
  "security": "Mot de passe et sessions",
112
- "files": "Fichiers"
112
+ "files": "Fichiers",
113
+ "emptyWithheld": "Aucune page n’a encore été partagée avec votre rôle. Demandez l’accès à un administrateur."
113
114
  },
114
115
  "apps": {
115
116
  "frame": {
@@ -266,6 +267,14 @@
266
267
  "noMatches": "Aucune page ne correspond à « {query} »"
267
268
  },
268
269
  "page": {
270
+ "emptyLayout": {
271
+ "title": "Cette page n’a encore rien à afficher",
272
+ "board": "Liez-la à une table avec une colonne de statut : ses lignes deviennent des cartes regroupées en colonnes.",
273
+ "calendar": "Liez-la à une table avec une colonne de date : ses lignes deviennent des événements sur la grille mensuelle.",
274
+ "scheduler": "Liez-la à une table avec une colonne de date et la personne planifiée : ses lignes deviennent des créneaux sur un planning par personne.",
275
+ "action": "Ouvrir les paramètres de la page",
276
+ "askAdmin": "Demandez à un administrateur de terminer sa configuration."
277
+ },
269
278
  "invalid": {
270
279
  "title": "La configuration de cette page est invalide",
271
280
  "body": "Le document de page enregistré a échoué à la validation et ne peut pas être affiché."
@@ -1310,7 +1319,9 @@
1310
1319
  },
1311
1320
  "empty": {
1312
1321
  "title": "Aucune colonne de tableau",
1313
- "body": "Ajoutez un champ de statut pour regrouper les cartes en colonnes."
1322
+ "body": "Ajoutez un champ de statut pour regrouper les cartes en colonnes.",
1323
+ "noRowsTitle": "Aucune carte pour l’instant",
1324
+ "noRowsBody": "Les cartes apparaissent ici dès que la table contient des lignes."
1314
1325
  }
1315
1326
  },
1316
1327
  "calendar": {
@@ -1319,7 +1330,9 @@
1319
1330
  "placeholder": "Titre de l’événement…",
1320
1331
  "add": "Ajouter",
1321
1332
  "cancel": "Annuler",
1322
- "open": "Ajouter un événement"
1333
+ "open": "Ajouter un événement",
1334
+ "choose": "Objet de cet événement",
1335
+ "choosePlaceholder": "Choisir…"
1323
1336
  },
1324
1337
  "agenda": {
1325
1338
  "empty": "Rien de prévu"
@@ -1577,7 +1590,8 @@
1577
1590
  "access": "Accès",
1578
1591
  "data": "Données",
1579
1592
  "operations": "Opérations",
1580
- "workspace": "Espace de travail"
1593
+ "workspace": "Espace de travail",
1594
+ "records": "Pages et enregistrements"
1581
1595
  },
1582
1596
  "column": {
1583
1597
  "actions": "Actions",
@@ -1653,7 +1667,18 @@
1653
1667
  "title": "Impossible d’enregistrer tous les rôles"
1654
1668
  },
1655
1669
  "subtitle": "Ce que chaque rôle est autorisé à faire. Un utilisateur cumule les permissions de tous les rôles qu’il détient.",
1656
- "title": "Rôles et permissions"
1670
+ "title": "Rôles et permissions",
1671
+ "data": {
1672
+ "pagesView": "Voir toutes les pages",
1673
+ "read": "Lire les enregistrements",
1674
+ "create": "Créer des enregistrements",
1675
+ "update": "Modifier les enregistrements",
1676
+ "delete": "Supprimer des enregistrements",
1677
+ "export": "Exporter des enregistrements",
1678
+ "import": "Importer des enregistrements",
1679
+ "pagesEdit": "Modifier la mise en page des pages",
1680
+ "narrow": "{count, plural, one {# autorisation} other {# autorisations}} sur une seule page ou table s’appliquent aussi, en plus des lignes ci-dessous. L’enregistrement les conserve."
1681
+ }
1657
1682
  },
1658
1683
  "security": {
1659
1684
  "password": {
@@ -1783,7 +1808,8 @@
1783
1808
  "body": "Cette action efface le compte de {name}, ses préférences et ses sessions de connexion, et retire son nom de l’historique des paramètres qu’il a modifiés. Suspendre le compte conserve tout cela et l’empêche seulement de se connecter. Cette action est irréversible.",
1784
1809
  "confirm": "Supprimer définitivement",
1785
1810
  "prompt": "Saisissez « {email} » pour confirmer",
1786
- "title": "Supprimer définitivement le compte"
1811
+ "title": "Supprimer définitivement le compte",
1812
+ "failed": "Le compte n’a pas été supprimé"
1787
1813
  },
1788
1814
  "roles": {
1789
1815
  "unavailable": "Les rôles ne sont pas visibles pour votre compte : aucun ne peut donc être attribué ici."
@@ -1803,7 +1829,8 @@
1803
1829
  "subtitle": "Qui possède un compte sur cet Adminium, et ce que chacun peut faire.",
1804
1830
  "title": "Équipe",
1805
1831
  "twoFactorOn": "L’authentification à deux facteurs est activée",
1806
- "twoFactorShort": "2FA"
1832
+ "twoFactorShort": "2FA",
1833
+ "actionFailed": "Cette modification n’a pas été effectuée"
1807
1834
  },
1808
1835
  "invoices": {
1809
1836
  "copySuffix": "{name} (copie)",
@@ -12,6 +12,7 @@
12
12
  "install": "Installer",
13
13
  "missing": "Introuvable",
14
14
  "missingBody": "Ses fichiers ne sont pas sur ce serveur, rien n'en est donc chargé.",
15
+ "needsNewer": "Nécessite Adminium {version} ou plus récent",
15
16
  "noMatchBody": "Aucun module ne correspond à cette recherche et à cette catégorie.",
16
17
  "noMatchTitle": "Aucun résultat",
17
18
  "offline": "Affiche les modules livrés avec cette version. La navigation en ligne est désactivée et rien ici n’a contacté Internet.",
@@ -397,7 +398,15 @@
397
398
  "noteTitle": "Ce qui compte comme changement",
398
399
  "updated": "Quand une ligne change"
399
400
  },
400
- "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"
401
410
  },
402
411
  "enrich": {
403
412
  "byo": {
@@ -453,6 +462,8 @@
453
462
  },
454
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.",
455
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",
456
467
  "generatePrompt": "Générer l’invite",
457
468
  "intentLabel": "Comment souhaitez-vous enrichir ?",
458
469
  "localeLocked": "(requis)",
@@ -520,8 +531,32 @@
520
531
  "title": "Générez votre application"
521
532
  },
522
533
  "hostedApps": {
534
+ "browse": {
535
+ "title": "Applications installables",
536
+ "subtitle": "Des applications prêtes à l’emploi livrées avec cette version. En installer une crée les tables nécessaires et sert ses écrans — rien ne se passe avant que vous confirmiez le plan.",
537
+ "search": "Rechercher des applications…",
538
+ "clear": "Effacer la recherche",
539
+ "all": "Toutes",
540
+ "by": "par {publisher}",
541
+ "install": "Installer",
542
+ "installed": "Installée",
543
+ "missing": "Introuvable",
544
+ "noMatch": "Aucune application ne correspond",
545
+ "noMatchBody": "Essayez un autre terme, ou une autre catégorie.",
546
+ "emptyTitle": "Aucune application à installer",
547
+ "emptyBody": "Les applications livrées avec cette version apparaissent ici. Faites pointer ADMINIUM_BUNDLED_APPS vers un dossier de paquets, ou téléversez-en un.",
548
+ "unreadable": "Le manifeste de ce paquet n’a pas pu être lu. Il ne peut pas être installé — écartez-le ci-dessous.",
549
+ "subtitleOnline": "Les applications livrées avec cette version, plus celles du catalogue en ligne. En installer une la télécharge si besoin et crée les tables nécessaires — rien ne se passe avant que vous confirmiez le plan.",
550
+ "neverChecked": "Le catalogue en ligne est activé mais n’a pas encore été consulté. Recherchez des nouveautés pour afficher ses applications.",
551
+ "refresh": "Rechercher des nouveautés",
552
+ "toggle": "Parcourir le catalogue d’applications en ligne",
553
+ "emptyOnlineBody": "Le catalogue en ligne est activé, mais rien n’est encore listé. Recherchez des nouveautés pour le récupérer.",
554
+ "fromCatalog": "En ligne",
555
+ "needsNewer": "Nécessite Adminium {version} ou plus récent"
556
+ },
523
557
  "domains": {
524
558
  "add": "Attacher un domaine",
559
+ "docsLink": "Comment configurer un domaine",
525
560
  "hostLabel": "Hôte",
526
561
  "instanceLabel": "Instance",
527
562
  "instanceOwn": "L'application elle-même",
@@ -531,6 +566,9 @@
531
566
  "save": "Enregistrer les domaines",
532
567
  "savedBody": "Les attributions prennent effet en quelques secondes. Un hôte ne répond que lorsque son DNS et votre proxy atteignent réellement cette instance.",
533
568
  "savedTitle": "Enregistré",
569
+ "stepDns": "Dirigez l’hôte vers ce serveur dans votre DNS — même type d’enregistrement et même cible que l’adresse par laquelle vous accédez à ce tableau de bord.",
570
+ "stepProxy": "Donnez à l’hôte son propre bloc de site sur votre proxy inverse, en transmettant l’en-tête Host tel quel — puis rechargez le proxy. Modifier son fichier de configuration ne change rien à un processus déjà en cours d’exécution.",
571
+ "stepSignIn": "Les surfaces personnel demandent une nouvelle connexion : les cookies de session appartiennent à un seul hôte, donc un hôte attribué vous envoie d’abord vers sa propre page de connexion.",
534
572
  "subtitle": "Pointez le DNS d’un domaine vers votre proxy, transmettez l’en-tête Host à Adminium, puis attachez-le ici — cet hôte sert alors la surface au lieu de ce tableau de bord. Les certificats restent sur votre proxy.",
535
573
  "surfaceLabel": "Surface",
536
574
  "title": "Domaines"
@@ -538,35 +576,6 @@
538
576
  "emptyBody": "Pointez ADMINIUM_SURFACES_DIR vers un répertoire de surfaces compilées — un dossier par app et par côté, chacun avec son index.html — puis redémarrez. Elles sont alors servies sous /apps/ et apparaissent ici.",
539
577
  "emptyTitle": "Aucune surface d’app n’est servie",
540
578
  "error": "Un problème est survenu",
541
- "instances": {
542
- "add": "Ajouter une instance",
543
- "appLabel": "Application",
544
- "body": "Servir la même application sur plusieurs bases. Chaque instance est accessible à /apps/<app>/<segment>/<side>/ et ne lit que la connexion que vous lui donnez.",
545
- "empty": "Aucune instance supplémentaire.",
546
- "failed": "Les instances n'ont pas été enregistrées",
547
- "readsLabel": "Lit",
548
- "remove": "Retirer",
549
- "save": "Enregistrer les instances",
550
- "slugLabel": "Segment d'URL",
551
- "title": "Instances"
552
- },
553
- "subtitle": "Les surfaces d’app que cette instance sert — où chacune apparaît, et les domaines qui pointent vers elles.",
554
- "surfaces": {
555
- "boundKey": "Sert la clé",
556
- "connectionLabel": "Lit",
557
- "connectionUnset": "Celle qui est active",
558
- "customer": "Client",
559
- "mintLink": "En créer une sous API publique",
560
- "noKey": "Aucune clé liée — cette surface ne peut pas lire de données tant qu’une clé n’est pas créée pour elle.",
561
- "noNav": "Placement interne indisponible — recompilez cette surface avec le toolkit actuel pour qu’elle émette surface.json.",
562
- "placementExternal": "Externe (URL propre uniquement)",
563
- "placementInternal": "Dans la barre latérale (fondue)",
564
- "placementLabel": "Placement",
565
- "staff": "Équipe",
566
- "subtitle": "Une surface équipe peut se fondre dans la barre latérale de ce tableau de bord ou rester autonome ; une surface client est publique et lit via sa clé liée.",
567
- "title": "Surfaces"
568
- },
569
- "title": "Apps hébergées",
570
579
  "install": {
571
580
  "steps": {
572
581
  "bundle": "Paquet",
@@ -602,7 +611,8 @@
602
611
  "toggleDdl": "Afficher l’aperçu DDL",
603
612
  "ddl": "Aperçu DDL",
604
613
  "ddlNote": "À titre indicatif. Le serveur produit l’instruction exacte pour votre moteur, clés étrangères comprises.",
605
- "summary": "{created} créées · {reused} réutilisées"
614
+ "summary": "{created} créées · {reused} réutilisées",
615
+ "pageWarnings": "Certaines pages de cette app arriveront sans table"
606
616
  },
607
617
  "done": {
608
618
  "title": "Installée",
@@ -650,30 +660,21 @@
650
660
  "needsNewer": "v{version} nécessite Adminium {minimum} ou plus récent",
651
661
  "missing": "Introuvable",
652
662
  "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.",
653
- "update": "Mettre à jour"
663
+ "update": "Mettre à jour",
664
+ "discardFailed": "Le téléversement n’a pas été abandonné",
665
+ "uninstallFailed": "L’application n’a pas été désinstallée"
654
666
  },
655
- "browse": {
656
- "title": "Applications installables",
657
- "subtitle": "Des applications prêtes à l’emploi livrées avec cette version. En installer une crée les tables nécessaires et sert ses écrans — rien ne se passe avant que vous confirmiez le plan.",
658
- "search": "Rechercher des applications…",
659
- "clear": "Effacer la recherche",
660
- "all": "Toutes",
661
- "by": "par {publisher}",
662
- "install": "Installer",
663
- "installed": "Installée",
664
- "missing": "Introuvable",
665
- "noMatch": "Aucune application ne correspond",
666
- "noMatchBody": "Essayez un autre terme, ou une autre catégorie.",
667
- "emptyTitle": "Aucune application à installer",
668
- "emptyBody": "Les applications livrées avec cette version apparaissent ici. Faites pointer ADMINIUM_BUNDLED_APPS vers un dossier de paquets, ou téléversez-en un.",
669
- "unreadable": "Le manifeste de ce paquet n’a pas pu être lu. Il ne peut pas être installé — écartez-le ci-dessous.",
670
- "subtitleOnline": "Les applications livrées avec cette version, plus celles du catalogue en ligne. En installer une la télécharge si besoin et crée les tables nécessaires — rien ne se passe avant que vous confirmiez le plan.",
671
- "neverChecked": "Le catalogue en ligne est activé mais n’a pas encore été consulté. Recherchez des nouveautés pour afficher ses applications.",
672
- "refresh": "Rechercher des nouveautés",
673
- "toggle": "Parcourir le catalogue d’applications en ligne",
674
- "emptyOnlineBody": "Le catalogue en ligne est activé, mais rien n’est encore listé. Recherchez des nouveautés pour le récupérer.",
675
- "fromCatalog": "En ligne",
676
- "needsNewer": "Nécessite Adminium {version} ou plus récent"
667
+ "instances": {
668
+ "add": "Ajouter une instance",
669
+ "appLabel": "Application",
670
+ "body": "Servir la même application sur plusieurs bases. Chaque instance est accessible à /apps/<app>/<segment>/<side>/ et ne lit que la connexion que vous lui donnez.",
671
+ "empty": "Aucune instance supplémentaire.",
672
+ "failed": "Les instances n'ont pas été enregistrées",
673
+ "readsLabel": "Lit",
674
+ "remove": "Retirer",
675
+ "save": "Enregistrer les instances",
676
+ "slugLabel": "Segment d'URL",
677
+ "title": "Instances"
677
678
  },
678
679
  "job": {
679
680
  "refreshTitle": "Consultation du catalogue d’applications en ligne",
@@ -681,6 +682,29 @@
681
682
  "body": "Récupération et vérification. Rien n’est installé ni modifié sans votre accord.",
682
683
  "failed": "La tâche ne s’est pas terminée. Rien n’a été installé ni modifié."
683
684
  },
685
+ "names": {
686
+ "label": "Nom pour {app}",
687
+ "save": "Enregistrer le nom",
688
+ "subtitle": "Le nom de chaque application — dans ses propres écrans et dans la barre latérale de ce tableau de bord. Laissez vide pour utiliser le nom avec lequel l’application a été créée.",
689
+ "title": "Noms des applications"
690
+ },
691
+ "subtitle": "Les surfaces d’app que cette instance sert — où chacune apparaît, et les domaines qui pointent vers elles.",
692
+ "surfaces": {
693
+ "boundKey": "Sert la clé",
694
+ "connectionLabel": "Lit",
695
+ "connectionUnset": "Celle qui est active",
696
+ "customer": "Client",
697
+ "mintLink": "En créer une sous API publique",
698
+ "noKey": "Aucune clé liée — cette surface ne peut pas lire de données tant qu’une clé n’est pas créée pour elle.",
699
+ "noNav": "Placement interne indisponible — recompilez cette surface avec le toolkit actuel pour qu’elle émette surface.json.",
700
+ "placementExternal": "Externe (URL propre uniquement)",
701
+ "placementInternal": "Dans la barre latérale (fondue)",
702
+ "placementLabel": "Placement",
703
+ "staff": "Équipe",
704
+ "subtitle": "Une surface équipe peut se fondre dans la barre latérale de ce tableau de bord ou rester autonome ; une surface client est publique et lit via sa clé liée.",
705
+ "title": "Surfaces"
706
+ },
707
+ "title": "Apps hébergées",
684
708
  "update": {
685
709
  "title": "Mettre à jour {app} vers v{version}",
686
710
  "subtitle": "Cette version a besoin de tables que la version installée n’avait pas.",
@@ -694,6 +718,16 @@
694
718
  "veto": {
695
719
  "title": "Ce déploiement ne peut pas consulter le catalogue en ligne",
696
720
  "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."
721
+ },
722
+ "columns": {
723
+ "title": "Mettre à jour {app} vers v{version}",
724
+ "subtitle": "Cette version a besoin de colonnes que des tables de votre base de données n’ont pas encore.",
725
+ "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.",
726
+ "alsoCreates": "La mise à jour crée aussi ces tables :",
727
+ "noDdl": "Adminium ne peut pas ajouter ces colonnes ici",
728
+ "failed": "Les colonnes n’ont pas pu être ajoutées",
729
+ "valuesFailed": "Les colonnes ont été ajoutées, mais leurs valeurs autorisées n’ont pas pu être enregistrées",
730
+ "confirm": "Ajouter les colonnes et mettre à jour"
697
731
  }
698
732
  },
699
733
  "hub": {
@@ -720,7 +754,8 @@
720
754
  "readOnly": "Lecture seule",
721
755
  "tables": "Tables",
722
756
  "timezone": "Fuseau horaire",
723
- "timezoneGuessed": "depuis ce serveur"
757
+ "timezoneGuessed": "depuis ce serveur",
758
+ "timezoneNone": "non défini — les dates s’affichent en {zone}, le fuseau de ce serveur"
724
759
  },
725
760
  "connectNew": "Nouvelle connexion",
726
761
  "delete": {
@@ -731,7 +766,8 @@
731
766
  "failed": "Impossible de supprimer la connexion. Réessayez.",
732
767
  "prompt": "Saisissez {name} pour confirmer",
733
768
  "success": "Connexion « {name} » supprimée",
734
- "title": "Supprimer la connexion"
769
+ "title": "Supprimer la connexion",
770
+ "forbidden": "Votre rôle ne permet pas de gérer les connexions : celle-ci n’a donc pas été supprimée."
735
771
  },
736
772
  "empty": {
737
773
  "body": "Connectez une base de données : Adminium génère votre panneau d’administration à partir de son schéma.",
@@ -1141,7 +1177,8 @@
1141
1177
  "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.",
1142
1178
  "confirm": "Supprimer la page",
1143
1179
  "prompt": "Saisissez {slug} pour confirmer",
1144
- "title": "Supprimer cette page ?"
1180
+ "title": "Supprimer cette page ?",
1181
+ "failed": "La page n’a pas été supprimée"
1145
1182
  },
1146
1183
  "derived": {
1147
1184
  "add": "Ajouter une colonne",
@@ -1225,8 +1262,10 @@
1225
1262
  "slugTaken": "Une autre page utilise déjà cette adresse.",
1226
1263
  "slugWarning": "Modifier l’adresse casse les liens et les favoris existants vers cette page.",
1227
1264
  "table": "Table",
1228
- "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.",
1265
+ "tableChoose": "Choisissez une table…",
1266
+ "tableCreateHint": "La table que cette page lit.",
1229
1267
  "tableNeedsConnection": "Choisissez d’abord une source de données.",
1268
+ "tableNoConnection": "Connectez d’abord une base de données — cette page est construite à partir de l’une de ses tables.",
1230
1269
  "tableNone": "Non liée",
1231
1270
  "template": "Modèle",
1232
1271
  "templateHint": "Détermine ce que la page peut contenir. Modifiable par la suite.",
@@ -1250,6 +1289,69 @@
1250
1289
  "title": "Filtres",
1251
1290
  "up": "Déplacer {column} vers le haut"
1252
1291
  },
1292
+ "fit": {
1293
+ "alternatives": {
1294
+ "title": "Utiliser une table qui convient déjà",
1295
+ "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.",
1296
+ "use": "Utiliser cette table"
1297
+ },
1298
+ "checkFailed": "Adminium n’a pas pu vérifier cette table",
1299
+ "checkFailedBody": "Vous pouvez quand même créer la page. Si la table ne convient pas, la création vous le dira.",
1300
+ "columns": {
1301
+ "title": "Ajouter ce qui manque à cette table",
1302
+ "help": "Adminium ajoute ces colonnes à votre table. Vous verrez l’instruction exacte avant toute exécution, et rien n’est supprimé.",
1303
+ "review": "Voir la modification",
1304
+ "confirm": "Exécuter",
1305
+ "failed": "Cela n’a pas fonctionné",
1306
+ "partial": "Une des choses dont cette page a besoin ne peut pas être ajoutée pour vous ; elle restera donc incomplète.",
1307
+ "cannot": "Adminium ne peut pas ajouter celle-ci pour vous",
1308
+ "cannotBody": "Cette page a besoin d’un lien vers une autre table, à configurer dans Studio → Schéma.",
1309
+ "halfDone": "Les colonnes ont été ajoutées, mais Adminium n’a pas pu enregistrer leur signification",
1310
+ "halfDoneBody": "Rien n’est à relancer — les colonnes existent. Définissez leur signification dans Studio → Schéma, ou demandez-le à un administrateur."
1311
+ },
1312
+ "needs": "Pour construire cette page, la table a besoin de :",
1313
+ "noDdl": "Adminium ne peut pas modifier cette table pour vous",
1314
+ "role": {
1315
+ "eventDate": "une date sur chaque ligne",
1316
+ "title": "une colonne de texte à afficher comme titre de chaque ligne",
1317
+ "status": "une colonne de statut dont les valeurs décrivent des étapes de travail",
1318
+ "personFk": "un lien vers une table de personnes",
1319
+ "shiftType": "une colonne indiquant le type de créneau de chaque ligne"
1320
+ },
1321
+ "slotOnly": "Rien dans cette table ne peut remplir sa zone « {slot} ».",
1322
+ "tag": {
1323
+ "title": "Utiliser une colonne que vous avez déjà",
1324
+ "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.",
1325
+ "action": "Utiliser cette colonne",
1326
+ "failed": "Cette colonne n’a pas pu être marquée"
1327
+ },
1328
+ "title": "Cette table ne peut pas encore alimenter cette page",
1329
+ "table": {
1330
+ "title": "Créer une nouvelle table pour cette page",
1331
+ "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.",
1332
+ "open": "Ou créer une nouvelle table pour cette page",
1333
+ "name": "Nom de la table",
1334
+ "nameTaken": "Une table porte déjà ce nom.",
1335
+ "nameInvalid": "Utilisez des minuscules, des chiffres et des tirets bas, en commençant par une lettre.",
1336
+ "people": "Attribuer chaque ligne à une personne de",
1337
+ "peopleNew": "Une nouvelle table de personnes",
1338
+ "peopleCreated": "Crée aussi « {table} », une petite table des personnes auxquelles les lignes sont attribuées.",
1339
+ "noCompose": "Une table portant ce nom ne fonctionnerait pas pour cette page. Essayez un autre nom.",
1340
+ "confirm": "Créer la table",
1341
+ "noDdl": "Adminium ne peut pas créer de table ici",
1342
+ "halfDone": "La table a été créée, mais Adminium n’a pas pu enregistrer la signification de ses colonnes",
1343
+ "halfDoneBody": "Rien n’est à relancer — la table existe. Définissez la signification de ses colonnes dans Studio → Schéma, ou demandez-le à un administrateur.",
1344
+ "notReread": "La table a été créée, mais Adminium n’a pas encore pu la relire",
1345
+ "notRereadBody": "Rien n’est à relancer. Actualisez le schéma depuis Studio → Connexions de données, puis choisissez ici la nouvelle table."
1346
+ },
1347
+ "related": {
1348
+ "title": "Utiliser les dates d’une table liée",
1349
+ "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.",
1350
+ "reason": "Dates tirées de « {date} », chacune intitulée avec « {title} » via « {via} »",
1351
+ "chosen": "Construite sur {table}, chaque entrée intitulée avec « {title} » de {from}",
1352
+ "undo": "Revenir à {table}"
1353
+ }
1354
+ },
1253
1355
  "form": {
1254
1356
  "addLines": "{label} en lignes",
1255
1357
  "dialog": {
@@ -1453,7 +1555,8 @@
1453
1555
  "narrow": "Étroite (720 px)",
1454
1556
  "page": "Page (1080 px)",
1455
1557
  "wide": "Large (1800 px)"
1456
- }
1558
+ },
1559
+ "toggleFailed": "La page n’a pas été modifiée"
1457
1560
  },
1458
1561
  "project": {
1459
1562
  "actions": {
@@ -2244,7 +2347,10 @@
2244
2347
  "usedBytes": "{size} utilisés"
2245
2348
  },
2246
2349
  "tables": {
2350
+ "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.",
2351
+ "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.",
2247
2352
  "emptyFilter": "Aucune table ne correspond à votre filtre.",
2353
+ "emptyTitle": "Aucune table trouvée",
2248
2354
  "highVolume": "gros volume",
2249
2355
  "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.",
2250
2356
  "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.",
@@ -2302,6 +2408,14 @@
2302
2408
  "persistFailed": "Impossible d’enregistrer votre sélection de tables — réessayez.",
2303
2409
  "persistFailedTitle": "Échec de l’enregistrement",
2304
2410
  "progress": "Progression de la configuration",
2411
+ "startOver": {
2412
+ "action": "Recommencer",
2413
+ "body": "Tout ce qui a été saisi ici est effacé et l’assistant revient à la première étape.",
2414
+ "bodyCreated": "Tout ce qui a été saisi ici est effacé et l’assistant revient à la première étape. La connexion déjà créée par Adminium n’est pas supprimée — elle reste dans « Connexions de données ».",
2415
+ "confirm": "Recommencer",
2416
+ "keep": "Continuer",
2417
+ "title": "Recommencer cet assistant ?"
2418
+ },
2305
2419
  "step": {
2306
2420
  "enrich": "Enrichir",
2307
2421
  "generate": "Générer",
@@ -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": {