doxa-maps/library/i18n/locales/fr/studio.json
Doxa Maps 1795fb4740 Plugin Studio rail laid out like plugin-designs/: one folder per bundle, its elements inside
The Driver's ask: one folder per BUNDLE with its ELEMENTS inside, bundles sorted by capability, highest
first. The rail listed every element flat under its own capability, so a bundle's elements were
scattered (gospel-resources' five screens sat in three sections). Now each capability section (5 → 1)
holds the bundles whose HIGHEST capability it is, in name order; a bundle with several elements is one
folder (country-posters, gospel-resources, my-upg-100-list, regions-dashboard, cities-internet), and a
single-element bundle is shown as its element. Composites keep their folded composition trees.

StudioTree identifies a plugin's row by a `canonical` flag rather than "depth 0", so auto-reveal opens
the bundle folder above an element chosen by URL or restored tab. New folder icon; 'elementsCount' and
'elements' in all 11 studio catalogues.
check:studio-rail (headless, gates:post) runs the studio's real rail code on the built manifest and
asserts the layout and one canonical node per plugin (21 bundles, 33 elements); it fails on the previous
rail. Also: poster.json:dpi is declared identical on purpose in check:i18n-never-translated (a unit
symbol kept as-is by project decision), which had turned that gate red on main.
2026-09-26 12:23:49 +00:00

54 lines
2.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"title": "Studio de plugins",
"navLabel": "Plugins par capacité",
"countLabel": "{bundles} paquets · {elements} plugins listés ici",
"changeLanguage": "Changer de langue",
"copyEmbed": "Copier le code d’intégration",
"copy": "Copier",
"copied": "Copié",
"scriptEmbed": "Intégration par script",
"loading": "Chargement de {name}…",
"couldNotLoad": "Impossible de charger {name}.",
"chooseElement": "Choisissez un plugin dans la liste.",
"filterPlaceholder": "Filtrer les plugins",
"collapseAll": "Tout replier",
"noMatch": "Aucun plugin ne correspond à « {query} ».",
"openSection": "Ouvrir {cap}, {label}",
"part": "partie",
"noStandalone": "pas de page autonome",
"cap5": "Coquille d’application",
"cap4": "Composite",
"cap3": "Multivue",
"cap2": "Préréglage",
"cap1": "Simple",
"toggleList": "Afficher ou masquer la liste",
"openViews": "Ouvrir la liste des vues",
"expandList": "Déplier la liste",
"collapseList": "Replier la liste",
"collapse": "Replier",
"partOf": "partie de {name}, non publiée seule",
"mapToken": "Jeton de carte",
"mapboxToken": "Jeton Mapbox",
"tokenPaste": "Jeton public Mapbox (pk.…)",
"tokenUrlLabel": "…ou l’URL d’un service de jetons",
"tokenApply": "Utiliser",
"tokenClear": "Effacer",
"tokenStoredHere": "Conservé dans ce navigateur uniquement.",
"tokenSourceYours": "Votre jeton est utilisé",
"tokenSourceUrl": "Jeton obtenu de {url}",
"tokenSourceBuilt": "Jeton intégré à cette page",
"tokenSourceNone": "Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",
"tokenSecret": "C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",
"tokenNotPk": "Un jeton public Mapbox commence par pk.",
"tokenUrlFailed": "Impossible d’obtenir un jeton depuis cette URL : {why}",
"settings": "Paramètres",
"mapEngine": "Moteur de carte",
"engineDefault": "Celui de chaque carte",
"engineMapboxNote": "nécessite un jeton",
"engineMaplibreNote": "aucun jeton requis",
"tokenNotNeeded": "MapLibre est sélectionné : ses cartes n’ont pas besoin de jeton Mapbox",
"hideHeader": "Masquer l'en-tête",
"showHeader": "Afficher l'en-tête",
"elementsCount": "{n} éléments",
"elements": "éléments"
}