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.
54 lines
2.3 KiB
JSON
54 lines
2.3 KiB
JSON
{
|
|
"title": "Plugin-Studio",
|
|
"navLabel": "Plugins nach Fähigkeit",
|
|
"countLabel": "{bundles} Bundles · {elements} Plugins hier aufgeführt",
|
|
"changeLanguage": "Sprache ändern",
|
|
"copyEmbed": "Einbettung kopieren",
|
|
"copy": "Kopieren",
|
|
"copied": "Kopiert",
|
|
"scriptEmbed": "Skript-Einbettung",
|
|
"loading": "{name} wird geladen…",
|
|
"couldNotLoad": "{name} konnte nicht geladen werden.",
|
|
"chooseElement": "Wählen Sie ein Plugin aus der Liste.",
|
|
"filterPlaceholder": "Plugins filtern",
|
|
"collapseAll": "Alle einklappen",
|
|
"noMatch": "Kein Plugin entspricht „{query}“.",
|
|
"openSection": "{cap} öffnen, {label}",
|
|
"part": "Teil",
|
|
"noStandalone": "keine eigene Seite",
|
|
"cap5": "App-Shell",
|
|
"cap4": "Komposit",
|
|
"cap3": "Mehrfachansicht",
|
|
"cap2": "Voreinstellung",
|
|
"cap1": "Einzeln",
|
|
"toggleList": "Liste ein-/ausblenden",
|
|
"openViews": "Ansichtsliste öffnen",
|
|
"expandList": "Liste ausklappen",
|
|
"collapseList": "Liste einklappen",
|
|
"collapse": "Einklappen",
|
|
"partOf": "Teil von {name}, nicht eigenständig veröffentlicht",
|
|
"mapToken": "Karten-Token",
|
|
"mapboxToken": "Mapbox-Token",
|
|
"tokenPaste": "Öffentlicher Mapbox-Token (pk.…)",
|
|
"tokenUrlLabel": "…oder die URL eines Token-Dienstes",
|
|
"tokenApply": "Verwenden",
|
|
"tokenClear": "Löschen",
|
|
"tokenStoredHere": "Nur in diesem Browser gespeichert.",
|
|
"tokenSourceYours": "Ihr Token wird verwendet",
|
|
"tokenSourceUrl": "Token von {url} wird verwendet",
|
|
"tokenSourceBuilt": "Der in diese Seite eingebaute Token wird verwendet",
|
|
"tokenSourceNone": "Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",
|
|
"tokenSecret": "Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",
|
|
"tokenNotPk": "Ein öffentlicher Mapbox-Token beginnt mit pk.",
|
|
"tokenUrlFailed": "Von dieser URL kam kein Token: {why}",
|
|
"settings": "Einstellungen",
|
|
"mapEngine": "Karten-Engine",
|
|
"engineDefault": "Je Karte eigenes",
|
|
"engineMapboxNote": "braucht einen Token",
|
|
"engineMaplibreNote": "kein Token nötig",
|
|
"tokenNotNeeded": "MapLibre ist gewählt: Seine Karten brauchen keinen Mapbox-Token",
|
|
"hideHeader": "Kopfzeile ausblenden",
|
|
"showHeader": "Kopfzeile einblenden",
|
|
"elementsCount": "{n} Elemente",
|
|
"elements": "Elemente"
|
|
}
|