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": "Studio dei plugin",
|
||
"navLabel": "Plugin per capacità",
|
||
"countLabel": "{bundles} pacchetti · {elements} plugin elencati qui",
|
||
"changeLanguage": "Cambia lingua",
|
||
"copyEmbed": "Copia codice di incorporamento",
|
||
"copy": "Copia",
|
||
"copied": "Copiato",
|
||
"scriptEmbed": "Incorporamento tramite script",
|
||
"loading": "Caricamento di {name}…",
|
||
"couldNotLoad": "Impossibile caricare {name}.",
|
||
"chooseElement": "Scegli un plugin dall’elenco.",
|
||
"filterPlaceholder": "Filtra i plugin",
|
||
"collapseAll": "Comprimi tutto",
|
||
"noMatch": "Nessun plugin corrisponde a «{query}».",
|
||
"openSection": "Apri {cap}, {label}",
|
||
"part": "parte",
|
||
"noStandalone": "nessuna pagina propria",
|
||
"cap5": "Shell dell’app",
|
||
"cap4": "Composito",
|
||
"cap3": "Multivista",
|
||
"cap2": "Preimpostato",
|
||
"cap1": "Singolo",
|
||
"toggleList": "Mostra o nascondi l’elenco",
|
||
"openViews": "Apri l’elenco delle viste",
|
||
"expandList": "Espandi l’elenco",
|
||
"collapseList": "Comprimi l’elenco",
|
||
"collapse": "Comprimi",
|
||
"partOf": "parte di {name}, non pubblicata da sola",
|
||
"mapToken": "Token mappa",
|
||
"mapboxToken": "Token Mapbox",
|
||
"tokenPaste": "Token pubblico Mapbox (pk.…)",
|
||
"tokenUrlLabel": "…o l’URL di un servizio di token",
|
||
"tokenApply": "Usa",
|
||
"tokenClear": "Cancella",
|
||
"tokenStoredHere": "Conservato solo in questo browser.",
|
||
"tokenSourceYours": "Uso il tuo token",
|
||
"tokenSourceUrl": "Uso un token da {url}",
|
||
"tokenSourceBuilt": "Uso il token integrato in questa pagina",
|
||
"tokenSourceNone": "Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",
|
||
"tokenSecret": "Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",
|
||
"tokenNotPk": "Un token pubblico Mapbox inizia con pk.",
|
||
"tokenUrlFailed": "Impossibile ottenere un token da quell’URL: {why}",
|
||
"settings": "Impostazioni",
|
||
"mapEngine": "Motore mappe",
|
||
"engineDefault": "Quello di ogni mappa",
|
||
"engineMapboxNote": "richiede un token",
|
||
"engineMaplibreNote": "nessun token necessario",
|
||
"tokenNotNeeded": "MapLibre è selezionato: le sue mappe non richiedono un token Mapbox",
|
||
"hideHeader": "Nascondi intestazione",
|
||
"showHeader": "Mostra intestazione",
|
||
"elementsCount": "{n} elementi",
|
||
"elements": "elementi"
|
||
}
|