doxa-maps/library/i18n/locales/de/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

{
"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"
}