Files
Termix/src/ui/locales/translated/ca_ES.json
T
+7 ddbdd5c437 release-2.5.1 (#1067)
* chore(deps): bump node from 24-slim to 26-slim in /docker in the docker-major-updates group (#1021)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* chore(deps): bump node in /docker in the docker-major-updates group

Bumps the docker-major-updates group in /docker with 1 update: node.


Updates `node` from 24-slim to 26-slim

---
updated-dependencies:
- dependency-name: node
  dependency-version: 26-slim
  dependency-type: direct:production
  dependency-group: docker-major-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump the dev-patch-updates group with 24 updates (#1023)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* chore(deps-dev): bump the dev-patch-updates group with 24 updates

Bumps the dev-patch-updates group with 24 updates:

| Package | From | To |
| --- | --- | --- |
| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.5.1` | `2.5.2` |
| [@codemirror/commands](https://github.com/codemirror/commands) | `6.10.3` | `6.10.4` |
| [@codemirror/view](https://github.com/codemirror/view) | `6.43.1` | `6.43.5` |
| [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.14` | `1.2.15` |
| [@radix-ui/react-alert-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/alert-dialog) | `1.1.17` | `1.1.18` |
| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.5` | `1.3.6` |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.17` | `1.1.18` |
| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.18` | `2.1.19` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.10` | `2.1.11` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.17` | `1.1.18` |
| [@radix-ui/react-progress](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/progress) | `1.1.10` | `1.1.11` |
| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.12` | `1.2.13` |
| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.3.1` | `2.3.2` |
| [@radix-ui/react-separator](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/separator) | `1.1.10` | `1.1.11` |
| [@radix-ui/react-slider](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slider) | `1.4.1` | `1.4.2` |
| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.3.1` | `1.3.2` |
| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.15` | `1.1.16` |
| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.10` | `1.2.11` |
| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.1` | `4.3.2` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.2` | `6.0.3` |
| [i18next](https://github.com/i18next/i18next) | `26.3.1` | `26.3.4` |
| [radix-ui](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/radix-ui) | `1.6.0` | `1.6.1` |
| [sharp](https://github.com/lovell/sharp) | `0.35.2` | `0.35.3` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.3.1` | `4.3.2` |


Updates `@biomejs/biome` from 2.5.1 to 2.5.2
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.2/packages/@biomejs/biome)

Updates `@codemirror/commands` from 6.10.3 to 6.10.4
- [Changelog](https://github.com/codemirror/commands/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/commands/commits)

Updates `@codemirror/view` from 6.43.1 to 6.43.5
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/commits)

Updates `@radix-ui/react-accordion` from 1.2.14 to 1.2.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion)

Updates `@radix-ui/react-alert-dialog` from 1.1.17 to 1.1.18
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/alert-dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/alert-dialog)

Updates `@radix-ui/react-checkbox` from 1.3.5 to 1.3.6
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox)

Updates `@radix-ui/react-dialog` from 1.1.17 to 1.1.18
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog)

Updates `@radix-ui/react-dropdown-menu` from 2.1.18 to 2.1.19
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu)

Updates `@radix-ui/react-label` from 2.1.10 to 2.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label)

Updates `@radix-ui/react-popover` from 1.1.17 to 1.1.18
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover)

Updates `@radix-ui/react-progress` from 1.1.10 to 1.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/progress/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/progress)

Updates `@radix-ui/react-scroll-area` from 1.2.12 to 1.2.13
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area)

Updates `@radix-ui/react-select` from 2.3.1 to 2.3.2
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select)

Updates `@radix-ui/react-separator` from 1.1.10 to 1.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/separator/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/separator)

Updates `@radix-ui/react-slider` from 1.4.1 to 1.4.2
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/slider/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slider)

Updates `@radix-ui/react-switch` from 1.3.1 to 1.3.2
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/switch/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/switch)

Updates `@radix-ui/react-tabs` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tabs/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tabs)

Updates `@radix-ui/react-tooltip` from 1.2.10 to 1.2.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tooltip/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tooltip)

Updates `@tailwindcss/vite` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-vite)

Updates `@vitejs/plugin-react` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.3/packages/plugin-react)

Updates `i18next` from 26.3.1 to 26.3.4
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next/compare/v26.3.1...v26.3.4)

Updates `radix-ui` from 1.6.0 to 1.6.1
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/radix-ui/CHANGELOG.md)
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/radix-ui)

Updates `sharp` from 0.35.2 to 0.35.3
- [Release notes](https://github.com/lovell/sharp/releases)
- [Commits](https://github.com/lovell/sharp/compare/v0.35.2...v0.35.3)

Updates `tailwindcss` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@codemirror/commands"
  dependency-version: 6.10.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@codemirror/view"
  dependency-version: 6.43.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-accordion"
  dependency-version: 1.2.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-alert-dialog"
  dependency-version: 1.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-checkbox"
  dependency-version: 1.3.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-dropdown-menu"
  dependency-version: 2.1.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-label"
  dependency-version: 2.1.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-progress"
  dependency-version: 1.1.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-scroll-area"
  dependency-version: 1.2.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-select"
  dependency-version: 2.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-separator"
  dependency-version: 1.1.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-slider"
  dependency-version: 1.4.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-switch"
  dependency-version: 1.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-tabs"
  dependency-version: 1.1.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@radix-ui/react-tooltip"
  dependency-version: 1.2.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: i18next
  dependency-version: 26.3.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: radix-ui
  dependency-version: 1.6.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: sharp
  dependency-version: 0.35.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump the prod-patch-updates group with 2 updates (#1025)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* chore(deps): bump the prod-patch-updates group with 2 updates

Bumps the prod-patch-updates group with 2 updates: [axios](https://github.com/axios/axios) and [nanoid](https://github.com/ai/nanoid).


Updates `axios` from 1.18.0 to 1.18.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.18.0...v1.18.1)

Updates `nanoid` from 5.1.15 to 5.1.16
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/5.1.15...5.1.16)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: nanoid
  dependency-version: 5.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump the prod-minor-updates group with 3 updates (#1026)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* chore(deps): bump the prod-minor-updates group with 3 updates

Bumps the prod-minor-updates group with 3 updates: [js-yaml](https://github.com/nodeca/js-yaml), [motion](https://github.com/motiondivision/motion) and [undici](https://github.com/nodejs/undici).


Updates `js-yaml` from 5.0.0 to 5.2.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/5.0.0...5.2.1)

Updates `motion` from 12.40.0 to 12.42.2
- [Changelog](https://github.com/motiondivision/motion/blob/main/CHANGELOG.md)
- [Commits](https://github.com/motiondivision/motion/compare/v12.40.0...v12.42.2)

Updates `undici` from 8.5.0 to 8.7.0
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v8.5.0...v8.7.0)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 5.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: motion
  dependency-version: 12.42.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: undici
  dependency-version: 8.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump electron from 42.4.1 to 43.0.0 in the major-updates group (#1027)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* chore(deps-dev): bump electron in the major-updates group

Bumps the major-updates group with 1 update: [electron](https://github.com/electron/electron).


Updates `electron` from 42.4.1 to 43.0.0
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v42.4.1...v43.0.0)

---
updated-dependencies:
- dependency-name: electron
  dependency-version: 43.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: major-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix MC syntax highlighting artifacts (#996)

* Filter dashboard status hosts (#997)

* Persist dashboard service link changes (#999)

* Fix snippet text overflow (#1000)

* Persist remote desktop credential auth (#1001)

* Guard language switching failures (#1002)

* Resolve tunnel source credentials (#1003)

* Support Vault auth for monitors (#1004)

* Fix Windows file delete command (#1005)

* Fix release artifact checkout ref (#1006)

* Fix command palette escape in fullscreen (#1008)

* Fix alerts and audit log data normalization (#1010)

* Fix macOS VNC protocol negotiation (#1012)

* Fix port knocking before SSH connect (#1013)

* Allow Escape to close link confirmation (#1014)

* Prevent Electron modifier wheel zoom (#1016)

* Fix credential auth optional password (#1009)

* Retry transient terminal DNS lookups (#1011)

* Retry transient terminal DNS lookups

* Apply DNS retry to SSH entry points

* Fix OIDC redirect forwarded port handling (#1007)

* Preserve recent open tabs on startup (#1015)

* Fix fish prompt OSC highlighting (#998)

* Fix terminal font selection (#1018)

* fix: font legibility (#1019)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* fix: font legibility

Text was entirely unreadable in places for me. Especially with themes
like Catppuccin. The muted-foreground text and the tags too similiar to
the background.

---------

Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: russell <git@0896c69e.com>

* fix(file-manager): chunked uploads fail with 'Expected multipart/form-data request' (#1020)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* fix(file-manager): use postForm for chunked uploads so multipart content-type is sent

The fileManagerApi axios instance defaults to Content-Type:
application/json. Axios 1.x's default transformRequest converts a
FormData body to JSON whenever the request content type is
application/json, so every chunk POSTed to /ssh/uploadFileChunk
arrived as a JSON body like {"chunk":{}} and the backend rejected
it with 400 'Expected multipart/form-data request'. This breaks all
uploads of files larger than the 1.5 GiB chunking threshold.

The non-chunked path already uses postForm for /ssh/uploadFileStream;
use it for the chunk path too so axios keeps the FormData intact and
the browser sets the multipart boundary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat: implement OIDC back-channel logout support with session management (#1028)

* feat: implement OIDC back-channel logout support with session management

* Fix OIDC back-channel logout handling

* Require logout token replay identifiers

---------

Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>

* Add API key host enrollment endpoint (#1029)

* Fix tmux detection for non-POSIX shells (#1030)

* Fix OPKSSH js-yaml ESM import (#1031)

* Fix Android Vietnamese IME input (#1032)

* Fix Firefox RDP clipboard paste (#1033)

* Fix Proxmox discovery over HTTPS (#1041)

* Fix external editor actions in file preview (#1042)

* Allow pinned hosts with name sorting (#1043)

* Fix Firefox desktop OIDC callback (#1044)

* feat(session): add recording and replay (#1049)

* Fix status checks through jump hosts (#1045)

* Add terminal font size shortcuts (#1047)

* feat: add Open File Manager to tab right-click menu (#1051)

Co-authored-by: SankeerthNara <sankeerthnara@gmail.com>

* perf: frontend request cache, poll pause, and code-split shell (#1052)

Host/status caching, shell code-split, SSH pool waits, host-metrics concurrency, background-tab idle, per-host status subscriptions, homepage poll quieting, and virtualized host sidebar + file manager lists.

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* feat: save quick connect sessions as hosts (#1055)

* fix: restore sudo password autofill settings (#1056)

* fix: preserve file editor position on save (#1057)

* fix: sync cloud preference storage mode (#1058)

* fix: render RDP sessions at native pixel density (#1059)

* fix: restore database import in embedded desktop mode (#1060)

* Update Auto-complete.tsx (#1061)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* chore: donation bar reporting wrong result

* feat: add Open File Manager to tab right-click menu (#1046)

* Revert "feat: add Open File Manager to tab right-click menu (#1046)" (#1050)

This reverts commit 0712fdd731.

* Remove donation badge from README

Removed donation badge from README.

* Delete .github/workflows/donation-goal.yml

* Update Auto-complete.tsx

---------

Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>

* feat(auth): opt-in OIDC DEK unlock for API-key requests (ALLOW_APIKEY_DATA_UNLOCK) (#1064)

* chore: fix release workflow to merge docs branch

* fix: svg donation generator push fail

* fix: svg donation generator push fail

* Update termix.rb

* fix: svg donation generator push fail

* chore: move donation badge to badges branch to avoid ruleset conflicts

* chore: remove unneeded token from donation badge workflow

* chore: debug donation badge commit step

* fix: escape < character in donation SVG

* fix: point donation badge to badges branch

* chore: remove unused donation badge svg from main

* Add Rack Genius logo to README

Added Rack Genius logo to the README.

* chore: improve donation goal svg generator to include stablecoins

* chore: donation goal generator syntax error

* chore: donation goal generator incorrect docs url usage

* chore: donation bar reporting wrong result

* feat: add Open File Manager to tab right-click menu (#1046)

* Revert "feat: add Open File Manager to tab right-click menu (#1046)" (#1050)

This reverts commit 0712fdd731.

* Remove donation badge from README

Removed donation badge from README.

* Delete .github/workflows/donation-goal.yml

* feat(auth): opt-in OIDC DEK unlock for API-key requests

API keys authenticate but cannot touch the encrypted credential/host store
('User data not unlocked') unless the user has a live interactive session,
making them unusable for headless automation. For OIDC users the DEK is
server-derivable (deriveOIDCSystemKey), so handleApiKeyAuth can unlock it
without a password.

Gated behind ALLOW_APIKEY_DATA_UNLOCK (default off) because enabling it widens
the blast radius of a leaked API key. OIDC-only; password users are untouched.

Refs #1063

---------

Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
Co-authored-by: Sankeerth Nara <sankeerthnara@gmail.com>
Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>

* chore: package lock sync

* Add Proxmox guest auto sync (#1053)

* draft: database layer refactor (#1054)

* feat(sshid) - sshid.io equivalent for termix (#919)

* feat(ssh-id): database schema, migrations and field encryption

Adds ssh_identities, ssh_identity_keys and ssh_identity_ca tables (public keys
stored plaintext for the unauthenticated resolver; CA private key registered
for per-user field encryption), with UNIQUE(user_id), an index on
ssh_identity_keys(identity_id), and idempotent CREATE TABLE migrations.

* feat(ssh-id): backend API — resolver, key management, CA and certificates

Mounts /sshid (nginx route added). Public text/plain authorized_keys resolver
(+ exact /:algo filter, HTML viewer) and CA public-key endpoint; no-store +
noindex headers on every resolver response including early 404s. Authenticated
management: claim/rename/delete handle, add/import/generate/enable/delete keys,
and a per-user CA (create/rotate/delete) with pure-Node OpenSSH certificate
issuance. Audit logging on all mutations; UNIQUE races map to a precise 409.
Unit tests for key parsing and certificate signing (ssh-keygen-validated).

* feat(ssh-id): frontend panel, API client and i18n

SSH ID panel wired into the app rail and AppShell: claim handle, resolver URL +
curl one-liner, key list, generate, paste/import, CA enable/rotate/remove with
server trust command, and per-key certificate issuance. API client re-exported
through main-axios.ts; all strings i18n'd.

* style(ssh-id): align panel and resolver page with Termix theme

- Rebuild the SSH ID sidebar panel with the theme's square components
  (SectionCard / SettingRow / FakeSwitch) instead of rounded ad-hoc cards;
  use accent-brand and destructive tokens rather than raw red/green.
- Fix panel scrolling: move overflow to a block scroll container so the
  cards keep their natural height instead of being clipped.
- Restyle the public resolver HTML page (/sshid/u/:handle) to the Termix
  dark theme: square corners, #18181b/#303032 palette, #f59145 accent,
  uppercase section labels.
- Tidy copy: 'Save To Credentials' label, drop the redundant generate intro,
  and correct the generate tooltip (the key is stored when saving to vault).

* feat: rename to Termix ID, improve UI, backend inconsistencies, and general bug fixes

---------

Co-authored-by: LukeGus <bugattiguy527@gmail.com>

* ci(deps): bump actions/checkout from 6 to 7 in the github-actions group (#922)

Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump the dev-patch-updates group with 11 updates (#923)

Bumps the dev-patch-updates group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [@codemirror/search](https://github.com/codemirror/search) | `6.7.0` | `6.7.1` |
| [@codemirror/view](https://github.com/codemirror/view) | `6.43.0` | `6.43.1` |
| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.0` | `4.3.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.8` | `4.1.9` |
| [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) | `4.1.8` | `4.1.9` |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.5.2` | `0.5.3` |
| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.7` | `17.0.8` |
| [prettier](https://github.com/prettier/prettier) | `3.8.3` | `3.8.4` |
| [sharp](https://github.com/lovell/sharp) | `0.35.1` | `0.35.2` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.3.0` | `4.3.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.8` | `4.1.9` |


Updates `@codemirror/search` from 6.7.0 to 6.7.1
- [Changelog](https://github.com/codemirror/search/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/search/commits)

Updates `@codemirror/view` from 6.43.0 to 6.43.1
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/commits)

Updates `@tailwindcss/vite` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/@tailwindcss-vite)

Updates `@vitest/coverage-v8` from 4.1.8 to 4.1.9
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.9/packages/coverage-v8)

Updates `@vitest/ui` from 4.1.8 to 4.1.9
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.9/packages/ui)

Updates `eslint-plugin-react-refresh` from 0.5.2 to 0.5.3
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.2...v0.5.3)

Updates `lint-staged` from 17.0.7 to 17.0.8
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v17.0.7...v17.0.8)

Updates `prettier` from 3.8.3 to 3.8.4
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.8.3...3.8.4)

Updates `sharp` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/lovell/sharp/releases)
- [Commits](https://github.com/lovell/sharp/compare/v0.35.1...v0.35.2)

Updates `tailwindcss` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss)

Updates `vitest` from 4.1.8 to 4.1.9
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.9/packages/vitest)

---
updated-dependencies:
- dependency-name: "@codemirror/search"
  dependency-version: 6.7.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@codemirror/view"
  dependency-version: 6.43.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@vitest/ui"
  dependency-version: 4.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: lint-staged
  dependency-version: 17.0.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: prettier
  dependency-version: 3.8.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: sharp
  dependency-version: 0.35.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: vitest
  dependency-version: 4.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump nanoid in the prod-patch-updates group (#925)

Bumps the prod-patch-updates group with 1 update: [nanoid](https://github.com/ai/nanoid).


Updates `nanoid` from 5.1.11 to 5.1.15
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/5.1.11...5.1.15)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-version: 5.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump the major-updates group with 5 updates (#926)

Bumps the major-updates group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [js-yaml](https://github.com/nodeca/js-yaml) | `4.2.0` | `5.0.0` |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.4` | `10.0.1` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.9.2` | `26.0.0` |
| [concurrently](https://github.com/open-cli-tools/concurrently) | `9.2.1` | `10.0.3` |
| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `10.5.0` |


Updates `js-yaml` from 4.2.0 to 5.0.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.2.0...5.0.0)

Updates `@eslint/js` from 9.39.4 to 10.0.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/commits/v10.0.1/packages/js)

Updates `@types/node` from 25.9.2 to 26.0.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `concurrently` from 9.2.1 to 10.0.3
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v9.2.1...v10.0.3)

Updates `eslint` from 9.39.4 to 10.5.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.4...v10.5.0)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: major-updates
- dependency-name: "@eslint/js"
  dependency-version: 10.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: major-updates
- dependency-name: "@types/node"
  dependency-version: 26.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: major-updates
- dependency-name: concurrently
  dependency-version: 10.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: major-updates
- dependency-name: eslint
  dependency-version: 10.5.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: major-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat(ssh): add HashiCorp Vault SSH signer authentication

* fix: small fixes to vault feature to align with Termix codebase

* chore: add view docs links for vault/termix id

* fix: file upload fails with 400 and missing schema migrations on upgrade (#929)

Two bugs introduced in v2.4.1:

1. uploadFileStream uses fileManagerApi.post() which triggers axios's
   transformRequest to JSON-serialize the FormData because the instance
   default Content-Type is application/json. Change to postForm() which
   sets Content-Type: multipart/form-data so the browser XHR sends the
   correct multipart body with boundary.

2. Two schema items added to schema.ts were not included in migrateSchema()
   in db/index.ts, causing 500 errors on existing installations upgrading
   from v2.4.0:
   - user_preferences.status_color_scheme (no such column)
   - dashboard_service_links table (no such table)

Fixes #928

Co-authored-by: sash <sash@fominykh.io>

* fix: support PuTTY PPK ssh keys (#930)

* fix: chunk large file manager uploads (#932)

* fix: route dashboard hosts by protocol (#934)

* fix: resolve tunnel endpoints reliably (#935)

* Fix Electron OIDC browser auth failures (#936)

* Allow RDP connections without stored credentials (#937)

* Sync role credential shares for OIDC users (#938)

* Fix terminal link dialog layering (#940)

* Confirm large files before opening editor (#942)

* Confirm closing active host connections (#943)

* Preserve file path case in file manager UI (#941)

* fix: preserve unicode guacamole tokens (#933)

* Persist VNC authentication settings (#944)

* Fix Guacamole websocket base path (#946)

* Promote file manager terminals to tabs (#939)

* Guard Guacamole disconnect during startup (#945)

* chore: increment ver

* feat: bitwarden ssh agent integration

* feat: serial connections support

* fix: various small bug fixes

* feat: open all sessions in a folder and terminal custom theme color support

* feat: cross host file manager clipboard and several small bug fixes

* feat: tailscale/wireguard support and added a new status state for when backend is checking status

* feat: grafana like server stats history, new alert system, ntfy/webhook support

* feat: new grid and widget based homepage function

* feat: new donate button in dashboard

* fix: alert ui incorrectly using termix css and fixed issue with alert system not loading

* chore: start database layer refactor

* docs: plan database layer refactor

* docs: audit database layer refactor phase zero

* chore: add database runtime adapter skeleton

* chore: add settings repository skeleton

* chore: add user session repository skeleton

* chore: add host credential repository skeleton

* chore: add field encryption boundary

* chore: migrate settings route slice

* chore: migrate user settings routes

* chore: migrate host metrics settings routes

* chore: migrate acme settings route

* chore: migrate terminal settings route

* chore: migrate tailscale settings read

* chore: migrate guacamole settings reads

* chore: migrate session timeout settings reads

* chore: migrate auth route settings reads

* chore: migrate host metrics settings reads

* chore: migrate startup settings reads

* chore: migrate user settings cleanup

* chore: migrate password reset settings

* chore: migrate oidc legacy settings read

* chore: migrate user route settings slice

* chore: migrate oidc state settings

* chore: migrate user login settings reads

* chore: migrate user crypto settings

* chore: consolidate startup settings defaults

* chore: consolidate database settings import export

* chore: migrate core session auth paths

* chore: migrate remaining session auth paths

* chore: migrate admin user routes

* chore: migrate user route admin checks

* chore: migrate user lifecycle routes

* chore: migrate auth user lookups

* chore: migrate oidc user routes

* chore: migrate api key repository paths

* docs: add database gray rollout guide

* chore: migrate trusted device paths

* chore: migrate user session route user lookups

* chore: add database repository rollout guard

* chore: expose repository rollout status

* chore: warn on repository rollout misconfiguration

* chore: migrate remaining user lookup helpers

* chore: migrate ssh user lookups

* chore: migrate user settings admin lookups

* chore: migrate acme ssl user lookups

* chore: migrate audit log admin checks

* chore: migrate oidc account user updates

* chore: migrate password reset user updates

* chore: migrate user deletion core records

* chore: migrate snippet audit user lookups

* chore: migrate ldap user sync paths

* chore: migrate totp user updates

* chore: migrate rbac user checks

* chore: migrate rbac role paths

* chore: migrate permission role lookups

* chore: migrate rbac access list reads

* chore: migrate shared rbac reads

* chore: migrate rbac access writes

* chore: migrate permission host access

* chore: migrate role host access lookup

* chore: migrate snippet access lookup

* chore: migrate shared credential access lookups

* chore: migrate host access cleanup writes

* chore: migrate host list access checks

* chore: migrate host access cleanup routes

* chore: migrate shared credential role lookups

* chore: migrate user role cleanup

* chore: migrate admin role sync

* chore: migrate ldap role sync

* chore: migrate user role assignment

* chore: migrate sso provider access

* chore: migrate audit log access

* chore: migrate user preference access

* chore: migrate open tab access

* chore: migrate dismissed alert access

* chore: migrate homepage layout access

* chore: migrate network topology access

* chore: migrate dashboard service link access

* chore: migrate command history access

* chore: migrate recent activity cleanup

* chore: migrate ssh credential usage access

* chore: migrate transfer recent access

* chore: migrate file manager bookmark access

* chore: migrate c2s tunnel preset access

* chore: migrate homepage item access

* chore: migrate session recording access

* chore: migrate tmux session tag access

* chore: migrate opkssh token access

* chore: migrate vault token access

* chore: migrate vault profile access

* chore: migrate host metrics preference access

* chore: migrate host health access

* chore: migrate host metrics history access

* chore: migrate alert persistence access

* chore: route alert host lookup through repository

* chore: migrate user data export reads

* chore: route host metrics stats sync through repository

* chore: migrate host folder persistence

* chore: migrate host resolution reads

* chore: route jump host resolution reads

* chore: route docker console jump host reads

* chore: route docker ssh resolution reads

* chore: route proxmox discovery resolution reads

* chore: route file manager activity host reads

* chore: route host metrics resolution reads

* chore: route ssh auth credential reads

* chore: route tunnel endpoint credential reads

* chore: route credential deployment resolution reads

* chore: route command history host flag reads

* chore: route snippet execution resolution reads

* chore: route terminal host resolution reads

* chore: route vault oidc host resolution reads

* chore: route wake on lan host reads

* chore: route internal host list reads

* chore: route host key verification persistence

* chore: route credential read paths

* chore: route credential host usage reads

* chore: route credential folder rename

* chore: route host owner access checks

* chore: route shared credential source reads

* chore: route user host credential cleanup

* chore: route credential delete reads

* chore: route credential update reads

* chore: route host credential reads

* chore: route host read paths

* chore: route host projection reads

* chore: route host list reads

* chore: route snippet read paths

* chore: route snippet folder writes

* chore: route snippet crud paths

* chore: route snippet bulk import

* chore: route rbac ownership reads

* chore: route user count reads

* chore: route cleanup snippets folders

* chore: route shared credential persistence

* chore: route dashboard activity

* chore: route guacamole host reads

* chore: route host bulk lookups

* chore: remove unlock-only simple db ops

* chore: route host autostart persistence

* chore: route ldap provisioning through users

* chore: route credential encrypted writes

* chore: route host encrypted writes

* chore: route bulk host encrypted writes

* chore: route termix id credentials

* chore: route termix id ca persistence

* chore: route termix identity persistence

* chore: route credential system migration

* chore: isolate user encryption migration storage

* chore: remove legacy simple db ops

* chore: isolate legacy sqlite migration copy

* chore: route database settings import export

* chore: route database host credential export

* chore: route database host credential import

* chore: route database file-manager import export

* chore: route database alert usage import export

* chore: route database user checks

* chore: isolate auth lazy migration storage

* chore: route explicit database saves

* chore: initialize database save boundary

* chore: route migration snapshot saves

* chore: isolate sqlite import constraints

* chore: route import sqlite boundary

* chore: route user encryption migration store

* chore: centralize current repository runtime

* chore: route more current repositories

* chore: route activity repository runtimes

* chore: route token repository runtimes

* chore: route health repository runtimes

* chore: route identity repository runtimes

* chore: route rbac repository runtime

* chore: centralize current sqlite runtime access

* chore: route user deletion key cleanup

* chore: route user deletion vault cleanup

* chore: route user deletion homepage cleanup

* chore: route user deletion health cleanup

* chore: route user deletion alert cleanup

* chore: route user deletion identity cleanup

* chore: add database layer preupgrade backup

* Fix database repository type errors

* fix: complete post-merge compile fixes for database refactor

Restore missing DatabaseSaveTrigger/getDb imports, session log format
fallback, OIDC provider resolution, guacamole recording insert, and
passwordFallbackOnly typing after merging current dev.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: DivByZero <mr.oplus@yahoo.fr>
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: devdanetra <46488477+devdanetra@users.noreply.github.com>
Co-authored-by: Aleksandr Fominykh <neoformalex@users.noreply.github.com>
Co-authored-by: sash <sash@fominykh.io>

* refactor(db): collapse repository rollout scaffolding into single factory

Repositories are now the only data path. Replaces the 41 current-*-repository
wrapper files, the DATABASE_LAYER_REPOSITORY_ROLLOUT flag/alias map and the
unused database/runtime adapter with repositories/factory.ts, a plain
DatabaseContext type and an in-memory TestSqliteDatabase test harness.

* refactor(db): route remaining raw DB access through repositories

proxmox, session-log, oidc-utils, webauthn and guacamole recording now use
repositories (new WebauthnCredentialRepository; SsoProviderRepository
listEnabled; HostRepository findDecryptedByIdAs/listProxmoxEnabled).
Remaining raw access: db boot code, simple-db-ops and docker.ts, which are
removed/restructured in later phases.

* feat(crypto): add UserKeyManager with system-wrapped per-user DEKs

New utils/user-keys.ts: one random 32-byte DEK per user, wrapped
AES-256-GCM under an HKDF key derived from the system ENCRYPTION_KEY
(per-user info string + AAD binding, versioned v3 wrap format stored in
settings). Synchronous unwrap-on-demand with a 15-minute cache so the
existing DataCrypto facade keeps its sync call sites. Not wired up yet.

* feat(crypto): boot-time DEK migration to system-wrapped v3 format

utils/crypto-migration/dek-migration.ts carries the legacy unwrap paths
(PBKDF2 password KEK, OIDC/WebAuthn system keys, hardcoded-default
fallback) and migrates every server-unwrappable DEK to the v3 wrap at
startup. Password-wrapped DEKs migrate at next login or from a live
session via adoptRecoveredDEK. Legacy rows are kept for now; cleanup
flips on once the new path is authoritative.

* refactor(crypto): make system-wrapped DEKs the authoritative key path

DataCrypto and AuthManager now read keys through UserKeyManager: DEKs are
always unwrappable server-side, so the in-memory unlock session, DEK-in-JWT
wrapping, session-expiry data locks and ALLOW_APIKEY_DATA_UNLOCK are gone.
utils/user-crypto.ts is deleted; boot migration now cleans legacy wraps.
A one-release shim adopts DEKs from legacy dataKeyWrap tokens so active
password users migrate without re-login. Password login migrates legacy
password-wrapped DEKs via migratePasswordUserAtLogin.

* refactor(crypto): remove pending share queue and credential sharing key

With server-unwrappable DEKs both sides of a share are always available,
so the needsReEncryption queue, CREDENTIAL_SHARING_KEY and the system_*
shadow columns on ssh_credentials are gone. A one-time boot cleanup
re-creates legacy pending share copies where possible (dropping
unresolvable ones with a warning) and drops the legacy columns.

* feat(auth): non-destructive password resets and admin reset endpoint

Password resets no longer destroy user data: the DEK is system-wrapped, so
forgot-password and admin resets are just a hash update plus session revoke.
The wipe branch survives only for accounts that never logged in since the
encryption upgrade and now requires explicit confirmDataWipe (surfaced as a
409 DATA_WIPE_REQUIRED; the reset UI asks for confirmation). Adds
POST /users/admin/reset-password and removes the dead re-encryption paths.

* refactor(ssh): consolidate four jump-host chain copies into one module

terminal, host-metrics and docker now use ssh/jump-host-chain.ts (already
shared by file-manager, tmux-monitor and docker-console); docker's inline
copy also drops its raw SimpleDBOps host/credential lookups in favor of
repositories.

* refactor(ssh): single shared createConnectionLog helper

file-manager-log.ts becomes ssh/connection-log.ts; the copies in docker.ts
and host-metrics-helpers.ts are gone.

* refactor(ssh): split docker module into layered directory

ssh/docker/{index,routes,session-manager,container-routes,console}.ts:
server boot and wiring in index, HTTP handlers in routes, SSH session
registry and command execution in session-manager. Code motion only;
port 30007/30009 and endpoints unchanged. Swagger now scans ssh
subdirectories.

* refactor(ssh): split tunnel module into layered directory

ssh/tunnel/{index,routes,manager}.ts: server boot in index, HTTP handlers
in routes, tunnel state and engine (connect/retry/autostart) in manager.
Code motion only; port 30003 and endpoints unchanged.

* refactor(backend): reorganize top-level layout

- ssh/ renamed to hosts/ (it covers SSH, RDP, VNC, Telnet, Docker, metrics)
- serial/serial.ts and guacamole/ moved inside hosts/
- dashboard.ts and homepage.ts moved to services/
- swagger.ts moved to utils/ with adjusted scan globs

Import paths and the generate:openapi script updated; ports and endpoints
unchanged.

* refactor(tests): move backend tests into src/backend/tests mirror tree

Backend *.test.ts files (and the test-support harness) no longer sit next
to source files; they live under src/backend/tests/ mirroring the source
layout. Imports rewritten accordingly; CLAUDE.md convention updated.

* refactor(hosts): group host modules into per-feature directories

file-manager/, metrics/ (incl. widgets, managers, alert-engine),
terminal/, tmux/ and tunnel/ each own their files; docker/ gains
container-runtime. Genuinely shared helpers (jump-host chain, host
resolver, connection pool, opkssh, vault, serial) stay at hosts/ root.
Pure file moves with import path updates; mirrored test paths follow.

* refactor(backend): final cleanup pass

- re-register WebAuthn passkey routes (registration was dropped in the
  #1054 merge, breaking passkey login) and document all six endpoints
- delete utils/simple-db-ops.ts (last caller migrated to DataCrypto)
- starter: use the typed serverReady export, collapse the four-way
  version lookup to env then package.json candidates
- add OpenAPI JSDoc to c2s-tunnel-presets endpoints
- strip block-divider comment banners

* feat: remove legacy "data_unlocked" field

* feat: refactor rbac/sharing to support new permissions and auth types

* feat: refactor rbac/sharing to support new permissions and auth types

* feat: add "id" to user profile hide list

* chore: root cleanup

* feat: add more donation references and a 30-day donation reminder

* chore: update readme

* feat: automate beta tests

* feat: add links to milestones

* fix: hoist github/google SSO defaults to module scope (#1065)

* fix(ssh-tools): allow clipboard paste in key recording field (#1066)

The broadcast key-recording input was marked readOnly, which makes
browsers block paste entirely (no context-menu Paste, Ctrl+V does
nothing). handleKeyDown also called preventDefault() unconditionally,
swallowing the Ctrl+V shortcut before a paste event could even fire.

Let Ctrl/Cmd+V pass through in handleKeyDown, drop readOnly, and add
an onPaste handler that reads the clipboard text and broadcasts it to
the selected terminals like any other captured keystroke.

Signed-off-by: emreumar <emreumar@users.noreply.github.com>
Co-authored-by: emreumar <emreumar@users.noreply.github.com>

* chore: write release notes

* chore: update release notes

* chore: update readmes

* chore: add crypto only reminder in en.json

* fix: macOS and cask errors on release workflow

* chore: sync Crowdin translations for 2.5.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: emreumar <emreumar@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
Co-authored-by: Russell Poovey <09.our_seekers@icloud.com>
Co-authored-by: russell <git@0896c69e.com>
Co-authored-by: Subedi Bibek <77529535+questbibek@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Alexander Elsner <101340634+Bensonheimer992@users.noreply.github.com>
Co-authored-by: SankeerthNara <sankeerthnara@gmail.com>
Co-authored-by: Stephan Groth <96803994+Kalvalax@users.noreply.github.com>
Co-authored-by: DivByZero <mr.oplus@yahoo.fr>
Co-authored-by: devdanetra <46488477+devdanetra@users.noreply.github.com>
Co-authored-by: Aleksandr Fominykh <neoformalex@users.noreply.github.com>
Co-authored-by: sash <sash@fominykh.io>
Co-authored-by: lhojun <ldgs3324@gmail.com>
Co-authored-by: Yunus Emre Umar <77045015+emre155@users.noreply.github.com>
Co-authored-by: emreumar <emreumar@users.noreply.github.com>
2026-07-19 12:29:52 -05:00

3473 lines
184 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"termixId": {
"title": "ID de Termix",
"loadFailed": "No s'ha pogut carregar l'ID de Termix.",
"claimTitle": "Reclama el teu ID de Termix",
"claimIntro": "Trieu un identificador únic. Les vostres claus públiques SSH es publicaran en una URL pública que podeu afegir al fitxer authorized_keys de qualsevol servidor.",
"handleLabel": "Maneta",
"handlePlaceholder": "Alícia",
"checking": "Comprovació de…",
"available": "Disponible",
"taken": "Ja ocupat/da",
"invalidHandle": "Només lletres minúscules, números, - i _",
"descriptionLabel": "Descripció (opcional)",
"descriptionPlaceholder": "Claus de portàtil i telèfon de la feina",
"create": "Crea un ID de Termix",
"created": "ID de Termix creat",
"createFailed": "No s'ha pogut crear l'ID de Termix.",
"deleteConfirm": "Voleu suprimir el vostre ID de Termix i totes les claus publicades? Els servidors que heu aprovisionat conservaran les claus fins que les elimineu manualment.",
"deleted": "ID de Termix suprimit",
"deleteFailed": "No s'ha pogut suprimir l'ID de Termix.",
"copyFailed": "S'ha produït un error de còpia.",
"resolverUrlLabel": "URL de resolució pública",
"provisionLabel": "Provisionar un servidor",
"publishTitle": "Publicar una clau pública",
"generate": "Generar",
"generateTooltip": "Genera un parell de claus Ed25519: publica la clau pública i descarrega la clau privada al dispositiu.",
"saveToVault": "Desa a les credencials",
"keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... usuari@amfitrió",
"labelPlaceholder": "Etiqueta (opcional)",
"add": "Afegeix",
"importFromCredential": "O importar des d'una credencial emmagatzemada",
"keyPublished": "Clau publicada",
"addKeyFailed": "No s'ha pogut afegir la clau",
"generatedSaved": "Parell de claus generat i desat al vostre magatzem de credencials. La clau privada també s'ha descarregat.",
"generatedOnly": "Parell de claus generat: clau privada descarregada (només es mostra una vegada).",
"generateFailed": "No s'ha pogut generar la clau",
"imported": "Clau importada de la credencial",
"importFailed": "No s'ha pogut importar la clau",
"noKeys": "Encara no s'han publicat cap clau pública.",
"keysTitle": "Claus publicades",
"published": "Publicat",
"hidden": "Ocult",
"keyRemoved": "Clau retirada",
"removeKeyFailed": "No s'ha pogut treure la clau",
"updateKeyFailed": "No s'ha pogut actualitzar la clau",
"fromVault": "Des de la caixa forta de credencials",
"linkedToTermixId": "Publicat a través de l'ID de Termix",
"selectCredential": "Selecciona una credencial...",
"import": "Importa",
"caTitle": "Autoritat de certificació",
"caIntro": "Confia en aquesta CA en un servidor i acceptarà qualsevol certificat que signeu. Gireu per revocar-ho tot alhora; els certificats també caduquen sols.",
"caEnable": "Habilita CA",
"caEnabled": "CA habilitat",
"caCreateFailed": "No s'ha pogut habilitar l'entitat de certificació",
"caPublicKeyLabel": "Clau pública de CA",
"caTrustLabel": "Confiança en un servidor (executat com a root)",
"caRotate": "Girar",
"caRotateConfirm": "Voleu rotar l'entitat de certificació? Tots els certificats que hagi signat deixaran de ser acceptats i s'hauran de tornar a emetre.",
"caRotated": "CA rotada: certificats anteriors revocats",
"caRotateFailed": "No s'ha pogut rotar CA",
"caDelete": "Eliminar CA",
"caDeleteConfirm": "Voleu eliminar l'autoritat de certificació?",
"caDeleted": "CA eliminada",
"caDeleteFailed": "No s'ha pogut eliminar l'entitat de certificació",
"caValidityLabel": "Validesa del certificat (dies)",
"issueCert": "Certificat",
"issueCertTooltip": "Emet un certificat SSH per a aquesta clau, signat per la teva CA",
"certIssued": "Certificat emès i descarregat",
"certIssueFailed": "No s'ha pogut emetre el certificat"
},
"credentials": {
"folders": "Carpetes",
"folder": "Carpeta",
"password": "Contrasenya",
"key": "Clau",
"sshPrivateKey": "Clau privada SSH",
"upload": "Pujada",
"keyPassword": "Contrasenya clau",
"sshKey": "Clau SSH",
"uploadPrivateKeyFile": "Puja el fitxer de clau privada",
"searchCredentials": "Cerca credencials...",
"addCredential": "Afegeix credencials",
"caCertificate": "Certificat CA (-cert.pub)",
"caCertificateDescription": "Opcional: Puja o enganxa el fitxer de certificat signat per l'autoritat de certificació (per exemple, id_ed25519-cert.pub). Obligatori quan el servidor SSH utilitza l'autorització basada en certificats.",
"uploadCertFile": "Puja el fitxer -cert.pub",
"clearCert": "Clar",
"certLoaded": "Certificat carregat",
"certPublicKeyLabel": "Certificat de CA",
"certTypeLabel": "Tipus de certificat",
"pasteOrUploadCert": "Enganxa o puja un certificat -cert.pub...",
"hasCaCert": "Té un certificat de CA",
"noCaCert": "Sense certificat de CA",
"noPublicKeyAvailable": "No hi ha cap clau pública disponible. Obriu primer l'editor de credencials.",
"deployCommandCopied": "S'ha copiat l'ordre de desplegament",
"sortCredentials": "Ordenar credencials",
"sortDefault": "Ordre per defecte",
"sortNameAsc": "Nom (A → Z)",
"sortNameDesc": "Nom (Z → A)",
"sortUsernameAsc": "Nom d'usuari (A → Z)",
"sortUsernameDesc": "Nom d'usuari (Z → A)",
"filterCredentials": "Filtrar credencials",
"filterClearAll": "Esborra els filtres",
"filterTypeGroup": "Tipus",
"filterTypePassword": "Contrasenya",
"filterTypeKey": "Clau SSH",
"filterTagsGroup": "Etiquetes"
},
"homepage": {
"title": "Pàgina d'inici",
"addWidget": "Afegeix un widget",
"editWidget": "Edita el widget",
"deleteWidget": "Suprimeix",
"widgetTypes": "Tipus de widgets",
"serviceLink": "Enllaç de servei",
"folder": "Carpeta",
"clock": "rellotge",
"notes": "Notes",
"hostStatus": "Estat de l'amfitrió",
"bookmarkList": "Adreces d'interès",
"zoomIn": "Ampliar zoom",
"zoomOut": "Allunyar",
"resetView": "Restableix la vista",
"lockLayout": "Disseny de bloqueig",
"unlockLayout": "Desbloqueja el disseny",
"noWidgets": "Feu clic amb el botó dret o feu clic a + per afegir el primer widget",
"openFullView": "Obre la vista completa",
"previewTitle": "Vista prèvia de la pàgina d'inici",
"cancel": "Cancel·la",
"save": "Desa",
"title_label": "Títol",
"widgetTitlePlaceholder": "Títol del widget (opcional)",
"url": "URL",
"imageUrl": "URL d'imatge personalitzada",
"imageUrlHint": "Deixeu-ho en blanc per utilitzar la icona de favorits del lloc web automàticament",
"showImage": "Mostra la imatge",
"description": "Descripció",
"color": "Color",
"icon": "Icona",
"expanded": "Expandit per defecte",
"timezone": "Zona horària",
"showSeconds": "Mostra els segons",
"format12h": "12 hores",
"format24h": "24 hores",
"content": "Contingut",
"backgroundColor": "Color de fons",
"host": "Amfitrió",
"showMetrics": "Mostra les mètriques",
"links": "Enllaços",
"addLink": "Afegeix un enllaç",
"linkLabel": "Etiqueta",
"linkUrl": "URL",
"removeLink": "Elimina",
"categoryLinks": "Enllaços",
"categoryInfo": "Informació",
"categorySystem": "Sistema",
"widgetServiceLinkDesc": "Una tessel·la clicable que enllaça a una URL de servei",
"widgetFolderDesc": "Un contenidor per agrupar widgets relacionats",
"widgetClockDesc": "Un rellotge en directe amb zona horària configurable",
"widgetNotesDesc": "Un widget de notes de rebaixa",
"widgetHostStatusDesc": "Mostra la CPU, la memòria i el disc en directe per a un host SSH",
"widgetBookmarkListDesc": "Una llista d'enllaços ràpids",
"copyLink": "Copia l'enllaç",
"linkCopied": "Enllaç copiat!",
"location": "Ubicació",
"temperatureUnit": "Unitat de temperatura",
"showForecast": "Mostra la previsió de 3 dies",
"scrolling": "Permet el desplaçament",
"feedUrl": "URL del canal",
"maxItems": "Màxim d'elements",
"showDescription": "Mostra la descripció",
"widgetWeatherName": "El temps",
"widgetWeatherDesc": "El temps en directe per a qualsevol ubicació",
"widgetIframeName": "Incrustació d'iFrame",
"widgetIframeDesc": "Incrustar qualsevol URL en un iframe",
"widgetRssName": "Canal RSS",
"widgetRssDesc": "Mostrar elements d'un canal RSS o Atom",
"dragToFolder": "Arrossega els widgets aquí o fes servir + per afegir-los",
"showDisk": "Mostra l'ús del disc",
"addToFolder": "Afegeix el widget a la carpeta",
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"metricsNotAvailable": "Mètriques no disponibles",
"selectHost": "Seleccioneu un amfitrió...",
"displayedMetrics": "Mètriques mostrades",
"metricCpu": "CPU",
"metricMemory": "Memòria",
"metricDisk": "Disc",
"metricUptime": "Temps de funcionament",
"metricSystem": "Sistema",
"metricOs": "Sistema operatiu",
"metricKernel": "Nucli",
"metricHostname": "Nom d'amfitrió",
"metricNetwork": "Xarxa",
"metricProcesses": "Processos",
"metricProcessesTotal": "total",
"metricProcessesRunning": "corrent",
"categoryMonitoring": "Monitorització",
"loading": "S'està carregant...",
"noData": "No hi ha dades disponibles",
"allClear": "Tot clar",
"acknowledgeAlert": "Reconeix",
"noPingUrls": "No s'han configurat URL",
"pingLabel": "Etiqueta",
"addPingUrl": "Afegeix URL",
"showLatency": "Mostra la latència",
"refreshInterval": "Interval d'actualització",
"seconds": "segons",
"filterActivityTypes": "Tipus de filtre",
"filterTypesHint": "Deixeu-ho en blanc per mostrar-ho tot",
"showTimestamp": "Mostra la marca de temps",
"uptimeUnavailable": "Temps de funcionament no disponible",
"uptimeLabel": "Temps de funcionament",
"overviewVersion": "Versió",
"overviewUpdate": "Actualitzat",
"overviewUpdateAvailable": "Actualització disponible",
"overviewDatabase": "Base de dades",
"overviewUptime": "Temps de funcionament",
"noHosts": "No hi ha cap amfitrió configurat",
"hostGridHosts": "Amfitrions",
"hostGridAllHint": "Deixeu-ho en blanc per mostrar tots els amfitrions",
"columns": "Columnes",
"showIp": "Mostra l'adreça IP",
"connectionType": "Tipus de connexió",
"layout": "Disseny",
"showStatus": "Mostra l'estat",
"showHostName": "Mostra el nom de l'amfitrió",
"noDockerActivity": "Sense activitat de Docker",
"noActivity": "Sense activitat",
"showAcknowledged": "Mostra Reconeixement",
"showCurrentValue": "Mostra el valor actual",
"chartMetric": "Mètrica",
"metricRange": "Rang",
"widgetMetricsChartName": "Gràfic de mètriques",
"widgetMetricsChartDesc": "Gràfic històric de CPU, memòria, disc o xarxa per a un host",
"widgetHostGridName": "Graella d'amfitrió",
"widgetHostGridDesc": "Vista de quadrícula dels estats dels hosts SSH",
"widgetAlertFeedName": "Canal d'alertes",
"widgetAlertFeedDesc": "Trets d'alerta en directe amb suport de confirmació",
"widgetPingStatusName": "Estat del ping",
"widgetPingStatusDesc": "Estat del ping HTTP per a una o més URL",
"widgetRecentActivityName": "Activitat recent",
"widgetRecentActivityDesc": "Canal desplaçable de l'activitat recent de Termix",
"widgetTermixUptimeName": "Temps de funcionament de Termix",
"widgetTermixUptimeDesc": "Comptador de temps de funcionament en directe per al servidor Termix",
"widgetSystemOverviewName": "Visió general del sistema",
"widgetSystemOverviewDesc": "Versió de Termix, estat de la base de dades i temps de funcionament d'un cop d'ull",
"widgetSshQuickConnectName": "Connexió ràpida SSH",
"widgetSshQuickConnectDesc": "Botons d'un sol clic per obrir sessions SSH",
"widgetDockerActivityName": "Activitat de Docker",
"widgetDockerActivityDesc": "Esdeveniments recents del contenidor Docker a tots els amfitrions",
"widgetCalendarName": "Calendari",
"widgetCalendarDesc": "Un calendari mensual amb el dia d'avui destacat",
"widgetCountdownName": "Compte enrere",
"widgetCountdownDesc": "Temporitzador de compte enrere fins a una data objectiu",
"widgetSearchBarName": "Barra de cerca",
"widgetSearchBarDesc": "Widget de cerca web ràpida",
"widgetTextBannerName": "Bàner de text",
"widgetTextBannerDesc": "Una etiqueta o capçalera de secció en negreta per al llenç",
"widgetImageWidgetName": "Imatge",
"widgetImageWidgetDesc": "Mostrar una imatge des d'una URL",
"widgetMarkdownNotesName": "Notes de rebaixa",
"widgetMarkdownNotesDesc": "Notes enriquides amb renderització de markdown en línia",
"widgetCustomApiName": "API personalitzada",
"widgetCustomApiDesc": "Obtenir i mostrar dades de qualsevol API JSON",
"widgetServiceGridName": "Xarxa de serveis",
"widgetServiceGridDesc": "Una graella configurable d'enllaços de mosaics de servei",
"widgetDashboardLinksName": "Enllaços del tauler de control",
"widgetDashboardLinksDesc": "Mostra els enllaços de servei configurats des del tauler de control",
"widgetSearchLinksName": "Dreceres de cerca",
"widgetSearchLinksDesc": "Botons de drecera de cerca ràpida amb entrada en línia",
"widgetLinkTreeName": "Arbre d'enllaços",
"widgetLinkTreeDesc": "Seccions agrupades d'enllaços amb encapçalaments",
"calMon": "Mo",
"calTue": "Dimarts",
"calWed": "Nosaltres",
"calThu": "Dj.",
"calFri": "Div.",
"calSat": "Sa",
"calSun": "Dg.",
"startOnMonday": "Comença la setmana dilluns",
"countdownNoDate": "No hi ha cap data objectiu fixada",
"countdownPast": "L'esdeveniment ha passat",
"countdownDays": "dies",
"countdownHours": "hores",
"countdownMinutes": "min",
"countdownSeconds": "segons",
"countdownLabel": "Etiqueta",
"countdownLabelPlaceholder": "p. ex. Dia del llançament",
"countdownShowDays": "Dies d'espectacle",
"countdownShowHours": "Horari de la mostra",
"targetDate": "Data objectiu",
"searchEngine": "Motor de cerca",
"customSearchUrl": "URL de cerca personalitzada",
"searchPlaceholder": "Cerca...",
"searchGo": "Anar",
"searchPlaceholderLabel": "Text de marcador de posició",
"searchPlaceholderHint": "Text que es mostra dins del camp de cerca",
"openInNewTab": "Obre en una pestanya nova",
"searchQueryPlaceholder": "Introduïu la consulta...",
"noSearchShortcuts": "No hi ha dreceres configurades",
"addSearchShortcut": "Afegeix una drecera",
"fontSize": "Mida de la lletra",
"textAlign": "Alineació del text",
"fontWeight": "Pes de la lletra",
"clearColor": "Color clar",
"imageFit": "Ajust d'imatge",
"imageLinkUrl": "URL de l'enllaç",
"noImage": "No s'ha definit cap URL d'imatge",
"altText": "Text alternatiu",
"altTextPlaceholder": "Descriu la imatge",
"renderMarkdown": "Renderització Markdown",
"displayMode": "Mode de visualització",
"displayField": "Camp de visualització",
"jsonPath": "Camí JSON",
"customApiLabel": "Etiqueta",
"customApiLabelPlaceholder": "p. ex. Temperatura",
"customApiUnit": "Unitat",
"customApiNoUrl": "No s'ha configurat cap URL de l'API",
"customApiError": "No s'ha pogut obtenir",
"customApiNotArray": "La resposta no és una matriu",
"addService": "Afegeix un servei",
"showLabels": "Mostra les etiquetes",
"iconSize": "Mida de la icona",
"noDashboardLinks": "No hi ha cap enllaç configurat al tauler de control",
"noLimit": "Sense límit",
"sectionHeading": "Encapçalament de secció",
"addSection": "Afegeix secció",
"compactMode": "Mode compacte",
"showDetailed": "Mostra detallat",
"selectHosts": "Selecciona els amfitrions",
"allHosts": "Tots els amfitrions",
"listLayout": "Llista",
"gridLayout": "Graella",
"terminal": "Terminal",
"files": "Fitxers",
"docker": "Docker",
"range15m": "15 minuts",
"range1h": "1 hora",
"range6h": "6 hores",
"range24h": "24 hores",
"metricNetRx": "Descàrrega de xarxa",
"metricNetTx": "Càrrega de xarxa",
"severityFilter": "Filtre de gravetat",
"filterAll": "Tot",
"accentColor": "Color d'accent",
"widgetSshTerminalName": "Terminal SSH",
"widgetSshTerminalDesc": "Un terminal SSH en línia connectat a un host configurat",
"sshTerminalNoHost": "No hi ha cap amfitrió configurat",
"sshTerminalConnect": "Connecta",
"sshTerminalAutoConnect": "Connexió automàtica en càrrega",
"widgetQuickConnectName": "Connexió ràpida",
"widgetQuickConnectDesc": "Botons d'inici amb un sol clic per a qualsevol tipus de connexió entre els vostres amfitrions",
"connectionTypes": "Tipus de connexió",
"connType_terminal": "Terminal",
"connType_files": "Gestor de fitxers",
"connType_docker": "Docker",
"connType_tunnel": "Túnel",
"connType_host-metrics": "Mètriques de l'amfitrió",
"connType_rdp": "RDP",
"connType_vnc": "VNC",
"connType_telnet": "Telnet",
"widgetFileManagerName": "Gestor de fitxers",
"widgetFileManagerDesc": "Gestor de fitxers SFTP integrat per a un amfitrió configurat",
"widgetDockerName": "Gestor de Docker",
"widgetDockerDesc": "Gestor de contenidors Docker integrat per a un amfitrió configurat",
"widgetTunnelName": "Gestor de túnels",
"widgetTunnelDesc": "Gestor de túnels SSH integrat per a un host configurat",
"widgetNoHostSelected": "No hi ha cap amfitrió configurat"
},
"serverConfig": {
"title": "Configuració del servidor",
"description": "Configureu l'URL del servidor Termix per connectar-vos als vostres serveis de backend",
"serverUrl": "URL del servidor",
"enterServerUrl": "Si us plau, introduïu una URL de servidor",
"saveFailed": "No s'ha pogut desar la configuració",
"saveError": "S'ha produït un error en desar la configuració",
"saving": "Desant...",
"saveConfig": "Desa la configuració",
"helpText": "Introduïu l'URL on s'executa el vostre servidor Termix (per exemple, http://localhost:30001 o https://el-vostre-servidor.com)",
"changeServer": "Canviar servidor",
"mustIncludeProtocol": "L'URL del servidor ha de començar per http:// o https://",
"allowInvalidCertificate": "Permetre certificat no vàlid",
"allowInvalidCertificateDesc": "Utilitzeu-ho només per a servidors autoallotjats de confiança amb certificats autosignats o d'adreça IP.",
"useEmbedded": "Utilitza el servidor local",
"embeddedDesc": "Executeu Termix amb el servidor local integrat (no cal cap servidor remot)",
"embeddedConnecting": "Connectant al servidor local...",
"embeddedNotReady": "El servidor local encara no està a punt. Espereu un moment i torneu-ho a intentar.",
"localServer": "Servidor local",
"savedServers": "Servidors desats",
"noSavedServers": "Cap servidor desat",
"removeServer": "Elimina"
},
"versionCheck": {
"error": "Error de comprovació de versió",
"checkFailed": "No s'ha pogut comprovar si hi ha actualitzacions",
"upToDate": "L'aplicació està actualitzada",
"currentVersion": "Esteu executant la versió {{version}}",
"updateAvailable": "Actualització disponible",
"newVersionAvailable": "Hi ha una nova versió disponible! Esteu executant {{current}}, però {{latest}} està disponible.",
"betaVersion": "Versió beta",
"betaVersionDesc": "Esteu executant {{current}}, que és més recent que l'última versió estable {{latest}}.",
"releasedOn": "Publicat el {{date}}",
"downloadUpdate": "Descarrega l'actualització",
"checking": "S'estan buscant actualitzacions...",
"checkUpdates": "Comprova si hi ha actualitzacions",
"checkingUpdates": "S'estan buscant actualitzacions...",
"updateRequired": "Actualització necessària"
},
"common": {
"close": "Tanca",
"minimize": "Minimitzar",
"online": "En línia",
"offline": "Fora de línia",
"unknown": "Desconegut",
"continue": "Continua",
"maintenance": "Manteniment",
"degraded": "Degradat",
"error": "Error",
"warning": "Avís",
"unsavedChanges": "Canvis no desats",
"dismiss": "Ignora",
"loading": "S'està carregant...",
"optional": "Opcional",
"connect": "Connecta",
"copied": "Copiat",
"connecting": "Connectant...",
"updateAvailable": "Actualització disponible",
"appName": "Tèrmix",
"openInNewTab": "Obre en una pestanya nova",
"noReleases": "Sense llançaments",
"updatesAndReleases": "Actualitzacions i llançaments",
"newVersionAvailable": "Hi ha disponible una nova versió ({{version}}).",
"failedToFetchUpdateInfo": "No s'ha pogut obtenir la informació d'actualització",
"preRelease": "Preestrena",
"noReleasesFound": "No s'han trobat llançaments.",
"cancel": "Cancel·la",
"username": "Nom d'usuari",
"login": "Inicia la sessió",
"logout": "Tanca la sessió",
"register": "Registra't",
"password": "Contrasenya",
"confirmPassword": "Confirma la contrasenya",
"back": "Enrere",
"save": "Desa",
"saving": "Desant...",
"delete": "Suprimeix",
"rename": "Canvia el nom",
"edit": "Edita",
"add": "Afegeix",
"confirm": "Confirma",
"no": "No",
"or": "O",
"next": "Següent",
"previous": "Anterior",
"refresh": "Actualitza",
"language": "Llengua",
"checking": "S'està comprovant...",
"checkingDatabase": "S'està comprovant la connexió a la base de dades...",
"checkingAuthentication": "S'està comprovant l'autenticació...",
"backendReconnected": "Connexió al servidor restaurada",
"connectionDegraded": "Connexió al servidor perduda, recuperació…",
"reload": "Torna a carregar",
"remove": "Elimina",
"create": "Crea",
"update": "Actualització",
"copy": "Còpia",
"copyFailed": "No s'ha pogut copiar al porta-retalls",
"maximize": "Maximitzar",
"restore": "Restaurar",
"of": "de",
"saved": "Desat",
"deleted": "Suprimit",
"deleteFailed": "No s'ha pogut suprimir",
"saveFailed": "No s'ha pogut desar",
"required": "Obligatori"
},
"nav": {
"home": "Inici",
"terminal": "Terminal",
"docker": "Docker",
"tunnels": "Túnels",
"fileManager": "Gestor de fitxers",
"serverStats": "Mètriques de l'amfitrió",
"hostMetrics": "Mètriques de l'amfitrió",
"admin": "Administrador",
"termixId": "ID",
"userProfile": "Perfil d'usuari",
"splitScreen": "Pantalla dividida",
"confirmClose": "Voleu tancar aquesta sessió activa?",
"close": "Tanca",
"cancel": "Cancel·la",
"sshManager": "Gestor d'SSH",
"cannotSplitTab": "No es pot dividir aquesta pestanya",
"hostTabTitle": "{{username}}@{{ip}}:{{port}}",
"copyPassword": "Copia la contrasenya",
"copySudoPassword": "Copia la contrasenya de Sudo",
"passwordCopied": "La contrasenya s'ha copiat al porta-retalls",
"noPasswordAvailable": "No hi ha cap contrasenya disponible",
"failedToCopyPassword": "No s'ha pogut copiar la contrasenya",
"refreshTab": "Actualitza la connexió",
"renameTab": "Canvia el nom de la pestanya",
"openFileManager": "Obre el gestor de fitxers",
"dashboard": "Tauler de control",
"networkGraph": "Gràfic de xarxa",
"tmuxMonitor": "Monitor Tmux",
"homepage": "Pàgina d'inici",
"quickConnect": "Connexió ràpida",
"sshTools": "Eines SSH",
"history": "Història",
"sessionLogs": "Registres de sessió",
"hosts": "Amfitrions",
"snippets": "Fragments",
"hostManager": "Gestor d'amfitrions",
"credentials": "Credencials",
"connections": "Connexions",
"alerts": "Alertes",
"serial": "Sèrie",
"roleAdministrator": "Administrador/a",
"roleUser": "Usuari"
},
"hosts": {
"hosts": "Amfitrions",
"noHosts": "Sense amfitrions SSH",
"retry": "Torna-ho a intentar",
"refresh": "Actualitza",
"optional": "Opcional",
"downloadSample": "Descarrega la mostra",
"failedToDeleteHost": "No s'ha pogut suprimir {{name}}",
"importSkipExisting": "Importa (omet els existents)",
"importSSHConfig": "Importa des de la configuració SSH",
"connectionDetails": "Detalls de la connexió",
"ssh": "SSH",
"telnet": "Telnet",
"remoteDesktop": "Escriptori remot",
"port": "Port",
"username": "Nom d'usuari",
"folder": "Carpeta",
"tags": "Etiquetes",
"pin": "Fixar",
"addHost": "Afegeix amfitrió",
"editHost": "Edita l'amfitrió",
"cloneHost": "Host clonat",
"enableTerminal": "Habilita el terminal",
"enableTunnel": "Habilita el túnel",
"enableFileManager": "Habilita el gestor de fitxers",
"enableDocker": "Activa Docker",
"defaultPath": "Camí predeterminat",
"connection": "Connexió",
"upload": "Pujada",
"authentication": "Autenticació",
"password": "Contrasenya",
"key": "Clau",
"credential": "Credencial",
"none": "Cap",
"sshPrivateKey": "Clau privada SSH",
"keyType": "Tipus de clau",
"uploadFile": "Puja el fitxer",
"tabGeneral": "General",
"tabSsh": "SSH",
"tabTerminal": "Terminal",
"tabRdp": "RDP",
"tabVnc": "VNC",
"tabTunnels": "Túnels",
"tabDocker": "Docker",
"tabFiles": "Fitxers",
"tabStats": "Mètriques de l'amfitrió",
"tabHostMetrics": "Mètriques de l'amfitrió",
"tabTelnet": "Telnet",
"tabSharing": "Compartir",
"tabAuthentication": "Autenticació",
"terminal": "Terminal",
"tunnel": "Túnel",
"fileManager": "Gestor de fitxers",
"serverStats": "Mètriques de l'amfitrió",
"status": "Estat",
"folderRenamed": "La carpeta \"{{oldName}}\" s'ha canviat de nom a \"{{newName}}\" correctament",
"failedToRenameFolder": "No s'ha pogut canviar el nom de la carpeta",
"movedToFolder": "S'han mogut {{count}} amfitrions a \"{{folder}}\"",
"editHostTooltip": "Edita l'amfitrió",
"statusChecks": "Comprovacions d'estat",
"metricsCollection": "Col·lecció de mètriques",
"metricsInterval": "Interval de recopilació de mètriques",
"metricsIntervalDesc": "Amb quina freqüència s'han de recopilar estadístiques del servidor (5 segons - 1 hora)",
"behavior": "Comportament",
"themePreview": "Vista prèvia del tema",
"theme": "Tema",
"fontFamily": "Família tipogràfica",
"fontSize": "Mida de la lletra",
"letterSpacing": "Espaiat entre lletres",
"lineHeight": "Alçada de la línia",
"cursorStyle": "Estil del cursor",
"cursorBlink": "Parpelleig del cursor",
"scrollbackBuffer": "Buffer de desplaçament enrere",
"bellStyle": "Estil de campana",
"rightClickSelectsWord": "Clic dret Selecciona Word",
"fastScrollModifier": "Modificador de desplaçament ràpid",
"fastScrollSensitivity": "Sensibilitat de desplaçament ràpid",
"sshAgentForwarding": "Reenviament d'agents SSH",
"backspaceMode": "Mode de retrocés",
"startupSnippet": "Fragment d'inici",
"selectSnippet": "Selecciona un fragment",
"forceKeyboardInteractive": "Forçar la interacció del teclat",
"overrideCredentialUsername": "Substitueix les credencials i el nom d'usuari",
"overrideCredentialUsernameDesc": "Feu servir el nom d'usuari especificat anteriorment en comptes del nom d'usuari de la credencial",
"oidcUsernameHint": "Feu servir $oidc.preferred_username per substituir el vostre nom d'usuari d'inici de sessió OIDC.",
"jumpHostChain": "Cadena d'amfitrió de salt",
"portKnocking": "Cop de port",
"addKnock": "Afegeix un port",
"addProxyNode": "Afegeix un node",
"proxyNode": "Node intermediari",
"proxyType": "Tipus de proxy",
"quickActions": "Accions ràpides",
"sudoPasswordAutoFill": "Emplenament automàtic de contrasenya de Sudo",
"sudoPassword": "Contrasenya de Sudo",
"keepaliveInterval": "Interval de manteniment (ms)",
"moshCommand": "Comandament MOSH",
"environmentVariables": "Variables d'entorn",
"addVariable": "Afegeix una variable",
"docker": "Docker",
"copyTerminalUrl": "Copia l'URL del terminal",
"copyFileManagerUrl": "Copia l'URL del gestor de fitxers",
"copyRemoteDesktopUrl": "Copia l'URL de l'escriptori remot",
"failedToConnect": "No s'ha pogut connectar a la consola",
"connect": "Connecta",
"disconnect": "Desconnecta",
"start": "Inici",
"enableStatusCheck": "Activa la comprovació d'estat",
"enableMetrics": "Activa les mètriques",
"bulkUpdateFailed": "L'actualització massiva ha fallat",
"selectAll": "Selecciona-ho tot",
"deselectAll": "Desselecciona-ho tot",
"protocols": "Protocols",
"secureShell": "Shell segur",
"virtualNetwork": "Xarxa virtual",
"unencryptedShell": "Shell sense xifrar",
"addressIp": "Adreça / IP",
"friendlyName": "Nom amigable",
"macAddress": "Adreça MAC",
"wolBroadcastAddress": "Adreça de difusió de WoL",
"wolBroadcastAddressDesc": "Emissió dirigida opcional per a xarxes Docker/encaminades (per exemple, 192.168.1.255). Deixeu-ho en blanc per utilitzar 255.255.255.255.",
"folderAndAdvanced": "Carpeta i avançat",
"privateNotes": "Notes privades",
"privateNotesPlaceholder": "Detalls sobre aquest servidor...",
"pinToTop": "Fixa a la part superior",
"pinToTopDesc": "Mostra sempre aquest amfitrió a la part superior de la llista",
"portKnockingSequence": "Seqüència de cops de port",
"addKnockBtn": "Afegeix Toc",
"noPortKnocking": "No s'ha configurat cap detonació de port.",
"knockPort": "Port de Knock",
"protocol": "Protocol",
"delayAfterMs": "Retard després (ms)",
"useSocks5Proxy": "Utilitza el servidor intermediari SOCKS5",
"useSocks5ProxyDesc": "Enrutar la connexió a través d'un servidor proxy",
"proxyHost": "Amfitrió intermediari",
"proxyPort": "Port de proxy",
"proxyUsername": "Nom d'usuari del proxy",
"proxyPassword": "Contrasenya del servidor intermediari",
"proxySingleMode": "Proxy únic",
"proxyChainMode": "Cadena de proxy",
"you": "Tu",
"jumpHostChainLabel": "Cadena d'amfitrió de salt",
"addJumpBtn": "Afegeix un salt",
"noJumpHosts": "No hi ha cap amfitrió de salt configurat.",
"selectAServer": "Seleccioneu un servidor...",
"sshPort": "Port SSH",
"authMethod": "Mètode d'autenticació",
"storedCredential": "Credencial emmagatzemada",
"selectACredential": "Selecciona una credencial...",
"vaultProfile": "Perfil del signant de la caixa forta",
"selectAVaultProfile": "Seleccioneu un perfil de Vault...",
"vaultProfileHint": "La configuració prové del perfil compartit; iniciaràs la sessió a Vault mitjançant OIDC quan et connectis. No s'emmagatzemen secrets.",
"vaultNewProfile": "Nou perfil",
"vaultManageProfiles": "Gestiona els perfils de Vault",
"vaultAddrLabel": "Adreça de la caixa forta",
"vaultNamespaceLabel": "Espai de noms",
"vaultOidcMountLabel": "Muntatge d'autenticació OIDC",
"vaultOidcRoleLabel": "Rol de l'OIDC",
"vaultSshMountLabel": "Muntanya de Secrets SSH",
"vaultSshRoleLabel": "Rol de signant SSH",
"vaultValidPrincipalsLabel": "Principals vàlids",
"vaultKeyTypeLabel": "Tipus de clau efímera",
"vaultSharedLabel": "Comparteix amb tots els usuaris",
"vaultCreateProfile": "Crea un perfil",
"vaultProfileCreated": "Perfil de la caixa forta creat",
"vaultProfileSaved": "Perfil de la caixa forta desat",
"vaultProfileDeleted": "Perfil de la caixa forta suprimit",
"vaultProfileSaveFailed": "No s'ha pogut desar el perfil de Vault",
"vaultProfileDeleteFailed": "No s'ha pogut suprimir el perfil de Vault",
"vaultSaveProfile": "Desa el perfil",
"vaultProfileValidationError": "El nom, l'adreça de la caixa forta i el rol de signant SSH són obligatoris.",
"vaultNoProfiles": "Encara no hi ha perfils de Vault.",
"vaultSharedBadge": "compartit",
"keyTypeLabel": "Tipus de clau",
"keyTypeAuto": "Detecció automàtica",
"keyPasteTab": "Enganxa",
"keyUploadTab": "Pujada",
"keyFileLoaded": "S'ha carregat el fitxer clau",
"keyUploadClick": "Feu clic per carregar .pem / .key / .ppk",
"clearKey": "Tecla Esborra",
"keySaved": "Clau SSH desada",
"keyReplaceNotice": "enganxa una nova clau a continuació per substituir-la",
"keyPassphraseSaved": "Contrasenya desada, escriu per canviar-la",
"replaceKey": "Substitueix la clau",
"docsLink": "Veure documents",
"opksshLabel": "OPKSSH",
"opksshDesc": "Inicieu la sessió en aquest amfitrió amb el vostre proveïdor d'identitat en comptes d'una contrasenya o clau. Requereix que OPKSSH estigui configurat al servidor.",
"warpgateLabel": "Porta de Warpgate",
"warpgateDesc": "Aquest amfitrió es connecta a través d'un proxy SSH Warpgate. Termix gestionarà automàticament el flux d'aprovació basat en navegador després de l'autenticació.",
"agentLabel": "Agent SSH",
"agentDesc": "Autentiqueu-vos mitjançant un agent SSH que s'executi al servidor Termix (Bitwarden, 1Password, gpg-agent, KeeAgent, ssh-agent). L'agent ha d'estar executant-se a la màquina on s'allotja Termix.",
"agentSocketPathLabel": "Ruta del sòcol de l'agent",
"agentSocketPathPlaceholder": "Deixeu-ho en blanc per utilitzar SSH_AUTH_SOCK",
"agentSocketPathHint": "Deixeu-ho en blanc per detectar-ho automàticament des de la variable d'entorn SSH_AUTH_SOCK o introduïu una ruta de sòcol personalitzada (per exemple, /run/user/1000/gnupg/S.gpg-agent.ssh).",
"tailscaleDeviceSelect": "Selecciona el dispositiu Tailscale",
"tailscaleDeviceSelectPlaceholder": "Selecciona un dispositiu...",
"tailscaleNoApiKey": "No hi ha cap clau d'API de Tailscale configurada. Afegeix-ne una a la configuració de l'administrador per habilitar la detecció de dispositius.",
"tailscaleDocsLink": "Veure documents",
"tailscaleLoadingDevices": "S'estan carregant els dispositius...",
"tailscaleNoDevices": "No s'han trobat dispositius a la xarxa de cua.",
"tailscaleDeviceAutoFill": "En seleccionar un dispositiu, l'adreça IP de l'amfitrió s'omplirà automàticament.",
"forceKeyboardInteractiveLabel": "Força el teclat interactiu",
"forceKeyboardInteractiveShortDesc": "Força l'entrada manual de la contrasenya fins i tot si hi ha claus presents",
"allowLegacyAlgorithmsLabel": "Permetre algoritmes antics",
"allowLegacyAlgorithmsDesc": "Activa els algoritmes SSH obsolets (ssh-dss, ssh-rsa, diffie-hellman-group1-sha1, hmac-md5, 3des-cbc) per a connexions a dispositius antics que no es poden actualitzar.",
"insecure": "Insegur",
"terminalAppearance": "Aspecte del terminal",
"colorTheme": "Tema de color",
"fontFamilyLabel": "Família tipogràfica",
"fontSizeLabel": "Mida de la lletra",
"cursorStyleLabel": "Estil del cursor",
"letterSpacingPx": "Espaiat entre lletres (px)",
"lineHeightLabel": "Alçada de la línia",
"bellStyleLabel": "Estil de campana",
"backspaceModeLabel": "Mode de retrocés",
"cursorBlinking": "Cursor parpellejant",
"cursorBlinkingDesc": "Habilita l'animació intermitent per al cursor del terminal",
"rightClickSelectsWordLabel": "Feu clic amb el botó dret Selecciona Word",
"rightClickSelectsWordShortDesc": "Seleccioneu la paraula sota el cursor en fer clic amb el botó dret",
"backgroundImageLabel": "URL de la imatge de fons",
"backgroundImageDesc": "URL opcional per a una imatge de fons del terminal",
"backgroundImageOpacityLabel": "Opacitat de la imatge de fons",
"customThemeColors": "Colors personalitzats",
"customThemeBackground": "Fons",
"customThemeForeground": "Primer pla",
"customThemeCursor": "Cursor",
"customThemeCursorAccent": "Accent del cursor",
"customThemeSelection": "Selecció",
"customThemeAnsiColors": "Colors ANSI",
"customThemeBlack": "Negre",
"customThemeRed": "Vermell",
"customThemeGreen": "Verd",
"customThemeYellow": "Groc",
"customThemeBlue": "Blau",
"customThemeMagenta": "Magenta",
"customThemeCyan": "Cian",
"customThemeWhite": "Blanc",
"customThemeBrightBlack": "Negre brillant",
"customThemeBrightRed": "Vermell brillant",
"customThemeBrightGreen": "Verd brillant",
"customThemeBrightYellow": "Groc brillant",
"customThemeBrightBlue": "Blau brillant",
"customThemeBrightMagenta": "Magenta brillant",
"customThemeBrightCyan": "Cian brillant",
"customThemeBrightWhite": "Blanc brillant",
"customThemeResetTooltip": "Restableix els valors predeterminats",
"syntaxHighlightingLabel": "Ressaltat de sintaxi",
"syntaxHighlightingDesc": "Coloritzar la sortida del terminal (errors, camins, IP, marques de temps)",
"syntaxHighlightingCategories": "Categories destacades",
"syntaxHighlightingCategoriesDesc": "Trieu quins tipus de contingut voleu acolorir",
"syntaxCategoryLogLevels": "Nivells de registre",
"syntaxCategoryLogLevelsDesc": "error, avís, informació, depuració, fatal",
"syntaxCategoryPaths": "Rutes de fitxer",
"syntaxCategoryPathsDesc": "/usr/share/doc, ~/fitxer.txt",
"syntaxCategoryTimestamps": "Marques de temps",
"syntaxCategoryTimestampsDesc": "[12:34:56], 15-01-2024",
"syntaxCategoryIpAddresses": "Adreces IP",
"syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080",
"syntaxCategoryUrls": "URL",
"syntaxCategoryUrlsDesc": "https://example.com",
"syntaxCategoryNumbers": "Números etiquetats",
"syntaxCategoryNumbersDesc": "port 8080, sortida 1, estat 404",
"behaviorAndAdvanced": "Comportament i avançat",
"scrollbackBufferLabel": "Buffer de desplaçament enrere",
"scrollbackMaxLines": "Nombre màxim de línies que es conserven a l'historial",
"sshAgentForwardingLabel": "Reenviament d'agents SSH",
"sshAgentForwardingShortDesc": "Passa les teves claus SSH locals a aquest host",
"useSSHTitleLabel": "Utilitza el títol de la finestra SSH",
"useSSHTitleDesc": "Actualitza el títol de la pestanya a partir del títol de la finestra de l'intèrpret d'ordres en comptes del nom de l'amfitrió",
"enableAutoMosh": "Activa l'Auto-Mosh",
"enableAutoMoshDesc": "Prefereix Mosh a SSH si està disponible",
"enableAutoTmux": "Activa la transmissió automàtica",
"enableAutoTmuxDesc": "Inicia o connecta automàticament a la sessió de tmux",
"enableSessionLogging": "Registre de sessions",
"enableSessionLoggingDesc": "Enregistra la sortida de la sessió de terminal per a una revisió posterior",
"enableCommandHistory": "Historial de comandaments",
"enableCommandHistoryDesc": "Enregistra les ordres executades en aquest terminal per a l'historial i l'autocompleció",
"linkClickBehaviorLabel": "Comportament dels clics d'enllaç",
"linkClickBehaviorDesc": "Controla què passa quan feu clic a un enllaç al terminal. Feu servir \"Per defecte\" per seguir la configuració a nivell d'aplicació.",
"linkClickBehaviorDefault": "Per defecte (segueu la configuració de l'aplicació)",
"linkClickBehaviorConfirm": "Mostra la finestra emergent per obrir o copiar",
"linkClickBehaviorDirect": "Obre directament",
"sudoPasswordAutoFillLabel": "Autoemplenament de contrasenya de Sudo",
"sudoPasswordAutoFillShortDesc": "Proporciona automàticament la contrasenya sudo quan se li demani",
"sudoPasswordAutoFillDesc": "Emmagatzema una contrasenya sudo perquè les mètriques de l'amfitrió, les indicacions del terminal i altres puguin executar ordres privilegiades automàticament.",
"sudoPasswordLabel": "Contrasenya de Sudo",
"environmentVariablesLabel": "Variables d'entorn",
"addVariableBtn": "Afegeix una variable",
"noEnvVars": "No hi ha cap variable d'entorn configurada.",
"fastScrollModifierLabel": "Modificador de desplaçament ràpid",
"fastScrollSensitivityLabel": "Sensibilitat de desplaçament ràpid",
"moshCommandLabel": "Comandament Mosh",
"startupSnippetLabel": "Fragment d'inici",
"keepaliveIntervalLabel": "Interval de manteniment (segons)",
"maxKeepaliveMisses": "Màxims errors de manteniment en directe",
"tunnelSettings": "Configuració del túnel",
"enableTunneling": "Activa la tunelització",
"enableTunnelingDesc": "Habilita la funcionalitat del túnel SSH per a aquest amfitrió",
"serverTunnelsSection": "Túnels de servidor",
"addTunnelBtn": "Afegeix un túnel",
"noTunnelsConfigured": "No hi ha túnels configurats.",
"tunnelLabel": "Túnel {{number}}",
"tunnelType": "Tipus de túnel",
"tunnelModeLocalDesc": "Reenvia un port local a un port del servidor remot (o a un host accessible des d'aquest).",
"tunnelModeRemoteDesc": "Reenvia un port del servidor remot a un port local de la teva màquina.",
"tunnelModeDynamicDesc": "Crea un proxy SOCKS5 en un port local per al reenviament dinàmic de ports.",
"sameHost": "Aquest host (túnel directe)",
"endpointHost": "Amfitrió de punt final",
"endpointHostPlaceholder": "Mateix host, host SSH o host/IP accessible",
"endpointPort": "Port de punt final",
"bindHost": "Vincula l'amfitrió",
"sourcePort": "Port d'origen",
"maxRetries": "Màxim d'intents",
"retryIntervalS": "Interval de reintent (s)",
"autoStartLabel": "Inici automàtic",
"autoStartDesc": "Connecta automàticament aquest túnel quan es carregui l'amfitrió",
"tunnelConnecting": "Túnel que connecta...",
"tunnelDisconnected": "Túnel desconnectat",
"failedToConnectTunnel": "No s'ha pogut connectar",
"failedToDisconnectTunnel": "No s'ha pogut desconnectar",
"dockerIntegration": "Integració de Docker",
"enableDockerMonitor": "Activa Docker",
"enableDockerMonitorDesc": "Supervisar i gestionar els contenidors d'aquest amfitrió mitjançant Docker",
"containerRuntime": "Temps d'execució del contenidor",
"containerRuntimeDesc": "Trieu la CLI utilitzada per a la gestió de contenidors en aquest amfitrió",
"containerRuntimeDocker": "Docker",
"containerRuntimePodman": "Podman",
"enableTmuxMonitor": "Activa el monitor Tmux",
"enableTmuxMonitorDesc": "Mostra aquest host al monitor Tmux i afegeix les seves accions tmux a la barra lateral",
"tabProxmox": "Proxmox",
"proxmoxIntegration": "Integració de Proxmox",
"enableProxmox": "Activa Proxmox",
"enableProxmoxDesc": "Marca aquest amfitrió com a node de Proxmox. Activa la detecció de convidats i la importació directament des d'aquest amfitrió.",
"proxmoxDefaultAuthType": "Tipus d'autorització per defecte",
"proxmoxDefaultAuthTypeDesc": "Mètode d'autenticació aplicat als amfitrions convidats importats. Trieu el tipus d'autenticació que coincideixi amb la manera com us connecteu als vostres convidats.",
"authTypePassword": "Contrasenya",
"authTypeKey": "Clau SSH",
"authTypeCredential": "Credencial",
"authTypeOpkssh": "OPKSSH",
"authTypeNone": "Cap",
"proxmoxDefaultCredential": "Credencial predeterminada",
"proxmoxDefaultCredentialDesc": "Credencial utilitzada per als amfitrions convidats importats quan el tipus d'autenticació està definit com a Credencial.",
"proxmoxWindowsDetection": "Detecció de Windows / RDP",
"proxmoxWindowsDetectionDesc": "Patrons de noms separats per comes que activen RDP en lloc de SSH (sense distinció entre majúscules i minúscules)",
"proxmoxDockerDetection": "Detecció de Docker",
"proxmoxDockerDetectionDesc": "Patrons de noms separats per comes que permeten a Docker utilitzar convidats coincidents",
"proxmoxPreferredRanges": "Intervals d'IP preferits",
"proxmoxPreferredRangesDesc": "Prefixos separats per comes en ordre de prioritat per a la selecció d'IP quan un convidat té diverses interfícies",
"proxmoxAutoSync": "Sincronitza automàticament els convidats",
"proxmoxAutoSyncDesc": "Descobreix periòdicament aquest node de Proxmox i crea o actualitza els hosts convidats importats mentre la sessió està desbloquejada.",
"proxmoxSyncInterval": "Interval de sincronització (minuts)",
"proxmoxSyncIntervalDesc": "Mínim 5 minuts. El planificador omet les sessions d'usuari bloquejades.",
"proxmoxMarkMissing": "Marca els convidats que falten",
"proxmoxMarkMissingDesc": "Afegeix una etiqueta proxmox-missing quan un convidat importat prèviament desapareix en comptes d'eliminar-lo.",
"proxmoxLastSync": "Darrera sincronització",
"proxmoxLastSyncNever": "Encara no sincronitzat",
"proxmoxLastSyncNoResult": "Sense detalls del resultat",
"proxmoxLastSyncSummary": "{{created}} creat, {{updated}} actualitzat, {{markedMissing}} no hi és, {{skipped}} omès",
"proxmoxLastSyncStatus": {
"success": "Èxit",
"error": "Fallat",
"pending": "Pendent"
},
"proxmoxDiscoverAction": "Descobreix i importa convidats de Proxmox",
"proxmoxImportTitle": "Importar des de Proxmox",
"proxmoxSelectHost": "Seleccioneu un amfitrió de Proxmox…",
"proxmoxDiscover": "Descobreix",
"proxmoxDiscovering": "Descobrint…",
"proxmoxDiscoverGuests": "Descobreix convidats",
"proxmoxGuestsSelected_one": "{{count}} convidat — {{selected}} seleccionat",
"proxmoxGuestsSelected_other": "{{count}} convidats — {{selected}} seleccionats",
"proxmoxSelectAll": "Selecciona-ho tot",
"proxmoxDeselectAll": "Desselecciona-ho tot",
"proxmoxNoGuests": "No s'han trobat convidats en aquest node de Proxmox.",
"proxmoxImportButton_one": "Importa l'amfitrió {{count}}",
"proxmoxImportButton_other": "Importa els amfitrions {{count}}",
"proxmoxResultImported": "{{count}} importat",
"proxmoxResultUpdated": "{{count}} actualitzat",
"proxmoxResultFailed": "{{count}} ha fallat",
"proxmoxImportComplete": "Importació de Proxmox completada: {{summary}}",
"proxmoxDiscoveryFailed": "El descobriment ha fallat",
"proxmoxImportFailed": "La importació ha fallat",
"enableFileManagerMonitor": "Habilita el gestor de fitxers",
"enableFileManagerMonitorDesc": "Navega i gestiona fitxers en aquest amfitrió mitjançant SFTP",
"scpLegacyLabel": "Mode Llegat de SCP",
"scpLegacyDesc": "Feu servir la transferència de fitxers antiga per a servidors que no admeten el subsistema SFTP (per exemple, servidors SSH integrats o mínims).",
"defaultPathLabel": "Camí predeterminat",
"fileManagerPathHint": "El directori que s'obrirà quan s'iniciï el gestor de fitxers per a aquest amfitrió.",
"statusChecksLabel": "Comprovacions d'estat",
"enableStatusChecks": "Activa les comprovacions d'estat",
"enableStatusChecksDesc": "Fes ping periòdicament a aquest host per verificar la disponibilitat",
"useGlobalInterval": "Utilitza l'interval global",
"useGlobalIntervalDesc": "Substitueix amb l'interval de comprovació d'estat de tot el servidor",
"checkIntervalS": "Interval (s) de comprovació",
"checkIntervalDesc": "Segons entre cada ping de connectivitat",
"metricsCollectionLabel": "Col·lecció de mètriques",
"enableMetricsLabel": "Activa les mètriques",
"enableMetricsDesc": "Recopila mètriques de CPU, RAM, disc i altres d'aquest amfitrió",
"useGlobalMetrics": "Utilitza l'interval global",
"useGlobalMetricsDesc": "Substitueix amb l'interval de mètriques de tot el servidor",
"metricsIntervalS": "Interval de mètriques (s)",
"metricsIntervalDesc2": "Segons entre instantànies de mètriques",
"visibleWidgets": "Widgets visibles",
"widgetsMovedToHostMetrics": "Ara les targetes s'afegeixen, s'organitzen i es canvien de mida directament a la pestanya Mètriques de l'amfitrió. Obriu Mètriques de l'amfitrió per a aquest amfitrió i utilitzeu Personalitza per triar quines targetes es mostren.",
"cpuUsageLabel": "Ús de la CPU",
"cpuUsageDesc": "Percentatge de CPU, mitjanes de càrrega, gràfic miniàlgic",
"memoryLabel": "Ús de memòria",
"memoryDesc": "Ús de RAM, swap, memòria cau",
"storageLabel": "Ús del disc",
"storageDesc": "Ús del disc per punt de muntatge",
"networkLabel": "Interfícies de xarxa",
"networkDesc": "Llista d'interfícies i amplada de banda",
"uptimeLabel": "Temps de funcionament",
"uptimeDesc": "Temps de funcionament i temps d'arrencada del sistema",
"systemInfoLabel": "Informació del sistema",
"systemInfoDesc": "Sistema operatiu, nucli, nom d'amfitrió, arquitectura",
"recentLoginsLabel": "Inicis de sessió recents",
"recentLoginsDesc": "Esdeveniments d'inici de sessió correcte i fallit",
"topProcessesLabel": "Processos principals",
"topProcessesDesc": "PID, CPU%, MEM%, comanda",
"listeningPortsLabel": "Ports d'escolta",
"listeningPortsDesc": "Ports oberts amb procés i estat",
"firewallLabel": "Tallafocs",
"firewallDesc": "Estat del tallafocs, AppArmor i SELinux",
"quickActionsLabel": "Accions ràpides",
"quickActionsToolbar": "Les accions ràpides apareixen com a botons a la barra d'eines de mètriques de l'amfitrió per executar ordres amb un sol clic.",
"noQuickActions": "Encara no hi ha accions ràpides.",
"buttonLabel": "Etiqueta del botó",
"selectSnippetPlaceholder": "Selecciona un fragment...",
"addActionBtn": "Afegeix una acció",
"hostSharedSuccessfully": "L'amfitrió s'ha compartit correctament",
"failedToShareHost": "No s'ha pogut compartir l'amfitrió",
"accessRevoked": "Accés revocat",
"failedToRevokeAccess": "No s'ha pogut revocar l'accés",
"cancelBtn": "Cancel·la",
"savingBtn": "Desant...",
"addHostBtn": "Afegeix amfitrió",
"hostUpdated": "L'amfitrió s'ha actualitzat",
"hostCreated": "Amfitrió creat",
"failedToSave": "No s'ha pogut desar l'amfitrió",
"credentialUpdated": "Credencial actualitzada",
"credentialCreated": "Credencial creada",
"failedToSaveCredential": "No s'ha pogut desar la credencial",
"credentialNameRequired": "Si us plau, introduïu un nom per a la credencial",
"credentialAuthRequired": "Afegiu una contrasenya, una clau SSH o totes dues",
"backToHosts": "Torna a Amfitrions",
"backToCredentials": "Torna a les credencials",
"pinned": "Fixat",
"noHostsFound": "No s'han trobat amfitrions",
"tryDifferentTerm": "Prova un terme diferent",
"addFirstHost": "Afegeix el teu primer amfitrió per començar",
"noCredentialsFound": "No s'han trobat credencials",
"addCredentialBtn": "Afegeix credencials",
"updateCredentialBtn": "Actualitza les credencials",
"features": "Característiques",
"noFolder": "(Sense carpeta)",
"deleteSelected": "Suprimeix",
"exitSelection": "Sortir de la selecció",
"importSkip": "Importa (omet els existents)",
"importOverwrite": "Importa (sobreescriu)",
"collapseBtn": "Replegar",
"importExportBtn": "Importació / Exportació",
"hostStatusesRefreshed": "Estats de l'amfitrió actualitzats",
"failedToRefreshHosts": "No s'han pogut actualitzar els amfitrions",
"movedHostTo": "S'ha mogut {{host}} a \"{{folder}}\"",
"failedToMoveHost": "No s'ha pogut moure l'amfitrió",
"folderRenamedTo": "La carpeta s'ha rebatejat com a \"{{name}}\"",
"deletedFolder": "Carpeta suprimida \"{{name}}\"",
"failedToDeleteFolder": "No s'ha pogut suprimir la carpeta",
"deleteAllInFolder": "Voleu suprimir tots els hosts de \"{{name}}\"? Això no es pot desfer.",
"folderPickerPlaceholder": "Sense carpeta",
"folderPickerSearch": "Cerca o crea (utilitza / per a subcarpetes)...",
"folderPickerNone": "Sense carpeta",
"folderPickerCreate": "Crea \"{{path}}\"",
"folderPickerEmpty": "No hi ha carpetes coincidents",
"newFolder": "Nova carpeta",
"createFolderTitle": "Crea una carpeta",
"editFolderTitle": "Edita la carpeta",
"folderDialogDescription": "Trieu un nom, un color i una icona. Feu servir / per imbricar carpetes.",
"folderNameLabel": "Nom de la carpeta",
"folderNamePlaceholder": "p. ex. Producció/Web",
"folderNestingHint": "Feu servir / per separar nivells i crear carpetes imbricades.",
"folderColor": "Color",
"folderIcon": "Icona",
"folderPreview": "Vista prèvia",
"folderNameFallback": "Carpeta sense títol",
"createFolderButton": "Crea una carpeta",
"saveFolderButton": "Desa la carpeta",
"cancel": "Cancel·la",
"iconSearchPlaceholder": "Icones de cerca...",
"openAllSessions": "Obre totes les sessions",
"editFolder": "Edita la carpeta",
"deleteFolder": "Suprimeix la carpeta",
"folderSaved": "Carpeta desada",
"failedToSaveFolder": "No s'ha pogut desar la carpeta",
"folderDeleted": "Carpeta suprimida \"{{name}}\"",
"deleteFolderConfirm": "Voleu suprimir \"{{name}}\" i els seus hosts {{count}} ? Això no es pot desfer.",
"failedToMoveHosts": "No s'han pogut moure els amfitrions",
"expandAll": "Expandir totes les carpetes",
"collapseAll": "Replega totes les carpetes",
"moreActions": "Més",
"groupBy": "Agrupa per",
"GroupByFolder": "Carpeta",
"GroupByTag": "Etiqueta",
"GroupByStatus": "Estat",
"GroupByProtocol": "Protocol",
"GroupByAuth": "Tipus d'autorització",
"groupUngrouped": "Desagrupat",
"deletedHost": "Suprimit {{name}}",
"copiedToClipboard": "Copiat al porta-retalls",
"terminalUrlCopied": "S'ha copiat l'URL del terminal",
"fileManagerUrlCopied": "S'ha copiat l'URL del gestor de fitxers",
"tunnelUrlCopied": "S'ha copiat l'URL del túnel",
"dockerUrlCopied": "S'ha copiat l'URL de Docker",
"hostMetricsUrlCopied": "URL de mètriques de l'amfitrió copiada",
"tmuxMonitorUrlCopied": "S'ha copiat l'URL del monitor Tmux",
"rdpUrlCopied": "URL RDP copiada",
"vncUrlCopied": "URL de VNC copiada",
"telnetUrlCopied": "S'ha copiat l'URL de Telnet",
"remoteDesktopUrlCopied": "S'ha copiat l'URL de l'escriptori remot",
"expandActions": "Expandeix accions",
"collapseActions": "Accions de plegament",
"wakeOnLanAction": "Despertar-se en LAN",
"wakeOnLanSuccess": "Paquet màgic enviat a {{name}}",
"wakeOnLanError": "No s'ha pogut enviar el paquet màgic",
"cloneHostAction": "Host clonat",
"copyAddress": "Copiar adreça",
"copyLink": "Copia l'enllaç",
"copyTerminalUrlAction": "Copia l'URL del terminal",
"copyFileManagerUrlAction": "Copia l'URL del gestor de fitxers",
"copyTunnelUrlAction": "Copia l'URL del túnel",
"copyDockerUrlAction": "Copia l'URL de Docker",
"copyHostMetricsUrlAction": "Copia l'URL de les mètriques de l'amfitrió",
"copyTmuxMonitorUrlAction": "Copia l'URL del monitor Tmux",
"copyRdpUrlAction": "Copia l'URL de l'RDP",
"copyVncUrlAction": "Copia l'URL de VNC",
"copyTelnetUrlAction": "Copia l'URL de Telnet",
"copyRemoteDesktopUrlAction": "Copia l'URL de l'escriptori remot",
"deleteCredentialConfirm": "Voleu suprimir la credencial \"{{name}}\"?",
"deletedCredential": "Suprimit {{name}}",
"deploySSHKeyTitle": "Implementa la clau SSH",
"deployingBtn": "S'està desplegant...",
"deployBtn": "Implementa",
"failedToDeployKey": "No s'ha pogut implementar la clau",
"deleteHostsConfirm": "Voleu suprimir l'amfitrió {{count}}{{plural}}? Això no es pot desfer.",
"movedToRoot": "Mogut a l'arrel",
"enableTerminalFeature": "Habilita el terminal",
"disableTerminalFeature": "Desactiva el terminal",
"enableFilesFeature": "Habilita els fitxers",
"disableFilesFeature": "Desactiva els fitxers",
"enableTunnelsFeature": "Habilita els túnels",
"disableTunnelsFeature": "Desactiva els túnels",
"enableDockerFeature": "Activa Docker",
"disableDockerFeature": "Desactiva Docker",
"enableProxmoxFeature": "Activa Proxmox",
"disableProxmoxFeature": "Desactiva Proxmox",
"addTagsPlaceholder": "Afegeix etiquetes...",
"authDetails": "Detalls d'autenticació",
"credType": "Tipus",
"generateKeyPairDesc": "Genereu un nou parell de claus, tant les claus privades com les públiques s'ompliran automàticament.",
"generatingKey": "Generant...",
"generateLabel": "Genera {{label}}",
"uploadFileBtn": "Puja el fitxer",
"keyPassphraseOptional": "Contrasenya de clau (opcional)",
"sshPublicKeyOptional": "Clau pública SSH (opcional)",
"publicKeyGenerated": "Clau pública generada",
"failedToGeneratePublicKey": "No s'ha pogut obtenir la clau pública",
"publicKeyCopied": "Clau pública copiada",
"keyPairGenerated": "Parell de claus generat {{label}}",
"failedToGenerateKeyPair": "No s'ha pogut generar el parell de claus",
"searchHostsPlaceholder": "Cerca amfitrions, adreces, etiquetes…",
"searchCredentialsPlaceholder": "Cerca credencials…",
"refreshBtn": "Actualitza",
"addTag": "Afegeix etiquetes...",
"deleteConfirmBtn": "Suprimeix",
"tunnelRequirementsText": "El servidor SSH ha de tenir definits GatewayPorts sí, AllowTcpForwarding sí i PermitRootLogin sí a /etc/ssh/sshd_config.",
"deleteHostConfirm": "Voleu suprimir \"{{name}}\"?",
"enableAtLeastOneProtocol": "Activeu com a mínim un dels protocols anteriors per configurar l'autenticació i la connexió.",
"keyPassphrase": "Contrasenya de clau",
"connectBtn": "Connecta",
"disconnectBtn": "Desconnecta",
"basicInformation": "Informació bàsica",
"authDetailsSection": "Detalls d'autenticació",
"credTypeLabel": "Tipus",
"hostsTab": "Amfitrions",
"credentialsTab": "Credencials",
"selectMultiple": "Selecciona diversos",
"selectHosts": "Selecciona els amfitrions",
"connectionLabel": "Connexió",
"authenticationLabel": "Autenticació",
"generateKeyPairTitle": "Genera un parell de claus",
"generateKeyPairDescription": "Genereu un nou parell de claus, tant les claus privades com les públiques s'ompliran automàticament.",
"generateFromPrivateKey": "Generar a partir de la clau privada",
"refreshBtn2": "Actualitza",
"exitSelectionTitle": "Sortir de la selecció",
"exportAll": "Exporta-ho tot",
"exportForSharing": "Exporta per compartir",
"addHostBtn2": "Afegeix amfitrió",
"addCredentialBtn2": "Afegeix credencials",
"checkingHostStatuses": "S'estan comprovant els estats de l'amfitrió...",
"pinnedSection": "Fixat",
"hostsExported": "Els amfitrions s'han exportat correctament",
"hostsShareExported": "Els amfitrions compartibles s'han exportat correctament",
"exportFailed": "No s'han pogut exportar els amfitrions",
"sampleDownloaded": "Fitxer de mostra descarregat",
"failedToDeleteCredential2": "No s'ha pogut suprimir la credencial",
"noFolderOption": "(Sense carpeta)",
"nSelected": "{{count}} seleccionat",
"featuresMenu": "Característiques",
"moveMenu": "Moure",
"connectSelected": "Connecta",
"cancelSelection": "Cancel·la",
"deployDialogDesc": "Implementa {{name}} a les claus_autoritzades d'un host.",
"targetHostLabel": "Amfitrió de destinació",
"selectHostOption": "Seleccioneu un amfitrió...",
"keyDeployedSuccess": "La clau s'ha desplegat correctament",
"failedToDeployKey2": "No s'ha pogut implementar la clau",
"deletedCount": "S'han suprimit els amfitrions {{count}}",
"failedToDeleteCount": "No s'han pogut suprimir els amfitrions {{count}}",
"duplicatedHost": "Duplicat \"{{name}}\"",
"failedToDuplicateHost": "No s'ha pogut duplicar l'amfitrió",
"updatedCount": "Amfitrions {{count}} actualitzats",
"friendlyNameLabel": "Nom amigable",
"descriptionLabel": "Descripció",
"loadingHost": "S'està carregant l'amfitrió...",
"loadingHosts": "S'estan carregant els amfitrions...",
"loadingCredentials": "S'estan carregant les credencials...",
"noHostsYet": "Encara no hi ha amfitrions",
"noHostsMatchSearch": "No hi ha amfitrions que coincideixin amb la teva cerca",
"hostNotFound": "No s'ha trobat l'amfitrió",
"searchHosts": "Cerca amfitrions...",
"sortHosts": "Ordena els hosts",
"sortDefault": "Ordre per defecte",
"sortNameAsc": "Nom (A → Z)",
"sortNameDesc": "Nom (Z → A)",
"sortIpAsc": "Adreça IP (Asc)",
"sortIpDesc": "Adreça IP (Desc.)",
"sortOnlineFirst": "En línia primer",
"sortOfflineFirst": "Fora de línia primer",
"sortPinnedFirst": "Fixat primer",
"filterHosts": "Filtra els amfitrions",
"filterClearAll": "Esborra els filtres",
"filterStatusGroup": "Estat",
"filterOnline": "En línia",
"filterOffline": "Fora de línia",
"filterPinned": "Fixat",
"filterAuthGroup": "Tipus d'autorització",
"filterAuthPassword": "Contrasenya",
"filterAuthKey": "Clau SSH",
"filterAuthCredential": "Credencial",
"filterAuthNone": "Cap",
"filterAuthOpkssh": "OPKSSH",
"filterProtocolGroup": "Protocol",
"filterProtocolSsh": "SSH",
"filterProtocolRdp": "RDP",
"filterProtocolVnc": "VNC",
"filterProtocolTelnet": "Telnet",
"filterFeaturesGroup": "Característiques",
"filterFeatureTerminal": "Terminal",
"filterFeatureFileManager": "Gestor de fitxers",
"filterFeatureTunnel": "Túnel",
"filterFeatureDocker": "Docker",
"filterTagsGroup": "Etiquetes",
"shareHost": "Comparteix l'amfitrió",
"shareHostTitle": "Comparteix: {{name}}",
"sharing": {
"loadError": "No s'han pogut carregar les dades de compartició. Torna-ho a provar.",
"shareWithSection": "Comparteix amb",
"usersTab": "Usuaris",
"rolesTab": "Rols",
"searchPlaceholder": "Cerca usuaris o rols...",
"noMatches": "No s'han trobat coincidències",
"permissionLevelLabel": "Nivell de permís",
"levels": {
"connect": {
"label": "Connecta",
"description": "Només sessions obertes: terminal, escriptori remot, gestor de fitxers, túnels i Docker. No hi ha accés a la configuració de l'amfitrió."
},
"view": {
"label": "Vista",
"description": "Connecta't i consulta la configuració de l'amfitrió. Els secrets no es mostren mai."
},
"edit": {
"label": "Edita",
"description": "Visualitza i modifica l'amfitrió. Els secrets es poden substituir però mai es poden llegir; les assignacions de credencials només són del propietari."
},
"manage": {
"label": "Gestiona",
"description": "Edita i comparteix l'amfitrió amb altres persones, canvia els nivells de permisos i revoca l'accés."
}
},
"expiryLabel": "Caducitat de l'accés",
"expiry": {
"never": "Mai",
"oneHour": "1 hora",
"oneDay": "24 hores",
"sevenDays": "7 dies",
"thirtyDays": "30 dies",
"custom": "Personalitzat"
},
"customHoursPlaceholder": "Hores fins que caduca l'accés",
"shareButton": "Comparteix",
"shareWithCount": "Comparteix ({{count}})",
"currentAccess": "Accés actual",
"noAccessEntries": "Aquest amfitrió encara no s'ha compartit",
"grantedBy": "Atorgat per",
"expires": "Caduca",
"expired": "Caducat",
"never": "Mai",
"revoke": "Revocar",
"accessUpdated": "Accés actualitzat",
"accessUpdateFailed": "No s'ha pogut actualitzar l'accés",
"sharedBadge": "Compartit",
"sharedBadgeTooltip": "Compartit per {{owner}} ( accés{{level}})",
"viewOnlyBanner": "Aquest amfitrió està compartit amb tu per {{owner}} amb accés de visualització. La configuració és de només lectura.",
"sharedEditBanner": "Aquest amfitrió està compartit amb tu per {{owner}} amb accés d'edició. Els canvis s'apliquen a l'amfitrió real; les referències d'autenticació només les pot canviar el propietari.",
"ownerOnlyControl": "Només el propietari de l'amfitrió pot canviar això"
},
"guac": {
"connection": "Connexió",
"authentication": "Autenticació",
"storedCredential": "Credencial emmagatzemada",
"noCredential": "Sense credencials (credencials directes a continuació)",
"authMethod": "Mètode d'autenticació",
"authTypeDirect": "Directe",
"authTypeCredential": "Credencial",
"selectCredential": "Selecciona una credencial...",
"connectionSettings": "Configuració de connexió",
"displaySettings": "Configuració de la pantalla",
"audioSettings": "Configuració d'àudio",
"rdpPerformance": "Rendiment de l'RDP",
"deviceRedirection": "Redirecció de dispositius",
"session": "Sessió",
"gateway": "Porta d'entrada",
"remoteApp": "Aplicació remota",
"clipboard": "Porta-retalls",
"sessionRecording": "Gravació de sessions",
"wakeOnLan": "Wake-on-LAN",
"vncSettings": "Configuració de VNC",
"terminalSettings": "Configuració del terminal",
"rdpPort": "Port RDP",
"username": "Nom d'usuari",
"password": "Contrasenya",
"domain": "Domini",
"securityMode": "Mode de seguretat",
"colorDepth": "Profunditat de color",
"width": "Amplada",
"height": "Alçada",
"dpi": "DPI",
"resizeMethod": "Mètode de redimensionament",
"clientName": "Nom del client",
"initialProgram": "Programa inicial",
"serverLayout": "Disseny del servidor",
"timezone": "Zona horària",
"loadBalanceInfo": "Informació de balanç de càrrega / Galeta",
"loadBalanceInfoDesc": "Galeta del broker de connexió RD per a l'equilibri de càrrega de granges RDS (per exemple, tsv://MS Terminal Services Plugin.1.CollectionName)",
"guacdProxy": "Proxy guacd",
"guacdHostname": "Host guacd",
"guacdHostnamePlaceholder": "Predeterminat global",
"guacdPort": "Port de Guacd",
"guacdProxyDesc": "Substitueix la instància global de guacd per a aquesta connexió. Deixa-ho en blanc per utilitzar el guacd configurat globalment.",
"gatewayHostname": "Nom de l'amfitrió de la passarel·la",
"gatewayPort": "Port de passarel·la",
"gatewayUsername": "Nom d'usuari de la passarel·la",
"gatewayPassword": "Contrasenya de la passarel·la",
"gatewayDomain": "Domini de passarel·la",
"remoteAppProgram": "Programa RemoteApp",
"workingDirectory": "Directori de treball",
"arguments": "Arguments",
"normalizeLineEndings": "Normalitzar els finals de línia",
"recordingPath": "Ruta d'enregistrament",
"recordingName": "Nom de l'enregistrament",
"macAddress": "Adreça MAC",
"broadcastAddress": "Adreça de difusió",
"udpPort": "Port UDP",
"waitTimeS": "Temps d'espera (s)",
"driveName": "Nom de la unitat",
"drivePath": "Camí de conducció",
"ignoreCertificate": "Ignora el certificat",
"ignoreCertificateDesc": "Permet connexions a amfitrions amb certificats autosignats",
"forceLossless": "Força sense pèrdues",
"forceLosslessDesc": "Força la codificació d'imatges sense pèrdues (més qualitat, més amplada de banda)",
"disableAudio": "Desactiva l'àudio",
"disableAudioDesc": "Silencia tot l'àudio de la sessió remota",
"enableAudioInput": "Activa l'entrada d'àudio (micròfon)",
"enableAudioInputDesc": "Reenvia el micròfon local a la sessió remota",
"wallpaper": "Fons de pantalla",
"wallpaperDesc": "Mostra el fons de pantalla de l'escriptori (desactivar-lo millora el rendiment)",
"theming": "Tematització",
"themingDesc": "Habilita els temes i estils visuals",
"fontSmoothing": "Suavitzat de fonts",
"fontSmoothingDesc": "Activa la renderització de fonts ClearType",
"fullWindowDrag": "Arrossegar per tota la finestra",
"fullWindowDragDesc": "Mostra el contingut de la finestra mentre arrossegues",
"desktopComposition": "Composició d'escriptori",
"desktopCompositionDesc": "Activa els efectes Aero Glass",
"menuAnimations": "Animacions de menú",
"menuAnimationsDesc": "Activa les animacions de diapositives i esvaïment del menú",
"disableBitmapCaching": "Desactiva la memòria cau de mapes de bits",
"disableBitmapCachingDesc": "Desactiva la memòria cau de mapes de bits (pot ajudar amb errors)",
"disableOffscreenCaching": "Desactiva la memòria cau fora de pantalla",
"disableOffscreenCachingDesc": "Desactiva la memòria cau fora de pantalla",
"disableGlyphCaching": "Desactiva la memòria cau de glifs",
"disableGlyphCachingDesc": "Desactiva la memòria cau de glifos",
"enableGfx": "Activa els efectes especials",
"enableGfxDesc": "Utilitza el canal de gràfics RemoteFX",
"enablePrinting": "Habilita la impressió",
"enablePrintingDesc": "Redirigir les impressores locals a la sessió remota",
"enableDriveRedirection": "Activa la redirecció de la unitat",
"enableDriveRedirectionDesc": "Assignar una carpeta local com a unitat a la sessió remota",
"createDrivePath": "Crea una ruta de conducció",
"createDrivePathDesc": "Crea automàticament la carpeta si no existeix",
"disableDownload": "Desactiva la descàrrega",
"disableDownloadDesc": "Impedir la descàrrega de fitxers des de la sessió remota",
"disableUpload": "Desactiva la càrrega",
"disableUploadDesc": "Impedir la càrrega de fitxers a la sessió remota",
"enableTouch": "Activa el tacte",
"enableTouchDesc": "Activa el reenviament d'entrada tàctil",
"consoleSession": "Sessió de consola",
"consoleSessionDesc": "Connecta't a la consola (sessió 0) en comptes d'una nova sessió",
"sendWolPacket": "Enviar paquet WOL",
"sendWolPacketDesc": "Envia un paquet màgic per despertar aquest host abans de connectar-se",
"disableCopy": "Desactiva la còpia",
"disableCopyDesc": "Impedir la còpia de text des de la sessió remota",
"disablePaste": "Desactiva l'enganxament",
"disablePasteDesc": "Impedir enganxar text a la sessió remota",
"createPathIfMissing": "Crea un camí si falta",
"createPathIfMissingDesc": "Crea automàticament el directori d'enregistrament",
"excludeOutput": "Exclou la sortida",
"excludeOutputDesc": "No enregistrar la sortida de pantalla (només metadades)",
"excludeMouse": "Exclou el ratolí",
"excludeMouseDesc": "No enregistreu els moviments del ratolí",
"includeKeystrokes": "Inclou les pulsacions de tecles",
"includeKeystrokesDesc": "Enregistra les pulsacions de tecles en brut a més de la sortida de la pantalla",
"vncPort": "Port VNC",
"vncPassword": "Contrasenya de VNC",
"vncUsernameOptional": "Nom d'usuari (opcional)",
"vncLeaveBlank": "Deixeu-ho en blanc si no és necessari",
"cursorMode": "Mode del cursor",
"swapRedBlue": "Intercanvia vermell/blau",
"swapRedBlueDesc": "Intercanvia els canals de color vermell i blau (corregeix alguns problemes de color)",
"readOnly": "Només lectura",
"readOnlyDesc": "Visualitza la pantalla remota sense enviar cap entrada",
"telnetPort": "Port Telnet",
"terminalType": "Tipus de terminal",
"fontName": "Nom de la font",
"fontSize": "Mida de la lletra",
"colorScheme": "Esquema de colors",
"backspaceKey": "Tecla Retrocés",
"saveHostFirst": "Primer desa l'amfitrió.",
"sharingOptionsAfterSave": "Les opcions de compartició estan disponibles després que s'hagi desat l'amfitrió.",
"permissionLevel": "Nivell de permís",
"typeHeader": "Tipus",
"targetHeader": "Objectiu",
"permissionHeader": "Permís",
"cancelBtn": "Cancel·la",
"savingBtn": "Desant...",
"updateHostBtn": "Actualitza l'amfitrió",
"addHostBtn": "Afegeix amfitrió"
}
},
"commandPalette": {
"searchPlaceholder": "Cerca hosts, ordres o configuracions...",
"quickActions": "Accions ràpides",
"hostManager": "Gestor d'amfitrions",
"hostManagerDesc": "Gestionar, afegir o editar amfitrions",
"addNewHost": "Afegeix un nou amfitrió",
"addNewHostDesc": "Registra un nou amfitrió",
"adminSettings": "Configuració de l'administrador",
"adminSettingsDesc": "Configura les preferències del sistema i els usuaris",
"userProfile": "Perfil d'usuari",
"userProfileDesc": "Gestiona el teu compte i les teves preferències",
"addCredential": "Afegeix credencials",
"addCredentialDesc": "Emmagatzemar claus o contrasenyes SSH",
"tmuxMonitor": "Monitor Tmux",
"tmuxMonitorDesc": "Supervisa les sessions tmux a tots els teus amfitrions",
"recentActivity": "Activitat recent",
"serversAndHosts": "Servidors i amfitrions",
"noHostsFound": "No s'han trobat hosts que coincideixin amb \"{{search}}\"",
"links": "Enllaços",
"navigate": "Navega",
"select": "Selecciona",
"toggleWith": "Commuta amb"
},
"splitScreen": {
"paneEmpty": "Panell {{index}} - buit",
"noTabAssigned": "Cap pestanya assignada",
"focusedPane": "Panell actiu"
},
"connections": {
"noConnections": "Sense connexions",
"noConnectionsDesc": "Obriu un terminal, un gestor de fitxers o un escriptori remot per veure les connexions aquí",
"connectedFor": "Connectat per {{duration}}",
"connected": "Connectat",
"disconnected": "Desconnectat",
"closeTab": "Tanca la pestanya",
"closeConnection": "Connexió propera",
"forgetTab": "Oblidar",
"removeBackground": "Elimina",
"reconnect": "Reconnecta",
"reopenTab": "Reobrir",
"sectionOpen": "Obre",
"sectionBackground": "Fons",
"backgroundDesc": "Les sessions persisteixen durant 30 minuts després de la desconnexió i es poden tornar a connectar.",
"persisted": "Persistia en segon pla",
"expiresIn": "Caduca en {{duration}}",
"search": "Cerca connexions...",
"noSearchResults": "No hi ha connexions que coincideixin amb la teva cerca",
"rename": "Canvia el nom de la sessió"
},
"guacamole": {
"connecting": "Connectant a la sessió {{type}}...",
"connectionError": "Error de connexió",
"connectionFailed": "La connexió ha fallat",
"failedToConnect": "No s'ha pogut obtenir el testimoni de connexió",
"hostNotFound": "No s'ha trobat l'amfitrió",
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"reconnect": "Reconnecta",
"retry": "Torna-ho a intentar",
"guacdUnavailable": "El servei d'escriptori remot (guacd) no està disponible. Assegureu-vos que guacd estigui en execució, sigui accessible i estigui configurat correctament a la configuració d'administrador.",
"ctrlAltDel": "Ctrl+Alt+Supr",
"toolbar": {
"ctrlAltDel": "Ctrl+Alt+Supr",
"winL": "Win+L (Pantalla de bloqueig)",
"winKey": "Clau de Windows",
"ctrl": "Ctrl",
"alt": "Alt",
"shift": "Majúscules",
"win": "Guanyar",
"stickyActive": "{{key}} (bloquejat - feu clic per alliberar)",
"stickyInactive": "{{key}} (feu clic per bloquejar)",
"esc": "Escapada",
"tab": "Pestanya",
"home": "Inici",
"end": "Final",
"pageUp": "Pàgina amunt",
"pageDown": "Pàgina avall",
"arrowUp": "Fletxa amunt",
"arrowDown": "Fletxa avall",
"arrowLeft": "Fletxa esquerra",
"arrowRight": "Fletxa dreta",
"fnToggle": "Tecles de funció",
"reconnect": "Sessió de reconnexió",
"collapse": "Replega la barra d'eines",
"expand": "Expandeix la barra d'eines",
"dragHandle": "Arrossega per reposicionar"
}
},
"terminal": {
"connect": "Connecta't a l'amfitrió",
"clear": "Clar",
"paste": "Enganxa",
"reconnect": "Reconnecta",
"connectionLost": "Connexió perduda",
"connected": "Connectat",
"clipboardWriteFailed": "No s'ha pogut copiar al porta-retalls. Assegureu-vos que la pàgina es serveix per HTTPS o localhost.",
"clipboardReadFailed": "No s'ha pogut llegir del porta-retalls. Assegureu-vos que els permisos del porta-retalls estiguin concedits.",
"clipboardHttpWarning": "Per enganxar cal HTTPS. Feu servir Ctrl+Maj+V o publiqueu Termix sobre HTTPS.",
"passwordPromptFillTitle": "Voleu introduir la contrasenya desada en aquesta sol·licitud?",
"unknownError": "S'ha produït un error desconegut",
"websocketError": "Error de connexió de WebSocket",
"connecting": "Connectant...",
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"reconnecting": "Reconnectant... ({{attempt}}/{{max}})",
"reconnected": "S'ha reconnectat correctament",
"tmuxSessionCreated": "Sessió tmux creada: {{name}}",
"tmuxSessionAttached": "sessió tmux adjunta: {{name}}",
"tmuxUnavailable": "tmux no està instal·lat a l'amfitrió remot, tornant a l'intèrpret d'ordres estàndard",
"tmuxSessionPickerTitle": "Sessions de tmux",
"tmuxSessionPickerDesc": "S'han trobat sessions tmux existents en aquest amfitrió. Seleccioneu-ne una per tornar-la a adjuntar o crear una sessió nova.",
"tmuxWindows": "Finestres",
"tmuxWindowCount": "finestra {{count}}",
"tmuxAttached": "Clients adjunts",
"tmuxAttachedCount": "{{count}} adjunt",
"tmuxLastActivity": "Darrera activitat",
"tmuxTimeJustNow": "ara mateix",
"tmuxTimeMinutes": "fa {{count}}minuts",
"tmuxTimeHours": "fa {{count}}h",
"tmuxTimeDays": "fa {{count}}dies",
"tmuxCreateNew": "Inicia una nova sessió",
"tmuxCopyHint": "Ajusta la selecció i prem Intro per copiar al porta-retalls",
"tmuxDetach": "Desconnecta de la sessió de tmux",
"tmuxDetached": "Desconnectat de la sessió tmux",
"maxReconnectAttemptsReached": "S'ha arribat al màxim d'intents de reconnexió",
"closeTab": "Tanca",
"connectionTimeout": "Temps d'espera de connexió",
"terminalTitle": "Terminal - {{host}}",
"terminalWithPath": "Terminal - {{host}}:{{path}}",
"runTitle": "Executant {{command}} - {{host}}",
"totpRequired": "Cal autenticació de dos factors",
"totpCodeLabel": "Codi de verificació",
"totpVerify": "Verifica",
"warpgateAuthRequired": "Cal autenticació de Warpgate",
"warpgateSecurityKey": "Clau de seguretat",
"warpgateAuthUrl": "URL d'autenticació",
"warpgateOpenBrowser": "Obre al navegador",
"warpgateContinue": "He completat l'autenticació",
"opksshAuthRequired": "Cal autenticació OPKSSH",
"opksshAuthDescription": "Completeu l'autenticació al navegador per continuar. Aquesta sessió serà vàlida durant 24 hores.",
"opksshOpenBrowser": "Obre el navegador per autenticar-te",
"opksshWaitingForAuth": "Esperant l'autenticació al navegador...",
"opksshAuthenticating": "Processant l'autenticació...",
"opksshTimeout": "S'ha esgotat el temps d'autenticació. Torna-ho a provar.",
"opksshAuthFailed": "L'autenticació ha fallat. Si us plau, comproveu les vostres credencials i torneu-ho a intentar.",
"opksshSignInWith": "Inicia la sessió amb {{provider}}",
"vaultAuthTitle": "Cal iniciar sessió a la caixa forta",
"vaultAuthDescription": "S'ha obert una finestra per iniciar la sessió a HashiCorp Vault. Completeu l'inici de sessió allà; aquesta connexió continuarà automàticament.",
"vaultAuthFailed": "L'autenticació de la caixa forta ha fallat. Torna-ho a provar.",
"vaultReopen": "Torna a obrir la finestra d'inici de sessió",
"sudoPasswordPopupTitle": "Voleu inserir la contrasenya?",
"linkDialogTitle": "Obre l'enllaç",
"linkDialogOpen": "Obre",
"linkDialogCopy": "Còpia",
"websocketAbnormalClose": "La connexió s'ha tancat inesperadament. Això pot ser degut a un problema de configuració del proxy invers o de l'SSL. Si us plau, reviseu els registres del servidor.",
"connectionLogTitle": "Registre de connexió",
"connectionLogCopy": "Copia els registres al porta-retalls",
"connectionLogEmpty": "Encara no hi ha registres de connexió",
"connectionLogWaiting": "Esperant els registres de connexió...",
"connectionLogCopied": "Registres de connexió copiats al porta-retalls",
"connectionLogCopyFailed": "No s'han pogut copiar els registres al porta-retalls",
"connectionRejected": "Connexió rebutjada pel servidor. Si us plau, comproveu l'autenticació i la configuració de xarxa.",
"hostKeyRejected": "Verificació de la clau de l'amfitrió SSH rebutjada. Connexió cancel·lada.",
"sessionTakenOver": "La sessió s'ha obert en una altra pestanya. S'està tornant a connectar...",
"split": {
"splitTab": "Pestanya dividida",
"addToSplit": "Afegeix a Dividir",
"removeFromSplit": "Elimina de Split"
}
},
"fileManager": {
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"initializingEditor": "Inicialitzant l'editor...",
"file": "Fitxer",
"folder": "Carpeta",
"uploadFile": "Puja el fitxer",
"downloadFile": "Descarrega",
"extractArchive": "Extreure l'arxiu",
"extractingArchive": "Extraient {{name}}...",
"archiveExtractedSuccessfully": "{{name}} s'ha extret correctament",
"extractFailed": "L'extracció ha fallat",
"compressFile": "Comprimir fitxer",
"compressFiles": "Comprimir fitxers",
"compressFilesDesc": "Comprimir elements {{count}} en un arxiu",
"archiveName": "Nom de l'arxiu",
"enterArchiveName": "Introduïu el nom de l'arxiu...",
"compressionFormat": "Format de compressió",
"selectedFiles": "Fitxers seleccionats",
"andMoreFiles": "i {{count}} més...",
"compress": "Comprimir",
"compressingFiles": "Comprimint elements {{count}} en {{name}}...",
"filesCompressedSuccessfully": "{{name}} creat correctament",
"compressFailed": "La compressió ha fallat",
"edit": "Edita",
"preview": "Vista prèvia",
"previous": "Anterior",
"next": "Següent",
"pageXOfY": "Pàgina {{current}} de {{total}}",
"zoomOut": "Allunyar",
"zoomIn": "Ampliar zoom",
"newFile": "Fitxer nou",
"newFolder": "Nova carpeta",
"rename": "Canvia el nom",
"uploading": "S'està carregant...",
"uploadingFile": "S'està carregant {{name}}...",
"fileName": "Nom del fitxer",
"folderName": "Nom de la carpeta",
"fileUploadedSuccessfully": "El fitxer \"{{name}}\" s'ha carregat correctament",
"failedToUploadFile": "No s'ha pogut carregar el fitxer",
"fileDownloadedSuccessfully": "Fitxer \"{{name}}\" descarregat correctament",
"failedToDownloadFile": "No s'ha pogut descarregar el fitxer",
"fileCreatedSuccessfully": "Fitxer \"{{name}}\" creat correctament",
"folderCreatedSuccessfully": "La carpeta \"{{name}}\" s'ha creat correctament",
"failedToCreateItem": "No s'ha pogut crear l'element",
"operationFailed": "L'operació {{operation}} ha fallat per a {{name}}: {{error}}",
"failedToResolveSymlink": "No s'ha pogut resoldre l'enllaç simbòlic",
"itemsDeletedSuccessfully": "{{count}} elements suprimits correctament",
"failedToDeleteItems": "No s'han pogut suprimir els elements",
"sudoPasswordRequired": "Contrasenya d'administrador requerida",
"enterSudoPassword": "Introduïu la contrasenya sudo per continuar amb aquesta operació",
"sudoPassword": "Contrasenya de Sudo",
"sudoOperationFailed": "L'operació Sudo ha fallat.",
"sudoAuthFailed": "L'autenticació de Sudo ha fallat.",
"dragFilesToUpload": "Deixa anar els fitxers aquí per pujar-los",
"emptyFolder": "Aquesta carpeta està buida",
"searchFiles": "Cerca fitxers...",
"upload": "Pujada",
"selectHostToStart": "Seleccioneu un amfitrió per iniciar la gestió de fitxers",
"sshRequiredForFileManager": "El gestor de fitxers requereix SSH. Aquest amfitrió no té SSH habilitat.",
"failedToConnect": "No s'ha pogut connectar a SSH",
"failedToLoadDirectory": "No s'ha pogut carregar el directori",
"noSSHConnection": "No hi ha connexió SSH disponible",
"copy": "Còpia",
"cut": "Tallar",
"paste": "Enganxa",
"copyPath": "Copia la ruta",
"copyPaths": "Copiar camins",
"delete": "Suprimeix",
"properties": "Propietats",
"refresh": "Actualitza",
"downloadFiles": "Baixeu els fitxers {{count}} al navegador",
"copyFiles": "Copia elements {{count}}",
"cutFiles": "Retalla elements {{count}}",
"deleteFiles": "Suprimeix elements {{count}}",
"filesCopiedToClipboard": "{{count}} elements copiats al porta-retalls",
"filesCutToClipboard": "{{count}} elements retallats al porta-retalls",
"pathCopiedToClipboard": "La ruta s'ha copiat al porta-retalls",
"pathsCopiedToClipboard": "{{count}} camins copiats al porta-retalls",
"failedToCopyPath": "No s'ha pogut copiar la ruta al porta-retalls",
"copyFolderLink": "Copia l'enllaç a la carpeta",
"copyCurrentFolderLink": "Copia l'enllaç a la carpeta actual",
"folderLinkCopied": "Enllaç de carpeta copiat al porta-retalls",
"failedToCopyFolderLink": "No s'ha pogut copiar l'enllaç de la carpeta",
"movedItems": "Elements moguts {{count}}",
"failedToDeleteItem": "No s'ha pogut suprimir l'element",
"itemRenamedSuccessfully": "{{type}} s'ha canviat el nom correctament",
"failedToRenameItem": "No s'ha pogut canviar el nom de l'element",
"download": "Descarrega",
"openExternalEditor": "Obre externament",
"chooseExternalEditor": "Trieu un editor extern",
"externalEditorSelected": "Editor extern seleccionat",
"externalEditorDesktopOnly": "L'editor extern només està disponible a l'aplicació d'escriptori",
"externalEditorOpened": "Obert en un editor extern. Si deseu-ho, els canvis es tornaran a carregar al servidor.",
"failedToOpenExternalEditor": "No s'ha pogut obrir l'editor extern",
"failedToSelectExternalEditor": "No s'ha pogut seleccionar l'editor extern",
"permissions": "Permisos",
"size": "Mida",
"modified": "Modificat",
"path": "Camí",
"confirmDelete": "Esteu segur que voleu suprimir {{name}}?",
"permissionDenied": "Permís denegat",
"serverError": "Error del servidor",
"fileSavedSuccessfully": "Fitxer desat correctament",
"failedToSaveFile": "No s'ha pogut desar el fitxer",
"confirmDeleteSingleItem": "Esteu segur que voleu suprimir permanentment \"{{name}}\"?",
"confirmDeleteMultipleItems": "Esteu segur que voleu suprimir permanentment els elements {{count}}?",
"confirmDeleteMultipleItemsWithFolders": "Esteu segur que voleu suprimir permanentment els elements {{count}} ? Això inclou les carpetes i el seu contingut.",
"confirmDeleteFolder": "Esteu segur que voleu suprimir permanentment la carpeta \"{{name}}\" i tot el seu contingut?",
"permanentDeleteWarning": "Aquesta acció no es pot desfer. Els elements s'eliminaran permanentment del servidor.",
"recent": "Recent",
"pinned": "Fixat",
"folderShortcuts": "Dreceres de carpeta",
"failedToReconnectSSH": "No s'ha pogut reconnectar la sessió SSH",
"openTerminalHere": "Obre el terminal aquí",
"run": "Corre",
"openTerminalInFolder": "Obre el terminal en aquesta carpeta",
"openTerminalInFileLocation": "Obre el terminal a la ubicació del fitxer",
"runningFile": "Córrer - {{file}}",
"onlyRunExecutableFiles": "Només pot executar fitxers executables",
"directories": "Directoris",
"removedFromRecentFiles": "S'ha eliminat \"{{name}}\" dels fitxers recents",
"removeFailed": "No s'ha pogut eliminar l'opció.",
"unpinnedSuccessfully": "S'ha desfixat \"{{name}}\" correctament",
"unpinFailed": "No s'ha pogut desancorar la fixació.",
"removedShortcut": "S'ha eliminat la drecera \"{{name}}\"",
"removeShortcutFailed": "No s'ha pogut eliminar la drecera.",
"clearedAllRecentFiles": "S'han esborrat tots els fitxers recents",
"clearFailed": "Error en esborrar",
"removeFromRecentFiles": "Elimina dels fitxers recents",
"clearAllRecentFiles": "Esborra tots els fitxers recents",
"unpinFile": "Desfixar fitxer",
"removeShortcut": "Elimina la drecera",
"pinFile": "Fitxer fixat",
"addToShortcuts": "Afegeix a les dreceres",
"pasteFailed": "No s'ha pogut enganxar",
"noUndoableActions": "Sense accions desfaibles",
"undoCopySuccess": "Operació de còpia desfeta: S'han suprimit {{count}} fitxers copiats",
"undoCopyFailedDelete": "Error en desfer: no s'han pogut suprimir els fitxers copiats.",
"undoCopyFailedNoInfo": "Error en desfer: no s'ha pogut trobar la informació del fitxer copiat",
"undoMoveSuccess": "Operació de moviment desfeta: S'han tornat a moure els fitxers {{count}} a la ubicació original.",
"undoMoveFailedMove": "Desfer ha fallat: no s'han pogut moure cap fitxer enrere",
"undoMoveFailedNoInfo": "Desfer ha fallat: no s'ha pogut trobar la informació del fitxer mogut",
"undoDeleteNotSupported": "L'operació de supressió no es pot desfer: els fitxers s'han suprimit permanentment del servidor.",
"undoTypeNotSupported": "Tipus d'operació de desfer no compatible",
"undoOperationFailed": "L'operació de desfer ha fallat",
"unknownError": "Error desconegut",
"confirm": "Confirma",
"find": "Troba...",
"replace": "Substitueix",
"downloadInstead": "Descarrega en comptes d'això",
"keyboardShortcuts": "Dreceres de teclat",
"searchAndReplace": "Cerca i substitueix",
"editing": "Edició",
"search": "Cerca",
"findNext": "Cerca el següent",
"findPrevious": "Cerca anterior",
"save": "Desa",
"selectAll": "Selecciona-ho tot",
"undo": "Desfer",
"redo": "Refer",
"moveLineUp": "Mou la línia cap amunt",
"moveLineDown": "Mou la línia cap avall",
"toggleComment": "Activa/desactiva el comentari",
"autoComplete": "Completar automàticament",
"imageLoadError": "No s'ha pogut carregar la imatge",
"startTyping": "Comença a escriure...",
"unknownSize": "Mida desconeguda",
"fileIsEmpty": "El fitxer està buit",
"largeFileWarning": "Avís de fitxer gran",
"largeFileWarningDesc": "Aquest fitxer té una mida de {{size}} , cosa que pot causar problemes de rendiment quan s'obre com a text.",
"fileNotFoundAndRemoved": "No s'ha trobat el fitxer \"{{name}}\" i s'ha eliminat dels fitxers recents/fixats.",
"failedToLoadFile": "No s'ha pogut carregar el fitxer: {{error}}",
"serverErrorOccurred": "S'ha produït un error del servidor. Torna-ho a provar més tard.",
"autoSaveFailed": "El desament automàtic ha fallat",
"fileAutoSaved": "Fitxer desat automàticament",
"moveFileFailed": "No s'ha pogut moure {{name}}",
"moveOperationFailed": "L'operació de moviment ha fallat",
"canOnlyCompareFiles": "Només es poden comparar dos fitxers",
"comparingFiles": "Comparació de fitxers: {{file1}} i {{file2}}",
"dragFailed": "L'operació d'arrossegament ha fallat",
"filePinnedSuccessfully": "Fitxer \"{{name}}\" fixat correctament",
"pinFileFailed": "No s'ha pogut fixar el fitxer",
"fileUnpinnedSuccessfully": "El fitxer \"{{name}}\" s'ha desanclat correctament",
"unpinFileFailed": "No s'ha pogut desancorar el fitxer",
"shortcutAddedSuccessfully": "Drecera de carpeta \"{{name}}\" afegida correctament",
"addShortcutFailed": "No s'ha pogut afegir la drecera",
"operationCompletedSuccessfully": "{{operation}} {{count}} elements correctament",
"operationCompleted": "{{operation}} {{count}} elements",
"downloadFileSuccess": "Fitxer {{name}} descarregat correctament",
"downloadFileFailed": "La descàrrega ha fallat",
"moveTo": "Mou a {{name}}",
"diffCompareWith": "Comparació de diferències amb {{name}}",
"dragOutsideToDownload": "Arrossega fora de la finestra per descarregar (fitxers{{count}})",
"newFolderDefault": "NovaCarpeta",
"newFileDefault": "NouFitxer.txt",
"successfullyMovedItems": "S'han mogut correctament {{count}} elements a {{target}}",
"move": "Moure",
"searchInFile": "Cerca en un fitxer (Ctrl+F)",
"showKeyboardShortcuts": "Mostra les dreceres de teclat",
"decreaseFontSize": "Reduir la mida de la lletra",
"increaseFontSize": "Augmenta la mida de la lletra",
"startWritingMarkdown": "Comença a escriure el teu contingut de rebaixes...",
"loadingFileComparison": "S'està carregant la comparació de fitxers...",
"reload": "Torna a carregar",
"compare": "Comparar",
"sideBySide": "Costat al costat",
"inline": "En línia",
"fileComparison": "Comparació de fitxers: {{file1}} vs {{file2}}",
"fileTooLarge": "Fitxer massa gran: {{error}}",
"sshConnectionFailed": "La connexió SSH ha fallat. Si us plau, comproveu la connexió a {{name}} ({{ip}}:{{port}})",
"loadFileFailed": "No s'ha pogut carregar el fitxer: {{error}}",
"connecting": "Connectant...",
"connectedSuccessfully": "Connexió correcta",
"totpVerificationFailed": "La verificació TOTP ha fallat",
"warpgateVerificationFailed": "L'autenticació de Warpgate ha fallat",
"authenticationFailed": "L'autenticació ha fallat",
"incorrectPassphrase": "Contrasenya incorrecta. Si us plau, torneu-ho a intentar.",
"verificationCodePrompt": "Codi de verificació:",
"changePermissions": "Canvia els permisos",
"currentPermissions": "Permisos actuals",
"owner": "propietari",
"group": "Grup",
"others": "Altres",
"read": "Llegir",
"write": "Escriure",
"execute": "Executar",
"permissionsChangedSuccessfully": "Els permisos s'han canviat correctament",
"failedToChangePermissions": "No s'han pogut canviar els permisos",
"name": "Nom",
"sortByName": "Nom",
"sortByDate": "Data de modificació",
"sortBySize": "Mida",
"ascending": "Ascendent",
"descending": "Descendent",
"root": "Arrel",
"new": "Nou",
"sortBy": "Ordena per",
"items": "Articles",
"selected": "Seleccionat",
"editor": "Editor",
"octal": "Octal",
"storage": "Emmagatzematge",
"disk": "Disc",
"used": "Usat",
"of": "de",
"toggleSidebar": "Obre/tanca la barra lateral",
"cannotLoadPdf": "No es pot carregar el PDF",
"pdfLoadError": "S'ha produït un error en carregar aquest fitxer PDF.",
"loadingPdf": "S'està carregant el PDF...",
"loadingPage": "S'està carregant la pàgina..."
},
"transfer": {
"copyToHost": "Copia a l'amfitrió…",
"moveToHost": "Moure a l'amfitrió…",
"copyItemsToHost": "Copia els elements {{count}} a l'amfitrió…",
"moveItemsToHost": "Mou els elements {{count}} a l'amfitrió…",
"noHostsConnected": "No hi ha altres amfitrions de gestors de fitxers disponibles.",
"noHostsConnectedHint": "Afegiu un altre amfitrió SSH amb el Gestor de fitxers habilitat al Gestor d'amfitrions.",
"selectDestinationHost": "Selecciona l'amfitrió de destinació",
"destinationPath": "Camí de destinació",
"recentDestinations": "Destinacions recents",
"collapseRecentDestinations": "Replega les destinacions recents",
"expandRecentDestinations": "Expandeix les destinacions recents",
"browseFolders": "Navega per les carpetes de destinació",
"browseDestination": "Navega o introdueix la ruta",
"confirmCopy": "Còpia",
"confirmMove": "Moure",
"transferring": "Transferint…",
"compressing": "Comprimint…",
"extracting": "Extraient…",
"transferringItems": "Transferint {{current}} de {{total}} elements…",
"transferSuccess": "Transferència completada",
"transferError": "La transferència ha fallat",
"transferPartial": "Transferència completada amb errors {{count}}",
"transferPartialHint": "No s'ha pogut transferir: {{paths}}",
"itemsSummary": "{{count}} elements",
"destMustBeDirectory": "La destinació ha de ser un directori per a transferències de diversos elements",
"selectThisFolder": "Selecciona aquesta carpeta",
"browsePathWillBeCreated": "Aquesta carpeta encara no existeix. Es crearà quan comenci la transferència.",
"browsePathError": "No s'ha pogut obrir aquesta ruta a l'amfitrió de destinació.",
"goUp": "Puja",
"copyFolderToHost": "Copia la carpeta a l'amfitrió…",
"moveFolderToHost": "Mou la carpeta a l'amfitrió…",
"hostReady": "Llest",
"hostConnecting": "Connectant…",
"hostDisconnected": "No connectat",
"hostAuthRequired": "Cal autenticació: obriu primer el Gestor de fitxers en aquest amfitrió.",
"hostConnectionFailed": "La connexió ha fallat",
"metricsTitle": "Horaris de transferència",
"metricsPrepare": "Prepara la destinació: {{duration}}",
"metricsCompress": "Comprimir a la font: {{duration}}",
"metricsHopSourceRead": "Font → servidor: {{throughput}}",
"metricsHopDestSftpWrite": "Servidor → destí (SFTP): {{throughput}}",
"metricsHopDestLocalWrite": "Servidor → destí (local): {{throughput}}",
"metricsTransfer": "Extrem a extrem: {{throughput}} ({{duration}})",
"metricsExtract": "Extracte a la destinació: {{duration}}",
"metricsSourceDelete": "Elimina de la font: {{duration}}",
"metricsTotal": "Total: {{duration}}",
"progressCompressing": "Compressió a l'amfitrió d'origen…",
"progressExtracting": "Extraient a la destinació…",
"progressTransferring": "Transferència de dades…",
"progressReconnecting": "Reconnectant…",
"parallelSegmentsLabel": "Carrils de transferència paral·lels",
"parallelSegmentsOption": "carrils {{count}}",
"parallelSegmentsHint": "Els fitxers grans es divideixen en blocs de 256 MB. Els carrils múltiples utilitzen connexions separades (com ara iniciar diverses transferències) per a un rendiment total més alt.",
"progressTotalSpeed": "{{speed}} total ({{lanes}} carrils)",
"progressTransferringItems": "Transferència de fitxers ({{current}} de {{total}})…",
"progressBytes": "{{transferred}} / {{total}}",
"progressItems": "{{current}} / {{total}} fitxers",
"sourceNotDeletedPartial": "Fitxers font conservats (transferència parcial)",
"jumpHostLimitation": "Tots dos hosts han de ser accessibles des del servidor Termix. No s'admet l'encaminament directe d'host a host.",
"cancel": "Cancel·la",
"methodLabel": "Mètode de transferència",
"methodAuto": "Automàtic",
"methodTar": "Arxiu Tar",
"methodItemSftp": "SFTP per fitxer",
"methodAutoHint": "Tria SFTP tar o per fitxer en funció del nombre de fitxers, la mida i la compressibilitat. Els fitxers individuals sempre utilitzen SFTP en temps real.",
"methodTarHint": "Comprimir a l'origen, transferir un arxiu, extreure a la destinació. Requereix tar en ambdós hosts Unix.",
"methodItemSftpHint": "Transfereix cada fitxer individualment per SFTP. Funciona en tots els hosts, inclòs Windows.",
"methodPreviewLoading": "Càlcul del mètode de transferència…",
"methodPreviewError": "No s'ha pogut previsualitzar el mètode de transferència. El servidor encara triarà un mètode quan l'inicieu.",
"methodPreviewWillUseTar": "Utilitzarà: Arxiu Tar",
"methodPreviewWillUseItemSftp": "Utilitzarà: SFTP per fitxer",
"methodPreviewScanSummary": "{{fileCount}} fitxers, {{totalSize}} total (escanejats a l'amfitrió d'origen).",
"methodItemSftpLimitation": "Cada fitxer utilitza el mateix flux SFTP com una còpia d'un sol fitxer, un darrere l'altre. El progrés es combina en tots els fitxers, de manera que la barra es mou lentament durant els fitxers grans.",
"methodReason": {
"user_item_sftp": "Heu triat SFTP per fitxer.",
"user_tar": "Has triat l'arxiu tar.",
"tar_unavailable": "Tar no està disponible en un o tots dos hosts; s'utilitzarà SFTP per fitxer.",
"windows_host": "Hi ha un host de Windows implicat; no s'utilitza tar.",
"auto_multi_large": "Automàtic: diversos fitxers, inclòs un fitxer gran ({{largestSize}}) amb dades compressibles: paquets de fitxers tar en una sola transferència.",
"auto_single_large_in_archive": "Automàtic: un fitxer gran ({{largestSize}}) en aquest conjunt — SFTP per fitxer.",
"auto_many_incompressible": "Automàtic: dades majoritàriament incompressibles — SFTP per fitxer.",
"auto_many_files": "Automàtic: molts fitxers ({{fileCount}}) — tar redueix la sobrecàrrega per fitxer.",
"auto_default": "Automàtic: SFTP per fitxer per a aquest conjunt."
},
"progressCancel": "Cancel·la",
"progressCancelling": "Cancel·lant…",
"progressStalled": "Estancat",
"resumedHint": "S'ha tornat a connectar a una transferència activa iniciada en una altra finestra.",
"transferCancelled": "Transferència cancel·lada",
"transferCancelledCopyHint": "És possible que hi hagi fitxers parcials a la destinació.",
"transferCancelledMoveHint": "És possible que hi hagi fitxers parcials a la destinació. No s'han eliminat els fitxers d'origen.",
"cleanupDestFiles": "Neteja la destinació",
"cleanupDestFilesSuccess": "S'han eliminat fitxers parcials de la destinació",
"cleanupDestFilesPartial": "No s'han pogut eliminar alguns fitxers parcials",
"cleanupDestFilesNothing": "Res a netejar a la destinació",
"cleanupDestFilesError": "La neteja ha fallat",
"retryTransfer": "Torna-ho a intentar",
"retryTransferError": "No s'ha pogut reintentar.",
"transferFailedRetryHint": "S'han conservat dades parcials a la destinació. El reintent es reprendrà quan es restableixi la connexió."
},
"tunnels": {
"noSshTunnels": "Sense túnels SSH",
"createFirstTunnelMessage": "Encara no has creat cap túnel SSH. Configureu les connexions del túnel al Gestor d'amfitrions per començar.",
"connected": "Connectat",
"disconnected": "Desconnectat",
"connecting": "Connectant...",
"error": "Error",
"canceling": "Cancel·lant...",
"connect": "Connecta",
"disconnect": "Desconnecta",
"cancel": "Cancel·la",
"port": "Port",
"localPort": "Port local",
"remotePort": "Port remot",
"currentHostPort": "Port d'amfitrió actual",
"endpointPort": "Port del punt final",
"bindIp": "IP local",
"endpointSshConfig": "Configuració SSH del punt final",
"endpointSshHost": "Amfitrió SSH de punt final",
"endpointSshHostPlaceholder": "Seleccioneu un amfitrió configurat",
"endpointSshHostRequired": "Seleccioneu un host SSH de punt final per a cada túnel de client.",
"attempt": "Intent {{current}} de {{max}}",
"nextRetryIn": "Proper intent en {{seconds}} segons",
"clientTunnels": "Túnels de client",
"clientTunnel": "Túnel del client",
"addClientTunnel": "Afegeix un túnel de client",
"noClientTunnels": "No hi ha túnels de client configurats en aquest escriptori.",
"tunnelName": "Nom del túnel",
"remoteHost": "Amfitrió remot",
"autoStart": "Inici automàtic",
"clientAutoStartDesc": "S'inicia quan s'obre aquest client d'escriptori i roman connectat.",
"clientManualStartDesc": "Feu servir Start i Stop des d'aquesta fila. Termix no l'obrirà automàticament.",
"clientRemoteServerNote": "El reenviament remot pot requerir AllowTcpForwarding i GatewayPorts al servidor SSH del punt final. El port remot es tanca quan aquest escriptori es desconnecta.",
"clientTunnelStarted": "Túnel del client iniciat",
"clientTunnelStopped": "Túnel del client aturat",
"tunnelTestSucceeded": "La prova del túnel ha tingut èxit",
"tunnelTestFailed": "La prova del túnel ha fallat",
"localSaved": "Túnels de client desats",
"localSaveError": "No s'han pogut desar els túnels del client local.",
"invalidBindIp": "La IP local ha de ser una adreça IPv4 vàlida.",
"invalidLocalTargetIp": "La IP de destinació local ha de ser una adreça IPv4 vàlida.",
"invalidLocalPort": "El port local ha d'estar entre 1 i 65535.",
"invalidRemotePort": "El port remot ha d'estar entre 1 i 65535.",
"invalidLocalTargetPort": "El port de destinació local ha d'estar entre 1 i 65535.",
"invalidEndpointPort": "El port del punt final ha d'estar entre 1 i 65535.",
"duplicateAutoStartBind": "Només un túnel de client d'inici automàtic pot utilitzar {{bind}}.",
"manualControlError": "No s'ha pogut actualitzar l'estat del túnel.",
"active": "Actiu",
"start": "Inici",
"stop": "Atura",
"test": "Prova",
"type": "Tipus de túnel",
"typeLocal": "Local (-L)",
"typeRemote": "Comandament a distància (-R)",
"typeDynamic": "Dinàmic (-D)",
"typeServerLocalDesc": "De l'amfitrió actual al punt final.",
"typeServerRemoteDesc": "Punt final torna a l'amfitrió actual.",
"typeClientLocalDesc": "Ordinador local al punt final.",
"typeClientRemoteDesc": "Punt final de tornada a l'ordinador local.",
"typeClientDynamicDesc": "SOCKS a l'ordinador local.",
"typeDynamicDesc": "Reenvia el trànsit de SOCKS5 CONNECT a través de SSH",
"forwardDescriptionServerLocal": "Amfitrió actual {{sourcePort}} → punt final {{endpointPort}}.",
"forwardDescriptionServerRemote": "Punt final {{endpointPort}} → amfitrió actual {{sourcePort}}.",
"forwardDescriptionServerDynamic": "SOCKS a l'amfitrió actual {{sourcePort}}.",
"forwardDescriptionClientLocal": "Local {{sourcePort}} → remot {{endpointPort}}.",
"forwardDescriptionClientRemote": "Remot {{sourcePort}} → local {{endpointPort}}.",
"forwardDescriptionClientDynamic": "SOCKS al port local {{sourcePort}}.",
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{endpoint}}:{{remotePort}}",
"summaryClientRemote": "{{endpoint}}:{{remotePort}} → {{localHost}}:{{localPort}}",
"summaryClientDynamic": "{{localHost}}:{{localPort}} → MITJONS via {{endpoint}}",
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
"autoNameClientDynamic": "MITJONS {{localPort}} via {{endpoint}}",
"route": "Ruta:",
"lastStarted": "Últim inici",
"lastTested": "Última prova",
"lastError": "Últim error",
"maxRetries": "Màxim d'intents",
"maxRetriesDescription": "Nombre màxim d'intents de reintent.",
"retryInterval": "Interval de reintent (segons)",
"retryIntervalDescription": "Temps d'espera entre intents de reintent.",
"local": "Local",
"remote": "Remot",
"destination": "Destinació",
"host": "Amfitrió",
"mode": "Mode",
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"working": "Treballant..."
},
"cardGrid": {
"dragToMove": "Arrossega per moure",
"dragToResize": "Arrossega per canviar la mida",
"changeWidth": "Canvia l'amplada",
"removeCard": "Elimina {{label}}",
"addCard": "Afegeix",
"columns": "Columnes",
"empty": "Sense cartes. Fes servir Afegeix a continuació per col·locar cartes."
},
"hostMetrics": {
"cpu": "CPU",
"memory": "Memòria",
"disk": "Disc",
"network": "Xarxa",
"uptime": "Temps de funcionament",
"processes": "Processos",
"available": "Disponible",
"free": "Gratuït",
"connecting": "Connectant...",
"connectionFailed": "No s'ha pogut connectar al servidor",
"naCpus": "CPU(s) N/A",
"cpuCores_one": "{{count}} Nucli",
"cpuCores_other": "{{count}} Nuclis",
"cpuUsage": "Ús de la CPU",
"memoryUsage": "Ús de memòria",
"diskUsage": "Ús del disc",
"temperature": "Temperatura",
"highestTemperature": "Temperatura més alta",
"failedToFetchHostConfig": "No s'ha pogut obtenir la configuració de l'amfitrió",
"serverOffline": "Servidor fora de línia",
"cannotFetchMetrics": "No es poden obtenir mètriques del servidor fora de línia",
"totpFailed": "La verificació TOTP ha fallat",
"noneAuthNotSupported": "Les mètriques de l'amfitrió no admeten el tipus d'autenticació \"cap\".",
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"load": "Carrega",
"systemInfo": "Informació del sistema",
"hostname": "Nom d'amfitrió",
"operatingSystem": "Sistema operatiu",
"kernel": "Nucli",
"seconds": "segons",
"networkInterfaces": "Interfícies de xarxa",
"noInterfacesFound": "No s'han trobat interfícies de xarxa",
"noProcessesFound": "No s'han trobat processos",
"processesTotal": "total",
"processesRunning": "corrent",
"loginStats": "Estadístiques d'inici de sessió SSH",
"noRecentLoginData": "Sense dades d'inici de sessió recents",
"executingQuickAction": "Executant {{name}}...",
"quickActionSuccess": "{{name}} s'ha completat correctament",
"quickActionFailed": "{{name}} ha fallat",
"quickActionError": "No s'ha pogut executar {{name}}",
"ports": {
"title": "Ports d'escolta",
"protocol": "Protocol",
"port": "Port",
"address": "Adreça",
"process": "Procés",
"search": "Cerca ports...",
"allProtocols": "Tot",
"noData": "No hi ha dades de ports d'escolta"
},
"firewall": {
"title": "Tallafocs",
"inactive": "Inactiu",
"policy": "Política",
"rules": "regles",
"noRules": "No hi ha regles en aquesta cadena",
"noData": "No hi ha dades de tallafocs disponibles",
"action": "Acció",
"protocol": "Proto",
"port": "Port",
"source": "Font",
"anywhere": "A qualsevol lloc",
"chains": "cadenes"
},
"loadAvg": "Mitjana de càrrega",
"swap": "Intercanvi",
"architecture": "Arquitectura",
"refresh": "Actualitza",
"retry": "Torna-ho a intentar",
"customize": "Personalitza el disseny",
"reset": "Restablir",
"tabLive": "En directe",
"editModeInstructions": "Arrossega les cartes per reorganitzar-les, arrossega la vora inferior per canviar-ne la mida i utilitza el botó d'amplada per canviar l'extensió d'una carta. Afegeix o elimina cartes a continuació.",
"managers": {
"services": "Serveis",
"processInspector": "Inspector de processos",
"logViewer": "Visualitzador de registre",
"cron": "Treballs cron",
"packages": "Paquets",
"ssl": "Certificats SSL",
"firewall": "Tallafocs",
"users": "Usuaris i permisos",
"healthCheck": "Controls de salut",
"diskBreakdown": "Avaria del disc",
"systemdTimers": "Temporitzadors",
"topMemory": "Top per memòria",
"noData": "Sense dades",
"sudoHint": "Establiu una contrasenya sudo per a aquest host a l'editor d'hosts per habilitar accions privilegiades.",
"filter": "Filtra...",
"start": "Inici",
"stop": "Atura",
"restart": "Reinicia",
"actionDone": "{{name}} actualitzat",
"actionFailed": "L'acció ha fallat",
"signalSent": "Senyal enviat al PID {{pid}}",
"killHint": "Clic: finalitzar (SIGTERM). Clic amb el botó dret: forçar la mort (SIGKILL).",
"working": "Treballant...",
"update": "Actualització",
"upgradeAll": "Actualitza-ho tot",
"allUpToDate": "Tot està actualitzat",
"save": "Desa",
"command": "Comandament",
"enabled": "Activat",
"cronSaved": "Crontab actualitzat",
"clients": "Clients",
"dryRun": "Sessió en sec",
"renew": "Renovar",
"noAcmeClient": "No s'ha trobat cap client ACME (certbot o acme.sh) en aquest amfitrió.",
"addInputRule": "Afegeix una regla INPUT",
"firewallWarning": "Els canvis només són en temps d'execució fins que persisteixen. Aneu amb compte de no bloquejar-vos l'accés.",
"ruleApplied": "Regla aplicada",
"invalidPort": "Introduïu un port vàlid (1-65535)",
"newUsername": "Nou nom d'usuari",
"addUser": "Afegeix",
"deleteUser": "Suprimeix l'usuari",
"noHealthChecks": "Encara no s'ha configurat cap comprovació d'estat.",
"follow": "Segueix",
"noLogData": "No hi ha sortida de registre.",
"tree": "Arbre",
"enableDisable": "Activa / desactiva a l'arrencada",
"grantSudo": "Concedir sudo",
"revokeSudo": "Revoca sudo",
"sslIssueCert": "Emetre certificat",
"sslExpired": "Caducat",
"sslInDays": "en {{days}}d",
"sslNeedDomain": "Introduïu com a mínim un domini",
"sslIssued": "Certificat emès",
"sslDomainsPlaceholder": "exemple.com, www.exemple.com",
"sslHttpStandalone": "HTTP (autònom)",
"sslHttpWebroot": "HTTP (arrel web)",
"sslDns": "DNS",
"sslDnsProvider": "Proveïdor de DNS (per exemple, Cloudflare)",
"sslIssueHint": "Les credencials del proveïdor DNS ja han d'estar configurades a l'amfitrió.",
"sslRevoke": "Revoca el certificat",
"sslRevoked": "Certificat revocat",
"sslRevokeConfirm": "Voleu revocar i eliminar el certificat \"{{name}}\"? Això no es pot desfer.",
"healthRun": "Corre",
"healthName": "Nom",
"healthTarget": "Host / adreça",
"healthAddCheck": "Afegeix un xec",
"healthSaved": "S'han desat les comprovacions d'estat",
"healthMissingFields": "Cada comprovació necessita un nom i un objectiu",
"logFile": "Fitxer",
"logUnit": "Unitat",
"logCustomPath": "Ruta personalitzada a /var/log (opcional)",
"logGrep": "Línies de filtre...",
"firewallPersist": "Regles de persistència",
"firewallPersisted": "Les regles del tallafocs van persistir",
"wireguard": "WireGuard",
"tailscale": "Escala de cua",
"wgNotInstalled": "WireGuard no està instal·lat en aquest host.",
"wgNoInterfaces": "No hi ha cap interfície de WireGuard configurada",
"wgInterfaceUp": "Porta a col·lació",
"wgInterfaceDown": "Baixar",
"wgBringingUp": "S'està mostrant {{name}}...",
"wgBringingDown": "Baixant {{name}}...",
"wgInterfaceUpDone": "{{name}} està activat",
"wgInterfaceDownDone": "{{name}} està apagat",
"wgListenPort": "Port",
"wgPublicKey": "Clau pública",
"wgEndpoint": "Punt final",
"wgAllowedIPs": "IP permeses",
"wgLastHandshake": "Última encaixada de mans",
"wgHandshakeNever": "Mai",
"wgTransfer": "Transferència",
"tsNotInstalled": "Tailscale no està instal·lat en aquest amfitrió",
"tsRunning": "Córrer",
"tsStopped": "Aturat",
"tsEnable": "Connecta",
"tsDisable": "Desconnecta",
"tsEnabling": "Connectant a Tailscale...",
"tsDisabling": "Desconnectant de Tailscale...",
"tsEnabled": "Escala de cua connectada",
"tsDisabled": "Escala de cua desconnectada",
"tsIPs": "IP de cua escala",
"tsPeers": "Compañers",
"tsOnline": "En línia",
"tsOffline": "Fora de línia",
"tsExitNode": "Node de sortida",
"tsExitNodeActive": "Node de sortida actiu",
"tsHostname": "Nom d'amfitrió"
}
},
"auth": {
"tagline": "SSH autoallotjat i gestió d'escriptori remot",
"loginTitle": "Benvingut/da de nou",
"registerTitle": "Crea un compte",
"forgotPassword": "Has oblidat la contrasenya?",
"rememberMe": "Recorda el dispositiu durant 30 dies (inclou TOTP)",
"noAccount": "No tens un compte?",
"hasAccount": "Ja tens un compte?",
"twoFactorAuth": "Autenticació de dos factors",
"enterCode": "Introduïu el codi de verificació",
"backupCode": "O bé feu servir un codi de còpia de seguretat",
"verifyCode": "Verifica el codi",
"redirectingToApp": "Redireccionant a l'aplicació...",
"sshAuthenticationRequired": "Autenticació SSH requerida",
"sshNoKeyboardInteractive": "Autenticació interactiva amb teclat no disponible",
"sshAuthenticationFailed": "Error d'autenticació",
"sshAuthenticationTimeout": "Temps d'espera d'autenticació",
"sshNoKeyboardInteractiveDescription": "El servidor no admet l'autenticació interactiva amb teclat. Si us plau, proporcioneu la vostra contrasenya o clau SSH.",
"sshAuthFailedDescription": "Les credencials proporcionades eren incorrectes. Torneu-ho a provar amb credencials vàlides.",
"sshTimeoutDescription": "S'ha esgotat el temps d'espera de l'intent d'autenticació. Torna-ho a intentar.",
"sshProvideCredentialsDescription": "Si us plau, proporcioneu les vostres credencials SSH per connectar-vos a aquest servidor.",
"sshPasswordDescription": "Introduïu la contrasenya per a aquesta connexió SSH.",
"sshKeyPasswordDescription": "Si la clau SSH està xifrada, introduïu la contrasenya aquí.",
"passphraseRequired": "Contrasenya obligatòria",
"passphraseRequiredDescription": "La clau SSH està xifrada. Introduïu la contrasenya per desbloquejar-la.",
"back": "Enrere",
"firstUser": "Primer usuari",
"firstUserMessage": "Ets el primer usuari i se't nomenarà administrador. Pots veure la configuració d'administrador al menú desplegable d'usuaris de la barra lateral. Si creus que es tracta d'un error, consulta els registres de Docker o crea una incidència de GitHub.",
"external": "Extern",
"loginWithExternal": "Inicia la sessió amb un proveïdor extern",
"loginWithExternalDesc": "Inicia la sessió amb el proveïdor d'identitat extern configurat",
"externalNotSupportedInElectron": "L'autenticació externa encara no és compatible amb l'aplicació Electron. Si us plau, utilitzeu la versió web per iniciar sessió a OIDC.",
"loginWithProvider": "Inicia la sessió amb {{name}}",
"orContinueWith": "o continuar amb",
"ldapUsername": "Nom d'usuari LDAP",
"ldapPassword": "Contrasenya LDAP",
"ldapSignIn": "Inicia la sessió",
"ldapLoginFailed": "L'inici de sessió LDAP ha fallat",
"resetPasswordButton": "Restablir contrasenya",
"sendResetCode": "Enviar codi de restabliment",
"resetCodeDesc": "Introdueix el teu nom d'usuari per rebre un codi de restabliment de contrasenya. El codi es registrarà als registres del contenidor Docker.",
"resetCode": "Restableix el codi",
"verifyCodeButton": "Verifica el codi",
"enterResetCode": "Introduïu el codi de 6 dígits dels registres del contenidor Docker per a l'usuari:",
"newPassword": "Nova contrasenya",
"confirmNewPassword": "Confirma la contrasenya",
"enterNewPassword": "Introduïu la nova contrasenya per a l'usuari:",
"signUp": "Registra't",
"desktopApp": "Aplicació d'escriptori",
"loggingInToDesktopApp": "Inici de sessió a l'aplicació d'escriptori",
"loadingServer": "S'està carregant el servidor...",
"dataLossWarning": "Si restableixes la contrasenya d'aquesta manera, s'eliminaran tots els hosts SSH, les credencials i altres dades xifrades que hagis desat. Aquesta acció no es pot desfer. Només fes servir aquesta opció si has oblidat la contrasenya i no has iniciat la sessió.",
"authenticationDisabled": "Autenticació desactivada",
"authenticationDisabledDesc": "Tots els mètodes d'autenticació estan actualment desactivats. Poseu-vos en contacte amb el vostre administrador.",
"passwordLoginDisabledDesc": "L'inici de sessió amb contrasenya està desactivat. Feu servir una contrasenya o un proveïdor d'autenticació extern.",
"signInWithPasskey": "Inicia la sessió amb la clau d'accés",
"passkeyLoginFailed": "Error d'inici de sessió amb contrasenya",
"attemptsRemaining": "{{count}} intents restants",
"confirmResetDataWipe": "Aquest compte no ha iniciat sessió des de l'actualització del xifratge, de manera que les dades emmagatzemades no es poden recuperar sense la contrasenya antiga. Si el restableixes, se suprimiran permanentment els seus amfitrions, credencials i fragments. Vols continuar?"
},
"hostKey": {
"verifyNewHost": "Verifica la clau d'amfitrió SSH",
"keyChangedWarning": "Clau d'amfitrió SSH canviada",
"firstConnectionTitle": "Primera vegada que em connecto a aquest amfitrió",
"firstConnectionDescription": "No es pot establir l'autenticitat d'aquest amfitrió. Verifiqueu que l'empremta digital coincideixi amb el que espereu.",
"keyChangedDescription": "La clau d'amfitrió d'aquest servidor ha canviat des de la vostra última connexió. Això podria indicar un problema de seguretat.",
"previousKey": "Clau anterior",
"newFingerprint": "Nova empremta digital",
"fingerprint": "Empremta digital",
"verifyInstructions": "Si confieu en aquest amfitrió, feu clic a Accepta per continuar i desar aquesta empremta digital per a futures connexions.",
"securityWarning": "Avís de seguretat",
"acceptAndContinue": "Accepta i continua",
"acceptNewKey": "Accepta la clau nova i continua"
},
"errors": {
"databaseConnection": "No s'ha pogut connectar a la base de dades",
"unknownError": "Error desconegut",
"loginFailed": "Error d'inici de sessió",
"failedPasswordReset": "No s'ha pogut iniciar el restabliment de la contrasenya",
"failedVerifyCode": "No s'ha pogut verificar el codi de restabliment",
"failedCompleteReset": "No s'ha pogut completar el restabliment de la contrasenya",
"invalidTotpCode": "Codi TOTP no vàlid",
"failedOidcLogin": "No s'ha pogut iniciar l'inici de sessió a l'OIDC.",
"silentSigninOidcUnavailable": "S'ha sol·licitat l'inici de sessió silenciós, però l'inici de sessió a l'OIDC no està disponible.",
"failedUserInfo": "No s'ha pogut obtenir la informació de l'usuari després de l'inici de sessió",
"oidcAuthFailed": "L'autenticació OIDC ha fallat",
"invalidAuthUrl": "URL d'autorització no vàlida rebuda del backend",
"requiredField": "Aquest camp és obligatori",
"minLength": "La longitud mínima és {{min}}",
"passwordMismatch": "Les contrasenyes no coincideixen",
"passwordLoginDisabled": "L'inici de sessió amb nom d'usuari i contrasenya està actualment desactivat",
"sessionExpired": "La sessió ha caducat; si us plau, torneu a iniciar la sessió.",
"totpRateLimited": "Tarifa limitada: massa intents de verificació TOTP. Torna-ho a provar més tard.",
"totpRateLimitedWithTime": "Tarifa limitada: massa intents de verificació TOTP. Espereu {{time}} segons abans de tornar-ho a intentar.",
"resetCodeRateLimited": "Tarifa limitada: massa intents de verificació. Torna-ho a provar més tard.",
"resetCodeRateLimitedWithTime": "Taxa limitada: massa intents de verificació. Espereu {{time}} segons abans de tornar-ho a intentar.",
"authTokenSaveFailed": "No s'ha pogut desar el testimoni d'autenticació",
"failedToLoadServer": "No s'ha pogut carregar el servidor"
},
"messages": {
"registrationDisabled": "El registre de comptes nous està desactivat actualment per un administrador. Si us plau, inicia la sessió o contacta amb un administrador.",
"userNotAllowed": "El vostre compte no està autoritzat per registrar-se. Poseu-vos en contacte amb un administrador.",
"databaseConnectionFailed": "No s'ha pogut connectar al servidor de la base de dades",
"resetCodeSent": "Restableix el codi enviat als registres de Docker",
"codeVerified": "Codi verificat correctament",
"passwordResetSuccess": "La contrasenya s'ha restablert correctament",
"loginSuccess": "Inici de sessió correcte",
"registrationSuccess": "Registre correcte"
},
"profile": {
"c2sTunnelConfigDesc": "Túnels d'escriptori locals dirigits a hosts SSH configurats.",
"c2sTunnelPresets": "Preajustos del túnel del client",
"c2sTunnelPresetsDesc": "Desa la llista de túnels locals d'aquest client d'escriptori com a predefinició de servidor amb nom o torna a carregar una predefinició en aquest client.",
"c2sTunnelPresetsUnavailable": "Els preajustos del túnel del client només estan disponibles al client d'escriptori.",
"c2sPresetName": "Nom predefinit",
"c2sPresetNamePlaceholder": "Nom predefinit del client",
"c2sPresetToLoad": "Predefinició per carregar",
"c2sNoPresetSelected": "No s'ha seleccionat cap predefinició",
"c2sNoPresets": "No s'han desat presets",
"c2sLoadPreset": "Carrega",
"c2sCurrentLocalConfig": "{{count}} túnel(s) de client local configurat(s) en aquest escriptori.",
"c2sPresetSyncNote": "Els preajustaments són instantànies explícites; carregar-ne una substitueix la llista de túnels de clients locals d'aquest client d'escriptori.",
"c2sPresetSaved": "S'ha desat la configuració predefinida del túnel del client",
"c2sPresetLoaded": "Predefinició del túnel del client carregada localment",
"c2sPresetRenamed": "S'ha canviat el nom de la predefinició del túnel del client",
"c2sPresetDeleted": "S'ha suprimit la configuració predefinida del túnel del client",
"c2sPresetLoadError": "No s'han pogut carregar els preajustos del túnel del client"
},
"placeholders": {
"maxRetries": "3",
"retryInterval": "10",
"language": "Llengua",
"keyPassword": "contrasenya clau",
"pastePrivateKey": "Enganxa la teva clau privada aquí...",
"localListenerHost": "127.0.0.1 (escolta localment)",
"localTargetHost": "127.0.0.1 (objectiu en aquest ordinador)",
"socksListenerHost": "127.0.0.1 (escoltador de SOCKS)",
"enterPassword": "Introdueix la teva contrasenya",
"defaultPort": "22",
"defaultEndpointPort": "224"
},
"dashboard": {
"title": "Tauler de control",
"loading": "S'està carregant el tauler de control...",
"github": "GitHub",
"support": "Suport",
"discord": "Discòrdia",
"docs": "Documents",
"donate": "Donar",
"serverOverview": "Visió general del servidor",
"version": "Versió",
"upToDate": "Actualitzat",
"updateAvailable": "Actualització disponible",
"beta": "Beta",
"uptime": "Temps de funcionament",
"database": "Base de dades",
"healthy": "Saludable",
"error": "Error",
"totalHosts": "Total d'amfitrions",
"totalTunnels": "Túnels totals",
"totalCredentials": "Credencials totals",
"recentActivity": "Activitat recent",
"reset": "Restablir",
"loadingRecentActivity": "S'està carregant l'activitat recent...",
"noRecentActivity": "Sense activitat recent",
"quickActions": "Accions ràpides",
"addHost": "Afegeix amfitrió",
"addCredential": "Afegeix credencials",
"adminSettings": "Configuració de l'administrador",
"userProfile": "Perfil d'usuari",
"serverStats": "Estadístiques del servidor",
"loadingServerStats": "S'estan carregant les estadístiques del servidor...",
"noServerData": "No hi ha dades del servidor disponibles",
"cpu": "CPU",
"ram": "RAM",
"customizeLayout": "Personalitza el tauler de control",
"dashboardSettings": "Configuració del tauler de control",
"enableDisableCards": "Activa/Desactiva les targetes",
"resetLayout": "Restableix els valors predeterminats",
"serverOverviewCard": "Visió general del servidor",
"recentActivityCard": "Activitat recent",
"networkGraphCard": "Gràfic de xarxa",
"networkGraph": "Gràfic de xarxa",
"quickActionsCard": "Accions ràpides",
"serverStatsCard": "Estadístiques del servidor",
"panelMain": "Principal",
"panelSide": "Costat",
"justNow": "ara mateix",
"serviceLinks": "Enllaços de servei",
"homepagePreview": "Vista prèvia de la pàgina d'inici"
},
"donation": {
"title": "T'agrada Termix?",
"body": "Termix és gratuït i de codi obert, construït i mantingut per un equip de dues persones en el nostre temps lliure. Si substitueix una eina comercial per la qual altrament estaríeu pagant, una donació ajuda a cobrir els costos d'allotjament i manté el desenvolupament en marxa. De moment, les donacions són només de criptomoneda.",
"milestones": "Les donacions també ajuden a finançar el temps per investigar i aprendre què cal per crear funcions com ara la compatibilitat amb SAML i Kubernetes. Vegeu el progrés a la pàgina de donacions.",
"cta": "Donar",
"dismiss": "Potser més tard"
},
"dashboardTab": {
"stable": "ESTABLE",
"hostsOnline": "Amfitrions en línia",
"activeTunnels": "Túnels actius",
"registerNewServer": "Registra un servidor nou",
"storeSshKeysOrPasswords": "Emmagatzemar claus o contrasenyes SSH",
"manageUsersAndRoles": "Gestionar usuaris i rols",
"manageYourAccount": "Gestiona el teu compte",
"hostStatus": "Estat de l'amfitrió",
"noHostsConfigured": "No hi ha cap amfitrió configurat",
"online": "EN LÍNIA",
"offline": "FORA DE LÍNIA",
"checking": "COMPROVANT",
"onlineLower": "En línia",
"nodes": "nodes {{count}}",
"add": "Afegeix:",
"commandPalette": "Paleta d'ordres",
"done": "Fet",
"editModeInstructions": "Arrossegueu les targetes per reordenar · Arrossegueu el divisor de columnes per canviar la mida de les columnes · Arrossegueu la vora inferior d'una targeta per canviar-ne l'alçada · Paperera per eliminar-la",
"empty": "Buit",
"clear": "Clar",
"serviceLinksTitle": "Enllaços de servei",
"serviceLinksEmpty": "Encara no hi ha enllaços de servei",
"serviceLinksAddLabel": "Etiqueta",
"serviceLinksAddUrl": "URL",
"serviceLinksAdd": "Afegeix",
"serviceLinksLabelPlaceholder": "El meu servei",
"serviceLinksUrlPlaceholder": "http://192.168.1.10:8080",
"serviceLinksInvalidUrl": "Introduïu una adreça web vàlida",
"serviceLinksAddFailed": "No s'ha pogut afegir l'enllaç del servei",
"disk": "Disc",
"viewServerDetails": "Veure els detalls del servidor"
},
"sessionLogs": {
"title": "Registres de sessió",
"noLogs": "Encara no hi ha registres de sessió",
"noLogsDesc": "Habilita el registre de sessions en un amfitrió per iniciar l'enregistrament",
"duration": "Durada",
"viewLog": "Veure registre",
"downloadLog": "Descarrega",
"deleteLog": "Suprimeix",
"confirmDelete": "Voleu suprimir aquest registre de sessió?",
"confirmDeleteDesc": "Aquesta acció no es pot desfer.",
"copyContent": "Còpia",
"copied": "Copiat!",
"loadError": "No s'han pogut carregar els registres de sessió",
"deleteError": "No s'ha pogut suprimir el registre de sessió",
"filterByHost": "Filtra per amfitrió..."
},
"networkGraph": {
"addHost": "Afegeix amfitrió",
"addGroup": "Afegeix un grup",
"addLink": "Afegeix un enllaç",
"zoomIn": "Ampliar zoom",
"zoomOut": "Allunyar",
"resetView": "Restableix la vista",
"selectHost": "Selecciona l'amfitrió",
"chooseHost": "Trieu un amfitrió...",
"parentGroup": "Grup de pares",
"noGroup": "Sense grup",
"groupName": "Nom del grup",
"color": "Color",
"source": "Font",
"target": "Objectiu",
"moveToGroup": "Moure al grup",
"selectGroup": "Selecciona el grup...",
"addConnection": "Afegeix una connexió",
"hostDetails": "Detalls de l'amfitrió",
"removeFromGroup": "Elimina del grup",
"addHostHere": "Afegeix l'amfitrió aquí",
"editGroup": "Edita el grup",
"delete": "Suprimeix",
"add": "Afegeix",
"create": "Crea",
"move": "Moure",
"connect": "Connecta",
"createGroup": "Crea un grup",
"selectSourcePlaceholder": "Selecciona la font...",
"selectTargetPlaceholder": "Selecciona l'objectiu...",
"invalidFile": "Fitxer no vàlid",
"hostAlreadyExists": "L'amfitrió ja és a la topologia",
"connectionExists": "La connexió ja existeix",
"unknown": "Desconegut",
"name": "Nom",
"ip": "IP",
"status": "Estat",
"failedToAddNode": "No s'ha pogut afegir el node",
"sourceDifferentFromTarget": "La font i la destinació han de ser diferents",
"exportJSON": "Exporta JSON",
"importJSON": "Importa JSON",
"terminal": "Terminal",
"fileManager": "Gestor de fitxers",
"tunnel": "Túnel",
"docker": "Docker",
"serverStats": "Mètriques de l'amfitrió",
"hostMetrics": "Mètriques de l'amfitrió",
"noNodes": "Encara no hi ha nodes"
},
"docker": {
"notEnabled": "Docker no està habilitat per a aquest amfitrió",
"validating": "Validant Docker...",
"connecting": "Connectant...",
"error": "Error",
"version": "Docker {{version}}",
"connectionFailed": "No s'ha pogut connectar a Docker",
"containerStarted": "Contenidor {{name}} iniciat",
"failedToStartContainer": "No s'ha pogut iniciar el contenidor {{name}}",
"containerStopped": "El contenidor {{name}} s'ha aturat",
"failedToStopContainer": "No s'ha pogut aturar el contenidor {{name}}",
"containerRestarted": "El contenidor {{name}} s'ha reiniciat",
"failedToRestartContainer": "No s'ha pogut reiniciar el contenidor {{name}}",
"containerPaused": "Contenidor {{name}} en pausa",
"containerUnpaused": "Contenidor {{name}} reactivat",
"failedToTogglePauseContainer": "No s'ha pogut activar o desactivar l'estat de pausa per al contenidor {{name}}",
"containerRemoved": "Contenidor {{name}} eliminat",
"failedToRemoveContainer": "No s'ha pogut eliminar el contenidor {{name}}",
"image": "Imatge",
"ports": "Ports",
"noPorts": "Sense ports",
"start": "Inici",
"confirmRemoveContainer": "Esteu segur que voleu eliminar el contenidor '{{name}}'? Aquesta acció no es pot desfer.",
"runningContainerWarning": "Avís: Aquest contenidor està en execució. Si el suprimiu, primer s'aturarà el contenidor.",
"loadingContainers": "Carregant contenidors...",
"manager": "Gestor de Docker",
"autoRefresh": "Actualització automàtica",
"timestamps": "Marques de temps",
"lines": "Línies",
"filterLogs": "Filtra els registres...",
"refresh": "Actualitza",
"download": "Descarrega",
"clear": "Clar",
"logsDownloaded": "Registres descarregats correctament",
"last50": "Últims 50",
"last100": "Últims 100",
"last500": "Últims 500",
"last1000": "Els últims 1000",
"allLogs": "Tots els registres",
"noLogsMatching": "No hi ha registres que coincideixin amb \"{{query}}\"",
"noLogsAvailable": "No hi ha registres disponibles",
"noContainersFound": "No s'han trobat contenidors",
"noContainersFoundHint": "No hi ha contenidors Docker disponibles en aquest amfitrió.",
"searchPlaceholder": "Cerca contenidors...",
"allStatuses": "Tots els estats",
"stateRunning": "Córrer",
"statePaused": "En pausa",
"stateExited": "Sortit",
"stateRestarting": "Reinici",
"noContainersMatchFilters": "No hi ha contenidors que coincideixin amb els vostres filtres",
"noContainersMatchFiltersHint": "Prova d'ajustar els criteris de cerca o de filtre",
"failedToFetchStats": "No s'han pogut obtenir les estadístiques del contenidor",
"containerNotRunning": "El contenidor no funciona",
"startContainerToViewStats": "Inicia el contenidor per veure les estadístiques",
"loadingStats": "S'estan carregant les estadístiques...",
"errorLoadingStats": "S'ha produït un error en carregar les estadístiques",
"noStatsAvailable": "No hi ha estadístiques disponibles",
"cpuUsage": "Ús de la CPU",
"current": "Actual",
"memoryUsage": "Ús de memòria",
"networkIo": "E/S de xarxa",
"input": "Entrada",
"output": "Sortida",
"blockIo": "Bloc d'E/S",
"read": "Llegir",
"write": "Escriure",
"pids": "PIDs",
"containerInformation": "Informació del contenidor",
"name": "Nom",
"id": "ID",
"state": "Estat",
"containerMustBeRunning": "El contenidor ha d'estar en execució per accedir a la consola.",
"verificationCodePrompt": "Introduïu el codi de verificació",
"totpVerificationFailed": "La verificació TOTP ha fallat. Torna-ho a provar.",
"warpgateVerificationFailed": "L'autenticació de Warpgate ha fallat. Torna-ho a intentar.",
"connectedTo": "Connectat a {{containerName}}",
"disconnected": "Desconnectat",
"consoleError": "Error de consola",
"errorMessage": "Error: {{message}}",
"failedToConnect": "No s'ha pogut connectar al contenidor",
"console": "Consola",
"selectShell": "Selecciona l'intèrpret d'ordres",
"bash": "Bash",
"sh": "sh",
"ash": "cendra",
"connect": "Connecta",
"disconnect": "Desconnecta",
"notConnected": "No connectat",
"clickToConnect": "Feu clic a Connecta per iniciar una sessió de shell",
"connectingTo": "Connectant a {{containerName}}...",
"containerNotFound": "No s'ha trobat el contenidor",
"backToList": "Torna a la llista",
"logs": "Registres",
"stats": "Estadístiques",
"consoleTab": "Consola",
"startContainerToAccess": "Inicieu el contenidor per accedir a la consola"
},
"admin": {
"sectionGeneral": "General",
"sectionOidc": "OIDC",
"sectionSso": "Proveïdors d'SSO",
"ssoAddProvider": "Afegeix un proveïdor",
"ssoDocsLink": "Veure documents",
"ssoProviderDocsLink": "Veure documents",
"ssoNoProviders": "No hi ha cap proveïdor d'SSO configurat.",
"ssoProviderName": "Nom de visualització",
"ssoProviderType": "Tipus de proveïdor",
"ssoDeleteProvider": "Suprimeix el proveïdor",
"ssoDeleteConfirm": "Voleu suprimir aquest proveïdor? Els usuaris associats no podran iniciar la sessió.",
"ssoTypeOidc": "OIDC",
"ssoTypeLdap": "LDAP",
"ssoTypeGithub": "GitHub",
"ssoTypeGoogle": "Google",
"ssoEnabled": "Activat",
"ssoDisabled": "Discapacitat",
"ssoSaveProvider": "Desa el proveïdor",
"ssoTestConnection": "Prova de connexió",
"ssoEditProvider": "Edita el proveïdor",
"ldapHost": "Amfitrió LDAP",
"ldapPort": "Port",
"ldapUseTls": "Utilitza TLS (LDAPS)",
"ldapBindDn": "Vinculació de nom de domini",
"ldapBindPassword": "Contrasenya de vinculació",
"ldapUserSearchBase": "Base de cerca d'usuaris",
"ldapUserSearchFilter": "Filtre de cerca d'usuaris",
"ldapUsernameAttr": "Atribut de nom d'usuari",
"ldapDisplayNameAttr": "Atribut del nom de visualització",
"ldapGroupSearchBase": "Base de cerca de grups",
"ldapAdminGroup": "Grup d'administradors",
"ldapAllowedUsers": "Usuaris permesos",
"sectionUsers": "Usuaris",
"sectionSessions": "Sessions",
"sectionRoles": "Rols",
"sectionDatabase": "Base de dades",
"sectionApiKeys": "Claus API",
"sectionAuditLog": "Registre d'auditoria",
"sectionSsl": "SSL / Xifrem",
"sslDescription": "Emet i renova automàticament un certificat SSL de confiança de Let's Encrypt. Requereix un domini públic i el port 80 o accés DNS.",
"sslDocsLink": "Veure documents SSL",
"sslDomain": "Domini",
"sslDomainPlaceholder": "termix.example.com",
"sslDomainDesc": "El nom de domini públic del certificat.",
"sslEmail": "Correu electrònic",
"sslEmailPlaceholder": "admin@example.com",
"sslEmailDesc": "Correu electrònic de contacte per a les notificacions i el compte de Let's Encrypt.",
"sslChallengeType": "Tipus de repte",
"sslChallengeTypeDesc": "Com demostrar la propietat del domini a Let's Encrypt.",
"sslChallengeHttp": "HTTP (webroot): requereix el port 80 accessible des d'Internet",
"sslChallengeDns": "DNS (Cloudflare): requereix un token d'API de Cloudflare",
"sslCloudflareToken": "Token de l'API de Cloudflare",
"sslCloudflareTokenPlaceholder": "Introduïu el testimoni...",
"sslCloudflareTokenDesc": "Token amb àmbit i permís Zone:DNS:Edit per al vostre domini.",
"sslCertStatus": "Estat del certificat",
"sslCertStatusNone": "Sense certificat",
"sslCertStatusValid": "Vàlid",
"sslCertStatusExpiring": "Caduca aviat",
"sslCertStatusExpired": "Caducat",
"sslCertExpiresAt": "Caduca {{date}}",
"sslLastIssued": "Última emissió {{date}}",
"sslRequestCert": "Emetre / Renovar el certificat",
"sslRequestCertLoading": "Sol·licitant certificat...",
"sslRequestCertSuccess": "Certificat emès i instal·lat correctament",
"sslRequestCertFailed": "La sol·licitud de certificat ha fallat",
"sslSave": "Desa la configuració",
"sslSaved": "Configuració SSL desada",
"sslSaveFailed": "No s'ha pogut desar la configuració SSL",
"sslRequiresDomain": "Cal el domini i el correu electrònic",
"sslInfoNote": "Després d'emetre un certificat, activeu SSL a les variables d'entorn (ENABLE_SSL=true) i reinicieu Termix.",
"auditLogTotal": "{{total}} total d'entrades",
"auditLogEmpty": "No s'han trobat entrades del registre d'auditoria",
"auditLogSuccess": "Èxit",
"auditLogFailed": "Fallat",
"auditLogClearFilters": "Esborra els filtres",
"auditLogPage": "Pàgina {{page}} de {{totalPages}} (total{{total}})",
"auditLogIp": "IP",
"auditLogResourceId": "ID del recurs",
"auditLogFilterUser": "Usuari",
"auditLogFilterAction": "Acció",
"auditLogFilterResourceType": "Tipus de recurs",
"auditLogFilterStatus": "Estat",
"auditLogFilterFrom": "De",
"auditLogFilterTo": "A",
"auditLogFilterAll": "Tot",
"allowRegistration": "Permetre el registre d'usuaris",
"allowRegistrationDesc": "Permet que els nous usuaris s'autoregistrin amb un nom d'usuari i una contrasenya",
"allowPasswordLogin": "Permet l'inici de sessió amb contrasenya",
"allowPasswordLoginDesc": "Inici de sessió amb nom d'usuari/contrasenya",
"oidcAutoProvision": "Autoprovisió OIDC",
"oidcAutoProvisionDesc": "Crea automàticament comptes per a usuaris OIDC/SSO en el primer inici de sessió (independentment de l'interruptor de registre)",
"oidcSilentLoginDefault": "Inici de sessió silenciós a l'OIDC per defecte",
"oidcSilentLoginDefaultDesc": "Redirecciona automàticament a l'inici de sessió d'OIDC en cada visita, ometent completament el formulari d'inici de sessió",
"allowPasswordReset": "Permet el restabliment de la contrasenya",
"allowPasswordResetDesc": "Restableix el codi a través dels registres de Docker",
"commandHistoryEnabled": "Historial de comandaments",
"commandHistoryEnabledDesc": "Permet l'enregistrament de l'historial d'ordres. Quan està desactivat, l'historial no es desa independentment de la configuració de cada host.",
"updateCommandHistoryFailed": "No s'ha pogut actualitzar la configuració de l'historial d'ordres",
"sessionTimeout": "Temps d'espera de la sessió",
"hours": "hores",
"sessionTimeoutRange": "Mín 1 h · Màx 720 h",
"monitoringDefaults": "Monitorització dels valors predeterminats",
"statusCheck": "Comprovació d'estat",
"metrics": "Mètriques",
"sec": "segons",
"logLevel": "Nivell de registre",
"enableGuacamole": "Activa el guacamole",
"enableGuacamoleDesc": "Escriptori remot RDP/VNC",
"enableGuacamoleDocsLink": "Veure documents",
"guacdUrl": "URL de guacd",
"tailscaleApiKey": "Clau API de Tailscale",
"tailscaleApiKeyDescription": "S'utilitza per a la descoberta de dispositius a l'editor d'amfitrions. Genereu una clau a tailscale.com/admin/settings/keys.",
"tailscaleApiKeyDocsLink": "Veure documents",
"oidcDescription": "Configura OpenID Connect per a SSO. Els camps marcats amb un * són obligatoris.",
"oidcDocsLink": "Veure documents",
"oidcClientId": "ID de client",
"oidcClientSecret": "Secret del client",
"oidcAuthUrl": "URL d'autorització",
"oidcIssuerUrl": "URL de l'emissor",
"oidcTokenUrl": "URL del testimoni",
"oidcUserIdentifier": "Ruta d'identificació d'usuari",
"oidcDisplayName": "Camí del nom de visualització",
"oidcScopes": "Àmbits",
"oidcUserinfoUrl": "Substitueix l'URL d'informació de l'usuari",
"oidcAllowedUsers": "Usuaris permesos",
"oidcAllowedUsersDesc": "Un correu electrònic per línia. Deixeu-ho en blanc per permetre-ho tot.",
"oidcAdminGroup": "Grup d'administradors",
"oidcAdminGroupDesc": "Els usuaris d'aquest grup tenen dret d'administrador. Deixeu-ho en blanc per desactivar la sincronització del grup.",
"oidcGroupClaim": "Reclamació de grup",
"oidcGroupClaimDesc": "Opcional. La ruta de reclamació que conté els grups de l'usuari. Per defecte, s'utilitzen grups, rols i, a continuació, grup. Feu servir això per a proveïdors amb una reclamació personalitzada (per exemple, Zitadel).",
"oidcCaCert": "Certificat CA personalitzat",
"oidcCaCertDesc": "Opcional. Certificat CA codificat amb PEM per a proveïdors OIDC que utilitzen una CA privada o autosignada. Deixeu-ho en blanc per utilitzar el magatzem de confiança del sistema.",
"removeOidc": "Elimina",
"usersCount": "{{count}} usuaris",
"createUser": "Crea",
"newRole": "Nou rol",
"roleName": "Nom",
"roleDisplayName": "Nom de visualització",
"roleDescription": "Descripció",
"rolesCount": "rols {{count}}",
"createRole": "Crea",
"creating": "Creant...",
"exportDatabase": "Exporta la base de dades",
"exportDatabaseDesc": "Baixeu una còpia de seguretat de tots els hosts, credencials i configuracions",
"export": "Exporta",
"exporting": "Exportant...",
"importDatabase": "Importa la base de dades",
"importDatabaseDesc": "Restaurar des d'un fitxer de còpia de seguretat .sqlite",
"importDatabaseSelected": "Seleccionat: {{name}}",
"selectFile": "Selecciona un fitxer",
"changeFile": "Canvi",
"import": "Importa",
"importing": "Important...",
"apiKeysCount": "tecles {{count}}",
"apiKeysDocsLink": "Veure documents",
"newApiKey": "Nova clau API",
"apiKeyCreatedWarning": "Clau creada: copia-la ara, no es tornarà a mostrar.",
"apiKeyName": "Nom",
"apiKeyUser": "Usuari",
"apiKeySelectUser": "Selecciona un usuari...",
"apiKeyExpiresAt": "Caduca a",
"createKey": "Crea una clau",
"apiKeyNoExpiry": "Sense caducitat",
"revokedBadge": "REVOCAT",
"authTypeDual": "Doble autenticació",
"authTypeOidc": "OIDC",
"authTypeLocal": "Local",
"adminStatusAdministrator": "Administrador/a",
"adminStatusRegularUser": "Usuari habitual",
"adminBadge": "ADMINISTRADOR",
"systemBadge": "SYS",
"customBadge": "PERSONALITZAT",
"youBadge": "TU",
"sessionsActive": "{{count}} actiu",
"sessionActive": "Actiu: {{time}}",
"sessionExpires": "Caducitat: {{time}}",
"revokeAll": "Tot",
"revokeAllSessionsSuccess": "Totes les sessions per a l'usuari revocades",
"revokeAllSessionsFailed": "No s'han pogut revocar les sessions",
"revokeSessionFailed": "No s'ha pogut revocar la sessió",
"addRole": "Afegeix un rol",
"noCustomRoles": "No s'han definit rols personalitzats",
"removeRoleFailed": "No s'ha pogut eliminar el rol",
"assignRoleFailed": "No s'ha pogut assignar el rol",
"deleteRoleFailed": "No s'ha pogut suprimir el rol",
"userAdminAccess": "Administrador/a",
"userAdminAccessDesc": "Accés complet a tots els paràmetres d'administració",
"userRoles": "Rols",
"revokeAllUserSessions": "Revoca totes les sessions",
"revokeAllUserSessionsDesc": "Forçar el reinici de sessió en tots els dispositius",
"revoke": "Revocar",
"deleteUserWarning": "Eliminar aquest usuari és permanent.",
"deleteUser": "Suprimeix {{username}}",
"deleting": "S'està suprimint...",
"deleteUserFailed": "No s'ha pogut suprimir l'usuari",
"deleteUserSuccess": "L'usuari \"{{username}}\" s'ha suprimit",
"deleteRoleSuccess": "Rol \"{{name}}\" suprimit",
"revokeKeySuccess": "Clau \"{{name}}\" revocada",
"revokeKeyFailed": "No s'ha pogut revocar la clau",
"copiedToClipboard": "Copiat al porta-retalls",
"done": "Fet",
"createUserTitle": "Crea un usuari",
"createUserDesc": "Crea un compte local nou.",
"createUserUsername": "Nom d'usuari",
"createUserPassword": "Contrasenya",
"createUserPasswordHint": "Mínim 6 caràcters.",
"createUserEnterUsername": "Introdueix el nom d'usuari",
"createUserEnterPassword": "Introdueix la contrasenya",
"createUserSubmit": "Crea un usuari",
"editUserTitle": "Gestiona l'usuari: {{username}}",
"editUserDesc": "Edita els rols, l'estat d'administrador, les sessions i la configuració del compte.",
"editUserUsername": "Nom d'usuari",
"editUserAuthType": "Tipus d'autorització",
"editUserAdminStatus": "Estat d'administrador",
"editUserUserId": "ID d'usuari",
"linkAccountTitle": "Enllaçar comptes",
"linkAccountDesc": "Fusiona el compte OIDC {{username}} amb un compte local existent.",
"linkAccountDescLocal": "Enllaça un compte local {{username}} amb un compte només d'OIDC existent.",
"linkAccountWarningTitle": "Això farà:",
"linkAccountEffect1": "Suprimeix el compte només d'OIDC",
"linkAccountEffect2": "Afegeix l'inici de sessió OIDC al compte de destinació",
"linkAccountEffect3": "Permet l'inici de sessió amb OIDC i contrasenya",
"linkAccountTargetUsername": "Nom d'usuari del compte local",
"linkAccountTargetPlaceholder": "Introduïu el nom d'usuari del compte local al qual voleu enllaçar",
"linkAccountOidcUsername": "Nom d'usuari del compte OIDC",
"linkAccountOidcPlaceholder": "Introduïu el nom d'usuari del compte només per a OIDC per fusionar-lo",
"linkAccountOidcNotFound": "No s'ha trobat cap compte només d'OIDC amb aquest nom d'usuari",
"linkAccounts": "Enllaçar comptes",
"linkAccountSuccess": "Comptes enllaçats correctament",
"linkAccountFailed": "No s'han pogut enllaçar els comptes",
"linkAccountInProgress": "Enllaçant...",
"unlinkAccountTitle": "Desvincula l'OIDC",
"unlinkAccountDesc": "Elimina l'autenticació OIDC de {{username}}. Només podran iniciar sessió amb la seva contrasenya.",
"unlinkAccountWarning": "Això eliminarà l'inici de sessió OIDC d'aquest compte. L'usuari ha de tenir una contrasenya definida per continuar iniciant la sessió.",
"unlinkAccount": "Desvincula l'OIDC",
"unlinkAccountInProgress": "Desenllaçant...",
"unlinkAccountSuccess": "S'ha desenllaçat correctament l'OIDC",
"unlinkAccountFailed": "No s'ha pogut desvincular l'OIDC",
"saving": "Desant...",
"updateRegistrationFailed": "No s'ha pogut actualitzar la configuració del registre",
"updatePasswordLoginFailed": "No s'ha pogut actualitzar la configuració d'inici de sessió amb contrasenya",
"cannotDisablePasswordLoginWithTotp": "No es pot desactivar l'inici de sessió amb contrasenya mentre l'autenticació a dues fades (2FA) està activada per a un o més usuaris. Primer cal desactivar-la.",
"updateOidcAutoProvisionFailed": "No s'ha pogut actualitzar la configuració d'aprovisionament automàtic d'OIDC.",
"updateOidcSilentLoginDefaultFailed": "No s'ha pogut actualitzar la configuració d'inici de sessió silenciós de l'OIDC.",
"updatePasswordResetFailed": "No s'ha pogut actualitzar la configuració de restabliment de la contrasenya",
"sessionTimeoutRange2": "El temps d'espera de la sessió ha d'estar entre 1 i 720 hores",
"sessionTimeoutSaved": "S'ha desat el temps d'espera de la sessió",
"sessionTimeoutSaveFailed": "No s'ha pogut desar el temps d'espera de la sessió",
"monitoringIntervalInvalid": "Valors d'interval no vàlids",
"monitoringSaved": "Configuració de monitorització desada",
"monitoringSaveFailed": "No s'ha pogut desar la configuració de monitorització",
"metricsHistoryRetention": "Retenció de l'historial de mètriques",
"metricsHistoryRetentionRange": "D'1 a 90 dies",
"days": "dies",
"guacamoleSaved": "Configuració del guacamole desada",
"guacamoleSaveFailed": "No s'ha pogut desar la configuració del guacamole",
"guacamoleUpdateFailed": "No s'ha pogut actualitzar la configuració del guacamole",
"tailscaleSettingsSaved": "Configuració de la cua d'escala desada",
"tailscaleSettingsSaveFailed": "No s'ha pogut desar la configuració de Tailscale",
"logLevelUpdateFailed": "No s'ha pogut actualitzar el nivell de registre",
"oidcSaved": "Configuració OIDC desada",
"oidcSaveFailed": "No s'ha pogut desar la configuració OIDC.",
"oidcRemoved": "Configuració OIDC eliminada",
"oidcRemoveFailed": "No s'ha pogut eliminar la configuració OIDC.",
"createUserRequired": "Cal un nom d'usuari i una contrasenya",
"createUserPasswordTooShort": "La contrasenya ha de tenir com a mínim 6 caràcters",
"createUserSuccess": "L'usuari \"{{username}}\" ha estat creat",
"createUserFailed": "No s'ha pogut crear l'usuari",
"updateAdminStatusFailed": "No s'ha pogut actualitzar l'estat de l'administrador",
"allSessionsRevoked": "Totes les sessions revocades",
"revokeSessionsFailed": "No s'han pogut revocar les sessions",
"manageUserData": "Gestiona les dades de l'usuari",
"backToUsers": "Torna als usuaris",
"manageTabAccount": "Compte",
"manageTabHosts": "Amfitrions",
"manageTabCredentials": "Credencials",
"manageTabSnippets": "Fragments",
"manageTabSessions": "Sessions",
"manageTabDanger": "Perill",
"manageEditorBack": "Torna a les dades de {{username}}",
"dataLockedBadge": "BLOQUEJAT",
"dataLockedNotice": "Les dades de {{username}}romanen bloquejades fins que inicien la sessió de nou. Els seus amfitrions, credencials i fragments no es poden veure ni editar fins aleshores.",
"resetPasswordTitle": "Restablir contrasenya",
"resetPasswordOidcOnly": "Aquest usuari inicia la sessió a través d'un proveïdor extern i no té contrasenya.",
"resetPasswordPlaceholder": "Nova contrasenya",
"resetPasswordBtn": "Restablir",
"resetPasswordWorking": "Restableix...",
"resetPasswordSuccess": "Restabliment de contrasenya",
"resetPasswordSuccessWiped": "Restabliment de la contrasenya. S'han esborrat les dades xifrades de l'usuari.",
"resetPasswordFailed": "No s'ha pogut restablir la contrasenya",
"resetPasswordConfirmWipe": "{{username}} no ha iniciat sessió des de l'actualització del xifratge, de manera que les seves dades no es poden recuperar. Si restableixes ara, se suprimiran els seus amfitrions, credencials i fragments. Vols continuar?",
"totpSectionTitle": "Autenticació de dos factors",
"totpStatusEnabled": "TOTP està habilitat per a aquest usuari",
"totpStatusDisabled": "El TOTP no està habilitat per a aquest usuari",
"disableTotp": "Desactiva",
"disableTotpConfirm": "Voleu desactivar l'autenticació de dos factors per a {{username}}? Només podran iniciar sessió amb la seva contrasenya.",
"totpDisabledSuccess": "TOTP desactivat",
"totpDisableFailed": "No s'ha pogut desactivar TOTP",
"manageApiKeys": "Claus API",
"apiKeyNamePlaceholder": "Nom de la clau",
"apiKeyCopyNotice": "Copia aquesta clau ara, no es tornarà a mostrar.",
"noApiKeysForUser": "Sense claus API",
"apiKeyDeleteFailed": "No s'ha pogut suprimir la clau de l'API",
"exportUserData": "Exportació de dades",
"exportUserDataDesc": "Baixa els hosts, les credencials i les dades del gestor de fitxers d'aquest usuari com a JSON. Els secrets es desencripten.",
"exportUserDataSuccess": "Dades d'usuari exportades",
"exportUserDataFailed": "No s'han pogut exportar les dades de l'usuari",
"hostsCount": "amfitrions {{count}}",
"addHostForUser": "Afegeix amfitrió",
"noHostsForUser": "Aquest usuari no té amfitrions",
"connectToHost": "Connecta",
"deleteHostConfirm": "Voleu suprimir l'amfitrió \"{{name}}\" que pertany a {{username}}?",
"hostDeletedSuccess": "L'amfitrió s'ha suprimit",
"hostDeleteFailed": "No s'ha pogut suprimir l'amfitrió",
"credentialsCount": "credencials {{count}}",
"addCredentialForUser": "Afegeix credencials",
"noCredentialsForUser": "Aquest usuari no té credencials",
"deleteCredentialConfirm": "Voleu suprimir la credencial \"{{name}}\" que pertany a {{username}}?",
"credentialDeletedSuccess": "Credencial suprimida",
"credentialDeleteFailed": "No s'ha pogut suprimir la credencial",
"snippetsCount": "{{count}} fragments",
"addSnippetForUser": "Afegeix un fragment",
"noSnippetsForUser": "Aquest usuari no té fragments",
"snippetRequiredFields": "El nom i el contingut del fragment són obligatoris",
"snippetNamePlaceholder": "Nom del fragment",
"snippetContentPlaceholder": "Contingut de l'ordre",
"snippetFolderPlaceholder": "Carpeta (opcional)",
"snippetSaved": "Fragment desat",
"snippetSaveFailed": "No s'ha pogut desar el fragment",
"deleteSnippetConfirm": "Voleu suprimir el fragment \"{{name}}\" pertanyent a {{username}}?",
"snippetDeletedSuccess": "Fragment suprimit",
"snippetDeleteFailed": "No s'ha pogut suprimir el fragment",
"noSessionsForUser": "No hi ha sessions actives",
"deleteUserDangerDesc": "Suprimeix permanentment {{username}} i totes les seves dades (amfitrions, credencials, fragments, historial). Aquesta acció no es pot desfer.",
"deleteUserConfirm": "Voleu suprimir permanentment {{username}} i totes les seves dades?",
"deleteUserAdminBlocked": "Treu l'estatus d'administrador abans de suprimir aquest usuari.",
"createRoleRequired": "El nom i el nom de visualització són obligatoris",
"createRoleSuccess": "S'ha creat el rol \"{{name}}\"",
"createRoleFailed": "No s'ha pogut crear el rol",
"apiKeyNameRequired": "El nom de la clau és obligatori",
"apiKeyUserRequired": "Cal l'ID d'usuari",
"apiKeyCreatedSuccess": "Clau API \"{{name}}\" creada",
"apiKeyCreateFailed": "No s'ha pogut crear la clau de l'API",
"exportSuccess": "La base de dades s'ha exportat correctament",
"exportFailed": "L'exportació de la base de dades ha fallat",
"importSelectFile": "Si us plau, seleccioneu primer un fitxer",
"importCompleted": "Importació completada: {{total}} elements importats, {{skipped}} omesos",
"importFailed": "La importació ha fallat: {{error}}",
"importError": "La importació de la base de dades ha fallat",
"sectionHostDefaults": "Valors predeterminats de l'amfitrió",
"hostDefaultsDesc": "La configuració s'aplica automàticament en crear un amfitrió nou. Els amfitrions individuals encara poden substituir-la.",
"hostDefaultsSocks5": "Proxy SOCKS5",
"hostDefaultsUseSocks5": "Habilita el servidor intermediari SOCKS5",
"hostDefaultsUseSocks5Desc": "Preompliu el proxy SOCKS5 a tots els hosts nous",
"hostDefaultsSocks5Host": "Amfitrió/port del proxy",
"hostDefaultsSocks5Username": "Nom d'usuari del proxy",
"hostDefaultsSocks5Password": "Contrasenya del servidor intermediari",
"hostDefaultsMetrics": "Mètriques de l'amfitrió",
"hostDefaultsMetricsEnabled": "Activa les mètriques",
"hostDefaultsMetricsEnabledDesc": "Recopila la CPU, la memòria i altres estadístiques dels nous amfitrions per defecte",
"hostDefaultsStatusCheckEnabled": "Activa la comprovació d'estat",
"hostDefaultsStatusCheckEnabledDesc": "Sondeja l'estat en línia/fora de línia dels nous amfitrions per defecte",
"hostDefaultsTerminal": "Terminal",
"hostDefaultsSessionLogging": "Registre de sessions",
"hostDefaultsSessionLoggingDesc": "Enregistra les sessions de terminal en els nous hosts per defecte",
"hostDefaultsCommandHistory": "Historial de comandaments",
"hostDefaultsCommandHistoryDesc": "Fes un seguiment de l'historial d'ordres en els nous amfitrions per defecte",
"hostDefaultsSaved": "Els valors predeterminats de l'amfitrió s'han desat",
"hostDefaultsSaveFailed": "No s'han pogut desar els valors predeterminats de l'amfitrió",
"rolePermissions": {
"count": "permisos {{count}}",
"editAction": "Edita els permisos",
"loadError": "No s'ha pogut carregar el catàleg de permisos",
"saved": "Permisos de rol desats",
"saveError": "No s'han pogut desar els permisos de rol",
"save": "Desa",
"saving": "Desant..."
}
},
"newUi": {
"sidebar": {
"quickConnect": {
"hostLabel": "Amfitrió",
"hostPlaceholder": "192.168.1.1 o example.com",
"portLabel": "Port",
"portPlaceholder": "22",
"usernameLabel": "Nom d'usuari",
"usernamePlaceholder": "nom d'usuari",
"authLabel": "Aut.",
"passwordLabel": "Contrasenya",
"passwordPlaceholder": "contrasenya",
"privateKeyLabel": "Clau privada",
"privateKeyPlaceholder": "Enganxa la clau privada...",
"credentialLabel": "Credencial",
"credentialPlaceholder": "Selecciona una credencial desada",
"connectToTerminal": "Connecta't al terminal",
"connectToFiles": "Connecta't a fitxers"
},
"history": {
"noTerminalSelected": "No s'ha seleccionat cap terminal",
"noTerminalSelectedHint": "Obriu una pestanya de terminal SSH per veure el seu historial d'ordres",
"searchPlaceholder": "Historial de cerca...",
"clearAll": "Esborra-ho tot",
"noHistoryEntries": "Sense entrades a l'historial",
"trackingDisabled": "El seguiment de l'historial està desactivat",
"trackingDisabledHint": "Activeu-ho a la configuració del terminal de l'amfitrió."
},
"sshTools": {
"keyRecordingTitle": "Enregistrament de claus",
"recordToTerminals": "Registre als terminals",
"selectAll": "Tot",
"selectNone": "Cap",
"noTerminalTabsOpen": "No hi ha pestanyes de terminal obertes",
"selectTerminalsAbove": "Seleccioneu els terminals anteriors",
"broadcastInputPlaceholder": "Escriu aquí per emetre les pulsacions de tecles...",
"fillPassword": "Empleneu la contrasenya",
"fillPasswordSuccess": "Contrasenya introduïda al(s) terminal(s) {{count}}",
"fillPasswordMissing": "No hi ha cap contrasenya desada per al(s) terminal(s) seleccionat(s) {{count}}",
"stopRecording": "Atura l'enregistrament",
"startRecording": "Comença a gravar",
"settingsTitle": "Configuració",
"enableRightClickCopyPaste": "Activa la funció de copiar/enganxar amb el clic dret"
},
"splitScreen": {
"layoutTitle": "Disseny",
"selectLayoutAbove": "Selecciona un disseny a dalt",
"selectLayoutHint": "Trieu quants panells voleu mostrar",
"panesTitle": "Panells",
"openTabsTitle": "Obre les pestanyes",
"dragTabsHint": "Arrossegueu pestanyes als panells superiors o feu servir Assignació ràpida",
"dropHere": "Deixa anar aquí",
"emptyPane": "Buit",
"dashboard": "Tauler de control",
"clearSplitScreen": "Pantalla dividida clara",
"quickAssign": "Assignació ràpida",
"alreadyAssigned": "Panell {{index}}",
"splitTab": "Pestanya dividida",
"addToSplit": "Afegeix a Dividir",
"removeFromSplit": "Elimina de Split",
"assignToPane": "Assigna al panell",
"hotkeysTitle": "Dreceres de teclat",
"hotkeysSplitRight": "Activa/desactiva la divisió bidireccional",
"hotkeysSplitBelow": "Activa/desactiva la divisió en 3 vies",
"hotkeysNavigatePane": "Navega pels panells",
"hotkeysNextTab": "Pestanya següent",
"hotkeysPrevTab": "Pestanya anterior"
},
"snippets": {
"title": "Fragments",
"createSnippetTitle": "Crea un fragment",
"createSnippetDescription": "Crea un nou fragment d'ordre per a una execució ràpida",
"nameLabel": "Nom",
"namePlaceholder": "p. ex., reiniciar Nginx",
"descriptionLabel": "Descripció",
"descriptionPlaceholder": "Descripció opcional",
"optional": "Opcional",
"folderLabel": "Carpeta",
"noFolder": "Sense carpeta (Sense categoria)",
"commandLabel": "Comandament",
"commandPlaceholder": "p. ex., sudo systemctl reinicia nginx",
"cancel": "Cancel·la",
"createSnippetButton": "Crea un fragment",
"createFolderTitle": "Crea una carpeta",
"createFolderDescription": "Organitza els teus fragments en carpetes",
"folderNameLabel": "Nom de la carpeta",
"folderNamePlaceholder": "p. ex., ordres del sistema, scripts de Docker",
"folderColorLabel": "Color de la carpeta",
"folderIconLabel": "Icona de carpeta",
"previewLabel": "Vista prèvia",
"folderNameFallback": "Nom de la carpeta",
"createFolderButton": "Crea una carpeta",
"targetTerminals": "Terminals de destinació",
"selectAll": "Tot",
"selectNone": "Cap",
"noTerminalTabsOpen": "No hi ha pestanyes de terminal obertes",
"searchPlaceholder": "Fragments de cerca...",
"newSnippet": "Nou fragment",
"newFolder": "Nova carpeta",
"run": "Corre",
"noSnippetsInFolder": "No hi ha fragments en aquesta carpeta",
"uncategorized": "Sense categoria",
"editSnippetTitle": "Edita el fragment",
"editSnippetDescription": "Actualitza aquest fragment d'ordres",
"saveSnippetButton": "Desa els canvis",
"createSuccess": "Fragment creat correctament",
"createFailed": "No s'ha pogut crear el fragment",
"updateSuccess": "Fragment actualitzat correctament",
"updateFailed": "No s'ha pogut actualitzar el fragment",
"deleteFailed": "No s'ha pogut suprimir el fragment",
"folderCreateSuccess": "Carpeta creada correctament",
"folderCreateFailed": "No s'ha pogut crear la carpeta",
"editFolderTitle": "Edita la carpeta",
"editFolderDescription": "Canvia el nom o l'aspecte d'aquesta carpeta",
"saveFolderButton": "Desa els canvis",
"editFolder": "Edita la carpeta",
"deleteFolder": "Suprimeix la carpeta",
"folderDeleteSuccess": "S'ha suprimit la carpeta \"{{name}}\"",
"folderDeleteFailed": "No s'ha pogut suprimir la carpeta",
"folderEditSuccess": "La carpeta s'ha actualitzat correctament",
"folderEditFailed": "No s'ha pogut actualitzar la carpeta",
"confirmRunMessage": "Executar \"{{name}}\"?",
"confirmRunButton": "Corre",
"runSuccess": "Ha executat \"{{name}}\" en terminals {{count}}",
"copySuccess": "S'ha copiat \"{{name}}\" al porta-retalls",
"shareTitle": "Compartir fragment",
"shareUser": "Usuari",
"shareRole": "Rol",
"selectUser": "Selecciona un usuari...",
"selectRole": "Selecciona un rol...",
"shareSuccess": "Fragment compartit correctament",
"shareFailed": "No s'ha pogut compartir el fragment",
"revokeSuccess": "Accés revocat",
"revokeFailed": "No s'ha pogut revocar l'accés",
"currentAccess": "Accés actual",
"shareLoadError": "No s'han pogut carregar les dades compartides",
"loading": "S'està carregant...",
"close": "Tanca",
"reorderFailed": "No s'ha pogut desar l'ordre del fragment",
"importExport": "Importació / Exportació",
"exportBtn": "Exporta JSON",
"importBtn": "Importa JSON",
"exportSuccess": "Fragments exportats correctament",
"exportFailed": "No s'han pogut exportar els fragments",
"importTitle": "Importa fragments",
"importDescription": "Importa fragments i carpetes des d'un fitxer JSON exportat per Termix",
"importDropOrClick": "Deixa anar un fitxer JSON aquí o fes clic per navegar",
"importSelectedFile": "Seleccionat: {{name}}",
"importOverwrite": "Sobreescriu els fragments existents amb el mateix nom i carpeta",
"importStartBtn": "Importa",
"importSuccess": "Importació completada: {{snippets}} fragment(s) afegit(s), {{updated}} actualitzat, {{skipped}} omès, {{folders}} carpeta(es) afegida(es)",
"importFailed": "No s'han pogut importar els fragments",
"importInvalidFile": "Fitxer no vàlid: s'esperava un objecte JSON amb fragments o matrius de carpetes.",
"targetHostsLabel": "Amfitrions de destinació",
"targetHostsHint": "Assigneu hosts per executar aquest fragment directament sense un terminal obert.",
"noHostsAvailable": "No hi ha cap amfitrió configurat",
"clearTargetHosts": "Esborra-ho tot",
"hasTargetHosts": "Té amfitrions de destinació",
"runOnTargets": "Executar en objectius",
"directRunSuccess": "Ha executat \"{{name}}\" en {{count}} host(s)",
"directRunPartialFail": "\"{{name}}\" ha fallat en un o més amfitrions",
"executionResultTitle": "Resultats de l'execució: {{name}}",
"executionResultDescription": "Sortida de l'execució del fragment a cada amfitrió de destinació.",
"executionSuccess": "Èxit",
"executionFailed": "Fallat"
},
"userProfile": {
"donateTitle": "Mantingueu viva la Termix",
"donateDescription": "Termix és gratuït, s'allotja per si mateix i només l'han creat unes poques persones en el seu temps lliure. Si t'ha estalviat temps o diners, una donació de criptomonedes t'ajudarà a mantenir-lo en marxa.",
"donateMilestones": "Els donatius ajuden a finançar el temps per investigar i aprendre què cal per construir suport per a SAML, Kubernetes i Agents. Vegeu el progrés i feu una donació.",
"donateButton": "Dona criptomonedes",
"storageModeLocal": "Navegador",
"storageModeCloud": "Base de dades",
"storageModeDescription": "El navegador només emmagatzema la configuració en aquest navegador. La base de dades es sincronitza amb el servidor i es carrega en qualsevol dispositiu.",
"resetToDefaults": "Restableix els valors predeterminats",
"resetToDefaultsSuccess": "S'han restablert els valors predeterminats.",
"storageModeSwitch": "Emmagatzematge de preferències",
"sectionAccount": "Compte",
"sectionAppearance": "Aspecte",
"sectionSecurity": "Seguretat",
"sectionApiKeys": "Claus API",
"sectionC2sTunnels": "Túnels C2S",
"usernameLabel": "Nom d'usuari",
"roleLabel": "Rol",
"roleAdministrator": "Administrador/a",
"authMethodLabel": "Mètode d'autenticació",
"authMethodLocal": "Local",
"twoFaLabel": "2FA",
"twoFaOn": "Activat",
"twoFaOff": "Desactivat",
"versionLabel": "Versió",
"betaProgramTitle": "Programa Beta",
"betaProgramDescription": "Prova les properes funcions aviat amb l'etiqueta Docker setmanalment disponible :beta. Inestable, no per a producció.",
"betaProgramFeedback": "Has trobat un error? Informa'n aquí.",
"betaProgramLearnMore": "Més informació",
"deleteAccount": "Suprimeix el compte",
"deleteAccountDescription": "Elimina el teu compte permanentment",
"changeServerDescription": "Canvia a un altre servidor de backend de Termix",
"deleteButton": "Suprimeix",
"deleteAccountPermanent": "Aquesta acció és permanent i no es pot desfer.",
"deleteAccountWarning": "Totes les sessions, els amfitrions, les credencials i la configuració s'eliminaran permanentment.",
"confirmPasswordDeletePlaceholder": "Introdueix la teva contrasenya per confirmar",
"languageLabel": "Llengua",
"themeLabel": "Tema",
"fontSizeLabel": "Mida de la lletra",
"accentColorLabel": "Color d'accent",
"settingsTerminal": "Terminal",
"commandAutocomplete": "Autocompletar ordres",
"commandAutocompleteDesc": "Mostra l'autocompleció mentre s'escriu",
"terminalLinkBehavior": "Clic d'enllaç del terminal",
"terminalLinkBehaviorDesc": "Comportament predeterminat en fer clic a enllaços al terminal",
"historyTracking": "Seguiment de l'historial",
"historyTrackingDesc": "Comandes del terminal de pista",
"commandPalette": "Paleta d'ordres",
"commandPaletteDesc": "Activa la drecera de teclat",
"reopenTabsOnLogin": "Reobrir pestanyes en iniciar sessió",
"reopenTabsOnLoginDesc": "Restaura les pestanyes obertes quan inicies la sessió o actualitzes la pàgina, fins i tot des d'un altre dispositiu",
"confirmTabClose": "Confirma el tancament de la pestanya",
"confirmTabCloseDesc": "Pregunta abans de tancar pestanyes del terminal",
"settingsSidebar": "Barra lateral",
"showHostTags": "Mostra les etiquetes de l'amfitrió",
"showHostTagsDesc": "Mostra les etiquetes a la llista d'amfitrions",
"hostTrayOnClick": "Feu clic per expandir les accions de l'amfitrió",
"hostTrayOnClickDesc": "Mostra sempre els botons de connexió; fes clic per ampliar les opcions de gestió en comptes de passar el cursor per sobre",
"compactHostView": "Vista compacta de l'amfitrió",
"compactHostViewDesc": "Redueix cada host a una sola línia que només mostri el seu nom i adreça",
"statusColors": "Colors d'estat real",
"statusColorsDesc": "Utilitzeu verd/vermell per a l'estat en línia/fora de línia en lloc del color d'accent.",
"pinAppRail": "Pin App Rail",
"pinAppRailDesc": "Mantingueu el rail de l'aplicació de la barra lateral esquerra sempre expandit en comptes d'expandir-se en passar el cursor per sobre",
"expandAppRailOnHover": "Expandeix l'aplicació Rail en passar el cursor per sobre",
"expandAppRailOnHoverDesc": "Permet que el carril de l'aplicació de la barra lateral esquerra s'expandeixi quan el punter es mou per sobre",
"settingsNavigation": "Navegació",
"navigationTabsDesc": "Trieu quines pestanyes apareixen al rail de l'aplicació",
"settingsSnippets": "Fragments",
"foldersCollapsed": "Carpetes replegades",
"foldersCollapsedDesc": "Replega les carpetes per defecte",
"confirmExecution": "Confirma l'execució",
"confirmExecutionDesc": "Confirma abans d'executar fragments",
"settingsUpdates": "Actualitzacions",
"disableUpdateChecks": "Desactiva les comprovacions d'actualització",
"disableUpdateChecksDesc": "Deixa de buscar actualitzacions",
"totpAuthenticator": "Autenticador TOTP",
"totpEnabled": "2FA està activat",
"totpDisabled": "Afegeix seguretat d'inici de sessió addicional",
"disable": "Desactiva",
"enable": "Activa",
"setupTotp": "Configura TOTP",
"qrCode": "Codi QR",
"totpInstructions": "Escaneja el codi QR o introdueix el secret a l'aplicació d'autenticació i, a continuació, introdueix el codi de 6 dígits.",
"totpCodePlaceholder": "000000",
"verify": "Verifica",
"changePassword": "Canvia la contrasenya",
"currentPasswordLabel": "Contrasenya actual",
"currentPasswordPlaceholder": "Contrasenya actual",
"newPasswordLabel": "Nova contrasenya",
"newPasswordPlaceholder": "Nova contrasenya",
"confirmPasswordLabel": "Confirma la nova contrasenya",
"confirmPasswordPlaceholder": "Confirma la nova contrasenya",
"updatePassword": "Actualitza la contrasenya",
"createApiKeyTitle": "Crea una clau API",
"createApiKeyDescription": "Genera una nova clau API per a l'accés programàtic.",
"apiKeyNameLabel": "Nom",
"apiKeyNamePlaceholder": "p. ex., canonada de CI",
"expiryDateLabel": "Data de caducitat",
"optional": "opcional",
"cancel": "Cancel·la",
"createKey": "Crea una clau",
"apiKeyCount": "tecles {{count}}",
"newKey": "Nova clau",
"noApiKeys": "Encara no hi ha claus API.",
"apiKeyActive": "Actiu",
"apiKeyUsageHint": "Inclou la teva clau a la",
"apiKeyUsageHintHeader": "capçalera.",
"apiKeyPermissionsHint": "Les claus hereten els permisos de l'usuari que les crea.",
"roleUser": "Usuari",
"authMethodDual": "Doble autenticació",
"authMethodOidc": "OIDC",
"totpSetupFailed": "No s'ha pogut iniciar la configuració del TOTP",
"totpEnter6Digits": "Introduïu un codi de 6 dígits",
"totpEnabledSuccess": "Autenticació de dos factors activada",
"totpInvalidCode": "Codi no vàlid, si us plau, torna-ho a intentar.",
"totpDisableInputRequired": "Introdueix el teu codi TOTP o contrasenya",
"totpDisabledSuccess": "Autenticació de dos factors desactivada",
"totpDisableFailed": "No s'ha pogut desactivar la 2FA",
"totpDisableTitle": "Desactiva la 2FA",
"totpDisablePlaceholder": "Introduïu el codi TOTP o la contrasenya",
"totpDisableConfirm": "Desactiva la 2FA",
"totpContinueVerify": "Continua a verificar",
"totpVerifyTitle": "Verifica el codi",
"totpBackupTitle": "Codis de còpia de seguretat",
"totpDownloadBackup": "Baixa els codis de còpia de seguretat",
"passkeys": "Claus d'accés",
"passkeysDesc": "Utilitzeu les credencials de WebAuthn/FIDO2 per iniciar la sessió sense contrasenya",
"passkeyName": "Nom de la clau d'accés",
"passkeyUvPreferred": "Preferit",
"passkeyUvRequired": "Obligatori",
"passkeyUvDiscouraged": "Desanimat",
"addPasskey": "Afegeix una contrasenya",
"noPasskeys": "No hi ha cap clau d'accés registrada.",
"passkeyAdded": "Clau d'accés afegida",
"passkeyAddFailed": "No s'ha pogut afegir la contrasenya",
"passkeyDeleted": "Clau d'accés suprimida",
"passkeyDeleteFailed": "No s'ha pogut suprimir la clau d'accés",
"done": "Fet",
"secretCopied": "Secret copiat al porta-retalls",
"apiKeyNameRequired": "El nom de la clau és obligatori",
"apiKeyCreated": "Clau API \"{{name}}\" creada",
"apiKeyCreateFailed": "No s'ha pogut crear la clau de l'API",
"apiKeyUser": "Usuari",
"apiKeyExpires": "Caduca",
"apiKeyRevoked": "Clau API \"{{name}}\" revocada",
"apiKeyRevokeFailed": "No s'ha pogut revocar la clau de l'API",
"passwordFieldsRequired": "Calen contrasenyes actuals i noves",
"passwordMismatch": "Les contrasenyes no coincideixen",
"passwordTooShort": "La contrasenya ha de tenir com a mínim 6 caràcters",
"passwordUpdated": "La contrasenya s'ha actualitzat correctament",
"passwordUpdateFailed": "No s'ha pogut actualitzar la contrasenya",
"deletePasswordRequired": "Cal una contrasenya per eliminar el vostre compte",
"deleteFailed": "No s'ha pogut suprimir el compte",
"deleting": "S'està suprimint...",
"colorPickerTooltip": "Obre el selector de colors",
"themeSystem": "Sistema",
"themeLight": "Llum",
"themeDark": "Fosc",
"themeDracula": "Dràcula",
"themeCatppuccin": "Catpuccina",
"themeNord": "Nord",
"themeSolarized": "Solaritzat",
"themeTokyoNight": "Nit de Tòquio",
"themeOneDark": "Una foscor",
"themeGruvbox": "Gruvbox"
}
}
},
"tmuxMonitor": {
"title": "Monitor Tmux",
"failedToLoadHosts": "No s'han pogut carregar els amfitrions",
"failedToLoad": "No s'han pogut carregar les sessions tmux",
"tmuxUnavailable": "tmux no està instal·lat en aquest host",
"noSessions": "No hi ha sessions tmux en aquest host.",
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"attached": "Adjuntat",
"detached": "Desconnectat",
"attach": "Adjunta",
"editTags": "Edita les etiquetes",
"tagsHint": "Etiquetes separades per comes (per exemple, YOLO, laboratori, formació)",
"tagsSaved": "Etiquetes desades",
"tagsSaveFailed": "No s'han pogut desar les etiquetes",
"searchPlaceholder": "Cerca resultats entre sessions...",
"searchResults": "coincidències {{count}}",
"searchFailed": "La cerca ha fallat",
"selectPaneHint": "Seleccioneu un panell per previsualitzar-ne el resultat",
"closePreview": "Tanca la vista prèvia",
"newSession": "Nova sessió",
"newSessionHint": "Nom de la sessió (lletres, dígits, _ @ % + = -)",
"newSessionPlaceholder": "la meva sessió",
"create": "Crea",
"sessionCreated": "S'ha creat la sessió \"{{name}}\"",
"sessionCreateFailed": "No s'ha pogut crear la sessió",
"splitRight": "Dividir a la dreta",
"splitDown": "Dividir",
"splitFailed": "No s'ha pogut dividir el panell",
"newWindow": "Nova finestra",
"windowCreateFailed": "No s'ha pogut crear la finestra",
"attachSessionTooltip": "Adjunta a {{session}}",
"refresh": "Actualitza",
"refreshFailed": "No s'han pogut actualitzar les sessions",
"collapseAll": "Replega-ho tot",
"expandAll": "Expandeix-ho tot",
"moreActions": "Més accions",
"sessionStats": "Estadístiques de sessió",
"renameSessionTitle": "Canvia el nom de la sessió \"{{name}}\"",
"rename": "Canvia el nom",
"sessionRenamed": "La sessió s'ha rebatejat com a \"{{name}}\"",
"sessionRenameFailed": "No s'ha pogut canviar el nom de la sessió",
"editTagsTitle": "Edita les etiquetes per a \"{{name}}\"",
"killPane": "Tauler de tancament",
"resizeTree": "Arrossega per canviar la mida — fes doble clic per restablir",
"reattach": "Torna a connectar (corregeix una vista distorsionada)",
"killWindow": "Finestra de tancament",
"killWindowTitle": "Finestra de tancament {{index}} de \"{{session}}\"?",
"killWindowBody": "Tots els panells i processos d'aquesta finestra finalitzaran. Tancar l'última finestra finalitza la sessió.",
"windowKillFailed": "No s'ha pogut tancar la finestra",
"statusActivity": "Activitat",
"statusWindows": "Finestres",
"statusPanes": "panells",
"statusTags": "Etiquetes",
"killPaneTitle": "Tanca el panell {{id}}?",
"killPaneBody": "El procés que s'executa en aquest panell finalitzarà. Si tanqueu l'últim panell, se'n tanca la finestra.",
"paneKillFailed": "No s'ha pogut tancar el panell",
"killSessionTitle": "Tancar sessió \"{{name}}\"?",
"killSessionBody": "Totes les finestres i els processos en execució d'aquesta sessió es tancaran. Això no es pot desfer.",
"kill": "Matar",
"sessionKilled": "La sessió \"{{name}}\" ha estat cancel·lada",
"sessionKillFailed": "No s'ha pogut tancar la sessió",
"hostUnreachable": "No s'ha pogut connectar amb l'amfitrió. Comproveu que estigui en línia i accessible.",
"noServer": "No hi ha cap servidor tmux en execució en aquest host.",
"searchTruncated": "Resultats parcials: la cerca cobreix les últimes {{lines}} línies de cada panell i com a màxim {{panes}} panells.",
"closeSearchResults": "Tanca els resultats de la cerca",
"retry": "Torna-ho a intentar",
"noHosts": "No hi ha hosts SSH disponibles",
"noHostsHint": "Activeu l'opció Monitor de Tmux en un host SSH (Gestor d'amfitrions → pestanya Terminal) per monitoritzar les seves sessions tmux.",
"tmuxInstallHint": "Instal·leu-lo a l'amfitrió amb:",
"attachTooltip": "Obre un terminal a {{host}}",
"attachTooltipPane": "Obre un terminal a {{host}} — sessió tmux {{session}}",
"timeJustNow": "ara mateix",
"timeMinutes": "fa {{count}}minuts",
"timeHours": "fa {{count}}h",
"timeDays": "fa {{count}}dies"
},
"mobileKeyboard": {
"shift": "Majúscules",
"ctrl": "Ctrl",
"esc": "Esc",
"tab": "Pestanya",
"backTab": "⇥",
"arrowUp": "Fletxa amunt",
"arrowDown": "Fletxa avall",
"arrowLeft": "Fletxa esquerra",
"arrowRight": "Fletxa dreta",
"home": "Inici",
"end": "Final",
"pageUp": "Re Pàg",
"pageDown": "Av Pàg",
"delete": "Eliminar",
"editQuickKeys": "Edita les tecles ràpides",
"quickKeysTitle": "Tecles ràpides",
"quickKeysDesc": "Toca × per eliminar. Admet fins a 8 caràcters.",
"quickKeyPlaceholder": "p. ex. sudo ",
"addQuickKey": "Afegeix",
"removeQuickKey": "Elimina",
"resetDefaults": "Restableix els valors predeterminats",
"done": "Fet"
},
"serial": {
"title": "Sèrie",
"portLabel": "Port",
"portPlaceholder": "/dev/ttyUSB0 o COM3",
"baudRateLabel": "velocitat de bauds",
"dataBitsLabel": "Dades",
"stopBitsLabel": "Atura",
"parityLabel": "Paritat",
"parityNone": "Cap",
"parityEven": "Fins i tot",
"parityOdd": "Estrany",
"connect": "Connecta't al serial",
"disconnect": "Desconnecta",
"refreshPorts": "Actualitza els ports",
"connected": "Connectat a {{path}} a {{baud}} baud",
"disconnected": "Port sèrie desconnectat",
"connectionError": "No s'ha pogut obrir el port sèrie",
"wsError": "Error de WebSocket",
"errorNoServerUrl": "No s'ha configurat cap URL del servidor",
"notSupportedTitle": "Número de sèrie no compatible",
"notSupported": "Les connexions en sèrie requereixen un navegador compatible amb l'API Web Serial (Chrome, Edge o Firefox 151+) o l'aplicació d'escriptori Termix.",
"hideHint": "Podeu amagar la pestanya Sèrie a Perfil d'usuari > Aparença > Barra lateral > Navegació.",
"browserPickerHint": "Feu clic a Connecta i el navegador obrirà un selector de ports per triar el dispositiu."
},
"metricsHistory": {
"title": "Historial de mètriques",
"historySuffix": "Història",
"cpuMemoryDisk": "CPU / Memòria / Disc",
"network": "Xarxa",
"download": "RX",
"upload": "TX",
"noData": "No hi ha dades històriques disponibles per a aquest interval de temps.",
"custom": "Personalitzat",
"to": "a",
"apply": "Aplica",
"viewHistory": "Veure l'historial"
},
"alerts": {
"tabFirings": "Alertes",
"tabRules": "Regles",
"tabChannels": "Canals",
"noFirings": "Sense alertes no confirmades",
"noRules": "No hi ha cap regla d'alerta configurada",
"noChannels": "No hi ha canals de notificació configurats",
"rulesDesc": "Les regles d'alerta activen les notificacions",
"channelsDesc": "On s'envien les notificacions d'alerta",
"acknowledge": "Reconeix",
"ackAll": "Ack Tot",
"allAcknowledged": "Totes les alertes han estat reconegudes",
"ackFailed": "No s'ha pogut confirmar l'alerta",
"ackAllFailed": "No s'han pogut reconèixer totes les alertes",
"showAcknowledged": "Mostra-ho tot",
"hideAcknowledged": "Amaga l'acusat",
"addChannel": "Afegeix un canal",
"editChannel": "Edita el canal",
"channelName": "Nom",
"channelType": "Tipus",
"channelNameRequired": "El nom és obligatori",
"webhookUrl": "URL",
"webhookUrlRequired": "Cal l'URL del webhook",
"webhookDesc": "POST JSON payload a aquesta URL en cada activació d'alerta",
"ntfyServer": "URL del servidor",
"ntfyTopic": "Tema",
"ntfyTopicRequired": "El tema és obligatori",
"ntfyToken": "Token d'accés (opcional)",
"channelSaveFailed": "No s'ha pogut desar el canal",
"test": "Prova",
"testSent": "Notificació de prova enviada",
"testFailed": "La notificació de prova ha fallat",
"addRule": "Afegeix una regla d'alerta",
"editRule": "Edita la regla d'alerta",
"ruleName": "Nom de la regla",
"ruleNameRequired": "El nom és obligatori",
"triggerType": "Disparador",
"thresholdValue": "Llindar (%)",
"durationSeconds": "Durada (segons, 0 = dispara immediatament)",
"cooldownMinutes": "Refredament (minuts)",
"channels": "Canals de notificació",
"noChannelsHint": "Afegiu primer els canals a la pestanya Canals",
"ruleSaveFailed": "No s'ha pogut desar la regla"
}
}