Files
Termix/src/ui/locales/translated/fi_FI.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
180 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": "Termix-tunnus",
"loadFailed": "Termix-tunnuksen lataaminen epäonnistui",
"claimTitle": "Lunasta Termix-tunnuksesi",
"claimIntro": "Valitse yksilöllinen käyttäjätunnus. SSH-julkiset avaimesi julkaistaan julkisessa URL-osoitteessa, jonka voit lisätä minkä tahansa palvelimen authorized_keys-tiedostoon.",
"handleLabel": "Kahva",
"handlePlaceholder": "Alice",
"checking": "Tarkistetaan…",
"available": "Saatavilla",
"taken": "Jo otettu",
"invalidHandle": "Vain pienet kirjaimet, numerot - ja _",
"descriptionLabel": "Kuvaus (valinnainen)",
"descriptionPlaceholder": "Työkannettava ja puhelimen avaimet",
"create": "Luo Termix-tunnus",
"created": "Termix-tunnus luotu",
"createFailed": "Termix-tunnuksen luominen epäonnistui",
"deleteConfirm": "Poistetaanko Termix-tunnuksesi ja kaikki julkaistut avaimet? Määrittämäsi palvelimet säilyttävät avaimet, kunnes poistat ne manuaalisesti.",
"deleted": "Termix-tunnus poistettu",
"deleteFailed": "Termix-tunnuksen poistaminen epäonnistui",
"copyFailed": "Kopiointi epäonnistui",
"resolverUrlLabel": "Julkisen ratkaisijan URL-osoite",
"provisionLabel": "Palvelimen valmistelu",
"publishTitle": "Julkaise julkinen avain",
"generate": "Luo",
"generateTooltip": "Luo Ed25519-avainpari — julkaisee julkisen avaimen ja lataa yksityisen avaimen laitteellesi",
"saveToVault": "Tallenna tunnistetietoihin",
"keyPlaceholder": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... käyttäjä@isäntä",
"labelPlaceholder": "Tarra (valinnainen)",
"add": "Lisätä",
"importFromCredential": "Tai tuo tallennetuista tunnistetiedoista",
"keyPublished": "Avain julkaistu",
"addKeyFailed": "Avaimen lisääminen epäonnistui",
"generatedSaved": "Avainpari luotiin ja tallennettiin tunnistetietoholviisi. Myös yksityinen avain ladattiin.",
"generatedOnly": "Avainpari luotu — yksityinen avain ladattu (näytetään vain kerran).",
"generateFailed": "Avaimen luominen epäonnistui",
"imported": "Avain tuotu tunnistetiedoista",
"importFailed": "Avaimen tuonti epäonnistui",
"noKeys": "Julkisia avaimia ei ole vielä julkaistu.",
"keysTitle": "Julkaistut avaimet",
"published": "Julkaistu",
"hidden": "Piilotettu",
"keyRemoved": "Avain poistettu",
"removeKeyFailed": "Avaimen poistaminen epäonnistui",
"updateKeyFailed": "Avaimen päivittäminen epäonnistui",
"fromVault": "Tunnistetietosäilöstä",
"linkedToTermixId": "Julkaistu Termix ID:n kautta",
"selectCredential": "Valitse tunnistetiedot...",
"import": "Tuoda",
"caTitle": "Varmentaja",
"caIntro": "Luota tähän palvelimella olevaan varmenteiden myöntäjään, niin se hyväksyy kaikki allekirjoittamasi varmenteet. Kierrätä peruuttaaksesi kaiken kerralla; varmenteet myös vanhenevat itsestään.",
"caEnable": "Ota käyttöön CA",
"caEnabled": "CA käytössä",
"caCreateFailed": "CA:n käyttöönotto epäonnistui",
"caPublicKeyLabel": "CA:n julkinen avain",
"caTrustLabel": "Luota palvelimeen (aja root-käyttäjänä)",
"caRotate": "Kiertää",
"caRotateConfirm": "Kierrätetäänkö varmentajaa? Kaikki sen allekirjoittamat varmenteet lakkaavat olemasta hyväksyttäviä ja ne on myönnettävä uudelleen.",
"caRotated": "Varmentaja vaihdettu aiemmat varmenteet peruutettu",
"caRotateFailed": "CA:n vaihtaminen epäonnistui",
"caDelete": "Poista CA",
"caDeleteConfirm": "Poistetaanko varmenteen myöntäjä?",
"caDeleted": "CA poistettu",
"caDeleteFailed": "CA:n poistaminen epäonnistui",
"caValidityLabel": "Sertifikaatin voimassaolo (päivää)",
"issueCert": "Todistus",
"issueCertTooltip": "Myönnä tälle avaimelle SSH-varmenne, jonka CA on allekirjoittanut",
"certIssued": "Todistus myönnetty ja ladattu",
"certIssueFailed": "Varmenteen myöntäminen epäonnistui"
},
"credentials": {
"folders": "Kansiot",
"folder": "Kansio",
"password": "Salasana",
"key": "Avain",
"sshPrivateKey": "SSH-yksityinen avain",
"upload": "Lataa",
"keyPassword": "Avaimen salasana",
"sshKey": "SSH-avain",
"uploadPrivateKeyFile": "Lähetä yksityisen avaimen tiedosto",
"searchCredentials": "Hae tunnistetietoja...",
"addCredential": "Lisää tunnistetiedot",
"caCertificate": "CA-sertifikaatti (-cert.pub)",
"caCertificateDescription": "Valinnainen: Lataa tai liitä varmentajan allekirjoittama varmennetiedosto (esim. id_ed25519-cert.pub). Pakollinen, kun SSH-palvelimesi käyttää varmennepohjaista todennusta.",
"uploadCertFile": "Lähetä tiedosto -cert.pub",
"clearCert": "Tyhjennä",
"certLoaded": "Varmenne ladattu",
"certPublicKeyLabel": "CA-sertifikaatti",
"certTypeLabel": "Varmenteen tyyppi",
"pasteOrUploadCert": "Liitä tai lataa -cert.pub-varmenne...",
"hasCaCert": "Onko CA-sertifikaatti",
"noCaCert": "Ei CA-varmennetta",
"noPublicKeyAvailable": "Julkista avainta ei ole saatavilla. Avaa ensin tunnistetietojen muokkausohjelma.",
"deployCommandCopied": "Deploy-komento kopioitu",
"sortCredentials": "Lajittele tunnistetiedot",
"sortDefault": "Oletusjärjestys",
"sortNameAsc": "Nimi (A → Ö)",
"sortNameDesc": "Nimi (Ö → A)",
"sortUsernameAsc": "Käyttäjätunnus (A → Ö)",
"sortUsernameDesc": "Käyttäjätunnus (Ö → A)",
"filterCredentials": "Suodata tunnistetiedot",
"filterClearAll": "Tyhjennä suodattimet",
"filterTypeGroup": "Tyyppi",
"filterTypePassword": "Salasana",
"filterTypeKey": "SSH-avain",
"filterTagsGroup": "Tunnisteet"
},
"homepage": {
"title": "Etusivu",
"addWidget": "Lisää widget",
"editWidget": "Muokkaa widgetiä",
"deleteWidget": "Poistaa",
"widgetTypes": "Widget-tyypit",
"serviceLink": "Palvelulinkki",
"folder": "Kansio",
"clock": "Kello",
"notes": "Muistiinpanoja",
"hostStatus": "Isännän tila",
"bookmarkList": "Kirjanmerkit",
"zoomIn": "Lähennä",
"zoomOut": "Loitonna",
"resetView": "Palauta näkymä",
"lockLayout": "Lukituksen asettelu",
"unlockLayout": "Avaa asettelu",
"noWidgets": "Lisää ensimmäinen widget napsauttamalla hiiren kakkospainikkeella tai napsauttamalla +",
"openFullView": "Avaa koko näkymä",
"previewTitle": "Etusivun esikatselu",
"cancel": "Peruuttaa",
"save": "Tallentaa",
"title_label": "Otsikko",
"widgetTitlePlaceholder": "Widgetin otsikko (valinnainen)",
"url": "URL-osoite",
"imageUrl": "Mukautetun kuvan URL-osoite",
"imageUrlHint": "Jätä tyhjäksi, jos haluat käyttää sivuston suosikkikuvaketta automaattisesti",
"showImage": "Näytä kuva",
"description": "Kuvaus",
"color": "Väri",
"icon": "Kuvake",
"expanded": "Oletusarvoisesti laajennettu",
"timezone": "Aikavyöhyke",
"showSeconds": "Näytä sekunnit",
"format12h": "12 tunnin",
"format24h": "24 tunnin",
"content": "Sisältö",
"backgroundColor": "Taustaväri",
"host": "Isäntä",
"showMetrics": "Näytä mittarit",
"links": "Linkit",
"addLink": "Lisää linkki",
"linkLabel": "Tarra",
"linkUrl": "URL-osoite",
"removeLink": "Poistaa",
"categoryLinks": "Linkit",
"categoryInfo": "Tiedot",
"categorySystem": "Järjestelmä",
"widgetServiceLinkDesc": "Klikattava laatta, joka linkittää palvelun URL-osoitteeseen",
"widgetFolderDesc": "Säiliö toisiinsa liittyvien widgetien ryhmittelyyn",
"widgetClockDesc": "Live-kello, jossa on konfiguroitava aikavyöhyke",
"widgetNotesDesc": "Markdown-muistiinpano-widget",
"widgetHostStatusDesc": "Näyttää reaaliaikaisen suorittimen, muistin ja levyn SSH-isännälle",
"widgetBookmarkListDesc": "Pikalinkkien luettelo",
"copyLink": "Kopioi linkki",
"linkCopied": "Linkki kopioitu!",
"location": "Sijainti",
"temperatureUnit": "Lämpötilayksikkö",
"showForecast": "Näytä 3 päivän ennuste",
"scrolling": "Salli vieritys",
"feedUrl": "Syötteen URL-osoite",
"maxItems": "Kohteiden enimmäismäärä",
"showDescription": "Näytä kuvaus",
"widgetWeatherName": "Sää",
"widgetWeatherDesc": "Live-sää missä tahansa paikassa",
"widgetIframeName": "iFrame-upotus",
"widgetIframeDesc": "Upota mikä tahansa URL-osoite iframe-kehykseen",
"widgetRssName": "RSS-syöte",
"widgetRssDesc": "Näytä RSS- tai Atom-syötteen kohteita",
"dragToFolder": "Vedä widgetit tähän tai lisää ne käyttämällä +-merkkiä",
"showDisk": "Näytä levyn käyttö",
"addToFolder": "Lisää widget kansioon",
"noHostSelected": "Ei valittua isäntää",
"metricsNotAvailable": "Mittareita ei ole saatavilla",
"selectHost": "Valitse isäntä...",
"displayedMetrics": "Näytetyt mittarit",
"metricCpu": "Suoritin",
"metricMemory": "Muisti",
"metricDisk": "Levy",
"metricUptime": "Käyttöaika",
"metricSystem": "Järjestelmä",
"metricOs": "Käyttöjärjestelmä",
"metricKernel": "Ydin",
"metricHostname": "Isäntänimi",
"metricNetwork": "Verkko",
"metricProcesses": "Prosessit",
"metricProcessesTotal": "kokonais-",
"metricProcessesRunning": "juokseminen",
"categoryMonitoring": "Seuranta",
"loading": "Ladataan...",
"noData": "Ei tietoja saatavilla",
"allClear": "Kaikki selvää",
"acknowledgeAlert": "Kuittaa",
"noPingUrls": "Ei määritettyjä URL-osoitteita",
"pingLabel": "Tarra",
"addPingUrl": "Lisää URL-osoite",
"showLatency": "Näytä latenssi",
"refreshInterval": "Päivitysväli",
"seconds": "sekuntia",
"filterActivityTypes": "Suodatintyypit",
"filterTypesHint": "Jätä tyhjäksi näyttääksesi kaikki",
"showTimestamp": "Näytä aikaleima",
"uptimeUnavailable": "Käyttöaika ei saatavilla",
"uptimeLabel": "Käyttöaika",
"overviewVersion": "Versio",
"overviewUpdate": "Ajan tasalla",
"overviewUpdateAvailable": "Päivitys saatavilla",
"overviewDatabase": "Tietokanta",
"overviewUptime": "Käyttöaika",
"noHosts": "Ei määritettyjä isäntiä",
"hostGridHosts": "Isännät",
"hostGridAllHint": "Jätä tyhjäksi, jos haluat näyttää kaikki isännät",
"columns": "Sarakkeet",
"showIp": "Näytä IP-osoite",
"connectionType": "Yhteystyyppi",
"layout": "Layout",
"showStatus": "Näytä tila",
"showHostName": "Näytä isäntänimi",
"noDockerActivity": "Ei Docker-toimintaa",
"noActivity": "Ei toimintaa",
"showAcknowledged": "Näytä kuitattu",
"showCurrentValue": "Näytä nykyinen arvo",
"chartMetric": "Metrinen",
"metricRange": "Alue",
"widgetMetricsChartName": "Mittarikaavio",
"widgetMetricsChartDesc": "Isännän historiallinen suorittimen, muistin, levyn tai verkon kaavio",
"widgetHostGridName": "Isäntäverkko",
"widgetHostGridDesc": "SSH-isäntätilojen ruudukkonäkymä",
"widgetAlertFeedName": "Hälytyssyöte",
"widgetAlertFeedDesc": "Reaaliaikaiset hälytyslaukaisut kuittaustuella",
"widgetPingStatusName": "Ping-tila",
"widgetPingStatusDesc": "Yhden tai useamman URL-osoitteen HTTP-ping-tila",
"widgetRecentActivityName": "Viimeaikaiset toiminnot",
"widgetRecentActivityDesc": "Vieritettävä syöte viimeaikaisesta Termix-toiminnasta",
"widgetTermixUptimeName": "Termixin käyttöaika",
"widgetTermixUptimeDesc": "Termix-palvelimen reaaliaikainen käyttöaikalaskuri",
"widgetSystemOverviewName": "Järjestelmän yleiskatsaus",
"widgetSystemOverviewDesc": "Termix-versio, tietokannan kunto ja käyttöaika yhdellä silmäyksellä",
"widgetSshQuickConnectName": "SSH-pikayhteys",
"widgetSshQuickConnectDesc": "Yhden napsautuksen painikkeet SSH-istuntojen avaamiseen",
"widgetDockerActivityName": "Docker-toiminta",
"widgetDockerActivityDesc": "Viimeaikaiset Docker-säilön tapahtumat kaikissa isännissä",
"widgetCalendarName": "Kalenteri",
"widgetCalendarDesc": "Kuukausikalenteri, jossa tämä päivä on korostettuna",
"widgetCountdownName": "Lähtölaskenta",
"widgetCountdownDesc": "Ajastin tavoitepäivämäärään",
"widgetSearchBarName": "Hakupalkki",
"widgetSearchBarDesc": "Nopea verkkohaku-widget",
"widgetTextBannerName": "Tekstibanneri",
"widgetTextBannerDesc": "Lihavoitu otsikko tai osion otsikko kanvaalle",
"widgetImageWidgetName": "Kuva",
"widgetImageWidgetDesc": "Näytä kuva URL-osoitteesta",
"widgetMarkdownNotesName": "Markdown-muistiinpanot",
"widgetMarkdownNotesDesc": "Runsaasti muistiinpanoja ja inline markdown -renderöinti",
"widgetCustomApiName": "Mukautettu API",
"widgetCustomApiDesc": "Hae ja näytä tietoja mistä tahansa JSON-rajapinnasta",
"widgetServiceGridName": "Palveluverkko",
"widgetServiceGridDesc": "Palveluruutujen linkkien konfiguroitava ruudukko",
"widgetDashboardLinksName": "Kojelaudan linkit",
"widgetDashboardLinksDesc": "Näytä määritetyt palvelulinkkisi kojelaudassa",
"widgetSearchLinksName": "Hakupikavalinnat",
"widgetSearchLinksDesc": "Pikahaun pikanäppäimet, joissa on rivikohtainen syöttö",
"widgetLinkTreeName": "Linkkipuu",
"widgetLinkTreeDesc": "Ryhmitellyt linkkiosiot otsikoineen",
"calMon": "Mo",
"calTue": "Ti",
"calWed": "Me",
"calThu": "To",
"calFri": "Pe",
"calSat": "La",
"calSun": "Su",
"startOnMonday": "Viikko alkaa maanantaina",
"countdownNoDate": "Ei asetettua tavoitepäivämäärää",
"countdownPast": "Tapahtuma on ohi",
"countdownDays": "päivää",
"countdownHours": "tuntia",
"countdownMinutes": "min",
"countdownSeconds": "sek",
"countdownLabel": "Tarra",
"countdownLabelPlaceholder": "esim. julkaisupäivä",
"countdownShowDays": "Näyttelypäivät",
"countdownShowHours": "Näytä aukioloajat",
"targetDate": "Tavoitepäivämäärä",
"searchEngine": "Hakukone",
"customSearchUrl": "Mukautetun haun URL-osoite",
"searchPlaceholder": "Haku...",
"searchGo": "Mennä",
"searchPlaceholderLabel": "Paikkamerkkiteksti",
"searchPlaceholderHint": "Hakusyötteen sisällä näkyvä teksti",
"openInNewTab": "Avaa uudessa välilehdessä",
"searchQueryPlaceholder": "Syötä kysely...",
"noSearchShortcuts": "Ei määritettyjä pikanäppäimiä",
"addSearchShortcut": "Lisää pikakuvake",
"fontSize": "Fonttikoko",
"textAlign": "Tekstin tasaus",
"fontWeight": "Fontin paino",
"clearColor": "Kirkas väri",
"imageFit": "Kuvan sovitus",
"imageLinkUrl": "Linkin URL-osoite",
"noImage": "Kuvan URL-osoitetta ei ole asetettu",
"altText": "Vaihtoehtoinen teksti",
"altTextPlaceholder": "Kuvaile kuvaa",
"renderMarkdown": "Renderöi Markdown",
"displayMode": "Näyttötila",
"displayField": "Näyttökenttä",
"jsonPath": "JSON-polku",
"customApiLabel": "Tarra",
"customApiLabelPlaceholder": "esim. Lämpötila",
"customApiUnit": "Yksikkö",
"customApiNoUrl": "API-URL-osoitetta ei ole määritetty",
"customApiError": "Nouto epäonnistui",
"customApiNotArray": "Vastaus ei ole taulukko",
"addService": "Lisää palvelu",
"showLabels": "Näytä otsikot",
"iconSize": "Kuvakkeen koko",
"noDashboardLinks": "Ei määritettyjä kojelaudan linkkejä",
"noLimit": "Ei rajaa",
"sectionHeading": "Osion otsikko",
"addSection": "Lisää osio",
"compactMode": "Kompakti tila",
"showDetailed": "Näytä yksityiskohtainen",
"selectHosts": "Valitse isännät",
"allHosts": "Kaikki isännät",
"listLayout": "Lista",
"gridLayout": "Ruudukko",
"terminal": "Terminaali",
"files": "Tiedostot",
"docker": "Satamatyöläinen",
"range15m": "15 minuuttia",
"range1h": "1 tunti",
"range6h": "6 tuntia",
"range24h": "24 tuntia",
"metricNetRx": "Verkkolataus",
"metricNetTx": "Verkkolataus",
"severityFilter": "Vakavuustason suodatin",
"filterAll": "Kaikki",
"accentColor": "Korostusväri",
"widgetSshTerminalName": "SSH-terminaali",
"widgetSshTerminalDesc": "Sisäänrakennettu SSH-pääte, joka on yhdistetty konfiguroituun isäntään",
"sshTerminalNoHost": "Ei määritettyä isäntää",
"sshTerminalConnect": "Yhdistä",
"sshTerminalAutoConnect": "Automaattinen yhteys kuormituksen yhteydessä",
"widgetQuickConnectName": "Pikayhteys",
"widgetQuickConnectDesc": "Yhden napsautuksen käynnistyspainikkeet mille tahansa yhteystyypille isäntätietokoneissasi",
"connectionTypes": "Yhteystyypit",
"connType_terminal": "Terminaali",
"connType_files": "Tiedostonhallinta",
"connType_docker": "Satamatyöläinen",
"connType_tunnel": "Tunneli",
"connType_host-metrics": "Isännän mittarit",
"connType_rdp": "Maaseudun kehittämisohjelma",
"connType_vnc": "VNC",
"connType_telnet": "Telnet",
"widgetFileManagerName": "Tiedostonhallinta",
"widgetFileManagerDesc": "Upotettu SFTP-tiedostonhallinta konfiguroidulle isännälle",
"widgetDockerName": "Docker-hallinta",
"widgetDockerDesc": "Sulautettu Docker-konttien hallintaohjelma konfiguroidulle isännälle",
"widgetTunnelName": "Tunnelin hallinta",
"widgetTunnelDesc": "Sulautettu SSH-tunnelinhallinta konfiguroidulle isännälle",
"widgetNoHostSelected": "Ei määritettyä isäntää"
},
"serverConfig": {
"title": "Palvelimen kokoonpano",
"description": "Määritä Termix-palvelimen URL-osoite yhteyden muodostamiseksi taustapalveluihin",
"serverUrl": "Palvelimen URL-osoite",
"enterServerUrl": "Anna palvelimen URL-osoite",
"saveFailed": "Määritysten tallennus epäonnistui",
"saveError": "Virhe tallennettaessa määritystä",
"saving": "Tallennetaan...",
"saveConfig": "Tallenna kokoonpano",
"helpText": "Anna URL-osoite, jossa Termix-palvelimesi toimii (esim. http://localhost:30001 tai https://your-server.com)",
"changeServer": "Vaihda palvelinta",
"mustIncludeProtocol": "Palvelimen URL-osoitteen on alettava http:// tai https://",
"allowInvalidCertificate": "Salli virheellinen varmenne",
"allowInvalidCertificateDesc": "Käytä vain luotettaville itse isännöidyille palvelimille, joissa on itse allekirjoitetut tai IP-osoitevarmenteet.",
"useEmbedded": "Käytä paikallista palvelinta",
"embeddedDesc": "Suorita Termix sisäänrakennetulla paikallisella palvelimella (etäpalvelinta ei tarvita)",
"embeddedConnecting": "Yhdistetään paikalliseen palvelimeen...",
"embeddedNotReady": "Paikallinen palvelin ei ole vielä valmis. Odota hetki ja yritä uudelleen.",
"localServer": "Paikallinen palvelin",
"savedServers": "Tallennetut palvelimet",
"noSavedServers": "Ei tallennettuja palvelimia",
"removeServer": "Poistaa"
},
"versionCheck": {
"error": "Versiotarkistusvirhe",
"checkFailed": "Päivitysten tarkistaminen epäonnistui",
"upToDate": "Sovellus on ajan tasalla",
"currentVersion": "Käytät versiota {{version}}",
"updateAvailable": "Päivitys saatavilla",
"newVersionAvailable": "Uusi versio on saatavilla! Käytät {{current}}, mutta {{latest}} on saatavilla.",
"betaVersion": "Beta-versio",
"betaVersionDesc": "Käytät {{current}}, joka on uudempi kuin viimeisin vakaa julkaisu {{latest}}.",
"releasedOn": "Julkaistu {{date}}",
"downloadUpdate": "Lataa päivitys",
"checking": "Tarkistetaan päivityksiä...",
"checkUpdates": "Tarkista päivitykset",
"checkingUpdates": "Tarkistetaan päivityksiä...",
"updateRequired": "Päivitys vaaditaan"
},
"common": {
"close": "Lähellä",
"minimize": "Minimoida",
"online": "Verkossa",
"offline": "Offline-tilassa",
"unknown": "Tuntematon",
"continue": "Jatkaa",
"maintenance": "Huolto",
"degraded": "Heikentynyt",
"error": "Virhe",
"warning": "Varoitus",
"unsavedChanges": "Tallentamattomat muutokset",
"dismiss": "Hylkää",
"loading": "Ladataan...",
"optional": "Valinnainen",
"connect": "Yhdistä",
"copied": "Kopioitu",
"connecting": "Yhdistetään...",
"updateAvailable": "Päivitys saatavilla",
"appName": "Termix",
"openInNewTab": "Avaa uudessa välilehdessä",
"noReleases": "Ei julkaisuja",
"updatesAndReleases": "Päivitykset ja julkaisut",
"newVersionAvailable": "Uusi versio ({{version}}) on saatavilla.",
"failedToFetchUpdateInfo": "Päivitystietojen hakeminen epäonnistui",
"preRelease": "Julkaisua edeltävä",
"noReleasesFound": "Ei löytynyt julkaisuja.",
"cancel": "Peruuttaa",
"username": "Käyttäjätunnus",
"login": "Kirjaudu sisään",
"logout": "Kirjaudu ulos",
"register": "Rekisteröidy",
"password": "Salasana",
"confirmPassword": "Vahvista salasana",
"back": "Takaisin",
"save": "Tallentaa",
"saving": "Tallennetaan...",
"delete": "Poistaa",
"rename": "Nimeä uudelleen",
"edit": "Muokata",
"add": "Lisätä",
"confirm": "Vahvistaa",
"no": "Ei",
"or": "TAI",
"next": "Seuraava",
"previous": "Edellinen",
"refresh": "Päivitä",
"language": "Kieli",
"checking": "Tarkistetaan...",
"checkingDatabase": "Tarkistetaan tietokantayhteyttä...",
"checkingAuthentication": "Tarkistetaan todennusta...",
"backendReconnected": "Palvelinyhteys palautettu",
"connectionDegraded": "Palvelinyhteys katkesi, palautetaan…",
"reload": "Lataa uudelleen",
"remove": "Poistaa",
"create": "Luoda",
"update": "Päivittää",
"copy": "Kopioida",
"copyFailed": "Leikepöydälle kopiointi epäonnistui",
"maximize": "Maksimoida",
"restore": "Palauttaa",
"of": "jostakin",
"saved": "Tallennettu",
"deleted": "Poistettu",
"deleteFailed": "Poistaminen epäonnistui",
"saveFailed": "Tallennus epäonnistui",
"required": "Pakollinen"
},
"nav": {
"home": "Kotiin",
"terminal": "Terminaali",
"docker": "Satamatyöläinen",
"tunnels": "Tunnelit",
"fileManager": "Tiedostonhallinta",
"serverStats": "Isännän mittarit",
"hostMetrics": "Isännän mittarit",
"admin": "Ylläpitäjä",
"termixId": "Henkilöllisyystodistus",
"userProfile": "Käyttäjäprofiili",
"splitScreen": "Jaettu näyttö",
"confirmClose": "Suljetaanko tämä aktiivinen istunto?",
"close": "Lähellä",
"cancel": "Peruuttaa",
"sshManager": "SSH-hallinta",
"cannotSplitTab": "Tätä välilehteä ei voi jakaa",
"hostTabTitle": "{{username}}@{{ip}}:{{port}}",
"copyPassword": "Kopioi salasana",
"copySudoPassword": "Kopioi Sudo-salasana",
"passwordCopied": "Salasana kopioitu leikepöydälle",
"noPasswordAvailable": "Salasanaa ei saatavilla",
"failedToCopyPassword": "Salasanan kopiointi epäonnistui",
"refreshTab": "Päivitä yhteys",
"renameTab": "Nimeä välilehti uudelleen",
"openFileManager": "Avaa tiedostonhallinta",
"dashboard": "Kojelauta",
"networkGraph": "Verkkokaavio",
"tmuxMonitor": "Tmux-näyttö",
"homepage": "Etusivu",
"quickConnect": "Pikayhteys",
"sshTools": "SSH-työkalut",
"history": "Historia",
"sessionLogs": "Istuntolokit",
"hosts": "Isännät",
"snippets": "Katkelmat",
"hostManager": "Isäntäpäällikkö",
"credentials": "Valtakirjat",
"connections": "Yhteydet",
"alerts": "Hälytykset",
"serial": "Sarjanumero",
"roleAdministrator": "Ylläpitäjä",
"roleUser": "Käyttäjä"
},
"hosts": {
"hosts": "Isännät",
"noHosts": "Ei SSH-isäntiä",
"retry": "Yritä uudelleen",
"refresh": "Päivitä",
"optional": "Valinnainen",
"downloadSample": "Lataa näyte",
"failedToDeleteHost": "Poisto epäonnistui {{name}}",
"importSkipExisting": "Tuo (ohita olemassa oleva)",
"importSSHConfig": "Tuo SSH-kokoonpanosta",
"connectionDetails": "Yhteystiedot",
"ssh": "SSH",
"telnet": "Telnet",
"remoteDesktop": "Etätyöpöytä",
"port": "Portti",
"username": "Käyttäjätunnus",
"folder": "Kansio",
"tags": "Tunnisteet",
"pin": "Kiinnitä",
"addHost": "Lisää isäntä",
"editHost": "Muokkaa isäntää",
"cloneHost": "Klooni-isäntä",
"enableTerminal": "Ota terminaali käyttöön",
"enableTunnel": "Ota tunneli käyttöön",
"enableFileManager": "Ota tiedostonhallinta käyttöön",
"enableDocker": "Ota Docker käyttöön",
"defaultPath": "Oletuspolku",
"connection": "Yhteys",
"upload": "Lataa",
"authentication": "Todennus",
"password": "Salasana",
"key": "Avain",
"credential": "Valtakirja",
"none": "Ei mitään",
"sshPrivateKey": "SSH-yksityinen avain",
"keyType": "Avaimen tyyppi",
"uploadFile": "Lähetä tiedosto",
"tabGeneral": "Yleistä",
"tabSsh": "SSH",
"tabTerminal": "Terminaali",
"tabRdp": "Maaseudun kehittämisohjelma",
"tabVnc": "VNC",
"tabTunnels": "Tunnelit",
"tabDocker": "Satamatyöläinen",
"tabFiles": "Tiedostot",
"tabStats": "Isännän mittarit",
"tabHostMetrics": "Isännän mittarit",
"tabTelnet": "Telnet",
"tabSharing": "Jakaminen",
"tabAuthentication": "Todennus",
"terminal": "Terminaali",
"tunnel": "Tunneli",
"fileManager": "Tiedostonhallinta",
"serverStats": "Isännän mittarit",
"status": "Status",
"folderRenamed": "Kansio \"{{oldName}}\" nimettiin uudelleen onnistuneesti muotoon \"{{newName}}\"",
"failedToRenameFolder": "Kansion uudelleennimeäminen epäonnistui",
"movedToFolder": "Siirretty {{count}} isäntä(ä) kohteeseen \"{{folder}}\"",
"editHostTooltip": "Muokkaa isäntää",
"statusChecks": "Tilatarkastukset",
"metricsCollection": "Mittarikokoelma",
"metricsInterval": "Mittaritietojen keräysväli",
"metricsIntervalDesc": "Palvelintilastojen keräämisen tiheys (5 s - 1 h)",
"behavior": "Käyttäytyminen",
"themePreview": "Teeman esikatselu",
"theme": "Teema",
"fontFamily": "Fonttiperhe",
"fontSize": "Fonttikoko",
"letterSpacing": "Kirjainväli",
"lineHeight": "Viivan korkeus",
"cursorStyle": "Kohdistimen tyyli",
"cursorBlink": "Kohdistimen vilkkuminen",
"scrollbackBuffer": "Vieroituspuskuri",
"bellStyle": "Kellotyyli",
"rightClickSelectsWord": "Hiiren kakkospainikkeen napsautus valitsee sanan",
"fastScrollModifier": "Nopea vieritysmuokkain",
"fastScrollSensitivity": "Nopea vieritysherkkyys",
"sshAgentForwarding": "SSH-agentin edelleenlähetys",
"backspaceMode": "Askelpalautintila",
"startupSnippet": "Käynnistyskoodinpätkä",
"selectSnippet": "Valitse katkelma",
"forceKeyboardInteractive": "Pakota näppäimistöinteraktiivinen",
"overrideCredentialUsername": "Ohita tunnistetiedot Käyttäjätunnus",
"overrideCredentialUsernameDesc": "Käytä yllä määritettyä käyttäjätunnusta tunnistetiedon käyttäjätunnuksen sijaan.",
"oidcUsernameHint": "Käytä OIDC-kirjautumisnimesi sijaan muotoa $oidc.preferred_username.",
"jumpHostChain": "Hyppyisäntäketju",
"portKnocking": "Portin koputus",
"addKnock": "Lisää portti",
"addProxyNode": "Lisää solmu",
"proxyNode": "Välityspalvelinsolmu",
"proxyType": "Välityspalvelimen tyyppi",
"quickActions": "Pikatoiminnot",
"sudoPasswordAutoFill": "Sudo-salasanan automaattinen täyttö",
"sudoPassword": "Sudo-salasana",
"keepaliveInterval": "Säilytysväli (ms)",
"moshCommand": "MOSH-komento",
"environmentVariables": "Ympäristömuuttujat",
"addVariable": "Lisää muuttuja",
"docker": "Satamatyöläinen",
"copyTerminalUrl": "Kopioi terminaalin URL-osoite",
"copyFileManagerUrl": "Kopioi tiedostonhallinnan URL-osoite",
"copyRemoteDesktopUrl": "Kopioi etätyöpöydän URL-osoite",
"failedToConnect": "Yhteyden muodostaminen konsoliin epäonnistui",
"connect": "Yhdistä",
"disconnect": "Katkaise yhteys",
"start": "Aloita",
"enableStatusCheck": "Ota tilan tarkistus käyttöön",
"enableMetrics": "Ota mittarit käyttöön",
"bulkUpdateFailed": "Joukkopäivitys epäonnistui",
"selectAll": "Valitse kaikki",
"deselectAll": "Poista kaikkien valinta",
"protocols": "Protokollat",
"secureShell": "Suojattu kuori",
"virtualNetwork": "Virtuaaliverkko",
"unencryptedShell": "Salaamaton kuori",
"addressIp": "Osoite / IP-osoite",
"friendlyName": "Ystävällinen nimi",
"macAddress": "MAC-osoite",
"wolBroadcastAddress": "WoL-lähetysosoite",
"wolBroadcastAddressDesc": "Valinnainen suunnattu lähetys Docker-/reititetyille verkoille (esim. 192.168.1.255). Jätä tyhjäksi käyttääksesi osoitetta 255.255.255.255.",
"folderAndAdvanced": "Kansio ja lisäasetukset",
"privateNotes": "Yksityiset muistiinpanot",
"privateNotesPlaceholder": "Tietoja tästä palvelimesta...",
"pinToTop": "Kiinnitä ylös",
"pinToTopDesc": "Näytä tämä isäntä aina listan kärjessä",
"portKnockingSequence": "Portin koputussekvenssi",
"addKnockBtn": "Lisää Knock",
"noPortKnocking": "Portin koputusta ei ole määritetty.",
"knockPort": "Knockin satama",
"protocol": "Protokolla",
"delayAfterMs": "Viive jälkeen (ms)",
"useSocks5Proxy": "Käytä SOCKS5-välityspalvelinta",
"useSocks5ProxyDesc": "Reititä yhteys välityspalvelimen kautta",
"proxyHost": "Välityspalvelin",
"proxyPort": "Välityspalvelimen portti",
"proxyUsername": "Välityspalvelimen käyttäjätunnus",
"proxyPassword": "Välityspalvelimen salasana",
"proxySingleMode": "Yksittäinen välityspalvelin",
"proxyChainMode": "Välityspalvelinketju",
"you": "Sinä",
"jumpHostChainLabel": "Hyppyisäntäketju",
"addJumpBtn": "Lisää hyppy",
"noJumpHosts": "Hyppypalvelimia ei ole määritetty.",
"selectAServer": "Valitse palvelin...",
"sshPort": "SSH-portti",
"authMethod": "Todennustapa",
"storedCredential": "Tallennetut tunnistetiedot",
"selectACredential": "Valitse tunnistetiedot...",
"vaultProfile": "Varaston allekirjoittajan profiili",
"selectAVaultProfile": "Valitse holviprofiili...",
"vaultProfileHint": "Asetukset tulevat jaetusta profiilista; kirjaudut Holviin OIDC:n kautta, kun muodostat yhteyden. Salaisuuksia ei tallenneta.",
"vaultNewProfile": "Uusi profiili",
"vaultManageProfiles": "Hallinnoi holviprofiileja",
"vaultAddrLabel": "Holvin osoite",
"vaultNamespaceLabel": "Nimiavaruus",
"vaultOidcMountLabel": "OIDC-todennusliitos",
"vaultOidcRoleLabel": "OIDC-rooli",
"vaultSshMountLabel": "SSH-salaisuuksien kiinnitys",
"vaultSshRoleLabel": "SSH-allekirjoittajan rooli",
"vaultValidPrincipalsLabel": "Voimassa olevat pääasialliset",
"vaultKeyTypeLabel": "Lyhytaikainen avaintyyppi",
"vaultSharedLabel": "Jaa kaikkien käyttäjien kanssa",
"vaultCreateProfile": "Luo profiili",
"vaultProfileCreated": "Holvin profiili luotu",
"vaultProfileSaved": "Holvin profiili tallennettu",
"vaultProfileDeleted": "Holvin profiili poistettu",
"vaultProfileSaveFailed": "Holvin profiilin tallentaminen epäonnistui",
"vaultProfileDeleteFailed": "Holviprofiilin poistaminen epäonnistui",
"vaultSaveProfile": "Tallenna profiili",
"vaultProfileValidationError": "Nimi, holvin osoite ja SSH-allekirjoittajan rooli vaaditaan",
"vaultNoProfiles": "Ei vielä holviprofiileja.",
"vaultSharedBadge": "jaettu",
"keyTypeLabel": "Avaimen tyyppi",
"keyTypeAuto": "Automaattinen tunnistus",
"keyPasteTab": "Liitä",
"keyUploadTab": "Lataa",
"keyFileLoaded": "Avaintiedosto ladattu",
"keyUploadClick": "Napsauta ladataksesi .pem / .key / .ppk -tiedoston",
"clearKey": "Tyhjennä näppäin",
"keySaved": "SSH-avain tallennettu",
"keyReplaceNotice": "liitä uusi avain alle korvataksesi sen",
"keyPassphraseSaved": "Salasana tallennettu, kirjoita muuttaaksesi",
"replaceKey": "Vaihda avain",
"docsLink": "Näytä dokumentit",
"opksshLabel": "OPKSSH",
"opksshDesc": "Kirjaudu tähän isäntään käyttämällä identiteetintarjoajaasi salasanan tai avaimen sijaan. Edellyttää OPKSSH:n määrittämistä palvelimelle.",
"warpgateLabel": "Warpgate-yhdyskäytävä",
"warpgateDesc": "Tämä isäntä muodostaa yhteyden Warpgate SSH -välityspalvelimen kautta. Termix käsittelee selainpohjaisen hyväksyntäprosessin automaattisesti todennuksen jälkeen.",
"agentLabel": "SSH-agentti",
"agentDesc": "Todenna itsesi käyttämällä Termix-palvelimella käynnissä olevaa SSH-agenttia (Bitwarden, 1Password, gpg-agent, KeeAgent, ssh-agent). Agentin on oltava käynnissä koneella, jolla Termix sijaitsee.",
"agentSocketPathLabel": "Agentin soketin polku",
"agentSocketPathPlaceholder": "Jätä tyhjäksi käyttääksesi SSH_AUTH_SOCKia",
"agentSocketPathHint": "Jätä tyhjäksi, jos haluat automaattisen tunnistuksen SSH_AUTH_SOCK-ympäristömuuttujasta, tai anna mukautettu soketin polku (esim. /run/user/1000/gnupg/S.gpg-agent.ssh).",
"tailscaleDeviceSelect": "Valitse Tailscale-laite",
"tailscaleDeviceSelectPlaceholder": "Valitse laite...",
"tailscaleNoApiKey": "Tailscale API -avainta ei ole määritetty. Lisää sellainen järjestelmänvalvojan asetuksissa, jotta laitteiden löytäminen on mahdollista.",
"tailscaleDocsLink": "Näytä dokumentit",
"tailscaleLoadingDevices": "Laitteita ladataan...",
"tailscaleNoDevices": "Hätäverkostasi ei löytynyt laitteita.",
"tailscaleDeviceAutoFill": "Laitteen valinta täyttää isännän IP-osoitteen automaattisesti.",
"forceKeyboardInteractiveLabel": "Force Keyboard Interactive",
"forceKeyboardInteractiveShortDesc": "Pakota salasanan syöttö manuaalisesti, vaikka avaimet olisivat paikallaan",
"allowLegacyAlgorithmsLabel": "Salli vanhat algoritmit",
"allowLegacyAlgorithmsDesc": "Ota käyttöön vanhentuneet SSH-algoritmit (ssh-dss, ssh-rsa, diffie-hellman-group1-sha1, hmac-md5, 3des-cbc) yhteyksille vanhoihin laitteisiin, joita ei voida päivittää.",
"insecure": "Epävarma",
"terminalAppearance": "Päätelaitteen ulkonäkö",
"colorTheme": "Väriteema",
"fontFamilyLabel": "Fonttiperhe",
"fontSizeLabel": "Fonttikoko",
"cursorStyleLabel": "Kohdistimen tyyli",
"letterSpacingPx": "Kirjainväli (px)",
"lineHeightLabel": "Viivan korkeus",
"bellStyleLabel": "Kellotyyli",
"backspaceModeLabel": "Askelpalautintila",
"cursorBlinking": "Kohdistimen vilkkuminen",
"cursorBlinkingDesc": "Ota käyttöön päätekohdistimen vilkkuva animaatio",
"rightClickSelectsWordLabel": "Napsauta hiiren kakkospainikkeella ja valitsee sanan",
"rightClickSelectsWordShortDesc": "Valitse kohdistimen alla oleva sana hiiren kakkospainikkeella",
"backgroundImageLabel": "Taustakuvan URL-osoite",
"backgroundImageDesc": "Valinnainen URL-osoite päätelaitteen taustakuvalle",
"backgroundImageOpacityLabel": "Taustakuvan läpinäkyvyys",
"customThemeColors": "Mukautetut värit",
"customThemeBackground": "Tausta",
"customThemeForeground": "Etuala",
"customThemeCursor": "Kohdistin",
"customThemeCursorAccent": "Kohdistimen aksentti",
"customThemeSelection": "Valinta",
"customThemeAnsiColors": "ANSI-värit",
"customThemeBlack": "Musta",
"customThemeRed": "Punainen",
"customThemeGreen": "Vihreä",
"customThemeYellow": "Keltainen",
"customThemeBlue": "Sininen",
"customThemeMagenta": "Purppura",
"customThemeCyan": "Syaani",
"customThemeWhite": "Valkoinen",
"customThemeBrightBlack": "Kirkkaan musta",
"customThemeBrightRed": "Kirkkaanpunainen",
"customThemeBrightGreen": "Kirkkaanvihreä",
"customThemeBrightYellow": "Kirkkaan keltainen",
"customThemeBrightBlue": "Kirkkaan sininen",
"customThemeBrightMagenta": "Kirkkaan magenta",
"customThemeBrightCyan": "Kirkkaan syaani",
"customThemeBrightWhite": "Kirkkaan valkoinen",
"customThemeResetTooltip": "Palauta oletusasetukset",
"syntaxHighlightingLabel": "Syntaksin korostus",
"syntaxHighlightingDesc": "Väritä päätelaitteen tuloste (virheet, polut, IP-osoitteet, aikaleimat)",
"syntaxHighlightingCategories": "Korosta kategoriat",
"syntaxHighlightingCategoriesDesc": "Valitse väritettävät sisältötyypit",
"syntaxCategoryLogLevels": "Lokitasot",
"syntaxCategoryLogLevelsDesc": "virhe, varoitus, tiedot, debug, kohtalokas",
"syntaxCategoryPaths": "Tiedostopolut",
"syntaxCategoryPathsDesc": "/usr/share/doc, ~/tiedosto.txt",
"syntaxCategoryTimestamps": "Aikaleimat",
"syntaxCategoryTimestampsDesc": "[12:34:56], 15.1.2024",
"syntaxCategoryIpAddresses": "IP-osoitteet",
"syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080",
"syntaxCategoryUrls": "URL-osoitteet",
"syntaxCategoryUrlsDesc": "https://esimerkki.com",
"syntaxCategoryNumbers": "Merkityt numerot",
"syntaxCategoryNumbersDesc": "portti 8080, uloskäynti 1, tila 404",
"behaviorAndAdvanced": "Käyttäytyminen ja edistyneet",
"scrollbackBufferLabel": "Vieroituspuskuri",
"scrollbackMaxLines": "Historiassa säilytettävien rivien enimmäismäärä",
"sshAgentForwardingLabel": "SSH-agentin edelleenlähetys",
"sshAgentForwardingShortDesc": "Välitä paikalliset SSH-avaimesi tälle isännälle",
"useSSHTitleLabel": "Käytä SSH-ikkunan otsikkoa",
"useSSHTitleDesc": "Päivitä välilehden otsikko komentotulkin ikkunan otsikosta isäntänimen sijaan",
"enableAutoMosh": "Ota automaattinen mosh käyttöön",
"enableAutoMoshDesc": "Suosi Moshia SSH:n sijaan, jos saatavilla",
"enableAutoTmux": "Ota automaattinen Tmux käyttöön",
"enableAutoTmuxDesc": "Käynnistä automaattisesti tai liitä tmux-istuntoon",
"enableSessionLogging": "Istuntojen lokitiedot",
"enableSessionLoggingDesc": "Tallenna pääteistunnon tuloste myöhempää tarkastelua varten",
"enableCommandHistory": "Komentohistoria",
"enableCommandHistoryDesc": "Tallenna tässä terminaalissa suoritettavat komennot historiaa ja automaattista täydennystä varten",
"linkClickBehaviorLabel": "Linkin klikkauskäyttäytyminen",
"linkClickBehaviorDesc": "Määrittää, mitä tapahtuu, kun napsautat linkkiä terminaalissa. Käytä 'Oletus'-asetusta noudattaaksesi sovellustason asetuksia.",
"linkClickBehaviorDefault": "Oletus (noudata sovelluksen asetuksia)",
"linkClickBehaviorConfirm": "Näytä ponnahdusikkuna avaamista tai kopioimista varten",
"linkClickBehaviorDirect": "Avaa suoraan",
"sudoPasswordAutoFillLabel": "Sudo-salasanan automaattinen täyttö",
"sudoPasswordAutoFillShortDesc": "Anna sudo-salasana automaattisesti pyydettäessä",
"sudoPasswordAutoFillDesc": "Tallenna sudo-salasana, jotta isäntämittarit, päätekehotteet ja muut voivat suorittaa etuoikeutettuja komentoja automaattisesti.",
"sudoPasswordLabel": "Sudo-salasana",
"environmentVariablesLabel": "Ympäristömuuttujat",
"addVariableBtn": "Lisää muuttuja",
"noEnvVars": "Ei määritettyjä ympäristömuuttujia.",
"fastScrollModifierLabel": "Nopea vieritysmuokkain",
"fastScrollSensitivityLabel": "Nopea vieritysherkkyys",
"moshCommandLabel": "Moshin komento",
"startupSnippetLabel": "Käynnistyskoodinpätkä",
"keepaliveIntervalLabel": "Säilytysaika (sekuntia)",
"maxKeepaliveMisses": "Max Keepalive -heitot",
"tunnelSettings": "Tunnelin asetukset",
"enableTunneling": "Ota tunnelointi käyttöön",
"enableTunnelingDesc": "Ota SSH-tunnelitoiminto käyttöön tälle isännälle",
"serverTunnelsSection": "Palvelintunnelit",
"addTunnelBtn": "Lisää tunneli",
"noTunnelsConfigured": "Ei tunneleita määritettynä.",
"tunnelLabel": "Tunneli {{number}}",
"tunnelType": "Tunnelin tyyppi",
"tunnelModeLocalDesc": "Lähetä paikallinen portti etäpalvelimen (tai siitä tavoitettavan isännän) porttiin.",
"tunnelModeRemoteDesc": "Lähetä etäpalvelimen portti takaisin oman koneesi paikalliseen porttiin.",
"tunnelModeDynamicDesc": "Luo SOCKS5-välityspalvelin paikalliseen porttiin dynaamista portin edelleenlähetystä varten.",
"sameHost": "Tämä isäntä (suora tunneli)",
"endpointHost": "Päätepisteen isäntä",
"endpointHostPlaceholder": "Sama isäntä, SSH-isäntä tai tavoitettava isäntä/IP-osoite",
"endpointPort": "Päätepisteen portti",
"bindHost": "Sido isäntä",
"sourcePort": "Lähdeportti",
"maxRetries": "Maks. uudelleenyritykset",
"retryIntervalS": "Uudelleenyritysväli (s)",
"autoStartLabel": "Automaattinen käynnistys",
"autoStartDesc": "Yhdistä tämä tunneli automaattisesti, kun isäntä ladataan",
"tunnelConnecting": "Tunneli, joka yhdistää...",
"tunnelDisconnected": "Tunneli irrotettu",
"failedToConnectTunnel": "Yhteyden muodostaminen epäonnistui",
"failedToDisconnectTunnel": "Yhteyden katkaiseminen epäonnistui",
"dockerIntegration": "Docker-integraatio",
"enableDockerMonitor": "Ota Docker käyttöön",
"enableDockerMonitorDesc": "Valvo ja hallinnoi tämän isännän säilöjä Dockerin kautta",
"containerRuntime": "Säilön suoritusaika",
"containerRuntimeDesc": "Valitse CLI, jota käytetään säilön hallintaan tässä isännässä",
"containerRuntimeDocker": "Satamatyöläinen",
"containerRuntimePodman": "Podman",
"enableTmuxMonitor": "Ota Tmux-monitori käyttöön",
"enableTmuxMonitorDesc": "Näytä tämä isäntä Tmux-monitorissa ja lisää sen tmux-toiminnot sivupalkkiin",
"tabProxmox": "Proxmox",
"proxmoxIntegration": "Proxmox-integraatio",
"enableProxmox": "Ota Proxmox käyttöön",
"enableProxmoxDesc": "Merkitse tämä isäntä Proxmox-solmuksi. Mahdollistaa vieraslaitteiden etsinnän ja tuonnin suoraan tästä isännästä.",
"proxmoxDefaultAuthType": "Oletustodennustyyppi",
"proxmoxDefaultAuthTypeDesc": "Tuotuihin vieraspalvelimiin sovellettu todennustapa. Valitse todennustyyppi, joka vastaa tapaa, jolla muodostat yhteyden vieraisiin palvelimiin.",
"authTypePassword": "Salasana",
"authTypeKey": "SSH-avain",
"authTypeCredential": "Valtakirja",
"authTypeOpkssh": "OPKSSH",
"authTypeNone": "Ei mitään",
"proxmoxDefaultCredential": "Oletustunnistetiedot",
"proxmoxDefaultCredentialDesc": "Tuotujen vieraspalvelimien tunnistetiedot, kun todennustyypiksi on asetettu Tunnistetiedot.",
"proxmoxWindowsDetection": "Windowsin / RDP-tunnistus",
"proxmoxWindowsDetectionDesc": "Pilkuilla erotetut nimimallit, jotka käynnistävät RDP:n SSH:n sijaan (kirjainkokoa ei erotella)",
"proxmoxDockerDetection": "Docker-tunnistus",
"proxmoxDockerDetectionDesc": "Pilkuilla erotetut nimimallit, joiden avulla Docker löytää vieraat yhteensopiviksi",
"proxmoxPreferredRanges": "Suositellut IP-alueet",
"proxmoxPreferredRangesDesc": "Pilkuilla erotetut etuliitteet prioriteettijärjestyksessä IP-osoitteen valinnassa, kun vieraalla on useita rajapintoja",
"proxmoxAutoSync": "Synkronoi vieraat automaattisesti",
"proxmoxAutoSyncDesc": "Etsi tämä Proxmox-solmu säännöllisesti ja luo tai päivitä tuotuja vieraskomanteja istunnon ollessa lukitsematon.",
"proxmoxSyncInterval": "Synkronointiväli (minuuttia)",
"proxmoxSyncIntervalDesc": "Vähintään 5 minuuttia. Ajastin ohittaa lukitut käyttäjäistunnot.",
"proxmoxMarkMissing": "Merkitse puuttuvat vieraat",
"proxmoxMarkMissingDesc": "Lisää proxmox-missing-tunniste, kun aiemmin tuotu vieras katoaa sen poistamisen sijaan.",
"proxmoxLastSync": "Viimeisin synkronointi",
"proxmoxLastSyncNever": "Ei vielä synkronoitu",
"proxmoxLastSyncNoResult": "Ei tulostietoja",
"proxmoxLastSyncSummary": "{{created}} luotu, {{updated}} päivitetty, {{markedMissing}} puuttuu, {{skipped}} ohitettu",
"proxmoxLastSyncStatus": {
"success": "Menestys",
"error": "Epäonnistui",
"pending": "Odottaa"
},
"proxmoxDiscoverAction": "Löydä ja tuo Proxmox-vieraita",
"proxmoxImportTitle": "Tuo Proxmoxista",
"proxmoxSelectHost": "Valitse Proxmox-isäntä…",
"proxmoxDiscover": "Tutustu",
"proxmoxDiscovering": "Löytöretkellä…",
"proxmoxDiscoverGuests": "Tutustu vieraisiin",
"proxmoxGuestsSelected_one": "{{count}} vieras — {{selected}} valittu",
"proxmoxGuestsSelected_other": "{{count}} vieraat — {{selected}} valittu",
"proxmoxSelectAll": "Valitse kaikki",
"proxmoxDeselectAll": "Poista kaikkien valinta",
"proxmoxNoGuests": "Tältä Proxmox-solmulta ei löytynyt vieraita.",
"proxmoxImportButton_one": "Tuo {{count}} isäntä",
"proxmoxImportButton_other": "Tuo {{count}} isäntiä",
"proxmoxResultImported": "{{count}} tuotu",
"proxmoxResultUpdated": "{{count}} päivitetty",
"proxmoxResultFailed": "{{count}} epäonnistui",
"proxmoxImportComplete": "Proxmox-tuonti valmis: {{summary}}",
"proxmoxDiscoveryFailed": "Löytö epäonnistui",
"proxmoxImportFailed": "Tuonti epäonnistui",
"enableFileManagerMonitor": "Ota tiedostonhallinta käyttöön",
"enableFileManagerMonitorDesc": "Selaa ja hallinnoi tiedostoja tällä isännöinnillä SFTP:n kautta",
"scpLegacyLabel": "SCP:n vanha tila",
"scpLegacyDesc": "Käytä vanhaa tiedostonsiirtoa palvelimilla, jotka eivät tue SFTP-alijärjestelmää (esim. sulautetut tai minimaaliset SSH-palvelimet).",
"defaultPathLabel": "Oletuspolku",
"fileManagerPathHint": "Hakemisto, joka avataan, kun tiedostonhallinta käynnistyy tälle isännälle.",
"statusChecksLabel": "Tilatarkastukset",
"enableStatusChecks": "Ota käyttöön tilan tarkistukset",
"enableStatusChecksDesc": "Lähetä tälle isännälle säännöllisesti ping-viesti saatavuuden varmistamiseksi.",
"useGlobalInterval": "Käytä globaalia väliä",
"useGlobalIntervalDesc": "Ohita palvelimen laajuisella tilan tarkistusvälillä",
"checkIntervalS": "Tarkistusväli (s)",
"checkIntervalDesc": "Sekunteja yhteyskutsujen välillä",
"metricsCollectionLabel": "Mittarikokoelma",
"enableMetricsLabel": "Ota mittarit käyttöön",
"enableMetricsDesc": "Kerää prosessorin, RAMin, levyn ja muita mittareita tältä isännältä",
"useGlobalMetrics": "Käytä globaalia intervallia",
"useGlobalMetricsDesc": "Ohita palvelimen laajuisella mittarivälillä",
"metricsIntervalS": "Mittariväli (s)",
"metricsIntervalDesc2": "Sekunteja mittareiden tilannevedosten välillä",
"visibleWidgets": "Näkyvät widgetit",
"widgetsMovedToHostMetrics": "Kortteja lisätään, järjestetään ja niiden kokoa muutetaan nyt suoraan Isännän mittarit -välilehdellä. Avaa tämän isännän Isännän mittarit ja valitse näytettävät kortit Mukauta-toiminnolla.",
"cpuUsageLabel": "Suorittimen käyttö",
"cpuUsageDesc": "Suorittimen prosenttiosuus, kuormituksen keskiarvot, sparkline-kaavio",
"memoryLabel": "Muistin käyttö",
"memoryDesc": "RAM-käyttö, swap-muisti, välimuisti",
"storageLabel": "Levyn käyttö",
"storageDesc": "Levyn käyttö liitoskohtaa kohden",
"networkLabel": "Verkkoliitännät",
"networkDesc": "Liitäntäluettelo ja kaistanleveys",
"uptimeLabel": "Käyttöaika",
"uptimeDesc": "Järjestelmän käyttöaika ja käynnistysaika",
"systemInfoLabel": "Järjestelmätiedot",
"systemInfoDesc": "Käyttöjärjestelmä, ydin, isäntänimi, arkkitehtuuri",
"recentLoginsLabel": "Viimeisimmät kirjautumiset",
"recentLoginsDesc": "Onnistuneet ja epäonnistuneet kirjautumistapahtumat",
"topProcessesLabel": "Tärkeimmät prosessit",
"topProcessesDesc": "PID, CPU%, MEM%, komento",
"listeningPortsLabel": "Kuunteluportit",
"listeningPortsDesc": "Avaa portteja prosessilla ja tilalla",
"firewallLabel": "Palomuuri",
"firewallDesc": "Palomuurin, AppArmorin ja SELinuxin tila",
"quickActionsLabel": "Pikatoiminnot",
"quickActionsToolbar": "Pikatoiminnot näkyvät painikkeina isäntämetriikkatyökalurivillä komentojen suorittamista varten yhdellä napsautuksella.",
"noQuickActions": "Ei vielä nopeita toimia.",
"buttonLabel": "Painikkeen nimi",
"selectSnippetPlaceholder": "Valitse katkelma...",
"addActionBtn": "Lisää toiminto",
"hostSharedSuccessfully": "Isäntä jaettu onnistuneesti",
"failedToShareHost": "Isännän jakaminen epäonnistui",
"accessRevoked": "Pääsy peruutettu",
"failedToRevokeAccess": "Käyttöoikeuden peruuttaminen epäonnistui",
"cancelBtn": "Peruuttaa",
"savingBtn": "Tallennetaan...",
"addHostBtn": "Lisää isäntä",
"hostUpdated": "Isäntä päivitetty",
"hostCreated": "Isäntä luotu",
"failedToSave": "Isännän tallentaminen epäonnistui",
"credentialUpdated": "Tunnistetiedot päivitetty",
"credentialCreated": "Tunniste luotu",
"failedToSaveCredential": "Tunnusten tallentaminen epäonnistui",
"credentialNameRequired": "Anna tunnisteelle nimi",
"credentialAuthRequired": "Lisää salasana, SSH-avain tai molemmat",
"backToHosts": "Takaisin isäntiin",
"backToCredentials": "Takaisin tunnistetietoihin",
"pinned": "Kiinnitetty",
"noHostsFound": "Ei isäntiä",
"tryDifferentTerm": "Kokeile eri termiä",
"addFirstHost": "Lisää ensimmäinen isäntäsi aloittaaksesi",
"noCredentialsFound": "Tunnuksia ei löytynyt",
"addCredentialBtn": "Lisää tunnistetiedot",
"updateCredentialBtn": "Päivitä tunnistetiedot",
"features": "Ominaisuudet",
"noFolder": "(Ei kansiota)",
"deleteSelected": "Poistaa",
"exitSelection": "Poistu valinnasta",
"importSkip": "Tuo (ohita olemassa oleva)",
"importOverwrite": "Tuo (korvaa)",
"collapseBtn": "Romahdus",
"importExportBtn": "Tuonti / vienti",
"hostStatusesRefreshed": "Isäntien tilat päivitetty",
"failedToRefreshHosts": "Isäntien päivittäminen epäonnistui",
"movedHostTo": "Siirretty {{host}} kohtaan \"{{folder}}\"",
"failedToMoveHost": "Isännän siirtäminen epäonnistui",
"folderRenamedTo": "Kansio nimettiin uudelleen muotoon \"{{name}}\"",
"deletedFolder": "Poistettu kansio \"{{name}}\"",
"failedToDeleteFolder": "Kansion poistaminen epäonnistui",
"deleteAllInFolder": "Poistetaanko kaikki isännät kohdassa \"{{name}}\"? Tätä ei voi perua.",
"folderPickerPlaceholder": "Ei kansiota",
"folderPickerSearch": "Hae tai luo (käytä /-merkkiä alikansioille)...",
"folderPickerNone": "Ei kansiota",
"folderPickerCreate": "Luo \"{{path}}\"",
"folderPickerEmpty": "Ei vastaavia kansioita",
"newFolder": "Uusi kansio",
"createFolderTitle": "Luo kansio",
"editFolderTitle": "Muokkaa kansiota",
"folderDialogDescription": "Valitse nimi, väri ja kuvake. Käytä /-merkkiä kansioiden sisäkkäisyyteen.",
"folderNameLabel": "Kansion nimi",
"folderNamePlaceholder": "esim. Tuotanto/Verkko",
"folderNestingHint": "Käytä /-merkkiä tasojen erottamiseen ja sisäkkäisten kansioiden luomiseen.",
"folderColor": "Väri",
"folderIcon": "Kuvake",
"folderPreview": "Esikatselu",
"folderNameFallback": "Nimetön kansio",
"createFolderButton": "Luo kansio",
"saveFolderButton": "Tallenna kansio",
"cancel": "Peruuttaa",
"iconSearchPlaceholder": "Hakukuvakkeet...",
"openAllSessions": "Avaa kaikki istunnot",
"editFolder": "Muokkaa kansiota",
"deleteFolder": "Poista kansio",
"folderSaved": "Kansio tallennettu",
"failedToSaveFolder": "Kansion tallentaminen epäonnistui",
"folderDeleted": "Poistettu kansio \"{{name}}\"",
"deleteFolderConfirm": "Poistetaanko \"{{name}}\" ja sen {{count}} isäntä(t)? Tätä ei voi perua.",
"failedToMoveHosts": "Isäntien siirtäminen epäonnistui",
"expandAll": "Laajenna kaikki kansiot",
"collapseAll": "Pienennä kaikki kansiot",
"moreActions": "Lisää",
"groupBy": "Ryhmittele",
"GroupByFolder": "Kansio",
"GroupByTag": "Tag",
"GroupByStatus": "Status",
"GroupByProtocol": "Protokolla",
"GroupByAuth": "Valtuutustyyppi",
"groupUngrouped": "Ryhmittelemätön",
"deletedHost": "Poistettu {{name}}",
"copiedToClipboard": "Kopioitu leikepöydälle",
"terminalUrlCopied": "Päätelaitteen URL-osoite kopioitu",
"fileManagerUrlCopied": "Tiedostonhallinnan URL-osoite kopioitu",
"tunnelUrlCopied": "Tunnelin URL-osoite kopioitu",
"dockerUrlCopied": "Dockerin URL-osoite kopioitu",
"hostMetricsUrlCopied": "Isäntämittarien URL-osoite kopioitu",
"tmuxMonitorUrlCopied": "Tmux-monitorin URL-osoite kopioitu",
"rdpUrlCopied": "RDP-URL-osoite kopioitu",
"vncUrlCopied": "VNC-URL-osoite kopioitu",
"telnetUrlCopied": "Telnet-URL-osoite kopioitu",
"remoteDesktopUrlCopied": "Etätyöpöydän URL-osoite kopioitu",
"expandActions": "Laajenna toimintoja",
"collapseActions": "Tiivistä toiminnot",
"wakeOnLanAction": "Herätys lähiverkossa",
"wakeOnLanSuccess": "Taikapaketti lähetetty osoitteeseen {{name}}",
"wakeOnLanError": "Taikapaketin lähettäminen epäonnistui",
"cloneHostAction": "Klooni-isäntä",
"copyAddress": "Kopioi osoite",
"copyLink": "Kopioi linkki",
"copyTerminalUrlAction": "Kopioi terminaalin URL-osoite",
"copyFileManagerUrlAction": "Kopioi tiedostonhallinnan URL-osoite",
"copyTunnelUrlAction": "Kopioi tunnelin URL-osoite",
"copyDockerUrlAction": "Kopioi Dockerin URL-osoite",
"copyHostMetricsUrlAction": "Kopioi isäntätietojen URL-osoite",
"copyTmuxMonitorUrlAction": "Kopioi Tmux-monitorin URL-osoite",
"copyRdpUrlAction": "Kopioi RDP-URL-osoite",
"copyVncUrlAction": "Kopioi VNC-URL-osoite",
"copyTelnetUrlAction": "Kopioi Telnet-URL-osoite",
"copyRemoteDesktopUrlAction": "Kopioi etätyöpöydän URL-osoite",
"deleteCredentialConfirm": "Poistetaanko tunnistetiedot \"{{name}}\"?",
"deletedCredential": "Poistettu {{name}}",
"deploySSHKeyTitle": "Ota SSH-avain käyttöön",
"deployingBtn": "Käyttöönotto...",
"deployBtn": "Ota käyttöön",
"failedToDeployKey": "Avaimen käyttöönotto epäonnistui",
"deleteHostsConfirm": "Poistetaanko {{count}} isäntä{{plural}}? Tätä ei voi perua.",
"movedToRoot": "Siirretty pääkäyttäjäksi",
"enableTerminalFeature": "Ota terminaali käyttöön",
"disableTerminalFeature": "Poista käytöstä terminaali",
"enableFilesFeature": "Ota tiedostot käyttöön",
"disableFilesFeature": "Poista tiedostot käytöstä",
"enableTunnelsFeature": "Ota tunnelit käyttöön",
"disableTunnelsFeature": "Tunnelien poistaminen käytöstä",
"enableDockerFeature": "Ota Docker käyttöön",
"disableDockerFeature": "Poista Docker käytöstä",
"enableProxmoxFeature": "Ota Proxmox käyttöön",
"disableProxmoxFeature": "Poista Proxmox käytöstä",
"addTagsPlaceholder": "Lisää tunnisteita...",
"authDetails": "Todennustiedot",
"credType": "Tyyppi",
"generateKeyPairDesc": "Luo uusi avainpari, sekä yksityiset että julkiset avaimet täytetään automaattisesti.",
"generatingKey": "Luodaan...",
"generateLabel": "Luo {{label}}",
"uploadFileBtn": "Lähetä tiedosto",
"keyPassphraseOptional": "Avaimen salasana (valinnainen)",
"sshPublicKeyOptional": "SSH-julkinen avain (valinnainen)",
"publicKeyGenerated": "Julkinen avain luotu",
"failedToGeneratePublicKey": "Julkisen avaimen johtaminen epäonnistui",
"publicKeyCopied": "Julkinen avain kopioitu",
"keyPairGenerated": "{{label}} avainpari luotu",
"failedToGenerateKeyPair": "Avainparin luominen epäonnistui",
"searchHostsPlaceholder": "Hae isäntiä, osoitteita, tunnisteita…",
"searchCredentialsPlaceholder": "Hakutunnisteet…",
"refreshBtn": "Päivitä",
"addTag": "Lisää tunnisteita...",
"deleteConfirmBtn": "Poistaa",
"tunnelRequirementsText": "SSH-palvelimella on oltava GatewayPorts-, AllowTcpForwarding- ja PermitRootLogin-arvot asetettuina tiedostossa /etc/ssh/sshd_config.",
"deleteHostConfirm": "Poistetaanko \"{{name}}\"?",
"enableAtLeastOneProtocol": "Ota käyttöön vähintään yksi yllä olevista protokolla todennus- ja yhteysasetusten määrittämiseksi.",
"keyPassphrase": "Avaimen salasana",
"connectBtn": "Yhdistä",
"disconnectBtn": "Katkaise yhteys",
"basicInformation": "Perustiedot",
"authDetailsSection": "Todennustiedot",
"credTypeLabel": "Tyyppi",
"hostsTab": "Isännät",
"credentialsTab": "Valtakirjat",
"selectMultiple": "Valitse useita",
"selectHosts": "Valitse isännät",
"connectionLabel": "Yhteys",
"authenticationLabel": "Todennus",
"generateKeyPairTitle": "Luo avainpari",
"generateKeyPairDescription": "Luo uusi avainpari, sekä yksityiset että julkiset avaimet täytetään automaattisesti.",
"generateFromPrivateKey": "Luo yksityisestä avaimesta",
"refreshBtn2": "Päivitä",
"exitSelectionTitle": "Poistu valinnasta",
"exportAll": "Vie kaikki",
"exportForSharing": "Vie jakamista varten",
"addHostBtn2": "Lisää isäntä",
"addCredentialBtn2": "Lisää tunnistetiedot",
"checkingHostStatuses": "Tarkistetaan isännän tiloja...",
"pinnedSection": "Kiinnitetty",
"hostsExported": "Isännät vietiin onnistuneesti",
"hostsShareExported": "Jaettavien isäntien vienti onnistui",
"exportFailed": "Isäntien vienti epäonnistui",
"sampleDownloaded": "Näytetiedosto ladattu",
"failedToDeleteCredential2": "Tunnuksen poistaminen epäonnistui",
"noFolderOption": "(Ei kansiota)",
"nSelected": "{{count}} valittu",
"featuresMenu": "Ominaisuudet",
"moveMenu": "Liikkua",
"connectSelected": "Yhdistä",
"cancelSelection": "Peruuttaa",
"deployDialogDesc": "Ota käyttöön {{name}} isännän authorized_keys -avaimiin.",
"targetHostLabel": "Kohdeisäntä",
"selectHostOption": "Valitse isäntä...",
"keyDeployedSuccess": "Avain otettu käyttöön onnistuneesti",
"failedToDeployKey2": "Avaimen käyttöönotto epäonnistui",
"deletedCount": "Poistetut {{count}} isäntää",
"failedToDeleteCount": "{{count}} isännän poistaminen epäonnistui",
"duplicatedHost": "Kopioitu \"{{name}}\"",
"failedToDuplicateHost": "Isännän kopiointi epäonnistui",
"updatedCount": "Päivitetyt {{count}} isännät",
"friendlyNameLabel": "Ystävällinen nimi",
"descriptionLabel": "Kuvaus",
"loadingHost": "Ladataan isäntää...",
"loadingHosts": "Ladataan isäntiä...",
"loadingCredentials": "Tunnistetietoja ladataan...",
"noHostsYet": "Ei vielä isäntiä",
"noHostsMatchSearch": "Hakuasi vastaavia isäntiä ei löytynyt",
"hostNotFound": "Isäntää ei löydy",
"searchHosts": "Hae isäntiä...",
"sortHosts": "Lajittele isännät",
"sortDefault": "Oletusjärjestys",
"sortNameAsc": "Nimi (A → Ö)",
"sortNameDesc": "Nimi (Ö → A)",
"sortIpAsc": "IP-osoite (nouseva)",
"sortIpDesc": "IP-osoite (kuvaus)",
"sortOnlineFirst": "Verkossa ensin",
"sortOfflineFirst": "Offline First",
"sortPinnedFirst": "Kiinnitetty ensin",
"filterHosts": "Suodata isännät",
"filterClearAll": "Tyhjennä suodattimet",
"filterStatusGroup": "Status",
"filterOnline": "Verkossa",
"filterOffline": "Offline-tilassa",
"filterPinned": "Kiinnitetty",
"filterAuthGroup": "Valtuutustyyppi",
"filterAuthPassword": "Salasana",
"filterAuthKey": "SSH-avain",
"filterAuthCredential": "Valtakirja",
"filterAuthNone": "Ei mitään",
"filterAuthOpkssh": "OPKSSH",
"filterProtocolGroup": "Protokolla",
"filterProtocolSsh": "SSH",
"filterProtocolRdp": "Maaseudun kehittämisohjelma",
"filterProtocolVnc": "VNC",
"filterProtocolTelnet": "Telnet",
"filterFeaturesGroup": "Ominaisuudet",
"filterFeatureTerminal": "Terminaali",
"filterFeatureFileManager": "Tiedostonhallinta",
"filterFeatureTunnel": "Tunneli",
"filterFeatureDocker": "Satamatyöläinen",
"filterTagsGroup": "Tunnisteet",
"shareHost": "Jaa isäntä",
"shareHostTitle": "Jaa: {{name}}",
"sharing": {
"loadError": "Jakamistietojen lataaminen epäonnistui. Yritä uudelleen.",
"shareWithSection": "Jaa kanssa",
"usersTab": "Käyttäjät",
"rolesTab": "Roolit",
"searchPlaceholder": "Hae käyttäjiä tai rooleja...",
"noMatches": "Ei osumia",
"permissionLevelLabel": "Käyttöoikeustaso",
"levels": {
"connect": {
"label": "Yhdistä",
"description": "Vain avoimet istunnot: pääte, etätyöpöytä, tiedostonhallinta, tunnelit ja Docker. Ei pääsyä isäntäkokoonpanoon."
},
"view": {
"label": "Näytä",
"description": "Yhdistä ja katso isäntäkokoonpano. Salaisuuksia ei koskaan näytetä."
},
"edit": {
"label": "Muokata",
"description": "Näytä ja muokkaa isäntää. Salaisuuksia voidaan korvata, mutta niitä ei voida koskaan lukea; tunnistetietojen määritykset pysyvät vain omistajalla."
},
"manage": {
"label": "Hallitse",
"description": "Muokkaa ja jaa isäntä muiden kanssa, muuta käyttöoikeustasoja ja peruuta käyttöoikeuksia."
}
},
"expiryLabel": "Käyttöoikeuden päättyminen",
"expiry": {
"never": "Ei koskaan",
"oneHour": "1 tunti",
"oneDay": "24 tuntia",
"sevenDays": "7 päivää",
"thirtyDays": "30 päivää",
"custom": "Mukautettu"
},
"customHoursPlaceholder": "Tuntia käyttöoikeuden vanhenemiseen",
"shareButton": "Jakaa",
"shareWithCount": "Jaa ({{count}})",
"currentAccess": "Nykyinen käyttöoikeus",
"noAccessEntries": "Tätä isäntää ei ole vielä jaettu",
"grantedBy": "Myöntänyt",
"expires": "Vanhenee",
"expired": "Vanhentunut",
"never": "Ei koskaan",
"revoke": "Peruuttaa",
"accessUpdated": "Käyttöoikeus päivitetty",
"accessUpdateFailed": "Käyttöoikeuksien päivittäminen epäonnistui",
"sharedBadge": "Jaettu",
"sharedBadgeTooltip": "Jaettu käyttäjän {{owner}} toimesta ({{level}} pääsy)",
"viewOnlyBanner": "{{owner}} jakaa tämän isännän kanssasi ja hänellä on katseluoikeudet. Määritykset ovat vain luku -tilassa.",
"sharedEditBanner": "{{owner}} jakaa tämän isännän kanssasi muokkausoikeuksin. Muutokset koskevat varsinaista isäntää; vain omistaja voi muuttaa todennusviitteitä.",
"ownerOnlyControl": "Vain isännän omistaja voi muuttaa tätä"
},
"guac": {
"connection": "Yhteys",
"authentication": "Todennus",
"storedCredential": "Tallennetut tunnistetiedot",
"noCredential": "Ei tunnistetietoja (suorat tunnistetiedot alla)",
"authMethod": "Todennustapa",
"authTypeDirect": "Suoraan",
"authTypeCredential": "Valtakirja",
"selectCredential": "Valitse tunnistetiedot...",
"connectionSettings": "Yhteysasetukset",
"displaySettings": "Näyttöasetukset",
"audioSettings": "Ääniasetukset",
"rdpPerformance": "RDP-suorituskyky",
"deviceRedirection": "Laitteen uudelleenohjaus",
"session": "Istunto",
"gateway": "Yhdyskäytävä",
"remoteApp": "Etäsovellus",
"clipboard": "Leikepöytä",
"sessionRecording": "Istunnon tallennus",
"wakeOnLan": "Wake-on-LAN",
"vncSettings": "VNC-asetukset",
"terminalSettings": "Pääteasetukset",
"rdpPort": "RDP-portti",
"username": "Käyttäjätunnus",
"password": "Salasana",
"domain": "Verkkotunnus",
"securityMode": "Suojaustila",
"colorDepth": "Värisyvyys",
"width": "Leveys",
"height": "Korkeus",
"dpi": "DPI",
"resizeMethod": "Koon muuttamismenetelmä",
"clientName": "Asiakkaan nimi",
"initialProgram": "Alkuperäinen ohjelma",
"serverLayout": "Palvelimen asettelu",
"timezone": "Aikavyöhyke",
"loadBalanceInfo": "Kuormituksen tasapainotustiedot / eväste",
"loadBalanceInfoDesc": "RD Connection Broker -eväste RDS-farmin kuormituksen tasapainottamista varten (esim. tsv://MS Terminal Services Plugin.1.CollectionName)",
"guacdProxy": "guacd-välityspalvelin",
"guacdHostname": "guacd-isäntä",
"guacdHostnamePlaceholder": "Globaali oletusarvo",
"guacdPort": "guacdin satama",
"guacdProxyDesc": "Ohita tämän yhteyden globaali guacd-instanssi. Jätä tyhjäksi käyttääksesi globaalisti määritettyä guacd-instanssia.",
"gatewayHostname": "Yhdyskäytävän isäntänimi",
"gatewayPort": "Yhdyskäytäväportti",
"gatewayUsername": "Yhdyskäytävän käyttäjätunnus",
"gatewayPassword": "Yhdyskäytävän salasana",
"gatewayDomain": "Yhdyskäytävän verkkotunnus",
"remoteAppProgram": "RemoteApp-ohjelma",
"workingDirectory": "Työhakemisto",
"arguments": "Argumentit",
"normalizeLineEndings": "Normalisoi rivinpäätteet",
"recordingPath": "Tallennuspolku",
"recordingName": "Tallenteen nimi",
"macAddress": "MAC-osoite",
"broadcastAddress": "Lähetysosoite",
"udpPort": "UDP-portti",
"waitTimeS": "Odotusaika (s)",
"driveName": "Aseman nimi",
"drivePath": "Ajopolku",
"ignoreCertificate": "Ohita varmenne",
"ignoreCertificateDesc": "Salli yhteydet itse allekirjoitettuja varmenteita käyttäviin isäntiin",
"forceLossless": "Pakota häviötön",
"forceLosslessDesc": "Pakota häviötön kuvan koodaus (korkeampi laatu, enemmän kaistanleveyttä)",
"disableAudio": "Poista ääni käytöstä",
"disableAudioDesc": "Mykistä kaikki etäistunnon äänet",
"enableAudioInput": "Ota äänitulo käyttöön (mikrofoni)",
"enableAudioInputDesc": "Lähetä paikallinen mikrofoni etäistuntoon",
"wallpaper": "Taustakuva",
"wallpaperDesc": "Näytä työpöydän taustakuva (poistaminen käytöstä parantaa suorituskykyä)",
"theming": "Teemat",
"themingDesc": "Ota käyttöön visuaaliset teemat ja tyylit",
"fontSmoothing": "Fontin pehmennys",
"fontSmoothingDesc": "Ota ClearType-fonttien renderöinti käyttöön",
"fullWindowDrag": "Koko ikkunan vetäminen",
"fullWindowDragDesc": "Näytä ikkunan sisältö vetämisen aikana",
"desktopComposition": "Työpöydän sommittelu",
"desktopCompositionDesc": "Ota Aero Glass -tehosteet käyttöön",
"menuAnimations": "Valikkoanimaatiot",
"menuAnimationsDesc": "Ota käyttöön valikoiden häivytys ja dia-animaatiot",
"disableBitmapCaching": "Poista bittikarttavälimuisti käytöstä",
"disableBitmapCachingDesc": "Poista bittikarttavälimuisti käytöstä (saattaa auttaa häiriöiden kanssa)",
"disableOffscreenCaching": "Poista käytöstä näytön ulkopuolinen välimuisti",
"disableOffscreenCachingDesc": "Poista käytöstä näytön ulkopuolinen välimuisti",
"disableGlyphCaching": "Poista käytöstä glyfien välimuisti",
"disableGlyphCachingDesc": "Poista merkkijonojen välimuisti käytöstä",
"enableGfx": "Ota käyttöön näytönsäästäjä",
"enableGfxDesc": "Käytä RemoteFX-grafiikkaputkea",
"enablePrinting": "Ota tulostus käyttöön",
"enablePrintingDesc": "Ohjaa paikalliset tulostimet etäistuntoon",
"enableDriveRedirection": "Ota aseman uudelleenohjaus käyttöön",
"enableDriveRedirectionDesc": "Yhdistä paikallinen kansio asemaksi etäistunnossa",
"createDrivePath": "Luo ajopolku",
"createDrivePathDesc": "Luo kansio automaattisesti, jos sitä ei ole olemassa",
"disableDownload": "Poista lataus käytöstä",
"disableDownloadDesc": "Estä tiedostojen lataaminen etäistunnosta",
"disableUpload": "Poista lähetys käytöstä",
"disableUploadDesc": "Estä tiedostojen lataaminen etäistuntoon",
"enableTouch": "Ota kosketus käyttöön",
"enableTouchDesc": "Ota kosketussyötteen edelleenlähetys käyttöön",
"consoleSession": "Konsoli-istunto",
"consoleSessionDesc": "Yhdistä konsoliin (istunto 0) uuden istunnon sijaan",
"sendWolPacket": "Lähetä WOL-paketti",
"sendWolPacketDesc": "Lähetä taikapaketti herättääksesi tämän isännän ennen yhteyden muodostamista",
"disableCopy": "Poista kopiointi käytöstä",
"disableCopyDesc": "Estä tekstin kopioiminen etäistunnosta",
"disablePaste": "Poista liittäminen käytöstä",
"disablePasteDesc": "Estä tekstin liittäminen etäistuntoon",
"createPathIfMissing": "Luo polku, jos se puuttuu",
"createPathIfMissingDesc": "Luo tallennushakemisto automaattisesti",
"excludeOutput": "Sulje pois tuloste",
"excludeOutputDesc": "Älä tallenna näytön tulostetta (vain metatiedot)",
"excludeMouse": "Sulje hiiri pois",
"excludeMouseDesc": "Älä tallenna hiiren liikkeitä",
"includeKeystrokes": "Sisällytä näppäinpainallukset",
"includeKeystrokesDesc": "Tallenna raakat näppäinpainallukset näytön tulosteen lisäksi",
"vncPort": "VNC-portti",
"vncPassword": "VNC-salasana",
"vncUsernameOptional": "Käyttäjätunnus (valinnainen)",
"vncLeaveBlank": "Jätä tyhjäksi, jos ei pakollinen",
"cursorMode": "Kohdistimen tila",
"swapRedBlue": "Vaihda punainen/sininen",
"swapRedBlueDesc": "Vaihda punaisen ja sinisen värikanavan paikkaa (korjaa joitakin väriongelmia)",
"readOnly": "Vain lukuoikeus",
"readOnlyDesc": "Katso etänäyttöä lähettämättä mitään syötettä",
"telnetPort": "Telnet-portti",
"terminalType": "Liittimen tyyppi",
"fontName": "Fontin nimi",
"fontSize": "Fonttikoko",
"colorScheme": "Värimaailma",
"backspaceKey": "Askelpalautin-näppäin",
"saveHostFirst": "Tallenna ensin isäntä.",
"sharingOptionsAfterSave": "Jakamisvaihtoehdot ovat käytettävissä isännän tallentamisen jälkeen.",
"permissionLevel": "Käyttöoikeustaso",
"typeHeader": "Tyyppi",
"targetHeader": "Kohde",
"permissionHeader": "Lupa",
"cancelBtn": "Peruuttaa",
"savingBtn": "Tallennetaan...",
"updateHostBtn": "Päivitä isäntä",
"addHostBtn": "Lisää isäntä"
}
},
"commandPalette": {
"searchPlaceholder": "Hae isäntiä, komentoja tai asetuksia...",
"quickActions": "Pikatoiminnot",
"hostManager": "Isäntäpäällikkö",
"hostManagerDesc": "Hallitse, lisää tai muokkaa isäntiä",
"addNewHost": "Lisää uusi isäntä",
"addNewHostDesc": "Rekisteröi uusi isäntä",
"adminSettings": "Järjestelmänvalvojan asetukset",
"adminSettingsDesc": "Järjestelmäasetusten ja käyttäjien määrittäminen",
"userProfile": "Käyttäjäprofiili",
"userProfileDesc": "Hallinnoi tiliäsi ja asetuksiasi",
"addCredential": "Lisää tunnistetiedot",
"addCredentialDesc": "SSH-avainten tai salasanojen tallentaminen",
"tmuxMonitor": "Tmux-näyttö",
"tmuxMonitorDesc": "Valvo tmux-istuntoja eri isännilläsi",
"recentActivity": "Viimeaikaiset toiminnot",
"serversAndHosts": "Palvelimet ja isännät",
"noHostsFound": "Ei löytynyt isäntiä, jotka vastaavat \"{{search}}\"",
"links": "Linkit",
"navigate": "Navigoida",
"select": "Valitse",
"toggleWith": "Vaihda"
},
"splitScreen": {
"paneEmpty": "Ruutu {{index}} - tyhjä",
"noTabAssigned": "Ei välilehteä määritettynä",
"focusedPane": "Aktiivinen ruutu"
},
"connections": {
"noConnections": "Ei yhteyksiä",
"noConnectionsDesc": "Avaa pääte, tiedostonhallinta tai etätyöpöytä nähdäksesi yhteydet täällä",
"connectedFor": "Yhdistetty kohteeseen {{duration}}",
"connected": "Yhdistetty",
"disconnected": "Yhteys katkennut",
"closeTab": "Sulje välilehti",
"closeConnection": "Sulje yhteys",
"forgetTab": "Unohtaa",
"removeBackground": "Poistaa",
"reconnect": "Yhdistä uudelleen",
"reopenTab": "Avaa uudelleen",
"sectionOpen": "Avata",
"sectionBackground": "Tausta",
"backgroundDesc": "Istunto jatkuu 30 minuuttia yhteyden katkaisemisen jälkeen, ja se voidaan yhdistää uudelleen.",
"persisted": "Jatkui taustalla",
"expiresIn": "Vanhenee {{duration}} kuluttua",
"search": "Hae yhteyksiä...",
"noSearchResults": "Ei hakuasi vastaavia yhteyksiä",
"rename": "Nimeä istunto uudelleen"
},
"guacamole": {
"connecting": "Yhdistetään {{type}} -istuntoon...",
"connectionError": "Yhteysvirhe",
"connectionFailed": "Yhteys epäonnistui",
"failedToConnect": "Yhteystunnuksen hakeminen epäonnistui",
"hostNotFound": "Isäntää ei löydy",
"noHostSelected": "Ei valittua isäntää",
"reconnect": "Yhdistä uudelleen",
"retry": "Yritä uudelleen",
"guacdUnavailable": "Etätyöpöytäpalvelu (guacd) ei ole käytettävissä. Varmista, että guacd on käynnissä, käytettävissä ja määritetty oikein järjestelmänvalvojan asetuksissa.",
"ctrlAltDel": "Ctrl+Alt+Del",
"toolbar": {
"ctrlAltDel": "Ctrl+Alt+Del",
"winL": "Win+L (Lukitusnäyttö)",
"winKey": "Windows-näppäin",
"ctrl": "Ctrl",
"alt": "Vaihtoehto",
"shift": "Siirtää",
"win": "Voittaa",
"stickyActive": "{{key}} (lukittu - napsauta vapauttaaksesi)",
"stickyInactive": "{{key}} (napsauta lukitaksesi)",
"esc": "Paeta",
"tab": "Välilehti",
"home": "Kotiin",
"end": "Loppu",
"pageUp": "Sivu ylös",
"pageDown": "Sivu alas",
"arrowUp": "Nuoli ylös",
"arrowDown": "Nuoli alas",
"arrowLeft": "Nuoli vasemmalle",
"arrowRight": "Nuoli oikealle",
"fnToggle": "Toimintonäppäimet",
"reconnect": "Yhdistä istunto uudelleen",
"collapse": "Pienennä työkalupalkki",
"expand": "Laajenna työkalupalkkia",
"dragHandle": "Vedä siirtääksesi"
}
},
"terminal": {
"connect": "Yhdistä isäntään",
"clear": "Tyhjennä",
"paste": "Liitä",
"reconnect": "Yhdistä uudelleen",
"connectionLost": "Yhteys katkesi",
"connected": "Yhdistetty",
"clipboardWriteFailed": "Kopiointi leikepöydälle epäonnistui. Varmista, että sivua käytetään HTTPS:n tai paikallisen isännän kautta.",
"clipboardReadFailed": "Leikepöydän lukeminen epäonnistui. Varmista, että leikepöydän käyttöoikeudet on myönnetty.",
"clipboardHttpWarning": "Liittäminen vaatii HTTPS:n. Käytä Ctrl+Shift+V tai käytä Termixiä HTTPS:n kautta.",
"passwordPromptFillTitle": "Täytä tallennettu salasana tähän kehotteeseen?",
"unknownError": "Tuntematon virhe tapahtui",
"websocketError": "WebSocket-yhteysvirhe",
"connecting": "Yhdistetään...",
"noHostSelected": "Ei valittua isäntää",
"reconnecting": "Yhdistetään uudelleen... ({{attempt}}/{{max}})",
"reconnected": "Yhdistäminen uudelleen onnistui",
"tmuxSessionCreated": "tmux-istunto luotu: {{name}}",
"tmuxSessionAttached": "tmux-istunto liitetty: {{name}}",
"tmuxUnavailable": "tmuxia ei ole asennettu etäkoneeseen, vaan käytetään vakiokuorta.",
"tmuxSessionPickerTitle": "tmux-istunnot",
"tmuxSessionPickerDesc": "Tältä isännältä löytyi olemassa olevia tmux-istuntoja. Valitse yksi liittääksesi sen uudelleen tai luodaksesi uuden istunnon.",
"tmuxWindows": "Ikkunat",
"tmuxWindowCount": "{{count}} ikkuna",
"tmuxAttached": "Liitetyt asiakkaat",
"tmuxAttachedCount": "{{count}} liitteenä",
"tmuxLastActivity": "Viimeisin aktiviteetti",
"tmuxTimeJustNow": "juuri nyt",
"tmuxTimeMinutes": "{{count}}minuuttia sitten",
"tmuxTimeHours": "{{count}}tuntia sitten",
"tmuxTimeDays": "{{count}}d sitten",
"tmuxCreateNew": "Aloita uusi istunto",
"tmuxCopyHint": "Säädä valintaa ja kopioi leikepöydälle painamalla Enter",
"tmuxDetach": "Irrota tmux-istunnosta",
"tmuxDetached": "Irrotettu tmux-istunnosta",
"maxReconnectAttemptsReached": "Yhteyden muodostamisen uudelleenyritysten enimmäismäärä saavutettu",
"closeTab": "Lähellä",
"connectionTimeout": "Yhteyden aikakatkaisu",
"terminalTitle": "Pääte - {{host}}",
"terminalWithPath": "Pääte - {{host}}:{{path}}",
"runTitle": "Juoksemassa {{command}} - {{host}}",
"totpRequired": "Kaksivaiheinen todennus vaaditaan",
"totpCodeLabel": "Vahvistuskoodi",
"totpVerify": "Vahvista",
"warpgateAuthRequired": "Warpgate-todennus vaaditaan",
"warpgateSecurityKey": "Suojausavain",
"warpgateAuthUrl": "Todennus-URL-osoite",
"warpgateOpenBrowser": "Avaa selaimessa",
"warpgateContinue": "Olen suorittanut todennuksen",
"opksshAuthRequired": "OPKSSH-todennus vaaditaan",
"opksshAuthDescription": "Suorita todennus selaimessasi jatkaaksesi. Tämä istunto on voimassa 24 tuntia.",
"opksshOpenBrowser": "Avaa selain todennusta varten",
"opksshWaitingForAuth": "Odotetaan selaimen todennusta...",
"opksshAuthenticating": "Todennusta käsitellään...",
"opksshTimeout": "Todennus aikakatkaistiin. Yritä uudelleen.",
"opksshAuthFailed": "Todennus epäonnistui. Tarkista tunnistetietosi ja yritä uudelleen.",
"opksshSignInWith": "Kirjaudu sisään tunnuksella {{provider}}",
"vaultAuthTitle": "Holviin kirjautuminen vaaditaan",
"vaultAuthDescription": "Ikkuna HashiCorp-holviin kirjautumista varten on avautunut. Kirjaudu sisään siinä. Yhteys jatkuu automaattisesti.",
"vaultAuthFailed": "Holvin todennus epäonnistui. Yritä uudelleen.",
"vaultReopen": "Avaa kirjautumisikkuna uudelleen",
"sudoPasswordPopupTitle": "Syötä salasana?",
"linkDialogTitle": "Avaa linkki",
"linkDialogOpen": "Avata",
"linkDialogCopy": "Kopioida",
"websocketAbnormalClose": "Yhteys katkesi odottamatta. Tämä voi johtua käänteisestä välityspalvelimesta tai SSL-määritysongelmasta. Tarkista palvelimen lokit.",
"connectionLogTitle": "Yhteysloki",
"connectionLogCopy": "Kopioi lokit leikepöydälle",
"connectionLogEmpty": "Ei vielä yhteyslokeja",
"connectionLogWaiting": "Yhteyslokeja odotetaan...",
"connectionLogCopied": "Yhteyslokit kopioitu leikepöydälle",
"connectionLogCopyFailed": "Lokien kopiointi leikepöydälle epäonnistui",
"connectionRejected": "Palvelin hylkäsi yhteyden. Tarkista todennus ja verkkoasetukset.",
"hostKeyRejected": "SSH-isännän avaimen vahvistus hylättiin. Yhteys katkaistu.",
"sessionTakenOver": "Istunto avattiin toisella välilehdellä. Yhdistetään uudelleen...",
"split": {
"splitTab": "Jaettu välilehti",
"addToSplit": "Lisää Splitiin",
"removeFromSplit": "Poista jaosta"
}
},
"fileManager": {
"noHostSelected": "Ei valittua isäntää",
"initializingEditor": "Editorin alustaminen...",
"file": "Tiedosto",
"folder": "Kansio",
"uploadFile": "Lähetä tiedosto",
"downloadFile": "Lataa",
"extractArchive": "Pura arkisto",
"extractingArchive": "Puretaan {{name}}...",
"archiveExtractedSuccessfully": "{{name}} uutettu onnistuneesti",
"extractFailed": "Poiminta epäonnistui",
"compressFile": "Pakkaa tiedosto",
"compressFiles": "Pakkaa tiedostot",
"compressFilesDesc": "Pakkaa {{count}} kohdetta arkistoon",
"archiveName": "Arkiston nimi",
"enterArchiveName": "Anna arkiston nimi...",
"compressionFormat": "Pakkausmuoto",
"selectedFiles": "Valitut tiedostot",
"andMoreFiles": "ja {{count}} lisää...",
"compress": "Pakkaa",
"compressingFiles": "Pakkaamalla {{count}} alkiota {{name}}...",
"filesCompressedSuccessfully": "{{name}} luotu onnistuneesti",
"compressFailed": "Pakkaus epäonnistui",
"edit": "Muokata",
"preview": "Esikatselu",
"previous": "Edellinen",
"next": "Seuraava",
"pageXOfY": "Sivu {{current}} / {{total}}",
"zoomOut": "Loitonna",
"zoomIn": "Lähennä",
"newFile": "Uusi tiedosto",
"newFolder": "Uusi kansio",
"rename": "Nimeä uudelleen",
"uploading": "Ladataan...",
"uploadingFile": "Ladataan {{name}}...",
"fileName": "Tiedoston nimi",
"folderName": "Kansion nimi",
"fileUploadedSuccessfully": "Tiedosto \"{{name}}\" ladattu onnistuneesti",
"failedToUploadFile": "Tiedoston lataaminen epäonnistui",
"fileDownloadedSuccessfully": "Tiedosto \"{{name}}\" ladattu onnistuneesti",
"failedToDownloadFile": "Tiedoston lataaminen epäonnistui",
"fileCreatedSuccessfully": "Tiedosto \"{{name}}\" luotu onnistuneesti",
"folderCreatedSuccessfully": "Kansio \"{{name}}\" luotu onnistuneesti",
"failedToCreateItem": "Kohteen luominen epäonnistui",
"operationFailed": "{{operation}} toiminto epäonnistui kohteelle {{name}}: {{error}}",
"failedToResolveSymlink": "Symlinkin ratkaiseminen epäonnistui",
"itemsDeletedSuccessfully": "{{count}} kohdetta poistettu onnistuneesti",
"failedToDeleteItems": "Kohteiden poistaminen epäonnistui",
"sudoPasswordRequired": "Järjestelmänvalvojan salasana vaaditaan",
"enterSudoPassword": "Anna sudo-salasana jatkaaksesi tätä toimintoa",
"sudoPassword": "Sudo-salasana",
"sudoOperationFailed": "Sudo-toiminto epäonnistui",
"sudoAuthFailed": "Sudo-todennus epäonnistui",
"dragFilesToUpload": "Pudota tiedostot tähän ladataksesi",
"emptyFolder": "Tämä kansio on tyhjä",
"searchFiles": "Hae tiedostoja...",
"upload": "Lataa",
"selectHostToStart": "Valitse isäntä tiedostonhallinnan aloittamiseksi",
"sshRequiredForFileManager": "Tiedostonhallinta vaatii SSH:n. Tässä isännässä SSH ei ole käytössä.",
"failedToConnect": "SSH-yhteyden muodostaminen epäonnistui",
"failedToLoadDirectory": "Hakemiston lataaminen epäonnistui",
"noSSHConnection": "SSH-yhteyttä ei ole saatavilla",
"copy": "Kopioida",
"cut": "Leikata",
"paste": "Liitä",
"copyPath": "Kopioi polku",
"copyPaths": "Kopioi polut",
"delete": "Poistaa",
"properties": "Ominaisuudet",
"refresh": "Päivitä",
"downloadFiles": "Lataa {{count}} tiedostoa selaimeen",
"copyFiles": "Kopioi {{count}} kohdetta",
"cutFiles": "Leikkaa {{count}} kohdetta",
"deleteFiles": "Poista {{count}} kohdetta",
"filesCopiedToClipboard": "{{count}} kohdetta kopioitiin leikepöydälle",
"filesCutToClipboard": "{{count}} kohdetta leikataan leikepöydälle",
"pathCopiedToClipboard": "Polku kopioitu leikepöydälle",
"pathsCopiedToClipboard": "{{count}} polut kopioitu leikepöydälle",
"failedToCopyPath": "Polun kopioiminen leikepöydälle epäonnistui",
"copyFolderLink": "Kopioi linkki kansioon",
"copyCurrentFolderLink": "Kopioi linkki nykyiseen kansioon",
"folderLinkCopied": "Kansiolinkki kopioitu leikepöydälle",
"failedToCopyFolderLink": "Kansiolinkin kopiointi epäonnistui",
"movedItems": "Siirretty {{count}} kohdetta",
"failedToDeleteItem": "Kohteen poistaminen epäonnistui",
"itemRenamedSuccessfully": "{{type}} nimettiin uudelleen onnistuneesti",
"failedToRenameItem": "Kohteen uudelleennimeäminen epäonnistui",
"download": "Lataa",
"openExternalEditor": "Avaa ulkopuolelta",
"chooseExternalEditor": "Valitse ulkoinen editori",
"externalEditorSelected": "Ulkoinen editori valittu",
"externalEditorDesktopOnly": "Ulkoinen editori on käytettävissä vain työpöytäsovelluksessa",
"externalEditorOpened": "Avattu ulkoisessa editorissa. Tallentamalla sinne muutokset latautuvat takaisin palvelimelle.",
"failedToOpenExternalEditor": "Ulkoisen editorin avaaminen epäonnistui",
"failedToSelectExternalEditor": "Ulkoisen editorin valinta epäonnistui",
"permissions": "Käyttöoikeudet",
"size": "Koko",
"modified": "Muokattu",
"path": "Polku",
"confirmDelete": "Oletko varma, että haluat poistaa {{name}}?",
"permissionDenied": "Lupa evätty",
"serverError": "Palvelinvirhe",
"fileSavedSuccessfully": "Tiedosto tallennettu onnistuneesti",
"failedToSaveFile": "Tiedoston tallennus epäonnistui",
"confirmDeleteSingleItem": "Oletko varma, että haluat poistaa pysyvästi \"{{name}}\"?",
"confirmDeleteMultipleItems": "Oletko varma, että haluat poistaa pysyvästi {{count}} kohdetta?",
"confirmDeleteMultipleItemsWithFolders": "Haluatko varmasti poistaa pysyvästi {{count}} kohdetta? Tämä koskee myös kansioita ja niiden sisältöä.",
"confirmDeleteFolder": "Oletko varma, että haluat poistaa pysyvästi kansion \"{{name}}\" ja kaiken sen sisällön?",
"permanentDeleteWarning": "Tätä toimintoa ei voi perua. Kohde/kohteet poistetaan pysyvästi palvelimelta.",
"recent": "Viimeaikaiset",
"pinned": "Kiinnitetty",
"folderShortcuts": "Kansion pikavalinnat",
"failedToReconnectSSH": "SSH-istunnon uudelleenyhdistäminen epäonnistui",
"openTerminalHere": "Avaa terminaali tästä",
"run": "Juokse",
"openTerminalInFolder": "Avaa pääte tässä kansiossa",
"openTerminalInFileLocation": "Avaa pääte tiedoston sijainnissa",
"runningFile": "Juokseminen - {{file}}",
"onlyRunExecutableFiles": "Voi suorittaa vain suoritettavia tiedostoja",
"directories": "Hakemistot",
"removedFromRecentFiles": "Poistettu \"{{name}}\" viimeisimmistä tiedostoista",
"removeFailed": "Poisto epäonnistui",
"unpinnedSuccessfully": "Pinnauksen \"{{name}}\" irrotettu onnistuneesti",
"unpinFailed": "Irrottaminen epäonnistui",
"removedShortcut": "Pikakuvake \"{{name}} \" poistettu",
"removeShortcutFailed": "Pikakuvakkeen poistaminen epäonnistui",
"clearedAllRecentFiles": "Tyhjensi kaikki viimeisimmät tiedostot",
"clearFailed": "Tyhjennys epäonnistui",
"removeFromRecentFiles": "Poista viimeisimmistä tiedostoista",
"clearAllRecentFiles": "Tyhjennä kaikki viimeisimmät tiedostot",
"unpinFile": "Irrota tiedosto",
"removeShortcut": "Poista pikakuvake",
"pinFile": "Kiinnitä tiedosto",
"addToShortcuts": "Lisää pikakuvakkeisiin",
"pasteFailed": "Liittäminen epäonnistui",
"noUndoableActions": "Ei peruuttamattomia toimintoja",
"undoCopySuccess": "Kopioinnin peruutus: Poistettu {{count}} kopioitua tiedostoa",
"undoCopyFailedDelete": "Kumoaminen epäonnistui: Kopioituja tiedostoja ei voitu poistaa",
"undoCopyFailedNoInfo": "Kumoaminen epäonnistui: Kopioituja tiedostotietoja ei löytynyt",
"undoMoveSuccess": "Peruttu siirto: Siirsi {{count}} tiedostoa takaisin alkuperäiseen sijaintiinsa",
"undoMoveFailedMove": "Kumoaminen epäonnistui: Tiedostoja ei voitu siirtää takaisin",
"undoMoveFailedNoInfo": "Kumoaminen epäonnistui: Siirretyn tiedoston tietoja ei löytynyt",
"undoDeleteNotSupported": "Poistoa ei voi perua: Tiedostot on poistettu pysyvästi palvelimelta",
"undoTypeNotSupported": "Ei-tuettu kumoamistoimintotyyppi",
"undoOperationFailed": "Kumoamistoiminto epäonnistui",
"unknownError": "Tuntematon virhe",
"confirm": "Vahvistaa",
"find": "Löytää...",
"replace": "Korvata",
"downloadInstead": "Lataa sen sijaan",
"keyboardShortcuts": "Pikanäppäimet",
"searchAndReplace": "Etsi ja korvaa",
"editing": "Muokkaus",
"search": "Haku",
"findNext": "Etsi seuraava",
"findPrevious": "Etsi edellinen",
"save": "Tallentaa",
"selectAll": "Valitse kaikki",
"undo": "Kumoa",
"redo": "Tee uudelleen",
"moveLineUp": "Siirrä riviä ylös",
"moveLineDown": "Siirrä rivi alas",
"toggleComment": "Näytä kommentti",
"autoComplete": "Automaattinen täydennys",
"imageLoadError": "Kuvan lataaminen epäonnistui",
"startTyping": "Aloita kirjoittaminen...",
"unknownSize": "Tuntematon koko",
"fileIsEmpty": "Tiedosto on tyhjä",
"largeFileWarning": "Varoitus suuresta tiedostosta",
"largeFileWarningDesc": "Tiedoston koko on {{size}} , mikä voi aiheuttaa suorituskykyongelmia avattaessa sitä tekstinä.",
"fileNotFoundAndRemoved": "Tiedostoa \"{{name}}\" ei löytynyt ja se on poistettu viimeksi käytettyjen/kiinnitettyjen tiedostojen joukosta.",
"failedToLoadFile": "Tiedoston lataus epäonnistui: {{error}}",
"serverErrorOccurred": "Palvelinvirhe. Yritä myöhemmin uudelleen.",
"autoSaveFailed": "Automaattinen tallennus epäonnistui",
"fileAutoSaved": "Tiedosto tallennettu automaattisesti",
"moveFileFailed": "Siirto epäonnistui {{name}}",
"moveOperationFailed": "Siirto epäonnistui",
"canOnlyCompareFiles": "Voi verrata vain kahta tiedostoa",
"comparingFiles": "Tiedostojen vertailu: {{file1}} ja {{file2}}",
"dragFailed": "Vetotoiminto epäonnistui",
"filePinnedSuccessfully": "Tiedosto \"{{name}}\" kiinnitetty onnistuneesti",
"pinFileFailed": "Tiedoston kiinnittäminen epäonnistui",
"fileUnpinnedSuccessfully": "Tiedosto \"{{name}}\" irrotettu onnistuneesti",
"unpinFileFailed": "Tiedoston irrottaminen epäonnistui",
"shortcutAddedSuccessfully": "Kansion pikakuvake \"{{name}}\" lisätty onnistuneesti",
"addShortcutFailed": "Pikakuvakkeen lisääminen epäonnistui",
"operationCompletedSuccessfully": "{{operation}} {{count}} kohteita onnistuneesti",
"operationCompleted": "{{operation}} {{count}} kohdetta",
"downloadFileSuccess": "Tiedosto {{name}} ladattu onnistuneesti",
"downloadFileFailed": "Lataus epäonnistui",
"moveTo": "Siirrä kohtaan {{name}}",
"diffCompareWith": "Vertaa eroa kohtaan {{name}}",
"dragOutsideToDownload": "Vedä ikkunan ulkopuolelle ladataksesi ({{count}} tiedostoa)",
"newFolderDefault": "Uusi kansio",
"newFileDefault": "UusiTiedosto.txt",
"successfullyMovedItems": "{{count}} kohdetta siirretty onnistuneesti kohteeseen {{target}}",
"move": "Liikkua",
"searchInFile": "Hae tiedostosta (Ctrl+F)",
"showKeyboardShortcuts": "Näytä pikanäppäimet",
"decreaseFontSize": "Pienennä fonttikokoa",
"increaseFontSize": "Suurenna fonttikokoa",
"startWritingMarkdown": "Aloita Markdown-sisältösi kirjoittaminen...",
"loadingFileComparison": "Tiedostojen vertailua ladataan...",
"reload": "Lataa uudelleen",
"compare": "Vertaa",
"sideBySide": "Rinnakkain",
"inline": "Rivissä",
"fileComparison": "Tiedostovertailu: {{file1}} vs. {{file2}}",
"fileTooLarge": "Tiedosto liian suuri: {{error}}",
"sshConnectionFailed": "SSH-yhteys epäonnistui. Tarkista yhteytesi kohteeseen {{name}} ({{ip}}:{{port}})",
"loadFileFailed": "Tiedoston lataus epäonnistui: {{error}}",
"connecting": "Yhdistetään...",
"connectedSuccessfully": "Yhteys onnistui",
"totpVerificationFailed": "TOTP-vahvistus epäonnistui",
"warpgateVerificationFailed": "Warpgate-todennus epäonnistui",
"authenticationFailed": "Todennus epäonnistui",
"incorrectPassphrase": "Virheellinen salasana. Yritä uudelleen.",
"verificationCodePrompt": "Vahvistuskoodi:",
"changePermissions": "Muuta käyttöoikeuksia",
"currentPermissions": "Nykyiset käyttöoikeudet",
"owner": "Omistaja",
"group": "Ryhmä",
"others": "Muut",
"read": "Lukea",
"write": "Kirjoittaa",
"execute": "Suorittaa",
"permissionsChangedSuccessfully": "Käyttöoikeudet muutettu onnistuneesti",
"failedToChangePermissions": "Käyttöoikeuksien muuttaminen epäonnistui",
"name": "Nimi",
"sortByName": "Nimi",
"sortByDate": "Muokkauspäivämäärä",
"sortBySize": "Koko",
"ascending": "Nouseva",
"descending": "Laskeva",
"root": "Juuri",
"new": "Uusi",
"sortBy": "Lajittele",
"items": "Kohteet",
"selected": "Valittu",
"editor": "Toimittaja",
"octal": "Oktaali",
"storage": "Säilytys",
"disk": "Levy",
"used": "Käytetty",
"of": "jostakin",
"toggleSidebar": "Näytä/piilota sivupalkki",
"cannotLoadPdf": "PDF-tiedoston lataaminen ei onnistu",
"pdfLoadError": "PDF-tiedoston lataamisessa tapahtui virhe.",
"loadingPdf": "Ladataan PDF-tiedostoa...",
"loadingPage": "Sivua ladataan..."
},
"transfer": {
"copyToHost": "Kopioi isäntäkoneeseen…",
"moveToHost": "Siirrä isäntäkoneeseen…",
"copyItemsToHost": "Kopioi {{count}} kohdetta isäntään…",
"moveItemsToHost": "Siirrä {{count}} kohdetta isäntään…",
"noHostsConnected": "Muita tiedostonhallintaohjelmia ei ole saatavilla.",
"noHostsConnectedHint": "Lisää toinen SSH-isäntä, jonka tiedostonhallinta on käytössä isäntähallinnassa.",
"selectDestinationHost": "Valitse kohdeisäntä",
"destinationPath": "Kohdepolku",
"recentDestinations": "Viimeaikaiset kohteet",
"collapseRecentDestinations": "Pienennä viimeisimmät kohteet",
"expandRecentDestinations": "Laajenna viimeisimmät kohteet",
"browseFolders": "Selaa kohdekansioita",
"browseDestination": "Selaa tai anna polku",
"confirmCopy": "Kopioida",
"confirmMove": "Liikkua",
"transferring": "Siirretään…",
"compressing": "Pakkaamalla…",
"extracting": "Poimitaan…",
"transferringItems": "Siirretään {{current}} / {{total}} kohdetta…",
"transferSuccess": "Siirto valmis",
"transferError": "Siirto epäonnistui",
"transferPartial": "Siirto suoritettu, mutta virheitä on {{count}}",
"transferPartialHint": "Siirto epäonnistui: {{paths}}",
"itemsSummary": "{{count}} kohdetta",
"destMustBeDirectory": "Määränpään on oltava hakemisto useiden kohteiden siirtoja varten",
"selectThisFolder": "Valitse tämä kansio",
"browsePathWillBeCreated": "Tätä kansiota ei ole vielä olemassa. Se luodaan, kun siirto alkaa.",
"browsePathError": "Tätä polkua ei voitu avata kohdepalvelimella.",
"goUp": "Mene ylös",
"copyFolderToHost": "Kopioi kansio isäntään…",
"moveFolderToHost": "Siirrä kansio isäntään…",
"hostReady": "Valmis",
"hostConnecting": "Yhdistetään…",
"hostDisconnected": "Ei yhdistetty",
"hostAuthRequired": "Todennus vaaditaan — avaa ensin tiedostonhallinta tällä isännöintikoneella",
"hostConnectionFailed": "Yhteys epäonnistui",
"metricsTitle": "Siirtoajat",
"metricsPrepare": "Valmistele kohde: {{duration}}",
"metricsCompress": "Pakkaa lähdekoodissa: {{duration}}",
"metricsHopSourceRead": "Lähde → palvelin: {{throughput}}",
"metricsHopDestSftpWrite": "Palvelin → kohde (SFTP): {{throughput}}",
"metricsHopDestLocalWrite": "Palvelin → kohde (paikallinen): {{throughput}}",
"metricsTransfer": "Päästä päähän: {{throughput}} ({{duration}})",
"metricsExtract": "Ote määränpäässä: {{duration}}",
"metricsSourceDelete": "Poista lähteestä: {{duration}}",
"metricsTotal": "Yhteensä: {{duration}}",
"progressCompressing": "Pakkaus lähdepalvelimella…",
"progressExtracting": "Puretaan kohteessa…",
"progressTransferring": "Tiedon siirtäminen…",
"progressReconnecting": "Yhdistetään uudelleen…",
"parallelSegmentsLabel": "Rinnakkaiset siirtokaistat",
"parallelSegmentsOption": "{{count}} kaistaa",
"parallelSegmentsHint": "Suuret tiedostot jaetaan 256 Mt:n osiin. Useat kaistat käyttävät erillisiä yhteyksiä (kuten useiden siirtojen aloittaminen) suuremman kokonaisläpivirtauksen saavuttamiseksi.",
"progressTotalSpeed": "{{speed}} yhteensä ({{lanes}} kaistaa)",
"progressTransferringItems": "Tiedostojen siirtäminen ({{current}} / {{total}})…",
"progressBytes": "{{transferred}} / {{total}}",
"progressItems": "{{current}} / {{total}} tiedostoa",
"sourceNotDeletedPartial": "Lähdetiedostot säilytetään (osittainen siirto)",
"jumpHostLimitation": "Molempien isäntien on oltava tavoitettavissa Termix-palvelimelta. Suoraa isäntien välistä reititystä ei tueta.",
"cancel": "Peruuttaa",
"methodLabel": "Siirtotapa",
"methodAuto": "Auto",
"methodTar": "Tar-arkisto",
"methodItemSftp": "Tiedostokohtainen SFTP",
"methodAutoHint": "Valitsee tar- tai tiedostokohtaisen SFTP:n tiedostomäärän, koon ja pakkautuvuuden perusteella. Yksittäiset tiedostot käyttävät aina suoratoistettavaa SFTP:tä.",
"methodTarHint": "Pakkaa lähdekoodissa, siirrä yksi arkisto, pura kohdetiedostossa. Vaatii tar-tiedoston molemmissa Unix-koneissa.",
"methodItemSftpHint": "Siirrä jokainen tiedosto erikseen SFTP:n kautta. Toimii kaikilla isännöintijärjestelmillä, mukaan lukien Windows.",
"methodPreviewLoading": "Siirtomenetelmän laskeminen…",
"methodPreviewError": "Siirtomenetelmän esikatselu ei onnistunut. Palvelin valitsee silti menetelmän käynnistyksen yhteydessä.",
"methodPreviewWillUseTar": "Käytetään: Tar-arkistoa",
"methodPreviewWillUseItemSftp": "Käytetään: Tiedostokohtaista SFTP:tä",
"methodPreviewScanSummary": "{{fileCount}} tiedostoa, {{totalSize}} yhteensä (skannattu lähdepalvelimella).",
"methodItemSftpLimitation": "Jokainen tiedosto käyttää samaa SFTP-tietovirtaa kuin yksittäiset tiedostokopiot, yksi kerrallaan. Edistyminen yhdistetään kaikkien tiedostojen välillä, joten palkki liikkuu hitaasti suurten tiedostojen käsittelyssä.",
"methodReason": {
"user_item_sftp": "Valitsit tiedostokohtaisen SFTP:n.",
"user_tar": "Valitsit tar-arkiston.",
"tar_unavailable": "Tar ei ole käytettävissä yhdellä tai molemmilla isännillä — sen sijaan käytetään tiedostokohtaista SFTP:tä.",
"windows_host": "Windows-isäntä on mukana tar-tiedostoa ei käytetä.",
"auto_multi_large": "Automaattinen: useita tiedostoja, mukaan lukien suuri tiedosto ({{largestSize}}), jossa on pakattavaa dataa — tar niputtaa yhdeksi siirroksi.",
"auto_single_large_in_archive": "Automaattinen: yksi suuri tiedosto ({{largestSize}}) tässä joukossa — tiedostokohtainen SFTP.",
"auto_many_incompressible": "Automaattinen: enimmäkseen pakkaamatonta dataa — tiedostokohtainen SFTP.",
"auto_many_files": "Automaattinen: monta tiedostoa ({{fileCount}}) — tar vähentää tiedostokohtaista laskentatehoa.",
"auto_default": "Automaattinen: tiedostokohtainen SFTP tälle joukolle."
},
"progressCancel": "Peruuttaa",
"progressCancelling": "Peruutetaan…",
"progressStalled": "Pysähtynyt",
"resumedHint": "Yhdistetty uudelleen toisessa ikkunassa aloitettuun aktiiviseen siirtoon.",
"transferCancelled": "Siirto peruttu",
"transferCancelledCopyHint": "Osittaisia tiedostoja voi jäädä kohteeseen.",
"transferCancelledMoveHint": "Kohdekansioon saattaa jäädä osittaisia tiedostoja. Lähdetiedostoja ei poistettu.",
"cleanupDestFiles": "Siivouskohde",
"cleanupDestFilesSuccess": "Osittainen tiedosto poistettu kohteesta",
"cleanupDestFilesPartial": "Joitakin osittaisia tiedostoja ei voitu poistaa",
"cleanupDestFilesNothing": "Ei mitään siivottavaa määränpäässä",
"cleanupDestFilesError": "Siivous epäonnistui",
"retryTransfer": "Yritä uudelleen",
"retryTransferError": "Uudelleenyritys epäonnistui",
"transferFailedRetryHint": "Kohteessa säilytettiin vain osa tiedoista. Uudelleenyritys jatkuu, kun yhteys on palannut."
},
"tunnels": {
"noSshTunnels": "Ei SSH-tunneleita",
"createFirstTunnelMessage": "Et ole vielä luonut SSH-tunneleita. Aloita määrittämällä tunneliyhteydet Host Managerissa.",
"connected": "Yhdistetty",
"disconnected": "Yhteys katkennut",
"connecting": "Yhdistetään...",
"error": "Virhe",
"canceling": "Peruutetaan...",
"connect": "Yhdistä",
"disconnect": "Katkaise yhteys",
"cancel": "Peruuttaa",
"port": "Portti",
"localPort": "Paikallinen satama",
"remotePort": "Etäportti",
"currentHostPort": "Nykyinen isäntäportti",
"endpointPort": "Päätepisteen portti",
"bindIp": "Paikallinen IP-osoite",
"endpointSshConfig": "Päätepisteen SSH-konfiguraatio",
"endpointSshHost": "Päätepisteen SSH-isäntä",
"endpointSshHostPlaceholder": "Valitse määritetty isäntä",
"endpointSshHostRequired": "Valitse kullekin asiakastunnelille SSH-päätepisteisäntä.",
"attempt": "Yritys {{current}} / {{max}}",
"nextRetryIn": "Seuraava uudelleenyritys {{seconds}} sekunnin kuluttua",
"clientTunnels": "Asiakastunnelit",
"clientTunnel": "Asiakastunneli",
"addClientTunnel": "Lisää asiakastunneli",
"noClientTunnels": "Tälle työpöydälle ei ole määritetty asiakastunneleita.",
"tunnelName": "Tunnelin nimi",
"remoteHost": "Etäisäntä",
"autoStart": "Automaattinen käynnistys",
"clientAutoStartDesc": "Käynnistyy, kun tämä työpöytäsovellus avautuu ja pysyy yhteydessä.",
"clientManualStartDesc": "Käytä Käynnistä- ja Pysäytä-painikkeita tältä riviltä. Termix ei avaa sitä automaattisesti.",
"clientRemoteServerNote": "Etä edelleenlähetys saattaa vaatia AllowTcpForwarding- ja GatewayPorts-määritykset SSH-päätepalvelimella. Etäportti sulkeutuu, kun tämä työpöytä katkaisee yhteyden.",
"clientTunnelStarted": "Asiakastunneli aloitettu",
"clientTunnelStopped": "Asiakastunneli pysäytetty",
"tunnelTestSucceeded": "Tunnelitesti onnistui",
"tunnelTestFailed": "Tunnelitesti epäonnistui",
"localSaved": "Asiakastunnelit tallennettu",
"localSaveError": "Paikallisten asiakastunnelien tallentaminen epäonnistui",
"invalidBindIp": "Paikallisen IP-osoitteen on oltava kelvollinen IPv4-osoite.",
"invalidLocalTargetIp": "Paikallisen kohde-IP-osoitteen on oltava kelvollinen IPv4-osoite.",
"invalidLocalPort": "Paikallisen portin on oltava välillä 165535.",
"invalidRemotePort": "Etäportin on oltava välillä 165535.",
"invalidLocalTargetPort": "Paikallisen kohdeportin on oltava välillä 165535.",
"invalidEndpointPort": "Päätepisteen portin on oltava välillä 165535.",
"duplicateAutoStartBind": "Vain yksi automaattisesti käynnistyvä asiakastunneli voi käyttää {{bind}} -merkkiä.",
"manualControlError": "Tunnelin tilan päivittäminen epäonnistui.",
"active": "Aktiivinen",
"start": "Aloita",
"stop": "Stop",
"test": "Testata",
"type": "Tunnelin tyyppi",
"typeLocal": "Paikallinen (-L)",
"typeRemote": "Kauko-ohjain (-R)",
"typeDynamic": "Dynaaminen (-D)",
"typeServerLocalDesc": "Nykyisestä isännästä päätepisteeseen.",
"typeServerRemoteDesc": "Päätepiste takaisin nykyiseen isäntään.",
"typeClientLocalDesc": "Paikallinen tietokone päätepisteeseen.",
"typeClientRemoteDesc": "Päätepiste takaisin paikalliseen tietokoneeseen.",
"typeClientDynamicDesc": "SOCKS paikallisella tietokoneella.",
"typeDynamicDesc": "Välitä SOCKS5 CONNECT -liikennettä SSH:n kautta",
"forwardDescriptionServerLocal": "Nykyinen isäntä {{sourcePort}} → päätepiste {{endpointPort}}.",
"forwardDescriptionServerRemote": "Päätepiste {{endpointPort}} → nykyinen isäntä {{sourcePort}}.",
"forwardDescriptionServerDynamic": "SOCKS nykyisellä koneella {{sourcePort}}.",
"forwardDescriptionClientLocal": "Paikallinen {{sourcePort}} → etäinen {{endpointPort}}.",
"forwardDescriptionClientRemote": "Etäinen {{sourcePort}} → paikallinen {{endpointPort}}.",
"forwardDescriptionClientDynamic": "SOCKS paikallisessa portissa {{sourcePort}}.",
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{endpoint}}:{{remotePort}}",
"summaryClientRemote": "{{endpoint}}:{{remotePort}} → {{localHost}}:{{localPort}}",
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SUKAT {{endpoint}} kautta",
"autoNameClientLocal": "Paikallinen {{localPort}} → {{endpoint}} {{remotePort}}",
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → paikallinen {{localPort}}",
"autoNameClientDynamic": "SUKAT {{localPort}} kautta {{endpoint}}",
"route": "Reitti:",
"lastStarted": "Viimeksi aloitettu",
"lastTested": "Viimeksi testattu",
"lastError": "Viimeisin virhe",
"maxRetries": "Uudelleenyritysten enimmäismäärä",
"maxRetriesDescription": "Uudelleenyritysten enimmäismäärä.",
"retryInterval": "Uudelleenyritysväli (sekuntia)",
"retryIntervalDescription": "Odotusaika uudelleenyritysten välillä.",
"local": "Paikallinen",
"remote": "Kauko",
"destination": "Määränpää",
"host": "Isäntä",
"mode": "Tila",
"noHostSelected": "Ei valittua isäntää",
"working": "Työskentely..."
},
"cardGrid": {
"dragToMove": "Vedä siirtääksesi",
"dragToResize": "Vedä muuttaaksesi kokoa",
"changeWidth": "Muuta leveyttä",
"removeCard": "Poista {{label}}",
"addCard": "Lisätä",
"columns": "Sarakkeet",
"empty": "Ei kortteja. Lisää kortit alla olevalla Lisää-toiminnolla."
},
"hostMetrics": {
"cpu": "Suoritin",
"memory": "Muisti",
"disk": "Levy",
"network": "Verkko",
"uptime": "Käyttöaika",
"processes": "Prosessit",
"available": "Saatavilla",
"free": "Ilmainen",
"connecting": "Yhdistetään...",
"connectionFailed": "Palvelimeen ei saatu yhteyttä",
"naCpus": "Ei saatavilla olevaa suoritinta",
"cpuCores_one": "{{count}} Ydin",
"cpuCores_other": "{{count}} Ytimet",
"cpuUsage": "Suorittimen käyttö",
"memoryUsage": "Muistin käyttö",
"diskUsage": "Levyn käyttö",
"temperature": "Lämpötila",
"highestTemperature": "Korkein lämpötila",
"failedToFetchHostConfig": "Isännän määritysten nouto epäonnistui",
"serverOffline": "Palvelin offline-tilassa",
"cannotFetchMetrics": "Mittarien nouto offline-palvelimelta ei onnistu",
"totpFailed": "TOTP-vahvistus epäonnistui",
"noneAuthNotSupported": "Isäntämittarit eivät tue 'none'-todennustyyppiä.",
"noHostSelected": "Ei valittua isäntää",
"load": "Ladata",
"systemInfo": "Järjestelmätiedot",
"hostname": "Isäntänimi",
"operatingSystem": "Käyttöjärjestelmä",
"kernel": "Ydin",
"seconds": "sekuntia",
"networkInterfaces": "Verkkoliitännät",
"noInterfacesFound": "Verkkoliitäntöjä ei löytynyt",
"noProcessesFound": "Ei prosesseja",
"processesTotal": "kokonais-",
"processesRunning": "juokseminen",
"loginStats": "SSH-kirjautumistilastot",
"noRecentLoginData": "Ei viimeaikaisia kirjautumistietoja",
"executingQuickAction": "Suoritetaan {{name}}...",
"quickActionSuccess": "{{name}} suoritettu onnistuneesti",
"quickActionFailed": "{{name}} epäonnistui",
"quickActionError": "Suoritus epäonnistui {{name}}",
"ports": {
"title": "Kuunteluportit",
"protocol": "Protokolla",
"port": "Portti",
"address": "Osoite",
"process": "Käsitellä",
"search": "Hakusatamat...",
"allProtocols": "Kaikki",
"noData": "Ei kuunteluporttien tietoja"
},
"firewall": {
"title": "Palomuuri",
"inactive": "Passiivinen",
"policy": "Käytäntö",
"rules": "säännöt",
"noRules": "Ei sääntöjä tässä ketjussa",
"noData": "Palomuuritietoja ei ole saatavilla",
"action": "Toiminta",
"protocol": "Proto",
"port": "Portti",
"source": "Lähde",
"anywhere": "Missä tahansa",
"chains": "ketjut"
},
"loadAvg": "Keskimääräinen lataus",
"swap": "Vaihtaa",
"architecture": "Arkkitehtuuri",
"refresh": "Päivitä",
"retry": "Yritä uudelleen",
"customize": "Mukauta asettelua",
"reset": "Nollaa",
"tabLive": "Elää",
"editModeInstructions": "Vedä kortteja järjestelläksesi niitä uudelleen, vedä alareunaa muuttaaksesi kokoa ja käytä leveyspainiketta muuttaaksesi kortin väliä. Lisää tai poista kortteja alla.",
"managers": {
"services": "Palvelut",
"processInspector": "Prosessitarkastaja",
"logViewer": "Lokikatseluohjelma",
"cron": "Cron-työt",
"packages": "Paketit",
"ssl": "SSL-sertifikaatit",
"firewall": "Palomuuri",
"users": "Käyttäjät ja käyttöoikeudet",
"healthCheck": "Terveystarkastukset",
"diskBreakdown": "Levyn erittely",
"systemdTimers": "Ajastimet",
"topMemory": "Muistin mukaan huippu",
"noData": "Ei tietoja",
"sudoHint": "Aseta tälle isännälle sudo-salasana isäntäeditorissa ottaaksesi käyttöön etuoikeutetut toiminnot.",
"filter": "Suodattaa...",
"start": "Aloita",
"stop": "Stop",
"restart": "Käynnistä uudelleen",
"actionDone": "{{name}} päivitetty",
"actionFailed": "Toiminto epäonnistui",
"signalSent": "Signaali lähetetään PID:lle {{pid}}",
"killHint": "Napsauta: lopeta (SIGTERM). Napsauta hiiren kakkospainikkeella: pakota lopettaminen (SIGKILL).",
"working": "Työskentely...",
"update": "Päivittää",
"upgradeAll": "Päivitä kaikki",
"allUpToDate": "Kaikki on ajan tasalla",
"save": "Tallentaa",
"command": "Komento",
"enabled": "Käytössä",
"cronSaved": "Crontab päivitetty",
"clients": "Asiakkaat",
"dryRun": "Kuiva ajo",
"renew": "Uudista",
"noAcmeClient": "Tältä isännältä ei löytynyt ACME-asiakasohjelmaa (certbot tai acme.sh).",
"addInputRule": "Lisää SYÖTTÖSääntö",
"firewallWarning": "Muutokset ovat vain ajonaikaisia, kunnes ne pysyvät voimassa. Varo lukitsemasta itseäsi ulos.",
"ruleApplied": "Sääntö sovellettu",
"invalidPort": "Anna kelvollinen portti (1-65535)",
"newUsername": "Uusi käyttäjätunnus",
"addUser": "Lisätä",
"deleteUser": "Poista käyttäjä",
"noHealthChecks": "Ei vielä määritettyjä kuntotarkastuksia.",
"follow": "Seuraa",
"noLogData": "Ei lokitulostetta.",
"tree": "Puu",
"enableDisable": "Ota käyttöön / poista käytöstä käynnistyksen yhteydessä",
"grantSudo": "Myönnä sudo",
"revokeSudo": "Peruuta sudo",
"sslIssueCert": "Myöntötodistus",
"sslExpired": "Vanhentunut",
"sslInDays": "{{days}}d:ssä",
"sslNeedDomain": "Anna vähintään yksi verkkotunnus",
"sslIssued": "Todistus myönnetty",
"sslDomainsPlaceholder": "esimerkki.com, www.esimerkki.com",
"sslHttpStandalone": "HTTP (erillinen)",
"sslHttpWebroot": "HTTP (verkkojuuri)",
"sslDns": "DNS",
"sslDnsProvider": "DNS-palveluntarjoaja (esim. cloudflare)",
"sslIssueHint": "DNS-palveluntarjoajan tunnistetietojen on oltava jo määritettyinä isännälle.",
"sslRevoke": "Peruuta varmenne",
"sslRevoked": "Varmenne peruutettu",
"sslRevokeConfirm": "Peruuttaa ja poistaa varmenne \"{{name}}\"? Tätä ei voi perua.",
"healthRun": "Juokse",
"healthName": "Nimi",
"healthTarget": "Isäntä / osoite",
"healthAddCheck": "Lisää shekki",
"healthSaved": "Terveystarkastukset tallennettu",
"healthMissingFields": "Jokaisella tarkistuksella on oltava nimi ja kohde",
"logFile": "Tiedosto",
"logUnit": "Yksikkö",
"logCustomPath": "Mukautettu polku /var/log-hakemistossa (valinnainen)",
"logGrep": "Suodata viivat...",
"firewallPersist": "Säilytä säännöt",
"firewallPersisted": "Palomuurisäännöt säilyivät",
"wireguard": "WireGuard",
"tailscale": "Tailscale",
"wgNotInstalled": "WireGuardia ei ole asennettu tälle koneelle",
"wgNoInterfaces": "Ei WireGuard-liitäntöjä määritettynä",
"wgInterfaceUp": "Tuo esiin",
"wgInterfaceDown": "Alentaa",
"wgBringingUp": "Tuodaan {{name}} esiin...",
"wgBringingDown": "Lasketaan {{name}} alas...",
"wgInterfaceUpDone": "{{name}} on ylhäällä",
"wgInterfaceDownDone": "{{name}} on alhaalla",
"wgListenPort": "Portti",
"wgPublicKey": "Julkinen avain",
"wgEndpoint": "Päätepiste",
"wgAllowedIPs": "Sallitut IP-osoitteet",
"wgLastHandshake": "Viimeinen kädenpuristus",
"wgHandshakeNever": "Ei koskaan",
"wgTransfer": "Siirtää",
"tsNotInstalled": "Tailscalea ei ole asennettu tälle isännälle",
"tsRunning": "Juoksu",
"tsStopped": "Pysähtynyt",
"tsEnable": "Yhdistä",
"tsDisable": "Katkaise yhteys",
"tsEnabling": "Yhdistetään Tailscaleen...",
"tsDisabling": "Yhteyden katkaiseminen Tailscaleen...",
"tsEnabled": "Tailscale yhdistetty",
"tsDisabled": "Tailscale irrotettu",
"tsIPs": "Tailscale IP-osoitteet",
"tsPeers": "Vertaiset",
"tsOnline": "Verkossa",
"tsOffline": "Offline-tilassa",
"tsExitNode": "Poistumissolmu",
"tsExitNodeActive": "Poistumissolmu aktiivinen",
"tsHostname": "Isäntänimi"
}
},
"auth": {
"tagline": "Itse isännöity SSH ja etätyöpöytähallinta",
"loginTitle": "Tervetuloa takaisin",
"registerTitle": "Luo tili",
"forgotPassword": "Unohditko salasanasi?",
"rememberMe": "Muista laite 30 päivän ajan (sisältää TOTP:n)",
"noAccount": "Eikö sinulla ole tiliä?",
"hasAccount": "Onko sinulla jo tili?",
"twoFactorAuth": "Kaksivaiheinen todennus",
"enterCode": "Syötä vahvistuskoodi",
"backupCode": "Tai käytä varakoodia",
"verifyCode": "Vahvista koodi",
"redirectingToApp": "Ohjataan sovellukseen...",
"sshAuthenticationRequired": "SSH-todennus vaaditaan",
"sshNoKeyboardInteractive": "Näppäimistöinteraktiivinen todennus ei ole käytettävissä",
"sshAuthenticationFailed": "Todennus epäonnistui",
"sshAuthenticationTimeout": "Todennuksen aikakatkaisu",
"sshNoKeyboardInteractiveDescription": "Palvelin ei tue näppäimistöinteraktiivista todennusta. Anna salasanasi tai SSH-avaimesi.",
"sshAuthFailedDescription": "Annetut tunnistetiedot olivat virheelliset. Yritä uudelleen kelvollisilla tunnistetiedoilla.",
"sshTimeoutDescription": "Todennusyritys aikakatkaistiin. Yritä uudelleen.",
"sshProvideCredentialsDescription": "Anna SSH-tunnuksesi muodostaaksesi yhteyden tähän palvelimeen.",
"sshPasswordDescription": "Anna tämän SSH-yhteyden salasana.",
"sshKeyPasswordDescription": "Jos SSH-avaimesi on salattu, anna salasana tähän.",
"passphraseRequired": "Salasana vaaditaan",
"passphraseRequiredDescription": "SSH-avain on salattu. Anna salasana avataksesi sen.",
"back": "Takaisin",
"firstUser": "Ensimmäinen käyttäjä",
"firstUserMessage": "Olet ensimmäinen käyttäjä ja sinusta tulee ylläpitäjä. Voit tarkastella ylläpitäjän asetuksia sivupalkin käyttäjävalikosta. Jos epäilet, että tämä on virhe, tarkista Docker-lokit tai luo GitHub-ongelma.",
"external": "Ulkoinen",
"loginWithExternal": "Kirjaudu sisään ulkoisella palveluntarjoajalla",
"loginWithExternalDesc": "Kirjaudu sisään käyttämällä määritettyä ulkoista identiteetintarjoajaasi",
"externalNotSupportedInElectron": "Ulkoista todennusta ei vielä tueta Electron-sovelluksessa. Käytä verkkoversiota OIDC-kirjautumiseen.",
"loginWithProvider": "Kirjaudu sisään tunnuksella {{name}}",
"orContinueWith": "tai jatka",
"ldapUsername": "LDAP-käyttäjätunnus",
"ldapPassword": "LDAP-salasana",
"ldapSignIn": "Kirjaudu sisään",
"ldapLoginFailed": "LDAP-kirjautuminen epäonnistui",
"resetPasswordButton": "Palauta salasana",
"sendResetCode": "Lähetä nollauskoodi",
"resetCodeDesc": "Syötä käyttäjätunnuksesi saadaksesi salasanan palautuskoodin. Koodi kirjataan Docker-säilön lokeihin.",
"resetCode": "Nollaa koodi",
"verifyCodeButton": "Vahvista koodi",
"enterResetCode": "Syötä käyttäjän Docker-säilön lokitiedoista löytyvä 6-numeroinen koodi:",
"newPassword": "Uusi salasana",
"confirmNewPassword": "Vahvista salasana",
"enterNewPassword": "Anna uusi salasana käyttäjälle:",
"signUp": "Rekisteröidy",
"desktopApp": "Työpöytäsovellus",
"loggingInToDesktopApp": "Kirjautuminen työpöytäsovellukseen",
"loadingServer": "Palvelinta ladataan...",
"dataLossWarning": "Salasanan palauttaminen tällä tavalla poistaa kaikki tallennetut SSH-isäntäpalvelimesi, tunnistetietosi ja muut salatut tiedot. Tätä toimintoa ei voi perua. Käytä tätä vain, jos olet unohtanut salasanasi etkä ole kirjautunut sisään.",
"authenticationDisabled": "Todennus poistettu käytöstä",
"authenticationDisabledDesc": "Kaikki todennusmenetelmät ovat tällä hetkellä poissa käytöstä. Ota yhteyttä järjestelmänvalvojaan.",
"passwordLoginDisabledDesc": "Salasanalla kirjautuminen on poistettu käytöstä. Käytä salasanaa tai ulkoista todennuspalveluntarjoajaa.",
"signInWithPasskey": "Kirjaudu sisään salasanalla",
"passkeyLoginFailed": "Salasanan kirjautuminen epäonnistui",
"attemptsRemaining": "{{count}} yritystä jäljellä",
"confirmResetDataWipe": "Tälle tilille ei ole kirjautunut sisään salauspäivityksen jälkeen, joten sen tallennettuja tietoja ei voida palauttaa ilman vanhaa salasanaa. Nollaaminen poistaa pysyvästi sen isännät, tunnistetiedot ja koodinpätkät. Jatketaanko?"
},
"hostKey": {
"verifyNewHost": "Vahvista SSH-isäntäavain",
"keyChangedWarning": "SSH-isäntäavain muuttunut",
"firstConnectionTitle": "Ensimmäinen kerta, kun muodostan yhteyden tähän isäntään",
"firstConnectionDescription": "Tämän isännän aitoutta ei voida vahvistaa. Varmista, että sormenjälki vastaa odotuksiasi.",
"keyChangedDescription": "Tämän palvelimen isäntäavain on muuttunut viimeisimmän yhteytesi jälkeen. Tämä voi viitata tietoturvaongelmaan.",
"previousKey": "Edellinen avain",
"newFingerprint": "Uusi sormenjälki",
"fingerprint": "Sormenjälki",
"verifyInstructions": "Jos luotat tähän isäntään, jatka napsauttamalla Hyväksy ja tallenna tämä sormenjälki tulevia yhteyksiä varten.",
"securityWarning": "Turvallisuusvaroitus",
"acceptAndContinue": "Hyväksy ja jatka",
"acceptNewKey": "Hyväksy uusi avain ja jatka"
},
"errors": {
"databaseConnection": "Tietokantaan ei saatu yhteyttä",
"unknownError": "Tuntematon virhe",
"loginFailed": "Kirjautuminen epäonnistui",
"failedPasswordReset": "Salasanan vaihdon aloittaminen epäonnistui",
"failedVerifyCode": "Nollauskoodin vahvistaminen epäonnistui",
"failedCompleteReset": "Salasanan vaihtaminen epäonnistui",
"invalidTotpCode": "Virheellinen TOTP-koodi",
"failedOidcLogin": "OIDC-kirjautumisen aloittaminen epäonnistui",
"silentSigninOidcUnavailable": "Hiljaista kirjautumista pyydettiin, mutta OIDC-kirjautuminen ei ole käytettävissä.",
"failedUserInfo": "Käyttäjätietojen hakeminen epäonnistui kirjautumisen jälkeen",
"oidcAuthFailed": "OIDC-todennus epäonnistui",
"invalidAuthUrl": "Virheellinen valtuutus-URL-osoite vastaanotettu taustajärjestelmästä",
"requiredField": "Tämä kenttä on pakollinen",
"minLength": "Minimipituus on {{min}}",
"passwordMismatch": "Salasanat eivät täsmää",
"passwordLoginDisabled": "Käyttäjätunnus/salasana-kirjautuminen on tällä hetkellä poistettu käytöstä",
"sessionExpired": "Istunto vanhentunut - kirjaudu sisään uudelleen",
"totpRateLimited": "Nopeus rajoitettu: Liian monta TOTP-vahvistusyritystä. Yritä myöhemmin uudelleen.",
"totpRateLimitedWithTime": "Nopeus rajoitettu: Liian monta TOTP-vahvistusyritystä. Odota {{time}} sekuntia ennen kuin yrität uudelleen.",
"resetCodeRateLimited": "Nopeus rajoitettu: Liian monta vahvistusyritystä. Yritä myöhemmin uudelleen.",
"resetCodeRateLimitedWithTime": "Nopeus rajoitettu: Liian monta vahvistusyritystä. Odota {{time}} sekuntia ennen kuin yrität uudelleen.",
"authTokenSaveFailed": "Todennustunnuksen tallennus epäonnistui",
"failedToLoadServer": "Palvelimen lataus epäonnistui"
},
"messages": {
"registrationDisabled": "Ylläpitäjä on tällä hetkellä poistanut käytöstä uuden tilin rekisteröinnin. Kirjaudu sisään tai ota yhteyttä ylläpitäjään.",
"userNotAllowed": "Tililläsi ei ole oikeutta rekisteröityä. Ota yhteyttä ylläpitäjään.",
"databaseConnectionFailed": "Yhteyden muodostaminen tietokantapalvelimeen epäonnistui",
"resetCodeSent": "Docker-lokeihin lähetetyn koodin nollaus",
"codeVerified": "Koodi vahvistettu onnistuneesti",
"passwordResetSuccess": "Salasanan palautus onnistui",
"loginSuccess": "Kirjautuminen onnistui",
"registrationSuccess": "Rekisteröinti onnistui"
},
"profile": {
"c2sTunnelConfigDesc": "Paikalliset työpöytätunnelit, jotka kohdistuvat konfiguroituihin SSH-isäntiin.",
"c2sTunnelPresets": "Asiakastunnelin esiasetukset",
"c2sTunnelPresetsDesc": "Tallenna tämän työpöytäsovelluksen paikallinen tunneliluettelo nimetyn palvelimen esiasetukseksi tai lataa esiasetus takaisin tähän työasemaan.",
"c2sTunnelPresetsUnavailable": "Asiakasohjelman tunnelin esiasetukset ovat käytettävissä vain työpöytäsovelluksessa.",
"c2sPresetName": "Esiasetetun nimen",
"c2sPresetNamePlaceholder": "Asiakkaan esiasetettu nimi",
"c2sPresetToLoad": "Ladattava esiasetus",
"c2sNoPresetSelected": "Ei valittua esiasetusta",
"c2sNoPresets": "Ei tallennettuja esiasetuksia",
"c2sLoadPreset": "Ladata",
"c2sCurrentLocalConfig": "{{count}} paikallista asiakastunnelia, jotka on konfiguroitu tälle työpöydälle.",
"c2sPresetSyncNote": "Esiasetukset ovat eksplisiittisiä tilannevedoksia; yhden lataaminen korvaa tämän työpöytäasiakkaan paikallisen asiakastunneliluettelon.",
"c2sPresetSaved": "Asiakastunnelin esiasetus tallennettu",
"c2sPresetLoaded": "Asiakastunnelin esiasetus ladattu paikallisesti",
"c2sPresetRenamed": "Asiakastunnelin esiasetettu nimi",
"c2sPresetDeleted": "Asiakastunnelin esiasetus poistettu",
"c2sPresetLoadError": "Asiakasohjelman tunnelin esiasetusten lataaminen epäonnistui"
},
"placeholders": {
"maxRetries": "3",
"retryInterval": "10",
"language": "Kieli",
"keyPassword": "avainsalasana",
"pastePrivateKey": "Liitä yksityinen avaimesi tähän...",
"localListenerHost": "127.0.0.1 (kuuntele paikallisesti)",
"localTargetHost": "127.0.0.1 (kohde tässä tietokoneessa)",
"socksListenerHost": "127.0.0.1 (SOCKS-kuuntelija)",
"enterPassword": "Anna salasanasi",
"defaultPort": "22",
"defaultEndpointPort": "224"
},
"dashboard": {
"title": "Kojelauta",
"loading": "Kojelautaa ladataan...",
"github": "GitHub",
"support": "Tukea",
"discord": "Eripura",
"docs": "Dokumentit",
"donate": "Lahjoittaa",
"serverOverview": "Palvelimen yleiskatsaus",
"version": "Versio",
"upToDate": "Ajan tasalla",
"updateAvailable": "Päivitys saatavilla",
"beta": "Beeta",
"uptime": "Käyttöaika",
"database": "Tietokanta",
"healthy": "Terveellinen",
"error": "Virhe",
"totalHosts": "Isäntien kokonaismäärä",
"totalTunnels": "Tunneleita yhteensä",
"totalCredentials": "Yhteensä valtakirjoja",
"recentActivity": "Viimeaikainen toiminta",
"reset": "Nollaa",
"loadingRecentActivity": "Ladataan viimeaikaista toimintaa...",
"noRecentActivity": "Ei viimeaikaista toimintaa",
"quickActions": "Pikatoiminnot",
"addHost": "Lisää isäntä",
"addCredential": "Lisää tunnistetiedot",
"adminSettings": "Järjestelmänvalvojan asetukset",
"userProfile": "Käyttäjäprofiili",
"serverStats": "Palvelimen tilastot",
"loadingServerStats": "Ladataan palvelimen tilastoja...",
"noServerData": "Palvelintietoja ei saatavilla",
"cpu": "Suoritin",
"ram": "RAM-muistia",
"customizeLayout": "Mukauta kojelautaa",
"dashboardSettings": "Kojelaudan asetukset",
"enableDisableCards": "Korttien käyttöönotto/pois käytöstä",
"resetLayout": "Palauta oletusarvoihin",
"serverOverviewCard": "Palvelimen yleiskatsaus",
"recentActivityCard": "Viimeaikainen toiminta",
"networkGraphCard": "Verkkokaavio",
"networkGraph": "Verkkokaavio",
"quickActionsCard": "Pikatoiminnot",
"serverStatsCard": "Palvelimen tilastot",
"panelMain": "Pääasiallinen",
"panelSide": "Sivu",
"justNow": "juuri nyt",
"serviceLinks": "Palvelulinkit",
"homepagePreview": "Etusivun esikatselu"
},
"donation": {
"title": "Pidätkö Termixistä?",
"body": "Termix on ilmainen ja avoimen lähdekoodin ohjelmisto, jota kahden hengen tiimi rakentaa ja ylläpitää vapaa-ajallaan. Jos se korvaa kaupallisen työkalun, josta muuten maksaisit, lahjoitus auttaa kattamaan ylläpitokulut ja pitämään kehityksen käynnissä. Tällä hetkellä lahjoitukset ovat vain kryptovaluuttoja.",
"milestones": "Lahjoitukset auttavat myös rahoittamaan aikaa tutkimukseen ja oppimaan, mitä tarvitaan ominaisuuksien, kuten SAML:n ja Kubernetes-tuen, rakentamiseen. Katso edistyminen lahjoitussivulta.",
"cta": "Lahjoittaa",
"dismiss": "Ehkä myöhemmin"
},
"dashboardTab": {
"stable": "VAKAA",
"hostsOnline": "Isännät verkossa",
"activeTunnels": "Aktiiviset tunnelit",
"registerNewServer": "Rekisteröi uusi palvelin",
"storeSshKeysOrPasswords": "SSH-avainten tai salasanojen tallentaminen",
"manageUsersAndRoles": "Hallitse käyttäjiä ja rooleja",
"manageYourAccount": "Hallinnoi tiliäsi",
"hostStatus": "Isännän tila",
"noHostsConfigured": "Ei määritettyjä isäntiä",
"online": "VERKOSSA",
"offline": "OFFLINE-TILASSA",
"checking": "TARKISTAMINEN",
"onlineLower": "Verkossa",
"nodes": "{{count}} solmut",
"add": "Lisätä:",
"commandPalette": "Komentopaletti",
"done": "Tehty",
"editModeInstructions": "Vedä kortteja järjestelläksesi uudelleen · Vedä sarakeväliä muuttaaksesi sarakkeiden kokoa · Vedä kortin alareunaa muuttaaksesi sen korkeutta · Roskakori poistaaksesi",
"empty": "Tyhjä",
"clear": "Tyhjennä",
"serviceLinksTitle": "Palvelulinkit",
"serviceLinksEmpty": "Ei vielä palvelulinkkejä",
"serviceLinksAddLabel": "Tarra",
"serviceLinksAddUrl": "URL-osoite",
"serviceLinksAdd": "Lisätä",
"serviceLinksLabelPlaceholder": "Palveluni",
"serviceLinksUrlPlaceholder": "http://192.168.1.10:8080",
"serviceLinksInvalidUrl": "Anna kelvollinen verkko-osoite",
"serviceLinksAddFailed": "Palvelulinkin lisääminen epäonnistui",
"disk": "Levy",
"viewServerDetails": "Näytä palvelimen tiedot"
},
"sessionLogs": {
"title": "Istuntolokit",
"noLogs": "Ei vielä istuntolokeja",
"noLogsDesc": "Ota istunnon lokikirjaus käyttöön isännässä aloittaaksesi tallennuksen",
"duration": "Kesto",
"viewLog": "Näytä loki",
"downloadLog": "Lataa",
"deleteLog": "Poistaa",
"confirmDelete": "Poistetaanko tämä istuntoloki?",
"confirmDeleteDesc": "Tätä toimintoa ei voi perua.",
"copyContent": "Kopioida",
"copied": "Kopioitu!",
"loadError": "Istuntolokien lataaminen epäonnistui",
"deleteError": "Istuntolokitietojen poistaminen epäonnistui",
"filterByHost": "Suodata isännän mukaan..."
},
"networkGraph": {
"addHost": "Lisää isäntä",
"addGroup": "Lisää ryhmä",
"addLink": "Lisää linkki",
"zoomIn": "Lähennä",
"zoomOut": "Loitonna",
"resetView": "Palauta näkymä",
"selectHost": "Valitse isäntä",
"chooseHost": "Valitse isäntä...",
"parentGroup": "Yläryhmä",
"noGroup": "Ei ryhmää",
"groupName": "Ryhmän nimi",
"color": "Väri",
"source": "Lähde",
"target": "Kohde",
"moveToGroup": "Siirrä ryhmään",
"selectGroup": "Valitse ryhmä...",
"addConnection": "Lisää yhteys",
"hostDetails": "Isännän tiedot",
"removeFromGroup": "Poista ryhmästä",
"addHostHere": "Lisää isäntä tähän",
"editGroup": "Muokkaa ryhmää",
"delete": "Poistaa",
"add": "Lisätä",
"create": "Luoda",
"move": "Liikkua",
"connect": "Yhdistä",
"createGroup": "Luo ryhmä",
"selectSourcePlaceholder": "Valitse lähde...",
"selectTargetPlaceholder": "Valitse kohde...",
"invalidFile": "Virheellinen tiedosto",
"hostAlreadyExists": "Isäntä on jo topologiassa",
"connectionExists": "Yhteys on jo olemassa",
"unknown": "Tuntematon",
"name": "Nimi",
"ip": "IP-osoite",
"status": "Status",
"failedToAddNode": "Solmun lisääminen epäonnistui",
"sourceDifferentFromTarget": "Lähteen ja kohteen on oltava eri",
"exportJSON": "Vie JSON",
"importJSON": "Tuo JSON",
"terminal": "Terminaali",
"fileManager": "Tiedostonhallinta",
"tunnel": "Tunneli",
"docker": "Satamatyöläinen",
"serverStats": "Isännän mittarit",
"hostMetrics": "Isännän mittarit",
"noNodes": "Ei vielä solmuja"
},
"docker": {
"notEnabled": "Docker ei ole käytössä tälle isännälle",
"validating": "Dockerin validointi...",
"connecting": "Yhdistetään...",
"error": "Virhe",
"version": "Docker {{version}}",
"connectionFailed": "Yhteyden muodostaminen Dockeriin epäonnistui",
"containerStarted": "Säiliö {{name}} aloitettu",
"failedToStartContainer": "Säiliön {{name}} käynnistäminen epäonnistui",
"containerStopped": "Kontti {{name}} pysäytetty",
"failedToStopContainer": "Säiliön {{name}} pysäyttäminen epäonnistui",
"containerRestarted": "Säiliö {{name}} käynnistetty uudelleen",
"failedToRestartContainer": "Säiliön uudelleenkäynnistys epäonnistui {{name}}",
"containerPaused": "Säilö {{name}} keskeytetty",
"containerUnpaused": "Säiliö {{name}} keskeytetty",
"failedToTogglePauseContainer": "Säilön {{name}} taukotilan vaihtaminen epäonnistui",
"containerRemoved": "Säiliö {{name}} poistettu",
"failedToRemoveContainer": "Säilön {{name}} poistaminen epäonnistui",
"image": "Kuva",
"ports": "Portit",
"noPorts": "Ei portteja",
"start": "Aloita",
"confirmRemoveContainer": "Haluatko varmasti poistaa säilön '{{name}}'? Tätä toimintoa ei voi perua.",
"runningContainerWarning": "Varoitus: Tämä säilö on parhaillaan käynnissä. Sen poistaminen pysäyttää säilön ensin.",
"loadingContainers": "Konttien lastaus...",
"manager": "Docker-hallinta",
"autoRefresh": "Automaattinen päivitys",
"timestamps": "Aikaleimat",
"lines": "Viivat",
"filterLogs": "Suodata lokit...",
"refresh": "Päivitä",
"download": "Lataa",
"clear": "Tyhjennä",
"logsDownloaded": "Lokien lataus onnistui",
"last50": "Viimeiset 50",
"last100": "Viimeiset 100",
"last500": "Viimeiset 500",
"last1000": "Viimeiset 1000",
"allLogs": "Kaikki lokit",
"noLogsMatching": "Ei lokeja, jotka vastaavat \"{{query}}\"",
"noLogsAvailable": "Ei lokeja saatavilla",
"noContainersFound": "Ei löytynyt säiliöitä",
"noContainersFoundHint": "Docker-kontteja ei ole saatavilla tällä isännöintipalvelimella",
"searchPlaceholder": "Hae säilöjä...",
"allStatuses": "Kaikki tilat",
"stateRunning": "Juoksu",
"statePaused": "Keskeytetty",
"stateExited": "Poistui",
"stateRestarting": "Uudelleenkäynnistys",
"noContainersMatchFilters": "Yksikään säilö ei vastaa suodattimiasi",
"noContainersMatchFiltersHint": "Kokeile muokata haku- tai suodatusehtojasi",
"failedToFetchStats": "Säilön tilastojen nouto epäonnistui",
"containerNotRunning": "Säiliö ei ole käynnissä",
"startContainerToViewStats": "Käynnistä säilö tilastojen tarkastelemiseksi",
"loadingStats": "Ladataan tilastoja...",
"errorLoadingStats": "Virhe tilastojen lataamisessa",
"noStatsAvailable": "Ei tilastoja saatavilla",
"cpuUsage": "Suorittimen käyttö",
"current": "Nykyinen",
"memoryUsage": "Muistin käyttö",
"networkIo": "Verkko-I/O",
"input": "Syöttö",
"output": "Lähtö",
"blockIo": "Estä I/O",
"read": "Lukea",
"write": "Kirjoittaa",
"pids": "PID-tunnukset",
"containerInformation": "Säiliön tiedot",
"name": "Nimi",
"id": "Henkilöllisyystodistus",
"state": "Osavaltio",
"containerMustBeRunning": "Kontin on oltava käynnissä, jotta konsoliin pääsee käsiksi.",
"verificationCodePrompt": "Syötä vahvistuskoodi",
"totpVerificationFailed": "TOTP-vahvistus epäonnistui. Yritä uudelleen.",
"warpgateVerificationFailed": "Warpgate-todennus epäonnistui. Yritä uudelleen.",
"connectedTo": "Yhdistetty kohteeseen {{containerName}}",
"disconnected": "Yhteys katkennut",
"consoleError": "Konsolivirhe",
"errorMessage": "Virhe: {{message}}",
"failedToConnect": "Yhteyden muodostaminen säilöön epäonnistui",
"console": "Konsoli",
"selectShell": "Valitse komentotulkki",
"bash": "Lyödä",
"sh": "sh",
"ash": "tuhka",
"connect": "Yhdistä",
"disconnect": "Katkaise yhteys",
"notConnected": "Ei yhdistetty",
"clickToConnect": "Aloita shell-istunto napsauttamalla Yhdistä",
"connectingTo": "Yhdistetään kohteeseen {{containerName}}...",
"containerNotFound": "Säiliötä ei löydy",
"backToList": "Takaisin listaan",
"logs": "Lokit",
"stats": "Tilastot",
"consoleTab": "Konsoli",
"startContainerToAccess": "Käynnistä säilö päästäksesi konsoliin"
},
"admin": {
"sectionGeneral": "Yleistä",
"sectionOidc": "OIDC",
"sectionSso": "SSO-palveluntarjoajat",
"ssoAddProvider": "Lisää palveluntarjoaja",
"ssoDocsLink": "Näytä dokumentit",
"ssoProviderDocsLink": "Näytä dokumentit",
"ssoNoProviders": "SSO-palveluntarjoajia ei ole määritetty.",
"ssoProviderName": "Näyttönimi",
"ssoProviderType": "Palveluntarjoajan tyyppi",
"ssoDeleteProvider": "Poista palveluntarjoaja",
"ssoDeleteConfirm": "Poistetaanko tämä palveluntarjoaja? Liitännäiset käyttäjät eivät voi kirjautua sisään.",
"ssoTypeOidc": "OIDC",
"ssoTypeLdap": "LDAP",
"ssoTypeGithub": "GitHub",
"ssoTypeGoogle": "Google",
"ssoEnabled": "Käytössä",
"ssoDisabled": "Liikuntarajoitteinen",
"ssoSaveProvider": "Tallenna palveluntarjoaja",
"ssoTestConnection": "Testaa yhteys",
"ssoEditProvider": "Muokkaa palveluntarjoajaa",
"ldapHost": "LDAP-isäntä",
"ldapPort": "Portti",
"ldapUseTls": "Käytä TLS:ää (LDAPS)",
"ldapBindDn": "Sido DN",
"ldapBindPassword": "Sido salasana",
"ldapUserSearchBase": "Käyttäjähakupohja",
"ldapUserSearchFilter": "Käyttäjän hakusuodatin",
"ldapUsernameAttr": "Käyttäjätunnusattribuutti",
"ldapDisplayNameAttr": "Näyttönimen attribuutti",
"ldapGroupSearchBase": "Ryhmän hakukanta",
"ldapAdminGroup": "Hallintaryhmä",
"ldapAllowedUsers": "Sallitut käyttäjät",
"sectionUsers": "Käyttäjät",
"sectionSessions": "Istunnot",
"sectionRoles": "Roolit",
"sectionDatabase": "Tietokanta",
"sectionApiKeys": "API-avaimet",
"sectionAuditLog": "Tarkastusloki",
"sectionSsl": "SSL / Let's Encrypt",
"sslDescription": "Myönnä ja uusi automaattisesti Let's Encryptin luotettava SSL-varmenne. Vaatii julkisen verkkotunnuksen ja portin 80 tai DNS-yhteyden.",
"sslDocsLink": "Näytä SSL-dokumentit",
"sslDomain": "Verkkotunnus",
"sslDomainPlaceholder": "termix.esimerkki.com",
"sslDomainDesc": "Varmenteen julkinen verkkotunnus.",
"sslEmail": "Sähköposti",
"sslEmailPlaceholder": "admin@esimerkki.com",
"sslEmailDesc": "Let's Encrypt -ilmoitusten ja -tilin yhteystiedot.",
"sslChallengeType": "Haasteen tyyppi",
"sslChallengeTypeDesc": "Kuinka todistaa verkkotunnuksen omistajuus Let's Encryptille.",
"sslChallengeHttp": "HTTP (webroot) vaatii internetistä saatavilla olevan portin 80",
"sslChallengeDns": "DNS (Cloudflare) vaatii Cloudflare API -tunnuksen",
"sslCloudflareToken": "Cloudflare API-tunnus",
"sslCloudflareTokenPlaceholder": "Syötä tunnus...",
"sslCloudflareTokenDesc": "Laajuusaluetunnus, jolla on Zone:DNS:Edit-käyttöoikeus verkkotunnuksellesi.",
"sslCertStatus": "Sertifikaatin tila",
"sslCertStatusNone": "Ei todistusta",
"sslCertStatusValid": "Voimassa",
"sslCertStatusExpiring": "Vanhenee pian",
"sslCertStatusExpired": "Vanhentunut",
"sslCertExpiresAt": "Vanhenee {{date}}",
"sslLastIssued": "Viimeksi myönnetty {{date}}",
"sslRequestCert": "Myönnä / Uudista sertifikaatti",
"sslRequestCertLoading": "Pyydetään varmennetta...",
"sslRequestCertSuccess": "Varmenne myönnetty ja asennettu onnistuneesti",
"sslRequestCertFailed": "Varmennepyyntö epäonnistui",
"sslSave": "Tallenna asetukset",
"sslSaved": "SSL-asetukset tallennettu",
"sslSaveFailed": "SSL-asetusten tallentaminen epäonnistui",
"sslRequiresDomain": "Verkkotunnus ja sähköpostiosoite vaaditaan",
"sslInfoNote": "Kun olet myöntänyt varmenteen, ota SSL käyttöön ympäristömuuttujissasi (ENABLE_SSL=true) ja käynnistä Termix uudelleen.",
"auditLogTotal": "{{total}} merkintöjä yhteensä",
"auditLogEmpty": "Ei tarkastuslokin merkintöjä",
"auditLogSuccess": "Menestys",
"auditLogFailed": "Epäonnistui",
"auditLogClearFilters": "Tyhjennä suodattimet",
"auditLogPage": "Sivu {{page}} / {{totalPages}} (yhteensä{{total}})",
"auditLogIp": "IP-osoite",
"auditLogResourceId": "Resurssin tunnus",
"auditLogFilterUser": "Käyttäjä",
"auditLogFilterAction": "Toiminta",
"auditLogFilterResourceType": "Resurssityyppi",
"auditLogFilterStatus": "Status",
"auditLogFilterFrom": "Alkaen",
"auditLogFilterTo": "Kohti",
"auditLogFilterAll": "Kaikki",
"allowRegistration": "Salli käyttäjän rekisteröinti",
"allowRegistrationDesc": "Anna uusien käyttäjien rekisteröityä itse käyttäjätunnuksella ja salasanalla",
"allowPasswordLogin": "Salli salasanalla kirjautuminen",
"allowPasswordLoginDesc": "Käyttäjätunnus/salasana kirjautuminen",
"oidcAutoProvision": "OIDC:n automaattinen valmistelu",
"oidcAutoProvisionDesc": "Luo OIDC/SSO-käyttäjille tilit automaattisesti ensimmäisen kirjautumisen yhteydessä (rekisteröintiasetuksista riippumatta)",
"oidcSilentLoginDefault": "Hiljainen OIDC-kirjautuminen oletuksena",
"oidcSilentLoginDefaultDesc": "Ohjaa automaattisesti OIDC-kirjautumiseen joka käynnillä, ohittaen kirjautumislomakkeen kokonaan",
"allowPasswordReset": "Salli salasanan palautus",
"allowPasswordResetDesc": "Palauta koodi Docker-lokien kautta",
"commandHistoryEnabled": "Komentohistoria",
"commandHistoryEnabledDesc": "Salli komentohistorian tallennus. Kun tämä on poistettu käytöstä, historiaa ei tallenneta isäntäkohtaisista asetuksista riippumatta.",
"updateCommandHistoryFailed": "Komentohistoria-asetuksen päivittäminen epäonnistui",
"sessionTimeout": "Istunnon aikakatkaisu",
"hours": "tuntia",
"sessionTimeoutRange": "Vähintään 1 h · Enintään 720 h",
"monitoringDefaults": "Valvonnan oletusarvot",
"statusCheck": "Tilatarkistus",
"metrics": "Mittarit",
"sec": "sek",
"logLevel": "Lokitaso",
"enableGuacamole": "Ota guacamole käyttöön",
"enableGuacamoleDesc": "RDP/VNC-etätyöpöytä",
"enableGuacamoleDocsLink": "Näytä dokumentit",
"guacdUrl": "guacd-URL-osoite",
"tailscaleApiKey": "Tailscale API-avain",
"tailscaleApiKeyDescription": "Käytetään laitteen löytämiseen isäntäeditorissa. Luo avain osoitteessa tailscale.com/admin/settings/keys.",
"tailscaleApiKeyDocsLink": "Näytä dokumentit",
"oidcDescription": "Määritä OpenID Connect kertakirjautumista varten. Tähdellä (*) merkityt kentät ovat pakollisia.",
"oidcDocsLink": "Näytä dokumentit",
"oidcClientId": "Asiakastunnus",
"oidcClientSecret": "Asiakkaan salaisuus",
"oidcAuthUrl": "Valtuutus-URL-osoite",
"oidcIssuerUrl": "Liikkeeseenlaskijan URL-osoite",
"oidcTokenUrl": "Tunnuksen URL-osoite",
"oidcUserIdentifier": "Käyttäjätunnisteen polku",
"oidcDisplayName": "Näyttönimen polku",
"oidcScopes": "Laajuusalueet",
"oidcUserinfoUrl": "Käyttäjätietojen URL-osoitteen ohitus",
"oidcAllowedUsers": "Sallitut käyttäjät",
"oidcAllowedUsersDesc": "Yksi sähköpostiosoite riviä kohden. Jätä tyhjäksi salliaksesi kaikki.",
"oidcAdminGroup": "Hallintaryhmä",
"oidcAdminGroupDesc": "Tämän ryhmän käyttäjille on myönnetty järjestelmänvalvojan oikeudet. Jätä tyhjäksi, jos haluat poistaa ryhmän synkronoinnin käytöstä.",
"oidcGroupClaim": "Ryhmävaatimus",
"oidcGroupClaimDesc": "Valinnainen. Vaatimuspolku, joka sisältää käyttäjän ryhmät. Oletusarvo on ryhmät, roolit ja lopuksi ryhmä. Käytä tätä palveluntarjoajille, joilla on mukautettu vaatimus (esim. Zitadel).",
"oidcCaCert": "Mukautettu CA-varmenne",
"oidcCaCertDesc": "Valinnainen. PEM-koodattu CA-varmenne OIDC-palveluntarjoajille, jotka käyttävät yksityistä tai itse allekirjoitettua CA:ta. Jätä tyhjäksi, jos haluat käyttää järjestelmän luotettavuussäilöä.",
"removeOidc": "Poistaa",
"usersCount": "{{count}} käyttäjää",
"createUser": "Luoda",
"newRole": "Uusi rooli",
"roleName": "Nimi",
"roleDisplayName": "Näyttönimi",
"roleDescription": "Kuvaus",
"rolesCount": "{{count}} roolit",
"createRole": "Luoda",
"creating": "Luodaan...",
"exportDatabase": "Vie tietokanta",
"exportDatabaseDesc": "Lataa varmuuskopio kaikista isännistä, tunnistetiedoista ja asetuksista",
"export": "Viedä",
"exporting": "Vienti...",
"importDatabase": "Tuo tietokanta",
"importDatabaseDesc": "Palauttaminen .sqlite-varmuuskopiotiedostosta",
"importDatabaseSelected": "Valittu: {{name}}",
"selectFile": "Valitse tiedosto",
"changeFile": "Muuttaa",
"import": "Tuoda",
"importing": "Tuodaan...",
"apiKeysCount": "{{count}} -näppäimet",
"apiKeysDocsLink": "Näytä dokumentit",
"newApiKey": "Uusi API-avain",
"apiKeyCreatedWarning": "Avain luotu - kopioi se nyt, sitä ei näytetä uudelleen.",
"apiKeyName": "Nimi",
"apiKeyUser": "Käyttäjä",
"apiKeySelectUser": "Valitse käyttäjä...",
"apiKeyExpiresAt": "Vanhenee klo",
"createKey": "Luo avain",
"apiKeyNoExpiry": "Ei vanhenemista",
"revokedBadge": "PERUTTU",
"authTypeDual": "Kaksoistutkimus",
"authTypeOidc": "OIDC",
"authTypeLocal": "Paikallinen",
"adminStatusAdministrator": "Ylläpitäjä",
"adminStatusRegularUser": "Tavallinen käyttäjä",
"adminBadge": "YLLÄPITÄJÄ",
"systemBadge": "JÄRJESTELMÄ",
"customBadge": "MUKAUTETTU",
"youBadge": "SINÄ",
"sessionsActive": "{{count}} aktiivinen",
"sessionActive": "Aktiivinen: {{time}}",
"sessionExpires": "Voimassaoloaika: {{time}}",
"revokeAll": "Kaikki",
"revokeAllSessionsSuccess": "Kaikki käyttäjän istunnot peruutettu",
"revokeAllSessionsFailed": "Istuntojen peruuttaminen epäonnistui",
"revokeSessionFailed": "Istunnon peruuttaminen epäonnistui",
"addRole": "Lisää rooli",
"noCustomRoles": "Ei määritettyjä mukautettuja rooleja",
"removeRoleFailed": "Roolin poistaminen epäonnistui",
"assignRoleFailed": "Roolin määrittäminen epäonnistui",
"deleteRoleFailed": "Roolin poistaminen epäonnistui",
"userAdminAccess": "Ylläpitäjä",
"userAdminAccessDesc": "Täysi pääsy kaikkiin järjestelmänvalvojan asetuksiin",
"userRoles": "Roolit",
"revokeAllUserSessions": "Peruuta kaikki istunnot",
"revokeAllUserSessionsDesc": "Pakota uudelleenkirjautuminen kaikilla laitteilla",
"revoke": "Peruuttaa",
"deleteUserWarning": "Tämän käyttäjän poistaminen on pysyvää.",
"deleteUser": "Poista {{username}}",
"deleting": "Poistetaan...",
"deleteUserFailed": "Käyttäjän poistaminen epäonnistui",
"deleteUserSuccess": "Käyttäjä \"{{username}}\" poistettu",
"deleteRoleSuccess": "Rooli \"{{name}}\" poistettu",
"revokeKeySuccess": "Avain \"{{name}}\" peruutettu",
"revokeKeyFailed": "Avaimen peruuttaminen epäonnistui",
"copiedToClipboard": "Kopioitu leikepöydälle",
"done": "Tehty",
"createUserTitle": "Luo käyttäjä",
"createUserDesc": "Luo uusi paikallinen tili.",
"createUserUsername": "Käyttäjätunnus",
"createUserPassword": "Salasana",
"createUserPasswordHint": "Vähintään 6 merkkiä.",
"createUserEnterUsername": "Syötä käyttäjätunnus",
"createUserEnterPassword": "Syötä salasana",
"createUserSubmit": "Luo käyttäjä",
"editUserTitle": "Käyttäjän hallinta: {{username}}",
"editUserDesc": "Muokkaa rooleja, järjestelmänvalvojan tilaa, istuntoja ja tilin asetuksia.",
"editUserUsername": "Käyttäjätunnus",
"editUserAuthType": "Valtuutustyyppi",
"editUserAdminStatus": "Ylläpitäjän tila",
"editUserUserId": "Käyttäjätunnus",
"linkAccountTitle": "Yhdistä tilit",
"linkAccountDesc": "Yhdistä OIDC-tili {{username}} olemassa olevaan paikalliseen tiliin.",
"linkAccountDescLocal": "Yhdistä paikallinen tili {{username}} olemassa olevaan OIDC-tilille.",
"linkAccountWarningTitle": "Tämä auttaa:",
"linkAccountEffect1": "Poista OIDC-tilin",
"linkAccountEffect2": "Lisää OIDC-kirjautumistiedot kohdetilille",
"linkAccountEffect3": "Salli sekä OIDC- että salasanakirjautuminen",
"linkAccountTargetUsername": "Paikallisen tilin käyttäjätunnus",
"linkAccountTargetPlaceholder": "Anna paikallisen tilin käyttäjätunnus, johon linkitetään",
"linkAccountOidcUsername": "OIDC-tilin käyttäjätunnus",
"linkAccountOidcPlaceholder": "Anna yhdistettävän OIDC-tilin käyttäjätunnus",
"linkAccountOidcNotFound": "Käyttäjätunnuksella ei löytynyt OIDC-tiliä.",
"linkAccounts": "Linkitä tilit",
"linkAccountSuccess": "Tilit linkitetty onnistuneesti",
"linkAccountFailed": "Tilien linkittäminen epäonnistui",
"linkAccountInProgress": "Linkitetään...",
"unlinkAccountTitle": "Poista OIDC-linkitys",
"unlinkAccountDesc": "Poista OIDC-todennus kohdasta {{username}}. He voivat kirjautua sisään vain salasanallaan.",
"unlinkAccountWarning": "Tämä poistaa OIDC-kirjautumisen tältä tililtä. Käyttäjällä on oltava salasana asetettuna voidakseen jatkaa sisäänkirjautumista.",
"unlinkAccount": "Poista OIDC-linkitys",
"unlinkAccountInProgress": "Linkityksen poistaminen...",
"unlinkAccountSuccess": "OIDC-linkitys poistettu onnistuneesti",
"unlinkAccountFailed": "OIDC:n linkityksen poistaminen epäonnistui",
"saving": "Tallennetaan...",
"updateRegistrationFailed": "Rekisteröintiasetuksen päivittäminen epäonnistui",
"updatePasswordLoginFailed": "Salasanan kirjautumisasetusten päivittäminen epäonnistui",
"cannotDisablePasswordLoginWithTotp": "Salasanalla kirjautumista ei voi poistaa käytöstä, kun 2FA on käytössä yhdelle tai useammalle käyttäjälle. Poista 2FA ensin käytöstä.",
"updateOidcAutoProvisionFailed": "OIDC:n automaattisen valmistelun asetuksen päivittäminen epäonnistui.",
"updateOidcSilentLoginDefaultFailed": "Hiljaisen OIDC-kirjautumisasetuksen päivittäminen epäonnistui",
"updatePasswordResetFailed": "Salasanan palautusasetuksen päivittäminen epäonnistui",
"sessionTimeoutRange2": "Istunnon aikakatkaisun on oltava 1720 tuntia",
"sessionTimeoutSaved": "Istunnon aikakatkaisu tallennettu",
"sessionTimeoutSaveFailed": "Istunnon aikakatkaisun tallentaminen epäonnistui",
"monitoringIntervalInvalid": "Virheelliset väliarvot",
"monitoringSaved": "Valvonta-asetukset tallennettu",
"monitoringSaveFailed": "Valvonta-asetusten tallentaminen epäonnistui",
"metricsHistoryRetention": "Mittarihistorian säilytys",
"metricsHistoryRetentionRange": "190 päivää",
"days": "päivää",
"guacamoleSaved": "Guacamole-asetukset tallennettu",
"guacamoleSaveFailed": "Guacamole-asetusten tallentaminen epäonnistui",
"guacamoleUpdateFailed": "Guacamole-asetuksen päivittäminen epäonnistui",
"tailscaleSettingsSaved": "Tailscale-asetukset tallennettu",
"tailscaleSettingsSaveFailed": "Tailscale-asetusten tallentaminen epäonnistui",
"logLevelUpdateFailed": "Lokitason päivittäminen epäonnistui",
"oidcSaved": "OIDC-määritys tallennettu",
"oidcSaveFailed": "OIDC-määrityksen tallentaminen epäonnistui",
"oidcRemoved": "OIDC-määritys poistettu",
"oidcRemoveFailed": "OIDC-määrityksen poistaminen epäonnistui",
"createUserRequired": "Käyttäjätunnus ja salasana vaaditaan",
"createUserPasswordTooShort": "Salasanan on oltava vähintään 6 merkkiä pitkä",
"createUserSuccess": "Käyttäjä \"{{username}}\" luotu",
"createUserFailed": "Käyttäjän luominen epäonnistui",
"updateAdminStatusFailed": "Ylläpitäjän tilan päivittäminen epäonnistui",
"allSessionsRevoked": "Kaikki istunnot peruutettu",
"revokeSessionsFailed": "Istuntojen peruuttaminen epäonnistui",
"manageUserData": "Hallinnoi käyttäjätietoja",
"backToUsers": "Takaisin käyttäjiin",
"manageTabAccount": "Tili",
"manageTabHosts": "Isännät",
"manageTabCredentials": "Valtakirjat",
"manageTabSnippets": "Katkelmat",
"manageTabSessions": "Istunnot",
"manageTabDanger": "Vaara",
"manageEditorBack": "Takaisin käyttäjän {{username}}tietoihin",
"dataLockedBadge": "LUKITTU",
"dataLockedNotice": "{{username}}:n tiedot pysyvät lukittuina, kunnes he kirjautuvat sisään seuraavalla kerralla. Heidän palvelimiaan, tunnistetietojaan ja koodinpätkiään ei voida tarkastella tai muokata ennen sitä.",
"resetPasswordTitle": "Palauta salasana",
"resetPasswordOidcOnly": "Tämä käyttäjä kirjautuu sisään ulkoisen palveluntarjoajan kautta eikä hänellä ole salasanaa.",
"resetPasswordPlaceholder": "Uusi salasana",
"resetPasswordBtn": "Nollaa",
"resetPasswordWorking": "Nollataan...",
"resetPasswordSuccess": "Salasanan palautus",
"resetPasswordSuccessWiped": "Salasanan palautus. Käyttäjän salatut tiedot on pyyhitty.",
"resetPasswordFailed": "Salasanan nollaaminen epäonnistui",
"resetPasswordConfirmWipe": "{{username}} ei ole kirjautunut sisään salauspäivityksen jälkeen, joten hänen tietojaan ei voida palauttaa. Nollaaminen nyt poistaa hänen palvelimensa, tunnistetietonsa ja koodinpätkänsä. Jatketaanko?",
"totpSectionTitle": "Kaksivaiheinen todennus",
"totpStatusEnabled": "TOTP on käytössä tälle käyttäjälle",
"totpStatusDisabled": "TOTP ei ole käytössä tälle käyttäjälle",
"disableTotp": "Poista käytöstä",
"disableTotpConfirm": "Poista kaksivaiheinen todennus käytöstä käyttäjälle {{username}}? He voivat kirjautua sisään pelkällä salasanallaan.",
"totpDisabledSuccess": "TOTP poistettu käytöstä",
"totpDisableFailed": "TOTP:n poistaminen käytöstä epäonnistui",
"manageApiKeys": "API-avaimet",
"apiKeyNamePlaceholder": "Avaimen nimi",
"apiKeyCopyNotice": "Kopioi tämä avain nyt, sitä ei näytetä enää uudelleen.",
"noApiKeysForUser": "Ei API-avaimia",
"apiKeyDeleteFailed": "API-avaimen poistaminen epäonnistui",
"exportUserData": "Tietojen vienti",
"exportUserDataDesc": "Lataa tämän käyttäjän isännät, tunnistetiedot ja tiedostonhallintadata JSON-muodossa. Salaisuudet on purettu.",
"exportUserDataSuccess": "Käyttäjätiedot viety",
"exportUserDataFailed": "Käyttäjätietojen vienti epäonnistui",
"hostsCount": "{{count}} isännät",
"addHostForUser": "Lisää isäntä",
"noHostsForUser": "Tällä käyttäjällä ei ole isäntiä",
"connectToHost": "Yhdistä",
"deleteHostConfirm": "Poistetaanko isäntä \"{{name}}\", joka kuuluu {{username}}:lle?",
"hostDeletedSuccess": "Isäntä poistettu",
"hostDeleteFailed": "Isännän poistaminen epäonnistui",
"credentialsCount": "{{count}} tunnistetiedot",
"addCredentialForUser": "Lisää tunnistetiedot",
"noCredentialsForUser": "Tällä käyttäjällä ei ole tunnuksia",
"deleteCredentialConfirm": "Poistetaanko tunniste \"{{name}}\", joka kuuluu käyttäjälle {{username}}?",
"credentialDeletedSuccess": "Tunnistetiedot poistettu",
"credentialDeleteFailed": "Tunnuksen poistaminen epäonnistui",
"snippetsCount": "{{count}} katkelmia",
"addSnippetForUser": "Lisää katkelma",
"noSnippetsForUser": "Tällä käyttäjällä ei ole katkelmia",
"snippetRequiredFields": "Katkelman nimi ja sisältö vaaditaan",
"snippetNamePlaceholder": "Katkelman nimi",
"snippetContentPlaceholder": "Komennon sisältö",
"snippetFolderPlaceholder": "Kansio (valinnainen)",
"snippetSaved": "Katkelma tallennettu",
"snippetSaveFailed": "Katkelman tallentaminen epäonnistui",
"deleteSnippetConfirm": "Poistetaanko koodinpätkä \"{{name}}\", joka kuuluu käyttäjälle {{username}}?",
"snippetDeletedSuccess": "Katkelma poistettu",
"snippetDeleteFailed": "Katkelman poistaminen epäonnistui",
"noSessionsForUser": "Ei aktiivisia istuntoja",
"deleteUserDangerDesc": "Poista pysyvästi {{username}} ja kaikki siihen liittyvät tiedot (isännät, tunnistetiedot, koodinpätkät, historia). Tätä ei voi perua.",
"deleteUserConfirm": "Poistetaanko pysyvästi {{username}} ja kaikki heidän datansa?",
"deleteUserAdminBlocked": "Poista järjestelmänvalvojan tila ennen tämän käyttäjän poistamista.",
"createRoleRequired": "Nimi ja näyttönimi vaaditaan",
"createRoleSuccess": "Rooli \"{{name}}\" luotu",
"createRoleFailed": "Roolin luominen epäonnistui",
"apiKeyNameRequired": "Avaimen nimi on pakollinen",
"apiKeyUserRequired": "Käyttäjätunnus vaaditaan",
"apiKeyCreatedSuccess": "API-avain \"{{name}}\" luotu",
"apiKeyCreateFailed": "API-avaimen luominen epäonnistui",
"exportSuccess": "Tietokannan vienti onnistui",
"exportFailed": "Tietokannan vienti epäonnistui",
"importSelectFile": "Valitse ensin tiedosto",
"importCompleted": "Tuonti valmis: {{total}} kohdetta tuotu, {{skipped}} ohitettu",
"importFailed": "Tuonti epäonnistui: {{error}}",
"importError": "Tietokannan tuonti epäonnistui",
"sectionHostDefaults": "Isännän oletusasetukset",
"hostDefaultsDesc": "Asetukset otetaan käyttöön automaattisesti uutta isäntää luotaessa. Yksittäiset isännät voivat edelleen ohittaa nämä.",
"hostDefaultsSocks5": "SOCKS5-välityspalvelin",
"hostDefaultsUseSocks5": "Ota SOCKS5-välityspalvelin käyttöön",
"hostDefaultsUseSocks5Desc": "Esitäytä SOCKS5-välityspalvelin kaikissa uusissa isännissä",
"hostDefaultsSocks5Host": "Välityspalvelin/portti",
"hostDefaultsSocks5Username": "Välityspalvelimen käyttäjätunnus",
"hostDefaultsSocks5Password": "Välityspalvelimen salasana",
"hostDefaultsMetrics": "Isännän mittarit",
"hostDefaultsMetricsEnabled": "Ota mittarit käyttöön",
"hostDefaultsMetricsEnabledDesc": "Kerää oletuksena uusien isäntien suorittimen, muistin ja muita tilastoja",
"hostDefaultsStatusCheckEnabled": "Ota tilan tarkistus käyttöön",
"hostDefaultsStatusCheckEnabledDesc": "Kysely online/offline-tila uusilla isännöillä oletuksena",
"hostDefaultsTerminal": "Terminaali",
"hostDefaultsSessionLogging": "Istuntojen lokitiedot",
"hostDefaultsSessionLoggingDesc": "Tallenna pääteistunnot uusille isännille oletuksena",
"hostDefaultsCommandHistory": "Komentohistoria",
"hostDefaultsCommandHistoryDesc": "Seuraa komentohistoriaa uusilla isännillä oletuksena",
"hostDefaultsSaved": "Isännän oletusasetukset tallennettu",
"hostDefaultsSaveFailed": "Isännän oletusasetusten tallentaminen epäonnistui",
"rolePermissions": {
"count": "{{count}} käyttöoikeudet",
"editAction": "Muokkaa käyttöoikeuksia",
"loadError": "Käyttöoikeusluettelon lataaminen epäonnistui",
"saved": "Roolien käyttöoikeudet tallennettu",
"saveError": "Roolien käyttöoikeuksien tallentaminen epäonnistui",
"save": "Tallentaa",
"saving": "Tallennetaan..."
}
},
"newUi": {
"sidebar": {
"quickConnect": {
"hostLabel": "Isäntä",
"hostPlaceholder": "192.168.1.1 tai esimerkki.com",
"portLabel": "Portti",
"portPlaceholder": "22",
"usernameLabel": "Käyttäjätunnus",
"usernamePlaceholder": "käyttäjätunnus",
"authLabel": "Valtuutus",
"passwordLabel": "Salasana",
"passwordPlaceholder": "salasana",
"privateKeyLabel": "Yksityinen avain",
"privateKeyPlaceholder": "Liitä yksityinen avain...",
"credentialLabel": "Valtakirja",
"credentialPlaceholder": "Valitse tallennettu tunnistetieto",
"connectToTerminal": "Yhdistä terminaaliin",
"connectToFiles": "Yhdistä tiedostoihin"
},
"history": {
"noTerminalSelected": "Ei valittua päätettä",
"noTerminalSelectedHint": "Avaa SSH-päätevälilehti nähdäksesi sen komentohistorian",
"searchPlaceholder": "Hakuhistoria...",
"clearAll": "Tyhjennä kaikki",
"noHistoryEntries": "Ei historiamerkintöjä",
"trackingDisabled": "Historian seuranta on poistettu käytöstä",
"trackingDisabledHint": "Ota se käyttöön isännän pääteasetuksissa."
},
"sshTools": {
"keyRecordingTitle": "Näppäinten tallennus",
"recordToTerminals": "Tallenna terminaaleihin",
"selectAll": "Kaikki",
"selectNone": "Ei mitään",
"noTerminalTabsOpen": "Ei auki olevia päätevälilehtiä",
"selectTerminalsAbove": "Valitse päätteet yllä",
"broadcastInputPlaceholder": "Kirjoita tähän lähettääksesi näppäinpainalluksia...",
"fillPassword": "Täytä salasana",
"fillPasswordSuccess": "Salasana syötetty {{count}} terminaaliin/terminaaleihin",
"fillPasswordMissing": "Ei tallennettua salasanaa {{count}} valitulle päätteelle/päätteille",
"stopRecording": "Lopeta tallennus",
"startRecording": "Aloita tallennus",
"settingsTitle": "Asetukset",
"enableRightClickCopyPaste": "Ota käyttöön hiiren kakkospainikkeella kopiointi/liitäminen"
},
"splitScreen": {
"layoutTitle": "Layout",
"selectLayoutAbove": "Valitse asettelu yllä",
"selectLayoutHint": "Valitse näytettävien ruutujen määrä",
"panesTitle": "Ruudut",
"openTabsTitle": "Avaa välilehdet",
"dragTabsHint": "Vedä välilehdet yllä oleviin ruutuihin tai käytä pikamääritystä",
"dropHere": "Pudota tähän",
"emptyPane": "Tyhjä",
"dashboard": "Kojelauta",
"clearSplitScreen": "Tyhjennä jaettu näyttö",
"quickAssign": "Pikamääritys",
"alreadyAssigned": "Ruutu {{index}}",
"splitTab": "Jaettu välilehti",
"addToSplit": "Lisää jakoon",
"removeFromSplit": "Poista jaosta",
"assignToPane": "Määritä ruutuun",
"hotkeysTitle": "Pikanäppäimet",
"hotkeysSplitRight": "Kaksisuuntainen jako päälle/pois",
"hotkeysSplitBelow": "3-tie jako päälle/pois",
"hotkeysNavigatePane": "Navigoi ruuduissa",
"hotkeysNextTab": "Seuraava välilehti",
"hotkeysPrevTab": "Edellinen välilehti"
},
"snippets": {
"title": "Katkelmat",
"createSnippetTitle": "Luo katkelma",
"createSnippetDescription": "Luo uusi komentokehotteen nopeaa suorittamista varten",
"nameLabel": "Nimi",
"namePlaceholder": "esim. Käynnistä Nginx uudelleen",
"descriptionLabel": "Kuvaus",
"descriptionPlaceholder": "Valinnainen kuvaus",
"optional": "Valinnainen",
"folderLabel": "Kansio",
"noFolder": "Ei kansiota (Luokittelematon)",
"commandLabel": "Komento",
"commandPlaceholder": "esim. sudo systemctl käynnistä nginx uudelleen",
"cancel": "Peruuttaa",
"createSnippetButton": "Luo katkelma",
"createFolderTitle": "Luo kansio",
"createFolderDescription": "Järjestä katkelmasi kansioihin",
"folderNameLabel": "Kansion nimi",
"folderNamePlaceholder": "esim. järjestelmäkomennot, Docker-skriptit",
"folderColorLabel": "Kansion väri",
"folderIconLabel": "Kansiokuvake",
"previewLabel": "Esikatselu",
"folderNameFallback": "Kansion nimi",
"createFolderButton": "Luo kansio",
"targetTerminals": "Kohdepäätteet",
"selectAll": "Kaikki",
"selectNone": "Ei mitään",
"noTerminalTabsOpen": "Ei auki olevia päätevälilehtiä",
"searchPlaceholder": "Haku katkelmia...",
"newSnippet": "Uusi katkelma",
"newFolder": "Uusi kansio",
"run": "Juokse",
"noSnippetsInFolder": "Tässä kansiossa ei ole katkelmia",
"uncategorized": "Luokittelematon",
"editSnippetTitle": "Muokkaa katkelmaa",
"editSnippetDescription": "Päivitä tämä komentokehotteen koodi",
"saveSnippetButton": "Tallenna muutokset",
"createSuccess": "Katkelma luotu onnistuneesti",
"createFailed": "Katkelman luominen epäonnistui",
"updateSuccess": "Katkelman päivitys onnistui",
"updateFailed": "Katkelman päivittäminen epäonnistui",
"deleteFailed": "Katkelman poistaminen epäonnistui",
"folderCreateSuccess": "Kansio luotu onnistuneesti",
"folderCreateFailed": "Kansion luominen epäonnistui",
"editFolderTitle": "Muokkaa kansiota",
"editFolderDescription": "Nimeä tämä kansio uudelleen tai muuta sen ulkoasua",
"saveFolderButton": "Tallenna muutokset",
"editFolder": "Muokkaa kansiota",
"deleteFolder": "Poista kansio",
"folderDeleteSuccess": "Kansio \"{{name}}\" poistettu",
"folderDeleteFailed": "Kansion poistaminen epäonnistui",
"folderEditSuccess": "Kansio päivitetty onnistuneesti",
"folderEditFailed": "Kansion päivittäminen epäonnistui",
"confirmRunMessage": "Suorittaa \"{{name}}\"?",
"confirmRunButton": "Juokse",
"runSuccess": "Suoritti komennon \"{{name}}\" {{count}} päätteessä/päätteissä",
"copySuccess": "Kopioitu \"{{name}}\" leikepöydälle",
"shareTitle": "Jaa katkelma",
"shareUser": "Käyttäjä",
"shareRole": "Rooli",
"selectUser": "Valitse käyttäjä...",
"selectRole": "Valitse rooli...",
"shareSuccess": "Katkelman jakaminen onnistui",
"shareFailed": "Katkelman jakaminen epäonnistui",
"revokeSuccess": "Pääsy peruutettu",
"revokeFailed": "Käyttöoikeuden peruuttaminen epäonnistui",
"currentAccess": "Nykyinen käyttöoikeus",
"shareLoadError": "Jaettujen tietojen lataaminen epäonnistui",
"loading": "Ladataan...",
"close": "Lähellä",
"reorderFailed": "Katkelmien järjestyksen tallentaminen epäonnistui",
"importExport": "Tuonti / vienti",
"exportBtn": "Vie JSON",
"importBtn": "Tuo JSON",
"exportSuccess": "Katkelmien vienti onnistui",
"exportFailed": "Katkelmien vienti epäonnistui",
"importTitle": "Tuo koodikatkelmia",
"importDescription": "Tuo koodikatkelmia ja kansioita Termixin viemästä JSON-tiedostosta",
"importDropOrClick": "Pudota JSON-tiedosto tähän tai napsauta selataksesi",
"importSelectedFile": "Valittu: {{name}}",
"importOverwrite": "Korvaa olemassa olevat koodinpätkät samalla nimellä ja kansiolla",
"importStartBtn": "Tuoda",
"importSuccess": "Tuonti valmis: {{snippets}} katkelma(a) lisätty, {{updated}} päivitetty, {{skipped}} ohitettu, {{folders}} kansio(a) lisätty",
"importFailed": "Katkelmien tuonti epäonnistui",
"importInvalidFile": "Virheellinen tiedosto: odotettiin JSON-objektia, jossa on koodikatkelmia tai kansiotaulukoita",
"targetHostsLabel": "Kohdepalvelimet",
"targetHostsHint": "Määritä isännät suorittamaan tämä koodinpätkä suoraan ilman avointa päätettä.",
"noHostsAvailable": "Ei määritettyjä isäntiä",
"clearTargetHosts": "Tyhjennä kaikki",
"hasTargetHosts": "Sisältää kohdeisäntiä",
"runOnTargets": "Juokse tavoitteilla",
"directRunSuccess": "Suoritti komennon \"{{name}}\" {{count}} isäntäkoneella/isännillä",
"directRunPartialFail": "\"{{name}}\" epäonnistui yhdellä tai useammalla isännällä",
"executionResultTitle": "Suorituksen tulokset: {{name}}",
"executionResultDescription": "Tuloste koodinpätkän suorittamisesta kullakin kohdeisännöllä.",
"executionSuccess": "Menestys",
"executionFailed": "Epäonnistui"
},
"userProfile": {
"donateTitle": "Pidä Termix hengissä",
"donateDescription": "Termix on ilmainen, itse isännöity ja vain muutaman ihmisen vapaa-ajallaan rakentama palvelu. Jos se on säästänyt aikaasi tai rahaasi, kryptovaluutan lahjoitus auttaa pitämään sen toiminnassa.",
"donateMilestones": "Lahjoitukset auttavat rahoittamaan aikaa SAML:n, Kubernetesin ja agenttituen rakentamiseen tarvittavien resurssien tutkimiseen ja oppimiseen. Katso edistymistä ja lahjoita.",
"donateButton": "Lahjoita kryptovaluuttaa",
"storageModeLocal": "Selain",
"storageModeCloud": "Tietokanta",
"storageModeDescription": "Selain tallentaa asetukset vain tähän selaimeen. Tietokanta synkronoituu palvelimelle ja latautuu mille tahansa laitteelle.",
"resetToDefaults": "Palauta oletusasetukset",
"resetToDefaultsSuccess": "Asetukset palautettu oletusasetuksiin.",
"storageModeSwitch": "Ensisijainen tallennustila",
"sectionAccount": "Tili",
"sectionAppearance": "Ulkonäkö",
"sectionSecurity": "Turvallisuus",
"sectionApiKeys": "API-avaimet",
"sectionC2sTunnels": "C2S-tunnelit",
"usernameLabel": "Käyttäjätunnus",
"roleLabel": "Rooli",
"roleAdministrator": "Ylläpitäjä",
"authMethodLabel": "Todennustapa",
"authMethodLocal": "Paikallinen",
"twoFaLabel": "2FA",
"twoFaOn": "Päällä",
"twoFaOff": "Pois",
"versionLabel": "Versio",
"betaProgramTitle": "Beetaohjelma",
"betaProgramDescription": "Kokeile tulevia ominaisuuksia etukäteen viikoittain julkaistavan :beta Docker -tunnisteen avulla. Epävakaa, ei tuotantokäyttöön.",
"betaProgramFeedback": "Löysitkö virheen? Ilmoita siitä täällä.",
"betaProgramLearnMore": "Lue lisää",
"deleteAccount": "Poista tili",
"deleteAccountDescription": "Poista tilisi pysyvästi",
"changeServerDescription": "Vaihda toiseen Termix-taustapalvelimeen",
"deleteButton": "Poistaa",
"deleteAccountPermanent": "Tämä toiminto on pysyvä eikä sitä voi perua.",
"deleteAccountWarning": "Kaikki istunnot, isännät, tunnistetiedot ja asetukset poistetaan pysyvästi.",
"confirmPasswordDeletePlaceholder": "Vahvista antamalla salasanasi",
"languageLabel": "Kieli",
"themeLabel": "Teema",
"fontSizeLabel": "Fonttikoko",
"accentColorLabel": "Korostusväri",
"settingsTerminal": "Terminaali",
"commandAutocomplete": "Komennon automaattinen täydennys",
"commandAutocompleteDesc": "Näytä automaattinen täydennys kirjoitettaessa",
"terminalLinkBehavior": "Päätelinkin napsautus",
"terminalLinkBehaviorDesc": "Oletuskäyttäytyminen linkkejä napsautettaessa terminaalissa",
"historyTracking": "Historian seuranta",
"historyTrackingDesc": "Seuraa terminaalin komentoja",
"commandPalette": "Komentopaletti",
"commandPaletteDesc": "Ota pikanäppäin käyttöön",
"reopenTabsOnLogin": "Avaa välilehdet uudelleen kirjautumisen yhteydessä",
"reopenTabsOnLoginDesc": "Palauta avoimet välilehdet, kun kirjaudut sisään tai päivität sivun, jopa toiselta laitteelta",
"confirmTabClose": "Vahvista välilehden sulkeminen",
"confirmTabCloseDesc": "Kysy ennen päätevälilehtien sulkemista",
"settingsSidebar": "Sivupalkki",
"showHostTags": "Näytä isäntätunnisteet",
"showHostTagsDesc": "Näytä tunnisteet isäntäluettelossa",
"hostTrayOnClick": "Napsauta laajentaaksesi isäntätoiminnot",
"hostTrayOnClickDesc": "Näytä aina yhteyspainikkeet; napsauta laajentaaksesi hallinta-asetuksia hiiren osoittimen sijaan",
"compactHostView": "Kompakti isäntänäkymä",
"compactHostViewDesc": "Kutista jokainen isäntä yhdelle riville, joka näyttää vain sen nimen ja osoitteen",
"statusColors": "Todellisen tilan värit",
"statusColorsDesc": "Käytä vihreää/punaista online-/offline-tilan ilmaisemiseen korostusvärin sijaan",
"pinAppRail": "Kiinnitä sovellusraide",
"pinAppRailDesc": "Pidä vasemman sivupalkin sovelluspalkki aina laajennettuna sen sijaan, että se laajenisi hiiren osoittimen vaikutuksesta",
"expandAppRailOnHover": "Laajenna sovellusraita hiiren osoittimen päällä",
"expandAppRailOnHoverDesc": "Salli vasemman sivupalkin sovelluskiskon laajentua, kun osoitin liikkuu sen päälle",
"settingsNavigation": "Navigointi",
"navigationTabsDesc": "Valitse sovelluskiskoon näkyvät välilehdet",
"settingsSnippets": "Katkelmat",
"foldersCollapsed": "Kansiot kutistettu",
"foldersCollapsedDesc": "Pienennä kansiot oletusarvoisesti",
"confirmExecution": "Vahvista suoritus",
"confirmExecutionDesc": "Vahvista ennen koodinpätkien suorittamista",
"settingsUpdates": "Päivitykset",
"disableUpdateChecks": "Poista päivitystarkistukset käytöstä",
"disableUpdateChecksDesc": "Lopeta päivitysten tarkistaminen",
"totpAuthenticator": "TOTP-todentaja",
"totpEnabled": "2FA on käytössä",
"totpDisabled": "Lisää kirjautumisen turvallisuutta",
"disable": "Poista käytöstä",
"enable": "Ota käyttöön",
"setupTotp": "TOTP:n määrittäminen",
"qrCode": "QR-koodi",
"totpInstructions": "Skannaa QR-koodi tai syötä salaisuus todennussovellukseesi ja syötä sitten 6-numeroinen koodi",
"totpCodePlaceholder": "000000",
"verify": "Vahvista",
"changePassword": "Vaihda salasana",
"currentPasswordLabel": "Nykyinen salasana",
"currentPasswordPlaceholder": "Nykyinen salasana",
"newPasswordLabel": "Uusi salasana",
"newPasswordPlaceholder": "Uusi salasana",
"confirmPasswordLabel": "Vahvista uusi salasana",
"confirmPasswordPlaceholder": "Vahvista uusi salasana",
"updatePassword": "Päivitä salasana",
"createApiKeyTitle": "Luo API-avain",
"createApiKeyDescription": "Luo uusi API-avain ohjelmallista käyttöä varten.",
"apiKeyNameLabel": "Nimi",
"apiKeyNamePlaceholder": "esim. CI-putkisto",
"expiryDateLabel": "Voimassaolopäivä",
"optional": "valinnainen",
"cancel": "Peruuttaa",
"createKey": "Luo avain",
"apiKeyCount": "{{count}} -näppäimet",
"newKey": "Uusi avain",
"noApiKeys": "Ei vielä API-avaimia.",
"apiKeyActive": "Aktiivinen",
"apiKeyUsageHint": "Sisällytä avaimesi mukaan",
"apiKeyUsageHintHeader": "otsikko.",
"apiKeyPermissionsHint": "Avaimet perivät luovan käyttäjän oikeudet.",
"roleUser": "Käyttäjä",
"authMethodDual": "Kaksoistutkimus",
"authMethodOidc": "OIDC",
"totpSetupFailed": "TOTP-asennuksen aloittaminen epäonnistui",
"totpEnter6Digits": "Syötä 6-numeroinen koodi",
"totpEnabledSuccess": "Kaksivaiheinen todennus käytössä",
"totpInvalidCode": "Virheellinen koodi, yritä uudelleen",
"totpDisableInputRequired": "Syötä TOTP-koodisi tai salasanasi",
"totpDisabledSuccess": "Kaksivaiheinen todennus poistettu käytöstä",
"totpDisableFailed": "2FA:n poistaminen käytöstä epäonnistui",
"totpDisableTitle": "Poista 2FA käytöstä",
"totpDisablePlaceholder": "Syötä TOTP-koodi tai salasana",
"totpDisableConfirm": "Poista 2FA käytöstä",
"totpContinueVerify": "Jatka vahvistamiseen",
"totpVerifyTitle": "Vahvista koodi",
"totpBackupTitle": "Varakoodit",
"totpDownloadBackup": "Lataa varakoodit",
"passkeys": "Salasanat",
"passkeysDesc": "Kirjaudu sisään ilman salasanaa WebAuthn/FIDO2-tunnuksilla",
"passkeyName": "Salasanan nimi",
"passkeyUvPreferred": "Ensisijainen",
"passkeyUvRequired": "Pakollinen",
"passkeyUvDiscouraged": "Lannistunut",
"addPasskey": "Lisää salasana",
"noPasskeys": "Ei rekisteröityjä salasanoja.",
"passkeyAdded": "Salasana lisätty",
"passkeyAddFailed": "Salasanan lisääminen epäonnistui",
"passkeyDeleted": "Salasana poistettu",
"passkeyDeleteFailed": "Salasanan poistaminen epäonnistui",
"done": "Tehty",
"secretCopied": "Salaisuus kopioitu leikepöydälle",
"apiKeyNameRequired": "Avaimen nimi on pakollinen",
"apiKeyCreated": "API-avain \"{{name}}\" luotu",
"apiKeyCreateFailed": "API-avaimen luominen epäonnistui",
"apiKeyUser": "Käyttäjä",
"apiKeyExpires": "Vanhenee",
"apiKeyRevoked": "API-avain \"{{name}}\" peruutettu",
"apiKeyRevokeFailed": "API-avaimen peruuttaminen epäonnistui",
"passwordFieldsRequired": "Nykyinen ja uusi salasana vaaditaan",
"passwordMismatch": "Salasanat eivät täsmää",
"passwordTooShort": "Salasanan on oltava vähintään 6 merkkiä pitkä",
"passwordUpdated": "Salasana päivitetty onnistuneesti",
"passwordUpdateFailed": "Salasanan päivittäminen epäonnistui",
"deletePasswordRequired": "Salasana vaaditaan tilisi poistamiseen",
"deleteFailed": "Tilin poistaminen epäonnistui",
"deleting": "Poistetaan...",
"colorPickerTooltip": "Avaa värivalitsin",
"themeSystem": "Järjestelmä",
"themeLight": "Valo",
"themeDark": "Tumma",
"themeDracula": "Dracula",
"themeCatppuccin": "Catppuccin",
"themeNord": "Pohjoinen",
"themeSolarized": "Solaroitu",
"themeTokyoNight": "Tokion yö",
"themeOneDark": "Yksi pimeä",
"themeGruvbox": "Gruvbox"
}
}
},
"tmuxMonitor": {
"title": "Tmux-näyttö",
"failedToLoadHosts": "Isäntien lataaminen epäonnistui",
"failedToLoad": "tmux-istuntojen lataaminen epäonnistui",
"tmuxUnavailable": "tmuxia ei ole asennettu tälle koneelle",
"noSessions": "Ei tmux-istuntoja tällä isännöinnillä",
"noHostSelected": "Ei valittua isäntää",
"attached": "Liitteenä",
"detached": "Erillinen",
"attach": "Liittää",
"editTags": "Muokkaa tunnisteita",
"tagsHint": "Pilkuilla erotetut tunnisteet (esim. YOLO, lab, training)",
"tagsSaved": "Tagit tallennettu",
"tagsSaveFailed": "Tunnisteiden tallentaminen epäonnistui",
"searchPlaceholder": "Hae tulostetta istuntojen välillä...",
"searchResults": "{{count}} osumaa",
"searchFailed": "Haku epäonnistui",
"selectPaneHint": "Valitse ruutu esikatsellaksesi sen tulosta",
"closePreview": "Sulje esikatselu",
"newSession": "Uusi istunto",
"newSessionHint": "Istunnon nimi (kirjaimet, numerot, _ @ % + = -)",
"newSessionPlaceholder": "my-session",
"create": "Luoda",
"sessionCreated": "Istunto \"{{name}}\" luotu",
"sessionCreateFailed": "Istunnon luominen epäonnistui",
"splitRight": "Jaa oikealle",
"splitDown": "Jaa alas",
"splitFailed": "Ruudun jakaminen epäonnistui",
"newWindow": "Uusi ikkuna",
"windowCreateFailed": "Ikkunan luominen epäonnistui",
"attachSessionTooltip": "Liitä kohtaan {{session}}",
"refresh": "Päivitä",
"refreshFailed": "Istuntojen päivittäminen epäonnistui",
"collapseAll": "Pienennä kaikki",
"expandAll": "Laajenna kaikki",
"moreActions": "Lisää toimintoja",
"sessionStats": "Istuntotilastot",
"renameSessionTitle": "Nimeä istunto uudelleen \"{{name}}\"",
"rename": "Nimeä uudelleen",
"sessionRenamed": "Istunto nimettiin uudelleen muotoon \"{{name}}\"",
"sessionRenameFailed": "Istunnon uudelleennimeäminen epäonnistui",
"editTagsTitle": "Muokkaa tunnisteita kohteelle \"{{name}}\"",
"killPane": "Tappaa ruutu",
"resizeTree": "Muuta kokoa vetämällä kaksoisnapsauttamalla voit palauttaa sen",
"reattach": "Kiinnitä uudelleen (korjaa vääristyneen näkymän)",
"killWindow": "Tapa ikkuna",
"killWindowTitle": "Tappaa ikkuna {{index}} kohteelle \"{{session}}\"?",
"killWindowBody": "Jokainen tässä ikkunassa oleva ruutu ja prosessi lopetetaan. Viimeisen ikkunan sulkeminen lopettaa istunnon.",
"windowKillFailed": "Ikkunan sulkeminen epäonnistui",
"statusActivity": "Toiminta",
"statusWindows": "Ikkunat",
"statusPanes": "ruudut",
"statusTags": "Tunnisteet",
"killPaneTitle": "Tappaa ruutu {{id}}?",
"killPaneBody": "Tässä ruudussa käynnissä oleva prosessi lopetetaan. Viimeisen ruudun sulkeminen sulkee sen ikkunan.",
"paneKillFailed": "Ruudun sulkeminen epäonnistui",
"killSessionTitle": "Lopeta istunto \"{{name}}\"?",
"killSessionBody": "Kaikki tämän istunnon ikkunat ja käynnissä olevat prosessit lopetetaan. Tätä ei voi perua.",
"kill": "Tappaa",
"sessionKilled": "Istunto \"{{name}}\" lopetettu",
"sessionKillFailed": "Istunnon lopettaminen epäonnistui",
"hostUnreachable": "Yhteyden muodostaminen isäntään ei onnistu. Tarkista, että se on verkossa ja tavoitettavissa.",
"noServer": "Tällä isännöinnillä ei ole käynnissä tmux-palvelinta.",
"searchTruncated": "Osittaisia tuloksia — haku kattaa kunkin ruudun viimeiset {{lines}} rivit ja enintään {{panes}} ruutua.",
"closeSearchResults": "Sulje hakutulokset",
"retry": "Yritä uudelleen",
"noHosts": "Ei SSH-isäntiä saatavilla",
"noHostsHint": "Ota Tmux Monitor -asetus käyttöön SSH-isännässä (Isäntähallinta → Pääte-välilehti) sen tmux-istuntojen valvomiseksi.",
"tmuxInstallHint": "Asenna se isäntäkoneelle komennolla:",
"attachTooltip": "Avaa pääte ja kohdista {{host}}",
"attachTooltipPane": "Avaa pääteohjelma ja kohdista {{host}} — tmux-istunto {{session}}",
"timeJustNow": "juuri nyt",
"timeMinutes": "{{count}}minuuttia sitten",
"timeHours": "{{count}}tuntia sitten",
"timeDays": "{{count}}d sitten"
},
"mobileKeyboard": {
"shift": "Siirtää",
"ctrl": "Ctrl",
"esc": "Esc-näppäin",
"tab": "Välilehti",
"backTab": "⇥",
"arrowUp": "Nuoli ylös",
"arrowDown": "Nuoli alas",
"arrowLeft": "Nuoli vasemmalle",
"arrowRight": "Nuoli oikealle",
"home": "Kotiin",
"end": "Loppu",
"pageUp": "Sivu ylös",
"pageDown": "PgDn",
"delete": "Poista",
"editQuickKeys": "Muokkaa pikanäppäimiä",
"quickKeysTitle": "Pikanäppäimet",
"quickKeysDesc": "Poista napauttamalla ×. Tukee enintään 8 merkkiä.",
"quickKeyPlaceholder": "esim. sudo ",
"addQuickKey": "Lisätä",
"removeQuickKey": "Poistaa",
"resetDefaults": "Palauta oletusasetukset",
"done": "Tehty"
},
"serial": {
"title": "Sarjanumero",
"portLabel": "Portti",
"portPlaceholder": "/dev/ttyUSB0 tai COM3",
"baudRateLabel": "Baud-nopeus",
"dataBitsLabel": "Data",
"stopBitsLabel": "Stop",
"parityLabel": "Pariteetti",
"parityNone": "Ei mitään",
"parityEven": "Jopa",
"parityOdd": "Pariton",
"connect": "Yhdistä sarjaporttiin",
"disconnect": "Katkaise yhteys",
"refreshPorts": "Päivitä portit",
"connected": "Yhdistetty {{path}} -laitteeseen {{baud}} baudilla",
"disconnected": "Sarjaportti irrotettu",
"connectionError": "Sarjaportin avaaminen epäonnistui",
"wsError": "WebSocket-virhe",
"errorNoServerUrl": "Palvelimen URL-osoitetta ei ole määritetty",
"notSupportedTitle": "Sarjanumeroa ei tueta",
"notSupported": "Sarjaliikenne vaatii selaimen, jossa on Web Serial API -tuki (Chrome, Edge tai Firefox 151+), tai Termix-työpöytäsovelluksen.",
"hideHint": "Voit piilottaa Sarja-välilehden kohdassa Käyttäjäprofiili > Ulkoasu > Sivupalkki > Navigointi.",
"browserPickerHint": "Napsauta Yhdistä, niin selaimesi avaa porttivalitsimen laitteen valitsemiseksi."
},
"metricsHistory": {
"title": "Mittarihistoria",
"historySuffix": "Historia",
"cpuMemoryDisk": "CPU / Muisti / Levy",
"network": "Verkko",
"download": "Vastaanotto",
"upload": "Teksas",
"noData": "Tältä aikaväliltä ei ole saatavilla historiatietoja.",
"custom": "Mukautettu",
"to": "että",
"apply": "Käytä",
"viewHistory": "Näytä historia"
},
"alerts": {
"tabFirings": "Hälytykset",
"tabRules": "Säännöt",
"tabChannels": "Kanavat",
"noFirings": "Ei kuittaamattomia hälytyksiä",
"noRules": "Ei määritettyjä hälytyssääntöjä",
"noChannels": "Ei määritettyjä ilmoituskanavia",
"rulesDesc": "Hälytyssäännöt käynnistävät ilmoituksia",
"channelsDesc": "Minne hälytysilmoitukset lähetetään",
"acknowledge": "Kuittaa",
"ackAll": "Ack All",
"allAcknowledged": "Kaikki hälytykset kuitattu",
"ackFailed": "Hälytyksen kuittaus epäonnistui",
"ackAllFailed": "Kaikkien hälytysten kuittaus epäonnistui",
"showAcknowledged": "Näytä kaikki",
"hideAcknowledged": "Piilota kuitattu",
"addChannel": "Lisää kanava",
"editChannel": "Muokkaa kanavaa",
"channelName": "Nimi",
"channelType": "Tyyppi",
"channelNameRequired": "Nimi on pakollinen",
"webhookUrl": "URL-osoite",
"webhookUrlRequired": "Webhookin URL-osoite vaaditaan",
"webhookDesc": "Lähetä JSON-hyötysisältö tähän URL-osoitteeseen jokaisen hälytyksen käynnistyessä",
"ntfyServer": "Palvelimen URL-osoite",
"ntfyTopic": "Aihe",
"ntfyTopicRequired": "Aihe on pakollinen",
"ntfyToken": "Käyttöoikeustunnus (valinnainen)",
"channelSaveFailed": "Kanavan tallentaminen epäonnistui",
"test": "Testata",
"testSent": "Testi-ilmoitus lähetetty",
"testFailed": "Testi-ilmoitus epäonnistui",
"addRule": "Lisää hälytyssääntö",
"editRule": "Muokkaa hälytyssääntöä",
"ruleName": "Säännön nimi",
"ruleNameRequired": "Nimi on pakollinen",
"triggerType": "Laukaista",
"thresholdValue": "Kynnysarvo (%)",
"durationSeconds": "Kesto (sekuntia, 0 = käynnistyy välittömästi)",
"cooldownMinutes": "Jäähdyttelyaika (minuuttia)",
"channels": "Ilmoituskanavat",
"noChannelsHint": "Lisää kanavat ensin Kanavat-välilehdellä",
"ruleSaveFailed": "Säännön tallentaminen epäonnistui"
}
}