@loomweaver/shell 0.7.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.
package/i18n/de.json ADDED
@@ -0,0 +1,293 @@
1
+ {
2
+ "appReset": {
3
+ "action": "Layout zurücksetzen",
4
+ "confirm": "App-Layout zurücksetzen?\n\nDas kommt zurück: die von dir kuratierte Leiste, eingeklappte Seitenleisten, Seitenleisten-Breiten, deine Hand-Sortierung und benannte Ansichts-Instanzen samt ihrem Zustand.\n\nDas bleibt: deine gespeicherten Arbeitsbereiche samt Layout, Farbschema, Sprache, Textgröße, Berechtigungen und installierte Plugins.",
5
+ "desc": "Stellt die Anordnung so her, wie diese App ausgeliefert wurde.",
6
+ "title": "App-Layout zurücksetzen"
7
+ },
8
+ "auth": {
9
+ "requiredTitle": "Anmeldung erforderlich",
10
+ "requiredMessage": "Melde dich mit einem Konto an, das die nötige Berechtigung hat.",
11
+ "deniedTitle": "Kein Zugriff",
12
+ "deniedMessage": "Dein Konto hat keinen Zugriff auf diesen Inhalt. Für die nötige Berechtigung wende dich an die Administration."
13
+ },
14
+ "content": {
15
+ "closeTab": "Tab schließen",
16
+ "moreTabs": "Alle geöffneten Tabs",
17
+ "pinnedHint": "Angeheftet — Klick zum Lösen",
18
+ "pluginSurface": "Plugin-Inhalt",
19
+ "previewHint": "Vorschau — Doppelklick zum Anheften",
20
+ "unpinTab": "Tab lösen",
21
+ "split": {
22
+ "open": "Editor teilen",
23
+ "resize": "Teilung anpassen",
24
+ "unavailable": "Diese Ansicht lässt sich noch nicht geteilt anzeigen.",
25
+ "splitRight": "Rechts teilen",
26
+ "splitDown": "Unten teilen",
27
+ "closePane": "Pane schließen",
28
+ "pick": "Inhalt wählen",
29
+ "home": "Start",
30
+ "newTab": "Neuer Tab",
31
+ "maximize": "Maximieren (ganzen Bildschirm füllen)",
32
+ "restore": "Wiederherstellen",
33
+ "minimize": "Auf einen Streifen minimieren",
34
+ "restoreMinimized": "Pane wiederherstellen",
35
+ "restoreMinimizedCount": "Pane wiederherstellen ({{count}} Tabs)",
36
+ "awaiting": "Noch nichts geöffnet. Wähle etwas aus, das hier erscheinen soll."
37
+ },
38
+ "tabMenu": {
39
+ "close": "Schließen",
40
+ "closeOthers": "Andere schließen",
41
+ "closeRight": "Rechts schließen",
42
+ "closeAll": "Alle schließen",
43
+ "pinned": "Angeheftet",
44
+ "openInNewWindow": "In neuem Fenster öffnen"
45
+ }
46
+ },
47
+ "curation": {
48
+ "empty": "Hier ist nichts zu platzieren.",
49
+ "hidden": "Ausgeblendet",
50
+ "left": "Links",
51
+ "right": "Rechts",
52
+ "search": "Suchen",
53
+ "shown": "Sichtbar"
54
+ },
55
+ "dialog": {
56
+ "ok": "OK",
57
+ "cancel": "Abbrechen",
58
+ "close": "Schließen",
59
+ "maximize": "Maximieren",
60
+ "restore": "Wiederherstellen"
61
+ },
62
+ "language": {
63
+ "label": "Sprache",
64
+ "desc": "Anzeigesprache der Oberfläche.",
65
+ "en": "English",
66
+ "de": "Deutsch"
67
+ },
68
+ "notification": {
69
+ "region": "Benachrichtigungen",
70
+ "dismiss": "Schließen"
71
+ },
72
+ "palette": {
73
+ "title": "Befehlspalette",
74
+ "placeholder": "Befehl eingeben…",
75
+ "empty": "Keine passenden Befehle",
76
+ "recent": "Zuletzt verwendet",
77
+ "all": "Alle Befehle",
78
+ "hint": {
79
+ "navigate": "Auswählen",
80
+ "run": "Ausführen",
81
+ "close": "Schließen",
82
+ "actions": "Aktionen"
83
+ },
84
+ "tabsPlaceholder": "Zu offenem Tab…",
85
+ "tabsEmpty": "Keine offenen Tabs",
86
+ "quickOpenTitle": "Zu offenem Tab wechseln…"
87
+ },
88
+ "panel": {
89
+ "collapse": "Panel einklappen",
90
+ "expand": "Panel ausklappen",
91
+ "open": "Panel öffnen",
92
+ "close": "Panel schließen",
93
+ "resize": "Panelbreite ändern",
94
+ "viewMenu": {
95
+ "moveToOtherSidebar": "In andere Seitenleiste verschieben",
96
+ "stackBelow": "Darunter stapeln",
97
+ "openInContent": "Im Content öffnen",
98
+ "resetState": "Ansicht zurücksetzen",
99
+ "openInNewWindow": "In neuem Fenster öffnen",
100
+ "hide": "Ausblenden"
101
+ },
102
+ "stack": {
103
+ "unstack": "Stapel lösen"
104
+ },
105
+ "viewMove": {
106
+ "announce": "{{view}} in {{target}} verschoben",
107
+ "targetLeft": "linke Seitenleiste",
108
+ "targetRight": "rechte Seitenleiste"
109
+ },
110
+ "customizeViews": "Ansichten anpassen"
111
+ },
112
+ "permission": {
113
+ "blocked": "Diese Aktion wurde blockiert, weil eine benötigte Berechtigung ausgeschaltet ist. Öffne Einstellungen → Berechtigungen, um sie zu ändern.",
114
+ "openSettings": "Einstellungen öffnen"
115
+ },
116
+ "popout": {
117
+ "unavailable": "Diese Ansicht ist in einem eigenen Fenster nicht verfügbar.",
118
+ "blocked": {
119
+ "title": "Pop-up blockiert",
120
+ "message": "Der Browser hat das neue Fenster blockiert. Klicke unten, um es zu öffnen — oder erlaube Pop-ups für diese Seite, dann entfällt der Schritt künftig.",
121
+ "open": "Fenster öffnen"
122
+ }
123
+ },
124
+ "progress": {
125
+ "busy": "Vorgang läuft"
126
+ },
127
+ "rail": {
128
+ "label": "Aktivitätsleiste",
129
+ "labelRight": "Rechte Aktivitätsleiste",
130
+ "menu": {
131
+ "moveToOther": "In andere Aktivitätsleiste verschieben",
132
+ "hide": "Ausblenden"
133
+ },
134
+ "move": {
135
+ "announce": "{{item}} in {{target}} verschoben",
136
+ "targetLeft": "linke Aktivitätsleiste",
137
+ "targetRight": "rechte Aktivitätsleiste"
138
+ },
139
+ "customize": "Leiste anpassen"
140
+ },
141
+ "reorder": {
142
+ "announce": "{{label}}: {{position}} von {{total}}"
143
+ },
144
+ "retention": {
145
+ "unsavedTitle": "Ungespeicherte Änderungen",
146
+ "unsavedMessage": "Hier gibt es ungespeicherte Änderungen. Was soll damit geschehen?",
147
+ "save": "Speichern",
148
+ "discard": "Verwerfen",
149
+ "saveFailed": "Speichern fehlgeschlagen — deine Änderungen bleiben erhalten und die Ansicht offen",
150
+ "stillDirty": "Die Ansicht meldet nach dem Speichern weiterhin ungespeicherte Änderungen — das Schließen wurde abgebrochen",
151
+ "vetoPendingTitle": "Warten auf das Plugin",
152
+ "vetoPendingMessage": "Das Plugin dieses Tabs hat seine Schließen-Prüfung noch nicht beantwortet. Du kannst den Tab trotzdem schließen.",
153
+ "closeAnyway": "Trotzdem schließen"
154
+ },
155
+ "route": {
156
+ "unavailableTitle": "Ansicht nicht verfügbar",
157
+ "unavailableMessage": "Diese Ansicht gibt es in dieser Anwendung nicht. Möglicherweise stammt der Link aus einer anderen Umgebung."
158
+ },
159
+ "settings": {
160
+ "capability": {
161
+ "contributions": "Zur Oberfläche beitragen",
162
+ "ui": "Dialoge und Hinweise anzeigen",
163
+ "host": "App-Version & Updates lesen",
164
+ "navigation": "Inhalts-Tabs öffnen und schließen",
165
+ "session": "Anmeldestatus lesen",
166
+ "theme": "App-Farben ändern",
167
+ "automation": "Aktionen anderer Plugins ausführen"
168
+ },
169
+ "capabilityDesc": {
170
+ "contributions": "Befehle, Ansichten, Menüeinträge, Icons und Routen registrieren.",
171
+ "ui": "Dialoge, Eingaben, Hinweise, Menüs und die Einstellungsfläche anzeigen.",
172
+ "host": "App-Version und Update-Status lesen.",
173
+ "navigation": "In der Inhaltsfläche navigieren und Tabs öffnen, anheften oder schließen.",
174
+ "session": "Lesen, ob du angemeldet bist, und welche Rollen du hast.",
175
+ "theme": "Die ganze App über Design-Tokens umfärben (überstimmt nie das Tenant-Branding).",
176
+ "automation": "Aktionen ausführen, die andere Plugins beigetragen haben, und auflisten, welche es ausführen darf. Es erreicht nur Aktionen, die deren Autoren geöffnet haben, und nur dort, wo du sie selbst hättest ausführen können."
177
+ },
178
+ "empty": "Keine Einstellungen verfügbar",
179
+ "general": "Allgemein",
180
+ "group": {
181
+ "options": "Optionen",
182
+ "plugins": "App-Plugins",
183
+ "community": "Community-Plugins"
184
+ },
185
+ "permissions": "Berechtigungen",
186
+ "permissionsDesc": "Schalte ein ganzes Plugin ein oder aus oder verwalte, was es darf. Änderungen wirken sofort; die Distribution kann nie mehr gewähren, als hier aufgeführt ist.",
187
+ "permissionsEmpty": "Keine Plugins installiert.",
188
+ "permissionsProvided": "Von Ihrer Organisation bereitgestellt. Diese Berechtigungen wurden mit dem Plugin vergeben und lassen sich hier nicht entziehen.",
189
+ "pluginDisabled": "Dieses Plugin ist ausgeschaltet. Schalte es ein, um seine Berechtigungen zu verwalten.",
190
+ "pluginEnabled": "Aktiviert",
191
+ "pluginLevel": {
192
+ "trusted": "Läuft in dieser Anwendung — was es zurückhält, ist das unten Gewährte, nicht der Browser.",
193
+ "embedded": "Läuft eingebettet — behält eine eigene Herkunft und wird von dieser Anwendung nicht ferngehalten.",
194
+ "isolated": "Läuft isoliert — kein Zugriff auf diese Anwendung, ihren Speicher oder Ihre Sitzung."
195
+ },
196
+ "pluginStore": "Plugin-Store",
197
+ "storeActionDisable": "Deaktivieren",
198
+ "storeActionEnable": "Aktivieren",
199
+ "storeActionSettings": "Einstellungen öffnen",
200
+ "storeBrowse": "Plugins durchsuchen",
201
+ "storeBy": "von {{author}}",
202
+ "storeConsent": "**{{name}}** fordert folgende Berechtigungen an:",
203
+ "storeConsentNone": "**{{name}}** fordert keine Berechtigungen an.",
204
+ "storeDesc": "Installiere geprüfte Plugins aus dem Store dieses Produkts. Ein Plugin erhält nur die beim Installieren angezeigten Berechtigungen; du kannst sie jederzeit widerrufen oder das Plugin deinstallieren.",
205
+ "storeDownloads": "{{count}} Downloads",
206
+ "storeEmpty": "Der Plugin-Katalog ist leer.",
207
+ "storeError": "Der Plugin-Katalog konnte nicht geladen werden.",
208
+ "storeInstall": "Installieren",
209
+ "storeInstallTitle": "{{name}} installieren?",
210
+ "storeInstalledBadge": "Installiert",
211
+ "storeLoading": "Plugin-Katalog wird geladen …",
212
+ "storeNoInstalled": "Noch nichts installiert — durchsuche den Katalog, um zu starten.",
213
+ "storeNoResults": "Keine Plugins passen zur Suche.",
214
+ "storeProvidedBadge": "Bereitgestellt",
215
+ "storeProvidedHint": "Von Ihrer Organisation bereitgestellt — hier weder abschaltbar noch entfernbar.",
216
+ "storeRepository": "Repository",
217
+ "storeSearch": "Plugins nach Name, Autor oder Beschreibung durchsuchen …",
218
+ "storeSelectHint": "Wähle links ein Plugin, um seine Details zu sehen.",
219
+ "storeTabBrowse": "Durchsuchen",
220
+ "storeTabInstalled": "Installiert",
221
+ "storeUninstall": "Deinstallieren",
222
+ "storeUninstallConfirm": "**{{name}}** wird entfernt und seine Beiträge verschwinden sofort. Seine Einstellungen bleiben erhalten, falls du es später erneut installierst.",
223
+ "storeUninstallTitle": "{{name}} deinstallieren?",
224
+ "storeUpdate": "Aktualisieren",
225
+ "storeUpdateAvailable": "Update verfügbar",
226
+ "storeUpdateConsent": "Version {{version}} von **{{name}}** fordert zusätzliche Berechtigungen an:",
227
+ "storeUpdateTitle": "{{name}} aktualisieren?",
228
+ "storeUpdateTo": "Auf v{{version}} aktualisieren",
229
+ "storeUpdated": "aktualisiert {{date}}",
230
+ "title": "Einstellungen"
231
+ },
232
+ "shell": {
233
+ "tagline": "Plugin- & UI-Plattform — der Webstuhl"
234
+ },
235
+ "skip": {
236
+ "toContent": "Zum Hauptinhalt springen"
237
+ },
238
+ "textSize": {
239
+ "label": "Textgröße",
240
+ "desc": "Die ganze Oberfläche größer oder kleiner skalieren.",
241
+ "sm": "Klein",
242
+ "md": "Standard",
243
+ "lg": "Groß",
244
+ "xl": "Sehr groß"
245
+ },
246
+ "theme": {
247
+ "label": "Darstellung",
248
+ "desc": "Hell, dunkel oder dem System folgen.",
249
+ "light": "Hell",
250
+ "dark": "Dunkel",
251
+ "system": "System"
252
+ },
253
+ "update": {
254
+ "check": "Auf Updates prüfen",
255
+ "available": "Update verfügbar — neu laden",
256
+ "reload": "Neu laden",
257
+ "upToDate": "Du bist auf dem neuesten Stand",
258
+ "checkUnavailable": "Update-Prüfung nicht möglich — bitte die Seite neu laden",
259
+ "failed": "Update konnte nicht installiert werden — zum Wiederholen neu laden",
260
+ "broken": "Der Offline-Speicher dieser App ist beschädigt. Beim Reparieren wird er neu aufgebaut.",
261
+ "repair": "Reparieren und neu laden"
262
+ },
263
+ "viewInstance": {
264
+ "default": "Standard",
265
+ "switcher": "Gespeicherte Ansichten",
266
+ "new": "Neue Ansicht…",
267
+ "rename": "Umbenennen…",
268
+ "delete": "Löschen",
269
+ "newTitle": "Neue gespeicherte Ansicht",
270
+ "renameTitle": "Ansicht umbenennen",
271
+ "namePlaceholder": "Name der Ansicht",
272
+ "deleteConfirm": "Gespeicherte Ansicht „{{name}}“ löschen? Das kann nicht rückgängig gemacht werden."
273
+ },
274
+ "workspace": {
275
+ "title": "Workspaces",
276
+ "save": "Als neu speichern",
277
+ "namePlaceholder": "Workspace-Name",
278
+ "rename": "Umbenennen",
279
+ "delete": "Löschen",
280
+ "deleteConfirm": "Workspace „{{name}}“ löschen?",
281
+ "reset": "Layout zurücksetzen",
282
+ "resetConfirm": "Diesen Workspace zurücksetzen? Das Layout kehrt zum gespeicherten Ausgangszustand zurück; deine gespeicherten Workspaces bleiben erhalten.",
283
+ "default": "Standard",
284
+ "saveBaseline": "Änderungen übernehmen",
285
+ "saveBaselineHint": "Übernimmt den aktuellen Stand als neuen Ausgangszustand dieses Workspace.",
286
+ "applyConfirm": "Aktuellen Stand als neuen Ausgangszustand dieses Workspace übernehmen? Der bisher gespeicherte Stand wird ersetzt.",
287
+ "resetHint": "Verwirft die Änderungen dieses Workspace und kehrt zum gespeicherten Ausgangszustand zurück.",
288
+ "saveAsHint": "Speichert den aktuellen Stand als neuen Workspace und wechselt hinein.",
289
+ "tabMine": "Meine",
290
+ "tabProvided": "Vorgegeben",
291
+ "variantOf": "Variante von {{name}}"
292
+ }
293
+ }
package/i18n/en.json ADDED
@@ -0,0 +1,293 @@
1
+ {
2
+ "appReset": {
3
+ "action": "Reset layout",
4
+ "confirm": "Reset the app layout?\n\nThis puts back: the activity bar you curated, collapsed sidebars, sidebar widths, your hand sorting, and named view instances with their state.\n\nThis stays: your saved workspaces and their layouts, colour scheme, language, text size, permissions and installed plugins.",
5
+ "desc": "Puts the arrangement back the way this app shipped it.",
6
+ "title": "Reset app layout"
7
+ },
8
+ "auth": {
9
+ "requiredTitle": "Sign-in required",
10
+ "requiredMessage": "Sign in with an account that has permission to see this content.",
11
+ "deniedTitle": "No access",
12
+ "deniedMessage": "Your account does not have access to this content. Ask your administrator for the permission it needs."
13
+ },
14
+ "content": {
15
+ "closeTab": "Close tab",
16
+ "moreTabs": "All open tabs",
17
+ "pinnedHint": "Pinned — click to unpin",
18
+ "pluginSurface": "Plugin content",
19
+ "previewHint": "Preview — double-click to keep open",
20
+ "unpinTab": "Unpin tab",
21
+ "split": {
22
+ "open": "Split editor",
23
+ "resize": "Resize split",
24
+ "unavailable": "This view can’t be shown in a split yet.",
25
+ "splitRight": "Split right",
26
+ "splitDown": "Split down",
27
+ "closePane": "Close pane",
28
+ "pick": "Choose content",
29
+ "home": "Home",
30
+ "newTab": "New tab",
31
+ "maximize": "Maximize (fill the whole screen)",
32
+ "restore": "Restore",
33
+ "minimize": "Minimize to a strip",
34
+ "restoreMinimized": "Restore pane",
35
+ "restoreMinimizedCount": "Restore pane ({{count}} tabs)",
36
+ "awaiting": "Nothing open yet. Pick something to show here."
37
+ },
38
+ "tabMenu": {
39
+ "close": "Close",
40
+ "closeOthers": "Close Others",
41
+ "closeRight": "Close to the Right",
42
+ "closeAll": "Close All",
43
+ "pinned": "Pinned",
44
+ "openInNewWindow": "Open in New Window"
45
+ }
46
+ },
47
+ "curation": {
48
+ "empty": "Nothing to place here.",
49
+ "hidden": "Hidden",
50
+ "left": "Left",
51
+ "right": "Right",
52
+ "search": "Search",
53
+ "shown": "Shown"
54
+ },
55
+ "dialog": {
56
+ "ok": "OK",
57
+ "cancel": "Cancel",
58
+ "close": "Close",
59
+ "maximize": "Maximize",
60
+ "restore": "Restore"
61
+ },
62
+ "language": {
63
+ "label": "Language",
64
+ "desc": "Display language of the interface.",
65
+ "en": "English",
66
+ "de": "Deutsch"
67
+ },
68
+ "notification": {
69
+ "region": "Notifications",
70
+ "dismiss": "Dismiss"
71
+ },
72
+ "palette": {
73
+ "title": "Command palette",
74
+ "placeholder": "Type a command…",
75
+ "empty": "No matching commands",
76
+ "recent": "Recently used",
77
+ "all": "All commands",
78
+ "hint": {
79
+ "navigate": "Select",
80
+ "run": "Run",
81
+ "close": "Close",
82
+ "actions": "Actions"
83
+ },
84
+ "tabsPlaceholder": "Go to open tab…",
85
+ "tabsEmpty": "No open tabs",
86
+ "quickOpenTitle": "Go to open tab…"
87
+ },
88
+ "panel": {
89
+ "collapse": "Collapse panel",
90
+ "expand": "Expand panel",
91
+ "open": "Open panel",
92
+ "close": "Close panel",
93
+ "resize": "Resize panel",
94
+ "viewMenu": {
95
+ "moveToOtherSidebar": "Move to other sidebar",
96
+ "stackBelow": "Stack below",
97
+ "openInContent": "Open in content",
98
+ "resetState": "Reset view",
99
+ "openInNewWindow": "Open in new window",
100
+ "hide": "Hide"
101
+ },
102
+ "stack": {
103
+ "unstack": "Unstack view"
104
+ },
105
+ "viewMove": {
106
+ "announce": "{{view}} moved to {{target}}",
107
+ "targetLeft": "left sidebar",
108
+ "targetRight": "right sidebar"
109
+ },
110
+ "customizeViews": "Customize views"
111
+ },
112
+ "permission": {
113
+ "blocked": "This action was blocked because a permission it needs is turned off. Open Settings → Permissions to change it.",
114
+ "openSettings": "Open settings"
115
+ },
116
+ "popout": {
117
+ "unavailable": "This view isn’t available in a separate window.",
118
+ "blocked": {
119
+ "title": "Pop-up blocked",
120
+ "message": "Your browser blocked the new window. Click the button below to open it — or allow pop-ups for this site to skip this step next time.",
121
+ "open": "Open window"
122
+ }
123
+ },
124
+ "progress": {
125
+ "busy": "Working"
126
+ },
127
+ "rail": {
128
+ "label": "Activity bar",
129
+ "labelRight": "Right activity bar",
130
+ "menu": {
131
+ "moveToOther": "Move to other activity bar",
132
+ "hide": "Hide"
133
+ },
134
+ "move": {
135
+ "announce": "{{item}} moved to {{target}}",
136
+ "targetLeft": "left activity bar",
137
+ "targetRight": "right activity bar"
138
+ },
139
+ "customize": "Customize activity bar"
140
+ },
141
+ "reorder": {
142
+ "announce": "{{label}}: {{position}} of {{total}}"
143
+ },
144
+ "retention": {
145
+ "unsavedTitle": "Unsaved changes",
146
+ "unsavedMessage": "There are unsaved changes here. What should happen to them?",
147
+ "save": "Save",
148
+ "discard": "Discard",
149
+ "saveFailed": "Saving failed — your changes are kept and the surface stays open",
150
+ "stillDirty": "The surface still reports unsaved changes after saving — closing was cancelled",
151
+ "vetoPendingTitle": "Waiting for the plugin",
152
+ "vetoPendingMessage": "This tab's plugin has not finished its close check yet. You can close the tab anyway.",
153
+ "closeAnyway": "Close anyway"
154
+ },
155
+ "route": {
156
+ "unavailableTitle": "View not available",
157
+ "unavailableMessage": "This view does not exist in this application. The link may come from a different environment."
158
+ },
159
+ "settings": {
160
+ "capability": {
161
+ "contributions": "Contribute to the UI",
162
+ "ui": "Show dialogs and messages",
163
+ "host": "Read app version & updates",
164
+ "navigation": "Open and close content tabs",
165
+ "session": "Read your sign-in state",
166
+ "theme": "Change the app colors",
167
+ "automation": "Run actions other plugins added"
168
+ },
169
+ "capabilityDesc": {
170
+ "contributions": "Register commands, views, menu items, icons and routes.",
171
+ "ui": "Show dialogs, prompts, messages, menus and the settings surface.",
172
+ "host": "Read the app version and update state.",
173
+ "navigation": "Navigate the content area and open, pin or close tabs.",
174
+ "session": "Read whether you are signed in and which roles you hold.",
175
+ "theme": "Recolor the whole app by contributing design tokens (never overrides tenant branding).",
176
+ "automation": "Run actions other plugins contributed, and list which ones it may run. It reaches only actions their authors opened, and only where you could have run them yourself."
177
+ },
178
+ "empty": "No settings available",
179
+ "general": "General",
180
+ "group": {
181
+ "options": "Options",
182
+ "plugins": "App plugins",
183
+ "community": "Community plugins"
184
+ },
185
+ "permissions": "Permissions",
186
+ "permissionsDesc": "Turn a whole plugin on or off, or manage what each one is allowed to do. Changes take effect immediately; the distribution can never grant more than what is listed here.",
187
+ "permissionsEmpty": "No plugins are installed.",
188
+ "permissionsProvided": "Provided by your organisation. These permissions were issued with the plugin and cannot be withdrawn here.",
189
+ "pluginDisabled": "This plugin is turned off. Turn it on to manage its permissions.",
190
+ "pluginEnabled": "Enabled",
191
+ "pluginLevel": {
192
+ "trusted": "Runs inside this application — what holds it back is what you granted it below, not the browser.",
193
+ "embedded": "Runs embedded — it keeps an origin of its own and is not held back from this application.",
194
+ "isolated": "Runs isolated — it cannot reach this application, its storage or your session."
195
+ },
196
+ "pluginStore": "Plugin store",
197
+ "storeActionDisable": "Disable",
198
+ "storeActionEnable": "Enable",
199
+ "storeActionSettings": "Open settings",
200
+ "storeBrowse": "Browse plugins",
201
+ "storeBy": "by {{author}}",
202
+ "storeConsent": "**{{name}}** requests the following permissions:",
203
+ "storeConsentNone": "**{{name}}** requests no permissions.",
204
+ "storeDesc": "Install reviewed plugins from this product's store. A plugin only gets the permissions shown when you install it; you can revoke them or uninstall the plugin at any time.",
205
+ "storeDownloads": "{{count}} downloads",
206
+ "storeEmpty": "The plugin catalog is empty.",
207
+ "storeError": "The plugin catalog could not be loaded.",
208
+ "storeInstall": "Install",
209
+ "storeInstallTitle": "Install {{name}}?",
210
+ "storeInstalledBadge": "Installed",
211
+ "storeLoading": "Loading the plugin catalog…",
212
+ "storeNoInstalled": "Nothing installed yet — browse the catalog to get started.",
213
+ "storeNoResults": "No plugins match your search.",
214
+ "storeProvidedBadge": "Provided",
215
+ "storeProvidedHint": "Provided by your organisation — it cannot be turned off or removed here.",
216
+ "storeRepository": "Repository",
217
+ "storeSearch": "Search plugins by name, author or description…",
218
+ "storeSelectHint": "Select a plugin on the left to see its details.",
219
+ "storeTabBrowse": "Browse",
220
+ "storeTabInstalled": "Installed",
221
+ "storeUninstall": "Uninstall",
222
+ "storeUninstallConfirm": "**{{name}}** will be removed and its contributions disappear immediately. Its settings are kept in case you install it again later.",
223
+ "storeUninstallTitle": "Uninstall {{name}}?",
224
+ "storeUpdate": "Update",
225
+ "storeUpdateAvailable": "Update available",
226
+ "storeUpdateConsent": "Version {{version}} of **{{name}}** requests additional permissions:",
227
+ "storeUpdateTitle": "Update {{name}}?",
228
+ "storeUpdateTo": "Update to v{{version}}",
229
+ "storeUpdated": "updated {{date}}",
230
+ "title": "Settings"
231
+ },
232
+ "shell": {
233
+ "tagline": "Plugin & UI platform — the loom"
234
+ },
235
+ "skip": {
236
+ "toContent": "Skip to main content"
237
+ },
238
+ "textSize": {
239
+ "label": "Text size",
240
+ "desc": "Scale the whole interface up or down.",
241
+ "sm": "Small",
242
+ "md": "Default",
243
+ "lg": "Large",
244
+ "xl": "Extra large"
245
+ },
246
+ "theme": {
247
+ "label": "Theme",
248
+ "desc": "Light, dark, or follow the system.",
249
+ "light": "Light",
250
+ "dark": "Dark",
251
+ "system": "System"
252
+ },
253
+ "update": {
254
+ "check": "Check for updates",
255
+ "available": "Update available — reload",
256
+ "reload": "Reload",
257
+ "upToDate": "You're on the latest version",
258
+ "checkUnavailable": "Can't check for updates — please reload the page",
259
+ "failed": "Update couldn't be installed — reload to retry",
260
+ "broken": "This app's offline cache is broken. Repairing rebuilds it from scratch.",
261
+ "repair": "Repair and reload"
262
+ },
263
+ "viewInstance": {
264
+ "default": "Default",
265
+ "switcher": "Saved views",
266
+ "new": "New view…",
267
+ "rename": "Rename…",
268
+ "delete": "Delete",
269
+ "newTitle": "New saved view",
270
+ "renameTitle": "Rename view",
271
+ "namePlaceholder": "View name",
272
+ "deleteConfirm": "Delete the saved view “{{name}}”? This cannot be undone."
273
+ },
274
+ "workspace": {
275
+ "title": "Workspaces",
276
+ "save": "Save as new",
277
+ "namePlaceholder": "Workspace name",
278
+ "rename": "Rename",
279
+ "delete": "Delete",
280
+ "deleteConfirm": "Delete the workspace “{{name}}”?",
281
+ "reset": "Reset layout",
282
+ "resetConfirm": "Reset this workspace? Its layout returns to the saved baseline; your saved workspaces are kept.",
283
+ "default": "Default",
284
+ "saveBaseline": "Apply changes",
285
+ "saveBaselineHint": "Makes the current arrangement this workspace’s new baseline.",
286
+ "applyConfirm": "Make the current arrangement this workspace’s new baseline? The previously saved one is replaced.",
287
+ "resetHint": "Discards this workspace’s changes and returns to its saved baseline.",
288
+ "saveAsHint": "Saves the current arrangement as a new workspace and switches to it.",
289
+ "tabMine": "Mine",
290
+ "tabProvided": "Provided",
291
+ "variantOf": "Variant of {{name}}"
292
+ }
293
+ }
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@loomweaver/shell",
3
+ "version": "0.7.2",
4
+ "description": "LoomWeaver shell: the neutral host chrome as an Angular library — declarative region engine, plugin loader, command/dialog/settings services and the host UI vocabulary (<lw-*>). Domain-pure.",
5
+ "keywords": [
6
+ "loomweaver",
7
+ "shell",
8
+ "angular",
9
+ "plugin-platform",
10
+ "application-shell",
11
+ "ui-framework",
12
+ "extensibility"
13
+ ],
14
+ "license": "Apache-2.0",
15
+ "author": "Norbert Rosenwinkel (https://loomweaver.dev)",
16
+ "peerDependencies": {
17
+ "@angular/cdk": "^22.0.0",
18
+ "@angular/common": "^22.0.0",
19
+ "@angular/core": "^22.0.0",
20
+ "@angular/platform-browser": "^22.0.0",
21
+ "@angular/router": "^22.0.0",
22
+ "@angular/service-worker": "^22.0.0",
23
+ "@jsverse/transloco": "^8.4.0",
24
+ "@loomweaver/plugin-sdk": "0.7.2",
25
+ "@ng-icons/heroicons": "^34.0.0",
26
+ "rxjs": "^7.8.0"
27
+ },
28
+ "dependencies": {
29
+ "dompurify": "^3.4.11",
30
+ "marked": "^18.0.6",
31
+ "penpal": "^7.0.6",
32
+ "tslib": "^2.3.0"
33
+ },
34
+ "exports": {
35
+ "./styles/theme.css": {
36
+ "style": "./styles/theme.css",
37
+ "default": "./styles/theme.css"
38
+ },
39
+ "./i18n/*": "./i18n/*",
40
+ "./styles/shell.css": {
41
+ "style": "./styles/shell.css",
42
+ "default": "./styles/shell.css"
43
+ },
44
+ "./package.json": {
45
+ "default": "./package.json"
46
+ },
47
+ ".": {
48
+ "types": "./types/loomweaver-shell.d.ts",
49
+ "default": "./fesm2022/loomweaver-shell.mjs"
50
+ }
51
+ },
52
+ "sideEffects": false,
53
+ "publishConfig": {
54
+ "access": "public"
55
+ },
56
+ "homepage": "https://loomweaver.dev",
57
+ "bugs": {
58
+ "url": "https://github.com/yesbert/loomweaver/issues"
59
+ },
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "git+https://github.com/yesbert/loomweaver.git",
63
+ "directory": "platform/libs/core/shell"
64
+ },
65
+ "module": "fesm2022/loomweaver-shell.mjs",
66
+ "typings": "types/loomweaver-shell.d.ts",
67
+ "type": "module"
68
+ }