From d493d7ee655eda6f241ea3facade257cc150bbc7 Mon Sep 17 00:00:00 2001
From: Ruben van der Linde
Date: Fri, 9 Oct 2026 06:56:32 +0200
Subject: [PATCH 1/8] docs(grid-layout): new widgets append below the layout,
the spec now says so
Archives grid-bottom-append-placement: REQ-GRID-006 describes the shipped
bottom-append rule and the push-down scenarios are retired.
---
.../design.md | 0
.../proposal.md | 0
.../specs/grid-layout/spec.md | 14 +++++
.../tasks.md | 2 +-
openspec/specs/grid-layout/spec.md | 60 +++++++++++--------
5 files changed, 51 insertions(+), 25 deletions(-)
rename openspec/changes/{grid-bottom-append-placement => archive/2026-10-09-grid-bottom-append-placement}/design.md (100%)
rename openspec/changes/{grid-bottom-append-placement => archive/2026-10-09-grid-bottom-append-placement}/proposal.md (100%)
rename openspec/changes/{grid-bottom-append-placement => archive/2026-10-09-grid-bottom-append-placement}/specs/grid-layout/spec.md (80%)
rename openspec/changes/{grid-bottom-append-placement => archive/2026-10-09-grid-bottom-append-placement}/tasks.md (97%)
diff --git a/openspec/changes/grid-bottom-append-placement/design.md b/openspec/changes/archive/2026-10-09-grid-bottom-append-placement/design.md
similarity index 100%
rename from openspec/changes/grid-bottom-append-placement/design.md
rename to openspec/changes/archive/2026-10-09-grid-bottom-append-placement/design.md
diff --git a/openspec/changes/grid-bottom-append-placement/proposal.md b/openspec/changes/archive/2026-10-09-grid-bottom-append-placement/proposal.md
similarity index 100%
rename from openspec/changes/grid-bottom-append-placement/proposal.md
rename to openspec/changes/archive/2026-10-09-grid-bottom-append-placement/proposal.md
diff --git a/openspec/changes/grid-bottom-append-placement/specs/grid-layout/spec.md b/openspec/changes/archive/2026-10-09-grid-bottom-append-placement/specs/grid-layout/spec.md
similarity index 80%
rename from openspec/changes/grid-bottom-append-placement/specs/grid-layout/spec.md
rename to openspec/changes/archive/2026-10-09-grid-bottom-append-placement/specs/grid-layout/spec.md
index 25ddd4a72..ccc1a0655 100644
--- a/openspec/changes/grid-bottom-append-placement/specs/grid-layout/spec.md
+++ b/openspec/changes/archive/2026-10-09-grid-bottom-append-placement/specs/grid-layout/spec.md
@@ -62,3 +62,17 @@ This requirement deliberately replaces the former "GridStack auto-position + top
- **WHEN** the placement completes
- **THEN** the new widget MUST be persisted via the standard placement-update API (REQ-WDG-008 batch update or per-placement PUT)
- **AND** because no existing widget is moved, only the new widget's position needs to be written
+
+#### Scenario: Add widget to partially filled grid (incremental render)
+- GIVEN the grid has widgets occupying rows 0-2 in columns 0-8
+- AND columns 8-11 in row 0 are empty
+- WHEN the user adds a new widget with gridWidth 4 and gridHeight 2
+- THEN `syncGridItems()` MUST detect the new placement and call `grid.makeWidget()` on the next tick
+- AND GridStack MUST render the widget at the position computed by `placeNewWidget` (auto-position or fallback)
+- NOTE: With `float: true`, auto-placement behavior may differ from non-float mode.
+
+#### Scenario: Remove widget syncs grid
+- GIVEN widget placement id 10 is removed from the placements array
+- WHEN the placements watcher triggers `syncGridItems()`
+- THEN `syncGridItems()` MUST find the orphaned grid node and call `grid.removeWidget()` with `removeDOM: false`
+- AND the grid MUST update its layout accordingly
diff --git a/openspec/changes/grid-bottom-append-placement/tasks.md b/openspec/changes/archive/2026-10-09-grid-bottom-append-placement/tasks.md
similarity index 97%
rename from openspec/changes/grid-bottom-append-placement/tasks.md
rename to openspec/changes/archive/2026-10-09-grid-bottom-append-placement/tasks.md
index 92d99dc0b..56f4e52da 100644
--- a/openspec/changes/grid-bottom-append-placement/tasks.md
+++ b/openspec/changes/archive/2026-10-09-grid-bottom-append-placement/tasks.md
@@ -5,7 +5,7 @@
- [x] Task 1: Amend REQ-GRID-006 requirement text in `openspec/specs/grid-layout/spec.md` from "auto-position + top-left/push-down fallback" to the bottom-append rule (`x = 0`, `y = max(gridY + gridHeight)`, existing widgets never moved, empty dashboard → `(0,0)`) — captured in this change's `specs/grid-layout/spec.md` delta
- [x] Task 2: Rewrite the REQ-GRID-006 scenarios — remove "Push-down fallback when grid is full at top" and "Pushed widgets remain within their column lane"; replace "Auto-position into empty space" with bottom-append scenarios; update "Default size on omitted dimensions" and "Persistence after placement" to the no-push expectations (delta restates the full scenario set)
- [x] Task 3: Reconcile the stale doc comments in `src/stores/dashboard.js` (`addWidgetToDashboard` and `addTileToDashboard`) that still describe "try autoPosition, fall back to top-left + push down" so they describe bottom-append; logic untouched
-- [ ] Task 4 (apply time): Update the "Current Implementation Status" traceability line for REQ-GRID-006 in `openspec/specs/grid-layout/spec.md` (line ~496) from "autoPosition primary path and the top-left + push-down fallback … Push-down side effects flow through `updatePlacements`" to the bottom-append description
+- [x] Task 4 (apply time): Update the "Current Implementation Status" traceability line for REQ-GRID-006 in `openspec/specs/grid-layout/spec.md` (line ~496) from "autoPosition primary path and the top-left + push-down fallback … Push-down side effects flow through `updatePlacements`" to the bottom-append description
- [x] Task 5: Confirm the existing Vitest suite (`src/composables/__tests__/useGridManager.spec.js`, `describe('REQ-GRID-014 placeNewWidget() — always appends at the bottom')`) already encodes the new expectations and passes — no test change required
- [x] Task 6: Confirm REQ-GRID-014 (single placement authority) and its grep guard are unaffected — `grid.addWidget` still appears only in `useGridManager.js` and its test file
diff --git a/openspec/specs/grid-layout/spec.md b/openspec/specs/grid-layout/spec.md
index b6ec3eede..cc9f2b076 100644
--- a/openspec/specs/grid-layout/spec.md
+++ b/openspec/specs/grid-layout/spec.md
@@ -217,50 +217,62 @@ Grid position changes MUST be communicated to the parent component for API persi
- THEN each grid item's `id` MUST be matched to a placement's `id` via string comparison
- AND the placement's gridX, gridY, gridWidth, gridHeight MUST be updated from the grid item's x, y, w, h values
-### Requirement: Widget Auto-Layout — collision placement algorithm (REQ-GRID-006)
+### Requirement: REQ-GRID-006 Widget Auto-Layout (bottom-append placement)
-When a new widget is added to an existing dashboard, the system MUST place it without overlapping any existing widget and without leaving it outside the visible grid region. The algorithm MUST be:
-@e2e exclude auto-layout collision algorithm tests composable internal math — Vitest unit scope; browser outcome covered by REQ-GRID-001 init test
+@e2e exclude bottom-append placement is composable math; Vitest unit scope (src/composables/__tests__/useGridManager.spec.js), browser outcome covered by REQ-GRID-001 init test
-1. **Try GridStack auto-position** — call `grid.addWidget({x: 0, y: 0, w: newW, h: newH, autoPosition: true, ...})`. GridStack scans for the first empty rectangle that fits and uses it.
-2. **Fallback: top-left with push-down** — if step 1 fails (GridStack returns no slot, or the picked slot is below `viewportRows`), place the new widget at `(x: 0, y: 0)` with size `(newW, newH)` AND for every existing widget whose rectangle overlaps `[0..newW] × [0..newH]`, set its `gridY` to `newH` (pushing it just below the new one). Existing widgets that do not overlap MUST NOT be moved.
+When a new widget is added to a dashboard, the system MUST place it in a fresh row directly below all existing widgets, without overlapping any existing widget and without moving any existing widget. The algorithm MUST be:
-Default size when the caller omits `w`/`h` MUST be `w=4, h=4`. Position writes MUST trigger the persistence path of REQ-GRID-005.
+1. **Compute the bottom edge** — for every existing placement compute `gridY + gridHeight`; the new widget's `y` MUST be the maximum of these values (the lowest occupied bottom edge). A placement missing `gridY` contributes `0`; a placement missing `gridHeight` contributes height `1`.
+2. **Anchor to the left** — the new widget's `x` MUST be `0`.
+3. **Empty dashboard** — when there are no existing placements, the new widget MUST be placed at `(x: 0, y: 0)`.
-#### Scenario: Auto-position into empty space
+Existing widgets MUST NOT be moved — there is no push-down — and the helper's `pushed` array MUST always be empty. Default size when the caller omits `w`/`h` MUST be `w=4, h=4`. Position writes MUST trigger the persistence path of REQ-GRID-005.
+
+This requirement deliberately replaces the former "GridStack auto-position + top-left/push-down fallback" rule, which reordered the user's existing layout on every add once the visible rows filled up. The shipped `placeNewWidget(spec, placements, options?)` helper implements bottom-append; this requirement is the authoritative description of that behaviour.
+
+#### Scenario: Append below the only existing widget
- **GIVEN** a dashboard with one widget at `(x:0, y:0, w:6, h:4)`
- **WHEN** a new 4×4 widget is added
-- **THEN** GridStack MUST place it at `(x:6, y:0)` (the empty right-half)
+- **THEN** it MUST be placed at `(x:0, y:4)` (a fresh row below the existing widget)
+- **AND** the existing widget MUST NOT be moved
+- **AND** the returned `pushed` array MUST be empty
+
+#### Scenario: Append below the lowest widget regardless of array order
+
+- **GIVEN** a dashboard with widgets at `(x:0, y:5, w:6, h:3)` (bottom edge `8`) and `(x:6, y:0, w:6, h:2)` (bottom edge `2`)
+- **WHEN** a new 6×3 widget is added
+- **THEN** it MUST be placed at `(x:0, y:8)` (below the lowest bottom edge, not below the last array entry)
- **AND** no existing widget MUST be moved
-#### Scenario: Push-down fallback when grid is full at top
+#### Scenario: First widget on an empty dashboard
-- **GIVEN** a dashboard with widgets occupying the entire `[0..12] × [0..4]` region
+- **GIVEN** a dashboard with no widgets
- **WHEN** a new 4×4 widget is added
-- **THEN** it MUST be placed at `(x:0, y:0, w:4, h:4)`
-- **AND** every previously-overlapping widget MUST have `gridY = 4` (just below the new one)
-- **AND** non-overlapping widgets (already at `y >= 4`) MUST NOT have their `gridY` changed
+- **THEN** it MUST be placed at `(x:0, y:0)`
+
+#### Scenario: Existing widgets are never pushed when the top region is full
+
+- **GIVEN** a dashboard whose `[0..12] × [0..4]` region is fully occupied
+- **WHEN** a new 4×4 widget is added
+- **THEN** it MUST be placed at `(x:0, y:4)`, below the occupied region
+- **AND** every existing widget MUST retain its original `gridX`, `gridY`, `gridWidth`, and `gridHeight`
+- **AND** the returned `pushed` array MUST be empty
#### Scenario: Default size on omitted dimensions
- **GIVEN** a caller invokes `placeNewWidget({type: 'text'})` with no `w` or `h`
- **WHEN** the placement runs
- **THEN** the placement MUST use `w=4, h=4`
+- **AND** the `y` coordinate MUST still be the lowest occupied bottom edge (`0` on an empty dashboard)
#### Scenario: Persistence after placement
-- **GIVEN** a new widget has been placed (via either step 1 or step 2)
+- **GIVEN** a new widget has been placed
- **WHEN** the placement completes
-- **THEN** the new widget AND any pushed-down widgets MUST be persisted via the standard placement-update API (REQ-WDG-008 batch update or per-placement PUT)
-- **AND** a single network round-trip SHOULD be used for the batch (debounce 300 ms per the design rule in `openspec/config.yaml`)
-
-#### Scenario: Pushed widgets remain within their column lane
-
-- **GIVEN** existing widget at `(x:8, y:0, w:4, h:2)` overlaps a new 6×3 widget being placed at top-left
-- **WHEN** the push-down fallback runs
-- **THEN** the existing widget's `gridX` and `gridW` MUST remain `8` and `4` respectively
-- **AND** only `gridY` MUST be increased to `3`
+- **THEN** the new widget MUST be persisted via the standard placement-update API (REQ-WDG-008 batch update or per-placement PUT)
+- **AND** because no existing widget is moved, only the new widget's position needs to be written
#### Scenario: Add widget to partially filled grid (incremental render)
- GIVEN the grid has widgets occupying rows 0-2 in columns 0-8
@@ -563,7 +575,7 @@ push behaviour.
- REQ-GRID-003 (Resize by Edge Dragging): Resize controlled via `disableResize: !this.editMode`. Min sizes via `gs-min-w="2"`, `gs-min-h="2"`.
- REQ-GRID-004 (View Mode vs Edit Mode): `editMode` prop controls grid state.
- REQ-GRID-005 (Position Persistence): `handleGridChange()` emits `update:placements` on every change event.
-- REQ-GRID-006 (Widget Auto-Layout — collision placement algorithm): `placeNewWidget()` in `src/composables/useGridManager.js` computes the position via the autoPosition primary path and the top-left + push-down fallback; `syncGridItems()` then renders the new placement via `grid.makeWidget()`. Push-down side effects flow through the existing `updatePlacements` batch path.
+- REQ-GRID-006 (Widget Auto-Layout — collision placement algorithm): `placeNewWidget()` in `src/composables/useGridManager.js` appends the new widget at the bottom: `x = 0`, `y = max(gridY + gridHeight)` over the existing placements, `(0, 0)` on an empty dashboard, and no existing widget moves (`pushed` is always empty); `syncGridItems()` then renders the new placement via `grid.makeWidget()`.
- REQ-GRID-009 (Tile vs Widget Rendering): `isTilePlacement()`, `getTileData()` handle rendering distinction.
- REQ-GRID-010 (Grid Styling): CSS applied via scoped styles with deep selectors.
- REQ-GRID-011 (Grid Synchronization): `placements` watcher triggers `syncGridItems()`.
From 024d6221cef7afddacdbe16c25e77fd291be9f87 Mon Sep 17 00:00:00 2001
From: Ruben van der Linde
Date: Fri, 9 Oct 2026 06:57:07 +0200
Subject: [PATCH 2/8] docs(openspec): archive
retire-groupfolder-storage-backend, the wizard step stays a follow-up
---
.../.openspec.yaml | 0
.../proposal.md | 0
.../2026-10-09-retire-groupfolder-storage-backend}/tasks.md | 6 +++++-
3 files changed, 5 insertions(+), 1 deletion(-)
rename openspec/changes/{retire-groupfolder-storage-backend => archive/2026-10-09-retire-groupfolder-storage-backend}/.openspec.yaml (100%)
rename openspec/changes/{retire-groupfolder-storage-backend => archive/2026-10-09-retire-groupfolder-storage-backend}/proposal.md (100%)
rename openspec/changes/{retire-groupfolder-storage-backend => archive/2026-10-09-retire-groupfolder-storage-backend}/tasks.md (82%)
diff --git a/openspec/changes/retire-groupfolder-storage-backend/.openspec.yaml b/openspec/changes/archive/2026-10-09-retire-groupfolder-storage-backend/.openspec.yaml
similarity index 100%
rename from openspec/changes/retire-groupfolder-storage-backend/.openspec.yaml
rename to openspec/changes/archive/2026-10-09-retire-groupfolder-storage-backend/.openspec.yaml
diff --git a/openspec/changes/retire-groupfolder-storage-backend/proposal.md b/openspec/changes/archive/2026-10-09-retire-groupfolder-storage-backend/proposal.md
similarity index 100%
rename from openspec/changes/retire-groupfolder-storage-backend/proposal.md
rename to openspec/changes/archive/2026-10-09-retire-groupfolder-storage-backend/proposal.md
diff --git a/openspec/changes/retire-groupfolder-storage-backend/tasks.md b/openspec/changes/archive/2026-10-09-retire-groupfolder-storage-backend/tasks.md
similarity index 82%
rename from openspec/changes/retire-groupfolder-storage-backend/tasks.md
rename to openspec/changes/archive/2026-10-09-retire-groupfolder-storage-backend/tasks.md
index 1c9fceb8c..4a2e83b7b 100644
--- a/openspec/changes/retire-groupfolder-storage-backend/tasks.md
+++ b/openspec/changes/archive/2026-10-09-retire-groupfolder-storage-backend/tasks.md
@@ -9,7 +9,11 @@
- [x] Task 5: Remove the PHPUnit classes that covered the removed tree — `DashboardContentStorageFactoryTest`, `DashboardContentStorageExceptionTest`, `DbContentStorageTest`, `GroupFolderContentStorageTest`, `MigrateStorageToGroupFolderTest`
- [x] Task 6: Mark `openspec/specs/groupfolder-storage-backend/spec.md` **withdrawn**, recording what was removed, what was deliberately kept, and why. This also retires the spec's 16 `@e2e exclude` markers, whose stated reasons cited `tests/Unit/Service/DashboardContentStorage/DbContentStorageTest.php` — a test file this change deletes, which would have left sixteen exemptions resting on a class that no longer exists
- [x] Task 7: Correct the phantom `- [x]` on Task 5 of the archived change at `openspec/changes/archive/2026-06-14-groupfolder-storage-backend/tasks.md`, because the project record asserted a wiring that did not exist
-- [ ] Task 8: **Follow-up, tracked on launchpad#87 — NOT in this change.** Decide whether setup-wizard step 2 (`launchpad.content_storage`, `AdminSettingKey::CONTENT_STORAGE`, `SetupWizardService::{getContentStorage,setContentStorage,hasGroupfolderApp}`, `AdminController::setWizardStorage` and its route) also retires. It writes a setting nothing now reads. Note that `tools/spec-annotations-allowlist.txt` carries entries for those three `SetupWizardService` methods and for `AdminController::setWizardStorage`
+
+
+## Follow-up (not a task of this change)
+
+- **Follow-up, tracked on launchpad#87 — NOT in this change.** Decide whether setup-wizard step 2 (`launchpad.content_storage`, `AdminSettingKey::CONTENT_STORAGE`, `SetupWizardService::{getContentStorage,setContentStorage,hasGroupfolderApp}`, `AdminController::setWizardStorage` and its route) also retires. It writes a setting nothing now reads. Note that `tools/spec-annotations-allowlist.txt` carries entries for those three `SetupWizardService` methods and for `AdminController::setWizardStorage` Open as Q-launchpad-1 (2026-10-09).
## Verification
From daa7a9208ed2b02f47cd107fca82bbc0a8a0e004 Mon Sep 17 00:00:00 2001
From: Ruben van der Linde
Date: Fri, 9 Oct 2026 22:20:52 +0200
Subject: [PATCH 3/8] wip: saved by the coordinator after the 9 Oct afternoon
session stop (unverified)
---
appinfo/routes.php | 1 -
l10n/be.js | 13 +-
l10n/be.json | 13 +-
l10n/bg.js | 13 +-
l10n/bg.json | 13 +-
l10n/bs.js | 13 +-
l10n/bs.json | 13 +-
l10n/ca.js | 13 +-
l10n/ca.json | 13 +-
l10n/cs.js | 13 +-
l10n/cs.json | 13 +-
l10n/da.js | 13 +-
l10n/da.json | 13 +-
l10n/de.js | 13 +-
l10n/de.json | 13 +-
l10n/el.js | 13 +-
l10n/el.json | 13 +-
l10n/en.js | 13 +-
l10n/en.json | 13 +-
l10n/es.js | 13 +-
l10n/es.json | 13 +-
l10n/et.js | 13 +-
l10n/et.json | 13 +-
l10n/fi.js | 13 +-
l10n/fi.json | 13 +-
l10n/fr.js | 13 +-
l10n/fr.json | 13 +-
l10n/ga.js | 13 +-
l10n/ga.json | 13 +-
l10n/hr.js | 13 +-
l10n/hr.json | 13 +-
l10n/hu.js | 13 +-
l10n/hu.json | 13 +-
l10n/is.js | 13 +-
l10n/is.json | 13 +-
l10n/it.js | 13 +-
l10n/it.json | 13 +-
l10n/lb.js | 13 +-
l10n/lb.json | 13 +-
l10n/lt.js | 13 +-
l10n/lt.json | 13 +-
l10n/lv.js | 13 +-
l10n/lv.json | 13 +-
l10n/mk.js | 13 +-
l10n/mk.json | 13 +-
l10n/mt.js | 13 +-
l10n/mt.json | 13 +-
l10n/nb.js | 13 +-
l10n/nb.json | 13 +-
l10n/nl.js | 13 +-
l10n/nl.json | 13 +-
l10n/pl.js | 13 +-
l10n/pl.json | 13 +-
l10n/pt.js | 13 +-
l10n/pt.json | 13 +-
l10n/rm.js | 13 +-
l10n/rm.json | 13 +-
l10n/ro.js | 13 +-
l10n/ro.json | 13 +-
l10n/ru.js | 13 +-
l10n/ru.json | 13 +-
l10n/sk.js | 13 +-
l10n/sk.json | 13 +-
l10n/sl.js | 13 +-
l10n/sl.json | 13 +-
l10n/sq.js | 13 +-
l10n/sq.json | 13 +-
l10n/sr.js | 13 +-
l10n/sr.json | 13 +-
l10n/sv.js | 13 +-
l10n/sv.json | 13 +-
l10n/tr.js | 13 +-
l10n/tr.json | 13 +-
l10n/uk.js | 13 +-
l10n/uk.json | 13 +-
lib/Command/SetupCommand.php | 51 +---
lib/Controller/AdminController.php | 57 -----
lib/Db/AdminSetting.php | 9 -
lib/Db/AdminSettingKey.php | 3 +-
lib/Service/AdminSettingsService.php | 32 +--
lib/Service/SetupWizardService.php | 102 +-------
openspec/specs/admin-settings/spec.md | 14 +-
.../specs/groupfolder-storage-backend/spec.md | 14 +-
openspec/specs/setup-wizard/spec.md | 238 ++++++++----------
src/components/admin/AdminSettings.vue | 2 +-
src/modals/SetupWizardModal.vue | 132 ++--------
src/modals/__tests__/SetupWizardModal.spec.js | 57 +----
src/services/api.js | 11 -
.../AdminControllerSetupWizardTest.php | 59 +----
tests/Unit/Db/AdminSettingKeyTest.php | 13 +-
.../Unit/Service/AdminSettingsServiceTest.php | 5 +-
tests/Unit/Service/SetupWizardServiceTest.php | 115 ++++-----
.../launchpad.postman_collection.json | 42 ----
tools/spec-annotations-allowlist.txt | 4 -
94 files changed, 462 insertions(+), 1461 deletions(-)
diff --git a/appinfo/routes.php b/appinfo/routes.php
index 47f794178..422e04141 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -480,7 +480,6 @@
// Step 2 choice immediately on `Next`.
['name' => 'admin#getWizardState', 'url' => '/api/admin/setup-wizard/state', 'verb' => 'GET'],
['name' => 'admin#completeWizard', 'url' => '/api/admin/setup-wizard/complete', 'verb' => 'POST'],
- ['name' => 'admin#setWizardStorage', 'url' => '/api/admin/setup-wizard/storage', 'verb' => 'POST'],
// Confluence HTML export importer (REQ-CFLI-001..012). Admin-only
// via runtime `IGroupManager::isAdmin` check inside the
diff --git a/l10n/be.js b/l10n/be.js
index acb4eb5f7..ee30e0d02 100644
--- a/l10n/be.js
+++ b/l10n/be.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Майстар наладкі LaunchPad",
"Step {n} / {total}" : "Крок {n} / {total}",
"Welcome" : "Вітаем",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Наладзьце ваш экзэмпляр LaunchPad са сховішчам, парадкам груп, дэманстрацыйнымі данымі, ролямі адміністратараў і наладамі ніжняга калонтытула.",
- "Storage backend" : "Бэкенд сховішча",
- "Choose how LaunchPad stores dashboard content." : "Выберыце, як LaunchPad захоўвае змесціва панэляў.",
- "Database (default)" : "База даных (прадвызначана)",
- "Store dashboard content in the LaunchPad database table." : "Захоўваць змесціва панэляў у табліцы базы даных LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (рэкамендуецца для арганізацыйнага выкарыстання)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Захоўваць змесціва панэляў у Nextcloud GroupFolders для сумеснага доступу.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Праграма GroupFolder не ўсталявана. Усталюйце 'Nextcloud GroupFolders', каб выкарыстоўваць гэты варыянт.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Выберыце парадак, у якім групы Nextcloud з'яўляюцца, калі LaunchPad накіроўвае карыстальнікаў да працоўнай прасторы.",
"Demo data" : "Дэманстрацыйныя даныя",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Дэманстрацыі дэманстрацыйных даных з'явяцца тут, як толькі будзе выпушчана магчымасць demo-data-showcases. Пакуль што гэты крок толькі інфармацыйны.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Завяршыць",
"Run setup wizard" : "Запусціць майстар наладкі",
"Run setup wizard again" : "Запусціць майстар наладкі зноў",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Запусціце ваш інтранэт: выберыце сховішча, наладзьце групы, усталюйце дэманстрацыйныя даныя і настройце ролі адміністратараў.",
"Container" : "Кантэйнер",
"Padding" : "Водступ",
"Title (optional)" : "Загаловак (неабавязкова)",
@@ -1354,6 +1345,8 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Наладзьце ваш экзэмпляр LaunchPad з парадкам груп, дэманстрацыйнымі данымі, ролямі адміністратараў і наладамі ніжняга калонтытула.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Запусціце ваш інтранэт: наладзьце групы, усталюйце дэманстрацыйныя даныя і настройце ролі адміністратараў."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/l10n/be.json b/l10n/be.json
index 77714ff6e..27d641c36 100644
--- a/l10n/be.json
+++ b/l10n/be.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Майстар наладкі LaunchPad",
"Step {n} / {total}": "Крок {n} / {total}",
"Welcome": "Вітаем",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Наладзьце ваш экзэмпляр LaunchPad са сховішчам, парадкам груп, дэманстрацыйнымі данымі, ролямі адміністратараў і наладамі ніжняга калонтытула.",
- "Storage backend": "Бэкенд сховішча",
- "Choose how LaunchPad stores dashboard content.": "Выберыце, як LaunchPad захоўвае змесціва панэляў.",
- "Database (default)": "База даных (прадвызначана)",
- "Store dashboard content in the LaunchPad database table.": "Захоўваць змесціва панэляў у табліцы базы даных LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (рэкамендуецца для арганізацыйнага выкарыстання)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Захоўваць змесціва панэляў у Nextcloud GroupFolders для сумеснага доступу.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Праграма GroupFolder не ўсталявана. Усталюйце 'Nextcloud GroupFolders', каб выкарыстоўваць гэты варыянт.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Выберыце парадак, у якім групы Nextcloud з'яўляюцца, калі LaunchPad накіроўвае карыстальнікаў да працоўнай прасторы.",
"Demo data": "Дэманстрацыйныя даныя",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Дэманстрацыі дэманстрацыйных даных з'явяцца тут, як толькі будзе выпушчана магчымасць demo-data-showcases. Пакуль што гэты крок толькі інфармацыйны.",
@@ -954,7 +946,6 @@
"Finish": "Завяршыць",
"Run setup wizard": "Запусціць майстар наладкі",
"Run setup wizard again": "Запусціць майстар наладкі зноў",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Запусціце ваш інтранэт: выберыце сховішча, наладзьце групы, усталюйце дэманстрацыйныя даныя і настройце ролі адміністратараў.",
"Container": "Кантэйнер",
"Padding": "Водступ",
"Title (optional)": "Загаловак (неабавязкова)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Наладзьце ваш экзэмпляр LaunchPad з парадкам груп, дэманстрацыйнымі данымі, ролямі адміністратараў і наладамі ніжняга калонтытула.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Запусціце ваш інтранэт: наладзьце групы, усталюйце дэманстрацыйныя даныя і настройце ролі адміністратараў."
}
}
diff --git a/l10n/bg.js b/l10n/bg.js
index 87b74012b..79f9bb33c 100644
--- a/l10n/bg.js
+++ b/l10n/bg.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Помощник за настройка на LaunchPad",
"Step {n} / {total}" : "Стъпка {n} / {total}",
"Welcome" : "Добре дошли",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Конфигурирайте вашия екземпляр на LaunchPad със съхранение, подреждане на групи, демонстрационни данни, администраторски роли и настройки на долния колонтитул.",
- "Storage backend" : "Бекенд за съхранение",
- "Choose how LaunchPad stores dashboard content." : "Изберете как LaunchPad съхранява съдържанието на таблата.",
- "Database (default)" : "База данни (по подразбиране)",
- "Store dashboard content in the LaunchPad database table." : "Съхранявайте съдържанието на таблата в таблицата на базата данни на LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (препоръчително за организационна употреба)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Съхранявайте съдържанието на таблата в Nextcloud GroupFolders за съвместен достъп.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Приложението GroupFolder не е инсталирано. Инсталирайте „Nextcloud GroupFolders“, за да използвате тази опция.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Изберете реда, в който се появяват Nextcloud групите, когато LaunchPad насочва потребителите към работно пространство.",
"Demo data" : "Демонстрационни данни",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Демонстрациите на демонстрационни данни ще се появят тук, след като функцията demo-data-showcases бъде издадена. Засега тази стъпка е само информативна.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Завършване",
"Run setup wizard" : "Стартиране на помощника за настройка",
"Run setup wizard again" : "Повторно стартиране на помощника за настройка",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Стартирайте вашия интранет: изберете съхранение, конфигурирайте групи, инсталирайте демонстрационни данни и настройте администраторски роли.",
"Container" : "Контейнер",
"Padding" : "Отстъп",
"Title (optional)" : "Заглавие (незадължително)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Конфигурирайте вашата инстанция на LaunchPad с подреждане на групи, демонстрационни данни, администраторски роли и настройки на долния колонтитул.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Започнете с вашия интранет: конфигурирайте групи, инсталирайте демонстрационни данни и настройте администраторски роли."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/bg.json b/l10n/bg.json
index 3da51a67f..0f1166234 100644
--- a/l10n/bg.json
+++ b/l10n/bg.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Помощник за настройка на LaunchPad",
"Step {n} / {total}": "Стъпка {n} / {total}",
"Welcome": "Добре дошли",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Конфигурирайте вашата инстанция на LaunchPad с хранилище, подреждане на групи, демонстрационни данни, администраторски роли и настройки на долния колонтитул.",
- "Storage backend": "Бекенд за съхранение",
- "Choose how LaunchPad stores dashboard content.": "Изберете как LaunchPad съхранява съдържанието на таблата.",
- "Database (default)": "База данни (по подразбиране)",
- "Store dashboard content in the LaunchPad database table.": "Съхранявайте съдържанието на таблата в таблицата на базата данни на LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (препоръчва се за организационна употреба)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Съхранявайте съдържанието на таблата в GroupFolders на Nextcloud за съвместен достъп.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Приложението GroupFolder не е инсталирано. Инсталирайте „Nextcloud GroupFolders“, за да използвате тази опция.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Изберете реда, в който се появяват групите на Nextcloud, когато LaunchPad насочва потребителите към работно пространство.",
"Demo data": "Демонстрационни данни",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Демонстрационните данни ще се появят тук, след като бъде пусната възможността demo-data-showcases. Засега тази стъпка е само информативна.",
@@ -953,7 +945,6 @@
"Finish": "Завършване",
"Run setup wizard": "Стартиране на помощника за настройка",
"Run setup wizard again": "Повторно стартиране на помощника за настройка",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Започнете с вашия интранет: изберете хранилище, конфигурирайте групи, инсталирайте демонстрационни данни и настройте администраторски роли.",
"Container": "Контейнер",
"Padding": "Вътрешен отстъп",
"Title (optional)": "Заглавие (незадължително)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Конфигурирайте вашата инстанция на LaunchPad с подреждане на групи, демонстрационни данни, администраторски роли и настройки на долния колонтитул.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Започнете с вашия интранет: конфигурирайте групи, инсталирайте демонстрационни данни и настройте администраторски роли."
}
}
diff --git a/l10n/bs.js b/l10n/bs.js
index cb3bc1f36..cf5b9fb59 100644
--- a/l10n/bs.js
+++ b/l10n/bs.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad čarobnjak za postavljanje",
"Step {n} / {total}" : "Korak {n} / {total}",
"Welcome" : "Dobrodošli",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfigurišite svoju LaunchPad instancu s pohranom, redoslijedom grupa, demo podacima, administratorskim ulogama i postavkama podnožja.",
- "Storage backend" : "Pozadinski sistem pohrane",
- "Choose how LaunchPad stores dashboard content." : "Odaberite kako LaunchPad pohranjuje sadržaj kontrolne table.",
- "Database (default)" : "Baza podataka (zadano)",
- "Store dashboard content in the LaunchPad database table." : "Pohrani sadržaj kontrolne table u LaunchPad tabelu baze podataka.",
- "GroupFolder (recommended for org use)" : "GroupFolder (preporučeno za organizacijsku upotrebu)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Pohrani sadržaj kontrolne table u Nextcloud GroupFolders za saradnički pristup.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplikacija GroupFolder nije instalirana. Instalirajte 'Nextcloud GroupFolders' da biste koristili ovu opciju.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Odaberite redoslijed kojim se Nextcloud grupe pojavljuju kada LaunchPad usmjerava korisnike u radni prostor.",
"Demo data" : "Demo podaci",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Prezentacije demo podataka pojavit će se ovdje kada se isporuči mogućnost demo-data-showcases. Za sada je ovaj korak samo informativan.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Završi",
"Run setup wizard" : "Pokreni čarobnjak za postavljanje",
"Run setup wizard again" : "Ponovo pokreni čarobnjak za postavljanje",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Pokrenite svoj intranet: odaberite pohranu, konfigurišite grupe, instalirajte demo podatke i postavite administratorske uloge.",
"Container" : "Kontejner",
"Padding" : "Razmak",
"Title (optional)" : "Naslov (opcionalno)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurišite svoju LaunchPad instancu s redoslijedom grupa, demo podacima, administratorskim ulogama i postavkama podnožja.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Pokrenite svoj intranet: konfigurišite grupe, instalirajte demo podatke i postavite administratorske uloge."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
);
diff --git a/l10n/bs.json b/l10n/bs.json
index ab5bdc588..ce96c3957 100644
--- a/l10n/bs.json
+++ b/l10n/bs.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "LaunchPad čarobnjak za postavljanje",
"Step {n} / {total}": "Korak {n} / {total}",
"Welcome": "Dobrodošli",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurišite svoju LaunchPad instancu sa pohranom, redoslijedom grupa, demo podacima, administratorskim ulogama i postavkama podnožja.",
- "Storage backend": "Pozadinski sistem za pohranu",
- "Choose how LaunchPad stores dashboard content.": "Odaberite kako LaunchPad pohranjuje sadržaj kontrolne ploče.",
- "Database (default)": "Baza podataka (zadano)",
- "Store dashboard content in the LaunchPad database table.": "Pohrani sadržaj kontrolne ploče u LaunchPad tabelu baze podataka.",
- "GroupFolder (recommended for org use)": "GroupFolder (preporučeno za organizacijsku upotrebu)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Pohrani sadržaj kontrolne ploče u Nextcloud GroupFolders za kolaborativni pristup.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplikacija GroupFolder nije instalirana. Instalirajte 'Nextcloud GroupFolders' da biste koristili ovu opciju.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Odaberite redoslijed kojim se Nextcloud grupe pojavljuju kada LaunchPad usmjerava korisnike na radni prostor.",
"Demo data": "Demo podaci",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Prikazi demo podataka pojavit će se ovdje kada se isporuči mogućnost demo-data-showcases. Za sada je ovaj korak samo informativni.",
@@ -954,7 +946,6 @@
"Finish": "Završi",
"Run setup wizard": "Pokreni čarobnjak za postavljanje",
"Run setup wizard again": "Ponovo pokreni čarobnjak za postavljanje",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Pokrenite svoj intranet: odaberite pohranu, konfigurišite grupe, instalirajte demo podatke i postavite administratorske uloge.",
"Container": "Kontejner",
"Padding": "Razmak",
"Title (optional)": "Naslov (opcionalno)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurišite svoju LaunchPad instancu s redoslijedom grupa, demo podacima, administratorskim ulogama i postavkama podnožja.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Pokrenite svoj intranet: konfigurišite grupe, instalirajte demo podatke i postavite administratorske uloge."
}
}
diff --git a/l10n/ca.js b/l10n/ca.js
index 8d3c9d34f..a898dd3c5 100644
--- a/l10n/ca.js
+++ b/l10n/ca.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Assistent de configuració de LaunchPad",
"Step {n} / {total}" : "Pas {n} / {total}",
"Welcome" : "Us donem la benvinguda",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configureu la vostra instància de LaunchPad amb emmagatzematge, ordenació de grups, dades de demostració, rols d'administrador i configuració del peu de pàgina.",
- "Storage backend" : "Servei d'emmagatzematge",
- "Choose how LaunchPad stores dashboard content." : "Trieu com emmagatzema LaunchPad el contingut dels taulers.",
- "Database (default)" : "Base de dades (predeterminat)",
- "Store dashboard content in the LaunchPad database table." : "Emmagatzema el contingut dels taulers a la taula de base de dades de LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (recomanat per a ús organitzatiu)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Emmagatzema el contingut dels taulers a les GroupFolders de Nextcloud per a un accés col·laboratiu.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "L'aplicació GroupFolder no està instal·lada. Instal·leu «Nextcloud GroupFolders» per utilitzar aquesta opció.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Trieu l'ordre en què apareixen els grups de Nextcloud quan LaunchPad dirigeix els usuaris a un espai de treball.",
"Demo data" : "Dades de demostració",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Les mostres de dades de demostració apareixeran aquí un cop s'enviï la funcionalitat demo-data-showcases. De moment, aquest pas només és informatiu.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Finalitza",
"Run setup wizard" : "Executa l'assistent de configuració",
"Run setup wizard again" : "Torna a executar l'assistent de configuració",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Poseu en marxa la vostra intranet: trieu l'emmagatzematge, configureu els grups, instal·leu dades de demostració i configureu els rols d'administrador.",
"Container" : "Contenidor",
"Padding" : "Encoixinat",
"Title (optional)" : "Títol (opcional)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configureu la vostra instància de LaunchPad amb ordenació de grups, dades de demostració, rols d'administrador i configuració del peu de pàgina.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Poseu en marxa la vostra intranet: configureu els grups, instal·leu dades de demostració i configureu els rols d'administrador."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/ca.json b/l10n/ca.json
index 27156682f..ee6b0e496 100644
--- a/l10n/ca.json
+++ b/l10n/ca.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Auxiliar de configuració de LaunchPad",
"Step {n} / {total}": "Pas {n} / {total}",
"Welcome": "Us donem la benvinguda",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configureu la vostra instància de LaunchPad amb emmagatzematge, ordenació de grups, dades de demostració, rols d'administrador i configuració del peu de pàgina.",
- "Storage backend": "Rerefons d'emmagatzematge",
- "Choose how LaunchPad stores dashboard content.": "Trieu com emmagatzema LaunchPad el contingut dels taulers.",
- "Database (default)": "Base de dades (predeterminat)",
- "Store dashboard content in the LaunchPad database table.": "Emmagatzema el contingut dels taulers a la taula de la base de dades de LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (recomanat per a ús organitzatiu)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Emmagatzema el contingut dels taulers a les GroupFolders de Nextcloud per a un accés col·laboratiu.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "L'aplicació GroupFolder no està instal·lada. Instal·leu «Nextcloud GroupFolders» per utilitzar aquesta opció.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Trieu l'ordre en què apareixen els grups de Nextcloud quan LaunchPad encamina els usuaris cap a un espai de treball.",
"Demo data": "Dades de demostració",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Les mostres de dades de demostració apareixeran aquí un cop s'incorpori la funcionalitat demo-data-showcases. De moment, aquest pas és només informatiu.",
@@ -953,7 +945,6 @@
"Finish": "Finalitza",
"Run setup wizard": "Executa l'auxiliar de configuració",
"Run setup wizard again": "Torna a executar l'auxiliar de configuració",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Poseu en marxa la vostra intranet: trieu l'emmagatzematge, configureu els grups, instal·leu dades de demostració i configureu els rols d'administrador.",
"Container": "Contenidor",
"Padding": "Encoixinat",
"Title (optional)": "Títol (opcional)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configureu la vostra instància de LaunchPad amb ordenació de grups, dades de demostració, rols d'administrador i configuració del peu de pàgina.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Poseu en marxa la vostra intranet: configureu els grups, instal·leu dades de demostració i configureu els rols d'administrador."
}
}
diff --git a/l10n/cs.js b/l10n/cs.js
index 8cabbb3d3..ceb7bc35a 100644
--- a/l10n/cs.js
+++ b/l10n/cs.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Průvodce nastavením LaunchPad",
"Step {n} / {total}" : "Krok {n} / {total}",
"Welcome" : "Vítejte",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Nastavte svou instanci LaunchPad pomocí úložiště, řazení skupin, demo dat, rolí správců a nastavení zápatí.",
- "Storage backend" : "Backend úložiště",
- "Choose how LaunchPad stores dashboard content." : "Vyberte, jak LaunchPad ukládá obsah nástěnek.",
- "Database (default)" : "Databáze (výchozí)",
- "Store dashboard content in the LaunchPad database table." : "Ukládat obsah nástěnek v databázové tabulce LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (doporučeno pro firemní použití)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Ukládat obsah nástěnek v GroupFolders Nextcloud pro společný přístup.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplikace GroupFolder není nainstalována. Pro použití této možnosti nainstalujte „Nextcloud GroupFolders“.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Vyberte pořadí, ve kterém se skupiny Nextcloud zobrazují, když LaunchPad směruje uživatele do pracovního prostoru.",
"Demo data" : "Demo data",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Ukázky demo dat se zde zobrazí, jakmile bude dostupná funkce demo-data-showcases. Prozatím je tento krok pouze informativní.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Dokončit",
"Run setup wizard" : "Spustit průvodce nastavením",
"Run setup wizard again" : "Spustit průvodce nastavením znovu",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Začněte se svým intranetem: vyberte úložiště, nastavte skupiny, nainstalujte demo data a nastavte role správců.",
"Container" : "Kontejner",
"Padding" : "Vnitřní okraj",
"Title (optional)" : "Název (volitelné)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Nakonfigurujte svou instanci LaunchPad pomocí řazení skupin, demo dat, rolí správce a nastavení zápatí.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Začněte se svým intranetem: nakonfigurujte skupiny, nainstalujte demo data a nastavte role správce."
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
);
diff --git a/l10n/cs.json b/l10n/cs.json
index 5ee2db728..91ad4b5ab 100644
--- a/l10n/cs.json
+++ b/l10n/cs.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Průvodce nastavením LaunchPad",
"Step {n} / {total}": "Krok {n} / {total}",
"Welcome": "Vítejte",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Nakonfigurujte svou instanci LaunchPad pomocí úložiště, řazení skupin, demo dat, rolí správce a nastavení zápatí.",
- "Storage backend": "Backend úložiště",
- "Choose how LaunchPad stores dashboard content.": "Vyberte, jak LaunchPad ukládá obsah nástěnek.",
- "Database (default)": "Databáze (výchozí)",
- "Store dashboard content in the LaunchPad database table.": "Ukládat obsah nástěnek do databázové tabulky LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (doporučeno pro organizační použití)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Ukládat obsah nástěnek do Nextcloud GroupFolders pro spolupráci.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplikace GroupFolder není nainstalována. Pro použití této možnosti nainstalujte „Nextcloud GroupFolders“.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Vyberte pořadí, ve kterém se zobrazují skupiny Nextcloud, když LaunchPad směruje uživatele do pracovního prostoru.",
"Demo data": "Demo data",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Ukázky demo dat se zde zobrazí, jakmile bude dodána funkce demo-data-showcases. Prozatím je tento krok pouze informativní.",
@@ -954,7 +946,6 @@
"Finish": "Dokončit",
"Run setup wizard": "Spustit průvodce nastavením",
"Run setup wizard again": "Spustit průvodce nastavením znovu",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Začněte se svým intranetem: vyberte úložiště, nakonfigurujte skupiny, nainstalujte demo data a nastavte role správce.",
"Container": "Kontejner",
"Padding": "Odsazení",
"Title (optional)": "Název (volitelné)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Nakonfigurujte svou instanci LaunchPad pomocí řazení skupin, demo dat, rolí správce a nastavení zápatí.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Začněte se svým intranetem: nakonfigurujte skupiny, nainstalujte demo data a nastavte role správce."
}
}
diff --git a/l10n/da.js b/l10n/da.js
index 2f800d597..94cb9b9fd 100644
--- a/l10n/da.js
+++ b/l10n/da.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad-opsætningsguide",
"Step {n} / {total}" : "Trin {n} / {total}",
"Welcome" : "Velkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfigurer din LaunchPad-instans med lagring, grupperækkefølge, demodata, administratorroller og sidefodsindstillinger.",
- "Storage backend" : "Lagringsbackend",
- "Choose how LaunchPad stores dashboard content." : "Vælg, hvordan LaunchPad gemmer dashboard-indhold.",
- "Database (default)" : "Database (standard)",
- "Store dashboard content in the LaunchPad database table." : "Gem dashboard-indhold i LaunchPad-databasetabellen.",
- "GroupFolder (recommended for org use)" : "GroupFolder (anbefales til organisationsbrug)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Gem dashboard-indhold i Nextcloud GroupFolders for samarbejdsadgang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder-appen er ikke installeret. Installer 'Nextcloud GroupFolders' for at bruge denne mulighed.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Vælg den rækkefølge, Nextcloud-grupper vises i, når LaunchPad dirigerer brugere til et arbejdsområde.",
"Demo data" : "Demodata",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Demodata-fremvisningerne vil vises her, når demo-data-showcases-funktionen leveres. Indtil videre er dette trin kun til orientering.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Afslut",
"Run setup wizard" : "Kør opsætningsguide",
"Run setup wizard again" : "Kør opsætningsguide igen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Kom i gang med dit intranet: vælg lagring, konfigurer grupper, installer demodata, og opsæt administratorroller.",
"Container" : "Container",
"Padding" : "Indvendig margen",
"Title (optional)" : "Titel (valgfri)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurer din LaunchPad-instans med grupperækkefølge, demodata, administratorroller og footer-indstillinger.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Kom i gang med dit intranet: konfigurer grupper, installer demodata, og opsæt administratorroller."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/da.json b/l10n/da.json
index 7cf891549..d713e2651 100644
--- a/l10n/da.json
+++ b/l10n/da.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad-opsætningsguide",
"Step {n} / {total}": "Trin {n} / {total}",
"Welcome": "Velkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurer din LaunchPad-instans med lagring, grupperækkefølge, demodata, administratorroller og footer-indstillinger.",
- "Storage backend": "Lagringsbackend",
- "Choose how LaunchPad stores dashboard content.": "Vælg, hvordan LaunchPad gemmer dashboard-indhold.",
- "Database (default)": "Database (standard)",
- "Store dashboard content in the LaunchPad database table.": "Gem dashboard-indhold i LaunchPad-databasetabellen.",
- "GroupFolder (recommended for org use)": "GroupFolder (anbefales til organisationsbrug)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Gem dashboard-indhold i Nextcloud GroupFolders til samarbejdsadgang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder-appen er ikke installeret. Installer 'Nextcloud GroupFolders' for at bruge denne mulighed.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Vælg den rækkefølge, Nextcloud-grupper vises i, når LaunchPad dirigerer brugere til et arbejdsområde.",
"Demo data": "Demodata",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Demodata-showcasene vises her, når demo-data-showcases-funktionen leveres. Indtil videre er dette trin kun informativt.",
@@ -953,7 +945,6 @@
"Finish": "Afslut",
"Run setup wizard": "Kør opsætningsguide",
"Run setup wizard again": "Kør opsætningsguide igen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Kom i gang med dit intranet: vælg lagring, konfigurer grupper, installer demodata, og opsæt administratorroller.",
"Container": "Container",
"Padding": "Udfyldning",
"Title (optional)": "Titel (valgfri)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurer din LaunchPad-instans med grupperækkefølge, demodata, administratorroller og footer-indstillinger.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Kom i gang med dit intranet: konfigurer grupper, installer demodata, og opsæt administratorroller."
}
}
diff --git a/l10n/de.js b/l10n/de.js
index ce48ea0c1..f2e87ac21 100644
--- a/l10n/de.js
+++ b/l10n/de.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad-Einrichtungsassistent",
"Step {n} / {total}" : "Schritt {n} / {total}",
"Welcome" : "Willkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfigurieren Sie Ihre LaunchPad-Instanz mit Speicher, Gruppenreihenfolge, Demodaten, Administratorrollen und Fußzeilen-Einstellungen.",
- "Storage backend" : "Speicher-Backend",
- "Choose how LaunchPad stores dashboard content." : "Wählen Sie, wie LaunchPad Dashboard-Inhalte speichert.",
- "Database (default)" : "Datenbank (Standard)",
- "Store dashboard content in the LaunchPad database table." : "Dashboard-Inhalte in der LaunchPad-Datenbanktabelle speichern.",
- "GroupFolder (recommended for org use)" : "GroupFolder (empfohlen für Organisationsnutzung)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Dashboard-Inhalte in Nextcloud GroupFolders für kollaborativen Zugriff speichern.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Die GroupFolder-App ist nicht installiert. Installieren Sie 'Nextcloud GroupFolders', um diese Option zu verwenden.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Wählen Sie die Reihenfolge, in der Nextcloud-Gruppen erscheinen, wenn LaunchPad Benutzer zu einem Arbeitsbereich leitet.",
"Demo data" : "Demodaten",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Die Demodaten-Schaukästen erscheinen hier, sobald die Funktion demo-data-showcases verfügbar ist. Vorerst dient dieser Schritt nur zur Information.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Fertigstellen",
"Run setup wizard" : "Einrichtungsassistent ausführen",
"Run setup wizard again" : "Einrichtungsassistent erneut ausführen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Bringen Sie Ihr Intranet in Gang: Wählen Sie Speicher, konfigurieren Sie Gruppen, installieren Sie Demodaten und richten Sie Administratorrollen ein.",
"Container" : "Container",
"Padding" : "Innenabstand",
"Title (optional)" : "Titel (optional)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurieren Sie Ihre LaunchPad-Instanz mit Gruppenreihenfolge, Demodaten, Administratorrollen und Fußzeileneinstellungen.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Bringen Sie Ihr Intranet in Gang: Konfigurieren Sie Gruppen, installieren Sie Demodaten und richten Sie Administratorrollen ein."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/de.json b/l10n/de.json
index 7bd079f06..6eb63301d 100644
--- a/l10n/de.json
+++ b/l10n/de.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad-Einrichtungsassistent",
"Step {n} / {total}": "Schritt {n} / {total}",
"Welcome": "Willkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurieren Sie Ihre LaunchPad-Instanz mit Speicher, Gruppenreihenfolge, Demodaten, Administratorrollen und Fußzeileneinstellungen.",
- "Storage backend": "Speicher-Backend",
- "Choose how LaunchPad stores dashboard content.": "Wählen Sie, wie LaunchPad Dashboard-Inhalte speichert.",
- "Database (default)": "Datenbank (Standard)",
- "Store dashboard content in the LaunchPad database table.": "Dashboard-Inhalte in der LaunchPad-Datenbanktabelle speichern.",
- "GroupFolder (recommended for org use)": "GroupFolder (empfohlen für Organisationsnutzung)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Dashboard-Inhalte in Nextcloud-GroupFolders für gemeinschaftlichen Zugriff speichern.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Die GroupFolder-App ist nicht installiert. Installieren Sie 'Nextcloud GroupFolders', um diese Option zu nutzen.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Wählen Sie die Reihenfolge, in der Nextcloud-Gruppen erscheinen, wenn LaunchPad Benutzer zu einem Arbeitsbereich leitet.",
"Demo data": "Demodaten",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Die Demodaten-Beispiele erscheinen hier, sobald die Funktion demo-data-showcases verfügbar ist. Vorerst dient dieser Schritt nur zur Information.",
@@ -953,7 +945,6 @@
"Finish": "Fertigstellen",
"Run setup wizard": "Einrichtungsassistent ausführen",
"Run setup wizard again": "Einrichtungsassistent erneut ausführen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Bringen Sie Ihr Intranet in Gang: Wählen Sie Speicher, konfigurieren Sie Gruppen, installieren Sie Demodaten und richten Sie Administratorrollen ein.",
"Container": "Container",
"Padding": "Innenabstand",
"Title (optional)": "Titel (optional)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurieren Sie Ihre LaunchPad-Instanz mit Gruppenreihenfolge, Demodaten, Administratorrollen und Fußzeileneinstellungen.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Bringen Sie Ihr Intranet in Gang: Konfigurieren Sie Gruppen, installieren Sie Demodaten und richten Sie Administratorrollen ein."
}
}
diff --git a/l10n/el.js b/l10n/el.js
index 085475e25..523ef339d 100644
--- a/l10n/el.js
+++ b/l10n/el.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Οδηγός εγκατάστασης LaunchPad",
"Step {n} / {total}" : "Βήμα {n} / {total}",
"Welcome" : "Καλώς ήρθατε",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Διαμορφώστε την εγκατάσταση LaunchPad σας με αποθήκευση, σειρά ομάδων, δεδομένα επίδειξης, ρόλους διαχειριστή και ρυθμίσεις υποσέλιδου.",
- "Storage backend" : "Backend αποθήκευσης",
- "Choose how LaunchPad stores dashboard content." : "Επιλέξτε πώς το LaunchPad αποθηκεύει το περιεχόμενο των πινάκων.",
- "Database (default)" : "Βάση δεδομένων (προεπιλογή)",
- "Store dashboard content in the LaunchPad database table." : "Αποθήκευση περιεχομένου πίνακα στον πίνακα βάσης δεδομένων του LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (συνιστάται για χρήση οργανισμού)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Αποθήκευση περιεχομένου πίνακα στα Nextcloud GroupFolders για συνεργατική πρόσβαση.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Η εφαρμογή GroupFolder δεν είναι εγκατεστημένη. Εγκαταστήστε το 'Nextcloud GroupFolders' για να χρησιμοποιήσετε αυτήν την επιλογή.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Επιλέξτε τη σειρά με την οποία εμφανίζονται οι ομάδες Nextcloud όταν το LaunchPad δρομολογεί χρήστες σε έναν χώρο εργασίας.",
"Demo data" : "Δεδομένα επίδειξης",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Οι επιδείξεις δεδομένων επίδειξης θα εμφανιστούν εδώ μόλις κυκλοφορήσει η δυνατότητα demo-data-showcases. Προς το παρόν αυτό το βήμα είναι μόνο ενημερωτικό.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Τέλος",
"Run setup wizard" : "Εκτέλεση οδηγού εγκατάστασης",
"Run setup wizard again" : "Εκτέλεση οδηγού εγκατάστασης ξανά",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Ξεκινήστε το intranet σας: επιλέξτε αποθήκευση, διαμορφώστε ομάδες, εγκαταστήστε δεδομένα επίδειξης και ρυθμίστε ρόλους διαχειριστή.",
"Container" : "Κοντέινερ",
"Padding" : "Εσωτερικό περιθώριο",
"Title (optional)" : "Τίτλος (προαιρετικό)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Διαμορφώστε το παράδειγμα του LaunchPad με σειρά ομάδων, δεδομένα επίδειξης, ρόλους διαχειριστή και ρυθμίσεις υποσέλιδου.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Ξεκινήστε το intranet σας: διαμορφώστε ομάδες, εγκαταστήστε δεδομένα επίδειξης και ρυθμίστε ρόλους διαχειριστή."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/el.json b/l10n/el.json
index b7bd82a87..d9ac82fc6 100644
--- a/l10n/el.json
+++ b/l10n/el.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Οδηγός εγκατάστασης LaunchPad",
"Step {n} / {total}": "Βήμα {n} / {total}",
"Welcome": "Καλώς ήρθατε",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Διαμορφώστε το παράδειγμα του LaunchPad με αποθηκευτικό χώρο, σειρά ομάδων, δεδομένα επίδειξης, ρόλους διαχειριστή και ρυθμίσεις υποσέλιδου.",
- "Storage backend": "Σύστημα αποθήκευσης",
- "Choose how LaunchPad stores dashboard content.": "Επιλέξτε πώς το LaunchPad αποθηκεύει το περιεχόμενο των πινάκων.",
- "Database (default)": "Βάση δεδομένων (προεπιλογή)",
- "Store dashboard content in the LaunchPad database table.": "Αποθήκευση του περιεχομένου των πινάκων στον πίνακα βάσης δεδομένων του LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (συνιστάται για χρήση από οργανισμό)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Αποθήκευση του περιεχομένου των πινάκων στα GroupFolders του Nextcloud για συνεργατική πρόσβαση.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Η εφαρμογή GroupFolder δεν είναι εγκατεστημένη. Εγκαταστήστε το 'Nextcloud GroupFolders' για να χρησιμοποιήσετε αυτήν την επιλογή.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Επιλέξτε τη σειρά με την οποία εμφανίζονται οι ομάδες Nextcloud όταν το LaunchPad κατευθύνει τους χρήστες σε έναν χώρο εργασίας.",
"Demo data": "Δεδομένα επίδειξης",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Οι παρουσιάσεις δεδομένων επίδειξης θα εμφανιστούν εδώ μόλις κυκλοφορήσει η δυνατότητα demo-data-showcases. Προς το παρόν αυτό το βήμα είναι μόνο ενημερωτικό.",
@@ -953,7 +945,6 @@
"Finish": "Τέλος",
"Run setup wizard": "Εκτέλεση οδηγού εγκατάστασης",
"Run setup wizard again": "Εκτέλεση οδηγού εγκατάστασης ξανά",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Ξεκινήστε το intranet σας: επιλέξτε αποθηκευτικό χώρο, διαμορφώστε ομάδες, εγκαταστήστε δεδομένα επίδειξης και ρυθμίστε ρόλους διαχειριστή.",
"Container": "Δοχείο",
"Padding": "Εσωτερικό περιθώριο",
"Title (optional)": "Τίτλος (προαιρετικό)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Διαμορφώστε το παράδειγμα του LaunchPad με σειρά ομάδων, δεδομένα επίδειξης, ρόλους διαχειριστή και ρυθμίσεις υποσέλιδου.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Ξεκινήστε το intranet σας: διαμορφώστε ομάδες, εγκαταστήστε δεδομένα επίδειξης και ρυθμίστε ρόλους διαχειριστή."
}
}
diff --git a/l10n/en.js b/l10n/en.js
index ea036701f..ec967294d 100644
--- a/l10n/en.js
+++ b/l10n/en.js
@@ -860,14 +860,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad setup wizard",
"Step {n} / {total}" : "Step {n} / {total}",
"Welcome" : "Welcome",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.",
- "Storage backend" : "Storage backend",
- "Choose how LaunchPad stores dashboard content." : "Choose how LaunchPad stores dashboard content.",
- "Database (default)" : "Database (default)",
- "Store dashboard content in the LaunchPad database table." : "Store dashboard content in the LaunchPad database table.",
- "GroupFolder (recommended for org use)" : "GroupFolder (recommended for org use)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Store dashboard content in Nextcloud GroupFolders for collaborative access.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.",
"Demo data" : "Demo data",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.",
@@ -886,7 +878,6 @@ OC.L10N.register(
"Finish" : "Finish",
"Run setup wizard" : "Run setup wizard",
"Run setup wizard again" : "Run setup wizard again",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.",
"Container" : "Container",
"Padding" : "Padding",
"Title (optional)" : "Title (optional)",
@@ -1343,7 +1334,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Get your intranet started: configure groups, install demo data, and set up admin roles."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/en.json b/l10n/en.json
index 4fb4149c9..d52b53240 100644
--- a/l10n/en.json
+++ b/l10n/en.json
@@ -857,14 +857,6 @@
"LaunchPad setup wizard": "LaunchPad setup wizard",
"Step {n} / {total}": "Step {n} / {total}",
"Welcome": "Welcome",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.",
- "Storage backend": "Storage backend",
- "Choose how LaunchPad stores dashboard content.": "Choose how LaunchPad stores dashboard content.",
- "Database (default)": "Database (default)",
- "Store dashboard content in the LaunchPad database table.": "Store dashboard content in the LaunchPad database table.",
- "GroupFolder (recommended for org use)": "GroupFolder (recommended for org use)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Store dashboard content in Nextcloud GroupFolders for collaborative access.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.",
"Demo data": "Demo data",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.",
@@ -883,7 +875,6 @@
"Finish": "Finish",
"Run setup wizard": "Run setup wizard",
"Run setup wizard again": "Run setup wizard again",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.",
"Container": "Container",
"Padding": "Padding",
"Title (optional)": "Title (optional)",
@@ -1308,6 +1299,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Get your intranet started: configure groups, install demo data, and set up admin roles."
}
}
diff --git a/l10n/es.js b/l10n/es.js
index 9960fc610..ce4a8e659 100644
--- a/l10n/es.js
+++ b/l10n/es.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Asistente de configuración de LaunchPad",
"Step {n} / {total}" : "Paso {n} / {total}",
"Welcome" : "Bienvenido",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configure su instancia de LaunchPad con almacenamiento, ordenación de grupos, datos de demostración, roles de administrador y ajustes del pie de página.",
- "Storage backend" : "Backend de almacenamiento",
- "Choose how LaunchPad stores dashboard content." : "Elija cómo almacena LaunchPad el contenido de los paneles.",
- "Database (default)" : "Base de datos (predeterminado)",
- "Store dashboard content in the LaunchPad database table." : "Almacenar el contenido de los paneles en la tabla de la base de datos de LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (recomendado para uso organizativo)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Almacenar el contenido de los paneles en Nextcloud GroupFolders para el acceso colaborativo.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "La aplicación GroupFolder no está instalada. Instale 'Nextcloud GroupFolders' para usar esta opción.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Elija el orden en que aparecen los grupos de Nextcloud cuando LaunchPad dirige a los usuarios a un espacio de trabajo.",
"Demo data" : "Datos de demostración",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Las muestras de datos de demostración aparecerán aquí una vez que se incorpore la funcionalidad demo-data-showcases. Por ahora, este paso es solo informativo.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Finalizar",
"Run setup wizard" : "Ejecutar el asistente de configuración",
"Run setup wizard again" : "Ejecutar de nuevo el asistente de configuración",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Ponga en marcha su intranet: elija el almacenamiento, configure los grupos, instale datos de demostración y configure los roles de administrador.",
"Container" : "Contenedor",
"Padding" : "Relleno",
"Title (optional)" : "Título (opcional)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configure su instancia de LaunchPad con ordenación de grupos, datos de demostración, roles de administrador y ajustes del pie de página.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Ponga en marcha su intranet: configure grupos, instale datos de demostración y configure roles de administrador."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/es.json b/l10n/es.json
index 2cb682b7f..b52ab8794 100644
--- a/l10n/es.json
+++ b/l10n/es.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Asistente de configuración de LaunchPad",
"Step {n} / {total}": "Paso {n} / {total}",
"Welcome": "Bienvenido",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configure su instancia de LaunchPad con almacenamiento, ordenación de grupos, datos de demostración, roles de administrador y ajustes del pie de página.",
- "Storage backend": "Backend de almacenamiento",
- "Choose how LaunchPad stores dashboard content.": "Elija cómo almacena LaunchPad el contenido de los paneles.",
- "Database (default)": "Base de datos (predeterminado)",
- "Store dashboard content in the LaunchPad database table.": "Almacenar el contenido de los paneles en la tabla de base de datos de LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (recomendado para uso organizativo)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Almacenar el contenido de los paneles en GroupFolders de Nextcloud para el acceso colaborativo.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "La aplicación GroupFolder no está instalada. Instale «Nextcloud GroupFolders» para usar esta opción.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Elija el orden en que aparecen los grupos de Nextcloud cuando LaunchPad dirige a los usuarios a un espacio de trabajo.",
"Demo data": "Datos de demostración",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Las muestras de datos de demostración aparecerán aquí una vez que se distribuya la funcionalidad demo-data-showcases. Por ahora, este paso es solo informativo.",
@@ -953,7 +945,6 @@
"Finish": "Finalizar",
"Run setup wizard": "Ejecutar el asistente de configuración",
"Run setup wizard again": "Ejecutar de nuevo el asistente de configuración",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Ponga en marcha su intranet: elija el almacenamiento, configure grupos, instale datos de demostración y configure roles de administrador.",
"Container": "Contenedor",
"Padding": "Relleno",
"Title (optional)": "Título (opcional)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configure su instancia de LaunchPad con ordenación de grupos, datos de demostración, roles de administrador y ajustes del pie de página.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Ponga en marcha su intranet: configure grupos, instale datos de demostración y configure roles de administrador."
}
}
diff --git a/l10n/et.js b/l10n/et.js
index 8063f77bc..295aa6d2d 100644
--- a/l10n/et.js
+++ b/l10n/et.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPadi seadistusviisard",
"Step {n} / {total}" : "Samm {n} / {total}",
"Welcome" : "Tere tulemast",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Seadistage oma LaunchPadi instants salvestusruumi, gruppide järjestuse, demoandmete, administraatori rollide ja jaluse seadetega.",
- "Storage backend" : "Salvestamise taustsüsteem",
- "Choose how LaunchPad stores dashboard content." : "Valige, kuidas LaunchPad töölaua sisu salvestab.",
- "Database (default)" : "Andmebaas (vaikimisi)",
- "Store dashboard content in the LaunchPad database table." : "Salvesta töölaua sisu LaunchPadi andmebaasi tabelisse.",
- "GroupFolder (recommended for org use)" : "GroupFolder (soovitatav organisatsiooni kasutuseks)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Salvesta töölaua sisu Nextcloudi GroupFolderitesse koostöös juurdepääsuks.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolderi rakendus pole paigaldatud. Selle valiku kasutamiseks paigaldage 'Nextcloud GroupFolders'.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Valige järjekord, milles Nextcloudi grupid kuvatakse, kui LaunchPad suunab kasutajaid tööruumi.",
"Demo data" : "Demoandmed",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Demoandmete näidised ilmuvad siia, kui demo-data-showcases võimekus tarnitakse. Praegu on see samm ainult informatiivne.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Lõpeta",
"Run setup wizard" : "Käivita seadistusviisard",
"Run setup wizard again" : "Käivita seadistusviisard uuesti",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Alustage oma sisevõrku: valige salvestusruum, seadistage grupid, paigaldage demoandmed ja seadistage administraatori rollid.",
"Container" : "Konteiner",
"Padding" : "Polster",
"Title (optional)" : "Pealkiri (valikuline)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Seadista oma LaunchPadi eksemplar gruppide järjestuse, näidisandmete, administraatori rollide ja jaluse seadetega.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Käivita oma siseveeb: seadista grupid, paigalda näidisandmed ja seadista administraatori rollid."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/et.json b/l10n/et.json
index 97d295ded..0de48d0df 100644
--- a/l10n/et.json
+++ b/l10n/et.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPadi seadistusviisard",
"Step {n} / {total}": "Samm {n} / {total}",
"Welcome": "Tere tulemast",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Seadista oma LaunchPadi eksemplar salvestusruumi, gruppide järjestuse, näidisandmete, administraatori rollide ja jaluse seadetega.",
- "Storage backend": "Salvestuse taustasüsteem",
- "Choose how LaunchPad stores dashboard content.": "Vali, kuidas LaunchPad töölaua sisu salvestab.",
- "Database (default)": "Andmebaas (vaikimisi)",
- "Store dashboard content in the LaunchPad database table.": "Salvesta töölaua sisu LaunchPadi andmebaasi tabelisse.",
- "GroupFolder (recommended for org use)": "GroupFolder (soovitatav organisatsiooni kasutuseks)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Salvesta töölaua sisu Nextcloudi GroupFolderitesse koostöö juurdepääsuks.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolderi rakendus pole paigaldatud. Selle valiku kasutamiseks paigalda 'Nextcloud GroupFolders'.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Vali järjekord, milles Nextcloudi grupid kuvatakse, kui LaunchPad suunab kasutajad tööruumi.",
"Demo data": "Näidisandmed",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Näidisandmete esitlused ilmuvad siia, kui demo-data-showcases võimekus on saadaval. Praegu on see samm üksnes informatiivne.",
@@ -953,7 +945,6 @@
"Finish": "Lõpeta",
"Run setup wizard": "Käivita seadistusviisard",
"Run setup wizard again": "Käivita seadistusviisard uuesti",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Käivita oma siseveeb: vali salvestusruum, seadista grupid, paigalda näidisandmed ja seadista administraatori rollid.",
"Container": "Konteiner",
"Padding": "Polster",
"Title (optional)": "Pealkiri (valikuline)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Seadista oma LaunchPadi eksemplar gruppide järjestuse, näidisandmete, administraatori rollide ja jaluse seadetega.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Käivita oma siseveeb: seadista grupid, paigalda näidisandmed ja seadista administraatori rollid."
}
}
diff --git a/l10n/fi.js b/l10n/fi.js
index 414148c9c..ea70603e7 100644
--- a/l10n/fi.js
+++ b/l10n/fi.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad-määritysopas",
"Step {n} / {total}" : "Vaihe {n} / {total}",
"Welcome" : "Tervetuloa",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Määritä LaunchPad-instanssisi tallennustilan, ryhmien järjestyksen, esittelydatan, ylläpitäjäroolien ja alatunnisteen asetusten kanssa.",
- "Storage backend" : "Tallennuksen taustajärjestelmä",
- "Choose how LaunchPad stores dashboard content." : "Valitse, miten LaunchPad tallentaa kojelautasisällön.",
- "Database (default)" : "Tietokanta (oletus)",
- "Store dashboard content in the LaunchPad database table." : "Tallenna kojelautasisältö LaunchPadin tietokantatauluun.",
- "GroupFolder (recommended for org use)" : "GroupFolder (suositeltu organisaatiokäyttöön)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Tallenna kojelautasisältö Nextcloud GroupFolders -kansioihin yhteistä käyttöä varten.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder-sovellusta ei ole asennettu. Asenna 'Nextcloud GroupFolders' käyttääksesi tätä vaihtoehtoa.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Valitse järjestys, jossa Nextcloud-ryhmät näkyvät, kun LaunchPad ohjaa käyttäjiä työtilaan.",
"Demo data" : "Esittelydata",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Esittelydatan näytteet ilmestyvät tähän, kun demo-data-showcases-ominaisuus julkaistaan. Toistaiseksi tämä vaihe on vain informatiivinen.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Valmis",
"Run setup wizard" : "Suorita määritysopas",
"Run setup wizard again" : "Suorita määritysopas uudelleen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Käynnistä intranetisi: valitse tallennustila, määritä ryhmät, asenna esittelydata ja määritä ylläpitäjäroolit.",
"Container" : "Säiliö",
"Padding" : "Täyte",
"Title (optional)" : "Otsikko (valinnainen)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Määritä LaunchPad-ilmentymäsi ryhmäjärjestyksen, esittelytietojen, ylläpitäjän roolien ja alatunnisteasetusten avulla.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Käynnistä intranetisi: määritä ryhmät, asenna esittelytiedot ja määritä ylläpitäjän roolit."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/fi.json b/l10n/fi.json
index 3c3009d99..65552c093 100644
--- a/l10n/fi.json
+++ b/l10n/fi.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPadin asennustoiminto",
"Step {n} / {total}": "Vaihe {n} / {total}",
"Welcome": "Tervetuloa",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Määritä LaunchPad-ilmentymäsi tallennustilan, ryhmäjärjestyksen, esittelytietojen, ylläpitäjän roolien ja alatunnisteasetusten avulla.",
- "Storage backend": "Tallennustaustajärjestelmä",
- "Choose how LaunchPad stores dashboard content.": "Valitse, miten LaunchPad tallentaa koontinäytön sisällön.",
- "Database (default)": "Tietokanta (oletus)",
- "Store dashboard content in the LaunchPad database table.": "Tallenna koontinäytön sisältö LaunchPadin tietokantatauluun.",
- "GroupFolder (recommended for org use)": "GroupFolder (suositeltu organisaatiokäyttöön)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Tallenna koontinäytön sisältö Nextcloud GroupFolders -kansioihin yhteistyökäyttöä varten.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder-sovellusta ei ole asennettu. Asenna 'Nextcloud GroupFolders' käyttääksesi tätä vaihtoehtoa.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Valitse järjestys, jossa Nextcloud-ryhmät näkyvät, kun LaunchPad ohjaa käyttäjät työtilaan.",
"Demo data": "Esittelytiedot",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Esittelytietojen esittelyt näkyvät tässä, kun demo-data-showcases-ominaisuus julkaistaan. Toistaiseksi tämä vaihe on vain tiedoksi.",
@@ -953,7 +945,6 @@
"Finish": "Valmis",
"Run setup wizard": "Suorita asennustoiminto",
"Run setup wizard again": "Suorita asennustoiminto uudelleen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Käynnistä intranetisi: valitse tallennustila, määritä ryhmät, asenna esittelytiedot ja määritä ylläpitäjän roolit.",
"Container": "Säiliö",
"Padding": "Täyte",
"Title (optional)": "Otsikko (valinnainen)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Määritä LaunchPad-ilmentymäsi ryhmäjärjestyksen, esittelytietojen, ylläpitäjän roolien ja alatunnisteasetusten avulla.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Käynnistä intranetisi: määritä ryhmät, asenna esittelytiedot ja määritä ylläpitäjän roolit."
}
}
diff --git a/l10n/fr.js b/l10n/fr.js
index c041d7711..cbbe9f10a 100644
--- a/l10n/fr.js
+++ b/l10n/fr.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Assistant de configuration de LaunchPad",
"Step {n} / {total}" : "Étape {n} / {total}",
"Welcome" : "Bienvenue",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configurez votre instance LaunchPad avec le stockage, l'ordre des groupes, les données de démonstration, les rôles d'administration et les réglages du pied de page.",
- "Storage backend" : "Backend de stockage",
- "Choose how LaunchPad stores dashboard content." : "Choisissez comment LaunchPad stocke le contenu des tableaux de bord.",
- "Database (default)" : "Base de données (par défaut)",
- "Store dashboard content in the LaunchPad database table." : "Stocker le contenu des tableaux de bord dans la table de base de données de LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (recommandé pour un usage en organisation)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Stocker le contenu des tableaux de bord dans les GroupFolders Nextcloud pour un accès collaboratif.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "L'application GroupFolder n'est pas installée. Installez « Nextcloud GroupFolders » pour utiliser cette option.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Choisissez l'ordre d'apparition des groupes Nextcloud lorsque LaunchPad dirige les utilisateurs vers un espace de travail.",
"Demo data" : "Données de démonstration",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Les vitrines de données de démonstration apparaîtront ici une fois que la capacité demo-data-showcases sera livrée. Pour l'instant, cette étape est purement informative.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Terminer",
"Run setup wizard" : "Lancer l'assistant de configuration",
"Run setup wizard again" : "Relancer l'assistant de configuration",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Lancez votre intranet : choisissez le stockage, configurez les groupes, installez des données de démonstration et configurez les rôles d'administration.",
"Container" : "Conteneur",
"Padding" : "Marge intérieure",
"Title (optional)" : "Titre (facultatif)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configurez votre instance LaunchPad avec l'ordre des groupes, les données de démonstration, les rôles d'administration et les paramètres du pied de page.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Démarrez votre intranet : configurez les groupes, installez les données de démonstration et configurez les rôles d'administration."
},
"nplurals=2; plural=(n > 1);"
);
diff --git a/l10n/fr.json b/l10n/fr.json
index f446a22a9..f463d1346 100644
--- a/l10n/fr.json
+++ b/l10n/fr.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Assistant de configuration LaunchPad",
"Step {n} / {total}": "Étape {n} / {total}",
"Welcome": "Bienvenue",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configurez votre instance LaunchPad avec le stockage, l'ordre des groupes, les données de démonstration, les rôles d'administration et les paramètres du pied de page.",
- "Storage backend": "Backend de stockage",
- "Choose how LaunchPad stores dashboard content.": "Choisissez comment LaunchPad stocke le contenu des tableaux de bord.",
- "Database (default)": "Base de données (par défaut)",
- "Store dashboard content in the LaunchPad database table.": "Stocker le contenu des tableaux de bord dans la table de base de données LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (recommandé pour un usage organisationnel)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Stocker le contenu des tableaux de bord dans les GroupFolders Nextcloud pour un accès collaboratif.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "L'application GroupFolder n'est pas installée. Installez « Nextcloud GroupFolders » pour utiliser cette option.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Choisissez l'ordre dans lequel les groupes Nextcloud apparaissent lorsque LaunchPad dirige les utilisateurs vers un espace de travail.",
"Demo data": "Données de démonstration",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Les vitrines de données de démonstration apparaîtront ici une fois que la fonctionnalité demo-data-showcases sera disponible. Pour l'instant, cette étape est uniquement informative.",
@@ -953,7 +945,6 @@
"Finish": "Terminer",
"Run setup wizard": "Lancer l'assistant de configuration",
"Run setup wizard again": "Relancer l'assistant de configuration",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Démarrez votre intranet : choisissez le stockage, configurez les groupes, installez les données de démonstration et configurez les rôles d'administration.",
"Container": "Conteneur",
"Padding": "Marge intérieure",
"Title (optional)": "Titre (facultatif)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configurez votre instance LaunchPad avec l'ordre des groupes, les données de démonstration, les rôles d'administration et les paramètres du pied de page.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Démarrez votre intranet : configurez les groupes, installez les données de démonstration et configurez les rôles d'administration."
}
}
diff --git a/l10n/ga.js b/l10n/ga.js
index 1e4c9c39b..6567cf536 100644
--- a/l10n/ga.js
+++ b/l10n/ga.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Draoi socraithe LaunchPad",
"Step {n} / {total}" : "Céim {n} / {total}",
"Welcome" : "Fáilte",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Cumraigh do shampla LaunchPad le stóráil, ordú grúpaí, sonraí taispeána, róil riaracháin, agus socruithe buntáisc.",
- "Storage backend" : "Inneall stórála",
- "Choose how LaunchPad stores dashboard content." : "Roghnaigh conas a stórálann LaunchPad ábhar deaise.",
- "Database (default)" : "Bunachar sonraí (réamhshocrú)",
- "Store dashboard content in the LaunchPad database table." : "Stóráil ábhar deaise i dtábla bhunachar sonraí LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (molta d'úsáid eagraíochta)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Stóráil ábhar deaise i nGroupFolders Nextcloud le haghaidh rochtana comhoibríche.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Níl an aip GroupFolder suiteáilte. Suiteáil 'Nextcloud GroupFolders' chun an rogha seo a úsáid.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Roghnaigh an t-ord ina bhfeictear grúpaí Nextcloud nuair a threoraíonn LaunchPad úsáideoirí chuig spás oibre.",
"Demo data" : "Sonraí taispeána",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Taispeánfar na taispeántais sonraí taispeána anseo a luaithe a sheoltar an cumas demo-data-showcases. Faoi láthair tá an chéim seo faisnéiseach amháin.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Críochnaigh",
"Run setup wizard" : "Rith an draoi socraithe",
"Run setup wizard again" : "Rith an draoi socraithe arís",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Cuir tús le d'inlíon: roghnaigh stóráil, cumraigh grúpaí, suiteáil sonraí taispeána, agus socraigh róil riaracháin.",
"Container" : "Coimeádán",
"Padding" : "Stuáil",
"Title (optional)" : "Teideal (roghnach)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Cumraigh do shampla LaunchPad le hordú grúpaí, sonraí taispeána, róil riaracháin, agus socruithe buntáisc.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Cuir tús le d'inlíon: cumraigh grúpaí, suiteáil sonraí taispeána, agus socraigh róil riaracháin."
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
);
diff --git a/l10n/ga.json b/l10n/ga.json
index cab2a132a..bdcf80d6b 100644
--- a/l10n/ga.json
+++ b/l10n/ga.json
@@ -930,14 +930,6 @@
"LaunchPad setup wizard": "Draoi socraithe LaunchPad",
"Step {n} / {total}": "Céim {n} / {total}",
"Welcome": "Fáilte",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Cumraigh do shampla LaunchPad le stóráil, ordú grúpaí, sonraí taispeána, róil riaracháin, agus socruithe buntáisc.",
- "Storage backend": "Inneall stórála",
- "Choose how LaunchPad stores dashboard content.": "Roghnaigh conas a stórálann LaunchPad ábhar deaise.",
- "Database (default)": "Bunachar sonraí (réamhshocrú)",
- "Store dashboard content in the LaunchPad database table.": "Stóráil ábhar deaise i dtábla bhunachar sonraí LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (molta d'úsáid eagraíochta)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Stóráil ábhar deaise i nGroupFolders Nextcloud le haghaidh rochtana comhoibríche.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Níl an aip GroupFolder suiteáilte. Suiteáil 'Nextcloud GroupFolders' chun an rogha seo a úsáid.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Roghnaigh an t-ord ina bhfeictear grúpaí Nextcloud nuair a threoraíonn LaunchPad úsáideoirí chuig spás oibre.",
"Demo data": "Sonraí taispeána",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Taispeánfar na taispeántais sonraí taispeána anseo a luaithe a sheoltar an cumas demo-data-showcases. Faoi láthair tá an chéim seo faisnéiseach amháin.",
@@ -956,7 +948,6 @@
"Finish": "Críochnaigh",
"Run setup wizard": "Rith an draoi socraithe",
"Run setup wizard again": "Rith an draoi socraithe arís",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Cuir tús le d'inlíon: roghnaigh stóráil, cumraigh grúpaí, suiteáil sonraí taispeána, agus socraigh róil riaracháin.",
"Container": "Coimeádán",
"Padding": "Stuáil",
"Title (optional)": "Teideal (roghnach)",
@@ -1333,6 +1324,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Cumraigh do shampla LaunchPad le hordú grúpaí, sonraí taispeána, róil riaracháin, agus socruithe buntáisc.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Cuir tús le d'inlíon: cumraigh grúpaí, suiteáil sonraí taispeána, agus socraigh róil riaracháin."
}
}
diff --git a/l10n/hr.js b/l10n/hr.js
index 2a8857d55..8efccee46 100644
--- a/l10n/hr.js
+++ b/l10n/hr.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Čarobnjak za postavljanje LaunchPada",
"Step {n} / {total}" : "Korak {n} / {total}",
"Welcome" : "Dobrodošli",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfigurirajte svoju LaunchPad instancu pomoću pohrane, redoslijeda grupa, demo podataka, administratorskih uloga i postavki podnožja.",
- "Storage backend" : "Pozadinski sustav pohrane",
- "Choose how LaunchPad stores dashboard content." : "Odaberite kako LaunchPad pohranjuje sadržaj nadzorne ploče.",
- "Database (default)" : "Baza podataka (zadano)",
- "Store dashboard content in the LaunchPad database table." : "Pohrani sadržaj nadzorne ploče u tablicu baze podataka LaunchPada.",
- "GroupFolder (recommended for org use)" : "GroupFolder (preporučeno za organizacijsku upotrebu)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Pohrani sadržaj nadzorne ploče u Nextcloud GroupFolders za zajednički pristup.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplikacija GroupFolder nije instalirana. Instalirajte 'Nextcloud GroupFolders' za korištenje ove opcije.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Odaberite redoslijed kojim se Nextcloud grupe pojavljuju kada LaunchPad usmjerava korisnike u radni prostor.",
"Demo data" : "Demo podaci",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Prikazi demo podataka pojavit će se ovdje kada se isporuči mogućnost demo-data-showcases. Za sada je ovaj korak samo informativan.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Završi",
"Run setup wizard" : "Pokreni čarobnjaka za postavljanje",
"Run setup wizard again" : "Ponovno pokreni čarobnjaka za postavljanje",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Pokrenite svoj intranet: odaberite pohranu, konfigurirajte grupe, instalirajte demo podatke i postavite administratorske uloge.",
"Container" : "Spremnik",
"Padding" : "Razmak",
"Title (optional)" : "Naslov (neobavezno)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurirajte svoju LaunchPad instancu s redoslijedom grupa, demo podacima, administratorskim ulogama i postavkama podnožja.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Pokrenite svoj intranet: konfigurirajte grupe, instalirajte demo podatke i postavite administratorske uloge."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
);
diff --git a/l10n/hr.json b/l10n/hr.json
index 8fbf01850..c4affb2fc 100644
--- a/l10n/hr.json
+++ b/l10n/hr.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Čarobnjak za postavljanje aplikacije LaunchPad",
"Step {n} / {total}": "Korak {n} / {total}",
"Welcome": "Dobrodošli",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurirajte svoju LaunchPad instancu s pohranom, redoslijedom grupa, demo podacima, administratorskim ulogama i postavkama podnožja.",
- "Storage backend": "Pozadinski sustav pohrane",
- "Choose how LaunchPad stores dashboard content.": "Odaberite kako LaunchPad pohranjuje sadržaj nadzorne ploče.",
- "Database (default)": "Baza podataka (zadano)",
- "Store dashboard content in the LaunchPad database table.": "Pohrani sadržaj nadzorne ploče u LaunchPad tablicu baze podataka.",
- "GroupFolder (recommended for org use)": "GroupFolder (preporučeno za organizacijsku upotrebu)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Pohrani sadržaj nadzorne ploče u Nextcloud GroupFolders za suradnički pristup.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplikacija GroupFolder nije instalirana. Instalirajte 'Nextcloud GroupFolders' da biste koristili ovu opciju.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Odaberite redoslijed kojim se Nextcloud grupe pojavljuju kada LaunchPad usmjerava korisnike u radni prostor.",
"Demo data": "Demo podaci",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Prikazi demo podataka pojavit će se ovdje kada se isporuči mogućnost demo-data-showcases. Za sada je ovaj korak samo informativan.",
@@ -954,7 +946,6 @@
"Finish": "Završi",
"Run setup wizard": "Pokreni čarobnjak za postavljanje",
"Run setup wizard again": "Ponovno pokreni čarobnjak za postavljanje",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Pokrenite svoj intranet: odaberite pohranu, konfigurirajte grupe, instalirajte demo podatke i postavite administratorske uloge.",
"Container": "Spremnik",
"Padding": "Razmak",
"Title (optional)": "Naslov (neobavezno)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurirajte svoju LaunchPad instancu s redoslijedom grupa, demo podacima, administratorskim ulogama i postavkama podnožja.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Pokrenite svoj intranet: konfigurirajte grupe, instalirajte demo podatke i postavite administratorske uloge."
}
}
diff --git a/l10n/hu.js b/l10n/hu.js
index 263c90107..fcc0f09f3 100644
--- a/l10n/hu.js
+++ b/l10n/hu.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad beállítóvarázsló",
"Step {n} / {total}" : "{n}. / {total}. lépés",
"Welcome" : "Üdvözöljük",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Állítsa be a LaunchPad-példányát tárolóval, csoportsorrenddel, bemutató adatokkal, rendszergazdai szerepkörökkel és láblécbeállításokkal.",
- "Storage backend" : "Tárolási háttérrendszer",
- "Choose how LaunchPad stores dashboard content." : "Válassza ki, hogyan tárolja a LaunchPad az irányítópult-tartalmat.",
- "Database (default)" : "Adatbázis (alapértelmezett)",
- "Store dashboard content in the LaunchPad database table." : "Az irányítópult-tartalom tárolása a LaunchPad adatbázistáblájában.",
- "GroupFolder (recommended for org use)" : "GroupFolder (szervezeti használathoz ajánlott)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Az irányítópult-tartalom tárolása Nextcloud GroupFolders mappákban az együttműködéses hozzáférés érdekében.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "A GroupFolder alkalmazás nincs telepítve. Telepítse a „Nextcloud GroupFolders” alkalmazást ennek a beállításnak a használatához.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Válassza ki, milyen sorrendben jelenjenek meg a Nextcloud-csoportok, amikor a LaunchPad munkaterületre irányítja a felhasználókat.",
"Demo data" : "Bemutató adatok",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "A bemutató adat-tárlatok itt jelennek meg, amint a demo-data-showcases képesség elérhetővé válik. Egyelőre ez a lépés csak tájékoztató jellegű.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Befejezés",
"Run setup wizard" : "Beállítóvarázsló futtatása",
"Run setup wizard again" : "Beállítóvarázsló újbóli futtatása",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Indítsa el az intranetjét: válasszon tárolót, állítson be csoportokat, telepítsen bemutató adatokat, és állítson be rendszergazdai szerepköröket.",
"Container" : "Tároló",
"Padding" : "Belső térköz",
"Title (optional)" : "Cím (választható)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Állítsa be LaunchPad-példányát a csoportsorrenddel, demoadatokkal, rendszergazdai szerepekkel és lábléc-beállításokkal.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Indítsa el intranetét: állítsa be a csoportokat, telepítsen demoadatokat, és állítsa be a rendszergazdai szerepeket."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/hu.json b/l10n/hu.json
index db7aed4b0..2195008a7 100644
--- a/l10n/hu.json
+++ b/l10n/hu.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad beállítási varázsló",
"Step {n} / {total}": "{n}. / {total}. lépés",
"Welcome": "Üdvözöljük",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Állítsa be LaunchPad-példányát a tárolóval, csoportsorrenddel, demoadatokkal, rendszergazdai szerepekkel és lábléc-beállításokkal.",
- "Storage backend": "Tároló-háttérszolgáltatás",
- "Choose how LaunchPad stores dashboard content.": "Válassza ki, hogyan tárolja a LaunchPad az irányítópult-tartalmat.",
- "Database (default)": "Adatbázis (alapértelmezett)",
- "Store dashboard content in the LaunchPad database table.": "Az irányítópult-tartalom tárolása a LaunchPad adatbázistáblájában.",
- "GroupFolder (recommended for org use)": "GroupFolder (szervezeti használathoz ajánlott)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Az irányítópult-tartalom tárolása a Nextcloud GroupFolders mappáiban az együttműködéses hozzáférés érdekében.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "A GroupFolder alkalmazás nincs telepítve. Telepítse a „Nextcloud GroupFolders” alkalmazást ennek a lehetőségnek a használatához.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Válassza ki, milyen sorrendben jelenjenek meg a Nextcloud-csoportok, amikor a LaunchPad a felhasználókat egy munkaterületre irányítja.",
"Demo data": "Demoadatok",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "A demoadat-bemutatók itt jelennek meg, amint a demo-data-showcases képesség elérhetővé válik. Egyelőre ez a lépés csak tájékoztató jellegű.",
@@ -953,7 +945,6 @@
"Finish": "Befejezés",
"Run setup wizard": "Beállítási varázsló futtatása",
"Run setup wizard again": "Beállítási varázsló újrafuttatása",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Indítsa el intranetét: válasszon tárolót, állítsa be a csoportokat, telepítsen demoadatokat, és állítsa be a rendszergazdai szerepeket.",
"Container": "Tároló",
"Padding": "Belső térköz",
"Title (optional)": "Cím (választható)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Állítsa be LaunchPad-példányát a csoportsorrenddel, demoadatokkal, rendszergazdai szerepekkel és lábléc-beállításokkal.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Indítsa el intranetét: állítsa be a csoportokat, telepítsen demoadatokat, és állítsa be a rendszergazdai szerepeket."
}
}
diff --git a/l10n/is.js b/l10n/is.js
index 160c212b8..52bc3ba57 100644
--- a/l10n/is.js
+++ b/l10n/is.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad-uppsetningarálfur",
"Step {n} / {total}" : "Skref {n} / {total}",
"Welcome" : "Velkomin",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Stillið LaunchPad-tilvik yðar með geymslu, hóparöðun, sýnigögnum, stjórnandahlutverkum og fótstillingum.",
- "Storage backend" : "Geymslubakendi",
- "Choose how LaunchPad stores dashboard content." : "Veljið hvernig LaunchPad geymir stjórnborðsefni.",
- "Database (default)" : "Gagnagrunnur (sjálfgefið)",
- "Store dashboard content in the LaunchPad database table." : "Geyma stjórnborðsefni í LaunchPad-gagnagrunnstöflunni.",
- "GroupFolder (recommended for org use)" : "GroupFolder (mælt með fyrir stofnananotkun)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Geyma stjórnborðsefni í Nextcloud GroupFolders fyrir samvinnuaðgang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder-forritið er ekki uppsett. Setjið upp „Nextcloud GroupFolders“ til að nota þennan valkost.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Veljið röðina sem Nextcloud-hópar birtast í þegar LaunchPad beinir notendum á vinnusvæði.",
"Demo data" : "Sýnigögn",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Sýnigagnasýnishornin munu birtast hér þegar demo-data-showcases-geta verður afhent. Eins og er er þetta skref aðeins til upplýsinga.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Ljúka",
"Run setup wizard" : "Keyra uppsetningarálf",
"Run setup wizard again" : "Keyra uppsetningarálf aftur",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Komið innra netinu yðar af stað: veljið geymslu, stillið hópa, setjið upp sýnigögn og setjið upp stjórnandahlutverk.",
"Container" : "Ílát",
"Padding" : "Spássía",
"Title (optional)" : "Titill (valfrjálst)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Stilltu LaunchPad uppsetninguna þína með hóparöðun, kynningargögnum, kerfisstjórahlutverkum og fótstillingum.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Komdu innranetinu þínu af stað: stilltu hópa, settu upp kynningargögn og settu upp kerfisstjórahlutverk."
},
"nplurals=2; plural=(n%10!=1 || n%100==11);"
);
diff --git a/l10n/is.json b/l10n/is.json
index f04e7fe9f..fd97c9542 100644
--- a/l10n/is.json
+++ b/l10n/is.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad uppsetningarleiðsögn",
"Step {n} / {total}": "Skref {n} / {total}",
"Welcome": "Velkomin(n)",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Stilltu LaunchPad uppsetninguna þína með geymslu, hóparöðun, kynningargögnum, kerfisstjórahlutverkum og fótstillingum.",
- "Storage backend": "Geymslubakendi",
- "Choose how LaunchPad stores dashboard content.": "Veldu hvernig LaunchPad geymir mælaborðsefni.",
- "Database (default)": "Gagnagrunnur (sjálfgefið)",
- "Store dashboard content in the LaunchPad database table.": "Geyma mælaborðsefni í gagnagrunnstöflu LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (mælt með fyrir stofnananotkun)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Geyma mælaborðsefni í Nextcloud GroupFolders fyrir samvinnuaðgang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder forritið er ekki uppsett. Settu upp 'Nextcloud GroupFolders' til að nota þennan valkost.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Veldu röðina sem Nextcloud hópar birtast í þegar LaunchPad beinir notendum á vinnusvæði.",
"Demo data": "Kynningargögn",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Sýnishorn kynningargagna birtast hér þegar demo-data-showcases eiginleikinn kemur. Eins og er er þetta skref aðeins til upplýsinga.",
@@ -953,7 +945,6 @@
"Finish": "Ljúka",
"Run setup wizard": "Keyra uppsetningarleiðsögn",
"Run setup wizard again": "Keyra uppsetningarleiðsögn aftur",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Komdu innranetinu þínu af stað: veldu geymslu, stilltu hópa, settu upp kynningargögn og settu upp kerfisstjórahlutverk.",
"Container": "Ílát",
"Padding": "Innfylling",
"Title (optional)": "Titill (valfrjálst)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Stilltu LaunchPad uppsetninguna þína með hóparöðun, kynningargögnum, kerfisstjórahlutverkum og fótstillingum.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Komdu innranetinu þínu af stað: stilltu hópa, settu upp kynningargögn og settu upp kerfisstjórahlutverk."
}
}
diff --git a/l10n/it.js b/l10n/it.js
index 85143eb7f..6f7adff97 100644
--- a/l10n/it.js
+++ b/l10n/it.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Procedura guidata di configurazione di LaunchPad",
"Step {n} / {total}" : "Passo {n} / {total}",
"Welcome" : "Benvenuto",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configura la tua istanza LaunchPad con archiviazione, ordinamento dei gruppi, dati dimostrativi, ruoli di amministrazione e impostazioni del piè di pagina.",
- "Storage backend" : "Backend di archiviazione",
- "Choose how LaunchPad stores dashboard content." : "Scegli come LaunchPad archivia il contenuto delle dashboard.",
- "Database (default)" : "Database (predefinito)",
- "Store dashboard content in the LaunchPad database table." : "Archivia il contenuto delle dashboard nella tabella del database di LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (consigliato per l'uso organizzativo)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Archivia il contenuto delle dashboard nelle GroupFolder di Nextcloud per l'accesso collaborativo.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "L'app GroupFolder non è installata. Installi 'Nextcloud GroupFolders' per usare questa opzione.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Scegli l'ordine in cui i gruppi Nextcloud appaiono quando LaunchPad indirizza gli utenti a un'area di lavoro.",
"Demo data" : "Dati dimostrativi",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Le vetrine di dati dimostrativi appariranno qui una volta rilasciata la funzionalità demo-data-showcases. Per ora questo passo è solo informativo.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Fine",
"Run setup wizard" : "Avvia procedura guidata di configurazione",
"Run setup wizard again" : "Avvia di nuovo la procedura guidata di configurazione",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Avvia la tua intranet: scegli l'archiviazione, configura i gruppi, installa i dati dimostrativi e imposta i ruoli di amministrazione.",
"Container" : "Contenitore",
"Padding" : "Spaziatura interna",
"Title (optional)" : "Titolo (facoltativo)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configura la tua istanza di LaunchPad con ordinamento dei gruppi, dati dimostrativi, ruoli di amministrazione e impostazioni del piè di pagina.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Avvia la tua intranet: configura i gruppi, installa i dati dimostrativi e imposta i ruoli di amministrazione."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/it.json b/l10n/it.json
index 39bf8dec9..aef547f26 100644
--- a/l10n/it.json
+++ b/l10n/it.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Procedura guidata di configurazione di LaunchPad",
"Step {n} / {total}": "Passaggio {n} / {total}",
"Welcome": "Benvenuto",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configura la tua istanza di LaunchPad con archiviazione, ordinamento dei gruppi, dati dimostrativi, ruoli di amministrazione e impostazioni del piè di pagina.",
- "Storage backend": "Backend di archiviazione",
- "Choose how LaunchPad stores dashboard content.": "Scegli come LaunchPad archivia il contenuto delle dashboard.",
- "Database (default)": "Database (predefinito)",
- "Store dashboard content in the LaunchPad database table.": "Archivia il contenuto delle dashboard nella tabella del database di LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (consigliato per l'uso organizzativo)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Archivia il contenuto delle dashboard nelle GroupFolder di Nextcloud per l'accesso collaborativo.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "L'app GroupFolder non è installata. Installa 'Nextcloud GroupFolders' per usare questa opzione.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Scegli l'ordine in cui appaiono i gruppi Nextcloud quando LaunchPad indirizza gli utenti a uno spazio di lavoro.",
"Demo data": "Dati dimostrativi",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Gli esempi dimostrativi di dati appariranno qui una volta rilasciata la funzionalità demo-data-showcases. Per ora questo passaggio è solo informativo.",
@@ -953,7 +945,6 @@
"Finish": "Fine",
"Run setup wizard": "Avvia la procedura guidata di configurazione",
"Run setup wizard again": "Avvia di nuovo la procedura guidata di configurazione",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Avvia la tua intranet: scegli l'archiviazione, configura i gruppi, installa i dati dimostrativi e imposta i ruoli di amministrazione.",
"Container": "Contenitore",
"Padding": "Spaziatura interna",
"Title (optional)": "Titolo (facoltativo)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configura la tua istanza di LaunchPad con ordinamento dei gruppi, dati dimostrativi, ruoli di amministrazione e impostazioni del piè di pagina.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Avvia la tua intranet: configura i gruppi, installa i dati dimostrativi e imposta i ruoli di amministrazione."
}
}
diff --git a/l10n/lb.js b/l10n/lb.js
index 88a18e9fb..d5cc9247b 100644
--- a/l10n/lb.js
+++ b/l10n/lb.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad-Ariichtungsassistent",
"Step {n} / {total}" : "Schrëtt {n} / {total}",
"Welcome" : "Wëllkomm",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfiguréiert Är LaunchPad-Instanz mat Späicher, Gruppeuerdnung, Demodaten, Administrateursrollen a Foussberäich-Astellungen.",
- "Storage backend" : "Späicher-Backend",
- "Choose how LaunchPad stores dashboard content." : "Wielt, wéi LaunchPad den Dashboard-Inhalt späichert.",
- "Database (default)" : "Datebank (Standard)",
- "Store dashboard content in the LaunchPad database table." : "Späichert den Dashboard-Inhalt an der LaunchPad-Datebanktabell.",
- "GroupFolder (recommended for org use)" : "GroupFolder (empfohlen fir organisatoresche Gebrauch)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Späichert den Dashboard-Inhalt an Nextcloud-GroupFolders fir e kollaborativen Zougang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "D'GroupFolder-Applikatioun ass net installéiert. Installéiert „Nextcloud GroupFolders“, fir dës Optioun ze benotzen.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Wielt d'Reiefolleg, an där d'Nextcloud-Gruppen erschéngen, wann LaunchPad d'Benotzer op en Aarbechtsberäich weiderleet.",
"Demo data" : "Demodaten",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "D'Demodaten-Presentatioune erschéngen hei, soubal d'Funktioun demo-data-showcases ausgeliwwert gëtt. Fir de Moment ass dëse Schrëtt nëmmen informativ.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Ofschléissen",
"Run setup wizard" : "Ariichtungsassistent ausféieren",
"Run setup wizard again" : "Ariichtungsassistent nach eemol ausféieren",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Setzt Ären Intranet a Gang: wielt de Späicher, konfiguréiert d'Gruppen, installéiert Demodaten a riicht Administrateursrollen in.",
"Container" : "Container",
"Padding" : "Ofstand",
"Title (optional)" : "Titel (optional)",
@@ -1354,7 +1345,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfiguréiert Är LaunchPad-Instanz mat Gruppeuerdnung, Demodaten, Administrateursrollen a Foussberäich-Astellungen.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Setzt Ären Intranet a Gang: konfiguréiert d'Gruppen, installéiert Demodaten a riicht Administrateursrollen in."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/lb.json b/l10n/lb.json
index a1ec1ebcf..f9eec8422 100644
--- a/l10n/lb.json
+++ b/l10n/lb.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad-Ariichtungsassistent",
"Step {n} / {total}": "Schrëtt {n} / {total}",
"Welcome": "Wëllkomm",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfiguréiert Är LaunchPad-Instanz mat Späicher, Gruppeuerdnung, Demodaten, Administrateursrollen a Foussberäich-Astellungen.",
- "Storage backend": "Späicher-Backend",
- "Choose how LaunchPad stores dashboard content.": "Wielt, wéi LaunchPad den Dashboard-Inhalt späichert.",
- "Database (default)": "Datebank (Standard)",
- "Store dashboard content in the LaunchPad database table.": "Späichert den Dashboard-Inhalt an der LaunchPad-Datebanktabell.",
- "GroupFolder (recommended for org use)": "GroupFolder (empfohlen fir organisatoresche Gebrauch)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Späichert den Dashboard-Inhalt an Nextcloud-GroupFolders fir e kollaborativen Zougang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "D'GroupFolder-Applikatioun ass net installéiert. Installéiert „Nextcloud GroupFolders“, fir dës Optioun ze benotzen.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Wielt d'Reiefolleg, an där d'Nextcloud-Gruppen erschéngen, wann LaunchPad d'Benotzer op en Aarbechtsberäich weiderleet.",
"Demo data": "Demodaten",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "D'Demodaten-Presentatioune erschéngen hei, soubal d'Funktioun demo-data-showcases ausgeliwwert gëtt. Fir de Moment ass dëse Schrëtt nëmmen informativ.",
@@ -953,7 +945,6 @@
"Finish": "Ofschléissen",
"Run setup wizard": "Ariichtungsassistent ausféieren",
"Run setup wizard again": "Ariichtungsassistent nach eemol ausféieren",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Setzt Ären Intranet a Gang: wielt de Späicher, konfiguréiert d'Gruppen, installéiert Demodaten a riicht Administrateursrollen in.",
"Container": "Container",
"Padding": "Ofstand",
"Title (optional)": "Titel (optional)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfiguréiert Är LaunchPad-Instanz mat Gruppeuerdnung, Demodaten, Administrateursrollen a Foussberäich-Astellungen.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Setzt Ären Intranet a Gang: konfiguréiert d'Gruppen, installéiert Demodaten a riicht Administrateursrollen in."
}
}
diff --git a/l10n/lt.js b/l10n/lt.js
index af2a987e5..2044a38a4 100644
--- a/l10n/lt.js
+++ b/l10n/lt.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad sąrankos vediklis",
"Step {n} / {total}" : "Žingsnis {n} / {total}",
"Welcome" : "Sveiki",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Sukonfigūruokite savo LaunchPad egzempliorių su saugykla, grupių tvarka, demonstraciniais duomenimis, administratorių vaidmenimis ir poraštės nustatymais.",
- "Storage backend" : "Saugyklos posistemė",
- "Choose how LaunchPad stores dashboard content." : "Pasirinkite, kaip LaunchPad saugo valdymo skydo turinį.",
- "Database (default)" : "Duomenų bazė (numatytoji)",
- "Store dashboard content in the LaunchPad database table." : "Saugoti valdymo skydo turinį LaunchPad duomenų bazės lentelėje.",
- "GroupFolder (recommended for org use)" : "GroupFolder (rekomenduojama organizaciniam naudojimui)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Saugoti valdymo skydo turinį Nextcloud GroupFolders bendradarbiavimo prieigai.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder programa neįdiegta. Norėdami naudoti šią parinktį, įdiekite „Nextcloud GroupFolders“.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Pasirinkite tvarką, kuria Nextcloud grupės rodomos, kai LaunchPad nukreipia naudotojus į darbo sritį.",
"Demo data" : "Demonstraciniai duomenys",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Demonstracinių duomenų pavyzdžiai čia atsiras, kai bus pristatyta demo-data-showcases galimybė. Kol kas šis žingsnis yra tik informacinis.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Baigti",
"Run setup wizard" : "Paleisti sąrankos vediklį",
"Run setup wizard again" : "Paleisti sąrankos vediklį dar kartą",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Pradėkite savo intranetą: pasirinkite saugyklą, sukonfigūruokite grupes, įdiekite demonstracinius duomenis ir nustatykite administratorių vaidmenis.",
"Container" : "Konteineris",
"Padding" : "Vidinis tarpas",
"Title (optional)" : "Pavadinimas (neprivalomas)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Sukonfigūruokite savo LaunchPad egzempliorių su grupių tvarka, demonstraciniais duomenimis, administratoriaus vaidmenimis ir poraštės nustatymais.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Pradėkite savo intranetą: sukonfigūruokite grupes, įdiekite demonstracinius duomenis ir nustatykite administratoriaus vaidmenis."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
);
diff --git a/l10n/lt.json b/l10n/lt.json
index 48d140036..627c91524 100644
--- a/l10n/lt.json
+++ b/l10n/lt.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "LaunchPad sąrankos vediklis",
"Step {n} / {total}": "Žingsnis {n} / {total}",
"Welcome": "Sveiki atvykę",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Sukonfigūruokite savo LaunchPad egzempliorių su saugykla, grupių tvarka, demonstraciniais duomenimis, administratoriaus vaidmenimis ir poraštės nustatymais.",
- "Storage backend": "Saugyklos posistemė",
- "Choose how LaunchPad stores dashboard content.": "Pasirinkite, kaip LaunchPad saugo skydelio turinį.",
- "Database (default)": "Duomenų bazė (numatytoji)",
- "Store dashboard content in the LaunchPad database table.": "Saugoti skydelio turinį LaunchPad duomenų bazės lentelėje.",
- "GroupFolder (recommended for org use)": "GroupFolder (rekomenduojama organizacijos naudojimui)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Saugoti skydelio turinį Nextcloud GroupFolders bendradarbiavimo prieigai.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder programa neįdiegta. Norėdami naudoti šią parinktį, įdiekite „Nextcloud GroupFolders“.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Pasirinkite tvarką, kuria Nextcloud grupės rodomos, kai LaunchPad nukreipia naudotojus į darbo sritį.",
"Demo data": "Demonstraciniai duomenys",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Demonstracinių duomenų pavyzdžiai bus rodomi čia, kai pasirodys demo-data-showcases galimybė. Kol kas šis žingsnis yra tik informacinis.",
@@ -954,7 +946,6 @@
"Finish": "Baigti",
"Run setup wizard": "Paleisti sąrankos vediklį",
"Run setup wizard again": "Paleisti sąrankos vediklį iš naujo",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Pradėkite savo intranetą: pasirinkite saugyklą, sukonfigūruokite grupes, įdiekite demonstracinius duomenis ir nustatykite administratoriaus vaidmenis.",
"Container": "Talpykla",
"Padding": "Vidinis tarpas",
"Title (optional)": "Pavadinimas (neprivaloma)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Sukonfigūruokite savo LaunchPad egzempliorių su grupių tvarka, demonstraciniais duomenimis, administratoriaus vaidmenimis ir poraštės nustatymais.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Pradėkite savo intranetą: sukonfigūruokite grupes, įdiekite demonstracinius duomenis ir nustatykite administratoriaus vaidmenis."
}
}
diff --git a/l10n/lv.js b/l10n/lv.js
index 64ba546fd..1afbd03eb 100644
--- a/l10n/lv.js
+++ b/l10n/lv.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad iestatīšanas vednis",
"Step {n} / {total}" : "Solis {n} / {total}",
"Welcome" : "Laipni lūdzam",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfigurējiet savu LaunchPad instanci ar krātuvi, grupu kārtošanu, demonstrācijas datiem, administratora lomām un kājenes iestatījumiem.",
- "Storage backend" : "Krātuves aizmugursistēma",
- "Choose how LaunchPad stores dashboard content." : "Izvēlieties, kā LaunchPad glabā vadības paneļu saturu.",
- "Database (default)" : "Datubāze (noklusējums)",
- "Store dashboard content in the LaunchPad database table." : "Glabāt vadības paneļu saturu LaunchPad datubāzes tabulā.",
- "GroupFolder (recommended for org use)" : "GroupFolder (ieteicams organizācijas lietošanai)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Glabāt vadības paneļu saturu Nextcloud GroupFolders kopdarbam.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder lietotne nav instalēta. Instalējiet 'Nextcloud GroupFolders', lai izmantotu šo opciju.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Izvēlieties secību, kādā Nextcloud grupas parādās, kad LaunchPad novirza lietotājus uz darbvietu.",
"Demo data" : "Demonstrācijas dati",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Demonstrācijas datu prezentācijas parādīsies šeit, tiklīdz būs pieejama demo-data-showcases funkcija. Pagaidām šis solis ir tikai informatīvs.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Pabeigt",
"Run setup wizard" : "Palaist iestatīšanas vedni",
"Run setup wizard again" : "Palaist iestatīšanas vedni vēlreiz",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Uzsāciet sava intraneta darbu: izvēlieties krātuvi, konfigurējiet grupas, instalējiet demonstrācijas datus un iestatiet administratora lomas.",
"Container" : "Konteiners",
"Padding" : "Iekšējā atstarpe",
"Title (optional)" : "Nosaukums (neobligāts)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurējiet savu LaunchPad instanci ar grupu kārtošanu, demonstrācijas datiem, administratora lomām un kājenes iestatījumiem.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Uzsāciet sava intraneta darbu: konfigurējiet grupas, instalējiet demonstrācijas datus un iestatiet administratora lomas."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
);
diff --git a/l10n/lv.json b/l10n/lv.json
index 893c514a4..560cbf002 100644
--- a/l10n/lv.json
+++ b/l10n/lv.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "LaunchPad iestatīšanas vednis",
"Step {n} / {total}": "Solis {n} / {total}",
"Welcome": "Laipni lūdzam",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurējiet savu LaunchPad instanci ar krātuvi, grupu kārtošanu, demonstrācijas datiem, administratora lomām un kājenes iestatījumiem.",
- "Storage backend": "Krātuves aizmugursistēma",
- "Choose how LaunchPad stores dashboard content.": "Izvēlieties, kā LaunchPad glabā vadības paneļu saturu.",
- "Database (default)": "Datubāze (noklusējums)",
- "Store dashboard content in the LaunchPad database table.": "Glabāt vadības paneļu saturu LaunchPad datubāzes tabulā.",
- "GroupFolder (recommended for org use)": "GroupFolder (ieteicams organizācijas lietošanai)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Glabāt vadības paneļu saturu Nextcloud GroupFolders kopdarbam.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder lietotne nav instalēta. Instalējiet 'Nextcloud GroupFolders', lai izmantotu šo opciju.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Izvēlieties secību, kādā Nextcloud grupas parādās, kad LaunchPad novirza lietotājus uz darbvietu.",
"Demo data": "Demonstrācijas dati",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Demonstrācijas datu prezentācijas parādīsies šeit, tiklīdz būs pieejama demo-data-showcases funkcija. Pagaidām šis solis ir tikai informatīvs.",
@@ -954,7 +946,6 @@
"Finish": "Pabeigt",
"Run setup wizard": "Palaist iestatīšanas vedni",
"Run setup wizard again": "Palaist iestatīšanas vedni vēlreiz",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Uzsāciet sava intraneta darbu: izvēlieties krātuvi, konfigurējiet grupas, instalējiet demonstrācijas datus un iestatiet administratora lomas.",
"Container": "Konteiners",
"Padding": "Iekšējā atstarpe",
"Title (optional)": "Nosaukums (neobligāts)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurējiet savu LaunchPad instanci ar grupu kārtošanu, demonstrācijas datiem, administratora lomām un kājenes iestatījumiem.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Uzsāciet sava intraneta darbu: konfigurējiet grupas, instalējiet demonstrācijas datus un iestatiet administratora lomas."
}
}
diff --git a/l10n/mk.js b/l10n/mk.js
index 80b3ac41d..1b74e9617 100644
--- a/l10n/mk.js
+++ b/l10n/mk.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad волшебник за поставување",
"Step {n} / {total}" : "Чекор {n} / {total}",
"Welcome" : "Добредојдовте",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Конфигурирајте ја вашата LaunchPad инстанца со складирање, подредување на групи, демо податоци, администраторски улоги и поставки на подножјето.",
- "Storage backend" : "Позадински систем за складирање",
- "Choose how LaunchPad stores dashboard content." : "Изберете како LaunchPad ја складира содржината на контролната табла.",
- "Database (default)" : "База на податоци (стандардно)",
- "Store dashboard content in the LaunchPad database table." : "Складирај ја содржината на контролната табла во табелата на базата на податоци на LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (препорачано за организациска употреба)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Складирај ја содржината на контролната табла во Nextcloud GroupFolders за колаборативен пристап.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Апликацијата GroupFolder не е инсталирана. Инсталирајте 'Nextcloud GroupFolders' за да ја користите оваа опција.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Изберете го редоследот по кој се појавуваат Nextcloud групите кога LaunchPad ги насочува корисниците кон работен простор.",
"Demo data" : "Демо податоци",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Приказите на демо податоци ќе се појават овде штом ќе се испорача можноста demo-data-showcases. Засега овој чекор е само информативен.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Заврши",
"Run setup wizard" : "Стартувај волшебник за поставување",
"Run setup wizard again" : "Стартувај го волшебникот за поставување повторно",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Стартувајте го вашиот интранет: изберете складирање, конфигурирајте групи, инсталирајте демо податоци и поставете администраторски улоги.",
"Container" : "Контејнер",
"Padding" : "Внатрешно растојание",
"Title (optional)" : "Наслов (изборно)",
@@ -1354,7 +1345,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Конфигурирајте ја вашата LaunchPad инстанца со подредување на групи, демо податоци, администраторски улоги и поставки на подножјето.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Стартувајте го вашиот интранет: конфигурирајте групи, инсталирајте демо податоци и поставете администраторски улоги."
},
"nplurals=2; plural=(n%10==1 && n%100!=11 ? 0 : 1);"
);
diff --git a/l10n/mk.json b/l10n/mk.json
index e6c1b13dc..ad5e396fb 100644
--- a/l10n/mk.json
+++ b/l10n/mk.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad волшебник за поставување",
"Step {n} / {total}": "Чекор {n} / {total}",
"Welcome": "Добредојдовте",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Конфигурирајте ја вашата LaunchPad инстанца со складирање, подредување на групи, демо податоци, администраторски улоги и поставки на подножјето.",
- "Storage backend": "Позадински систем за складирање",
- "Choose how LaunchPad stores dashboard content.": "Изберете како LaunchPad ја складира содржината на контролната табла.",
- "Database (default)": "База на податоци (стандардно)",
- "Store dashboard content in the LaunchPad database table.": "Складирај ја содржината на контролната табла во табелата на базата на податоци на LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (препорачано за организациска употреба)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Складирај ја содржината на контролната табла во Nextcloud GroupFolders за колаборативен пристап.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Апликацијата GroupFolder не е инсталирана. Инсталирајте 'Nextcloud GroupFolders' за да ја користите оваа опција.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Изберете го редоследот по кој се појавуваат Nextcloud групите кога LaunchPad ги насочува корисниците кон работен простор.",
"Demo data": "Демо податоци",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Приказите на демо податоци ќе се појават овде штом ќе се испорача можноста demo-data-showcases. Засега овој чекор е само информативен.",
@@ -953,7 +945,6 @@
"Finish": "Заврши",
"Run setup wizard": "Стартувај волшебник за поставување",
"Run setup wizard again": "Стартувај го волшебникот за поставување повторно",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Стартувајте го вашиот интранет: изберете складирање, конфигурирајте групи, инсталирајте демо податоци и поставете администраторски улоги.",
"Container": "Контејнер",
"Padding": "Внатрешно растојание",
"Title (optional)": "Наслов (изборно)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Конфигурирајте ја вашата LaunchPad инстанца со подредување на групи, демо податоци, администраторски улоги и поставки на подножјето.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Стартувајте го вашиот интранет: конфигурирајте групи, инсталирајте демо податоци и поставете администраторски улоги."
}
}
diff --git a/l10n/mt.js b/l10n/mt.js
index 89b245f07..d986d2230 100644
--- a/l10n/mt.js
+++ b/l10n/mt.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Wizard tas-setup ta' LaunchPad",
"Step {n} / {total}" : "Pass {n} / {total}",
"Welcome" : "Merħba",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Ikkonfigura l-istanza ta' LaunchPad tiegħek bil-ħżin, l-ordni tal-gruppi, id-data demo, ir-rwoli tal-amministratur, u s-settings tal-footer.",
- "Storage backend" : "Backend tal-ħżin",
- "Choose how LaunchPad stores dashboard content." : "Agħżel kif LaunchPad jaħżen il-kontenut tad-dashboard.",
- "Database (default)" : "Database (prestabbilit)",
- "Store dashboard content in the LaunchPad database table." : "Aħżen il-kontenut tad-dashboard fit-tabella tad-database ta' LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (rakkomandat għall-użu mill-organizzazzjoni)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Aħżen il-kontenut tad-dashboard fil-GroupFolders ta' Nextcloud għal aċċess kollaborattiv.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "L-app GroupFolder mhix installata. Installa 'Nextcloud GroupFolders' biex tuża din l-għażla.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Agħżel l-ordni li bih jidhru l-gruppi ta' Nextcloud meta LaunchPad jiggwida lill-utenti lejn spazju tax-xogħol.",
"Demo data" : "Data demo",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Il-wirjiet ta' data demo jidhru hawn ladarba l-kapaċità demo-data-showcases tiġi mwassla. Għalissa dan il-pass huwa informattiv biss.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Temm",
"Run setup wizard" : "Ħaddem il-wizard tas-setup",
"Run setup wizard again" : "Ħaddem il-wizard tas-setup mill-ġdid",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Ibda l-intranet tiegħek: agħżel il-ħżin, ikkonfigura l-gruppi, installa d-data demo, u ssettja r-rwoli tal-amministratur.",
"Container" : "Kontenitur",
"Padding" : "Imbuttatura",
"Title (optional)" : "Titlu (fakultattiv)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Ikkonfigura l-istanza ta' LaunchPad tiegħek bl-ordni tal-gruppi, id-data demo, ir-rwoli tal-amministratur, u s-settings tal-footer.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Ibda l-intranet tiegħek: ikkonfigura l-gruppi, installa d-data demo, u ssettja r-rwoli tal-amministratur."
},
"nplurals=4; plural=(n==1 ? 0 : n==0 || (n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20) ? 2 : 3);"
);
diff --git a/l10n/mt.json b/l10n/mt.json
index 41f497916..dcf1477f8 100644
--- a/l10n/mt.json
+++ b/l10n/mt.json
@@ -929,14 +929,6 @@
"LaunchPad setup wizard": "Wizard tal-konfigurazzjoni ta' LaunchPad",
"Step {n} / {total}": "Pass {n} / {total}",
"Welcome": "Merħba",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Ikkonfigura l-istanza ta' LaunchPad tiegħek bil-ħażna, l-ordni tal-gruppi, id-data demo, ir-rwoli tal-amministratur, u s-settings tal-footer.",
- "Storage backend": "Backend tal-ħażna",
- "Choose how LaunchPad stores dashboard content.": "Agħżel kif LaunchPad jaħżen il-kontenut tad-dashboard.",
- "Database (default)": "Database (prestabilit)",
- "Store dashboard content in the LaunchPad database table.": "Aħżen il-kontenut tad-dashboard fit-tabella tad-database ta' LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (rakkomandat għal użu organizzattiv)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Aħżen il-kontenut tad-dashboard fil-GroupFolders ta' Nextcloud għal aċċess kollaborattiv.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "L-app GroupFolder mhix installata. Installa „Nextcloud GroupFolders“ biex tuża din l-għażla.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Agħżel l-ordni li bih jidhru l-gruppi ta' Nextcloud meta LaunchPad jindirizza l-utenti lejn spazju tax-xogħol.",
"Demo data": "Data demo",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Il-wirjiet tad-data demo jidhru hawn ladarba tinħareġ il-kapaċità demo-data-showcases. Għalissa dan il-pass huwa informattiv biss.",
@@ -955,7 +947,6 @@
"Finish": "Spiċċa",
"Run setup wizard": "Mexxi l-wizard tal-konfigurazzjoni",
"Run setup wizard again": "Mexxi l-wizard tal-konfigurazzjoni mill-ġdid",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Ibda l-intranet tiegħek: agħżel il-ħażna, ikkonfigura l-gruppi, installa d-data demo, u ssettja r-rwoli tal-amministratur.",
"Container": "Kontenitur",
"Padding": "Padding",
"Title (optional)": "Titlu (mhux obbligatorju)",
@@ -1332,6 +1323,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Ikkonfigura l-istanza ta' LaunchPad tiegħek bl-ordni tal-gruppi, id-data demo, ir-rwoli tal-amministratur, u s-settings tal-footer.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Ibda l-intranet tiegħek: ikkonfigura l-gruppi, installa d-data demo, u ssettja r-rwoli tal-amministratur."
}
}
diff --git a/l10n/nb.js b/l10n/nb.js
index 232711a65..4b728d3b3 100644
--- a/l10n/nb.js
+++ b/l10n/nb.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad-oppsettsveiviser",
"Step {n} / {total}" : "Trinn {n} / {total}",
"Welcome" : "Velkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfigurer LaunchPad-instansen din med lagring, grupperekkefølge, demodata, administratorroller og bunntekstinnstillinger.",
- "Storage backend" : "Lagringstjeneste",
- "Choose how LaunchPad stores dashboard content." : "Velg hvordan LaunchPad lagrer kontrollpanelinnhold.",
- "Database (default)" : "Database (standard)",
- "Store dashboard content in the LaunchPad database table." : "Lagre kontrollpanelinnhold i LaunchPad-databasetabellen.",
- "GroupFolder (recommended for org use)" : "GroupFolder (anbefalt for organisasjonsbruk)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Lagre kontrollpanelinnhold i Nextcloud GroupFolders for samarbeidstilgang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder-appen er ikke installert. Installer «Nextcloud GroupFolders» for å bruke dette alternativet.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Velg rekkefølgen Nextcloud-grupper vises i når LaunchPad ruter brukere til et arbeidsområde.",
"Demo data" : "Demodata",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Demodata-utstillingene vil vises her når demo-data-showcases-funksjonen leveres. For nå er dette trinnet kun informativt.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Fullfør",
"Run setup wizard" : "Kjør oppsettsveiviser",
"Run setup wizard again" : "Kjør oppsettsveiviseren på nytt",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Kom i gang med intranettet ditt: velg lagring, konfigurer grupper, installer demodata og sett opp administratorroller.",
"Container" : "Beholder",
"Padding" : "Innvendig marg",
"Title (optional)" : "Tittel (valgfri)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurer LaunchPad-instansen din med grupperekkefølge, demodata, administratorroller og bunntekstinnstillinger.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Kom i gang med intranettet ditt: konfigurer grupper, installer demodata og sett opp administratorroller."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/nb.json b/l10n/nb.json
index c15ea424b..8d1cb6905 100644
--- a/l10n/nb.json
+++ b/l10n/nb.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad-oppsettsveiviser",
"Step {n} / {total}": "Trinn {n} / {total}",
"Welcome": "Velkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurer LaunchPad-instansen din med lagring, grupperekkefølge, demodata, administratorroller og bunntekstinnstillinger.",
- "Storage backend": "Lagringsbackend",
- "Choose how LaunchPad stores dashboard content.": "Velg hvordan LaunchPad lagrer dashbordinnhold.",
- "Database (default)": "Database (standard)",
- "Store dashboard content in the LaunchPad database table.": "Lagre dashbordinnhold i LaunchPad-databasetabellen.",
- "GroupFolder (recommended for org use)": "GroupFolder (anbefalt for organisasjonsbruk)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Lagre dashbordinnhold i Nextcloud GroupFolders for samarbeidstilgang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder-appen er ikke installert. Installer «Nextcloud GroupFolders» for å bruke dette alternativet.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Velg rekkefølgen Nextcloud-grupper vises i når LaunchPad ruter brukere til et arbeidsområde.",
"Demo data": "Demodata",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Demodata-utstillingene vises her når demo-data-showcases-funksjonen lanseres. For nå er dette trinnet kun informativt.",
@@ -953,7 +945,6 @@
"Finish": "Fullfør",
"Run setup wizard": "Kjør oppsettsveiviser",
"Run setup wizard again": "Kjør oppsettsveiviser på nytt",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Kom i gang med intranettet ditt: velg lagring, konfigurer grupper, installer demodata og sett opp administratorroller.",
"Container": "Beholder",
"Padding": "Innvendig marg",
"Title (optional)": "Tittel (valgfritt)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurer LaunchPad-instansen din med grupperekkefølge, demodata, administratorroller og bunntekstinnstillinger.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Kom i gang med intranettet ditt: konfigurer grupper, installer demodata og sett opp administratorroller."
}
}
diff --git a/l10n/nl.js b/l10n/nl.js
index d7a189596..bb0e8db5b 100644
--- a/l10n/nl.js
+++ b/l10n/nl.js
@@ -860,14 +860,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad installatiewizard",
"Step {n} / {total}" : "Stap {n} / {total}",
"Welcome" : "Welkom",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configureer je LaunchPad met opslag, groepvolgorde, demo-data, beheerdersrollen en voettekstinstellingen.",
- "Storage backend" : "Opslag-backend",
- "Choose how LaunchPad stores dashboard content." : "Kies hoe LaunchPad dashboardinhoud opslaat.",
- "Database (default)" : "Database (standaard)",
- "Store dashboard content in the LaunchPad database table." : "Sla dashboardinhoud op in de LaunchPad-databasetabel.",
- "GroupFolder (recommended for org use)" : "GroupFolder (aanbevolen voor organisaties)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Sla dashboardinhoud op in Nextcloud GroupFolders voor gedeelde toegang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "De GroupFolder-app is niet geïnstalleerd. Installeer 'Nextcloud GroupFolders' om deze optie te gebruiken.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Kies de volgorde waarin Nextcloud-groepen verschijnen wanneer LaunchPad gebruikers naar een werkruimte stuurt.",
"Demo data" : "Demo-data",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "De demo-showcases verschijnen hier zodra de demo-data-showcases-capability beschikbaar is. Deze stap is voorlopig alleen ter informatie.",
@@ -886,7 +878,6 @@ OC.L10N.register(
"Finish" : "Voltooien",
"Run setup wizard" : "Installatiewizard starten",
"Run setup wizard again" : "Installatiewizard opnieuw starten",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Start je intranet: kies opslag, configureer groepen, installeer demo-data en stel beheerdersrollen in.",
"Container" : "Container",
"Padding" : "Opvulling",
"Title (optional)" : "Titel (optioneel)",
@@ -1411,7 +1402,9 @@ OC.L10N.register(
"Personal settings" : "Persoonlijke instellingen",
"Store" : "Store",
"Reports" : "Rapporten",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configureer je LaunchPad met groepvolgorde, demo-data, beheerdersrollen en voettekstinstellingen.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Start je intranet: configureer groepen, installeer demo-data en stel beheerdersrollen in."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/nl.json b/l10n/nl.json
index 80cbd6ff0..668f855a9 100644
--- a/l10n/nl.json
+++ b/l10n/nl.json
@@ -866,14 +866,6 @@
"LaunchPad setup wizard": "LaunchPad installatiewizard",
"Step {n} / {total}": "Stap {n} / {total}",
"Welcome": "Welkom",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configureer je LaunchPad met opslag, groepvolgorde, demo-data, beheerdersrollen en voettekstinstellingen.",
- "Storage backend": "Opslag-backend",
- "Choose how LaunchPad stores dashboard content.": "Kies hoe LaunchPad dashboardinhoud opslaat.",
- "Database (default)": "Database (standaard)",
- "Store dashboard content in the LaunchPad database table.": "Sla dashboardinhoud op in de LaunchPad-databasetabel.",
- "GroupFolder (recommended for org use)": "GroupFolder (aanbevolen voor organisaties)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Sla dashboardinhoud op in Nextcloud GroupFolders voor gedeelde toegang.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "De GroupFolder-app is niet geïnstalleerd. Installeer 'Nextcloud GroupFolders' om deze optie te gebruiken.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Kies de volgorde waarin Nextcloud-groepen verschijnen wanneer LaunchPad gebruikers naar een werkruimte stuurt.",
"Demo data": "Demo-data",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "De demo-showcases verschijnen hier zodra de demo-data-showcases-capability beschikbaar is. Deze stap is voorlopig alleen ter informatie.",
@@ -892,7 +884,6 @@
"Finish": "Voltooien",
"Run setup wizard": "Installatiewizard starten",
"Run setup wizard again": "Installatiewizard opnieuw starten",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Start je intranet: kies opslag, configureer groepen, installeer demo-data en stel beheerdersrollen in.",
"Container": "Container",
"Padding": "Opvulling",
"Title (optional)": "Titel (optioneel)",
@@ -1388,6 +1379,8 @@
"Personal settings": "Persoonlijke instellingen",
"Store": "Store",
"Reports": "Rapporten",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configureer je LaunchPad met groepvolgorde, demo-data, beheerdersrollen en voettekstinstellingen.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Start je intranet: configureer groepen, installeer demo-data en stel beheerdersrollen in."
}
}
diff --git a/l10n/pl.js b/l10n/pl.js
index 9a8705cf1..4eb51dde3 100644
--- a/l10n/pl.js
+++ b/l10n/pl.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Kreator konfiguracji LaunchPad",
"Step {n} / {total}" : "Krok {n} / {total}",
"Welcome" : "Witamy",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Skonfiguruj swoją instancję LaunchPad z ustawieniami magazynu, kolejności grup, danych demonstracyjnych, ról administratorów i stopki.",
- "Storage backend" : "Zaplecze magazynu",
- "Choose how LaunchPad stores dashboard content." : "Wybierz, w jaki sposób LaunchPad przechowuje treść pulpitu.",
- "Database (default)" : "Baza danych (domyślnie)",
- "Store dashboard content in the LaunchPad database table." : "Przechowuj treść pulpitu w tabeli bazy danych LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (zalecane do użytku organizacyjnego)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Przechowuj treść pulpitu w folderach GroupFolders Nextcloud w celu wspólnego dostępu.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplikacja GroupFolder nie jest zainstalowana. Zainstaluj „Nextcloud GroupFolders”, aby skorzystać z tej opcji.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Wybierz kolejność, w jakiej grupy Nextcloud pojawiają się, gdy LaunchPad kieruje użytkowników do obszaru roboczego.",
"Demo data" : "Dane demonstracyjne",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Prezentacje danych demonstracyjnych pojawią się tutaj, gdy zostanie wdrożona funkcja demo-data-showcases. Na razie ten krok ma charakter wyłącznie informacyjny.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Zakończ",
"Run setup wizard" : "Uruchom kreatora konfiguracji",
"Run setup wizard again" : "Uruchom kreatora konfiguracji ponownie",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Rozpocznij konfigurację swojego intranetu: wybierz magazyn, skonfiguruj grupy, zainstaluj dane demonstracyjne i skonfiguruj role administratorów.",
"Container" : "Kontener",
"Padding" : "Wypełnienie",
"Title (optional)" : "Tytuł (opcjonalny)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Skonfiguruj swoją instancję LaunchPad, ustawiając kolejność grup, dane demonstracyjne, role administratora i ustawienia stopki.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Rozpocznij pracę z intranetem: skonfiguruj grupy, zainstaluj dane demonstracyjne i skonfiguruj role administratora."
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
);
diff --git a/l10n/pl.json b/l10n/pl.json
index fe9f9f1da..c74afdc5c 100644
--- a/l10n/pl.json
+++ b/l10n/pl.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Kreator konfiguracji LaunchPad",
"Step {n} / {total}": "Krok {n} / {total}",
"Welcome": "Witamy",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Skonfiguruj swoją instancję LaunchPad, ustawiając magazyn, kolejność grup, dane demonstracyjne, role administratora i ustawienia stopki.",
- "Storage backend": "Zaplecze magazynu",
- "Choose how LaunchPad stores dashboard content.": "Wybierz, jak LaunchPad przechowuje zawartość pulpitów nawigacyjnych.",
- "Database (default)": "Baza danych (domyślnie)",
- "Store dashboard content in the LaunchPad database table.": "Przechowuj zawartość pulpitu nawigacyjnego w tabeli bazy danych LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (zalecane do użytku organizacyjnego)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Przechowuj zawartość pulpitu nawigacyjnego w GroupFolder Nextcloud, aby zapewnić wspólny dostęp.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplikacja GroupFolder nie jest zainstalowana. Zainstaluj „Nextcloud GroupFolders”, aby skorzystać z tej opcji.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Wybierz kolejność, w jakiej pojawiają się grupy Nextcloud, gdy LaunchPad kieruje użytkowników do obszaru roboczego.",
"Demo data": "Dane demonstracyjne",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Prezentacje danych demonstracyjnych pojawią się tutaj, gdy zostanie dostarczona funkcja demo-data-showcases. Na razie ten krok ma charakter wyłącznie informacyjny.",
@@ -954,7 +946,6 @@
"Finish": "Zakończ",
"Run setup wizard": "Uruchom kreator konfiguracji",
"Run setup wizard again": "Uruchom kreator konfiguracji ponownie",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Rozpocznij pracę z intranetem: wybierz magazyn, skonfiguruj grupy, zainstaluj dane demonstracyjne i skonfiguruj role administratora.",
"Container": "Kontener",
"Padding": "Dopełnienie",
"Title (optional)": "Tytuł (opcjonalny)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Skonfiguruj swoją instancję LaunchPad, ustawiając kolejność grup, dane demonstracyjne, role administratora i ustawienia stopki.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Rozpocznij pracę z intranetem: skonfiguruj grupy, zainstaluj dane demonstracyjne i skonfiguruj role administratora."
}
}
diff --git a/l10n/pt.js b/l10n/pt.js
index 274bf36e1..342b620be 100644
--- a/l10n/pt.js
+++ b/l10n/pt.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Assistente de configuração do LaunchPad",
"Step {n} / {total}" : "Passo {n} / {total}",
"Welcome" : "Bem-vindo",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configure a sua instância do LaunchPad com armazenamento, ordenação de grupos, dados de demonstração, funções de administrador e definições de rodapé.",
- "Storage backend" : "Servidor de armazenamento",
- "Choose how LaunchPad stores dashboard content." : "Escolha como o LaunchPad armazena o conteúdo dos painéis.",
- "Database (default)" : "Base de dados (predefinição)",
- "Store dashboard content in the LaunchPad database table." : "Armazenar o conteúdo dos painéis na tabela da base de dados do LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (recomendado para uso organizacional)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Armazenar o conteúdo dos painéis em GroupFolders do Nextcloud para acesso colaborativo.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "A aplicação GroupFolder não está instalada. Instale 'Nextcloud GroupFolders' para utilizar esta opção.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Escolha a ordem em que os grupos do Nextcloud aparecem quando o LaunchPad encaminha os utilizadores para um espaço de trabalho.",
"Demo data" : "Dados de demonstração",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "As mostras de dados de demonstração aparecerão aqui assim que a capacidade demo-data-showcases for lançada. Por agora, este passo é apenas informativo.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Concluir",
"Run setup wizard" : "Executar assistente de configuração",
"Run setup wizard again" : "Executar novamente o assistente de configuração",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Comece a sua intranet: escolha o armazenamento, configure grupos, instale dados de demonstração e configure funções de administrador.",
"Container" : "Contentor",
"Padding" : "Espaçamento interno",
"Title (optional)" : "Título (opcional)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configure a sua instância do LaunchPad com ordenação de grupos, dados de demonstração, funções de administrador e definições de rodapé.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Coloque a sua intranet a funcionar: configure grupos, instale dados de demonstração e configure as funções de administrador."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/pt.json b/l10n/pt.json
index 8c1f0535d..3692e0563 100644
--- a/l10n/pt.json
+++ b/l10n/pt.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Assistente de configuração do LaunchPad",
"Step {n} / {total}": "Passo {n} / {total}",
"Welcome": "Bem-vindo",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configure a sua instância do LaunchPad com armazenamento, ordenação de grupos, dados de demonstração, funções de administrador e definições de rodapé.",
- "Storage backend": "Serviço de armazenamento",
- "Choose how LaunchPad stores dashboard content.": "Escolha como o LaunchPad armazena o conteúdo dos painéis.",
- "Database (default)": "Base de dados (predefinição)",
- "Store dashboard content in the LaunchPad database table.": "Armazenar o conteúdo dos painéis na tabela da base de dados do LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (recomendado para uso organizacional)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Armazenar o conteúdo dos painéis em GroupFolders do Nextcloud para acesso colaborativo.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "A aplicação GroupFolder não está instalada. Instale 'Nextcloud GroupFolders' para utilizar esta opção.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Escolha a ordem pela qual os grupos do Nextcloud aparecem quando o LaunchPad encaminha os utilizadores para um espaço de trabalho.",
"Demo data": "Dados de demonstração",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "As demonstrações de dados de exemplo aparecerão aqui assim que a funcionalidade demo-data-showcases for disponibilizada. Por agora, este passo é apenas informativo.",
@@ -953,7 +945,6 @@
"Finish": "Concluir",
"Run setup wizard": "Executar assistente de configuração",
"Run setup wizard again": "Executar novamente o assistente de configuração",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Coloque a sua intranet a funcionar: escolha o armazenamento, configure grupos, instale dados de demonstração e configure as funções de administrador.",
"Container": "Contentor",
"Padding": "Espaçamento interno",
"Title (optional)": "Título (opcional)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configure a sua instância do LaunchPad com ordenação de grupos, dados de demonstração, funções de administrador e definições de rodapé.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Coloque a sua intranet a funcionar: configure grupos, instale dados de demonstração e configure as funções de administrador."
}
}
diff --git a/l10n/rm.js b/l10n/rm.js
index da9498be9..ca0635814 100644
--- a/l10n/rm.js
+++ b/l10n/rm.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Assistent da configuraziun da LaunchPad",
"Step {n} / {total}" : "Pass {n} / {total}",
"Welcome" : "Bainvegni",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configurai Sia instanza da LaunchPad cun memorisaziun, urden da las gruppas, datas demo, rollas d'administratur e parameters dal pe da pagina.",
- "Storage backend" : "Backend da memorisaziun",
- "Choose how LaunchPad stores dashboard content." : "Tscherni co che LaunchPad memorisescha il cuntegn da las tablas da cumond.",
- "Database (default)" : "Banca da datas (standard)",
- "Store dashboard content in the LaunchPad database table." : "Memorisar il cuntegn da las tablas da cumond en la tabella da la banca da datas da LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (recumandà per l'utilisaziun en organisaziuns)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Memorisar il cuntegn da las tablas da cumond en ils GroupFolders da Nextcloud per access collaborativ.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "L'applicaziun GroupFolder n'è betg installada. Installai 'Nextcloud GroupFolders' per utilisar questa opziun.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Tscherni l'urden en il qual las gruppas da Nextcloud cumparan cura che LaunchPad maina ils utilisaders ad in spazi da lavur.",
"Demo data" : "Datas demo",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Las demonstraziuns da datas demo cumparan qua uschespert ch'il capацitad demo-data-showcases vegn furnida. Per il mument è quest pass mo informativ.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Finir",
"Run setup wizard" : "Exequir l'assistent da configuraziun",
"Run setup wizard again" : "Exequir l'assistent da configuraziun anc ina giada",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Mettai en funcziun Sia intranet: tscherni la memorisaziun, configurai las gruppas, installai datas demo, e definì las rollas d'administratur.",
"Container" : "Container",
"Padding" : "Distanza interna",
"Title (optional)" : "Titel (facultativ)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configurai vossa instanza da LaunchPad cun urden da las gruppas, datas demo, rols dad administratur e parameters dal pe da pagina.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Cumenzai voss intranet: configurai las gruppas, installai datas demo, e configurai ils rols dad administratur."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/rm.json b/l10n/rm.json
index ce4b9a7dc..34f8e5f41 100644
--- a/l10n/rm.json
+++ b/l10n/rm.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Assistent d'installaziun da LaunchPad",
"Step {n} / {total}": "Pass {n} / {total}",
"Welcome": "Bainvegni",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configurai vossa instanza da LaunchPad cun memorisaziun, urden da las gruppas, datas demo, rols dad administratur e parameters dal pe da pagina.",
- "Storage backend": "Backend da memorisaziun",
- "Choose how LaunchPad stores dashboard content.": "Tscherni co che LaunchPad memorisescha il cuntegn dal tabladi.",
- "Database (default)": "Banca da datas (predefinì)",
- "Store dashboard content in the LaunchPad database table.": "Memorisar il cuntegn dal tabladi en la tabella da la banca da datas da LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (recumandà per l'utilisaziun organisatorica)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Memorisar il cuntegn dal tabladi en ils GroupFolders da Nextcloud per in access collaborativ.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "L'applicaziun GroupFolder n'è betg installada. Installai 'Nextcloud GroupFolders' per utilisar questa opziun.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Tscherni l'urden en il qual las gruppas da Nextcloud cumparan cura che LaunchPad mussa als utilisaders ina zona da lavur.",
"Demo data": "Datas demo",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Las demonstraziuns da datas demo cumparan qua uschespert che la funcziunalitad demo-data-showcases è disponibla. Per il mument è quest pass mo informativ.",
@@ -953,7 +945,6 @@
"Finish": "Finir",
"Run setup wizard": "Exequir l'assistent d'installaziun",
"Run setup wizard again": "Exequir danovamain l'assistent d'installaziun",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Cumenzai voss intranet: tscherni la memorisaziun, configurai las gruppas, installai datas demo, e configurai ils rols dad administratur.",
"Container": "Container",
"Padding": "Spazi intern",
"Title (optional)": "Titel (facultativ)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configurai vossa instanza da LaunchPad cun urden da las gruppas, datas demo, rols dad administratur e parameters dal pe da pagina.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Cumenzai voss intranet: configurai las gruppas, installai datas demo, e configurai ils rols dad administratur."
}
}
diff --git a/l10n/ro.js b/l10n/ro.js
index 537e0dd8a..030aa81ba 100644
--- a/l10n/ro.js
+++ b/l10n/ro.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Asistent de configurare LaunchPad",
"Step {n} / {total}" : "Pasul {n} / {total}",
"Welcome" : "Bine ați venit",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Configurați instanța dumneavoastră LaunchPad cu stocare, ordonarea grupurilor, date demonstrative, roluri de administrator și setări de subsol.",
- "Storage backend" : "Backend de stocare",
- "Choose how LaunchPad stores dashboard content." : "Alegeți modul în care LaunchPad stochează conținutul tablourilor de bord.",
- "Database (default)" : "Bază de date (implicit)",
- "Store dashboard content in the LaunchPad database table." : "Stocați conținutul tabloului de bord în tabelul de bază de date LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (recomandat pentru uz organizațional)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Stocați conținutul tabloului de bord în GroupFolders Nextcloud pentru acces colaborativ.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplicația GroupFolder nu este instalată. Instalați „Nextcloud GroupFolders” pentru a utiliza această opțiune.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Alegeți ordinea în care apar grupurile Nextcloud atunci când LaunchPad direcționează utilizatorii către un spațiu de lucru.",
"Demo data" : "Date demonstrative",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Prezentările cu date demonstrative vor apărea aici odată ce capacitatea demo-data-showcases este livrată. Deocamdată, acest pas este doar informativ.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Finalizare",
"Run setup wizard" : "Rulați asistentul de configurare",
"Run setup wizard again" : "Rulați din nou asistentul de configurare",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Porniți intranetul dumneavoastră: alegeți stocarea, configurați grupurile, instalați date demonstrative și configurați rolurile de administrator.",
"Container" : "Container",
"Padding" : "Spațiere interioară",
"Title (optional)" : "Titlu (opțional)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Configurați instanța dvs. LaunchPad cu ordonarea grupurilor, date demonstrative, roluri de administrator și setări de subsol.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Începeți cu intranetul dvs.: configurați grupurile, instalați date demonstrative și configurați rolurile de administrator."
},
"nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);"
);
diff --git a/l10n/ro.json b/l10n/ro.json
index 8864aaf78..6e91e3bb6 100644
--- a/l10n/ro.json
+++ b/l10n/ro.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Asistent de configurare LaunchPad",
"Step {n} / {total}": "Pasul {n} / {total}",
"Welcome": "Bun venit",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Configurați instanța dvs. LaunchPad cu stocare, ordonarea grupurilor, date demonstrative, roluri de administrator și setări de subsol.",
- "Storage backend": "Sistem de stocare",
- "Choose how LaunchPad stores dashboard content.": "Alegeți modul în care LaunchPad stochează conținutul tabloului de bord.",
- "Database (default)": "Bază de date (implicit)",
- "Store dashboard content in the LaunchPad database table.": "Stochează conținutul tabloului de bord în tabelul bazei de date LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (recomandat pentru utilizare organizațională)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Stochează conținutul tabloului de bord în GroupFolders Nextcloud pentru acces colaborativ.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplicația GroupFolder nu este instalată. Instalați „Nextcloud GroupFolders” pentru a utiliza această opțiune.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Alegeți ordinea în care apar grupurile Nextcloud când LaunchPad direcționează utilizatorii către un spațiu de lucru.",
"Demo data": "Date demonstrative",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Vitrinele de date demonstrative vor apărea aici odată ce funcționalitatea demo-data-showcases este lansată. Deocamdată, acest pas este doar informativ.",
@@ -954,7 +946,6 @@
"Finish": "Finalizează",
"Run setup wizard": "Rulează asistentul de configurare",
"Run setup wizard again": "Rulează din nou asistentul de configurare",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Începeți cu intranetul dvs.: alegeți stocarea, configurați grupurile, instalați date demonstrative și configurați rolurile de administrator.",
"Container": "Container",
"Padding": "Spațiere internă",
"Title (optional)": "Titlu (opțional)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Configurați instanța dvs. LaunchPad cu ordonarea grupurilor, date demonstrative, roluri de administrator și setări de subsol.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Începeți cu intranetul dvs.: configurați grupurile, instalați date demonstrative și configurați rolurile de administrator."
}
}
diff --git a/l10n/ru.js b/l10n/ru.js
index fb8047a75..befa7605d 100644
--- a/l10n/ru.js
+++ b/l10n/ru.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Мастер настройки LaunchPad",
"Step {n} / {total}" : "Шаг {n} / {total}",
"Welcome" : "Добро пожаловать",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Настройте свой экземпляр LaunchPad с хранилищем, порядком групп, демонстрационными данными, ролями администратора и настройками нижнего колонтитула.",
- "Storage backend" : "Серверная часть хранилища",
- "Choose how LaunchPad stores dashboard content." : "Выберите, как LaunchPad хранит содержимое панелей управления.",
- "Database (default)" : "База данных (по умолчанию)",
- "Store dashboard content in the LaunchPad database table." : "Хранить содержимое панелей управления в таблице базы данных LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (рекомендуется для использования в организации)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Хранить содержимое панелей управления в GroupFolders Nextcloud для совместного доступа.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Приложение GroupFolder не установлено. Установите «Nextcloud GroupFolders», чтобы использовать эту опцию.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Выберите порядок, в котором появляются группы Nextcloud, когда LaunchPad направляет пользователей в рабочее пространство.",
"Demo data" : "Демонстрационные данные",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Демонстрации демонстрационных данных появятся здесь, как только будет выпущена возможность demo-data-showcases. Пока этот шаг носит исключительно информационный характер.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Готово",
"Run setup wizard" : "Запустить мастер настройки",
"Run setup wizard again" : "Запустить мастер настройки снова",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Запустите свой интранет: выберите хранилище, настройте группы, установите демонстрационные данные и настройте роли администратора.",
"Container" : "Контейнер",
"Padding" : "Отступ",
"Title (optional)" : "Заголовок (необязательно)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Настройте свой экземпляр LaunchPad с помощью порядка групп, демонстрационных данных, ролей администраторов и настроек нижнего колонтитула.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Запустите свой интранет: настройте группы, установите демонстрационные данные и настройте роли администраторов."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
);
diff --git a/l10n/ru.json b/l10n/ru.json
index db33b6f40..c788cd4bc 100644
--- a/l10n/ru.json
+++ b/l10n/ru.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Мастер настройки LaunchPad",
"Step {n} / {total}": "Шаг {n} / {total}",
"Welcome": "Добро пожаловать",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Настройте свой экземпляр LaunchPad с помощью параметров хранилища, порядка групп, демонстрационных данных, ролей администраторов и настроек нижнего колонтитула.",
- "Storage backend": "Бэкенд хранилища",
- "Choose how LaunchPad stores dashboard content.": "Выберите, как LaunchPad хранит содержимое дашбордов.",
- "Database (default)": "База данных (по умолчанию)",
- "Store dashboard content in the LaunchPad database table.": "Хранить содержимое дашбордов в таблице базы данных LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (рекомендуется для использования в организации)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Хранить содержимое дашбордов в Nextcloud GroupFolders для совместного доступа.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Приложение GroupFolder не установлено. Установите «Nextcloud GroupFolders», чтобы использовать эту опцию.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Выберите порядок, в котором отображаются группы Nextcloud, когда LaunchPad направляет пользователей в рабочее пространство.",
"Demo data": "Демонстрационные данные",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Демонстрационные примеры данных появятся здесь, как только будет выпущена возможность demo-data-showcases. Пока этот шаг носит только информационный характер.",
@@ -954,7 +946,6 @@
"Finish": "Завершить",
"Run setup wizard": "Запустить мастер настройки",
"Run setup wizard again": "Запустить мастер настройки снова",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Запустите свой интранет: выберите хранилище, настройте группы, установите демонстрационные данные и настройте роли администраторов.",
"Container": "Контейнер",
"Padding": "Отступ",
"Title (optional)": "Заголовок (необязательно)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Настройте свой экземпляр LaunchPad с помощью порядка групп, демонстрационных данных, ролей администраторов и настроек нижнего колонтитула.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Запустите свой интранет: настройте группы, установите демонстрационные данные и настройте роли администраторов."
}
}
diff --git a/l10n/sk.js b/l10n/sk.js
index 662b55503..2429a34ef 100644
--- a/l10n/sk.js
+++ b/l10n/sk.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Sprievodca nastavením LaunchPad",
"Step {n} / {total}" : "Krok {n} / {total}",
"Welcome" : "Vitajte",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Nakonfigurujte svoju inštanciu LaunchPad pomocou úložiska, poradia skupín, demo údajov, administrátorskych rol a nastavení päty.",
- "Storage backend" : "Backend úložiska",
- "Choose how LaunchPad stores dashboard content." : "Vyberte, ako LaunchPad ukladá obsah násteniek.",
- "Database (default)" : "Databáza (predvolené)",
- "Store dashboard content in the LaunchPad database table." : "Ukladať obsah násteniek do databázovej tabuľky LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (odporúčané pre organizačné použitie)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Ukladať obsah násteniek do GroupFolders Nextcloud pre kolaboratívny prístup.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplikácia GroupFolder nie je nainštalovaná. Na použitie tejto možnosti nainštalujte „Nextcloud GroupFolders“.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Vyberte poradie, v ktorom sa skupiny Nextcloud zobrazujú, keď LaunchPad smeruje používateľov do pracovného priestoru.",
"Demo data" : "Demo údaje",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Ukážky demo údajov sa tu zobrazia po dodaní funkcie demo-data-showcases. Zatiaľ je tento krok iba informatívny.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Dokončiť",
"Run setup wizard" : "Spustiť sprievodcu nastavením",
"Run setup wizard again" : "Spustiť sprievodcu nastavením znova",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Začnite s vaším intranetom: vyberte úložisko, nakonfigurujte skupiny, nainštalujte demo údaje a nastavte administrátorské roly.",
"Container" : "Kontajner",
"Padding" : "Vnútorný okraj",
"Title (optional)" : "Názov (voliteľné)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Nakonfigurujte svoju inštanciu LaunchPad s usporiadaním skupín, demo údajmi, rolami administrátora a nastaveniami päty.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Spustite svoj intranet: nakonfigurujte skupiny, nainštalujte demo údaje a nastavte roly administrátora."
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
);
diff --git a/l10n/sk.json b/l10n/sk.json
index f7ae46bbb..e7fc1d922 100644
--- a/l10n/sk.json
+++ b/l10n/sk.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Sprievodca nastavením LaunchPad",
"Step {n} / {total}": "Krok {n} / {total}",
"Welcome": "Vitajte",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Nakonfigurujte svoju inštanciu LaunchPad s úložiskom, usporiadaním skupín, demo údajmi, rolami administrátora a nastaveniami päty.",
- "Storage backend": "Backend úložiska",
- "Choose how LaunchPad stores dashboard content.": "Vyberte, ako LaunchPad ukladá obsah nástenky.",
- "Database (default)": "Databáza (predvolené)",
- "Store dashboard content in the LaunchPad database table.": "Ukladať obsah nástenky do databázovej tabuľky LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (odporúčané pre organizačné použitie)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Ukladať obsah nástenky v GroupFolders Nextcloud pre kolaboratívny prístup.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplikácia GroupFolder nie je nainštalovaná. Na použitie tejto možnosti nainštalujte „Nextcloud GroupFolders“.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Vyberte poradie, v akom sa zobrazujú skupiny Nextcloud, keď LaunchPad smeruje používateľov do pracovného priestoru.",
"Demo data": "Demo údaje",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Ukážky demo údajov sa tu zobrazia po vydaní funkcie demo-data-showcases. Zatiaľ je tento krok iba informačný.",
@@ -954,7 +946,6 @@
"Finish": "Dokončiť",
"Run setup wizard": "Spustiť sprievodcu nastavením",
"Run setup wizard again": "Spustiť sprievodcu nastavením znova",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Spustite svoj intranet: vyberte úložisko, nakonfigurujte skupiny, nainštalujte demo údaje a nastavte roly administrátora.",
"Container": "Kontajner",
"Padding": "Vnútorné odsadenie",
"Title (optional)": "Názov (voliteľné)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Nakonfigurujte svoju inštanciu LaunchPad s usporiadaním skupín, demo údajmi, rolami administrátora a nastaveniami päty.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Spustite svoj intranet: nakonfigurujte skupiny, nainštalujte demo údaje a nastavte roly administrátora."
}
}
diff --git a/l10n/sl.js b/l10n/sl.js
index 46c48e27a..9b3dbeb81 100644
--- a/l10n/sl.js
+++ b/l10n/sl.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Čarovnik za nastavitev LaunchPad",
"Step {n} / {total}" : "Korak {n} / {total}",
"Welcome" : "Dobrodošli",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Nastavite svoj primerek LaunchPad s shrambo, vrstnim redom skupin, demonstracijskimi podatki, skrbniškimi vlogami in nastavitvami noge.",
- "Storage backend" : "Zaledje shrambe",
- "Choose how LaunchPad stores dashboard content." : "Izberite, kako LaunchPad shranjuje vsebino nadzornih plošč.",
- "Database (default)" : "Podatkovna zbirka (privzeto)",
- "Store dashboard content in the LaunchPad database table." : "Shranite vsebino nadzorne plošče v tabelo podatkovne zbirke LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (priporočeno za organizacijsko uporabo)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Shranite vsebino nadzorne plošče v Nextcloud GroupFolders za sodelovalni dostop.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplikacija GroupFolder ni nameščena. Za uporabo te možnosti namestite »Nextcloud GroupFolders«.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Izberite vrstni red, v katerem se skupine Nextcloud prikažejo, ko LaunchPad usmerja uporabnike v delovni prostor.",
"Demo data" : "Demonstracijski podatki",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Predstavitve demonstracijskih podatkov se bodo prikazale tukaj, ko bo zmožnost demo-data-showcases na voljo. Za zdaj je ta korak zgolj informativen.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Dokončaj",
"Run setup wizard" : "Zaženi čarovnika za nastavitev",
"Run setup wizard again" : "Znova zaženi čarovnika za nastavitev",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Začnite z intranetom: izberite shrambo, nastavite skupine, namestite demonstracijske podatke in nastavite skrbniške vloge.",
"Container" : "Vsebnik",
"Padding" : "Notranji odmik",
"Title (optional)" : "Naslov (neobvezno)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurirajte svojo instanco LaunchPad z razvrščanjem skupin, demo podatki, skrbniškimi vlogami in nastavitvami noge.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Zaženite svoj intranet: konfigurirajte skupine, namestite demo podatke in nastavite skrbniške vloge."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
);
diff --git a/l10n/sl.json b/l10n/sl.json
index a31dcaa79..b559c7105 100644
--- a/l10n/sl.json
+++ b/l10n/sl.json
@@ -929,14 +929,6 @@
"LaunchPad setup wizard": "Čarovnik za namestitev LaunchPad",
"Step {n} / {total}": "Korak {n} / {total}",
"Welcome": "Dobrodošli",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurirajte svojo instanco LaunchPad s shrambo, razvrščanjem skupin, demo podatki, skrbniškimi vlogami in nastavitvami noge.",
- "Storage backend": "Zaledje shrambe",
- "Choose how LaunchPad stores dashboard content.": "Izberite, kako LaunchPad shranjuje vsebino nadzornih plošč.",
- "Database (default)": "Zbirka podatkov (privzeto)",
- "Store dashboard content in the LaunchPad database table.": "Shrani vsebino nadzorne plošče v tabelo zbirke podatkov LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (priporočeno za organizacijsko uporabo)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Shrani vsebino nadzorne plošče v Nextcloud GroupFolders za skupni dostop.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplikacija GroupFolder ni nameščena. Za uporabo te možnosti namestite 'Nextcloud GroupFolders'.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Izberite vrstni red, v katerem se prikažejo skupine Nextcloud, ko LaunchPad usmeri uporabnike v delovni prostor.",
"Demo data": "Demo podatki",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Predstavitve demo podatkov se bodo prikazale tukaj, ko bo dobavljena zmožnost demo-data-showcases. Za zdaj je ta korak samo informativen.",
@@ -955,7 +947,6 @@
"Finish": "Dokončaj",
"Run setup wizard": "Zaženi čarovnika za namestitev",
"Run setup wizard again": "Znova zaženi čarovnika za namestitev",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Zaženite svoj intranet: izberite shrambo, konfigurirajte skupine, namestite demo podatke in nastavite skrbniške vloge.",
"Container": "Vsebnik",
"Padding": "Notranji rob",
"Title (optional)": "Naslov (neobvezno)",
@@ -1332,6 +1323,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurirajte svojo instanco LaunchPad z razvrščanjem skupin, demo podatki, skrbniškimi vlogami in nastavitvami noge.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Zaženite svoj intranet: konfigurirajte skupine, namestite demo podatke in nastavite skrbniške vloge."
}
}
diff --git a/l10n/sq.js b/l10n/sq.js
index 27e4e125d..128d63521 100644
--- a/l10n/sq.js
+++ b/l10n/sq.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Asistenti i konfigurimit të LaunchPad",
"Step {n} / {total}" : "Hapi {n} / {total}",
"Welcome" : "Mirë se vini",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfiguroni instancën tuaj LaunchPad me ruajtjen, renditjen e grupeve, të dhënat demo, rolet e administratorit dhe cilësimet e fundfaqes.",
- "Storage backend" : "Backend-i i ruajtjes",
- "Choose how LaunchPad stores dashboard content." : "Zgjidhni se si LaunchPad ruan përmbajtjen e pultit.",
- "Database (default)" : "Bazë të dhënash (e parazgjedhur)",
- "Store dashboard content in the LaunchPad database table." : "Ruaj përmbajtjen e pultit në tabelën e bazës së të dhënave të LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (e rekomanduar për përdorim organizate)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Ruaj përmbajtjen e pultit në GroupFolders të Nextcloud për qasje bashkëpunuese.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Aplikacioni GroupFolder nuk është i instaluar. Instaloni 'Nextcloud GroupFolders' për të përdorur këtë opsion.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Zgjidhni renditjen me të cilën shfaqen grupet e Nextcloud kur LaunchPad i drejton përdoruesit te një hapësirë pune.",
"Demo data" : "Të dhëna demo",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Vitrinat e të dhënave demo do të shfaqen këtu pasi të lëshohet aftësia demo-data-showcases. Për momentin ky hap është vetëm informues.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Përfundo",
"Run setup wizard" : "Ekzekuto asistentin e konfigurimit",
"Run setup wizard again" : "Ekzekuto sërish asistentin e konfigurimit",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Nisni intranetin tuaj: zgjidhni ruajtjen, konfiguroni grupet, instaloni të dhënat demo dhe konfiguroni rolet e administratorit.",
"Container" : "Kontejner",
"Padding" : "Mbushje",
"Title (optional)" : "Titull (opsional)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfiguroni instancën tuaj LaunchPad me renditjen e grupeve, të dhënat demo, rolet e administratorit dhe cilësimet e fundpamjes.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Vini në punë intranetin tuaj: konfiguroni grupet, instaloni të dhëna demo dhe vendosni rolet e administratorit."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/sq.json b/l10n/sq.json
index 3e1738c79..213fafa2e 100644
--- a/l10n/sq.json
+++ b/l10n/sq.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "Magjistari i konfigurimit të LaunchPad",
"Step {n} / {total}": "Hapi {n} / {total}",
"Welcome": "Mirë se vini",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfiguroni instancën tuaj LaunchPad me ruajtjen, renditjen e grupeve, të dhënat demo, rolet e administratorit dhe cilësimet e fundpamjes.",
- "Storage backend": "Sistemi i ruajtjes",
- "Choose how LaunchPad stores dashboard content.": "Zgjidhni se si LaunchPad ruan përmbajtjen e pultit.",
- "Database (default)": "Bazë të dhënash (parazgjedhje)",
- "Store dashboard content in the LaunchPad database table.": "Ruaj përmbajtjen e pultit në tabelën e bazës së të dhënave të LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (rekomandohet për përdorim organizativ)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Ruaj përmbajtjen e pultit në GroupFolders të Nextcloud për qasje bashkëpunuese.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Aplikacioni GroupFolder nuk është i instaluar. Instaloni 'Nextcloud GroupFolders' për të përdorur këtë opsion.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Zgjidhni renditjen me të cilën shfaqen grupet Nextcloud kur LaunchPad i drejton përdoruesit te një hapësirë pune.",
"Demo data": "Të dhëna demo",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Vitrinat e të dhënave demo do të shfaqen këtu sapo të ofrohet aftësia demo-data-showcases. Për momentin ky hap është vetëm informativ.",
@@ -953,7 +945,6 @@
"Finish": "Përfundo",
"Run setup wizard": "Ekzekuto magjistarin e konfigurimit",
"Run setup wizard again": "Ekzekuto sërish magjistarin e konfigurimit",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Vini në punë intranetin tuaj: zgjidhni ruajtjen, konfiguroni grupet, instaloni të dhëna demo dhe vendosni rolet e administratorit.",
"Container": "Kontejner",
"Padding": "Mbushje",
"Title (optional)": "Titull (opsional)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfiguroni instancën tuaj LaunchPad me renditjen e grupeve, të dhënat demo, rolet e administratorit dhe cilësimet e fundpamjes.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Vini në punë intranetin tuaj: konfiguroni grupet, instaloni të dhëna demo dhe vendosni rolet e administratorit."
}
}
diff --git a/l10n/sr.js b/l10n/sr.js
index d038903e7..0e846418e 100644
--- a/l10n/sr.js
+++ b/l10n/sr.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad чаробњак за подешавање",
"Step {n} / {total}" : "Корак {n} / {total}",
"Welcome" : "Добродошли",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Подесите своју LaunchPad инстанцу са складиштем, редоследом група, демо подацима, администраторским улогама и подешавањима подножја.",
- "Storage backend" : "Позадинско складиште",
- "Choose how LaunchPad stores dashboard content." : "Изаберите како LaunchPad чува садржај контролне табле.",
- "Database (default)" : "База података (подразумевано)",
- "Store dashboard content in the LaunchPad database table." : "Чувај садржај контролне табле у LaunchPad табели базе података.",
- "GroupFolder (recommended for org use)" : "GroupFolder (препоручено за организациону употребу)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Чувај садржај контролне табле у Nextcloud GroupFolders за колаборативни приступ.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Апликација GroupFolder није инсталирана. Инсталирајте 'Nextcloud GroupFolders' да бисте користили ову опцију.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Изаберите редослед којим се Nextcloud групе појављују када LaunchPad усмерава кориснике ка радном простору.",
"Demo data" : "Демо подаци",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Прикази демо података ће се појавити овде када се испоручи могућност demo-data-showcases. За сада је овај корак само информативан.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Заврши",
"Run setup wizard" : "Покрени чаробњак за подешавање",
"Run setup wizard again" : "Поново покрени чаробњак за подешавање",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Покрените свој интранет: изаберите складиште, подесите групе, инсталирајте демо податке и подесите администраторске улоге.",
"Container" : "Контејнер",
"Padding" : "Унутрашњи размак",
"Title (optional)" : "Наслов (опционо)",
@@ -1354,6 +1345,8 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Подесите своју LaunchPad инстанцу са редоследом група, демо подацима, администраторским улогама и подешавањима подножја.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Покрените свој интранет: подесите групе, инсталирајте демо податке и подесите администраторске улоге."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/l10n/sr.json b/l10n/sr.json
index af33753c4..fab01216a 100644
--- a/l10n/sr.json
+++ b/l10n/sr.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "LaunchPad чаробњак за подешавање",
"Step {n} / {total}": "Корак {n} / {total}",
"Welcome": "Добродошли",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Подесите своју LaunchPad инстанцу са складиштем, редоследом група, демо подацима, администраторским улогама и подешавањима подножја.",
- "Storage backend": "Позадинско складиште",
- "Choose how LaunchPad stores dashboard content.": "Изаберите како LaunchPad чува садржај контролне табле.",
- "Database (default)": "База података (подразумевано)",
- "Store dashboard content in the LaunchPad database table.": "Чувај садржај контролне табле у LaunchPad табели базе података.",
- "GroupFolder (recommended for org use)": "GroupFolder (препоручено за организациону употребу)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Чувај садржај контролне табле у Nextcloud GroupFolders за колаборативни приступ.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Апликација GroupFolder није инсталирана. Инсталирајте 'Nextcloud GroupFolders' да бисте користили ову опцију.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Изаберите редослед којим се Nextcloud групе појављују када LaunchPad усмерава кориснике ка радном простору.",
"Demo data": "Демо подаци",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Прикази демо података ће се појавити овде када се испоручи могућност demo-data-showcases. За сада је овај корак само информативан.",
@@ -954,7 +946,6 @@
"Finish": "Заврши",
"Run setup wizard": "Покрени чаробњак за подешавање",
"Run setup wizard again": "Поново покрени чаробњак за подешавање",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Покрените свој интранет: изаберите складиште, подесите групе, инсталирајте демо податке и подесите администраторске улоге.",
"Container": "Контејнер",
"Padding": "Унутрашњи размак",
"Title (optional)": "Наслов (опционо)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Подесите своју LaunchPad инстанцу са редоследом група, демо подацима, администраторским улогама и подешавањима подножја.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Покрените свој интранет: подесите групе, инсталирајте демо податке и подесите администраторске улоге."
}
}
diff --git a/l10n/sv.js b/l10n/sv.js
index c0875623f..b8be35874 100644
--- a/l10n/sv.js
+++ b/l10n/sv.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad-installationsguide",
"Step {n} / {total}" : "Steg {n} / {total}",
"Welcome" : "Välkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Konfigurera din LaunchPad-instans med lagring, gruppordning, demonstrationsdata, administratörsroller och sidfotsinställningar.",
- "Storage backend" : "Lagringsbackend",
- "Choose how LaunchPad stores dashboard content." : "Välj hur LaunchPad lagrar instrumentpanelsinnehåll.",
- "Database (default)" : "Databas (standard)",
- "Store dashboard content in the LaunchPad database table." : "Lagra instrumentpanelsinnehåll i LaunchPad-databastabellen.",
- "GroupFolder (recommended for org use)" : "GroupFolder (rekommenderas för organisationsbruk)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Lagra instrumentpanelsinnehåll i Nextcloud GroupFolders för samarbetsåtkomst.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder-appen är inte installerad. Installera 'Nextcloud GroupFolders' för att använda detta alternativ.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Välj i vilken ordning Nextcloud-grupper visas när LaunchPad dirigerar användare till en arbetsyta.",
"Demo data" : "Demonstrationsdata",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Demonstrationsdataexemplen visas här när funktionen demo-data-showcases lanseras. Tills vidare är detta steg endast informativt.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Slutför",
"Run setup wizard" : "Kör installationsguiden",
"Run setup wizard again" : "Kör installationsguiden igen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Kom igång med ditt intranät: välj lagring, konfigurera grupper, installera demonstrationsdata och ställ in administratörsroller.",
"Container" : "Behållare",
"Padding" : "Utfyllnad",
"Title (optional)" : "Titel (valfritt)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Konfigurera din LaunchPad-instans med gruppordning, demodata, administratörsroller och sidfotsinställningar.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Kom igång med ditt intranät: konfigurera grupper, installera demodata och ställ in administratörsroller."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/sv.json b/l10n/sv.json
index 7dde9c0a5..d5bdc2e28 100644
--- a/l10n/sv.json
+++ b/l10n/sv.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad-installationsguide",
"Step {n} / {total}": "Steg {n} / {total}",
"Welcome": "Välkommen",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Konfigurera din LaunchPad-instans med lagring, gruppordning, demodata, administratörsroller och sidfotsinställningar.",
- "Storage backend": "Lagringsbackend",
- "Choose how LaunchPad stores dashboard content.": "Välj hur LaunchPad lagrar instrumentpanelsinnehåll.",
- "Database (default)": "Databas (standard)",
- "Store dashboard content in the LaunchPad database table.": "Lagra instrumentpanelsinnehåll i LaunchPad-databastabellen.",
- "GroupFolder (recommended for org use)": "GroupFolder (rekommenderas för organisationsanvändning)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Lagra instrumentpanelsinnehåll i Nextcloud GroupFolders för samarbetsåtkomst.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder-appen är inte installerad. Installera 'Nextcloud GroupFolders' för att använda detta alternativ.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Välj den ordning som Nextcloud-grupper visas i när LaunchPad dirigerar användare till en arbetsyta.",
"Demo data": "Demodata",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Demonstrationerna av demodata visas här när funktionen demo-data-showcases levereras. För närvarande är detta steg endast informativt.",
@@ -953,7 +945,6 @@
"Finish": "Slutför",
"Run setup wizard": "Kör installationsguiden",
"Run setup wizard again": "Kör installationsguiden igen",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Kom igång med ditt intranät: välj lagring, konfigurera grupper, installera demodata och ställ in administratörsroller.",
"Container": "Behållare",
"Padding": "Utfyllnad",
"Title (optional)": "Titel (valfritt)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Konfigurera din LaunchPad-instans med gruppordning, demodata, administratörsroller och sidfotsinställningar.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Kom igång med ditt intranät: konfigurera grupper, installera demodata och ställ in administratörsroller."
}
}
diff --git a/l10n/tr.js b/l10n/tr.js
index b280f9d36..d0aed893d 100644
--- a/l10n/tr.js
+++ b/l10n/tr.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "LaunchPad kurulum sihirbazı",
"Step {n} / {total}" : "Adım {n} / {total}",
"Welcome" : "Hoş geldiniz",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "LaunchPad örneğinizi depolama, grup sıralaması, tanıtım verisi, yönetici rolleri ve alt bilgi ayarlarıyla yapılandırın.",
- "Storage backend" : "Depolama arka ucu",
- "Choose how LaunchPad stores dashboard content." : "LaunchPad uygulamasının pano içeriğini nasıl depolayacağını seçin.",
- "Database (default)" : "Veritabanı (varsayılan)",
- "Store dashboard content in the LaunchPad database table." : "Pano içeriğini LaunchPad veritabanı tablosunda depolayın.",
- "GroupFolder (recommended for org use)" : "GroupFolder (kuruluş kullanımı için önerilir)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "İşbirlikçi erişim için pano içeriğini Nextcloud GroupFolders içinde depolayın.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "GroupFolder uygulaması kurulu değil. Bu seçeneği kullanmak için 'Nextcloud GroupFolders' uygulamasını kurun.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "LaunchPad kullanıcıları bir çalışma alanına yönlendirdiğinde Nextcloud gruplarının görüneceği sırayı seçin.",
"Demo data" : "Tanıtım verisi",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Tanıtım verisi vitrinleri, demo-data-showcases yeteneği yayımlandığında burada görünür. Şimdilik bu adım yalnızca bilgilendirme amaçlıdır.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Bitir",
"Run setup wizard" : "Kurulum sihirbazını çalıştır",
"Run setup wizard again" : "Kurulum sihirbazını yeniden çalıştır",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "İç ağınızı başlatın: depolamayı seçin, grupları yapılandırın, tanıtım verisini kurun ve yönetici rollerini ayarlayın.",
"Container" : "Kapsayıcı",
"Padding" : "Dolgu",
"Title (optional)" : "Başlık (isteğe bağlı)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "LaunchPad örneğinizi grup sıralaması, demo veri, yönetici rolleri ve alt bilgi ayarlarıyla yapılandırın.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Kurum içi ağınızı başlatın: grupları yapılandırın, demo veri kurun ve yönetici rollerini ayarlayın."
},
"nplurals=2; plural=(n != 1);"
);
diff --git a/l10n/tr.json b/l10n/tr.json
index 94f40c7ed..8f30ec29d 100644
--- a/l10n/tr.json
+++ b/l10n/tr.json
@@ -927,14 +927,6 @@
"LaunchPad setup wizard": "LaunchPad kurulum sihirbazı",
"Step {n} / {total}": "Adım {n} / {total}",
"Welcome": "Hoş geldiniz",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "LaunchPad örneğinizi depolama, grup sıralaması, demo veri, yönetici rolleri ve alt bilgi ayarlarıyla yapılandırın.",
- "Storage backend": "Depolama arka ucu",
- "Choose how LaunchPad stores dashboard content.": "LaunchPad'in pano içeriğini nasıl depolayacağını seçin.",
- "Database (default)": "Veritabanı (varsayılan)",
- "Store dashboard content in the LaunchPad database table.": "Pano içeriğini LaunchPad veritabanı tablosunda depolayın.",
- "GroupFolder (recommended for org use)": "GroupFolder (kuruluş kullanımı için önerilir)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "İş birliğine dayalı erişim için pano içeriğini Nextcloud GroupFolders'ta depolayın.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "GroupFolder uygulaması kurulu değil. Bu seçeneği kullanmak için 'Nextcloud GroupFolders' uygulamasını kurun.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "LaunchPad kullanıcıları bir çalışma alanına yönlendirdiğinde Nextcloud gruplarının görünme sırasını seçin.",
"Demo data": "Demo veri",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Demo veri vitrinleri, demo-data-showcases yeteneği yayımlandığında burada görünecektir. Şimdilik bu adım yalnızca bilgilendirme amaçlıdır.",
@@ -953,7 +945,6 @@
"Finish": "Bitir",
"Run setup wizard": "Kurulum sihirbazını çalıştır",
"Run setup wizard again": "Kurulum sihirbazını yeniden çalıştır",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Kurum içi ağınızı başlatın: depolama seçin, grupları yapılandırın, demo veri kurun ve yönetici rollerini ayarlayın.",
"Container": "Kapsayıcı",
"Padding": "İç boşluk",
"Title (optional)": "Başlık (isteğe bağlı)",
@@ -1330,6 +1321,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "LaunchPad örneğinizi grup sıralaması, demo veri, yönetici rolleri ve alt bilgi ayarlarıyla yapılandırın.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Kurum içi ağınızı başlatın: grupları yapılandırın, demo veri kurun ve yönetici rollerini ayarlayın."
}
}
diff --git a/l10n/uk.js b/l10n/uk.js
index cd872be42..23b11f51c 100644
--- a/l10n/uk.js
+++ b/l10n/uk.js
@@ -926,14 +926,6 @@ OC.L10N.register(
"LaunchPad setup wizard" : "Майстер налаштування LaunchPad",
"Step {n} / {total}" : "Крок {n} / {total}",
"Welcome" : "Ласкаво просимо",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings." : "Налаштуйте свій екземпляр LaunchPad зі сховищем, упорядкуванням груп, демонстраційними даними, ролями адміністратора та налаштуваннями нижнього колонтитула.",
- "Storage backend" : "Бекенд сховища",
- "Choose how LaunchPad stores dashboard content." : "Виберіть, як LaunchPad зберігає вміст інформаційних панелей.",
- "Database (default)" : "База даних (усталено)",
- "Store dashboard content in the LaunchPad database table." : "Зберігати вміст інформаційних панелей у таблиці бази даних LaunchPad.",
- "GroupFolder (recommended for org use)" : "GroupFolder (рекомендовано для організаційного використання)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access." : "Зберігати вміст інформаційних панелей у GroupFolders Nextcloud для спільного доступу.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option." : "Застосунок GroupFolder не встановлено. Встановіть «Nextcloud GroupFolders», щоб скористатися цією опцією.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace." : "Виберіть порядок, у якому з'являються групи Nextcloud, коли LaunchPad спрямовує користувачів до робочого простору.",
"Demo data" : "Демонстраційні дані",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only." : "Демонстраційні приклади даних з'являться тут, коли буде реалізовано можливість demo-data-showcases. Наразі цей крок є лише інформаційним.",
@@ -952,7 +944,6 @@ OC.L10N.register(
"Finish" : "Завершити",
"Run setup wizard" : "Запустити майстер налаштування",
"Run setup wizard again" : "Запустити майстер налаштування знову",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles." : "Розпочніть роботу свого інтранету: виберіть сховище, налаштуйте групи, встановіть демонстраційні дані та налаштуйте ролі адміністратора.",
"Container" : "Контейнер",
"Padding" : "Внутрішній відступ",
"Title (optional)" : "Заголовок (необов'язково)",
@@ -1363,7 +1354,9 @@ OC.L10N.register(
"Personal settings" : "Personal settings",
"Store" : "Store",
"Reports" : "Reports",
- "Flows" : "Flows"
+ "Flows" : "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings." : "Налаштуйте свій екземпляр LaunchPad з упорядкуванням груп, демонстраційними даними, ролями адміністраторів і налаштуваннями нижнього колонтитула.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles." : "Розпочніть роботу свого інтранету: налаштуйте групи, установіть демонстраційні дані та налаштуйте ролі адміністраторів."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
);
diff --git a/l10n/uk.json b/l10n/uk.json
index e1275f8e1..fa9311c60 100644
--- a/l10n/uk.json
+++ b/l10n/uk.json
@@ -928,14 +928,6 @@
"LaunchPad setup wizard": "Майстер налаштування LaunchPad",
"Step {n} / {total}": "Крок {n} / {total}",
"Welcome": "Ласкаво просимо",
- "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.": "Налаштуйте свій екземпляр LaunchPad зі сховищем, упорядкуванням груп, демонстраційними даними, ролями адміністраторів і налаштуваннями нижнього колонтитула.",
- "Storage backend": "Серверна частина сховища",
- "Choose how LaunchPad stores dashboard content.": "Виберіть, як LaunchPad зберігає вміст дашбордів.",
- "Database (default)": "База даних (за замовчуванням)",
- "Store dashboard content in the LaunchPad database table.": "Зберігати вміст дашбордів у таблиці бази даних LaunchPad.",
- "GroupFolder (recommended for org use)": "GroupFolder (рекомендовано для організаційного використання)",
- "Store dashboard content in Nextcloud GroupFolders for collaborative access.": "Зберігати вміст дашбордів у Nextcloud GroupFolders для спільного доступу.",
- "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option.": "Застосунок GroupFolder не встановлено. Установіть «Nextcloud GroupFolders», щоб використовувати цей параметр.",
"Pick the order Nextcloud groups appear when LaunchPad routes users to a workspace.": "Виберіть порядок, у якому групи Nextcloud з'являються, коли LaunchPad спрямовує користувачів до робочого простору.",
"Demo data": "Демонстраційні дані",
"The demo data showcases will appear here once the demo-data-showcases capability ships. For now this step is informational only.": "Демонстрації даних-зразків з'являться тут, щойно буде випущено можливість demo-data-showcases. Наразі цей крок має лише інформаційний характер.",
@@ -954,7 +946,6 @@
"Finish": "Завершити",
"Run setup wizard": "Запустити майстер налаштування",
"Run setup wizard again": "Запустити майстер налаштування знову",
- "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.": "Розпочніть роботу свого інтранету: виберіть сховище, налаштуйте групи, установіть демонстраційні дані та налаштуйте ролі адміністраторів.",
"Container": "Контейнер",
"Padding": "Внутрішній відступ",
"Title (optional)": "Заголовок (необов'язково)",
@@ -1331,6 +1322,8 @@
"Personal settings": "Personal settings",
"Store": "Store",
"Reports": "Reports",
- "Flows": "Flows"
+ "Flows": "Flows",
+ "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.": "Налаштуйте свій екземпляр LaunchPad з упорядкуванням груп, демонстраційними даними, ролями адміністраторів і налаштуваннями нижнього колонтитула.",
+ "Get your intranet started: configure groups, install demo data, and set up admin roles.": "Розпочніть роботу свого інтранету: налаштуйте групи, установіть демонстраційні дані та налаштуйте ролі адміністраторів."
}
}
diff --git a/lib/Command/SetupCommand.php b/lib/Command/SetupCommand.php
index f462f93d6..93cacc19c 100644
--- a/lib/Command/SetupCommand.php
+++ b/lib/Command/SetupCommand.php
@@ -45,7 +45,7 @@ class SetupCommand extends Command {
*
* @param SetupWizardService $wizardService Wizard orchestrator.
* @param AdminSettingsService $settings Group-order persistence
- * (Step 3 in the YAML
+ * (Step 2 in the YAML
* schema).
*/
public function __construct(
@@ -117,13 +117,12 @@ protected function execute(
return self::FAILURE;
}
- if (isset($config['storage_backend']) === false
- || is_string($config['storage_backend']) === false
- ) {
+ // Decision 131 retired the storage step. A file written for the
+ // seven-step wizard still runs; its storage_backend is not applied.
+ if (array_key_exists(key: 'storage_backend', array: $config) === true) {
$output->writeln(
- messages: "Invalid setup.yaml: missing field 'storage_backend'"
+ messages: "'storage_backend' is no longer used and was ignored."
);
- return self::FAILURE;
}
try {
@@ -154,55 +153,31 @@ protected function execute(
private function applySteps(array $config, OutputInterface $output): void {
$output->writeln(messages: 'Step 1: Welcome... done');
- $this->applyStorageStep(config: $config, output: $output);
$this->applyGroupOrderStep(config: $config, output: $output);
$this->skipUnimplementedStep(
- stepNumber: 4,
+ stepNumber: 3,
stepName: 'Demo data',
present: array_key_exists(key: 'demo_packages', array: $config),
output: $output
);
$this->skipUnimplementedStep(
- stepNumber: 5,
+ stepNumber: 4,
stepName: 'Admin roles',
present: array_key_exists(key: 'admin_role_group', array: $config),
output: $output
);
$this->skipUnimplementedStep(
- stepNumber: 6,
+ stepNumber: 5,
stepName: 'Footer config',
present: array_key_exists(key: 'footer_config', array: $config),
output: $output
);
- $output->writeln(messages: 'Step 7: Done... done');
+ $output->writeln(messages: 'Step 6: Done... done');
}//end applySteps()
/**
- * Apply Step 2 — storage backend (REQ-WIZ-003).
- *
- * @param array $config Parsed YAML.
- * @param OutputInterface $output CLI output.
- *
- * @return void
- */
- private function applyStorageStep(array $config, OutputInterface $output): void {
- $current = $this->wizardService->getContentStorage();
- $target = (string)$config['storage_backend'];
-
- if ($current === $target) {
- $output->writeln(
- messages: 'Step 2: Storage backend... already configured, skipping'
- );
- return;
- }
-
- $this->wizardService->setContentStorage(value: $target);
- $output->writeln(messages: 'Step 2: Storage backend... done');
- }//end applyStorageStep()
-
- /**
- * Apply Step 3 — group priority order (REQ-WIZ-004).
+ * Apply Step 2 — group priority order (REQ-WIZ-004).
*
* @param array $config Parsed YAML.
* @param OutputInterface $output CLI output.
@@ -214,7 +189,7 @@ private function applyGroupOrderStep(
OutputInterface $output,
): void {
if (array_key_exists(key: 'group_priority_order', array: $config) === false) {
- $output->writeln(messages: 'Step 3: Group order... skipped (not in config)');
+ $output->writeln(messages: 'Step 2: Group order... skipped (not in config)');
return;
}
@@ -228,13 +203,13 @@ private function applyGroupOrderStep(
$current = $this->settings->getGroupOrder();
if ($current === array_values(array: $groups)) {
$output->writeln(
- messages: 'Step 3: Group order... already configured, skipping'
+ messages: 'Step 2: Group order... already configured, skipping'
);
return;
}
$this->settings->setGroupOrder(groupIds: $groups);
- $output->writeln(messages: 'Step 3: Group order... done');
+ $output->writeln(messages: 'Step 2: Group order... done');
}//end applyGroupOrderStep()
/**
diff --git a/lib/Controller/AdminController.php b/lib/Controller/AdminController.php
index 0118f228d..d49f4faac 100644
--- a/lib/Controller/AdminController.php
+++ b/lib/Controller/AdminController.php
@@ -430,10 +430,6 @@ public function getSettings(): JSONResponse {
* @param array|null $linkCreateFileExts link-button-widget createFile
* extension allow-list
* (REQ-LBN-004).
- * @param string|null $launchpadContentStorage Content storage backend
- * (`database` or
- * `groupfolder`).
- * REQ-GFSB-006.
* @param string|null $defaultSharePermissionLevel Org-wide default share
* permission level
* (dashboard-sharing spec).
@@ -481,7 +477,6 @@ public function updateSettings(
?bool $allowMultiDash = null,
?int $defaultGridCols = null,
?array $linkCreateFileExts = null,
- ?string $launchpadContentStorage = null,
?string $defaultSharePermissionLevel = null,
?array $forcedShareGroups = null,
?bool $legacyWidgetBridgeEnabled = null,
@@ -508,7 +503,6 @@ public function updateSettings(
allowMultiDash: $allowMultiDash,
defaultGridCols: $defaultGridCols,
linkCreateFileExts: $linkCreateFileExts,
- contentStorage: $launchpadContentStorage,
defaultSharePermissionLevel: $defaultSharePermissionLevel,
forcedShareGroups: $forcedShareGroups,
legacyWidgetBridgeEnabled: $legacyWidgetBridgeEnabled,
@@ -1058,57 +1052,6 @@ public function completeWizard(): JSONResponse {
);
}//end completeWizard()
- /**
- * Persist the storage backend choice from Step 2 (REQ-WIZ-003).
- *
- * Validates the selection and writes `launchpad.content_storage`. The
- * GroupFolder option is server-side gated by the `groupfolders` app
- * dependency — selecting it without the app installed returns 400.
- * Admin-only.
- *
- * @param string|null $storage The chosen backend.
- *
- * @return JSONResponse The post-write wizard state, or 400/401/403.
- *
- * @spec openspec/specs/admin-templates/spec.md
- */
- #[AuthorizedAdminSetting(LaunchPadAdmin::class)]
- public function setWizardStorage(?string $storage = null): JSONResponse {
- $guard = $this->assertAdmin();
- if ($guard !== null) {
- return $guard;
- }
-
- if ($storage === null || $storage === '') {
- return new JSONResponse(
- data: ['error' => 'Field "storage" is required.'],
- statusCode: Http::STATUS_BAD_REQUEST
- );
- }
-
- if ($storage === SetupWizardService::STORAGE_GROUPFOLDER
- && $this->setupWizardService->hasGroupfolderApp() === false
- ) {
- return new JSONResponse(
- data: ['error' => 'GroupFolder app is not installed.'],
- statusCode: Http::STATUS_BAD_REQUEST
- );
- }
-
- try {
- $this->setupWizardService->setContentStorage(value: $storage);
- } catch (InvalidArgumentException) {
- return new JSONResponse(
- data: ['error' => 'Unsupported storage backend.'],
- statusCode: Http::STATUS_BAD_REQUEST
- );
- }
-
- return ResponseHelper::success(
- data: $this->setupWizardService->getWizardState()
- );
- }//end setWizardStorage()
-
/**
* Build the update data array from nullable parameters.
*
diff --git a/lib/Db/AdminSetting.php b/lib/Db/AdminSetting.php
index f322b537c..bb4056e8a 100644
--- a/lib/Db/AdminSetting.php
+++ b/lib/Db/AdminSetting.php
@@ -158,15 +158,6 @@ class AdminSetting extends Entity implements JsonSerializable {
*/
public const KEY_SETUP_WIZARD_COMPLETE = AdminSettingKey::SETUP_WIZARD_COMPLETE->value;
- /**
- * BC alias for AdminSettingKey::CONTENT_STORAGE.
- *
- * @var string
- *
- * @see AdminSettingKey::CONTENT_STORAGE
- */
- public const KEY_CONTENT_STORAGE = AdminSettingKey::CONTENT_STORAGE->value;
-
/**
* BC alias for AdminSettingKey::DEFAULT_SHARE_PERMISSION_LEVEL.
*
diff --git a/lib/Db/AdminSettingKey.php b/lib/Db/AdminSettingKey.php
index 7996eebb0..d4dff890e 100644
--- a/lib/Db/AdminSettingKey.php
+++ b/lib/Db/AdminSettingKey.php
@@ -15,7 +15,7 @@
* - Comments: COMMENTS_ENABLED_DEFAULT
* - Footer: FOOTER_ENABLED, FOOTER_HTML, FOOTER_CONFIG,
* FOOTER_BACKGROUND_COLOR, FOOTER_TEXT_COLOR
- * - Setup wizard: SETUP_WIZARD_COMPLETE, CONTENT_STORAGE
+ * - Setup wizard: SETUP_WIZARD_COMPLETE
* - Quick search: QUICKSEARCH_FALLBACK_TARGET (tile-quick-search)
*
* @category Db
@@ -55,7 +55,6 @@ enum AdminSettingKey: string {
case FOOTER_BACKGROUND_COLOR = 'footer_background_color';
case FOOTER_TEXT_COLOR = 'footer_text_color';
case SETUP_WIZARD_COMPLETE = 'setup_wizard_complete';
- case CONTENT_STORAGE = 'content_storage';
case DEFAULT_SHARE_PERMISSION_LEVEL = 'default_share_permission_level';
case FORCED_SHARE_GROUPS = 'forced_share_groups';
case LEGACY_WIDGET_BRIDGE_ENABLED = 'legacy_widget_bridge_enabled';
diff --git a/lib/Service/AdminSettingsService.php b/lib/Service/AdminSettingsService.php
index 0cc8cd44e..4c920f324 100644
--- a/lib/Service/AdminSettingsService.php
+++ b/lib/Service/AdminSettingsService.php
@@ -83,8 +83,6 @@ public function getSettings(): array {
$storedExt = self::DEFAULT_LINK_CREATE_FILE_EXTENSIONS;
}
- $storageKey = AdminSetting::KEY_CONTENT_STORAGE;
-
$sharePermKey = AdminSetting::KEY_DEFAULT_SHARE_PERMISSION_LEVEL;
$forcedShareKey = AdminSetting::KEY_FORCED_SHARE_GROUPS;
$bridgeKey = AdminSetting::KEY_LEGACY_WIDGET_BRIDGE_ENABLED;
@@ -125,7 +123,6 @@ public function getSettings(): array {
'defaultGridColumns' => $settings[$gridKey] ?? 12,
'linkCreateFileExtensions' => $storedExt,
// REQ-GFSB-006: surface active storage backend in admin settings.
- 'launchpad.content_storage' => $settings[$storageKey] ?? 'database',
// Dashboard-sharing spec: org-wide share defaults surfaced in
// Beheer ▸ Sharing. Default permission level mirrors the
// dashboard default; forced-share groups default to none.
@@ -202,13 +199,6 @@ public function clampQuota(mixed $value): int {
return $int;
}//end clampQuota()
- /**
- * Valid values for the `launchpad.content_storage` setting (REQ-GFSB-006).
- *
- * @var list
- */
- public const VALID_CONTENT_STORAGE_VALUES = ['database', 'groupfolder'];
-
/**
* Tile-quick-search REQ-QSEARCH-004: no-match fallback disabled — Enter
* on a zero-match query takes no navigation action.
@@ -296,10 +286,6 @@ private function isValidQuicksearchFallbackUrlTemplate(string $value): bool {
* extension
* allow-list
* (REQ-LBN-004).
- * @param string|null $contentStorage Content storage backend
- * (`database` or
- * `groupfolder`).
- * REQ-GFSB-006.
* @param string|null $defaultSharePermissionLevel Org-wide default share
* permission level
* (dashboard-sharing spec).
@@ -340,8 +326,8 @@ private function isValidQuicksearchFallbackUrlTemplate(string $value): bool {
*
* @return void
*
- * @throws \InvalidArgumentException When `$contentStorage`,
- * `$defaultSharePermissionLevel`, or
+ * @throws \InvalidArgumentException When
+ * `$defaultSharePermissionLevel` or
* `$quicksearchFallbackTarget` is not
* a valid value.
*
@@ -353,7 +339,6 @@ public function updateSettings(
?bool $allowMultiDash = null,
?int $defaultGridCols = null,
?array $linkCreateFileExts = null,
- ?string $contentStorage = null,
?string $defaultSharePermissionLevel = null,
?array $forcedShareGroups = null,
?bool $legacyWidgetBridgeEnabled = null,
@@ -397,19 +382,6 @@ public function updateSettings(
);
}
- if ($contentStorage !== null) {
- if (in_array(needle: $contentStorage, haystack: self::VALID_CONTENT_STORAGE_VALUES, strict: true) === false) {
- throw new InvalidArgumentException(
- message: "Invalid value for launchpad.content_storage. Must be 'db' or 'groupfolder'."
- );
- }
-
- $this->settingMapper->setSetting(
- key: AdminSetting::KEY_CONTENT_STORAGE,
- value: $contentStorage
- );
- }
-
$this->persistQuotaAndQuicksearchSettings(
maxDashboardsPerUser: $maxDashboardsPerUser,
maxWidgetsPerDashboard: $maxWidgetsPerDashboard,
diff --git a/lib/Service/SetupWizardService.php b/lib/Service/SetupWizardService.php
index e3ac48d26..9dfc78718 100644
--- a/lib/Service/SetupWizardService.php
+++ b/lib/Service/SetupWizardService.php
@@ -24,10 +24,8 @@
namespace OCA\LaunchPad\Service;
-use InvalidArgumentException;
use OCA\LaunchPad\Db\AdminSetting;
use OCA\LaunchPad\Db\AdminSettingMapper;
-use OCP\App\IAppManager;
/**
* Service backing the setup wizard state + completion endpoints.
@@ -35,7 +33,7 @@
* Status values follow the spec (REQ-WIZ-008): `'done'`, `'skipped'`,
* `'pending'`. The wizard "pending" state means a step has not been
* traversed yet (no sibling setting written). `'skipped'` is reserved for
- * the optional steps 5/6 — when their guarded capability isn't available,
+ * the optional steps 4/5 — when their guarded capability isn't available,
* the heuristic returns `'skipped'` so the UI can collapse the step.
*/
class SetupWizardService {
@@ -44,40 +42,15 @@ class SetupWizardService {
*
* @var integer
*/
- public const STEP_COUNT = 7;
-
- /**
- * Storage backend value: relational database (default).
- *
- * @var string
- */
- public const STORAGE_DATABASE = 'database';
-
- /**
- * Storage backend value: GroupFolder app.
- *
- * @var string
- */
- public const STORAGE_GROUPFOLDER = 'groupfolder';
-
- /**
- * GroupFolder dependency app id used by Step 2's tooltip gate.
- *
- * @var string
- */
- public const GROUPFOLDER_APP_ID = 'groupfolders';
+ public const STEP_COUNT = 6;
/**
* Constructor.
*
* @param AdminSettingMapper $settingMapper Admin-setting persistence.
- * @param IAppManager $appManager Used to detect the optional
- * `groupfolders` Nextcloud
- * app for Step 2's gate.
*/
public function __construct(
private readonly AdminSettingMapper $settingMapper,
- private readonly IAppManager $appManager,
) {
}//end __construct()
@@ -86,7 +59,7 @@ public function __construct(
*
* Shape: `{complete: bool, currentRecommendedStep: int,
* stepStatuses: array}`. Step 1 is always
- * `'done'`; Step 7 stays `'pending'` until the admin clicks Finish.
+ * `'done'`; Step 6 stays `'pending'` until the admin clicks Finish.
*
* @return array{complete: bool, currentRecommendedStep: int, stepStatuses: array}
* The wizard state payload.
@@ -124,58 +97,6 @@ public function markWizardComplete(): array {
return $this->getWizardState();
}//end markWizardComplete()
- /**
- * Whether the GroupFolder dependency is installed (REQ-WIZ-003).
- *
- * @return boolean True when the GroupFolder option may be selected.
- */
- public function hasGroupfolderApp(): bool {
- return $this->appManager->isInstalled(self::GROUPFOLDER_APP_ID);
- }//end hasGroupfolderApp()
-
- /**
- * Persist the storage backend choice from Step 2.
- *
- * @param string $value `'database'` or `'groupfolder'`.
- *
- * @return void
- *
- * @spec openspec/specs/setup-wizard/spec.md
- */
- public function setContentStorage(string $value): void {
- $allowed = [self::STORAGE_DATABASE, self::STORAGE_GROUPFOLDER];
- if (in_array(needle: $value, haystack: $allowed, strict: true) === false) {
- throw new InvalidArgumentException(
- message: 'Unsupported storage backend: ' . $value
- );
- }
-
- $this->settingMapper->setSetting(
- key: AdminSetting::KEY_CONTENT_STORAGE,
- value: $value
- );
- }//end setContentStorage()
-
- /**
- * Read the persisted storage backend choice with the safe default.
- *
- * @return string The persisted backend or `'database'` when unset.
- *
- * @spec openspec/specs/setup-wizard/spec.md
- */
- public function getContentStorage(): string {
- $value = $this->settingMapper->getValue(
- key: AdminSetting::KEY_CONTENT_STORAGE,
- default: null
- );
-
- if (is_string($value) === true && $value !== '') {
- return $value;
- }
-
- return self::STORAGE_DATABASE;
- }//end getContentStorage()
-
/**
* Whether the wizard has been completed at least once.
*
@@ -203,21 +124,15 @@ private function isWizardComplete(): bool {
private function computeStepStatuses(bool $complete): array {
$settings = $this->settingMapper->getAllAsArray();
- $hasStorage = isset($settings[AdminSetting::KEY_CONTENT_STORAGE]);
$groupOrder = ($settings[AdminSetting::KEY_GROUP_ORDER] ?? null);
$hasGroup = (is_array($groupOrder) === true && count($groupOrder) > 0);
$hasFooter = isset($settings[AdminSetting::KEY_FOOTER_CONFIG]);
- // Steps 4 (demos) and 5 (admin-roles) live in sibling capabilities
+ // Steps 3 (demos) and 4 (admin-roles) live in sibling capabilities
// not yet implemented in this branch; surface them as `'skipped'`
// so the wizard advances cleanly when the embed component is a
// local stub. They flip to `'done'` once the sibling capability
// ships and writes its own settings.
- $statusStorage = 'pending';
- if ($hasStorage === true) {
- $statusStorage = 'done';
- }
-
$statusGroup = 'pending';
if ($hasGroup === true) {
$statusGroup = 'done';
@@ -235,12 +150,11 @@ private function computeStepStatuses(bool $complete): array {
return [
'1' => 'done',
- '2' => $statusStorage,
- '3' => $statusGroup,
+ '2' => $statusGroup,
+ '3' => 'skipped',
'4' => 'skipped',
- '5' => 'skipped',
- '6' => $statusFooter,
- '7' => $statusDone,
+ '5' => $statusFooter,
+ '6' => $statusDone,
];
}//end computeStepStatuses()
diff --git a/openspec/specs/admin-settings/spec.md b/openspec/specs/admin-settings/spec.md
index 3a4bab5ca..d2af62d18 100644
--- a/openspec/specs/admin-settings/spec.md
+++ b/openspec/specs/admin-settings/spec.md
@@ -28,7 +28,6 @@ Settings are stored as key-value pairs:
| `default_permission_level` | `defaultPermissionLevel` | string | `add_only` | Default permission level for user-created dashboards |
| `default_grid_columns` | `defaultGridColumns` | integer | `12` | Default number of grid columns for new dashboards |
| `link_create_file_extensions` | `linkCreateFileExtensions` | `string[]` | `["txt","md","docx","xlsx","csv","odt"]` | Extensions the link-button widget's "create file" action may create (REQ-LBN-004). An empty stored list resolves to the default. |
-| `content_storage` | `launchpad.content_storage` | string | `database` | Active content storage backend (REQ-GFSB-006). The response key is dotted, unlike the others. |
| `default_share_permission_level` | `defaultSharePermissionLevel` | string | `add_only` | Org-wide default permission for a new share (dashboard-sharing spec) |
| `forced_share_groups` | `forcedShareGroups` | `string[]` | `[]` | Groups every new dashboard is force-shared with (dashboard-sharing spec) |
| `legacy_widget_bridge_enabled` | `legacyWidgetBridgeEnabled` | boolean | `false` | Whether the workspace reads Nextcloud's widget registry (legacy-widget-bridge spec) |
@@ -42,12 +41,12 @@ NOTE: The DB stores settings with snake_case keys, but the API response returns
## Requirements
### Requirement: Retrieve Admin Settings (REQ-ASET-001)
-Administrators MUST be able to retrieve all current admin settings via the API. The endpoint returns a flat JSON object with the thirteen settings listed under Defined Settings, each under its API response key. `group_order` is not among them; it has its own endpoints (REQ-ASET-012).
+Administrators MUST be able to retrieve all current admin settings via the API. The endpoint returns a flat JSON object with the twelve settings listed under Defined Settings, each under its API response key. `group_order` is not among them; it has its own endpoints (REQ-ASET-012).
#### Scenario: Get all settings with defaults
- GIVEN no admin settings have been explicitly configured (fresh installation)
- WHEN the admin sends GET /api/admin/settings
-- THEN the system MUST return HTTP 200 with all thirteen settings at their default values:
+- THEN the system MUST return HTTP 200 with all twelve settings at their default values:
```json
{
"defaultPermissionLevel": "add_only",
@@ -55,7 +54,6 @@ Administrators MUST be able to retrieve all current admin settings via the API.
"allowMultipleDashboards": true,
"defaultGridColumns": 12,
"linkCreateFileExtensions": ["txt", "md", "docx", "xlsx", "csv", "odt"],
- "launchpad.content_storage": "database",
"defaultSharePermissionLevel": "add_only",
"forcedShareGroups": [],
"legacyWidgetBridgeEnabled": false,
@@ -88,11 +86,17 @@ Administrators MUST be able to retrieve all current admin settings via the API.
#### Scenario: Settings response format consistency
- GIVEN the admin has configured various settings at different times
- WHEN GET /api/admin/settings is called
-- THEN the response MUST always return exactly the thirteen keys listed under Defined Settings: `defaultPermissionLevel`, `allowUserDashboards`, `allowMultipleDashboards`, `defaultGridColumns`, `linkCreateFileExtensions`, `launchpad.content_storage`, `defaultSharePermissionLevel`, `forcedShareGroups`, `legacyWidgetBridgeEnabled`, `maxDashboardsPerUser`, `maxWidgetsPerDashboard`, `quicksearchFallbackTarget`, `startPageWithoutNavigation`
+- THEN the response MUST always return exactly the twelve keys listed under Defined Settings: `defaultPermissionLevel`, `allowUserDashboards`, `allowMultipleDashboards`, `defaultGridColumns`, `linkCreateFileExtensions`, `defaultSharePermissionLevel`, `forcedShareGroups`, `legacyWidgetBridgeEnabled`, `maxDashboardsPerUser`, `maxWidgetsPerDashboard`, `quicksearchFallbackTarget`, `startPageWithoutNavigation`
- AND no additional keys MUST be present in the response
- NOTE: This scenario said "exactly four keys" long after the response had grown to twelve. The list above is taken from `AdminSettingsService::getSettings()`; a key added there MUST be added here and to the Defined Settings table.
- AND the response MUST be a flat JSON object (no nesting)
+#### Scenario: The retired content storage key is not returned
+- GIVEN an instance that still holds a `content_storage` row written by the retired setup-wizard storage step
+- WHEN the admin sends GET /api/admin/settings
+- THEN the response MUST NOT contain `launchpad.content_storage`
+- AND the stored row MUST stay unread (decision 131)
+
### Requirement: Update Admin Settings (REQ-ASET-002)
Administrators MUST be able to update individual or multiple admin settings in a single PUT request.
diff --git a/openspec/specs/groupfolder-storage-backend/spec.md b/openspec/specs/groupfolder-storage-backend/spec.md
index 7540bb8ec..386f3c67c 100644
--- a/openspec/specs/groupfolder-storage-backend/spec.md
+++ b/openspec/specs/groupfolder-storage-backend/spec.md
@@ -67,16 +67,10 @@ factory was reachable only through the three orphaned facade methods.
The `launchpad.content_storage` admin setting, `AdminSettingKey::CONTENT_STORAGE`,
`SetupWizardService::{getContentStorage,setContentStorage,hasGroupfolderApp}`,
`AdminController::setWizardStorage`, its route, and step 2 of the setup wizard
-are **retained**. They belong to the `setup-wizard` capability, which *writes*
-the setting; this capability was the *reader*. The setting was already inert
-before this change — nothing read it, because the readers were orphaned — so
-removing the reader does not make it worse.
-
-Retiring the wizard step is a separate, reviewable decision that changes the
-`setup-wizard` spec, and it is tracked on launchpad#87 rather than folded into
-this retirement. Anyone completing that follow-up should note that
-`tools/spec-annotations-allowlist.txt` carries entries for those three
-`SetupWizardService` methods and for `AdminController::setWizardStorage`.
+were retained by this retirement, because they belonged to the `setup-wizard`
+capability. They were removed afterwards, on 9 Oct 2026, by the change
+`retire-setup-wizard-storage-step` (decision 131). A `content_storage` row
+already stored stays in the table, unread.
`lib/Migration/Version002001Date20260603000000.php` and
`DashboardTableBuilder::addContentStorageColumns()` are also retained: a shipped
diff --git a/openspec/specs/setup-wizard/spec.md b/openspec/specs/setup-wizard/spec.md
index 278650eef..ec4d119bc 100644
--- a/openspec/specs/setup-wizard/spec.md
+++ b/openspec/specs/setup-wizard/spec.md
@@ -6,7 +6,7 @@ status: done
## Purpose
-The Setup Wizard is a multi-step first-run configuration flow for freshly installed LaunchPad instances. It guides administrators through selecting a storage backend, setting group priority order, installing optional demo data, assigning admin roles, and configuring footer content. The wizard detects first-run state via an admin-setting flag, supports both interactive and non-interactive (CLI) flows, and ensures all choices are persisted immediately so progress is not lost.
+The Setup Wizard is a multi-step first-run configuration flow for freshly installed LaunchPad instances. It guides administrators through setting group priority order, installing optional demo data, assigning admin roles, and configuring footer content. The wizard detects first-run state via an admin-setting flag, supports both interactive and non-interactive (CLI) flows, and ensures all choices are persisted immediately so progress is not lost.
## Data Model
@@ -16,12 +16,13 @@ The setup wizard does not define a new persistent table; it tracks state via exi
Wizard progress (per-step completion status) is derived heuristically from the state of underlying settings:
- Step 1 (Welcome): always "done" (no choice to persist)
-- Step 2 (Storage): "done" if `launchpad.content_storage` is set; "pending" otherwise
-- Step 3 (Group order): "done" if `launchpad.group_priority_order` is set; "pending" otherwise
-- Step 4 (Demo data): "done" if at least one demo package has been installed; "pending" otherwise
-- Step 5 (Admin roles): "skipped" if not visited; "done" if a "Dashboard Admin" role assignment exists
-- Step 6 (Footer): "skipped" if not visited; "done" if `launchpad.footer_config` is set
-- Step 7 (Done): "pending" until wizard completes
+- Step 2 (Group order): "done" if `launchpad.group_priority_order` is set; "pending" otherwise
+- Step 3 (Demo data): "done" if at least one demo package has been installed; "pending" otherwise
+- Step 4 (Admin roles): "skipped" if not visited; "done" if a "Dashboard Admin" role assignment exists
+- Step 5 (Footer): "skipped" if not visited; "done" if `launchpad.footer_config` is set
+- Step 6 (Done): "pending" until wizard completes
+
+The storage step that sat at Step 2 was retired on 9 Oct 2026 (decision 131, change `retire-setup-wizard-storage-step`). A `content_storage` row it wrote stays in the table and is never read.
## Requirements
@@ -49,7 +50,7 @@ The system MUST detect whether a LaunchPad instance is being initialized for the
#### Scenario: Banner includes descriptive text
- GIVEN a fresh LaunchPad instance showing the setup banner
- WHEN the admin views the banner
-- THEN the banner MUST include text explaining: "Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles."
+- THEN the banner MUST include text explaining: "Get your intranet started: configure groups, install demo data, and set up admin roles."
- NOTE: Banner style and wording are implementation-specific; requirement mandates presence and visibility only
#### Scenario: Banner has explicit "Run setup wizard" call-to-action
@@ -62,11 +63,11 @@ The system MUST detect whether a LaunchPad instance is being initialized for the
- WHEN the admin returns to `/apps/launchpad/admin/dashboards`
- THEN if `launchpad.setup_wizard_complete = false`, the banner MUST reappear
-### Requirement: REQ-WIZ-002 Multi-Step Wizard Flow with 7 Steps
+### Requirement: REQ-WIZ-002 Multi-Step Wizard Flow with 6 Steps
-The wizard MUST guide the admin through a linear, skippable sequence of 7 steps, each with Skip / Back / Next buttons. Only the "Finish" button on Step 7 marks the wizard complete.
+The wizard MUST guide the admin through a linear, skippable sequence of 6 steps, each with Skip / Back / Next buttons. Only the "Finish" button on Step 6 marks the wizard complete.
-> NOTE: Steps 2–6 each embed the canonical admin UI component from the corresponding sibling capability (`groupfolder-storage-backend`, `group-priority-order`, `demo-data-showcases`, `admin-roles`, `footer-customization`). The wizard is a thin orchestrator — it owns step sequencing and the completion flag; each sibling capability owns its own settings persistence. No settings surfaces are duplicated.
+> NOTE: Steps 2–5 each embed the canonical admin UI component from the corresponding sibling capability (`group-priority-order`, `demo-data-showcases`, `admin-roles`, `footer-customization`). The wizard is a thin orchestrator — it owns step sequencing and the completion flag; each sibling capability owns its own settings persistence. No settings surfaces are duplicated.
#### Scenario: Wizard starts at Step 1
- GIVEN the banner's "Run setup wizard" button is clicked
@@ -77,7 +78,7 @@ The wizard MUST guide the admin through a linear, skippable sequence of 7 steps,
#### Scenario: Next button advances to next step
- GIVEN the wizard is on Step 1
- WHEN the admin clicks "Next"
-- THEN the wizard advances to Step 2 (Storage backend)
+- THEN the wizard advances to Step 2 (Group order)
- AND the step counter MUST show "2 / 7"
- AND the Back button MUST become active
@@ -88,200 +89,163 @@ The wizard MUST guide the admin through a linear, skippable sequence of 7 steps,
- AND no data loss occurs (Step 3 values are preserved if re-visited)
#### Scenario: Skip button jumps to next step without commitment
-- GIVEN the wizard is on Step 5 (Admin roles, optional)
+- GIVEN the wizard is on Step 4 (Admin roles, optional)
- WHEN the admin clicks "Skip"
-- THEN the wizard advances to Step 6
-- AND the wizard completion status for Step 5 is marked "skipped" (not "done")
+- THEN the wizard advances to Step 5
+- AND the wizard completion status for Step 4 is marked "skipped" (not "done")
- NOTE: Skipping a step does not prevent the wizard from eventually marking complete
#### Scenario: Step 1 has no form; only explanatory text
- GIVEN Step 1 (Welcome) is displayed
- WHEN the admin views the step
-- THEN the step MUST show text explaining the wizard's purpose: "Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings."
+- THEN the step MUST show text explaining the wizard's purpose: "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings."
- AND there are no form fields to fill
- AND clicking "Next" advances without persisting any choice
-#### Scenario: Step 7 shows summary and Finish button
-- GIVEN the wizard reaches Step 7 (Done)
+#### Scenario: Step 6 shows summary and Finish button
+- GIVEN the wizard reaches Step 6 (Done)
- WHEN the admin views the step
- THEN the step MUST display a summary: "Your setup is complete. Click Finish to save changes and dismiss the setup banner."
- AND a "Finish" button (not "Next") MUST be present
- AND clicking "Finish" executes the completion action
#### Scenario: Finish button completes wizard
-- GIVEN the admin is on Step 7 with the "Finish" button visible
+- GIVEN the admin is on Step 6 with the "Finish" button visible
- WHEN the admin clicks "Finish"
- THEN the system MUST set `launchpad.setup_wizard_complete = true`
- AND the wizard modal MUST close
- AND the admin section MUST reload, banner gone
#### Scenario: Wizard progress persists across Back navigation
-- GIVEN the wizard is on Step 3 with group order selected
-- WHEN the admin clicks Back to Step 2, modifies storage backend, then clicks Next to Step 3
-- THEN the group order selection from Step 3 MUST still be present (no data loss)
+- GIVEN the wizard is on Step 3 after a group order was chosen on Step 2
+- WHEN the admin clicks Back to Step 2, then clicks Next to Step 3
+- THEN the group order chosen on Step 2 MUST still be present (no data loss)
-### Requirement: REQ-WIZ-003 Step 2 — Storage Backend Choice with GroupFolder Dependency Tooltip
+### Requirement: REQ-WIZ-004 Step 2 — Group Priority Order (Embedded Component Reuse)
-Step 2 MUST present two radio options: "Database (default)" and "GroupFolder (recommended for org use)". The GroupFolder option MUST be disabled with a tooltip if the `groupfolders` Nextcloud app is not installed.
+Step 2 MUST embed the existing `group-priority-order` admin UI component, allowing the admin to configure the priority order of Nextcloud groups for dashboard routing.
-#### Scenario: Storage backend selection shows two options
+#### Scenario: Step 2 embeds existing group-priority-order admin component
- GIVEN Step 2 is displayed
- WHEN the admin views the step
-- THEN two radio buttons MUST be visible:
- - "Database (default)" — with description "Store dashboard content in LaunchPad database table"
- - "GroupFolder (recommended for org use)" — with description "Store dashboard content in Nextcloud GroupFolders for collaborative access"
-- AND exactly one option MUST be pre-selected (default to "Database")
-
-#### Scenario: GroupFolder option disabled if app not installed
-- GIVEN the `groupfolders` Nextcloud app is NOT installed
-- WHEN Step 2 is displayed
-- THEN the "GroupFolder" radio option MUST be disabled (grayed out)
-- AND a tooltip MUST appear on hover: "GroupFolder app is not installed. Install 'Nextcloud GroupFolders' to use this option."
-- NOTE: Disabled state prevents selection; tooltip explains why
-
-#### Scenario: GroupFolder option enabled if app installed
-- GIVEN the `groupfolders` Nextcloud app IS installed
-- WHEN Step 2 is displayed
-- THEN the "GroupFolder" radio option MUST be enabled
-- AND the option is selectable
-
-#### Scenario: Storage choice persists immediately
-- GIVEN Step 2 is displayed with "Database" selected
-- WHEN the admin selects "GroupFolder" and clicks Next
-- THEN the system MUST immediately write `launchpad.content_storage = "groupfolder"` to admin settings
-- AND if the admin navigates away (Back, Browser close, etc.), the choice MUST be persisted (not lost)
-
-#### Scenario: Default is Database
-- GIVEN a fresh instance where no storage backend has been chosen
-- WHEN Step 2 is displayed
-- THEN "Database (default)" MUST be pre-selected
-- NOTE: This reflects the safe, always-available default
-
-### Requirement: REQ-WIZ-004 Step 3 — Group Priority Order (Embedded Component Reuse)
-
-Step 3 MUST embed the existing `group-priority-order` admin UI component, allowing the admin to configure the priority order of Nextcloud groups for dashboard routing.
-
-#### Scenario: Step 3 embeds existing group-priority-order admin component
-- GIVEN Step 3 is displayed
-- WHEN the admin views the step
- THEN the existing `group-priority-order` admin UI MUST be visible and functional within the wizard modal
- NOTE: The component is not duplicated; the wizard embeds the canonical admin component
#### Scenario: Group order choice persists immediately
-- GIVEN the admin reorders groups in Step 3 (e.g., "engineering" moved above "sales")
+- GIVEN the admin reorders groups in Step 2 (e.g., "engineering" moved above "sales")
- WHEN the admin clicks Next
- THEN the system MUST immediately persist the new order to `launchpad.group_priority_order`
- AND navigating away does not lose the change
-#### Scenario: Step 3 allows drag-and-drop reordering (existing UI behavior)
+#### Scenario: Step 2 allows drag-and-drop reordering (existing UI behavior)
- GIVEN the group-priority-order component is displayed
- WHEN the admin drags a group to a new position
- THEN the reorder MUST be reflected in the UI
- NOTE: Exact interaction (drag, arrow buttons, etc.) is determined by the embedded component's design
-### Requirement: REQ-WIZ-005 Step 4 — Demo Data Installation (Embedded Component Reuse)
+### Requirement: REQ-WIZ-005 Step 3 — Demo Data Installation (Embedded Component Reuse)
-Step 4 MUST embed the existing `demo-data-showcases` admin UI component, allowing the admin to optionally select and install demo packages.
+Step 3 MUST embed the existing `demo-data-showcases` admin UI component, allowing the admin to optionally select and install demo packages.
-#### Scenario: Step 4 embeds demo-data-showcases admin component
-- GIVEN Step 4 is displayed
+#### Scenario: Step 3 embeds demo-data-showcases admin component
+- GIVEN Step 3 is displayed
- WHEN the admin views the step
- THEN the existing `demo-data-showcases` admin UI MUST be visible within the wizard modal
- AND the component displays all available demo packages with checkboxes
- NOTE: The component is the canonical admin UI; wizard embeds it without duplication
#### Scenario: Demo data installation is optional
-- GIVEN Step 4 is displayed with zero demo packages selected
+- GIVEN Step 3 is displayed with zero demo packages selected
- WHEN the admin clicks "Skip" or "Next"
- THEN the wizard MUST advance without requiring any demo to be installed
-- NOTE: Step 4 is not skippable via a Skip button; all steps are traversed. However, selecting zero demos and clicking Next is equivalent to skipping.
+- NOTE: Step 3 is not skippable via a Skip button; all steps are traversed. However, selecting zero demos and clicking Next is equivalent to skipping.
#### Scenario: Checked demos are installed on Next
-- GIVEN the admin selects checkboxes for "Engineering Demo" and "Sales Demo" on Step 4
+- GIVEN the admin selects checkboxes for "Engineering Demo" and "Sales Demo" on Step 3
- WHEN the admin clicks "Next"
- THEN the system MUST trigger the installation of both demo packages
-- AND the wizard advances to Step 5 (installation happens asynchronously or blocks until done, implementation choice)
+- AND the wizard advances to Step 4 (installation happens asynchronously or blocks until done, implementation choice)
- NOTE: The demo-data-showcases component handles the actual installation logic
#### Scenario: Demo selection is persisted
-- GIVEN the admin selected "Engineering Demo" on Step 4 and advanced to Step 5
-- WHEN the admin navigates Back to Step 4
+- GIVEN the admin selected "Engineering Demo" on Step 3 and advanced to Step 4
+- WHEN the admin navigates Back to Step 3
- THEN the "Engineering Demo" checkbox MUST remain checked
- AND no re-installation happens (idempotent)
-### Requirement: REQ-WIZ-006 Step 5 — Admin Roles (Optional, Depends on admin-roles Capability)
+### Requirement: REQ-WIZ-006 Step 4 — Admin Roles (Optional, Depends on admin-roles Capability)
-Step 5 MUST allow the admin to optionally assign the "Dashboard Admin" role to one Nextcloud group. This step is skippable via a Skip button.
+Step 4 MUST allow the admin to optionally assign the "Dashboard Admin" role to one Nextcloud group. This step is skippable via a Skip button.
-#### Scenario: Step 5 shows group selector for admin role
+#### Scenario: Step 4 shows group selector for admin role
- GIVEN the `admin-roles` capability is available
-- AND Step 5 is displayed
+- AND Step 4 is displayed
- WHEN the admin views the step
- THEN a dropdown or multi-select MUST display all Nextcloud groups
- AND a description MUST explain: "Assign 'Dashboard Admin' role to a group to delegate LaunchPad administration to group members."
#### Scenario: Admin can select one group for Dashboard Admin role
-- GIVEN Step 5 is displayed with groups ["engineering", "sales", "marketing"]
+- GIVEN Step 4 is displayed with groups ["engineering", "sales", "marketing"]
- WHEN the admin selects "engineering"
- AND clicks "Next"
- THEN the system MUST call `RoleService::assignRole(groupId="engineering", role="admin", assignedBy=)`
- AND the role assignment MUST be created in `oc_launchpad_role_assignments`
-#### Scenario: Step 5 is skippable
-- GIVEN Step 5 is displayed
+#### Scenario: Step 4 is skippable
+- GIVEN Step 4 is displayed
- WHEN the admin clicks "Skip"
- THEN no role assignment is made
-- AND the wizard advances to Step 6
-- AND the completion status for Step 5 MUST be marked "skipped"
+- AND the wizard advances to Step 5
+- AND the completion status for Step 4 MUST be marked "skipped"
#### Scenario: No group selected is equivalent to skip
-- GIVEN Step 5 with no group selected
+- GIVEN Step 4 with no group selected
- WHEN the admin clicks "Next"
- THEN no role assignment is made (equivalent to Skip)
-- AND the wizard advances to Step 6
+- AND the wizard advances to Step 5
-#### Scenario: Step 5 unavailable if admin-roles capability missing
+#### Scenario: Step 4 unavailable if admin-roles capability missing
- GIVEN the `admin-roles` capability is NOT implemented or not available
-- WHEN the wizard would display Step 5
-- THEN Step 5 MUST be skipped automatically
-- AND the step counter jumps from Step 4 to Step 6
+- WHEN the wizard would display Step 4
+- THEN Step 4 MUST be skipped automatically
+- AND the step counter jumps from Step 3 to Step 5
- NOTE: Capability dependency is gracefully handled; missing capability does not break wizard
#### Scenario: Only one group can have admin role per wizard run
-- GIVEN Step 5 is displayed
+- GIVEN Step 4 is displayed
- WHEN the admin selects "engineering" and clicks "Next"
- THEN only the "engineering" group receives the admin role (not multiple groups)
- NOTE: If the admin wishes to assign admin role to multiple groups, they must run the wizard again or use the admin roles management UI directly
-### Requirement: REQ-WIZ-007 Step 6 — Footer Configuration (Optional, Depends on footer-customization Capability)
+### Requirement: REQ-WIZ-007 Step 5 — Footer Configuration (Optional, Depends on footer-customization Capability)
-Step 6 MUST allow the admin to optionally open and configure the footer using the "Structured mode" editor. This step is skippable via a Skip button.
+Step 5 MUST allow the admin to optionally open and configure the footer using the "Structured mode" editor. This step is skippable via a Skip button.
-#### Scenario: Step 6 shows footer editor
+#### Scenario: Step 5 shows footer editor
- GIVEN the `footer-customization` capability is available
-- AND Step 6 is displayed
+- AND Step 5 is displayed
- WHEN the admin views the step
- THEN the "Structured mode" footer editor MUST be visible and functional
- AND a description MUST explain: "Customize the footer content and appearance for your intranet."
#### Scenario: Footer edits persist immediately
-- GIVEN the admin edits footer content in Step 6
+- GIVEN the admin edits footer content in Step 5
- WHEN the admin clicks "Next"
- THEN the footer configuration MUST be saved to `launchpad.footer_config` or equivalent setting
- AND navigating away does not lose the changes
-#### Scenario: Step 6 is skippable
-- GIVEN Step 6 is displayed
+#### Scenario: Step 5 is skippable
+- GIVEN Step 5 is displayed
- WHEN the admin clicks "Skip"
- THEN no footer changes are made
-- AND the wizard advances to Step 7
-- AND the completion status for Step 6 MUST be marked "skipped"
+- AND the wizard advances to Step 6
+- AND the completion status for Step 5 MUST be marked "skipped"
-#### Scenario: Step 6 unavailable if footer-customization capability missing
+#### Scenario: Step 5 unavailable if footer-customization capability missing
- GIVEN the `footer-customization` capability is NOT implemented or not available
-- WHEN the wizard would display Step 6
-- THEN Step 6 MUST be skipped automatically
-- AND the step counter jumps from Step 5 to Step 7
+- WHEN the wizard would display Step 5
+- THEN Step 5 MUST be skipped automatically
+- AND the step counter jumps from Step 4 to Step 6
- NOTE: Capability dependency is gracefully handled; missing capability does not break wizard
### Requirement: REQ-WIZ-008 Get Wizard State via API Endpoint
@@ -304,17 +268,16 @@ The system MUST expose a `GET /api/admin/setup-wizard/state` endpoint that retur
"3": "pending",
"4": "pending",
"5": "pending",
- "6": "pending",
- "7": "pending"
+ "6": "pending"
}
}
```
-- NOTE: Step 1 is always "done" (no choice required). Steps 2–7 start "pending".
+- NOTE: Step 1 is always "done" (no choice required). Steps 2–6 start "pending".
#### Scenario: Endpoint returns recommended step for re-runs
-- GIVEN a LaunchPad instance with storage backend set but group order not yet set
+- GIVEN a LaunchPad instance where the group order is not yet set
- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
-- THEN the response MUST include `currentRecommendedStep: 3`
+- THEN the response MUST include `currentRecommendedStep: 2`
- NOTE: The heuristic picks the first step with status != "done"
#### Scenario: Endpoint returns complete=true when wizard finished
@@ -329,11 +292,17 @@ The system MUST expose a `GET /api/admin/setup-wizard/state` endpoint that retur
- THEN the system MUST return HTTP 403 (Forbidden)
#### Scenario: Endpoint includes skipped step status
-- GIVEN the wizard has been run with Step 5 skipped
+- GIVEN the wizard has been run with Step 4 skipped
- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
-- THEN the response MUST include `"5": "skipped"` in stepStatuses
+- THEN the response MUST include `"4": "skipped"` in stepStatuses
- NOTE: Skipped status indicates the step was traversed but no action taken; does not block wizard completion
+#### Scenario: A stored storage choice from the retired step is ignored
+- GIVEN an instance that still holds a `content_storage` row written by the retired storage step
+- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
+- THEN `stepStatuses` MUST hold exactly six entries
+- AND the stored row MUST NOT change any step status or `currentRecommendedStep`
+
### Requirement: REQ-WIZ-009 Mark Wizard Complete via API Endpoint
The system MUST expose a `POST /api/admin/setup-wizard/complete` endpoint that idempotently sets `launchpad.setup_wizard_complete = true` and returns the current wizard state.
@@ -367,12 +336,11 @@ The system MUST expose a `POST /api/admin/setup-wizard/complete` endpoint that i
The system MUST expose a CLI command `php occ launchpad:setup` that accepts a `--config=/path/setup.yaml` argument to perform wizard setup non-interactively, ideal for Infrastructure-as-Code deployments.
-> NOTE: The YAML config schema (fields: `storage_backend`, `group_priority_order`, `demo_packages`, `admin_role_group`, `footer_config`) is formally defined in the `cli-commands` sibling spec. Optional steps (admin roles, footer) may be omitted from the config file entirely; omitting them is equivalent to skipping those steps in the wizard and does not cause an error.
+> NOTE: The YAML config schema (fields: `group_priority_order`, `demo_packages`, `admin_role_group`, `footer_config`) is formally defined in the `cli-commands` sibling spec. Optional steps (admin roles, footer) may be omitted from the config file entirely; omitting them is equivalent to skipping those steps in the wizard and does not cause an error.
#### Scenario: CLI command accepts YAML config file
- GIVEN a YAML file `/tmp/setup.yaml` with content:
```yaml
- storage_backend: "groupfolder"
group_priority_order: ["engineering", "sales"]
demo_packages: ["engineering-demo", "sales-demo"]
admin_role_group: "engineering"
@@ -382,31 +350,36 @@ The system MUST expose a CLI command `php occ launchpad:setup` that accepts a `-
```
- WHEN an admin runs `php occ launchpad:setup --config=/tmp/setup.yaml`
- THEN the system MUST:
- - Set `launchpad.content_storage = "groupfolder"` (Step 2)
- - Set `launchpad.group_priority_order = ["engineering", "sales"]` (Step 3)
- - Install "engineering-demo" and "sales-demo" (Step 4)
- - Assign "Dashboard Admin" role to "engineering" (Step 5)
- - Set `launchpad.footer_config` with provided config (Step 6)
- - Set `launchpad.setup_wizard_complete = true` (Step 7)
+ - Set `launchpad.group_priority_order = ["engineering", "sales"]` (Step 2)
+ - Install "engineering-demo" and "sales-demo" (Step 3)
+ - Assign "Dashboard Admin" role to "engineering" (Step 4)
+ - Set `launchpad.footer_config` with provided config (Step 5)
+ - Set `launchpad.setup_wizard_complete = true` (Step 6)
#### Scenario: CLI command validates YAML schema
-- GIVEN a malformed YAML file (e.g., missing required fields)
+- GIVEN a YAML file whose top level is not a map, or whose `group_priority_order` is not a list
- WHEN `php occ launchpad:setup --config=/tmp/setup.yaml` is run
-- THEN the system MUST output an error: "Invalid setup.yaml: missing field 'storage_backend'"
+- THEN the system MUST output an error starting with "Invalid setup.yaml:"
- AND the command MUST exit with non-zero status
-- AND no settings are applied
+
+#### Scenario: An old config that still sets storage_backend keeps working
+- GIVEN a YAML file written for the seven-step wizard, with `storage_backend: "groupfolder"`
+- WHEN `php occ launchpad:setup --config=/tmp/setup.yaml` is run
+- THEN the command MUST print that `storage_backend` is no longer used and was ignored
+- AND it MUST apply the other steps and exit with status 0
+- AND it MUST NOT write `launchpad.content_storage`
#### Scenario: CLI command is verbose by default
- GIVEN the command runs successfully
- WHEN the output is examined
-- THEN it MUST show progress: "Step 1: Welcome... done", "Step 2: Storage backend... done", etc.
+- THEN it MUST show progress: "Step 1: Welcome... done", "Step 2: Group order... done", etc.
- AND final message: "Setup wizard completed successfully."
#### Scenario: CLI command skips optional steps if not in config
-- GIVEN a YAML file with only `storage_backend` and `group_priority_order`
+- GIVEN a YAML file with only `group_priority_order`
- WHEN the command runs
-- THEN Steps 5 and 6 MUST be skipped (no error)
-- AND Steps 2 and 3 MUST execute with provided values
+- THEN Steps 4 and 5 MUST be skipped (no error)
+- AND Step 2 MUST execute with the provided value
- AND the wizard completes
#### Scenario: CLI command is idempotent
@@ -424,27 +397,20 @@ The wizard MUST be re-runnable even after `launchpad.setup_wizard_complete = tru
- GIVEN a LaunchPad instance with `launchpad.setup_wizard_complete = true`
- WHEN an NC admin navigates to `/apps/launchpad/admin` and clicks "Run setup wizard again" (or uses a Re-run button in a separate admin UI section)
- THEN the wizard modal MUST open
-- AND all step values MUST reflect current settings (storage backend, group order, etc.)
+- AND all step values MUST reflect current settings (group order, demo data, etc.)
- AND the admin can make changes
-#### Scenario: Re-running from Step 2 updates storage backend
-- GIVEN the instance has `launchpad.content_storage = "database"`
-- AND the admin re-runs the wizard and navigates to Step 2
-- WHEN the admin selects "GroupFolder" and clicks Next
-- THEN the system MUST update `launchpad.content_storage = "groupfolder"`
-- AND the previous choice "database" is overwritten (not appended or merged)
-
#### Scenario: Re-running does not re-install demo packages
- GIVEN the instance has already installed "engineering-demo"
-- AND the admin re-runs the wizard to Step 4
+- AND the admin re-runs the wizard to Step 3
- WHEN the admin unchecks "engineering-demo" and clicks Next
- THEN the system MUST NOT re-install the demo (it's already there)
- NOTE: Demo installation is one-time; re-running the wizard does not trigger redundant installations. If the admin wishes to un-install, they must use a separate admin UI for demo management.
#### Scenario: Re-running preserves skipped steps
-- GIVEN the wizard was run previously with Step 5 skipped
+- GIVEN the wizard was run previously with Step 4 skipped
- AND the admin re-runs the wizard
-- WHEN Step 5 is displayed
+- WHEN Step 4 is displayed
- THEN the step MUST show "Skip" button as before
- AND if the admin clicks Skip again, the behavior is consistent with the first run
diff --git a/src/components/admin/AdminSettings.vue b/src/components/admin/AdminSettings.vue
index b700af41b..ed25f08d8 100644
--- a/src/components/admin/AdminSettings.vue
+++ b/src/components/admin/AdminSettings.vue
@@ -24,7 +24,7 @@
{{
t(
'launchpad',
- 'Get your intranet started: choose storage, configure groups, install demo data, and set up admin roles.',
+ 'Get your intranet started: configure groups, install demo data, and set up admin roles.',
)
}}
diff --git a/src/modals/SetupWizardModal.vue b/src/modals/SetupWizardModal.vue
index 3b5f9c418..8d196dd28 100644
--- a/src/modals/SetupWizardModal.vue
+++ b/src/modals/SetupWizardModal.vue
@@ -29,85 +29,14 @@
{{
t(
'launchpad',
- 'Configure your LaunchPad instance with storage, group ordering, demo data, admin roles, and footer settings.',
+ 'Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings.',
)
}}
-
+
{{
@@ -231,10 +160,11 @@ import { logger } from '../utils/logger.js'
* SetupWizardModal — multi-step first-run wizard (REQ-WIZ-002).
*
* The shell owns navigation state; per-step bodies inline simple UI for
- * Welcome / Storage / Done and embed canonical sibling components for
- * Group order. Steps 4-6 render lightweight stubs because their sibling
- * capabilities (demo-data-showcases, admin-roles, footer-customization)
- * ship on parallel branches; the merge agent reconciles by replacing
+ * Welcome / Done and embed canonical sibling components for Group order.
+ * The storage step was retired (decision 131). Steps 3-5 render
+ * lightweight stubs because their sibling capabilities
+ * (demo-data-showcases, admin-roles, footer-customization) ship on
+ * parallel branches; the merge agent reconciles by replacing
* the stub blocks with the real embeds.
*/
export default {
@@ -252,10 +182,8 @@ export default {
data() {
return {
currentStep: 1,
- totalSteps: 7,
+ totalSteps: 6,
loading: false,
- storage: 'database',
- groupfolderAvailable: false,
completed: false,
}
},
@@ -276,8 +204,6 @@ export default {
try {
const { data } = await api.getSetupWizardState()
if (data) {
- this.storage = data.contentStorage || 'database'
- this.groupfolderAvailable = !!data.groupfolderAvailable
if (data.currentRecommendedStep && !data.complete) {
this.currentStep = Math.max(
1,
@@ -287,7 +213,7 @@ export default {
}
} catch (error) {
// REQ-WIZ-008: a failed state read MUST NOT block the wizard.
- // Default to Step 1 with a Database default.
+ // Default to Step 1.
logger.warn('Failed to load wizard state', error)
}
},
@@ -299,10 +225,6 @@ export default {
}
this.loading = true
try {
- if (this.currentStep === 2) {
- await api.setSetupWizardStorage(this.storage)
- }
-
if (this.isFinalStep) {
await api.completeSetupWizard()
this.completed = true
@@ -379,26 +301,6 @@ export default {
margin: 0 0 8px;
}
-.setup-wizard__radio {
- display: flex;
- gap: 12px;
- padding: 12px;
- border: 1px solid var(--color-border);
- border-radius: var(--border-radius);
- cursor: pointer;
-}
-
-.setup-wizard__radio--disabled {
- opacity: 0.5;
- cursor: not-allowed;
-}
-
-.setup-wizard__hint {
- color: var(--color-text-maxcontrast);
- margin: 4px 0 0;
- font-size: 13px;
-}
-
.setup-wizard__note {
padding: 12px;
background: var(--color-background-dark);
diff --git a/src/modals/__tests__/SetupWizardModal.spec.js b/src/modals/__tests__/SetupWizardModal.spec.js
index 1133ad915..34a28b231 100644
--- a/src/modals/__tests__/SetupWizardModal.spec.js
+++ b/src/modals/__tests__/SetupWizardModal.spec.js
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: EUPL-1.2
*
* Vitest unit tests for `SetupWizardModal.vue`. Covers REQ-WIZ-002
- * (multi-step shell), REQ-WIZ-003 (storage backend persistence on
- * Step 2 → Next), REQ-WIZ-008 (state load on mount), and REQ-WIZ-009
- * (Finish triggers `completeSetupWizard`).
+ * (six-step shell; the storage step was retired by decision 131),
+ * REQ-WIZ-008 (state load on mount), and REQ-WIZ-009 (Finish triggers
+ * `completeSetupWizard`).
*
* The `api` module is mocked at the import boundary so no HTTP traffic
* is generated. The embedded `GroupPriorityOrder` is stubbed to avoid
@@ -20,7 +20,6 @@ import { api } from '../../services/api.js'
vi.mock('../../services/api.js', () => ({
api: {
getSetupWizardState: vi.fn(),
- setSetupWizardStorage: vi.fn(),
completeSetupWizard: vi.fn(),
},
}))
@@ -51,14 +50,9 @@ beforeEach(() => {
data: {
complete: false,
currentRecommendedStep: 1,
- contentStorage: 'database',
- groupfolderAvailable: true,
stepStatuses: { 1: 'done', 2: 'pending' },
},
})
- api.setSetupWizardStorage
- .mockReset()
- .mockResolvedValue({ data: { complete: false } })
api.completeSetupWizard
.mockReset()
.mockResolvedValue({ data: { complete: true } })
@@ -97,7 +91,7 @@ describe('SetupWizardModal', () => {
expect(wrapper.find('[data-test="setup-wizard-counter"]').exists()).toBe(
true,
)
- expect(wrapper.vm.totalSteps).toBe(7)
+ expect(wrapper.vm.totalSteps).toBe(6)
})
it('REQ-WIZ-002: Next advances; Back returns; counter updates', async () => {
@@ -112,30 +106,24 @@ describe('SetupWizardModal', () => {
expect(wrapper.vm.currentStep).toBe(1)
})
- it('REQ-WIZ-003: Step 2 Next persists the storage choice via the API', async () => {
+ it('decision 131: Step 2 is the group order and no storage step renders', async () => {
const wrapper = mountWizard()
await flush()
- // Advance to Step 2.
await wrapper.find('[data-test="setup-wizard-next"]').trigger('click')
await flush()
expect(wrapper.vm.currentStep).toBe(2)
-
- // Change selection then click Next.
- wrapper.vm.storage = 'groupfolder'
- await wrapper.find('[data-test="setup-wizard-next"]').trigger('click')
- await flush()
-
- expect(api.setSetupWizardStorage).toHaveBeenCalledWith('groupfolder')
- expect(wrapper.vm.currentStep).toBe(3)
+ expect(wrapper.find('.group-priority-stub').exists()).toBe(true)
+ expect(wrapper.find('[data-test="storage-database"]').exists()).toBe(false)
+ expect(wrapper.find('[data-test="storage-groupfolder"]').exists()).toBe(false)
})
- it('REQ-WIZ-002: Step 7 Next is labelled Finish and calls completeSetupWizard', async () => {
+ it('REQ-WIZ-002: Step 6 Next is labelled Finish and calls completeSetupWizard', async () => {
const wrapper = mountWizard()
await flush()
- // Jump straight to step 7 to keep the test focused.
- wrapper.vm.currentStep = 7
+ // Jump straight to step 6 to keep the test focused.
+ wrapper.vm.currentStep = 6
await flush()
// The Vue mixin's t() stub returns the bare key; the component
@@ -150,27 +138,6 @@ describe('SetupWizardModal', () => {
expect(wrapper.emitted('close')).toBeTruthy()
})
- it('REQ-WIZ-003: GroupFolder radio is disabled when the app is missing', async () => {
- api.getSetupWizardState.mockResolvedValueOnce({
- data: {
- complete: false,
- currentRecommendedStep: 1,
- contentStorage: 'database',
- groupfolderAvailable: false,
- stepStatuses: { 1: 'done' },
- },
- })
- const wrapper = mountWizard()
- await flush()
-
- // Advance to step 2.
- await wrapper.find('[data-test="setup-wizard-next"]').trigger('click')
- await flush()
-
- const radio = wrapper.find('[data-test="storage-groupfolder"]')
- expect(radio.attributes('disabled')).toBeDefined()
- })
-
it('REQ-WIZ-002: Skip advances without committing on optional steps', async () => {
const wrapper = mountWizard()
await flush()
@@ -179,6 +146,6 @@ describe('SetupWizardModal', () => {
await wrapper.find('[data-test="setup-wizard-skip"]').trigger('click')
expect(wrapper.vm.currentStep).toBe(5)
- expect(api.setSetupWizardStorage).not.toHaveBeenCalled()
+ expect(api.completeSetupWizard).not.toHaveBeenCalled()
})
})
diff --git a/src/services/api.js b/src/services/api.js
index 05ddcb2f4..22eccc485 100644
--- a/src/services/api.js
+++ b/src/services/api.js
@@ -952,17 +952,6 @@ export const api = {
return axios.post(`${baseUrl}/api/admin/setup-wizard/complete`)
},
- /**
- * Persist the setup wizard's content-storage choice (REQ-WIZ-003).
- *
- * @param {string} storage Backend to store widget content in —
- * `database` or `groupfolder`.
- * @return {Promise} Axios response resolving to the updated wizard state.
- */
- setSetupWizardStorage(storage) {
- return axios.post(`${baseUrl}/api/admin/setup-wizard/storage`, { storage })
- },
-
/**
* Export dashboards as a downloadable archive (REQ-EXIM-002..004).
* Requires Nextcloud-admin, gated server-side; the admin UI renders the
diff --git a/tests/Unit/Controller/AdminControllerSetupWizardTest.php b/tests/Unit/Controller/AdminControllerSetupWizardTest.php
index 94c2a8afb..b4fd958cf 100644
--- a/tests/Unit/Controller/AdminControllerSetupWizardTest.php
+++ b/tests/Unit/Controller/AdminControllerSetupWizardTest.php
@@ -3,9 +3,9 @@
/**
* AdminController Setup-Wizard Test
*
- * Covers the `getWizardState`, `completeWizard`, and `setWizardStorage`
- * endpoints added by the `setup-wizard` change (REQ-WIZ-008, REQ-WIZ-009,
- * REQ-WIZ-003).
+ * Covers the `getWizardState` and `completeWizard` endpoints added by the
+ * `setup-wizard` change (REQ-WIZ-008, REQ-WIZ-009), and pins that the
+ * retired storage-step endpoint stays gone (decision 131).
*
* @category Test
* @package OCA\LaunchPad\Tests\Unit\Controller
@@ -136,52 +136,13 @@ public function testCompleteWizardRejectsNonAdminWith403(): void {
$this->assertSame(Http::STATUS_FORBIDDEN, $response->getStatus());
}
- public function testSetWizardStorageRejectsEmptyValue(): void {
- $this->loginAsAdmin();
- $this->wizardService->expects($this->never())->method('setContentStorage');
-
- $response = $this->controller->setWizardStorage(storage: '');
-
- $this->assertSame(Http::STATUS_BAD_REQUEST, $response->getStatus());
- }
-
- public function testSetWizardStorageRejectsGroupfolderWhenAppMissing(): void {
- $this->loginAsAdmin();
- $this->wizardService->method('hasGroupfolderApp')->willReturn(false);
- $this->wizardService->expects($this->never())->method('setContentStorage');
-
- $response = $this->controller->setWizardStorage(storage: 'groupfolder');
-
- $this->assertSame(Http::STATUS_BAD_REQUEST, $response->getStatus());
- }
-
- public function testSetWizardStorageWritesAndReturnsState(): void {
- $this->loginAsAdmin();
- $this->wizardService->method('hasGroupfolderApp')->willReturn(true);
-
- $this->wizardService->expects($this->once())
- ->method('setContentStorage')
- ->with('groupfolder');
-
- $payload = [
- 'complete' => false,
- 'currentRecommendedStep' => 3,
- 'stepStatuses' => ['2' => 'done'],
- ];
- $this->wizardService->method('getWizardState')->willReturn($payload);
-
- $response = $this->controller->setWizardStorage(storage: 'groupfolder');
-
- $this->assertSame(Http::STATUS_OK, $response->getStatus());
- $this->assertSame($payload, $response->getData());
- }
-
- public function testSetWizardStorageReturns401WhenLoggedOut(): void {
- $this->userSession->method('getUser')->willReturn(null);
- $this->wizardService->expects($this->never())->method('setContentStorage');
-
- $response = $this->controller->setWizardStorage(storage: 'database');
+ public function testTheStorageStepEndpointIsRetired(): void {
+ // Decision 131: the wizard no longer asks where content is stored.
+ $this->assertFalse(method_exists(AdminController::class, 'setWizardStorage'));
- $this->assertSame(Http::STATUS_UNAUTHORIZED, $response->getStatus());
+ $routes = file_get_contents(__DIR__ . '/../../../appinfo/routes.php');
+ $this->assertIsString($routes);
+ $this->assertStringNotContainsString('setup-wizard/storage', $routes);
+ $this->assertStringNotContainsString('setWizardStorage', $routes);
}
}
diff --git a/tests/Unit/Db/AdminSettingKeyTest.php b/tests/Unit/Db/AdminSettingKeyTest.php
index 1d8d601e7..dd6f9c3a9 100644
--- a/tests/Unit/Db/AdminSettingKeyTest.php
+++ b/tests/Unit/Db/AdminSettingKeyTest.php
@@ -87,7 +87,6 @@ public static function bcAliasProvider(): array {
'FOOTER_BACKGROUND_COLOR' => [AdminSetting::KEY_FOOTER_BACKGROUND_COLOR, AdminSettingKey::FOOTER_BACKGROUND_COLOR],
'FOOTER_TEXT_COLOR' => [AdminSetting::KEY_FOOTER_TEXT_COLOR, AdminSettingKey::FOOTER_TEXT_COLOR],
'SETUP_WIZARD_COMPLETE' => [AdminSetting::KEY_SETUP_WIZARD_COMPLETE, AdminSettingKey::SETUP_WIZARD_COMPLETE],
- 'CONTENT_STORAGE' => [AdminSetting::KEY_CONTENT_STORAGE, AdminSettingKey::CONTENT_STORAGE],
];
}//end bcAliasProvider()
@@ -111,7 +110,6 @@ public function testFromWorksForEveryAlias(): void {
AdminSetting::KEY_FOOTER_BACKGROUND_COLOR,
AdminSetting::KEY_FOOTER_TEXT_COLOR,
AdminSetting::KEY_SETUP_WIZARD_COMPLETE,
- AdminSetting::KEY_CONTENT_STORAGE,
];
foreach ($aliases as $alias) {
@@ -120,4 +118,15 @@ public function testFromWorksForEveryAlias(): void {
$this->assertSame(expected: $alias, actual: $case->value);
}
}//end testFromWorksForEveryAlias()
+
+ /**
+ * Decision 131: the content storage key is retired; a stored row is
+ * left unread, so the enum must not resolve it.
+ *
+ * @return void
+ */
+ public function testContentStorageKeyIsRetired(): void {
+ $this->assertNull(AdminSettingKey::tryFrom('content_storage'));
+ $this->assertFalse(defined(AdminSetting::class . '::KEY_CONTENT_STORAGE'));
+ }//end testContentStorageKeyIsRetired()
}//end class
diff --git a/tests/Unit/Service/AdminSettingsServiceTest.php b/tests/Unit/Service/AdminSettingsServiceTest.php
index 131e203d3..a77e867e2 100644
--- a/tests/Unit/Service/AdminSettingsServiceTest.php
+++ b/tests/Unit/Service/AdminSettingsServiceTest.php
@@ -72,7 +72,6 @@ public function testGetSettingsReturnsExactlyTheDocumentedKeysAtTheirDefaults():
'allowMultipleDashboards' => true,
'defaultGridColumns' => 12,
'linkCreateFileExtensions' => ['txt', 'md', 'docx', 'xlsx', 'csv', 'odt'],
- 'launchpad.content_storage' => 'database',
'defaultSharePermissionLevel' => 'add_only',
'forcedShareGroups' => [],
'legacyWidgetBridgeEnabled' => false,
@@ -155,8 +154,8 @@ public function testGetSettingsReturnsCamelCaseKeys(): void {
$this->assertArrayHasKey('allowMultipleDashboards', $settings);
$this->assertArrayHasKey('defaultGridColumns', $settings);
$this->assertArrayHasKey('linkCreateFileExtensions', $settings);
- // REQ-GFSB-006: content storage backend key added.
- $this->assertArrayHasKey('launchpad.content_storage', $settings);
+ // Decision 131: the content storage key is retired.
+ $this->assertArrayNotHasKey('launchpad.content_storage', $settings);
// dashboard-sharing + legacy-widget-bridge spec keys.
$this->assertArrayHasKey('defaultSharePermissionLevel', $settings);
$this->assertArrayHasKey('forcedShareGroups', $settings);
diff --git a/tests/Unit/Service/SetupWizardServiceTest.php b/tests/Unit/Service/SetupWizardServiceTest.php
index ce7840d91..0b3f93f05 100644
--- a/tests/Unit/Service/SetupWizardServiceTest.php
+++ b/tests/Unit/Service/SetupWizardServiceTest.php
@@ -3,9 +3,9 @@
/**
* SetupWizardService Test
*
- * Covers REQ-WIZ-001 (state flag), REQ-WIZ-003 (storage backend
- * persistence + GroupFolder gate), REQ-WIZ-008 (wizard state heuristic),
- * and REQ-WIZ-009 (idempotent completion).
+ * Covers REQ-WIZ-001 (state flag), REQ-WIZ-008 (wizard state heuristic),
+ * REQ-WIZ-009 (idempotent completion) and the retired storage step
+ * (decision 131: six steps, a stored content_storage value stays unread).
*
* @category Test
* @package OCA\LaunchPad\Tests\Unit\Service
@@ -21,11 +21,9 @@
namespace Unit\Service;
-use InvalidArgumentException;
use OCA\LaunchPad\Db\AdminSetting;
use OCA\LaunchPad\Db\AdminSettingMapper;
use OCA\LaunchPad\Service\SetupWizardService;
-use OCP\App\IAppManager;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
@@ -35,15 +33,10 @@ class SetupWizardServiceTest extends TestCase {
/** @var AdminSettingMapper&MockObject */
private $settingMapper;
- /** @var IAppManager&MockObject */
- private $appManager;
-
protected function setUp(): void {
$this->settingMapper = $this->createMock(AdminSettingMapper::class);
- $this->appManager = $this->createMock(IAppManager::class);
$this->service = new SetupWizardService(
- settingMapper: $this->settingMapper,
- appManager: $this->appManager
+ settingMapper: $this->settingMapper
);
}
@@ -56,28 +49,59 @@ public function testGetWizardStateOnFreshInstance(): void {
$state = $this->service->getWizardState();
$this->assertFalse($state['complete']);
+ // Decision 131: the storage step is retired, so Step 2 is the
+ // group order and it is the first step left to do.
+ $this->assertSame(2, $state['currentRecommendedStep']);
+ $this->assertSame(
+ [
+ 1 => 'done',
+ 2 => 'pending',
+ 3 => 'skipped',
+ 4 => 'skipped',
+ 5 => 'skipped',
+ 6 => 'pending',
+ ],
+ $state['stepStatuses']
+ );
+ }
+
+ public function testWizardHasSixStepsWithoutAStorageStep(): void {
+ $this->assertSame(6, SetupWizardService::STEP_COUNT);
+ $this->assertFalse(method_exists(SetupWizardService::class, 'setContentStorage'));
+ $this->assertFalse(method_exists(SetupWizardService::class, 'getContentStorage'));
+ $this->assertFalse(method_exists(SetupWizardService::class, 'hasGroupfolderApp'));
+ }
+
+ public function testAStoredContentStorageValueIsLeftUnread(): void {
+ $this->settingMapper->method('getValue')
+ ->with(AdminSetting::KEY_SETUP_WIZARD_COMPLETE, false)
+ ->willReturn(false);
+ // A row written by the retired step stays in the table; the state
+ // must not change because of it.
+ $this->settingMapper->method('getAllAsArray')->willReturn([
+ 'content_storage' => 'groupfolder',
+ ]);
+
+ $state = $this->service->getWizardState();
+
$this->assertSame(2, $state['currentRecommendedStep']);
- $this->assertSame('done', $state['stepStatuses']['1']);
+ $this->assertCount(6, $state['stepStatuses']);
$this->assertSame('pending', $state['stepStatuses']['2']);
- $this->assertSame('pending', $state['stepStatuses']['3']);
- $this->assertSame('skipped', $state['stepStatuses']['4']);
- $this->assertSame('skipped', $state['stepStatuses']['5']);
- $this->assertSame('skipped', $state['stepStatuses']['6']);
- $this->assertSame('pending', $state['stepStatuses']['7']);
}
- public function testGetWizardStateAfterStorageWritten(): void {
+ public function testGetWizardStateAfterGroupOrderWritten(): void {
$this->settingMapper->method('getValue')
->with(AdminSetting::KEY_SETUP_WIZARD_COMPLETE, false)
->willReturn(false);
$this->settingMapper->method('getAllAsArray')->willReturn([
- AdminSetting::KEY_CONTENT_STORAGE => 'database',
+ AdminSetting::KEY_GROUP_ORDER => ['engineering'],
]);
$state = $this->service->getWizardState();
$this->assertSame('done', $state['stepStatuses']['2']);
- // Step 3 still pending so the recommended step jumps to 3.
+ // Steps 3 and 4 are 'skipped' (sibling capabilities pending), so
+ // the first non-'done' step is 3.
$this->assertSame(3, $state['currentRecommendedStep']);
}
@@ -86,7 +110,6 @@ public function testGetWizardStateAfterCompletion(): void {
->with(AdminSetting::KEY_SETUP_WIZARD_COMPLETE, false)
->willReturn(true);
$this->settingMapper->method('getAllAsArray')->willReturn([
- AdminSetting::KEY_CONTENT_STORAGE => 'database',
AdminSetting::KEY_GROUP_ORDER => ['engineering'],
AdminSetting::KEY_FOOTER_CONFIG => ['layout' => 'structured'],
]);
@@ -94,13 +117,13 @@ public function testGetWizardStateAfterCompletion(): void {
$state = $this->service->getWizardState();
$this->assertTrue($state['complete']);
- $this->assertSame('done', $state['stepStatuses']['7']);
$this->assertSame('done', $state['stepStatuses']['6']);
- // Steps 4/5 are 'skipped' (sibling capabilities pending), so the
- // first non-'done' status is Step 4. The wizard "complete" flag
+ $this->assertSame('done', $state['stepStatuses']['5']);
+ // Steps 3/4 are 'skipped' (sibling capabilities pending), so the
+ // first non-'done' status is Step 3. The wizard "complete" flag
// is the source of truth for hiding the banner; the recommended
// step is purely a UX hint per REQ-WIZ-008.
- $this->assertSame(4, $state['currentRecommendedStep']);
+ $this->assertSame(3, $state['currentRecommendedStep']);
}
public function testMarkWizardCompleteSetsFlagAndReturnsState(): void {
@@ -132,46 +155,4 @@ public function testMarkWizardCompleteIsIdempotent(): void {
$this->assertSame($first, $second);
}
-
- public function testGetGroupfolderAvailabilityDelegates(): void {
- $this->appManager
- ->expects($this->once())
- ->method('isInstalled')
- ->with('groupfolders')
- ->willReturn(true);
-
- $this->assertTrue($this->service->hasGroupfolderApp());
- }
-
- public function testSetContentStorageRejectsUnsupportedValue(): void {
- $this->settingMapper->expects($this->never())->method('setSetting');
- $this->expectException(InvalidArgumentException::class);
-
- $this->service->setContentStorage(value: 'cassette-tape');
- }
-
- public function testSetContentStoragePersistsKnownValues(): void {
- $this->settingMapper
- ->expects($this->once())
- ->method('setSetting')
- ->with(AdminSetting::KEY_CONTENT_STORAGE, 'groupfolder');
-
- $this->service->setContentStorage(value: SetupWizardService::STORAGE_GROUPFOLDER);
- }
-
- public function testGetContentStorageDefaultsToDatabase(): void {
- $this->settingMapper->method('getValue')
- ->with(AdminSetting::KEY_CONTENT_STORAGE, null)
- ->willReturn(null);
-
- $this->assertSame('database', $this->service->getContentStorage());
- }
-
- public function testGetContentStorageReturnsPersisted(): void {
- $this->settingMapper->method('getValue')
- ->with(AdminSetting::KEY_CONTENT_STORAGE, null)
- ->willReturn('groupfolder');
-
- $this->assertSame('groupfolder', $this->service->getContentStorage());
- }
}
diff --git a/tests/integration/launchpad.postman_collection.json b/tests/integration/launchpad.postman_collection.json
index cd18e12bb..1f5877a50 100644
--- a/tests/integration/launchpad.postman_collection.json
+++ b/tests/integration/launchpad.postman_collection.json
@@ -4818,48 +4818,6 @@
}
]
},
- {
- "name": "POST /api/admin/setup-wizard/storage",
- "request": {
- "method": "POST",
- "header": [
- {
- "key": "Content-Type",
- "value": "application/json"
- }
- ],
- "body": {
- "mode": "raw",
- "raw": "{\"storage\":\"openregister\"}"
- },
- "url": {
- "raw": "{{baseUrl}}/index.php/apps/launchpad/api/admin/setup-wizard/storage",
- "host": [
- "{{baseUrl}}"
- ],
- "path": [
- "index.php",
- "apps",
- "launchpad",
- "api",
- "admin",
- "setup-wizard",
- "storage"
- ]
- }
- },
- "event": [
- {
- "listen": "test",
- "script": {
- "type": "text/javascript",
- "exec": [
- "pm.test('2xx or 4xx', () => pm.expect([200, 204, 400, 403]).to.include(pm.response.code));"
- ]
- }
- }
- ]
- },
{
"name": "POST /api/admin/setup-wizard/complete",
"request": {
diff --git a/tools/spec-annotations-allowlist.txt b/tools/spec-annotations-allowlist.txt
index b772a7cf2..03085f434 100644
--- a/tools/spec-annotations-allowlist.txt
+++ b/tools/spec-annotations-allowlist.txt
@@ -39,7 +39,6 @@ OCA\LaunchPad\Controller\AdminController::refreshFeedsNow
OCA\LaunchPad\Controller\AdminController::uploadTemplatePreviewImage
OCA\LaunchPad\Controller\AdminController::getWizardState
OCA\LaunchPad\Controller\AdminController::completeWizard
-OCA\LaunchPad\Controller\AdminController::setWizardStorage
OCA\LaunchPad\Controller\AdminDemoShowcasesController::index
OCA\LaunchPad\Controller\AdminDemoShowcasesController::install
OCA\LaunchPad\Controller\AdminDemoShowcasesController::destroy
@@ -671,9 +670,6 @@ OCA\LaunchPad\Service\RoleService::isViewer
OCA\LaunchPad\Service\RoleService::canMutate
OCA\LaunchPad\Service\SetupWizardService::getWizardState
OCA\LaunchPad\Service\SetupWizardService::markWizardComplete
-OCA\LaunchPad\Service\SetupWizardService::hasGroupfolderApp
-OCA\LaunchPad\Service\SetupWizardService::setContentStorage
-OCA\LaunchPad\Service\SetupWizardService::getContentStorage
OCA\LaunchPad\Service\SvgSanitiser::sanitize
OCA\LaunchPad\Service\TileUpdater::applyTileConfig
OCA\LaunchPad\Service\TileUpdater::applyTileUpdates
From e9c6b019b5c1d0a8f841e61b9f7042233157b544 Mon Sep 17 00:00:00 2001
From: Ruben van der Linde
Date: Fri, 9 Oct 2026 23:11:08 +0200
Subject: [PATCH 4/8] feat(setup-wizard): the wizard has six steps, the storage
step and its endpoint are gone
Decision 131 (Q-launchpad-1): drop setup-wizard step 2, POST
/api/admin/setup-wizard/storage, AdminSettingKey::CONTENT_STORAGE and the
three SetupWizardService storage methods. A stored content_storage row stays
unread. occ launchpad:setup no longer needs storage_backend and says an old
field was ignored. GET /api/admin/settings returns twelve keys.
The code half landed in the coordinator's wip daa7a920; this commit adds the
command test, the two test fixes for the twelve-key settings, the formatted
Vitest spec and the archived change.
---
.../proposal.md | 33 ++
.../specs/admin-settings/spec.md | 61 +++
.../specs/setup-wizard/spec.md | 397 ++++++++++++++++++
.../tasks.md | 11 +
src/modals/__tests__/SetupWizardModal.spec.js | 4 +-
tests/Unit/Command/SetupCommandTest.php | 109 +++++
.../AdminControllerSettingsAliasTest.php | 1 -
.../Unit/Service/AdminSettingsServiceTest.php | 2 +-
8 files changed, 615 insertions(+), 3 deletions(-)
create mode 100644 openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/proposal.md
create mode 100644 openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/admin-settings/spec.md
create mode 100644 openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/setup-wizard/spec.md
create mode 100644 openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/tasks.md
create mode 100644 tests/Unit/Command/SetupCommandTest.php
diff --git a/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/proposal.md b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/proposal.md
new file mode 100644
index 000000000..e73e2dd2e
--- /dev/null
+++ b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/proposal.md
@@ -0,0 +1,33 @@
+# Proposal: retire setup-wizard step 2 (content storage)
+
+## Why
+
+The group-folder storage backend was retired (archived change
+`2026-10-09-retire-groupfolder-storage-backend`). Setup-wizard step 2 still asked
+the admin where dashboard content is stored and saved `launchpad.content_storage`,
+a setting nothing reads. The question was Q-launchpad-1; Ruben answered it on
+9 Oct 2026 (decision 131): retire the step.
+
+## What
+
+- The wizard has six steps: Welcome, Group order, Demo data, Admin roles, Footer,
+ Done. The storage step, its radio options and its strings are gone.
+- `POST /api/admin/setup-wizard/storage` and `AdminController::setWizardStorage()`
+ are removed.
+- `AdminSettingKey::CONTENT_STORAGE`, `AdminSetting::KEY_CONTENT_STORAGE` and
+ `SetupWizardService::{getContentStorage,setContentStorage,hasGroupfolderApp}`
+ are removed, with the now unused `IAppManager` dependency.
+- `GET /api/admin/settings` no longer returns `launchpad.content_storage`, and
+ `PUT /api/admin/settings` no longer accepts `launchpadContentStorage` (an old
+ client that still sends it is ignored, like any unknown key).
+- `occ launchpad:setup` no longer requires `storage_backend`. An old YAML file
+ that still carries it runs as before and prints that the field was ignored.
+- A stored `content_storage` row stays in `oc_launchpad_admin_settings`, unread.
+ No migration deletes it.
+
+## Impact
+
+- Specs: `setup-wizard` (REQ-WIZ-003 removed, steps renumbered),
+ `admin-settings` (REQ-ASET-001 has twelve keys).
+- No register or schema change, so no `info.xml` version bump is needed.
+- No matrix row carries this change.
diff --git a/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/admin-settings/spec.md b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/admin-settings/spec.md
new file mode 100644
index 000000000..6b79da23d
--- /dev/null
+++ b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/admin-settings/spec.md
@@ -0,0 +1,61 @@
+# Delta: admin-settings
+
+## MODIFIED Requirements
+
+### Requirement: Retrieve Admin Settings (REQ-ASET-001)
+
+Administrators MUST be able to retrieve all current admin settings via the API. The endpoint returns a flat JSON object with the twelve settings listed under Defined Settings, each under its API response key. `group_order` is not among them; it has its own endpoints (REQ-ASET-012).
+
+#### Scenario: Get all settings with defaults
+- GIVEN no admin settings have been explicitly configured (fresh installation)
+- WHEN the admin sends GET /api/admin/settings
+- THEN the system MUST return HTTP 200 with all twelve settings at their default values:
+ ```json
+ {
+ "defaultPermissionLevel": "add_only",
+ "allowUserDashboards": false,
+ "allowMultipleDashboards": true,
+ "defaultGridColumns": 12,
+ "linkCreateFileExtensions": ["txt", "md", "docx", "xlsx", "csv", "odt"],
+ "defaultSharePermissionLevel": "add_only",
+ "forcedShareGroups": [],
+ "legacyWidgetBridgeEnabled": false,
+ "maxDashboardsPerUser": 0,
+ "maxWidgetsPerDashboard": 0,
+ "quicksearchFallbackTarget": "none",
+ "startPageWithoutNavigation": false
+ }
+ ```
+- NOTE: `allowUserDashboards` defaults to `false` (REQ-ASET-003) — admins MUST opt in to personal dashboard creation.
+
+#### Scenario: Get settings after modification
+- GIVEN the admin has set `allowUserDashboards` to `false`
+- WHEN the admin sends GET /api/admin/settings
+- THEN the response MUST carry `"allowUserDashboards": false`
+- AND the other eleven keys MUST still be present with their current values
+
+#### Scenario: Non-admin user retrieves settings
+- GIVEN a regular user "alice"
+- WHEN she sends GET /api/admin/settings
+- THEN the system MUST return HTTP 403
+- AND admin settings MUST NOT be exposed to non-admin users
+
+#### Scenario: Settings used by non-admin endpoints
+- GIVEN the admin has set `allowUserDashboards` to `false`
+- WHEN user "alice" sends POST /api/dashboard (to create a dashboard)
+- THEN the system MUST internally check the `allowUserDashboards` setting via `PermissionService::canCreateDashboard()`
+- AND the non-admin user MUST NOT need to call GET /api/admin/settings to experience the effect
+
+#### Scenario: Settings response format consistency
+- GIVEN the admin has configured various settings at different times
+- WHEN GET /api/admin/settings is called
+- THEN the response MUST always return exactly the twelve keys listed under Defined Settings: `defaultPermissionLevel`, `allowUserDashboards`, `allowMultipleDashboards`, `defaultGridColumns`, `linkCreateFileExtensions`, `defaultSharePermissionLevel`, `forcedShareGroups`, `legacyWidgetBridgeEnabled`, `maxDashboardsPerUser`, `maxWidgetsPerDashboard`, `quicksearchFallbackTarget`, `startPageWithoutNavigation`
+- AND no additional keys MUST be present in the response
+- NOTE: This scenario said "exactly four keys" long after the response had grown to twelve. The list above is taken from `AdminSettingsService::getSettings()`; a key added there MUST be added here and to the Defined Settings table.
+- AND the response MUST be a flat JSON object (no nesting)
+
+#### Scenario: The retired content storage key is not returned
+- GIVEN an instance that still holds a `content_storage` row written by the retired setup-wizard storage step
+- WHEN the admin sends GET /api/admin/settings
+- THEN the response MUST NOT contain `launchpad.content_storage`
+- AND the stored row MUST stay unread (decision 131)
diff --git a/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/setup-wizard/spec.md b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/setup-wizard/spec.md
new file mode 100644
index 000000000..028b4cd81
--- /dev/null
+++ b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/specs/setup-wizard/spec.md
@@ -0,0 +1,397 @@
+# Delta: setup-wizard
+
+## RENAMED Requirements
+
+- FROM: `### Requirement: REQ-WIZ-002 Multi-Step Wizard Flow with 7 Steps`
+- TO: `### Requirement: REQ-WIZ-002 Multi-Step Wizard Flow with 6 Steps`
+
+- FROM: `### Requirement: REQ-WIZ-004 Step 3 — Group Priority Order (Embedded Component Reuse)`
+- TO: `### Requirement: REQ-WIZ-004 Step 2 — Group Priority Order (Embedded Component Reuse)`
+
+- FROM: `### Requirement: REQ-WIZ-005 Step 4 — Demo Data Installation (Embedded Component Reuse)`
+- TO: `### Requirement: REQ-WIZ-005 Step 3 — Demo Data Installation (Embedded Component Reuse)`
+
+- FROM: `### Requirement: REQ-WIZ-006 Step 5 — Admin Roles (Optional, Depends on admin-roles Capability)`
+- TO: `### Requirement: REQ-WIZ-006 Step 4 — Admin Roles (Optional, Depends on admin-roles Capability)`
+
+- FROM: `### Requirement: REQ-WIZ-007 Step 6 — Footer Configuration (Optional, Depends on footer-customization Capability)`
+- TO: `### Requirement: REQ-WIZ-007 Step 5 — Footer Configuration (Optional, Depends on footer-customization Capability)`
+
+## REMOVED Requirements
+
+### Requirement: REQ-WIZ-003 Step 2 — Storage Backend Choice with GroupFolder Dependency Tooltip
+
+**Reason**: decision 131 (9 Oct 2026) retired the storage step; the group-folder backend it chose between is gone.
+
+**Migration**: none. A stored `content_storage` row stays unread.
+
+## MODIFIED Requirements
+
+### Requirement: REQ-WIZ-001 Detect First-Run State via Admin Setting Flag
+
+The system MUST detect whether a LaunchPad instance is being initialized for the first time by consulting the `launchpad.setup_wizard_complete` boolean flag. When the flag is `false`, the admin section MUST display a banner prompting the admin to run the wizard.
+
+> NOTE: This is a net-new LaunchPad capability with no counterpart in the source app. The source ships CLI-only setup via `the source app:setup`; no frontend first-run detection, wizard route, or onboarding component exists in the source. LaunchPad adds this flag and banner on top of the same underlying service primitives.
+
+#### Scenario: Fresh instance shows banner
+- GIVEN a freshly installed LaunchPad with `launchpad.setup_wizard_complete = false`
+- WHEN an NC admin opens `/apps/launchpad/admin/dashboards`
+- THEN the page MUST display a prominent banner: "Run setup wizard" with a button linking to the wizard flow
+- AND the banner MUST remain visible until the admin clicks "Finish" in the wizard
+
+#### Scenario: Completed instance hides banner
+- GIVEN a LaunchPad instance with `launchpad.setup_wizard_complete = true`
+- WHEN an NC admin opens `/apps/launchpad/admin/dashboards`
+- THEN the banner MUST NOT be displayed
+- AND the admin section loads normally
+
+#### Scenario: Banner includes descriptive text
+- GIVEN a fresh LaunchPad instance showing the setup banner
+- WHEN the admin views the banner
+- THEN the banner MUST include text explaining: "Get your intranet started: configure groups, install demo data, and set up admin roles."
+- NOTE: Banner style and wording are implementation-specific; requirement mandates presence and visibility only
+
+#### Scenario: Banner has explicit "Run setup wizard" call-to-action
+- GIVEN the banner is displayed
+- WHEN the admin clicks the "Run setup wizard" button
+- THEN the wizard modal MUST open and begin at Step 1 (Welcome)
+
+#### Scenario: Admin can dismiss and re-access banner
+- GIVEN an admin who dismissed the banner or navigated away
+- WHEN the admin returns to `/apps/launchpad/admin/dashboards`
+- THEN if `launchpad.setup_wizard_complete = false`, the banner MUST reappear
+
+### Requirement: REQ-WIZ-002 Multi-Step Wizard Flow with 6 Steps
+
+The wizard MUST guide the admin through a linear, skippable sequence of 6 steps, each with Skip / Back / Next buttons. Only the "Finish" button on Step 6 marks the wizard complete.
+
+> NOTE: Steps 2–5 each embed the canonical admin UI component from the corresponding sibling capability (`group-priority-order`, `demo-data-showcases`, `admin-roles`, `footer-customization`). The wizard is a thin orchestrator — it owns step sequencing and the completion flag; each sibling capability owns its own settings persistence. No settings surfaces are duplicated.
+
+#### Scenario: Wizard starts at Step 1
+- GIVEN the banner's "Run setup wizard" button is clicked
+- WHEN the wizard modal opens
+- THEN Step 1 (Welcome / Overview) MUST be displayed
+- AND the step counter MUST show "1 / 7"
+
+#### Scenario: Next button advances to next step
+- GIVEN the wizard is on Step 1
+- WHEN the admin clicks "Next"
+- THEN the wizard advances to Step 2 (Group order)
+- AND the step counter MUST show "2 / 7"
+- AND the Back button MUST become active
+
+#### Scenario: Back button returns to previous step
+- GIVEN the wizard is on Step 3
+- WHEN the admin clicks "Back"
+- THEN the wizard returns to Step 2
+- AND no data loss occurs (Step 3 values are preserved if re-visited)
+
+#### Scenario: Skip button jumps to next step without commitment
+- GIVEN the wizard is on Step 4 (Admin roles, optional)
+- WHEN the admin clicks "Skip"
+- THEN the wizard advances to Step 5
+- AND the wizard completion status for Step 4 is marked "skipped" (not "done")
+- NOTE: Skipping a step does not prevent the wizard from eventually marking complete
+
+#### Scenario: Step 1 has no form; only explanatory text
+- GIVEN Step 1 (Welcome) is displayed
+- WHEN the admin views the step
+- THEN the step MUST show text explaining the wizard's purpose: "Configure your LaunchPad instance with group ordering, demo data, admin roles, and footer settings."
+- AND there are no form fields to fill
+- AND clicking "Next" advances without persisting any choice
+
+#### Scenario: Step 6 shows summary and Finish button
+- GIVEN the wizard reaches Step 6 (Done)
+- WHEN the admin views the step
+- THEN the step MUST display a summary: "Your setup is complete. Click Finish to save changes and dismiss the setup banner."
+- AND a "Finish" button (not "Next") MUST be present
+- AND clicking "Finish" executes the completion action
+
+#### Scenario: Finish button completes wizard
+- GIVEN the admin is on Step 6 with the "Finish" button visible
+- WHEN the admin clicks "Finish"
+- THEN the system MUST set `launchpad.setup_wizard_complete = true`
+- AND the wizard modal MUST close
+- AND the admin section MUST reload, banner gone
+
+#### Scenario: Wizard progress persists across Back navigation
+- GIVEN the wizard is on Step 3 after a group order was chosen on Step 2
+- WHEN the admin clicks Back to Step 2, then clicks Next to Step 3
+- THEN the group order chosen on Step 2 MUST still be present (no data loss)
+
+### Requirement: REQ-WIZ-004 Step 2 — Group Priority Order (Embedded Component Reuse)
+
+Step 2 MUST embed the existing `group-priority-order` admin UI component, allowing the admin to configure the priority order of Nextcloud groups for dashboard routing.
+
+#### Scenario: Step 2 embeds existing group-priority-order admin component
+- GIVEN Step 2 is displayed
+- WHEN the admin views the step
+- THEN the existing `group-priority-order` admin UI MUST be visible and functional within the wizard modal
+- NOTE: The component is not duplicated; the wizard embeds the canonical admin component
+
+#### Scenario: Group order choice persists immediately
+- GIVEN the admin reorders groups in Step 2 (e.g., "engineering" moved above "sales")
+- WHEN the admin clicks Next
+- THEN the system MUST immediately persist the new order to `launchpad.group_priority_order`
+- AND navigating away does not lose the change
+
+#### Scenario: Step 2 allows drag-and-drop reordering (existing UI behavior)
+- GIVEN the group-priority-order component is displayed
+- WHEN the admin drags a group to a new position
+- THEN the reorder MUST be reflected in the UI
+- NOTE: Exact interaction (drag, arrow buttons, etc.) is determined by the embedded component's design
+
+### Requirement: REQ-WIZ-005 Step 3 — Demo Data Installation (Embedded Component Reuse)
+
+Step 3 MUST embed the existing `demo-data-showcases` admin UI component, allowing the admin to optionally select and install demo packages.
+
+#### Scenario: Step 3 embeds demo-data-showcases admin component
+- GIVEN Step 3 is displayed
+- WHEN the admin views the step
+- THEN the existing `demo-data-showcases` admin UI MUST be visible within the wizard modal
+- AND the component displays all available demo packages with checkboxes
+- NOTE: The component is the canonical admin UI; wizard embeds it without duplication
+
+#### Scenario: Demo data installation is optional
+- GIVEN Step 3 is displayed with zero demo packages selected
+- WHEN the admin clicks "Skip" or "Next"
+- THEN the wizard MUST advance without requiring any demo to be installed
+- NOTE: Step 3 is not skippable via a Skip button; all steps are traversed. However, selecting zero demos and clicking Next is equivalent to skipping.
+
+#### Scenario: Checked demos are installed on Next
+- GIVEN the admin selects checkboxes for "Engineering Demo" and "Sales Demo" on Step 3
+- WHEN the admin clicks "Next"
+- THEN the system MUST trigger the installation of both demo packages
+- AND the wizard advances to Step 4 (installation happens asynchronously or blocks until done, implementation choice)
+- NOTE: The demo-data-showcases component handles the actual installation logic
+
+#### Scenario: Demo selection is persisted
+- GIVEN the admin selected "Engineering Demo" on Step 3 and advanced to Step 4
+- WHEN the admin navigates Back to Step 3
+- THEN the "Engineering Demo" checkbox MUST remain checked
+- AND no re-installation happens (idempotent)
+
+### Requirement: REQ-WIZ-006 Step 4 — Admin Roles (Optional, Depends on admin-roles Capability)
+
+Step 4 MUST allow the admin to optionally assign the "Dashboard Admin" role to one Nextcloud group. This step is skippable via a Skip button.
+
+#### Scenario: Step 4 shows group selector for admin role
+- GIVEN the `admin-roles` capability is available
+- AND Step 4 is displayed
+- WHEN the admin views the step
+- THEN a dropdown or multi-select MUST display all Nextcloud groups
+- AND a description MUST explain: "Assign 'Dashboard Admin' role to a group to delegate LaunchPad administration to group members."
+
+#### Scenario: Admin can select one group for Dashboard Admin role
+- GIVEN Step 4 is displayed with groups ["engineering", "sales", "marketing"]
+- WHEN the admin selects "engineering"
+- AND clicks "Next"
+- THEN the system MUST call `RoleService::assignRole(groupId="engineering", role="admin", assignedBy=)`
+- AND the role assignment MUST be created in `oc_launchpad_role_assignments`
+
+#### Scenario: Step 4 is skippable
+- GIVEN Step 4 is displayed
+- WHEN the admin clicks "Skip"
+- THEN no role assignment is made
+- AND the wizard advances to Step 5
+- AND the completion status for Step 4 MUST be marked "skipped"
+
+#### Scenario: No group selected is equivalent to skip
+- GIVEN Step 4 with no group selected
+- WHEN the admin clicks "Next"
+- THEN no role assignment is made (equivalent to Skip)
+- AND the wizard advances to Step 5
+
+#### Scenario: Step 4 unavailable if admin-roles capability missing
+- GIVEN the `admin-roles` capability is NOT implemented or not available
+- WHEN the wizard would display Step 4
+- THEN Step 4 MUST be skipped automatically
+- AND the step counter jumps from Step 3 to Step 5
+- NOTE: Capability dependency is gracefully handled; missing capability does not break wizard
+
+#### Scenario: Only one group can have admin role per wizard run
+- GIVEN Step 4 is displayed
+- WHEN the admin selects "engineering" and clicks "Next"
+- THEN only the "engineering" group receives the admin role (not multiple groups)
+- NOTE: If the admin wishes to assign admin role to multiple groups, they must run the wizard again or use the admin roles management UI directly
+
+### Requirement: REQ-WIZ-007 Step 5 — Footer Configuration (Optional, Depends on footer-customization Capability)
+
+Step 5 MUST allow the admin to optionally open and configure the footer using the "Structured mode" editor. This step is skippable via a Skip button.
+
+#### Scenario: Step 5 shows footer editor
+- GIVEN the `footer-customization` capability is available
+- AND Step 5 is displayed
+- WHEN the admin views the step
+- THEN the "Structured mode" footer editor MUST be visible and functional
+- AND a description MUST explain: "Customize the footer content and appearance for your intranet."
+
+#### Scenario: Footer edits persist immediately
+- GIVEN the admin edits footer content in Step 5
+- WHEN the admin clicks "Next"
+- THEN the footer configuration MUST be saved to `launchpad.footer_config` or equivalent setting
+- AND navigating away does not lose the changes
+
+#### Scenario: Step 5 is skippable
+- GIVEN Step 5 is displayed
+- WHEN the admin clicks "Skip"
+- THEN no footer changes are made
+- AND the wizard advances to Step 6
+- AND the completion status for Step 5 MUST be marked "skipped"
+
+#### Scenario: Step 5 unavailable if footer-customization capability missing
+- GIVEN the `footer-customization` capability is NOT implemented or not available
+- WHEN the wizard would display Step 5
+- THEN Step 5 MUST be skipped automatically
+- AND the step counter jumps from Step 4 to Step 6
+- NOTE: Capability dependency is gracefully handled; missing capability does not break wizard
+
+### Requirement: REQ-WIZ-008 Get Wizard State via API Endpoint
+
+The system MUST expose a `GET /api/admin/setup-wizard/state` endpoint that returns the wizard's completion status, current recommended step for re-runs, and per-step status.
+
+> NOTE: Auto-launch behaviour (opening the wizard automatically when `setup_wizard_complete = false`) is intentionally SHOULD/MAY, not MUST. CLI-provisioned installs may set settings incrementally mid-`occ` run, meaning an admin who views the page before the CLI command finishes would see `complete = false` with settings partially applied. The banner-link fallback is always available and is the reliable path; auto-launch is a UX convenience for fresh browser sessions only.
+
+#### Scenario: Endpoint returns complete state on fresh instance
+- GIVEN a fresh LaunchPad instance with `launchpad.setup_wizard_complete = false`
+- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
+- THEN the response MUST be HTTP 200 with JSON:
+ ```json
+ {
+ "complete": false,
+ "currentRecommendedStep": 1,
+ "stepStatuses": {
+ "1": "done",
+ "2": "pending",
+ "3": "pending",
+ "4": "pending",
+ "5": "pending",
+ "6": "pending"
+ }
+ }
+ ```
+- NOTE: Step 1 is always "done" (no choice required). Steps 2–6 start "pending".
+
+#### Scenario: Endpoint returns recommended step for re-runs
+- GIVEN a LaunchPad instance where the group order is not yet set
+- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
+- THEN the response MUST include `currentRecommendedStep: 2`
+- NOTE: The heuristic picks the first step with status != "done"
+
+#### Scenario: Endpoint returns complete=true when wizard finished
+- GIVEN a LaunchPad instance with `launchpad.setup_wizard_complete = true`
+- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
+- THEN the response MUST include `complete: true`
+- AND `currentRecommendedStep` MAY be 1 (optional) or reflect the last visited step (implementation choice)
+
+#### Scenario: Non-admin requests receive 403
+- GIVEN a non-admin user
+- WHEN they call `GET /api/admin/setup-wizard/state`
+- THEN the system MUST return HTTP 403 (Forbidden)
+
+#### Scenario: Endpoint includes skipped step status
+- GIVEN the wizard has been run with Step 4 skipped
+- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
+- THEN the response MUST include `"4": "skipped"` in stepStatuses
+- NOTE: Skipped status indicates the step was traversed but no action taken; does not block wizard completion
+
+#### Scenario: A stored storage choice from the retired step is ignored
+- GIVEN an instance that still holds a `content_storage` row written by the retired storage step
+- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
+- THEN `stepStatuses` MUST hold exactly six entries
+- AND the stored row MUST NOT change any step status or `currentRecommendedStep`
+
+### Requirement: REQ-WIZ-010 CLI Command for Non-Interactive Setup (IaC-Friendly)
+
+The system MUST expose a CLI command `php occ launchpad:setup` that accepts a `--config=/path/setup.yaml` argument to perform wizard setup non-interactively, ideal for Infrastructure-as-Code deployments.
+
+> NOTE: The YAML config schema (fields: `group_priority_order`, `demo_packages`, `admin_role_group`, `footer_config`) is formally defined in the `cli-commands` sibling spec. Optional steps (admin roles, footer) may be omitted from the config file entirely; omitting them is equivalent to skipping those steps in the wizard and does not cause an error.
+
+#### Scenario: CLI command accepts YAML config file
+- GIVEN a YAML file `/tmp/setup.yaml` with content:
+ ```yaml
+ group_priority_order: ["engineering", "sales"]
+ demo_packages: ["engineering-demo", "sales-demo"]
+ admin_role_group: "engineering"
+ footer_config:
+ layout: "structured"
+ items: [...]
+ ```
+- WHEN an admin runs `php occ launchpad:setup --config=/tmp/setup.yaml`
+- THEN the system MUST:
+ - Set `launchpad.group_priority_order = ["engineering", "sales"]` (Step 2)
+ - Install "engineering-demo" and "sales-demo" (Step 3)
+ - Assign "Dashboard Admin" role to "engineering" (Step 4)
+ - Set `launchpad.footer_config` with provided config (Step 5)
+ - Set `launchpad.setup_wizard_complete = true` (Step 6)
+
+#### Scenario: CLI command validates YAML schema
+- GIVEN a YAML file whose top level is not a map, or whose `group_priority_order` is not a list
+- WHEN `php occ launchpad:setup --config=/tmp/setup.yaml` is run
+- THEN the system MUST output an error starting with "Invalid setup.yaml:"
+- AND the command MUST exit with non-zero status
+
+#### Scenario: An old config that still sets storage_backend keeps working
+- GIVEN a YAML file written for the seven-step wizard, with `storage_backend: "groupfolder"`
+- WHEN `php occ launchpad:setup --config=/tmp/setup.yaml` is run
+- THEN the command MUST print that `storage_backend` is no longer used and was ignored
+- AND it MUST apply the other steps and exit with status 0
+- AND it MUST NOT write `launchpad.content_storage`
+
+#### Scenario: CLI command is verbose by default
+- GIVEN the command runs successfully
+- WHEN the output is examined
+- THEN it MUST show progress: "Step 1: Welcome... done", "Step 2: Group order... done", etc.
+- AND final message: "Setup wizard completed successfully."
+
+#### Scenario: CLI command skips optional steps if not in config
+- GIVEN a YAML file with only `group_priority_order`
+- WHEN the command runs
+- THEN Steps 4 and 5 MUST be skipped (no error)
+- AND Step 2 MUST execute with the provided value
+- AND the wizard completes
+
+#### Scenario: CLI command is idempotent
+- GIVEN a YAML config that was applied once
+- WHEN the same command runs again with the same config
+- THEN the system MUST return success (HTTP 200 equivalent)
+- AND no duplicate role assignments or demo installations occur
+- NOTE: The system MUST detect existing assignments/installations and skip them
+
+### Requirement: REQ-WIZ-011 Wizard is Re-Runnable
+
+The wizard MUST be re-runnable even after `launchpad.setup_wizard_complete = true`. Re-running MUST NOT undo earlier choices; it MUST re-walk the steps showing current state and allowing updates.
+
+#### Scenario: Admin can run wizard again after completion
+- GIVEN a LaunchPad instance with `launchpad.setup_wizard_complete = true`
+- WHEN an NC admin navigates to `/apps/launchpad/admin` and clicks "Run setup wizard again" (or uses a Re-run button in a separate admin UI section)
+- THEN the wizard modal MUST open
+- AND all step values MUST reflect current settings (group order, demo data, etc.)
+- AND the admin can make changes
+
+#### Scenario: Re-running does not re-install demo packages
+- GIVEN the instance has already installed "engineering-demo"
+- AND the admin re-runs the wizard to Step 3
+- WHEN the admin unchecks "engineering-demo" and clicks Next
+- THEN the system MUST NOT re-install the demo (it's already there)
+- NOTE: Demo installation is one-time; re-running the wizard does not trigger redundant installations. If the admin wishes to un-install, they must use a separate admin UI for demo management.
+
+#### Scenario: Re-running preserves skipped steps
+- GIVEN the wizard was run previously with Step 4 skipped
+- AND the admin re-runs the wizard
+- WHEN Step 4 is displayed
+- THEN the step MUST show "Skip" button as before
+- AND if the admin clicks Skip again, the behavior is consistent with the first run
+
+#### Scenario: Step 1 is always done on re-run
+- GIVEN a re-run of the wizard
+- WHEN Step 1 is displayed
+- THEN no new action is required; clicking Next immediately advances
+
+#### Scenario: API endpoint reports re-runnable state
+- GIVEN the instance has `launchpad.setup_wizard_complete = true`
+- WHEN an NC admin calls `GET /api/admin/setup-wizard/state`
+- THEN the response MUST indicate `complete: true`
+- AND the admin UI MUST show a "Run setup wizard again" button (not a "Run setup wizard" banner)
+- NOTE: The UI signals that re-running is available and safe
+
diff --git a/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/tasks.md b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/tasks.md
new file mode 100644
index 000000000..2f49c2e55
--- /dev/null
+++ b/openspec/changes/archive/2026-10-09-retire-setup-wizard-storage-step/tasks.md
@@ -0,0 +1,11 @@
+# Tasks: retire-setup-wizard-storage-step
+
+- [x] 1. Red tests first: `SetupWizardServiceTest` (six steps, no storage methods, a stored `content_storage` stays unread), `AdminControllerSetupWizardTest` (no `setWizardStorage`, no route), `AdminSettingKeyTest` (`tryFrom('content_storage')` is null), `AdminSettingsServiceTest` (twelve keys), new `SetupCommandTest` (no `storage_backend` needed, an old field is ignored, steps 1-6). Red run: `build-round/wizard-red.log`.
+- [x] 2. Remove the step from `SetupWizardService` (`STEP_COUNT = 6`, renumbered `computeStepStatuses()`, the three methods and `IAppManager` gone).
+- [x] 3. Remove `AdminController::setWizardStorage()`, its route in `appinfo/routes.php`, and the `launchpadContentStorage` parameter of `updateSettings()`.
+- [x] 4. Remove `AdminSettingKey::CONTENT_STORAGE`, `AdminSetting::KEY_CONTENT_STORAGE`, and the key's read and write in `AdminSettingsService`.
+- [x] 5. `SetupCommand`: `storage_backend` optional and ignored with a notice; steps renumbered 1-6.
+- [x] 6. `SetupWizardModal.vue`: drop the storage step (six steps); `api.setSetupWizardStorage()` removed; Vitest spec updated.
+- [x] 7. Welcome text and admin banner no longer mention storage, in every shipped locale; the strings only the retired step used are removed from every locale.
+- [x] 8. Postman collection: the storage request removed.
+- [x] 9. Specs: `setup-wizard` and `admin-settings` amended (deltas in this change are the record). The main specs were written by hand from the same transform, because `openspec validate` refuses a MODIFIED block that renames scenarios (Step N to Step N-1); the change was then archived with `--skip-specs`. Data Model and Defined Settings sections edited by hand.
diff --git a/src/modals/__tests__/SetupWizardModal.spec.js b/src/modals/__tests__/SetupWizardModal.spec.js
index 34a28b231..b7871f858 100644
--- a/src/modals/__tests__/SetupWizardModal.spec.js
+++ b/src/modals/__tests__/SetupWizardModal.spec.js
@@ -115,7 +115,9 @@ describe('SetupWizardModal', () => {
expect(wrapper.vm.currentStep).toBe(2)
expect(wrapper.find('.group-priority-stub').exists()).toBe(true)
expect(wrapper.find('[data-test="storage-database"]').exists()).toBe(false)
- expect(wrapper.find('[data-test="storage-groupfolder"]').exists()).toBe(false)
+ expect(wrapper.find('[data-test="storage-groupfolder"]').exists()).toBe(
+ false,
+ )
})
it('REQ-WIZ-002: Step 6 Next is labelled Finish and calls completeSetupWizard', async () => {
diff --git a/tests/Unit/Command/SetupCommandTest.php b/tests/Unit/Command/SetupCommandTest.php
new file mode 100644
index 000000000..64f56f210
--- /dev/null
+++ b/tests/Unit/Command/SetupCommandTest.php
@@ -0,0 +1,109 @@
+
+ * @copyright 2026 Conduction b.v.
+ * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * SPDX-FileCopyrightText: 2026 LaunchPad Contributors
+ * SPDX-License-Identifier: EUPL-1.2
+ */
+
+declare(strict_types=1);
+
+namespace OCA\LaunchPad\Tests\Unit\Command;
+
+use OCA\LaunchPad\Command\SetupCommand;
+use OCA\LaunchPad\Service\AdminSettingsService;
+use OCA\LaunchPad\Service\SetupWizardService;
+use PHPUnit\Framework\MockObject\MockObject;
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class SetupCommandTest extends TestCase {
+ /** @var SetupWizardService&MockObject */
+ private $wizard;
+
+ /** @var AdminSettingsService&MockObject */
+ private $settings;
+
+ /** @var list */
+ private array $files = [];
+
+ protected function setUp(): void {
+ parent::setUp();
+ $this->wizard = $this->createMock(SetupWizardService::class);
+ $this->settings = $this->createMock(AdminSettingsService::class);
+ }
+
+ protected function tearDown(): void {
+ foreach ($this->files as $file) {
+ @unlink($file);
+ }
+ parent::tearDown();
+ }
+
+ private function yaml(string $body): string {
+ $file = tempnam(sys_get_temp_dir(), 'lp-setup-');
+ $this->assertIsString($file);
+ file_put_contents($file, $body);
+ $this->files[] = $file;
+ return $file;
+ }
+
+ private function runSetup(string $body): CommandTester {
+ $tester = new CommandTester(new SetupCommand($this->wizard, $this->settings));
+ $tester->execute(['--config' => $this->yaml($body)]);
+ return $tester;
+ }
+
+ public function testAConfigWithoutStorageBackendSucceeds(): void {
+ $this->settings->method('getGroupOrder')->willReturn([]);
+ $this->settings->expects($this->once())->method('setGroupOrder')->with(['engineering', 'sales']);
+ $this->wizard->expects($this->once())->method('markWizardComplete');
+
+ $tester = $this->runSetup("group_priority_order: [\"engineering\", \"sales\"]\n");
+
+ $this->assertSame(0, $tester->getStatusCode());
+ $display = $tester->getDisplay();
+ $this->assertStringContainsString('Step 1: Welcome... done', $display);
+ $this->assertStringContainsString('Step 2: Group order... done', $display);
+ $this->assertStringContainsString('Step 3: Demo data... skipped (not in config)', $display);
+ $this->assertStringContainsString('Step 4: Admin roles... skipped (not in config)', $display);
+ $this->assertStringContainsString('Step 5: Footer config... skipped (not in config)', $display);
+ $this->assertStringContainsString('Step 6: Done... done', $display);
+ $this->assertStringNotContainsString('Storage backend', $display);
+ $this->assertStringContainsString('Setup wizard completed successfully.', $display);
+ }
+
+ public function testAnOldConfigWithStorageBackendStillRunsAndSaysTheFieldIsIgnored(): void {
+ $this->settings->method('getGroupOrder')->willReturn(['engineering']);
+ $this->settings->expects($this->never())->method('setGroupOrder');
+ $this->wizard->expects($this->once())->method('markWizardComplete');
+
+ $tester = $this->runSetup("storage_backend: \"groupfolder\"\ngroup_priority_order: [\"engineering\"]\n");
+
+ $this->assertSame(0, $tester->getStatusCode());
+ $display = $tester->getDisplay();
+ $this->assertStringContainsString("'storage_backend' is no longer used and was ignored", $display);
+ $this->assertStringContainsString('Step 2: Group order... already configured, skipping', $display);
+ }
+
+ public function testAnEmptyMapStillCompletesTheWizard(): void {
+ $this->wizard->expects($this->once())->method('markWizardComplete');
+
+ $tester = $this->runSetup("{}\n");
+
+ $this->assertSame(0, $tester->getStatusCode());
+ $this->assertStringContainsString('Step 2: Group order... skipped (not in config)', $tester->getDisplay());
+ }
+}
diff --git a/tests/Unit/Controller/AdminControllerSettingsAliasTest.php b/tests/Unit/Controller/AdminControllerSettingsAliasTest.php
index a1a58a52b..a453d9c91 100644
--- a/tests/Unit/Controller/AdminControllerSettingsAliasTest.php
+++ b/tests/Unit/Controller/AdminControllerSettingsAliasTest.php
@@ -177,7 +177,6 @@ public function testStartPageWithoutNavigationIsPassedThrough(): void {
$this->isNull(),
$this->isNull(),
$this->isNull(),
- $this->isNull(),
$this->isTrue(),
);
diff --git a/tests/Unit/Service/AdminSettingsServiceTest.php b/tests/Unit/Service/AdminSettingsServiceTest.php
index a77e867e2..7b9fbb19e 100644
--- a/tests/Unit/Service/AdminSettingsServiceTest.php
+++ b/tests/Unit/Service/AdminSettingsServiceTest.php
@@ -167,7 +167,7 @@ public function testGetSettingsReturnsCamelCaseKeys(): void {
$this->assertArrayHasKey('quicksearchFallbackTarget', $settings);
// runtime-shell REQ-SHELL-009.
$this->assertArrayHasKey('startPageWithoutNavigation', $settings);
- $this->assertCount(13, $settings);
+ $this->assertCount(12, $settings);
}//end testGetSettingsReturnsCamelCaseKeys()
// ----- dashboard-quota-limits REQ-QUOTA-001 -----
From 18b3b9b36faf1256d578d99d6fe3444abadf3985 Mon Sep 17 00:00:00 2001
From: Ruben van der Linde
Date: Fri, 9 Oct 2026 23:11:15 +0200
Subject: [PATCH 5/8] feat(activity): LaunchPad events can reach the activity
email digest, with per-event settings
Four activity settings in one LaunchPad group (REQ-DIGE-001): shared and
published go to the digest by default, updated and acknowledged stay in the
stream only. Registered in info.xml (validated against app-info.xsd), labels
in all 37 locales. engagement-activity-digest stays open for its live check
(task 5); e-digest moves to building.
---
appinfo/info.xml | 9 ++
l10n/be.js | 6 +-
l10n/be.json | 6 +-
l10n/bg.js | 6 +-
l10n/bg.json | 6 +-
l10n/bs.js | 6 +-
l10n/bs.json | 6 +-
l10n/ca.js | 6 +-
l10n/ca.json | 6 +-
l10n/cs.js | 6 +-
l10n/cs.json | 6 +-
l10n/da.js | 6 +-
l10n/da.json | 6 +-
l10n/de.js | 6 +-
l10n/de.json | 6 +-
l10n/el.js | 6 +-
l10n/el.json | 6 +-
l10n/en.js | 6 +-
l10n/en.json | 6 +-
l10n/es.js | 6 +-
l10n/es.json | 6 +-
l10n/et.js | 6 +-
l10n/et.json | 6 +-
l10n/fi.js | 6 +-
l10n/fi.json | 6 +-
l10n/fr.js | 6 +-
l10n/fr.json | 6 +-
l10n/ga.js | 6 +-
l10n/ga.json | 6 +-
l10n/hr.js | 6 +-
l10n/hr.json | 6 +-
l10n/hu.js | 6 +-
l10n/hu.json | 6 +-
l10n/is.js | 6 +-
l10n/is.json | 6 +-
l10n/it.js | 6 +-
l10n/it.json | 6 +-
l10n/lb.js | 6 +-
l10n/lb.json | 6 +-
l10n/lt.js | 6 +-
l10n/lt.json | 6 +-
l10n/lv.js | 6 +-
l10n/lv.json | 6 +-
l10n/mk.js | 6 +-
l10n/mk.json | 6 +-
l10n/mt.js | 6 +-
l10n/mt.json | 6 +-
l10n/nb.js | 6 +-
l10n/nb.json | 6 +-
l10n/nl.js | 6 +-
l10n/nl.json | 6 +-
l10n/pl.js | 6 +-
l10n/pl.json | 6 +-
l10n/pt.js | 6 +-
l10n/pt.json | 6 +-
l10n/rm.js | 6 +-
l10n/rm.json | 6 +-
l10n/ro.js | 6 +-
l10n/ro.json | 6 +-
l10n/ru.js | 6 +-
l10n/ru.json | 6 +-
l10n/sk.js | 6 +-
l10n/sk.json | 6 +-
l10n/sl.js | 6 +-
l10n/sl.json | 6 +-
l10n/sq.js | 6 +-
l10n/sq.json | 6 +-
l10n/sr.js | 6 +-
l10n/sr.json | 6 +-
l10n/sv.js | 6 +-
l10n/sv.json | 6 +-
l10n/tr.js | 6 +-
l10n/tr.json | 6 +-
l10n/uk.js | 6 +-
l10n/uk.json | 6 +-
.../Settings/DashboardAcknowledgedSetting.php | 76 +++++++++++++
.../Settings/DashboardPublishedSetting.php | 76 +++++++++++++
.../Settings/DashboardSharedSetting.php | 76 +++++++++++++
.../Settings/DashboardUpdatedSetting.php | 76 +++++++++++++
.../Settings/LaunchPadActivitySetting.php | 107 ++++++++++++++++++
.../engagement-activity-digest/tasks.md | 6 +-
openspec/parity/capabilities.json | 2 +-
.../Settings/ActivitySettingsTest.php | 96 ++++++++++++++++
83 files changed, 890 insertions(+), 78 deletions(-)
create mode 100644 lib/Activity/Settings/DashboardAcknowledgedSetting.php
create mode 100644 lib/Activity/Settings/DashboardPublishedSetting.php
create mode 100644 lib/Activity/Settings/DashboardSharedSetting.php
create mode 100644 lib/Activity/Settings/DashboardUpdatedSetting.php
create mode 100644 lib/Activity/Settings/LaunchPadActivitySetting.php
create mode 100644 tests/Unit/Activity/Settings/ActivitySettingsTest.php
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 96e62910f..e4df38c90 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -176,6 +176,15 @@ Vrij en open source onder de EUPL-1.2-licentie.
+
+
+ OCA\LaunchPad\Activity\Settings\DashboardSharedSetting
+ OCA\LaunchPad\Activity\Settings\DashboardPublishedSetting
+ OCA\LaunchPad\Activity\Settings\DashboardUpdatedSetting
+ OCA\LaunchPad\Activity\Settings\DashboardAcknowledgedSetting
+