Files
Termix/src/ui/locales/translated/uk_UA.json
T
3643e7af97 release-2.9.0 (#1532)
* fix(macos): skip single-instance lock in Mac App Store builds (#1454)

fix(macos): skip single-instance lock in Mac App Store builds

* Fix/backend optional sharp (#1455)

Fix/backend optional sharp

* feat: issue #1218 (#1218)

https://github.com/Termix-SSH/Support/issues/1218

* feat: Add option to use saved global custom theme under Connection Defaults (#1209)

https://github.com/Termix-SSH/Support/issues/1209

* feat: Add Fleet Sharing functionality to the UI (#1228)

https://github.com/Termix-SSH/Support/issues/1228

* feat: Add a list view to the Docker management page (#1237)

https://github.com/Termix-SSH/Support/issues/1237

* feat: issue #1264 (#1264)

https://github.com/Termix-SSH/Support/issues/1264

* feat: 2FA With FortiToken (#1288)

https://github.com/Termix-SSH/Support/issues/1288

* feat: Allow to disable showing paths to folders (#1274)

https://github.com/Termix-SSH/Support/issues/1274

* feat: Sync Network Graph between Desktop and Remote Server (#1245)

https://github.com/Termix-SSH/Support/issues/1245

* feat: Version Number on offline servers (#1291)

https://github.com/Termix-SSH/Support/issues/1291

* feat: Support OrbStack Docker socket path on macOS / Fix "Docker is not installed" on mac... (#1302)

https://github.com/Termix-SSH/Support/issues/1302

* feat: Sidebar host click should focus existing tab instead of opening a new connection (#1289)

https://github.com/Termix-SSH/Support/issues/1289

* fix: Search in side bar shows overlapping hosts when grouped by tags (#1303)

https://github.com/Termix-SSH/Support/issues/1303

* fix: I can't send a file on its own. (#1304)

https://github.com/Termix-SSH/Support/issues/1304

* fix: sudo password not autofilling (#1248)

https://github.com/Termix-SSH/Support/issues/1248

* fix: node-MainThread (#1300)

https://github.com/Termix-SSH/Support/issues/1300

* fix: Tunnel authentication with shared credentials (#1295)

https://github.com/Termix-SSH/Support/issues/1295

* fix: host key updates not syncing, metrics 404 race on first connect

Host key writes never bumped updatedAt so sync never picked them up.
Also retry the first metrics fetch briefly instead of failing right away.

* chore: increment ver

* feat: add category and icon fields to plugin manifest schema

* ci(deps): bump the github-actions group with 2 updates (#1458)

Bumps the github-actions group with 2 updates: [crowdin/github-action](https://github.com/crowdin/github-action) and [actions/github-script](https://github.com/actions/github-script).


Updates `crowdin/github-action` from 2 to 3
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](https://github.com/crowdin/github-action/compare/v2...v3)

Updates `actions/github-script` from 7 to 9
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v9)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/github-script
  dependency-version: '9'
  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 13 updates (#1459)

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

| Package | From | To |
| --- | --- | --- |
| [@codemirror/commands](https://github.com/codemirror/commands) | `6.11.0` | `6.11.1` |
| [@codemirror/search](https://github.com/codemirror/search) | `6.7.1` | `6.7.2` |
| [@codemirror/view](https://github.com/codemirror/view) | `6.43.9` | `6.43.12` |
| [@testing-library/dom](https://github.com/testing-library/dom-testing-library) | `10.4.1` | `10.4.2` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.2` | `16.3.3` |
| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.5` | `14.6.7` |
| [@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2) | `1.15.5` | `1.15.6` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.1.0` | `6.1.1` |
| [cytoscape](https://github.com/cytoscape/cytoscape.js) | `3.34.1` | `3.34.3` |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.5.4` | `0.5.7` |
| [i18next](https://github.com/i18next/i18next) | `26.4.0` | `26.4.2` |
| [prettier](https://github.com/prettier/prettier) | `3.9.6` | `3.9.8` |
| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.12` | `17.0.14` |


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

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

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

Updates `@testing-library/dom` from 10.4.1 to 10.4.2
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.4.1...v10.4.2)

Updates `@testing-library/react` from 16.3.2 to 16.3.3
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.3.2...v16.3.3)

Updates `@testing-library/user-event` from 14.6.5 to 14.6.7
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v14.6.5...v14.6.7)

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

Updates `@vitejs/plugin-react` from 6.1.0 to 6.1.1
- [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.1.1/packages/plugin-react)

Updates `cytoscape` from 3.34.1 to 3.34.3
- [Release notes](https://github.com/cytoscape/cytoscape.js/releases)
- [Commits](https://github.com/cytoscape/cytoscape.js/compare/v3.34.1...v3.34.3)

Updates `eslint-plugin-react-refresh` from 0.5.4 to 0.5.7
- [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.4...v0.5.7)

Updates `i18next` from 26.4.0 to 26.4.2
- [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.4.0...v26.4.2)

Updates `prettier` from 3.9.6 to 3.9.8
- [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.9.6...3.9.8)

Updates `react-i18next` from 17.0.12 to 17.0.14
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/react-i18next/compare/v17.0.12...v17.0.14)

---
updated-dependencies:
- dependency-name: "@codemirror/commands"
  dependency-version: 6.11.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@codemirror/search"
  dependency-version: 6.7.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@codemirror/view"
  dependency-version: 6.43.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@testing-library/dom"
  dependency-version: 10.4.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@testing-library/react"
  dependency-version: 16.3.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@testing-library/user-event"
  dependency-version: 14.6.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/ssh2"
  dependency-version: 1.15.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: cytoscape
  dependency-version: 3.34.3
  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.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: i18next
  dependency-version: 26.4.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: prettier
  dependency-version: 3.9.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-i18next
  dependency-version: 17.0.14
  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 the prod-patch-updates group with 6 updates (#1461)

Bumps the prod-patch-updates group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.14.10` | `3.14.13` |
| [compression](https://github.com/expressjs/compression) | `1.8.1` | `1.8.2` |
| [jose](https://github.com/panva/jose) | `6.2.9` | `6.2.12` |
| [jszip](https://github.com/Stuk/jszip) | `3.10.1` | `3.10.2` |
| [socks](https://github.com/JoshGlazebrook/socks) | `2.8.9` | `2.8.10` |
| [undici](https://github.com/nodejs/undici) | `8.10.0` | `8.10.2` |


Updates `@tanstack/react-virtual` from 3.14.10 to 3.14.13
- [Release notes](https://github.com/TanStack/virtual/releases)
- [Changelog](https://github.com/TanStack/virtual/blob/main/packages/react-virtual/CHANGELOG.md)
- [Commits](https://github.com/TanStack/virtual/commits/@tanstack/react-virtual@3.14.13/packages/react-virtual)

Updates `compression` from 1.8.1 to 1.8.2
- [Release notes](https://github.com/expressjs/compression/releases)
- [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/compression/compare/v1.8.1...v1.8.2)

Updates `jose` from 6.2.9 to 6.2.12
- [Release notes](https://github.com/panva/jose/releases)
- [Changelog](https://github.com/panva/jose/blob/main/CHANGELOG.md)
- [Commits](https://github.com/panva/jose/compare/v6.2.9...v6.2.12)

Updates `jszip` from 3.10.1 to 3.10.2
- [Changelog](https://github.com/Stuk/jszip/blob/main/CHANGES.md)
- [Commits](https://github.com/Stuk/jszip/compare/v3.10.1...v3.10.2)

Updates `socks` from 2.8.9 to 2.8.10
- [Release notes](https://github.com/JoshGlazebrook/socks/releases)
- [Commits](https://github.com/JoshGlazebrook/socks/compare/2.8.9...2.8.10)

Updates `undici` from 8.10.0 to 8.10.2
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v8.10.0...v8.10.2)

---
updated-dependencies:
- dependency-name: "@tanstack/react-virtual"
  dependency-version: 3.14.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: compression
  dependency-version: 1.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: jose
  dependency-version: 6.2.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: jszip
  dependency-version: 3.10.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: socks
  dependency-version: 2.8.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: undici
  dependency-version: 8.10.2
  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>

* feat: add plugin worker protocol, bootstrap and plugin_storage table

Worker-side ctx proxy plus the message envelope it talks over, and the
per-plugin key/value table behind ctx.storage with migrations for all
three dialects. Rows cascade with the plugin so uninstalling leaves
nothing behind.

* feat: add allowlisted host view for plugins

An allowlist rather than a list of fields to strip. A blocklist rots:
the moment a new secret-bearing column lands on SSHHost it starts
leaking silently. With an allowlist a new field stays invisible to
plugins until someone adds it here on purpose.

* feat: add plugin loader with manifest validation and crash restart

Validates an unpacked plugin, spawns a worker_threads worker and manages
activate/deactivate/crash-restart with backoff, disabling after three
tries.

The crash counter clears only after a plugin stays up past a stability
window, not on activation. Clearing it on activation let a plugin that
activates cleanly and then dies restart forever, because every attempt
looked like the first.

loader.ts documents what the worker boundary does and does not buy you.
Node's permission model is process-wide, not per-worker, so it cannot be
enabled for plugin workers alone and is not claimed here.

* feat: route internal events through a shared plugin event bus

Formalises three ad-hoc publish paths that already existed:
automation-events.ts, metrics/automation-bridge.ts and the
hostSessionStatus singleton, now the host.session.status topic.

Both invariants the old code relied on are preserved. Publishing stays
fire-and-forget, so a failing subscriber cannot disturb a metrics poll or
a host delete. The automations engine subscribes to the bus at scheduler
start instead of being imported ad hoc, which keeps the edge
one-directional: automations may import repositories, hosts modules must
not import automations.

* feat: add plugin ctx broker with permission gate and audit

Every ctx call a plugin makes is checked against its granted
capabilities, performed by the main thread, then audited. A capability
must be both declared in the manifest and granted in the database, so
widening a plugin's reach always needs a new manifest the user can see,
never just a database row.

Audit attribution is set by the broker, not the plugin. The plugin
supplies only the details, so it cannot forge the actor.

fix: stop plugin workers seeing plaintext credentials in error messages

A failing ctx.ssh.connect handed the worker the raw error from deep in
the SSH stack, which embeds the connect config. The worker received, in
full:

  Authentication failed for root using password <SECRET>

where <SECRET> was the host's real plaintext password. Any plugin with
ssh.exec could read it by catching the error, defeating the whole point
of the handle-based ssh API.

Errors crossing the boundary are now sanitised. Only PluginFacingError
and PluginPermissionError, both authored here, reach a plugin verbatim;
anything else becomes a generic message and the real one goes to the
log. This uses a marker class rather than matching on message text,
because matching would start leaking again the moment an upstream error
happened to contain a familiar phrase.

Covered by credential-isolation.test.ts, which plants a sentinel in
every secret-bearing field and asserts it appears in no message the
worker ever receives.

* feat: dispatch plugin HTTP routes and wire the runtime into startup

ctx.http.route now registers a real router on the /plugin-api/:pluginId
dispatcher, replacing its stub 404. A plugin never touches the Express
req/res: it gets a plain summary and returns a plain object, so sockets
and session cookies stay on this side of the boundary. Authorization and
cookie headers are not forwarded.

Plugins load last in the start-up sequence, after the server is fully
wired, and are terminated before the database on shutdown so none can
outlive it. A plugin that fails to load cannot stop the backend.

fix: correct the nginx plugin-api location regex

The pattern was ^/plugin-api/(/.*)?$, which needs a double slash and so
never matched /plugin-api/<id>/<route>. Every other block in the file
uses ^/prefix(/.*)?$. Left alone, plugin routes would work in dev and
404 only behind Docker.

* fix: update stale SFTP transfer test for single file destination paths

The test still asserted transferToHost was called with the destination
directory "/srv". Commit 7727fa09 (#1304) deliberately changed a single
file transfer to send the full destination path including the filename,
so the correct expectation is "/srv/remote-1.txt". The code was right
and the test was left behind.

* feat: ship the ssh terminal as a first-party in-process plugin

Adds a hardcoded process:transport-owner tier so the terminal can own its
WebSocket server and ssh2 clients, which cannot cross the worker boundary.

* feat: ship docker as a first-party in-process plugin

Moves docker backend and frontend into plugins/docker/, alongside
ssh-terminal. Adds a host editor tab seam, a dashboard card registry,
and a build step to compile plugin backends into dist.

* feat: ship host metrics as a first-party in-process plugin

* fix: harden plugin auth and add per-request identity for ctx calls

Require auth on /plugin-api, gate plugin enable/grant/revoke routes
behind admin.plugins.manage, and thread the calling user through
worker ctx.hosts/ctx.ssh calls instead of always using the install
owner. Also adds the plugin permissions grant/revoke UI.

* feat: ship the AI assistant as a first-party in-process plugin

Moves src/backend/ai and its routes into plugins/ai, mounted through a
small /ai dispatcher instead of its own port. Moves the ai-enabled and
ai-private-endpoints settings routes out of user-settings-routes.ts
into the plugin too, so it has no leftover core dependents.

* fix: remove compiled plugin JS left behind in plugins/ after build

copy-bundled-plugins.cjs compiled and rewrote plugin backend TS in
place, copied it to dist/plugins, but never deleted the .js it had
just emitted next to the .ts sources. Those files shadowed the real
source for vitest/tsx and had import paths rewritten for the dist
layout, so tests failed with "Cannot find module" once a local build
had run. Affects docker, host-metrics and ai, not just this one.

* feat: add a permission-gated backend service registry for plugins

* feat: add a permission-gated UI action registry and action slots for plugins

Moves the terminal toolbar's hardwired AI button into a slot the ssh-terminal
plugin offers and the ai plugin fills, gated on ai.services.use.

* feat: add cross-plugin secret references gated by the provider's RBAC permission

* feat: move proxmox discovery/import/sync into a first-party plugin

* feat: move remote desktop (RDP/VNC/Telnet) into a first-party plugin

Relocates guacamole backend/frontend source and tests into
plugins/remote-desktop, following the ssh-terminal/docker pattern.

* feat: wire remote-desktop plugin into core and rename i18n keys

Repoints core consumers (dispatcher, collab, session-sharing, tab
utils) at the plugin, adds isTabTypeAvailable gating for rdp/vnc/
telnet, widens hostCapability to accept an array, and renames the
guacamole i18n namespace to remoteDesktop.

* feat: move fleets into a first-party plugin

* feat: move automations into a first-party plugin

* feat: remove legacy alert rules, superseded by automations

Alert rules already auto-migrate into automations on boot and the old
engine stands down after. Deletes the rule/firing tables, routes, UI,
and AI tools; keeps notification channels since automations still use
them. Also fixes automations' notify step, which still called the
deleted repository.

* feat: move network topology into a first-party plugin

* feat: move tailscale device discovery and settings into a plugin

Adds plugins/tailscale/ with a devices sidebar tab, admin settings
section, and re-auth dialog. Host Metrics tailscale manager card and
SSH re-auth banner parsing stay in core.

* feat: move workspaces into a first-party plugin

* feat: move web endpoint into a first-party plugin

* feat: collapse plugin runtime to one tier behind a plugin SDK

* feat: make each plugin an npm workspace built by a termix-plugin CLI

* feat: give plugins their own tables, migrations and sync entities

* feat: serve plugin http and websockets from one mount instead of ports

* feat: namespace plugin permissions and keep them valid when a plugin is off

* feat: give plugins their own settings and one settings screen

* feat: load plugin frontends at runtime and remove plugin ids from the shell

* fix: mock the ai status fetch in its activate test

* feat: add auth extension points and one ssh connect pipeline

* feat: rebuild workspaces as the reference plugin

* fix: gate second factors after SSO/LDAP behind an admin setting

* feat: convert network-topology to a full plugin (B1)

* feat: move snippets backend and tables into a plugin (B2)

* feat: point core frontend snippets pickers at the plugin (B2)

* feat: add the snippets plugin (B2)

* feat: wire ai, automations, fleets and ssh-terminal to snippets (B2)

* feat: finish the tailscale plugin, including SSH auth (B3)

* feat: finish the fleets plugin, add ctx.hosts and host-commands SDK (B4)

* chore: update proxmox and host-metrics locale files for B5

* chore: regenerate drizzle migration journals for B5

* feat: add ctx.hosts create/update to the SDK, host-metrics drops proxmox

* feat: move proxmox node stats and collectors into the proxmox plugin

* feat: drop proxmox host columns, use plugin settings instead

* feat: finish the fleets plugin, add ctx.hosts and host-commands SDK (B4)

* feat: convert file manager into a plugin

* feat: convert ssh tunnels into a plugin

* feat: finish the web-endpoint plugin, add ctx.desktop (B8)

* feat: move the terminal fully into the ssh-terminal plugin (B9)

* feat: convert tmux monitoring into a plugin (B10)

* feat: convert serial console into the serial plugin

* feat: move session sharing and collab rooms into a plugin (B12)

* feat: turn session recording into a plugin (B13)

* feat: finish the remote-desktop plugin (B14)

* feat: finish the host-metrics plugin, move host status into core (B16)

* feat: finish the docker plugin (B15)

* feat: finish the automations plugin (B17)

* feat: finish the ai plugin (B18)

* feat: finish the homepage plugin, move service links and canvas out of core (B19)

* feat: convert wake-on-lan into a plugin (B20)

* feat: convert secret-sources into a plugin (B20)

* feat: move totp and passkeys into plugins (C1)

* feat: move sso and ldap logins into plugins (C2)

* feat: move opkssh and warpgate into plugins (C3)

* feat: move step-ca into a plugin (C4)

* feat: move vault ssh signing into a plugin (C5)

* feat: move termix identity into a plugin (C6)

* feat: move acme certificate automation into a plugin (C7)

* fix: finish 2.9.0 plugin moves and get every check green

* chore: lock the plugin boundary and remove 2.9.0 leftovers

* fix: harden the plugin runtime after the 2.9.0 security review

* feat: add plugin packing, signing, pinned trust and tmxplug bundling

* test: prove 2.8 to 2.9.0 upgrade is lossless and fix what it caught

* fix: give bundled plugin backends a real require for CJS deps

* feat: improve UI loading time and jitter

* feat: show credential sharing inline in the sidebar like host sharing

* feat: tailscale add host and copy ip, fix outbound fetch hang and plugin ESM warning

* feat: unify alerts into one plugin, channels, rules and inbox

* feat: rebuild desktop sync as linked server accounts, fix packaged plugin bundles and UI scaling

* fix: set blacksmith builder cache-key to stop broken gha cache fallback

* fix: link plugin-sdk workspace before npm ci in docker deps stage

* fix: link every plugin workspace before npm ci in docker deps stage

* fix(host-metrics): exclude image and firmware filesystems (#1469)

* fix(host-metrics): exclude image and firmware filesystems

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* fix(hosts): normalize imported jump host references (#1470)

* fix(hosts): normalize imported jump host references

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* fix(ci): build plugin SDK and repair MySQL settings migration (#1471)

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* fix(file-manager): keep inline rename consistent (#1476)

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* fix(file-manager): keep inline rename consistent

* fix(dashboard): reuse translated host status labels (#1475)

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* fix(dashboard): reuse translated host status labels

* docs(api): clarify local and remote version fields (#1474)

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* docs(api): clarify local and remote version fields

* fix(file-manager): preserve selected backgrounds on hover (#1473)

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* fix(file-manager): preserve selection feedback on hover

* test(ui): await dialog focus cleanup before teardown

* fix(file-manager): restore Ctrl/Cmd+F file search (#1472)

* fix(ci): build plugin SDK before dependent checks

* fix(mysql): keep plugin settings scope indexes within limits

* test(mysql): refresh reviewed plugin upgrade SQL

* fix(file-manager): focus file search with Ctrl or Cmd F

* fix: keep rounded-full circular in production builds

* fix(file-manager): cancel uploads and stop remote writes (#1477)

* fix(file-manager): cancel uploads and stop remote writes

* test(css): exercise the configured PostCSS plugin chain

* fix(file-manager): apply compact density to directory tree (#1478)

* fix(file-manager): apply compact density to directory tree

* test(css): exercise the configured PostCSS plugin chain

* fix(file-manager): preserve font sizes in compact mode (#1480)

* fix(file-manager): preserve font sizes in compact mode

* test(css): exercise the configured PostCSS plugin chain

* fix(file-manager): prioritize file names in narrow lists (#1483)

* fix(file-manager): prioritize file names in narrow lists

* test(css): exercise the configured PostCSS plugin chain

* test(identity): preserve full Ed25519 public keys in fixtures

* test(remote-desktop): always mutate ciphertext in tamper test

* fix(remote-desktop): probe the saved host guacd endpoint (#1481)

* fix(remote-desktop): probe the saved host guacd endpoint

* test(css): exercise the configured PostCSS plugin chain

* test(identity): preserve full Ed25519 public keys in fixtures

* fix(homepage): check allowlisted private service reachability (#1479)

* fix(homepage): check allowlisted private service reachability

* test(css): exercise the configured PostCSS plugin chain

* fix(remote-desktop): stop unsolicited clipboard read prompts (#1482)

* fix(remote-desktop): read clipboard only on explicit paste

* test(css): exercise the configured PostCSS plugin chain

* test(identity): preserve full Ed25519 public keys in fixtures

* test(remote-desktop): always mutate ciphertext in tamper test

* chore: simplify plugin readmes, changelogs and manifest descriptions

* fix: keep plugins loaded after signing in from the login screen

* fix(file-manager): accept OS file drops over existing rows (#1484)

* fix(file-manager): accept OS file drops over existing rows

* test(file-manager): target the file label in drop tests

* test(css): exercise the configured PostCSS plugin chain

* test(identity): preserve full Ed25519 public keys in fixtures

* test(remote-desktop): always mutate ciphertext in tamper test

* fix(file-manager): pipeline SFTP download reads (#1485)

* feat: add plugin sdk build to beta release

* fix: make link-store secret check immune to random base64 matches

* fix(ldap): preserve the directory-provided bind DN (#1486)

* fix: compute beta changes across dev branches and move the beta tag

* chore: untrack plugin sdk ARCHITECTURE.md

* chore: remove references to plugin sdk ARCHITECTURE.md

* feat: merge host editor terminal tabs into one owned by ssh-terminal

* feat: add descriptions to plugin host enable toggles

* fix(file-manager): show download progress in file viewers (#1487)

* fix(electron): signal backend readiness over IPC (#1488)

* fix(split-screen): allow layout creation without randomUUID (#1490)

* fix(split-screen): allow layout creation without randomUUID

* test(credentials): avoid flaky Ed25519 key generation

* fix(sidebar): remeasure visible rows after density changes (#1489)

* fix(sidebar): remeasure visible rows after density changes

* test(credentials): avoid flaky Ed25519 key generation

* feat(split-screen): redesign split screen with free-form panes and pane picker

* feat(sidebar): add host click behavior setting, default to always opening a new tab

* feat(snippets): redesign panel to match the host list

* fix(session-recording): stop session logs panel from refetching in a loop

* feat(snippets): bring back sharing, target hosts and drag reorder

* feat(ssh-terminal): add toolbar position, start state, display and fade host settings

* feat(ssh-terminal): add host setting to turn off password prompt auto-fill

* fix(ai): stop streams getting cut off and keep tool steps across messages

* feat: improve quick connect system using plugin api

* fix: proxmox guest sync, startup snippet sync, drop dead cloudflare ssh transport

* feat: move terminal settings, look and ssh tools into ssh-terminal plugin

* feat: move snippets, keybinding actions and macros out of core into plugins

* feat: store rdp, vnc and telnet logins in a generic per-protocol table

* feat: type the plugin host record, move plugin strings out of core and add lint checks

* feat: replace core homepage widget registry with generic extension points

* feat: plugins only see their own host settings in the browser

* feat: harden plugin api for separate repos, signed updates and generic external login

* fix: keep plugin css below core utilities and version plugin assets by their css

* fix: load and save plugin host settings in the editor and tighten settings row spacing

* feat: redesign user host defaults system

* fix(remote-desktop): release held keys on focus loss (#1498)

* fix(session-sharing): replace local presentation after takeover (#1500)

* fix(file-manager): refresh disk usage with directory listing (#1503)

* fix(ssh-terminal): preserve input order during local echo reconciliation (#1505)

* feat(remote-desktop): expose display zoom controls for RDP (#1514)

* fix(file-manager): restore text selection and copying in Markdown previews (#1518)

* fix(sidebar): keep compact host addresses visible (#1524)

* fix(hosts): preserve plugin settings when reopening the editor (#1499)

* fix(ssh-terminal): close owner sockets when presentations unmount (#1501)

* fix(session-sharing): synchronize shared SSH terminal dimensions (#1502)

* fix(session-sharing): show participant presence in member terminals (#1504)

* fix(ai): sync provider configuration and keys across linked devices (#1506)

* feat(ssh-terminal): add a duplicate tab action (#1510)

* feat(file-manager): allow disabling move-to-trash confirmation (#1511)

* feat(file-manager): default to the remote login directory (#1512)

* feat(homepage): synchronize canvas layouts across devices (#1515)

* fix(shortcuts): prevent accidental double-Shift palette activation (#1519)

* feat(tmux-monitor): add a unified multi-host view (#1520)

* fix(electron): allow explicit quit with active connections (#1522)

* feat: reconnect all disconnected terminal tabs (#1523)

* fix(hosts): preserve recording and sharing settings in the dev editor (#1509)

* fix(database): preserve RDP domain during startup backfill (#1497)

* feat(sidebar): add keyboard type-ahead search for hosts (#1516)

* feat(automations): add per-host maintenance mode and recurring schedules (#1521)

* feat(tmux): add a per-host mouse toggle and preserve remote configuration (#1513)

* fix(session-sharing): use the linked server for desktop meetings and links (#1507)

* fix(tunnels): support TOTP for client tunnels and jump hosts (#1508)

* fix: type errors and lint failures from merged plugin prs

* feat(installer): make the Windows desktop shortcut optional (#1517)

* fix: ship the plugin sdk and serialport in desktop builds

* fix: prefer ipv4 when resolving ssh host names (#1365)

* fix: readable terminal selection with the light theme (#1319)

* fix: build desktop session share links on the linked server (#1350)

* fix: show meeting guests to members and hide the roster from guests (#1353)

* fix: reliable file manager saves with sudo prompt and no base64 guessing (#1335)

* fix: show disk usage for the mount being browsed (#1347)

* fix: load the linux tray icon reliably and log tray failures (#1332)

* fix: cover the gnome close path in the desktop quit test (#1332)

* fix: prompt for jump host TOTP in terminal, file manager and metrics (#1312)

* feat: optional auto reconnect for dropped ssh sessions (#1321)

* feat: tighter compact host rows with inline tags (#1325)

* feat: bring back the alert feed homepage widget

* feat: pick target terminals for snippets again

* feat: share button on connection tabs again

* feat: recent servers list when linking the desktop app

* feat: list the fixed app shortcuts in keyboard shortcuts

* fix: translate hardcoded toasts and drop em dashes from ui text

* fix: translate leftover hardcoded ui text

* fix: toolbar files button opens at the shell directory again

* fix: show the remote desktop note under connection origin again

* chore: openapi docs for host metrics manager routes

* chore: openapi docs for undocumented routes and fix two broken doc blocks

* fix: declare terminal.listSessions use for snippet targets

* revert: drop the alert feed widget, the notification center replaces it

* feat: restore the alert feed homepage widget

* fix: quick connect fills the host address from plugin auth editors like tailscale

* fix: docker container logs use the base background color

* chore: fix dependabot alerts and apply safe npm upgrades

* fix: proxmox stats tab reads its switch from plugin host settings

* fix: count plugin ssh logins toward host status and stop showing reachable as a warning

* fix: hide the built-in source pill in the host editor

* fix: host status shows online when the port answers and only warns on a failed login

* fix: drop the top border on the split layout menu

* fix: host defaults tabs sit where the host editor puts them and skip plugins with nothing to default

* fix: remote desktop auth method labels and notes for vnc and telnet

* fix: add description to the web endpoint enable switch

* fix: crowdin sync and pretranslate for plugin locales, run plugin tests on release

* feat: move telemetry out of core into a usage statistics plugin

* fix: recent activity card no longer cuts off host names early

* fix: remove duplicate top border on split screen menu

* fix: redesign session log player controls, fix tooltip overlap and drop dot separators

* fix: file manager and sftp text showing raw i18n keys

* fix: onboarding rerunning for existing users after upgrading

* fix: fleet detail buttons overflowing the sidebar

* fix: session log player scrolling off screen horizontally

* fix: network graph lag when adding hosts and on every render

* fix: maintenance index name, shared host read only view and badge polling

* fix: meeting tabs, workspace tab merging, rail panels as tabs and general ui lag

* chore: update release notes

* fix: remote desktop tabs reconnecting on every tab switch

* fix: build plugin sdk before linting in release workflow

* chore: lint, format, and bump version to 2.9.0

* chore: skip crowdin pre-translate in release for now

* chore: sync Crowdin translations for 2.9.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Koi <38512047+datlt4@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
2026-10-01 16:20:16 -05:00

2082 lines
149 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.
{
"connection": {
"retryingIn": "Повторна спроба через {{seconds}}с ({{attempt}}/{{max}})",
"retryingNow": "Повторна спроба... ({{attempt}}/{{max}})",
"disconnected": "Не вдалося підключитися",
"reconnect": "Знову підключитися"
},
"credentials": {
"folders": "Папки",
"folder": "Папка",
"password": "Пароль",
"key": "Ключ",
"sshPrivateKey": "Закритий ключ SSH",
"upload": "Завантажити",
"keyPassword": "Ключ Пароль",
"sshKey": "SSH-ключ",
"uploadPrivateKeyFile": "Завантажити файл закритого ключа",
"searchCredentials": "Пошук облікових даних...",
"addCredential": "Додати облікові дані",
"caCertificate": "Сертифікат ЦС (-cert.pub)",
"caCertificateDescription": "Додатково: Завантажте або вставте файл сертифіката, підписаний ЦС (наприклад, id_ed25519-cert.pub). Обов’язково, якщо ваш SSH-сервер використовує авторизацію на основі сертифікатів.",
"uploadCertFile": "Завантажити файл -cert.pub",
"clearCert": "Очистити",
"certLoaded": "Сертифікат завантажено",
"certPublicKeyLabel": "Сертифікат CA",
"certTypeLabel": "Тип сертифіката",
"pasteOrUploadCert": "Вставити або завантажити сертифікат -cert.pub...",
"hasCaCert": "Має сертифікат CA",
"noCaCert": "Немає сертифіката CA",
"noPublicKeyAvailable": "Відкритий ключ недоступний. Спочатку відкрийте редактор облікових даних.",
"deployCommandCopied": "Команду розгортання скопійовано",
"sortCredentials": "Сортувати облікові дані",
"sortDefault": "Порядок за замовчуванням",
"sortNameAsc": "Ім'я (А → Я)",
"sortNameDesc": "Ім'я (Я → А)",
"sortUsernameAsc": "Ім'я користувача (А → Я)",
"sortUsernameDesc": "Ім'я користувача (Я → А)",
"filterCredentials": "Фільтрувати облікові дані",
"filterClearAll": "Очистити фільтри",
"filterTypeGroup": "Тип",
"filterTypePassword": "Пароль",
"filterTypeKey": "SSH-ключ",
"filterTagsGroup": "Теги",
"copyDeployCommand": "Скопіювати команду розгортання",
"cloneCredentialAction": "Клонувати облікові дані",
"clonedCredential": "Клоновано {{name}}",
"clonedCredentialName": "{{name}} (копія)",
"shareCredentialAction": "Поділитися обліковими даними",
"sharedBadge": "спільний",
"sharedBy": "Поділився користувачем {{owner}}",
"share": {
"title": "Поділитися «{{name}}»",
"description": "Одержувачі отримують власну зашифровану копію секретних даних. Вона оновлюється щоразу, коли змінюються облікові дані, і видаляється, коли спільний доступ відкликається.",
"levelUse": "Використання",
"levelManage": "Керувати",
"levelUseDesc": "Використання: прикріпіть облікові дані до хостів та підключіться. Сам секрет залишається прихованим.",
"levelManageDesc": "Керування: також редагуйте облікові дані та діліться ними з іншими.",
"noAccessEntries": "This credential has not been shared yet",
"accessRevoked": "Access revoked",
"shared": "Облікові дані надано"
},
"deleteCredentialAction": "Видалити облікові дані",
"editCredentialAction": "Редагувати облікові дані",
"failedToCloneCredential": "Не вдалося клонувати облікові дані",
"failedToDeleteCredential": "Не вдалося видалити облікові дані",
"keyBadge": "КЛЮЧ",
"passwordBadge": "Інвалід з інвалідністю",
"renameFolder": "Перейменувати папку",
"deleteFolder": "Видалити папку",
"deleteCredentialConfirm": "Видалити облікові дані \"{{name}}\"?",
"deletedCredential": "Видалено {{name}}",
"deploySSHKeyTitle": "Розгорнути ключ на хості",
"loadingCredentials": "Завантаження облікових даних...",
"noCredentialsFound": "Облікові дані не знайдено",
"noCredentialsMatchSearch": "Немає облікових даних, що відповідають вашому пошуку",
"addCredentialBtn": "Додати облікові дані",
"failedToReorder": "Не вдалося змінити порядок облікових даних",
"failedToMoveCredential": "Не вдалося перенести облікові дані",
"sortManual": "Вручну (перетягніть, щоб змінити порядок)",
"customizeSidebar": "Налаштувати бічну панель",
"customizeSidebarDescription": "Виберіть, як виглядатиме та як працюватиме список облікових даних.",
"customizeDensityTitle": "Щільність",
"densityComfortableDesc": "Одна облікова інформація в рядку з додатковою інформацією.",
"densityCompactDesc": "Один рядок на облікові дані, для довших списків.",
"displayDensityComfortable": "Зручний",
"displayDensityCompact": "Компактний",
"customizeBehaviorTitle": "Поведінка",
"showCredentialTags": "Показати теги",
"showCredentialTagsDesc": "Відображати теги у списку облікових даних",
"actionsVisibility": "Дії з обліковими даними",
"actionsVisibilityDesc": "Коли відображаються кнопки підключення та керування на кожних облікових даних",
"actionsAlways": "Завжди видно",
"actionsOnly": "Тільки підключення, відпочинок після клацання",
"actionsHover": "Показувати при наведенні курсора",
"actionsClick": "Показувати після кліку",
"customizeSortHint": "Порядок сортування знаходиться в меню сортування на панелі інструментів.",
"expandActions": "Розгорнути дії",
"collapseActions": "Згорнути дії",
"backToHosts": "Назад до хостів",
"backToCredentials": "Повернутися до облікових даних",
"searchCredentialsPlaceholder": "Пошук облікових даних…",
"deployDialogTitle": "Розгорнути SSH-ключ",
"deployDialogDesc": "Розгорніть {{name}} на authorized_keys хоста.",
"targetHostLabel": "Цільовий хост",
"selectHostOption": "Виберіть хоста...",
"deployingBtn": "Розгортання...",
"deployBtn": "Розгорнути",
"keyDeployedSuccess": "Ключ успішно розгорнуто",
"failedToDeployKey": "Не вдалося розгорнути ключ",
"folderRenamedTo": "Папку перейменовано на «{{name}}»",
"failedToRenameFolder": "Не вдалося перейменувати папку",
"arrangeUnlockedSwitchedToManual": "Перемикаюся на ручне сортування, щоб ваш порядок залишався збереженим",
"arrangeUnlocked": "Розблокуйте перетягування, щоб змінити порядок"
},
"versionCheck": {
"updateLinkLabel": "Update available. Open the release notes on GitHub"
},
"common": {
"close": "Закрити",
"minimize": "Згорнути",
"online": "Онлайн",
"offline": "Офлайн",
"signInFailed": "Sign in failed",
"unknown": "Невідомо",
"continue": "Продовжити",
"maintenance": "Технічне обслуговування",
"degraded": "Деградований",
"error": "Помилка",
"warning": "УВАГА",
"unsavedChanges": "Незбережені зміни",
"dismiss": "Відхилити",
"more": "Більше",
"loading": "Завантаження...",
"host": "Host",
"selectHost": "Select a host...",
"noHostConfigured": "No host configured",
"optional": "Необов'язково",
"connect": "Підключитися",
"copied": "Скопійовано",
"connecting": "Підключення...",
"updateAvailable": "Доступне оновлення",
"appName": "Термікс",
"openInNewTab": "Відкрити в новій вкладці",
"noReleases": "Немає релізів",
"updatesAndReleases": "Оновлення та випуски",
"newVersionAvailable": "Доступна нова версія ({{version}}).",
"failedToFetchUpdateInfo": "Не вдалося отримати інформацію про оновлення",
"preRelease": "Попередній реліз",
"noReleasesFound": "Не знайдено жодних релізів.",
"cancel": "Скасувати",
"username": "Ім'я користувача",
"login": "Вхід",
"logout": "Вийти",
"register": "Зареєструватися",
"password": "Пароль",
"confirmPassword": "Підтвердьте пароль",
"back": "Назад",
"save": "Зберегти",
"saving": "Збереження...",
"delete": "Видалити",
"rename": "Перейменувати",
"edit": "Редагувати",
"confirm": "Підтвердити",
"no": "Ні",
"or": "АБО",
"next": "Далі",
"previous": "Попередній",
"refresh": "Оновити",
"language": "Мова",
"checking": "Перевірка...",
"checkingDatabase": "Перевірка підключення до бази даних...",
"checkingAuthentication": "Перевірка автентифікації...",
"backendReconnected": "З’єднання з сервером відновлено",
"connectionDegraded": "З’єднання з сервером втрачено, відновлення…",
"reload": "Перезавантажити",
"create": "Створити",
"copy": "Копіювати",
"copyFailed": "Не вдалося скопіювати в буфер обміну",
"maximize": "Максимізувати",
"restore": "Відновити",
"of": "з",
"saved": "Збережено",
"deleted": "Видалено",
"deleteFailed": "Не вдалося видалити",
"saveFailed": "Не вдалося зберегти",
"required": "Обов'язково",
"remove": "Видалити",
"add": "Додати",
"update": "Оновлення",
"noResults": "No results found"
},
"onboarding": {
"stepCounter": "Крок {{current}} з {{total}}",
"skip": "Пропустити налаштування",
"next": "Далі",
"finish": "Почати",
"welcomeTitle": "Ласкаво просимо до Терміксу",
"welcomeIntro": "Termix керує вашими серверами з одного місця. Це налаштування займає близько хвилини, і тут немає нічого постійного.",
"welcome_hosts": "Збережіть свої сервери",
"welcome_hosts_desc": "Зберігайте всі машини, якими ви керуєте, в одному списку.",
"welcome_terminal": "Миттєве підключення",
"welcome_terminal_desc": "Відкрийте термінал у вкладці, без окремого SSH-клієнта.",
"welcome_files": "Перегляд та редагування файлів",
"welcome_files_desc": "Завантаження, вивантаження та редагування віддалених файлів.",
"presetTitle": "Скільки ви хочете на екрані?",
"presetIntro": "Termix може бути як простим, так і детальним, як вам подобається. Виберіть початкову точку.",
"presetChangeLater": "Ви можете перемикати пресети або змінювати будь-який окремий параметр пізніше в налаштуваннях у розділі «Інтерфейс».",
"appearanceTitle": "Зробіть це своїм",
"appearanceIntro": "Виберіть тему, акцентний колір і мову. Усі три параметри можна змінити пізніше в налаштуваннях.",
"featuresTitle": "Що ще робить Termix",
"featuresIntro": "Кожен збережений вами сервер можна відкрити не лише в терміналі. Ось що чекає за значками ліворуч.",
"featuresRailHint": "Не потрібен один із них? Приховайте будь-який значок на бічній панелі в налаштуваннях, у розділі \"Навігація\".",
"workflowTitle": "Переміщайтеся швидше",
"workflowIntro": "Кілька звичок, які заощадять найбільше часу, коли у вас буде кілька серверів.",
"workflow_palette": "Палітра команд",
"workflow_palette_desc": "Перехід до будь-якого сервера або дії шляхом введення тексту. Двічі натисніть Shift, щоб відкрити його.",
"workflow_split": "Розділений екран",
"workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.",
"workflow_dock": "Бічна панель",
"workflow_dock_desc": "Клацніть середньою кнопкою миші або правою кнопкою миші на значку бічної панелі, щоб відкрити її як вкладку або закріпити праворуч.",
"securityTitle": "Безпека ваших входів",
"securityIntro": "Termix зберігає ваші облікові дані, тому варто подивитися, як це працює.",
"security_credentials": "Багаторазові облікові дані",
"security_credentials_desc": "Збережіть ключ або пароль один раз і прив’яжіть його до будь-якої кількості серверів.",
"security_twofa": "Двофакторний захист та ключі доступу",
"security_twofa_desc": "Додайте TOTP або ключ доступу до свого облікового запису в налаштуваннях, у розділі «Безпека».",
"security_identity": "Ідентифікатор Termix",
"security_identity_desc": "Видавати короткочасні SSH-сертифікати замість копіювання ключів на кожен сервер.",
"security_sharing": "Спільне використання",
"security_sharing_desc": "Надайте іншим користувачам доступ до сервера, не передаючи пароль.",
"securityEncryptionNote": "Облікові дані шифруються перед зберіганням і розшифровуються лише тоді, коли вони потрібні для з’єднання.",
"doneTitle": "Ви все готові",
"doneHeading": "Налаштування завершено",
"doneDesc": "Виберіть сервер на бічній панелі, щоб відкрити термінал, переглянути його файли або подивитися його метрики.",
"done_settings": "Змінити щось пізніше",
"done_settings_desc": "Теми, щільність розташування та відображення значків – все це доступно в налаштуваннях.",
"done_rerun": "Хочеш цього знову?",
"done_rerun_desc": "Відкрийте «Налаштування», перейдіть до розділу «Інтерфейс» і виберіть «Запустити налаштування», щоб ще раз виконати ці кроки.",
"done_desktop": "Додаток для ПК",
"done_desktop_desc": "Termix працює як настільний додаток на Windows, macOS та Linux.",
"done_desktop_link": "Завантажте програму для комп’ютера",
"done_mobile": "Мобільний додаток",
"done_mobile_desc": "Візьміть свої сервери з собою на iOS та Android.",
"done_mobile_link": "Завантажте мобільний додаток",
"done_docs": "Повна документація",
"done_docs_desc": "Посібники для кожної функції, включаючи ті, що не розглянуті тут.",
"done_docs_link": "Відкрийте документи",
"done_cli": "Інструмент командного рядка",
"done_cli_desc": "Керуйте своїми серверами з терміналу та використовуйте Termix у власних скриптах.",
"done_cli_link": "Відкрийте документацію CLI",
"desktopTitle": "How do you want to use Termix?",
"desktopBody": "You can change this any time from Sync in the sidebar.",
"desktopLocalTitle": "On this device only",
"desktopLocalBody": "Everything is stored here. Nothing to set up.",
"desktopLinkTitle": "With my Termix server",
"desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.",
"desktopLinked": "Linked to {{server}}"
},
"nav": {
"home": "Дім",
"terminal": "Термінал",
"fileManager": "Файловий менеджер",
"serverStats": "Метрики хоста",
"admin": "Адміністратор",
"userProfile": "Профіль користувача",
"confirmClose": "Закрити цей активний сеанс?",
"close": "Закрити",
"cancel": "Скасувати",
"sshManager": "SSH-менеджер",
"hostTabTitle": "{{username}}@{{ip}}:{{port}}",
"copyPassword": "Копіювати пароль",
"copySudoPassword": "Скопіювати пароль Sudo",
"passwordCopied": "Пароль скопійовано в буфер обміну",
"noPasswordAvailable": "Пароль недоступний",
"failedToCopyPassword": "Не вдалося скопіювати пароль",
"refreshTab": "Оновити з'єднання",
"renameTab": "Перейменувати вкладку",
"dashboard": "Інформаційна панель",
"quickConnect": "Швидке підключення",
"openAsTabHint": "Ctrl+клік або клік середньою кнопкою миші, щоб відкрити як вкладку",
"openAsTab": "Відкрити як вкладку",
"openInRightDock": "Відкрити в правому доку",
"closeRightDock": "Закрити правий док",
"toggleRightDock": "Перемикання правої док-станції",
"multiPanelHintTitle": "Робота з кількома панелями",
"multiPanelHintBody": "Тримайте цю панель відкритою, поки бічна панель використовується для чогось іншого. Два способи її переміщення:",
"multiPanelHintTabHow": "Ctrl+клік на значку рейки або скористайтеся кнопкою в цьому заголовку.",
"multiPanelHintDockHow": "Клацніть правою кнопкою миші на значку рейки або скористайтеся значком панелі на панелі вкладок.",
"sidebarSettings": "Налаштування бічної панелі...",
"hosts": "Хости",
"hostManager": "Менеджер хостингу",
"credentials": "Облікові дані",
"connections": "З'єднання",
"keepSideMenuOpen": "Залишити меню відкритим",
"collapseSideMenu": "Згорнути меню",
"roleAdministrator": "Адміністратор",
"roleUser": "Користувач",
"sync": "Sync",
"reconnectDisconnectedTerminals": "Reconnect all disconnected terminals",
"reconnectingTerminals_one": "Reconnecting {{count}} terminal",
"reconnectingTerminals_other": "Reconnecting {{count}} terminals",
"noDisconnectedTerminals": "No disconnected terminals are ready to reconnect",
"reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal",
"reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals",
"fullscreenUnsupported": "Fullscreen is not supported by this browser",
"fullscreenFailed": "Could not toggle fullscreen",
"resetSidebarWidth": "Reset width",
"collapseSidebar": "Collapse sidebar",
"openSidebar": "Open sidebar",
"confirmCloseHost": "Close {{host}}?",
"enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)",
"exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)"
},
"hosts": {
"hosts": "Хости",
"noHosts": "Немає SSH-хостів",
"retry": "Повторити спробу",
"refresh": "Оновити",
"optional": "Необов'язково",
"downloadSample": "Завантажити зразок",
"failedToDeleteHost": "Не вдалося видалити {{name}}",
"importSkipExisting": "Імпорт (пропустити існуючі)",
"importSSHConfig": "Імпорт з конфігурації SSH",
"connectionDetails": "Деталі підключення",
"ssh": "SSH",
"telnet": "Телнет",
"port": "Порт",
"username": "Ім'я користувача",
"folder": "Папка",
"tags": "Теги",
"pin": "Закріпити",
"addHost": "Додати хоста",
"editHost": "Редагувати хост",
"cloneHost": "Клон хоста",
"defaultPath": "Шлях за замовчуванням",
"connection": "З'єднання",
"upload": "Завантажити",
"authentication": "Автентифікація",
"password": "Пароль",
"passwordSaved": "Пароль збережено, введіть, щоб змінити",
"key": "Ключ",
"credential": "Посвідчення",
"sshPrivateKey": "Закритий ключ SSH",
"keyType": "Тип ключа",
"uploadFile": "Завантажити файл",
"tabGeneral": "Загальне",
"tabSsh": "SSH",
"tabStats": "Метрики хоста",
"tabSharing": "Спільне використання",
"tabAuthentication": "Автентифікація",
"terminal": "Термінал",
"tunnel": "Тунель",
"serverStats": "Метрики хоста",
"status": {
"available": "Доступно",
"reachable": "Up, but the last sign in failed",
"offline": "Офлайн",
"monitoringDisabled": "Моніторинг вимкнено",
"label": "Статус"
},
"folderRenamed": "Папку «{{oldName}}» успішно перейменовано на «{{newName}}»",
"failedToRenameFolder": "Не вдалося перейменувати папку",
"unsavedChangesDescription": "Зміни хоста не збережено. Відхилити їх?",
"keepEditing": "Продовжити редагування",
"discardChanges": "Відхилити зміни",
"movedToFolder": "Переміщено {{count}} хост(ів) до \"{{folder}}\"",
"editHostTooltip": "Редагувати хост",
"behavior": "Поведінка",
"scrollbackBuffer": "Буфер прокручування",
"sshAgentForwarding": "Переадресація SSH-агента",
"selectSnippet": "Виберіть фрагмент",
"forceKeyboardInteractive": "Примусова інтерактивна клавіатура",
"overrideCredentialUsername": "Перезаписати ім'я користувача облікових даних",
"overrideCredentialUsernameDesc": "Використовуйте вказане вище ім'я користувача замість імені користувача облікових даних",
"oidcUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.",
"jumpHostChain": "Ланцюг хоста стрибка",
"portKnocking": "Порт-Нокінґ",
"addKnock": "Додати порт",
"addProxyNode": "Додати вузол",
"proxyNode": "Проксі-вузол",
"proxyType": "Тип проксі-сервера",
"sudoPassword": "Пароль Sudo",
"keepaliveInterval": "Інтервал підтримки активності (мс)",
"environmentVariables": "Змінні середовища",
"addVariable": "Додати змінну",
"docker": "Докер",
"failedToConnect": "Не вдалося підключитися до консолі",
"connect": "Підключитися",
"disconnect": "Відключитися",
"start": "Початок",
"enableStatusCheck": "Увімкнути перевірку стану",
"enableMetrics": "Увімкнути метрики",
"bulkUpdateFailed": "Масове оновлення не вдалося",
"selectAll": "Вибрати все",
"deselectAll": "Зняти вибір усіх",
"protocols": "Протоколи",
"secureShell": "Безпечна оболонка",
"addressIp": "Адреса / IP-адреса",
"friendlyName": "Зрозуміле ім'я",
"folderAndAdvanced": "Папка та додаткові опції",
"showAdvancedSettings": "Показати розширені налаштування",
"hideAdvancedSettings": "Приховати розширені налаштування",
"privateNotes": "Особисті нотатки",
"privateNotesPlaceholder": "Деталі про цей сервер...",
"pinToTop": "Закріпити вгорі",
"pinToTopDesc": "Завжди показувати цього хоста на початку списку",
"portKnockingSequence": "Послідовність стукання портів",
"addKnockBtn": "Додати Knock",
"noPortKnocking": "Не налаштовано перезавантаження портів.",
"knockPort": "Порт Нок",
"protocol": "Протокол",
"delayAfterMs": "Затримка після (мс)",
"useSocks5Proxy": "Використовуйте проксі-сервер SOCKS5",
"useSocks5ProxyDesc": "Маршрутизувати з'єднання через проксі-сервер",
"connectionOrigin": "Джерело з'єднання",
"connectionOriginDesc": "Звідки походить з’єднання цього хоста. Замінює глобальне налаштування за замовчуванням для програми для робочого столу.",
"connectionOriginDefault": "Використовувати за замовчуванням",
"connectionOriginLocal": "Цей пристрій (локальна мережа)",
"connectionOriginRemote": "Віддалений сервер",
"proxyHost": "Проксі-хост",
"proxyPort": "Проксі-порт",
"proxyUsername": "Ім'я користувача проксі-сервера",
"proxyPassword": "Пароль проксі-сервера",
"proxySingleMode": "Один проксі-сервер",
"proxyChainMode": "Проксі-ланцюг",
"you": "Ви",
"jumpHostChainLabel": "Ланцюг хоста стрибка",
"addJumpBtn": "Додати стрибок",
"noJumpHosts": "Не налаштовано жодного хоста переходу.",
"selectAServer": "Виберіть сервер...",
"sshPort": "SSH-порт",
"authMethod": "Метод автентифікації",
"authenticationMethod": "Метод автентифікації",
"authenticationMethodDesc": "Виберіть один метод, який Termix використовуватиме для автентифікації цього SSH-з’єднання. Інші методи не перевірятимуться автоматично.",
"storedCredential": "Збережені облікові дані",
"selectACredential": "Виберіть облікові дані...",
"keyTypeLabel": "Тип ключа",
"keyTypeAuto": "Автоматичне виявлення",
"keyPasteTab": "Вставити",
"keyUploadTab": "Завантажити",
"keyFileLoaded": "Ключовий файл завантажено",
"keyUploadClick": "Натисніть, щоб завантажити .pem / .key / .ppk",
"clearKey": "Очистити клавішу",
"keySaved": "SSH-ключ збережено",
"keyReplaceNotice": "вставте новий ключ нижче, щоб замінити його",
"keyPassphraseSaved": "Пароль збережено, введіть, щоб змінити",
"replaceKey": "Замінити ключ",
"docsLink": "Переглянути документи",
"agentLabel": "SSH-агент",
"agentDesc": "Автентифікуйтеся за допомогою SSH-агента, що працює на сервері Termix (Bitwarden, 1Password, gpg-agent, KeeAgent, ssh-agent). Агент має бути запущений на машині, де розміщено Termix.",
"agentAuthenticationDesc": "Використовуйте ключі від SSH-агента для автентифікації цього з'єднання. Залиште шлях сокета порожнім, щоб використовувати SSH_AUTH_SOCK.",
"agentSocketPathLabel": "Шлях сокета агента",
"agentSocketPathPlaceholder": "Залиште поле порожнім, щоб використовувати SSH_AUTH_SOCK",
"agentSocketPathHint": "Залиште поле порожнім для автоматичного визначення зі змінної середовища SSH_AUTH_SOCK або введіть власний шлях до сокета (наприклад, /run/user/1000/gnupg/S.gpg-agent.ssh).",
"agentIdentityLabel": "Ідентифікація агента (відкритий ключ)",
"agentIdentityPlaceholder": "Залиште поле порожнім, щоб спробувати всі ключі від агента",
"agentIdentityHint": "Вставте відкритий ключ (наприклад, ssh-ed25519 AAAA...), щоб пропонувати лише цей ключ від агента. Рекомендовано, коли агент має багато ключів, щоб уникнути перевищення максимальної кількості спроб автентифікації сервера.",
"shareSshAuthLabel": "Спільний доступ до SSH-автентифікації",
"shareSshAuthDesc": "Надати одержувачам зашифровані копії SSH-автентифікації цього хоста. Особисті облікові дані одержувача все ще мають пріоритет.",
"forceKeyboardInteractiveLabel": "Примусова інтерактивна клавіатура",
"forceKeyboardInteractiveShortDesc": "Примусове введення пароля вручну, навіть якщо ключі присутні",
"allowLegacyAlgorithmsLabel": "Дозволити застарілі алгоритми",
"allowLegacyAlgorithmsDesc": "Увімкнути застарілі алгоритми SSH (ssh-dss, ssh-rsa, diffie-hellman-group1-sha1, hmac-md5, 3des-cbc) для підключень до старих пристроїв, які не можна оновити.",
"insecure": "Невпевнений",
"syntaxHighlightingCategories": "Виділіть категорії",
"syntaxHighlightingCategoriesDesc": "Виберіть типи контенту для розфарбовування",
"sshAgentForwardingLabel": "Переадресація SSH-агента",
"sshAgentForwardingShortDesc": "Дозволити цьому віддаленому хосту використовувати ваш локальний SSH-агент для подальших підключень. Це не обов'язково для автентифікації агента.",
"sudoPasswordAutoFillShortDesc": "Автоматично вказувати пароль sudo, коли буде запропоновано",
"sudoPasswordLabel": "Пароль Sudo",
"sudoPasswordSaved": "Пароль збережено, введіть, щоб змінити",
"environmentVariablesLabel": "Змінні середовища",
"addVariableBtn": "Додати змінну",
"noEnvVars": "Змінні середовища не налаштовано.",
"keepaliveIntervalLabel": "Інтервал підтримки активності (секунди)",
"maxKeepaliveMisses": "Макс. промахи Keepalive",
"sameHost": "Цей хост (прямий тунель)",
"statusChecksLabel": "Перевірки статусу",
"enableStatusChecks": "Увімкнути перевірки стану",
"enableStatusChecksDesc": "Періодично перевіряти доступність цього хоста за допомогою ping-повідомлення",
"useGlobalInterval": "Використовувати глобальний інтервал",
"useGlobalIntervalDesc": "Перевизначити інтервал перевірки стану на рівні сервера",
"checkIntervalS": "Інтервал перевірки (і)",
"checkIntervalDesc": "Секунди між кожним запитом на підключення",
"cpuUsageLabel": "Використання процесора",
"cpuUsageDesc": "Відсоток завантаження процесора, середнє навантаження, графік спарклайнів",
"memoryLabel": "Використання пам'яті",
"memoryDesc": "Використання оперативної пам'яті, підкачка, кеш",
"storageLabel": "Використання диска",
"storageDesc": "Використання диска на точку монтування",
"networkLabel": "Мережеві інтерфейси",
"networkDesc": "Список інтерфейсів та пропускна здатність",
"uptimeLabel": "Час безперебійної роботи",
"uptimeDesc": "Час безперебійної роботи системи та час завантаження",
"systemInfoLabel": "Інформація про систему",
"systemInfoDesc": "ОС, ядро, ім'я хоста, архітектура",
"recentLoginsLabel": "Нещодавні входи",
"recentLoginsDesc": "Успішні та невдалі події входу",
"topProcessesLabel": "Найпопулярніші процеси",
"topProcessesDesc": "PID, CPU%, MEM%, команда",
"listeningPortsLabel": "Порти прослуховування",
"listeningPortsDesc": "Відкриті порти з процесом та станом",
"firewallLabel": "Брандмауер",
"firewallDesc": "Стан брандмауера, AppArmor, SELinux",
"hostSharedSuccessfully": "Хост успішно надано спільний доступ",
"failedToShareHost": "Не вдалося поділитися хостом",
"accessRevoked": "Доступ скасовано",
"failedToRevokeAccess": "Не вдалося скасувати доступ",
"cancelBtn": "Скасувати",
"savingBtn": "Збереження...",
"addHostBtn": "Додати хоста",
"hostUpdated": "Хост оновлено",
"hostCreated": "Хост створено",
"failedToSave": "Не вдалося зберегти хост",
"credentialUpdated": "Облікові дані оновлено",
"credentialCreated": "Облікові дані створено",
"failedToSaveCredential": "Не вдалося зберегти облікові дані",
"credentialNameRequired": "Будь ласка, введіть ім'я для облікових даних",
"credentialAuthRequired": "Додайте пароль, ключ SSH або обидва",
"createCredentialFromHostBtn": "Створити облікові дані",
"createCredentialFromHostTitle": "Створити облікові дані від хоста",
"createCredentialFromHostDesc": "Створіть багаторазовий, спільний запис облікових даних, попередньо заповнений поточним іменем користувача, паролем та/або ключем SSH цього хоста.",
"backToHosts": "Назад до хостів",
"pinned": "Закріплено",
"noHostsFound": "Хости не знайдено",
"tryDifferentTerm": "Спробуйте інший термін",
"addFirstHost": "Додайте свого першого хоста, щоб розпочати",
"noCredentialsFound": "Облікові дані не знайдено",
"addCredentialBtn": "Додати облікові дані",
"updateCredentialBtn": "Оновити облікові дані",
"editCredentialAction": "Редагувати облікові дані",
"backToHost": "Назад до хоста",
"saveCredentialAsNewBtn": "Зберегти як нове",
"saveCredentialAsNewDesc": "Створює нові облікові дані з цими змінами та призначає їх цьому хосту. Початкові облікові дані залишаються без змін.",
"credentialSavedAsNew": "Збережено як нові облікові дані",
"failedToSaveCredentialAsNew": "Не вдалося зберегти як нові облікові дані",
"features": "Особливості",
"noFolder": "(Без папки)",
"deleteSelected": "Видалити",
"exitSelection": "Вихід з вибору",
"importSkip": "Імпорт (пропустити існуючі)",
"importOverwrite": "Імпорт (перезапис)",
"collapseBtn": "Згорнути",
"importExportBtn": "Імпорт / Експорт",
"hostStatusesRefreshed": "Статуси хоста оновлено",
"failedToRefreshHosts": "Не вдалося оновити хости",
"movedHostTo": "Переміщено {{host}} до «{{folder}}»",
"failedToMoveHost": "Не вдалося перемістити хост",
"deletedFolder": "Видалена папка «{{name}}»",
"failedToDeleteFolder": "Не вдалося видалити папку",
"deleteAllInFolder": "Видалити всі хости в \"{{name}}\"? Цю дію не можна скасувати.",
"folderPickerPlaceholder": "Немає папки",
"folderPickerSearch": "Пошук або створення (використовуйте / для підпапок)...",
"folderPickerNone": "Немає папки",
"folderPickerCreate": "Створити \"{{path}}\"",
"folderPickerEmpty": "Немає відповідних папок",
"parentHost": "Батьківський господар",
"useFolderInstead": "Використовуйте папку замість цього",
"useParentHostInstead": "Використовувати батьківський хост замість цього",
"parentHostPickerPlaceholder": "Немає батьківського господаря",
"parentHostPickerSearch": "Пошук хостів...",
"parentHostPickerNone": "Немає батьківського господаря",
"parentHostPickerEmpty": "Немає відповідних хостів",
"collapseSubHosts": "Згорнути субхости",
"expandSubHosts": "Розгорнути список субхостингів",
"cannotNestUnderDescendant": "Неможливо вкладати хост під його власний підхост",
"movedToParent": "Переміщено {{count}} хост(ів) під \"{{parent}}\"",
"newFolder": "Нова папка",
"createFolderTitle": "Створити папку",
"editFolderTitle": "Редагувати папку",
"folderDialogDescription": "Виберіть назву, колір та значок. Використовуйте / для вкладення папок.",
"folderNameLabel": "Назва папки",
"folderNamePlaceholder": "наприклад, Виробництво/Веб",
"folderNestingHint": "Використовуйте / для розділення рівнів та створення вкладених папок.",
"folderNameDuplicate": "Папка з такою назвою вже існує тут.",
"folderColor": "Колір",
"folderIcon": "Значок",
"folderCredential": "Посвідчення",
"folderCredentialNone": "Облікові дані не призначено",
"folderCredentialHint": "Хости в цій папці, які використовують автентифікацію \"Збережені облікові дані\" без вибраних власних облікових даних, успадкують ці дані.",
"folderPreview": "Попередній перегляд",
"folderNameFallback": "Папка без назви",
"createFolderButton": "Створити папку",
"saveFolderButton": "Зберегти папку",
"cancel": "Скасувати",
"iconSearchPlaceholder": "Пошук значків...",
"openAllSessions": "Відкрити всі сесії",
"editFolder": "Редагувати папку",
"deleteFolder": "Видалити папку",
"selectFolder": "Вибрати всі хости в папці",
"deselectFolder": "Скасувати вибір усіх хостів у папці",
"folderSaved": "Папку збережено",
"failedToSaveFolder": "Не вдалося зберегти папку",
"folderDeleted": "Видалена папка «{{name}}»",
"deleteFolderConfirm": "Видалити \"{{name}}\" та його хост(и) {{count}} ? Цю дію не можна скасувати.",
"failedToMoveHosts": "Не вдалося перемістити хости",
"failedToReorder": "Не вдалося повторно замовити",
"expandAll": "Розгорнути всі папки",
"collapseAll": "Згорнути всі папки",
"moreActions": "Більше",
"groupBy": "Групувати за",
"GroupByFolder": "Папка",
"GroupByTag": "Тег",
"GroupByStatus": "Статус",
"GroupByProtocol": "Протокол",
"GroupByAuth": "Тип автентифікації",
"groupUngrouped": "Розгруповано",
"customizeSidebar": "Налаштувати бічну панель",
"customizeSidebarDescription": "Виберіть, як виглядатиме та як працюватиме список хостів.",
"customizeDensityTitle": "Щільність",
"customizeBehaviorTitle": "Поведінка",
"customizeSortHint": "Порядок сортування та групування доступні в меню сортування та групування на панелі інструментів.",
"densityComfortableDesc": "Більше деталей для кожного хоста: адреса, теги та використання ресурсів.",
"densityCompactDesc": "Один рядок на хост, для довших списків.",
"display": "Дисплей",
"displayDensity": "Щільність",
"displayDensityComfortable": "Зручний",
"displayDensityCompact": "Компактний",
"displayShowTags": "Показати теги",
"displayTrayOnClick": "Відкривати дії при кліці (замість наведення курсора)",
"actionsVisibility": "Відображення дій хоста",
"actionsVisibilityDesc": "Виберіть, коли розгортатимуться дії хоста. Виберіть «Клацнути», щоб відновити попередню поведінку «розгортання клацанням».",
"actionsAlways": "Завжди видно",
"actionsOnly": "Тільки підключення, відпочинок після клацання",
"actionsHover": "Показувати при наведенні курсора",
"actionsClick": "Натисніть, щоб розгорнути/згорнути",
"openOnDoubleClick": "Відкрити подвійним клацанням",
"openOnDoubleClickDesc": "Для відкриття сеансу хоста потрібно подвійне клацання замість одного клацання",
"showFolderPaths": "Show folder paths",
"showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.",
"hostClickBehavior": "Clicking a host",
"hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.",
"hostClickNewTab": "Always open a new tab",
"hostClickFocusExisting": "Switch to the open tab",
"hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab",
"openInNewTab": "Open in new tab",
"deletedHost": "Видалено {{name}}",
"copiedToClipboard": "Скопійовано в буфер обміну",
"remoteDesktopUrlCopied": "URL-адресу віддаленого робочого столу скопійовано",
"expandActions": "Розгорнути дії",
"collapseActions": "Згорнути дії",
"cloneHostAction": "Клон-хост",
"copyAddress": "Копіювати адресу",
"copyLink": "Копіювати посилання",
"deleteCredentialConfirm": "Видалити облікові дані \"{{name}}\"?",
"deletedCredential": "Видалено {{name}}",
"deleteHostsConfirm": "Видалити хост {{count}}{{plural}}? Цю дію не можна скасувати.",
"movedToRoot": "Переміщено до кореневого каталогу",
"addTagsPlaceholder": "Додати теги...",
"authDetails": "Деталі автентифікації",
"credType": "Тип",
"generateKeyPairDesc": "Згенеруйте нову пару ключів, як закритий, так і відкритий ключі будуть заповнені автоматично.",
"generatingKey": "Генерування...",
"generateLabel": "Згенерувати {{label}}",
"uploadFileBtn": "Завантажити файл",
"keyPassphraseOptional": "Ключова парольна фраза (необов'язково)",
"sshPublicKeyOptional": "Відкритий ключ SSH (необов'язково)",
"publicKeyGenerated": "Відкритий ключ згенеровано",
"failedToGeneratePublicKey": "Не вдалося отримати відкритий ключ",
"publicKeyCopied": "Відкритий ключ скопійовано",
"keyPairGenerated": "згенеровано пару ключів {{label}}",
"failedToGenerateKeyPair": "Не вдалося згенерувати пару ключів",
"searchHostsPlaceholder": "Пошук хостів, адрес, тегів…",
"refreshBtn": "Оновити",
"addTag": "Додати теги...",
"deleteConfirmBtn": "Видалити",
"deleteHostConfirm": "Видалити \"{{name}}\"?",
"enableAtLeastOneProtocol": "Увімкніть принаймні один протокол вище, щоб налаштувати параметри автентифікації та підключення.",
"keyPassphrase": "Ключова парольна фраза",
"basicInformation": "Основна інформація",
"authDetailsSection": "Деталі автентифікації",
"credTypeLabel": "Тип",
"hostsTab": "Хости",
"credentialsTab": "Облікові дані",
"selectMultiple": "Виберіть кілька",
"selectHosts": "Виберіть хости",
"connectionLabel": "З'єднання",
"authenticationLabel": "Автентифікація",
"generateKeyPairTitle": "Згенерувати пару ключів",
"generateKeyPairDescription": "Згенеруйте нову пару ключів, як закритий, так і відкритий ключі будуть заповнені автоматично.",
"generateFromPrivateKey": "Згенерувати з закритого ключа",
"refreshBtn2": "Оновити",
"exitSelectionTitle": "Вихід з вибору",
"addHostBtn2": "Додати хоста",
"addCredentialBtn2": "Додати облікові дані",
"checkingHostStatuses": "Перевірка статусів хостів...",
"pinnedSection": "Закріплено",
"hostsExported": "Хости успішно експортовано",
"export": {
"menuItem": "Експорт...",
"title": "Експорт хостів",
"scope": "Сфера застосування",
"scopeAll": "Усі",
"scopeSelected": "Вибрано",
"searchHosts": "Пошук хостів...",
"include": "Включити",
"groupConnection": "З'єднання",
"groupCredentials": "Облікові дані",
"groupNotes": "Нотатки",
"groupTags": "Теги та закріплення",
"groupProxy": "Proxy",
"groupJumpHosts": "Хости Jump",
"groupFeatureFlags": "Прапорці функцій",
"groupAdvanced": "Розширена конфігурація",
"preview": "Попередній перегляд",
"moreHosts": "... {{count}} більше хостів",
"summary": "{{selected}} з {{total}} хостів",
"credentialsIncluded": "включено облікові дані",
"credentialsExcluded": "облікові дані виключені",
"noneSelected": "Не вибрано хостів",
"cancel": "Скасувати",
"confirm": "Експорт",
"fetchFailed": "Не вдалося завантажити хости для експорту",
"bulkButton": "Експорт"
},
"sampleDownloaded": "Зразок файлу завантажено",
"failedToDeleteCredential2": "Не вдалося видалити облікові дані",
"noFolderOption": "(Без папки)",
"nSelected": "{{count}} вибрано",
"featuresMenu": "Особливості",
"moveMenu": "Перемістити",
"connectSelected": "Підключитися",
"cancelSelection": "Скасувати",
"deletedCount": "Видалено {{count}} хостів",
"failedToDeleteCount": "Не вдалося видалити {{count}} хостів",
"duplicatedHost": "Дубльовано \"{{name}}\"",
"failedToDuplicateHost": "Не вдалося дублювати хост",
"updatedCount": "Оновлено хостів {{count}}",
"friendlyNameLabel": "Зрозуміле ім'я",
"descriptionLabel": "Опис",
"loadingHosts": "Завантаження хостів...",
"loadingCredentials": "Завантаження облікових даних...",
"noHostsYet": "Поки що немає хостів",
"noHostsYetHint": "Додайте сервер для відкриття терміналів, перегляду файлів та перегляду метрик.",
"noHostsMatchSearch": "Немає хостів, що відповідають вашому пошуковому запиту",
"searchHosts": "Пошук хостів...",
"sortHosts": "Сортувати хости",
"sortDefault": "Порядок за замовчуванням",
"sortNameAsc": "Ім'я (А → Я)",
"sortNameDesc": "Ім'я (Я → А)",
"sortIpAsc": "IP-адреса (зростання)",
"sortIpDesc": "IP-адреса (опис)",
"sortOnlineFirst": "Спочатку онлайн",
"sortOfflineFirst": "Спочатку офлайн",
"sortManual": "Вручну (перетягніть, щоб змінити порядок)",
"sortPinnedFirst": "Закріплено першим",
"filterHosts": "Фільтрувати хости",
"filterClearAll": "Очистити фільтри",
"filterStatusGroup": "Статус",
"filterOnline": "Онлайн",
"filterOffline": "Офлайн",
"filterPinned": "Закріплено",
"filterAuthGroup": "Тип автентифікації",
"filterAuthPassword": "Пароль",
"filterAuthKey": "SSH-ключ",
"filterAuthCredential": "Посвідчення",
"filterAuthNone": "Жоден",
"filterProtocolGroup": "Протокол",
"filterProtocolSsh": "SSH",
"filterTagsGroup": "Теги",
"editHostAction": "Редагувати хост",
"moreOptions": "Більше опцій",
"shareHost": "Спільний хост",
"shareHostTitle": "Поділитися: {{name}}",
"shareFolder": "Спільний доступ до папки",
"shareFolderTitle": "Папка для спільного доступу: {{name}}",
"folderSharedSuccessfully": "Спільні хости {{count}} у папці",
"failedToShareFolder": "Не вдалося поділитися папкою",
"sharing": {
"loadError": "Не вдалося завантажити дані для спільного доступу. Спробуйте ще раз.",
"shareWithSection": "Поділитися з",
"usersTab": "Користувачі",
"rolesTab": "Ролі",
"searchPlaceholder": "Пошук користувачів або ролей...",
"noMatches": "Збігів не знайдено",
"permissionLevelLabel": "Рівень дозволів",
"levels": {
"connect": {
"label": "Підключитися",
"description": "Тільки відкриті сеанси: термінал, віддалений робочий стіл, файловий менеджер, тунелі та Docker. Без доступу до конфігурації хоста."
},
"view": {
"label": "Переглянути",
"description": "Підключитися, а також переглянути конфігурацію хоста. Секрети ніколи не відображаються."
},
"edit": {
"label": "Редагувати",
"description": "Переглядайте та змінюйте налаштування хоста без автентифікації. SSH-автентифікація власника залишається приватною та доступною лише для власника."
},
"manage": {
"label": "Керувати",
"description": "Редагувати, а також ділитися хостом з іншими, змінювати рівні дозволів та скасовувати доступ."
}
},
"expiryLabel": "Термін дії доступу",
"expiry": {
"never": "Ніколи",
"oneHour": "1 година",
"oneDay": "24 години",
"sevenDays": "7 днів",
"thirtyDays": "30 днів",
"custom": "Користувацька"
},
"customHoursPlaceholder": "Години до закінчення терміну дії доступу",
"shareButton": "Поділитися",
"shareWithCount": "Поділитися ({{count}})",
"currentAccess": "Поточний доступ",
"noAccessEntries": "Цей хост ще не був спільним",
"folderRulesTitle": "Стосується хостів, доданих пізніше",
"folderRulesHint": "Ці спільні ресурси залишаються в папці: хост, створений або переміщений до неї (або підпапки), автоматично отримує такий самий доступ. Видалення правила лише зупиняє майбутнє успадкування.",
"folderRuleRemove": "Припинити успадкування",
"folderShareSummary": "Спільні хости {{shared}} з {{total}} у цій папці",
"grantedBy": "Надано",
"expires": "Термін дії закінчується",
"expired": "Термін дії минув",
"never": "Ніколи",
"revoke": "Скасувати",
"accessUpdated": "Доступ оновлено",
"accessUpdateFailed": "Не вдалося оновити доступ",
"sharedBadge": "Спільний доступ",
"sharedBadgeTooltip": "Поділився {{owner}} (доступ{{level}})",
"viewOnlyBanner": "Цей хост надано вам спільний доступ до перегляду користувачем {{owner}} . Конфігурація доступна лише для читання.",
"sharedEditBanner": "Цей хост надано вам спільний доступ до редагування користувачем {{owner}} . Зміни застосовуються до справжнього хоста; посилання на автентифікацію може змінити лише власник.",
"ownerOnlyControl": "Тільки власник хоста може це змінити",
"ownerAuthPrivate": "Автентифікація SSH власника хоста є приватною. Використайте пункт «Встановити особисту автентифікацію SSH» у меню хоста, щоб вибрати власні облікові дані.",
"ownerAuthShared": "Власник хосту надав спільну SSH-автентифікацію для цього хосту. Ви можете скористатися нею або вибрати власні облікові дані з розділу «Налаштувати особисту SSH-автентифікацію».",
"authOverrideAction": "Налаштування персональної SSH-автентифікації",
"authOverrideActionProtocol": "Встановити особисту автентифікацію {{protocol}}",
"authOverrideTitle": "Персональна SSH-автентифікація",
"authOverrideTitleProtocol": "Персональна {{protocol}} автентифікація",
"authOverrideDescriptionPrivate": "Облікові дані SSH власника хоста залишаються конфіденційними. Виберіть одні зі збережених облікових даних для підключення до {{host}}.",
"authOverrideDescriptionShared": "Використовуйте автентифікацію, надану власником хоста, або замініть її одними зі збережених облікових даних для підключень до {{host}}.",
"authOverrideCredentialLabel": "Облікові дані автентифікації",
"useSharedAuthentication": "Використовувати автентифікацію спільного хоста",
"noPersonalCredential": "Без особистого посвідчення",
"authOverrideNoCredentials": "У вас ще немає збережених облікових даних SSH. Створіть їх у розділі \"Облікові дані\", щоб підключатися до хостів, які потребують автентифікації.",
"authOverrideRequired": "Цей хост вимагає один із ваших збережених облікових даних, перш ніж ви зможете підключитися.",
"authOverridePrivateHint": "Ці облікові дані є приватними. Власник хоста та інші одержувачі не можуть їх бачити чи використовувати.",
"authOverrideSaved": "Персональна SSH-автентифікація збережена",
"authOverrideCleared": "Особисту SSH-автентифікацію видалено",
"authOverrideClearedToShared": "Використання автентифікації спільного хоста",
"authOverrideLoadError": "Не вдалося завантажити вашу SSH-автентифікацію. Спробуйте ще раз.",
"authOverrideSaveError": "Не вдалося зберегти вашу SSH-автентифікацію"
},
"arrangeUnlockedSwitchedToManual": "Перемикаюся на ручне сортування, щоб ваш порядок залишався збереженим",
"dragToRearrange": "Перетягніть, щоб змінити порядок",
"arrangeUnlocked": "Розблокуйте перетягування, щоб змінити порядок",
"webUiBindHostUnreachable": "Ваш браузер не може отримати доступ до адреси 127.0.0.1 на комп’ютері, на якому запущено Termix, тому ця кінцева точка не завантажиться. Використовуйте адресу, на яку відповідає комп’ютер, наприклад, 0.0.0.0.",
"webUiBindHostSharesSessionCookie": "З цього браузера переадресація буде досягнута на тому ж імені хоста, з якого обслуговується Termix, тому тунельована служба отримуватиме ваш сеанс Termix. Файли cookie ігнорують порт. Ця кінцева точка відмовиться відкриватися тут; вона працює з настільної програми Termix або коли Termix відкривається на localhost.",
"webUiErrorLabelRequired": "Кінцевій точці {{row}} потрібна позначка.",
"webUiErrorLabelDuplicate": "Кожній кінцевій точці потрібне окреме ім'я.",
"webUiErrorPortRange": "Кінцевій точці {{row}} потрібен порт від 1 до 65535.",
"webUiErrorPathInvalid": "Кінцева точка {{row}} має недійсний шлях. Використайте шлях типу /admin.",
"copyViewUrlAction": "Copy {{name}} link",
"filterAuthAgent": "SSH Agent",
"authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.",
"authTypeUnknown": "This host uses {{type}}, which is not available on this server.",
"authFieldsAfterSave": "Save the host first, then fill in these fields.",
"enablePluginFeature": "Enable {{name}}",
"disablePluginFeature": "Disable {{name}}",
"filterFeaturesGroup": "Особливості",
"localOnly": "Keep on this device only",
"localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.",
"folderLocalOnly": "Keep on this device only",
"folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.",
"sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.",
"editorCancel": "Cancel",
"editorSaving": "Saving...",
"editorUpdate": "Update Host",
"editorAdd": "Add Host",
"speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close",
"speedSearchList": "Host list. Type or press / to search.",
"importNoHosts": "No hosts found in the file",
"importTooMany": "You can import up to {{max}} hosts at once",
"importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed",
"importHostsFailed": "Failed to import hosts"
},
"commandPalette": {
"searchPlaceholder": "Пошук хостів, команд або налаштувань...",
"quickActions": "Швидкі дії",
"navigation": "Навігація",
"orShortcut": "або",
"hostManager": "Менеджер хостингу",
"hostManagerDesc": "Керування, додавання або редагування хостів",
"addNewHost": "Додати нового хоста",
"addNewHostDesc": "Зареєструвати нового хоста",
"adminSettings": "Налаштування адміністратора",
"adminSettingsDesc": "Налаштування системних параметрів та користувачів",
"userProfile": "Профіль користувача",
"userProfileDesc": "Керуйте своїм обліковим записом та налаштуваннями",
"addCredential": "Додати облікові дані",
"addCredentialDesc": "Зберігайте SSH-ключі або паролі",
"recentActivity": "Нещодавня активність",
"serversAndHosts": "Сервери та хости",
"noHostsFound": "Не знайдено хостів, що відповідають \"{{search}}\"",
"links": "Посилання",
"navigate": "Навігація",
"select": "Виберіть",
"toggleWith": "Перемикання за допомогою",
"pluginActions": "More actions",
"noTargetTab": "No terminal tab is open"
},
"splitScreen": {
"title": "Split screen",
"defaultLabel": "Split {{number}}",
"splitRight": "Split right",
"splitDown": "Split down",
"addToSplit": "Add to {{split}}",
"paneEmptyItem": "Pane {{index}}: empty",
"paneItem": "Pane {{index}}: {{label}}",
"paneNumber": "Pane {{index}}",
"newPaneRight": "New pane on the right",
"newPaneBelow": "New pane below",
"emptyTitle": "Empty pane",
"emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.",
"openTabs": "Open tabs",
"noOpenTabs": "No other tabs are open",
"hosts": "Hosts",
"searchHosts": "Search hosts",
"noHosts": "No hosts match",
"newSession": "New",
"closePane": "Close pane",
"closeSession": "Close session",
"moveToTab": "Move to its own tab",
"swapWith": "Swap with",
"showHere": "Show in this pane",
"clearPane": "Empty this pane",
"zoom": "Zoom pane",
"unzoom": "Restore layout",
"unsplit": "Unsplit",
"layouts": "Layouts",
"applyLayout": "Change layout",
"newSplit": "New split",
"maxPanes": "A split can hold up to {{count}} panes",
"dropSplit": "Drop to split",
"dropHere": "Drop to show here",
"paneActions": "Pane actions",
"dividerHint": "Drag to resize. Double-click to even out.",
"openInSplit": "Open in split",
"openInNewSplit": "New split with the current tab",
"shortcuts": "Shortcuts",
"shortcutNavigate": "Move between panes",
"presets": {
"columns2": "Two side by side",
"rows2": "Two stacked",
"columns3": "Three side by side",
"mainLeft3": "One left, two right",
"mainBottom3": "Two top, one bottom",
"grid4": "Grid of four",
"grid5": "Three over two",
"grid6": "Grid of six"
}
},
"connections": {
"noConnections": "Немає з'єднань",
"noConnectionsDesc": "Відкрийте термінал, файловий менеджер або віддалений робочий стіл, щоб побачити підключення тут",
"connectedFor": "Підключено для {{duration}}",
"connected": "Підключено",
"disconnected": "Відключено",
"closeTab": "Закрити вкладку",
"closeConnection": "Закрити з'єднання",
"forgetTab": "Забути",
"removeBackground": "Видалити",
"reconnect": "Знову підключитися",
"reopenTab": "Знову відкрити",
"sectionOpen": "ВІДЧИНЕНО",
"sectionBackground": "Передісторія",
"backgroundDesc": "Сеанси тривають протягом {{minutes}} хвилин після відключення та можуть бути підключені знову.",
"persisted": "Зберігається у фоновому режимі",
"expiresIn": "Термін дії закінчується через {{duration}}",
"search": "Пошук з'єднань...",
"noSearchResults": "Немає з'єднань, що відповідають вашому пошуку",
"rename": "Перейменувати сеанс"
},
"terminal": {
"totpRequired": "Потрібна двофакторна автентифікація",
"totpCodeLabel": "Код підтвердження",
"totpVerify": "Перевірити",
"mfaPromptRequired": "Потрібна автентифікація",
"mfaPushRequired": "Потрібна автентифікація push-повідомлень",
"mfaMenuPlaceholder": "Введіть свою відповідь",
"mfaCodeOrPushPlaceholder": "Code or \"push\"",
"mfaWaitingApproval": "Очікування схвалення на вашому пристрої...",
"mfaSendRequest": "Надіслати запит",
"browserSignInCode": "Security Key",
"browserSignInUrl": "Sign-in URL",
"browserSignInOpen": "Open in Browser",
"browserSignInContinue": "I've Completed Sign-in",
"browserSignInRequired": "{{provider}} Sign-in Required",
"connectionLogTitle": "Журнал підключення",
"connectionLogCopy": "Копіювати журнали в буфер обміну",
"connectionLogEmpty": "Журналів підключень поки що немає",
"connectionLogWaiting": "Очікування журналів підключення...",
"connectionLogCopied": "Журнали підключень скопійовано в буфер обміну",
"connectionLogCopyFailed": "Не вдалося скопіювати журнали в буфер обміну"
},
"cardGrid": {
"dragToMove": "Перетягніть, щоб перемістити",
"dragToResize": "Перетягніть, щоб змінити розмір",
"changeWidth": "Змінити ширину",
"removeCard": "Видалити {{label}}",
"addCard": "Додати",
"columns": "Колонки",
"empty": "Немає карток. Використайте кнопку «Додати» нижче, щоб розмістити картки."
},
"auth": {
"tagline": "Власне керування SSH та віддаленим робочим столом",
"loginTitle": "Ласкаво просимо назад",
"registerTitle": "Створити обліковий запис",
"forgotPassword": "Забули пароль?",
"rememberMe": "Запам'ятати пристрій протягом 30 днів (включає TOTP)",
"noAccount": "Немає облікового запису?",
"hasAccount": "Вже маєте обліковий запис?",
"twoFactorAuth": "Двофакторна автентифікація",
"enterCode": "Введіть код підтвердження",
"redirectingToApp": "Перенаправлення до програми...",
"sshAuthenticationRequired": "Потрібна автентифікація SSH",
"sshNoKeyboardInteractive": "Автентифікація з клавіатури недоступна",
"sshAuthenticationFailed": "Помилка автентифікації",
"sshAuthenticationTimeout": "Час очікування автентифікації",
"sshNoKeyboardInteractiveDescription": "Сервер не підтримує інтерактивну автентифікацію за допомогою клавіатури. Будь ласка, вкажіть свій пароль або ключ SSH.",
"sshAuthFailedDescription": "Надані облікові дані були неправильними. Будь ласка, спробуйте ще раз, використовуючи дійсні облікові дані.",
"sshTimeoutDescription": "Час очікування спроби автентифікації минув. Будь ласка, спробуйте ще раз.",
"sshProvideCredentialsDescription": "Будь ласка, надайте свої SSH-акаунти для підключення до цього сервера.",
"sshPasswordDescription": "Введіть пароль для цього SSH-з’єднання.",
"sshKeyPasswordDescription": "Якщо ваш SSH-ключ зашифрований, введіть тут пароль.",
"passphraseRequired": "Потрібна парольна фраза",
"passphraseRequiredDescription": "Ключ SSH зашифровано. Будь ласка, введіть пароль, щоб розблокувати його.",
"back": "Назад",
"firstUser": "Перший користувач",
"firstUserMessage": "Ви перший користувач і станете адміністратором. Ви можете переглянути налаштування адміністратора у випадаючому списку користувачів на бічній панелі. Якщо ви вважаєте, що це помилка, перевірте журнали Docker або створіть проблему на GitHub.",
"external": "Зовнішній",
"loginWithExternal": "Вхід через зовнішнього постачальника",
"loginWithExternalDesc": "Увійдіть, використовуючи налаштований вами зовнішній постачальник ідентифікаційних даних",
"externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.",
"loginWithProvider": "Увійти за допомогою {{name}}",
"orContinueWith": "або продовжити з",
"resetPasswordButton": "Скинути пароль",
"sendResetCode": "Надіслати код скидання",
"resetCodeDesc": "Введіть своє ім'я користувача, щоб отримати код для скидання пароля. Код буде записано в журнали контейнера Docker.",
"resetCode": "Скинути код",
"verifyCodeButton": "Підтвердити код",
"enterResetCode": "Введіть 6-значний код із журналів контейнера Docker для користувача:",
"newPassword": "Новий пароль",
"confirmNewPassword": "Підтвердьте пароль",
"enterNewPassword": "Введіть свій новий пароль для користувача:",
"signUp": "Зареєструватися",
"desktopApp": "Додаток для ПК",
"loggingInToDesktopApp": "Вхід у настільну програму",
"loadingServer": "Завантаження сервера...",
"dataLossWarning": "Скидання пароля таким чином призведе до видалення всіх збережених хостів SSH, облікових даних та інших зашифрованих даних. Цю дію не можна скасувати. Використовуйте це, лише якщо ви забули пароль і не ввійшли в систему.",
"authenticationDisabled": "Автентифікацію вимкнено",
"authenticationDisabledDesc": "Усі методи автентифікації наразі вимкнено. Зверніться до свого адміністратора.",
"passwordLoginDisabledDesc": "Вхід за паролем вимкнено. Використайте ключ доступу або зовнішній постачальник автентифікації.",
"attemptsRemaining": "Залишилося {{count}} спроб",
"confirmResetDataWipe": "Цей обліковий запис не входив у систему з моменту оновлення шифрування, тому його збережені дані неможливо відновити без старого пароля. Скидання налаштувань призведе до остаточного видалення його хостів, облікових даних та фрагментів. Продовжити?",
"password": "Password",
"secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.",
"secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.",
"serverAuthentication": "Server sign-in",
"minChars": "min. {{min}} characters"
},
"hostKey": {
"verifyNewHost": "Перевірте ключ хоста SSH",
"keyChangedWarning": "Ключ хоста SSH змінено",
"firstConnectionTitle": "Перше підключення до цього хоста",
"firstConnectionDescription": "Справжність цього хоста неможливо встановити. Перевірте, чи відповідає відбиток пальця вашим очікуванням.",
"keyChangedDescription": "Ключ хоста для цього сервера змінився з моменту вашого останнього підключення. Це може свідчити про проблему безпеки.",
"previousKey": "Попередній ключ",
"newFingerprint": "Новий відбиток пальця",
"fingerprint": "Відбиток пальця",
"verifyInstructions": "Якщо ви довіряєте цьому хосту, натисніть «Прийняти», щоб продовжити та зберегти цей відбиток для майбутніх підключень.",
"securityWarning": "Попередження безпеки",
"acceptAndContinue": "Прийняти та продовжити",
"acceptNewKey": "Прийняти новий ключ і продовжити"
},
"errors": {
"databaseConnection": "Не вдалося підключитися до бази даних",
"embeddedServerFailed": "Локальний сервер Termix не зміг запуститися",
"unknownError": "Невідома помилка",
"loginFailed": "Не вдалося ввійти",
"failedPasswordReset": "Не вдалося ініціювати скидання пароля",
"failedVerifyCode": "Не вдалося перевірити код скидання",
"failedCompleteReset": "Не вдалося завершити скидання пароля",
"invalidTotpCode": "Недійсний код TOTP",
"failedOidcLogin": "Failed to start external sign-in",
"silentSigninOidcUnavailable": "Silent sign-in was requested, but no external sign-in is set up.",
"failedUserInfo": "Не вдалося отримати інформацію про користувача після входу",
"oidcAuthFailed": "External sign-in failed",
"invalidAuthUrl": "Недійсна URL-адреса авторизації отримана від серверної частини",
"requiredField": "Це поле обов'язкове",
"minLength": "Мінімальна довжина {{min}}",
"passwordMismatch": "Паролі не збігаються",
"passwordLoginDisabled": "Вхід за допомогою імені користувача/пароля наразі вимкнено",
"sessionExpired": "Сеанс закінчився – будь ласка, увійдіть знову",
"totpRateLimited": "Обмеження швидкості: Забагато спроб перевірки TOTP. Будь ласка, спробуйте пізніше.",
"totpRateLimitedWithTime": "Обмеження швидкості: Забагато спроб перевірки TOTP. Будь ласка, зачекайте {{time}} секунд, перш ніж повторити спробу.",
"resetCodeRateLimited": "Обмеження швидкості: Забагато спроб перевірки. Будь ласка, спробуйте пізніше.",
"resetCodeRateLimitedWithTime": "Обмеження швидкості: Забагато спроб перевірки. Будь ласка, зачекайте {{time}} секунд, перш ніж повторити спробу.",
"authTokenSaveFailed": "Не вдалося зберегти токен автентифікації",
"authTokenMissing": "Сервер не повернув новий токен автентифікації. Будь ласка, увійдіть ще раз.",
"failedToLoadServer": "Не вдалося завантажити сервер",
"sessionExpiredLogin": "Session expired. Please log in again."
},
"messages": {
"registrationDisabled": "Реєстрацію нового облікового запису наразі вимкнено адміністратором. Будь ласка, увійдіть або зверніться до адміністратора.",
"userNotAllowed": "Ваш обліковий запис не авторизовано для реєстрації. Зверніться до адміністратора.",
"databaseConnectionFailed": "Не вдалося підключитися до сервера бази даних",
"embeddedServerPortInUse": "Порт {{port}} вже використовується іншою програмою. Зазвичай це контейнер Termix Docker або процес Termix, що залишився від попереднього сеансу. Закрийте його, а потім перезапустіть Termix.",
"embeddedServerPortInUseUnknownPort": "Один із портів, необхідних Termix, вже використовується іншою програмою. Закрийте всі, що його використовують, а потім перезапустіть Termix.",
"embeddedServerCrashed": "Локальний сервер несподівано зупинився. Перезапустіть Termix і перевірте журнал робочого столу, якщо це повторюється.",
"resetCodeSent": "Скидання коду, надісланого до журналів Docker",
"codeVerified": "Код успішно перевірено",
"passwordResetSuccess": "Пароль успішно скинуто",
"loginSuccess": "Вхід успішний",
"registrationSuccess": "Реєстрація успішна"
},
"placeholders": {
"language": "Мова",
"keyPassword": "пароль ключа",
"pastePrivateKey": "Вставте сюди свій закритий ключ...",
"enterPassword": "Введіть свій пароль"
},
"dashboard": {
"title": "Інформаційна панель",
"loading": "Завантаження панелі інструментів...",
"github": "GitHub",
"support": "Підтримка",
"discord": "Дискорд",
"docs": "Документи",
"donate": "Пожертвувати",
"serverOverview": "Огляд сервера",
"version": "Версія",
"upToDate": "Актуально",
"updateAvailable": "Доступне оновлення",
"beta": "Бета-версія",
"uptime": "Час безперебійної роботи",
"database": "База даних",
"healthy": "Здоровий",
"error": "Помилка",
"totalHosts": "Загальна кількість хостів",
"totalCredentials": "Загальна кількість облікових даних",
"recentActivity": "Нещодавня активність",
"reset": "Скинути",
"loadingRecentActivity": "Завантаження нещодавньої активності...",
"noRecentActivity": "Немає нещодавньої активності",
"quickActions": "Швидкі дії",
"addHost": "Додати хоста",
"addCredential": "Додати облікові дані",
"adminSettings": "Налаштування адміністратора",
"userProfile": "Профіль користувача",
"serverStats": "Статистика сервера",
"loadingServerStats": "Завантаження статистики сервера...",
"noServerData": "Дані сервера недоступні",
"customizeLayout": "Налаштувати інформаційну панель",
"dashboardSettings": "Налаштування панелі інструментів",
"enableDisableCards": "Увімкнути/вимкнути картки",
"resetLayout": "Скинути до заводських налаштувань",
"serverOverviewCard": "Огляд сервера",
"recentActivityCard": "Нещодавня активність",
"quickActionsCard": "Швидкі дії",
"serverStatsCard": "Статистика сервера",
"panelMain": "Головне",
"panelSide": "Сторона",
"justNow": "щойно",
"activityFileManager": "File manager"
},
"donation": {
"title": "Подобається Термікс?",
"body": "Termix — це безкоштовний продукт з відкритим кодом, який створює та підтримує команда з двох осіб у вільний час. Якщо він замінює комерційний інструмент, за який ви б інакше платили, пожертва допомагає покрити витрати на хостинг і продовжувати розробку. Наразі пожертви надаються лише у криптовалюті.",
"milestones": "Пожертви також допомагають фінансувати час для дослідження та вивчення того, що потрібно для створення таких функцій, як підтримка SAML та Kubernetes. Слідкуйте за прогресом на сторінці пожертв.",
"cta": "Пожертвувати",
"dismiss": "Можливо, пізніше"
},
"dashboardTab": {
"stable": "СТАБІЛЬНИЙ",
"hostsOnline": "Хости онлайн",
"registerNewServer": "Зареєструвати новий сервер",
"storeSshKeysOrPasswords": "Зберігайте SSH-ключі або паролі",
"manageUsersAndRoles": "Керування користувачами та ролями",
"manageYourAccount": "Керуйте своїм обліковим записом",
"hostStatus": "Стан хоста",
"noHostsConfigured": "Немає налаштованих хостів",
"online": "ОНЛАЙН",
"offline": "ОФЛАЙН",
"checking": "ПЕРЕВІРКА",
"onlineLower": "Онлайн",
"add": "Додати:",
"commandPalette": "Палітра команд",
"done": "Готово",
"editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.",
"empty": "Порожній",
"clear": "Очистити",
"viewServerDetails": "Переглянути деталі сервера",
"dragToResizeColumns": "Drag to resize columns",
"hostsAvailable": "Hosts Available"
},
"admin": {
"sectionGeneral": "Загальне",
"sectionUsers": "Користувачі",
"sectionSessions": "Сесії",
"sectionRoles": "Ролі",
"sectionDatabase": "База даних",
"sectionApiKeys": "Ключі API",
"sectionAuditLog": "Журнал аудиту",
"sectionSsl": "HTTPS certificate",
"sectionBranding": "Біла етикетка",
"brandingAppName": "Назва програми",
"brandingAppNameDesc": "Відображається на екрані входу та вкладці браузера. Залиште поле порожнім, щоб використовувати «Termix».",
"brandingTagline": "Слоган",
"brandingTaglineDesc": "Відображається під назвою програми на екрані входу. Залиште поле порожнім, щоб використовувати слоган за замовчуванням.",
"brandingLogo": "Логотип",
"brandingLogoDesc": "PNG, JPEG або WEBP, до 750 КБ. Замінює стандартний значок на екрані входу та вкладці браузера.",
"brandingLogoUpload": "Завантажити логотип",
"brandingLogoReset": "Скинути налаштування за замовчуванням",
"brandingLogoInvalid": "Недійсне зображення. Використайте файл PNG, JPEG або WEBP розміром до 750 КБ.",
"brandingSaved": "Налаштування брендингу збережено",
"brandingSaveFailed": "Не вдалося зберегти налаштування брендингу",
"sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.",
"sslDocsLink": "Переглянути документацію SSL",
"sslCertStatus": "Статус сертифіката",
"sslCertStatusNone": "Без сертифіката",
"sslCertStatusValid": "Дійсний",
"sslCertStatusExpiring": "Термін дії скоро закінчується",
"sslCertStatusExpired": "Термін дії минув",
"sslCertExpiresAt": "Термін дії закінчується {{date}}",
"sslInfoNote": "Після видачі або завантаження сертифіката Termix автоматично ввімкне HTTPS на SSL_PORT (за замовчуванням 8443) на додаток до існуючого HTTP-порту. Переконайтеся, що цей порт опубліковано/зіставлено з цим контейнером, щоб він був доступним.",
"sslManualCert": "Сертифікат (PEM)",
"sslManualCertPlaceholder": "-----ПОЧАТИ СЕРТИФІКАТ-----",
"sslManualKey": "Закритий ключ (PEM)",
"sslManualKeyPlaceholder": "-----ПОЧАТИ ПРИВАТНИЙ КЛЮЧ-----",
"sslManualDesc": "Вставте свій існуючий сертифікат і закритий ключ, включаючи повний ланцюжок, якщо цього вимагає ваш центр сертифікації.",
"sslManualUpload": "Сертифікат завантаження та встановлення",
"sslManualUploadLoading": "Завантаження сертифіката...",
"sslManualUploadSuccess": "Сертифікат успішно завантажено та встановлено",
"sslManualUploadFailed": "Не вдалося завантажити сертифікат",
"sslManualRequiresFields": "Потрібні сертифікат та закритий ключ",
"auditLogTotal": "{{total}} всього записів",
"auditLogEmpty": "Записів журналу аудиту не знайдено",
"auditLogSuccess": "Успіх",
"auditLogFailed": "Не вдалося",
"auditLogClearFilters": "Очистити фільтри",
"auditLogPage": "Сторінка {{page}} з {{totalPages}} ({{total}} всього)",
"auditLogIp": "ІП",
"auditLogResourceId": "Ідентифікатор ресурсу",
"auditLogFilterUser": "Користувач",
"auditLogFilterAction": "Дія",
"auditLogFilterResourceType": "Тип ресурсу",
"auditLogFilterStatus": "Статус",
"auditLogFilterFrom": "Від",
"auditLogFilterTo": "До",
"auditLogFilterAll": "Усі",
"allowRegistration": "Дозволити реєстрацію користувача",
"allowRegistrationDesc": "Дозвольте новим користувачам самостійно реєструватися, використовуючи ім'я користувача та пароль",
"allowPasswordLogin": "Дозволити вхід з паролем",
"allowPasswordLoginDesc": "Вхід за ім'ям користувача/паролем",
"oidcAutoProvision": "Auto-create external accounts",
"oidcAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off",
"secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)",
"secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.",
"allowPasswordReset": "Дозволити скидання пароля",
"allowPasswordResetDesc": "Скидання коду через журнали Docker",
"auditForwardingTitle": "Вперед до SIEM",
"auditForwardingDesc": "Надсилайте копію кожного запису аудиту зовнішньому колектору як NDJSON. Локальні журнали залишаються джерелом достовірної інформації.",
"auditForwardingEnvNotice": "Змінна середовища також налаштовує переадресацію; URL-адреса, збережена тут, має пріоритет.",
"auditForwardingToken": "Токен на пред'явника (необов'язково)",
"auditForwardingTokenStored": "Токен пред'явника (зберігається)",
"auditForwardingSaved": "Налаштування переадресації аудиту збережено",
"auditForwardingSaveError": "Не вдалося зберегти налаштування переадресації аудиту",
"sessionTimeout": "Час очікування сеансу",
"hours": "години",
"sessionTimeoutRange": "Min 1h, max 720h",
"monitoringDefaults": "Моніторинг налаштувань за замовчуванням",
"statusCheck": "Перевірка стану",
"sec": "сек",
"logLevel": "Рівень журналу",
"usersCount": "{{count}} користувачів",
"searchUsers": "Пошук користувачів...",
"noUsers": "Немає користувачів",
"noUsersMatch": "Немає користувачів, які відповідають вашому пошуковому запиту",
"pageOf": "Сторінка {{page}} з {{total}}",
"createUser": "Створити",
"newRole": "Нова роль",
"roleName": "Ім'я",
"roleDisplayName": "Відображуване ім'я",
"roleDescription": "Опис",
"rolesCount": "{{count}} ролей",
"createRole": "Створити",
"creating": "Створення...",
"exportDatabase": "Експорт бази даних",
"exportDatabaseDesc": "Завантажте портативну резервну копію SQLite всіх хостів, облікових даних та налаштувань",
"export": "Експорт",
"exporting": "Експорт...",
"importDatabase": "Імпорт бази даних",
"importDatabaseDesc": "Відновлення з портативної резервної копії .sqlite на будь-якому сервері бази даних",
"importDatabaseSelected": "Вибрано: {{name}}",
"selectFile": "Виберіть файл",
"changeFile": "Зміна",
"import": "Імпорт",
"importing": "Імпорт...",
"apiKeysCount": "клавіші {{count}}",
"apiKeysDocsLink": "Переглянути документи",
"apiKeysCliHint": "Використовуйте ключ API з інтерфейсом командного рядка Termix для керування серверами з терміналу.",
"apiKeysCliLink": "Переглянути документацію CLI",
"newApiKey": "Новий ключ API",
"apiKeyCreatedWarning": "Ключ створено – скопіюйте його зараз, він більше не відображатиметься.",
"apiKeyName": "Ім'я",
"apiKeyUser": "Користувач",
"apiKeySelectUser": "Виберіть користувача...",
"apiKeyExpiresAt": "Термін дії закінчується о",
"createKey": "Створити ключ",
"apiKeyNoExpiry": "Без терміну дії",
"revokedBadge": "СКАСОВАНО",
"authTypeDual": "Подвійна автентифікація",
"authTypeOidc": "External",
"authTypeLocal": "Місцевий",
"adminStatusAdministrator": "Адміністратор",
"adminStatusRegularUser": "Звичайний користувач",
"adminBadge": "АДМІНІСТРАТОР",
"systemBadge": "СИСТЕМА",
"customBadge": "ЗАМОВЛЕННЯ",
"youBadge": "ТИ",
"sessionsActive": "{{count}} активний",
"sessionActive": "Активний: {{time}}",
"sessionExpires": "Термін дії: {{time}}",
"revokeAll": "Усі",
"revokeAllSessionsSuccess": "Усі сеанси для користувача скасовано",
"revokeAllSessionsFailed": "Не вдалося скасувати сеанси",
"revokeSessionFailed": "Не вдалося скасувати сеанс",
"addRole": "Додати роль",
"noCustomRoles": "Не визначено користувацьких ролей",
"removeRoleFailed": "Не вдалося видалити роль",
"assignRoleFailed": "Не вдалося призначити роль",
"deleteRoleFailed": "Не вдалося видалити роль",
"userAdminAccess": "Адміністратор",
"userAdminAccessDesc": "Повний доступ до всіх налаштувань адміністратора",
"userRoles": "Ролі",
"revokeAllUserSessions": "Скасувати всі сеанси",
"revokeAllUserSessionsDesc": "Примусово повторно ввійти на всіх пристроях",
"revoke": "Скасувати",
"deleteUserWarning": "Видалення цього користувача є остаточним.",
"deleteUser": "Видалити {{username}}",
"deleting": "Видалення...",
"deleteUserFailed": "Не вдалося видалити користувача",
"deleteUserSuccess": "Користувача \"{{username}}\" видалено",
"deleteRoleSuccess": "Роль «{{name}}» видалено",
"revokeKeySuccess": "Ключ \"{{name}}\" скасовано",
"revokeKeyFailed": "Не вдалося скасувати ключ",
"copiedToClipboard": "Скопійовано в буфер обміну",
"done": "Готово",
"createUserTitle": "Створити користувача",
"createUserDesc": "Створіть новий локальний обліковий запис.",
"createUserUsername": "Ім'я користувача",
"createUserPassword": "Пароль",
"createUserPasswordHint": "Мінімум 6 символів.",
"createUserEnterUsername": "Введіть ім'я користувача",
"createUserEnterPassword": "Введіть пароль",
"createUserSubmit": "Створити користувача",
"editUserTitle": "Керування користувачем: {{username}}",
"editUserDesc": "Редагувати ролі, статус адміністратора, сеанси та налаштування облікового запису.",
"editUserUsername": "Ім'я користувача",
"editUserAuthType": "Тип автентифікації",
"editUserAdminStatus": "Статус адміністратора",
"editUserUserId": "Ідентифікатор користувача",
"linkAccountTitle": "Зв'язати облікові записи",
"linkAccountDesc": "Merge the external account {{username}} with an existing local account.",
"linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.",
"linkAccountWarningTitle": "Це призведе до:",
"linkAccountEffect1": "Delete the external-only account",
"linkAccountEffect2": "Add its external sign-in to the target account",
"linkAccountEffect3": "Allow both external and password sign-in",
"linkAccountTargetUsername": "Ім'я користувача локального облікового запису",
"linkAccountTargetPlaceholder": "Введіть ім'я користувача локального облікового запису для підключення",
"linkAccountOidcUsername": "External Account Username",
"linkAccountOidcPlaceholder": "Enter the external-only account username to merge in",
"linkAccountOidcNotFound": "No external-only account found with that username",
"linkAccounts": "Зв'язати облікові записи",
"linkAccountSuccess": "Облікові записи успішно пов’язано",
"linkAccountFailed": "Не вдалося зв'язати облікові записи",
"linkAccountInProgress": "Зв'язування...",
"unlinkAccountTitle": "Unlink External Sign-in",
"unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.",
"unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.",
"unlinkAccount": "Unlink External Sign-in",
"unlinkAccountInProgress": "Від’єднання...",
"unlinkAccountSuccess": "External sign-in unlinked",
"unlinkAccountFailed": "Failed to unlink external sign-in",
"saving": "Збереження...",
"updateRegistrationFailed": "Не вдалося оновити налаштування реєстрації",
"updatePasswordLoginFailed": "Не вдалося оновити налаштування входу з паролем",
"updateOidcAutoProvisionFailed": "Failed to update the auto-create setting",
"updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting",
"updatePasswordResetFailed": "Не вдалося оновити налаштування скидання пароля",
"sessionTimeoutRange2": "Час очікування сеансу має бути від 1 до 720 годин",
"sessionTimeoutSaved": "Час очікування сеансу збережено",
"sessionTimeoutSaveFailed": "Не вдалося зберегти час очікування сеансу",
"monitoringIntervalInvalid": "Недійсні значення інтервалу",
"monitoringSaved": "Налаштування моніторингу збережено",
"monitoringSaveFailed": "Не вдалося зберегти налаштування моніторингу",
"logLevelUpdateFailed": "Не вдалося оновити рівень журналу",
"createUserRequired": "Потрібні ім'я користувача та пароль",
"createUserPasswordTooShort": "Пароль має містити щонайменше 6 символів",
"createUserSuccess": "Користувач «{{username}}» створено",
"createUserFailed": "Не вдалося створити користувача",
"updateAdminStatusFailed": "Не вдалося оновити статус адміністратора",
"allSessionsRevoked": "Усі сесії скасовано",
"revokeSessionsFailed": "Не вдалося скасувати сеанси",
"manageUserData": "Керування даними користувачів",
"backToUsers": "Назад до користувачів",
"manageTabAccount": "Обліковий запис",
"manageTabHosts": "Хости",
"manageTabCredentials": "Облікові дані",
"manageTabSessions": "Сесії",
"manageTabDanger": "Небезпека",
"manageEditorBack": "Назад до даних {{username}}",
"dataLockedBadge": "ЗАБЛОКОВАНО",
"dataLockedNotice": "Дані {{username}}залишаються заблокованими до наступного входу в систему. До того часу їхні хости, облікові дані та фрагменти не можна переглядати або редагувати.",
"resetPasswordTitle": "Скинути пароль",
"resetPasswordOidcOnly": "Цей користувач входить через зовнішнього постачальника та не має пароля.",
"resetPasswordPlaceholder": "Новий пароль",
"resetPasswordBtn": "Скинути",
"resetPasswordWorking": "Скидання...",
"resetPasswordSuccess": "Скидання пароля",
"resetPasswordSuccessWiped": "Скидання пароля. Зашифровані дані користувача було видалено.",
"resetPasswordFailed": "Не вдалося скинути пароль",
"resetPasswordConfirmWipe": "{{username}} не входив у систему після оновлення шифрування, тому його дані неможливо відновити. Скидання налаштувань зараз призведе до видалення його хостів, облікових даних та фрагментів. Продовжити?",
"manageApiKeys": "Ключі API",
"apiKeyNamePlaceholder": "Назва ключа",
"apiKeyCopyNotice": "Скопіюйте цей ключ зараз, він більше не відображатиметься.",
"noApiKeysForUser": "Без ключів API",
"apiKeyDeleteFailed": "Не вдалося видалити ключ API",
"exportUserData": "Експорт даних",
"exportUserDataDesc": "Завантажити хости, облікові дані та дані файлового менеджера цього користувача у форматі JSON. Секрети розшифровано.",
"exportUserDataSuccess": "Експортовано дані користувача",
"exportUserDataFailed": "Не вдалося експортувати дані користувача",
"hostsCount": "{{count}} хости",
"addHostForUser": "Додати хоста",
"noHostsForUser": "Цей користувач не має хостів",
"connectToHost": "Підключитися",
"deleteHostConfirm": "Видалити хост \"{{name}}\", що належить {{username}}?",
"hostDeletedSuccess": "Хост видалено",
"hostDeleteFailed": "Не вдалося видалити хост",
"credentialsCount": "{{count}} облікові дані",
"addCredentialForUser": "Додати облікові дані",
"noCredentialsForUser": "Цей користувач не має облікових даних",
"deleteCredentialConfirm": "Видалити облікові дані \"{{name}}\", що належать {{username}}?",
"credentialDeletedSuccess": "Облікові дані видалено",
"credentialDeleteFailed": "Не вдалося видалити облікові дані",
"noSessionsForUser": "Немає активних сеансів",
"deleteSuccessorLabel": "Передайте хостам та облікові дані",
"deleteSuccessorMe": "Я (адміністратор, що видаляє)",
"deleteSuccessorNone": "Nobody, delete them",
"deleteSuccessorDesc": "Все, чим поділився цей користувач, продовжує працювати під новим власником; вибір «Ніхто» видаляє його хости, облікові дані та спільні ресурси.",
"deleteUserDangerDesc": "Остаточно видалити {{username}} та всі його дані (хости, облікові дані, фрагменти коду, історію). Цю дію неможливо скасувати.",
"deleteUserConfirm": "Остаточно видалити {{username}} та всі його дані?",
"deleteUserAdminBlocked": "Видаліть статус адміністратора, перш ніж видаляти цього користувача.",
"createRoleRequired": "Ім'я та ім'я для відображення обов'язкові",
"createRoleSuccess": "Роль «{{name}}» створено",
"createRoleFailed": "Не вдалося створити роль",
"apiKeyNameRequired": "Потрібне ім'я ключа",
"apiKeyUserRequired": "Потрібен ідентифікатор користувача",
"apiKeyCreatedSuccess": "Ключ API \"{{name}}\" створено",
"apiKeyCreateFailed": "Не вдалося створити ключ API",
"exportSuccess": "База даних успішно експортована",
"exportFailed": "Не вдалося експортувати базу даних",
"importSelectFile": "Спочатку виберіть файл",
"importCompleted": "Імпорт завершено: імпортовано {{total}} елементів, пропущено {{skipped}}",
"importFailed": "Помилка імпорту: {{error}}",
"importError": "Не вдалося імпортувати базу даних",
"sectionHostDefaults": "Налаштування хоста за замовчуванням",
"minutes": "хвилин",
"rolePermissions": {
"count": "{{count}} дозволи",
"editAction": "Редагувати дозволи",
"loadError": "Не вдалося завантажити каталог дозволів",
"saved": "Дозволи ролі збережено",
"saveError": "Не вдалося зберегти дозволи ролі",
"save": "Зберегти",
"saving": "Збереження...",
"pluginDisabled": "Feature disabled",
"groups": {
"hosts": "Hosts",
"credentials": "Credentials",
"admin": "Administration"
}
},
"notificationPrivateEndpoints": "Дозволені хости приватних сповіщень",
"notificationPrivateEndpointsDesc": "Точні приватні хости, з якими можуть зв’язуватися канали сповіщень. Розділіть їх комами.",
"updateNotificationEndpointsFailed": "Не вдалося оновити список дозволених кінцевих точок сповіщень",
"secondFactorsSectionTitle": "Second factors",
"secondFactorsNone": "No second factors enrolled",
"secondFactorUnavailable": "Unavailable",
"resetSecondFactors": "Reset second factors",
"resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.",
"secondFactorsResetSuccess": "Second factors reset",
"secondFactorsResetFailed": "Failed to reset second factors",
"passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.",
"sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.",
"sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.",
"sslRenewedBy": "Renewed automatically by {{plugin}}",
"sslIssuer": "Issued by {{issuer}}",
"sslNames": "Covers {{names}}",
"sslManualTitle": "Upload a certificate",
"updateExternalAutoProvisionFailed": "Failed to update the auto-create setting"
},
"newUi": {
"sidebar": {
"quickConnect": {
"hostLabel": "Хост",
"hostPlaceholder": "192.168.1.1 або example.com",
"portLabel": "Порт",
"portPlaceholder": "22",
"usernameLabel": "Ім'я користувача",
"usernamePlaceholder": "ім'я користувача",
"authLabel": "Авторизація",
"passwordLabel": "Пароль",
"passwordPlaceholder": "пароль",
"privateKeyLabel": "Закритий ключ",
"privateKeyPlaceholder": "Вставити закритий ключ...",
"credentialLabel": "Посвідчення",
"credentialPlaceholder": "Виберіть збережені облікові дані",
"protocolLabel": "Протокол",
"domainLabel": "Домен",
"domainPlaceholder": "необов'язково",
"connectToAction": "Connect to {{name}}",
"sshProtocol": "SSH",
"noTarget": "Nothing installed can connect to this host type"
},
"keybindings": {
"title": "Комбінації клавіш",
"description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.",
"defaultsHeading": "Вбудовані комбінації клавіш",
"fixedHeading": "App Shortcuts",
"fixed": {
"splitRight": "Split right",
"splitDown": "Split down",
"zoomPane": "Zoom the focused pane",
"navigatePane": "Move between panes",
"nextTab": "Next tab",
"previousTab": "Previous tab",
"jumpTab": "Jump to tab",
"previousView": "Back to the previous sidebar view",
"fullscreen": "Toggle fullscreen"
},
"customHeading": "Користувацькі скорочення",
"addBinding": "Додати ярлик",
"addBindingTitle": "Додати ярлик",
"editBindingTitle": "Редагувати скорочення",
"loading": "Завантаження...",
"noCustomBindings": "Поки що немає користувацьких комбінацій клавіш",
"defaultBadge": "За замовчуванням",
"customizedBadge": "Налаштовані",
"customize": "Налаштувати",
"resetToDefault": "Скинути до заводських налаштувань",
"resetAllToDefaults": "Скинути всі налаштування до заводських",
"close": "Закрити",
"cancel": "Скасувати",
"saveBinding": "Зберегти ярлик",
"saveError": "Не вдалося зберегти комбінації клавіш",
"pressKeysToRecord": "Комбінація клавіш",
"pressKeysPlaceholder": "Клацайте та натискайте клавіші",
"recording": "Натискайте клавіші...",
"comboRequiredError": "Спочатку натисніть комбінацію клавіш",
"conflictWarning": "Ця комбінація вже пов'язана з {{combo}}. Збереження призведе до спрацювання обох.",
"actionLabel": "Дія",
"actionNextTab": "Перейти до наступної вкладки",
"actionPreviousTab": "Перейти до попередньої вкладки",
"actionOpenCommandPalette": "Відкрити швидкий пошук",
"actionReconnectSession": "Reconnect current session",
"unavailableAction": "{{type}} (not available)",
"actionRequiredError": "Pick an action first"
},
"userProfile": {
"donateTitle": "Збережи Термікс живим",
"donateDescription": "Termix безкоштовний, розміщується самостійно та створений лише кількома людьми у вільний час. Якщо це заощадило вам час або гроші, пожертва у криптовалюті допоможе йому продовжувати роботу.",
"donateMilestones": "Пожертви допомагають фінансувати час для дослідження та вивчення того, що потрібно для створення підтримки SAML, Kubernetes та Agent. Слідкуйте за прогресом та робіть пожертви.",
"donateButton": "Пожертвувати криптовалюту",
"storageModeLocal": "Браузер",
"storageModeCloud": "База даних",
"storageModeDescription": "Браузер зберігає налаштування лише в цьому браузері. База даних синхронізується із сервером і завантажується на будь-якому пристрої.",
"resetToDefaults": "Скинути до налаштувань за замовчуванням",
"resetToDefaultsSuccess": "Налаштування скинуто до заводських значень.",
"storageModeSwitch": "Зберігання налаштувань",
"sectionAccount": "Обліковий запис",
"desktopProfileTitle": "This device only",
"desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.",
"sectionInterface": "Інтерфейс",
"interfacePresetDesc": "Скільки деталей показує Termix. Кожна функція залишається доступною.",
"preset_simple": "Простий",
"preset_simple_desc": "Тільки найнеобхідніше.",
"preset_balanced": "Збалансований",
"preset_balanced_desc": "Стандартне планування.",
"preset_advanced": "Розширений",
"preset_advanced_desc": "Все ввімкнено, щільно упаковано.",
"presetClearOverrides": "Скинути все",
"presetOverridesTitle": "Налаштовані",
"presetRevertArea": "Повернути",
"presetConfirmTitle": "Перейти на {{preset}}?",
"presetConfirmDesc": "Це скидає налаштування вашої бічної панелі, навігації, макета панелі інструментів, панелі інструментів терміналу та вигляду файлового менеджера. Ваші хости, облікові дані та домашня сторінка залишаються незмінними.",
"presetConfirmApply": "Застосувати пресет",
"runSetupAgainDesc": "Ще раз пройдіться по налаштуванню першого запуску.",
"runSetupAgainButton": "Виконати налаштування",
"uiArea_chrome": "Додаток Chrome",
"uiArea_hostList": "Список хостів",
"uiArea_credentialList": "Список посвідчень",
"uiArea_rail": "Навігація",
"uiArea_dashboard": "Інформаційна панель",
"uiArea_terminal": "Термінал",
"uiArea_fileManager": "Файловий менеджер",
"uiArea_hostEditor": "Редактор хоста",
"sectionAppearance": "Зовнішній вигляд",
"sectionSecurity": "Безпека",
"sectionApiKeys": "Ключі API",
"sectionData": "Дані",
"usernameLabel": "Ім'я користувача",
"roleLabel": "Роль",
"roleAdministrator": "Адміністратор",
"authMethodLabel": "Метод автентифікації",
"authMethodLocal": "Місцевий",
"twoFaLabel": "2FA",
"twoFaOn": "Увімкнено",
"twoFaOff": "Вимкнено",
"versionLabel": "Версія",
"betaProgramTitle": "Бета-програма",
"betaProgramDescription": "Спробуйте майбутні функції заздалегідь за допомогою щотижневого тегу :beta Docker. Нестабільна версія, не для продакшену.",
"betaProgramFeedback": "Знайшли помилку? Повідомте про неї тут.",
"betaProgramLearnMore": "Дізнатися більше",
"cliTitle": "Інтерфейс командного рядка Termix",
"cliDescription": "Відкривайте термінали, виконуйте команди та переміщуйте файли зі своєї власної оболонки.",
"cliLearnMore": "Дізнатися більше",
"deleteAccount": "Видалити обліковий запис",
"deleteAccountDescription": "Видалити обліковий запис назавжди",
"changeServerDescription": "Переключитися на інший сервер Termix",
"deleteButton": "Видалити",
"deleteAccountPermanent": "Ця дія є остаточною і не може бути скасована.",
"deleteAccountWarning": "Усі сеанси, хости, облікові дані та налаштування будуть видалені назавжди.",
"confirmPasswordDeletePlaceholder": "Введіть свій пароль для підтвердження",
"languageLabel": "Мова",
"themeLabel": "Тема",
"fontSizeLabel": "Розмір шрифту",
"interfaceFontLabel": "Шрифт інтерфейсу",
"interfaceFontDescription": "Змінює шрифт інтерфейсу програми. Профілі терміналів зберігають власні налаштування шрифту.",
"accentColorLabel": "Акцентний колір",
"keyboardShortcuts": "Комбінації клавіш",
"keyboardShortcutsDescription": "Налаштування скорочень команд, копіювання, вставки та інших команд у терміналі",
"manageShortcuts": "Керувати",
"historyTracking": "Відстеження історії",
"historyTrackingDesc": "Відстеження команд терміналу",
"commandPalette": "Палітра команд",
"commandPaletteDesc": "Увімкнути комбінацію клавіш",
"reopenTabsOnLogin": "Повторно відкривати вкладки після входу",
"reopenTabsOnLoginDesc": "Відновлюйте відкриті вкладки після входу в систему або оновлення сторінки, навіть з іншого пристрою",
"confirmTabClose": "Підтвердити закриття вкладки",
"confirmTabCloseDesc": "Запитувати перед закриттям вкладок термінала",
"showTabNumbers": "Show Tab Numbers",
"showTabNumbersDesc": "Display a number on each tab to help tell them apart",
"settingsAppRail": "Залізниця додатків",
"sidebarSettingsMoved": "Налаштування відображення бічної панелі хоста переміщено на панель «Налаштувати бічну панель», яка відкривається з панелі інструментів хостів.",
"showHostTags": "Показати теги хоста",
"showHostTagsDesc": "Відображення тегів у списку хостів",
"hostTrayOnClick": "Натисніть, щоб розгорнути дії хоста",
"hostTrayOnClickDesc": "Завжди показувати кнопки підключення; натисніть, щоб розгорнути параметри керування, замість того, щоб наводити курсор на них.",
"compactHostView": "Компактний вигляд хоста",
"compactHostViewDesc": "Згорнути кожен хост до одного рядка, показуючи лише його ім'я та адресу",
"statusColors": "Кольори реального статусу",
"statusColorsDesc": "Використовуйте зелений/червоний для статусу онлайн/офлайн замість акцентного кольору",
"pinAppRail": "Закріпити рейку додатків",
"pinAppRailDesc": "Залишати ліву бічну панель програм завжди розгорнутою, а не при наведенні курсора",
"openFullscreenSettings": "Відкрити налаштування на весь екран",
"exitFullscreenSettings": "Вихід із налаштувань повноекранного режиму",
"expandAppRailOnHover": "Розгорнути панель програм при наведенні курсора",
"expandAppRailOnHoverDesc": "Дозволити розгортання лівої бічної панелі програми, коли курсор переміщується по ній",
"showPinAppRailButton": "Показати кнопку «Закріпити рейку програм»",
"showPinAppRailButtonDesc": "Показувати кнопку на панелі програм, щоб закріпити її у відкритому вигляді. За замовчуванням вимкнено.",
"settingsNavigation": "Навігація",
"navigationTabsDesc": "Виберіть, які вкладки відображатимуться на панелі програм",
"showSnippetCommands": "Показати команди",
"showSnippetCommandsDesc": "Показувати команду кожного фрагмента під її назвою. Вимкніть для компактного списку.",
"foldersCollapsed": "Папки згорнуто",
"foldersCollapsedDesc": "Згортати папки за замовчуванням",
"confirmExecution": "Підтвердити виконання",
"confirmExecutionDesc": "Підтвердьте перед запуском фрагментів",
"settingsUpdates": "Оновлення",
"disableUpdateChecks": "Вимкнути перевірки оновлень",
"disableUpdateChecksDesc": "Припинити перевірку оновлень",
"changePassword": "Змінити пароль",
"currentPasswordLabel": "Поточний пароль",
"currentPasswordPlaceholder": "Поточний пароль",
"newPasswordLabel": "Новий пароль",
"newPasswordPlaceholder": "Новий пароль",
"confirmPasswordLabel": "Підтвердіть новий пароль",
"confirmPasswordPlaceholder": "Підтвердіть новий пароль",
"updatePassword": "Оновити пароль",
"createApiKeyTitle": "Створити ключ API",
"createApiKeyDescription": "Згенеруйте новий ключ API для програмного доступу.",
"apiKeyNameLabel": "Ім'я",
"apiKeyNamePlaceholder": "наприклад, трубопровід CI",
"expiryDateLabel": "Термін дії",
"optional": "необов'язково",
"cancel": "Скасувати",
"createKey": "Створити ключ",
"apiKeyCreatedWarning": "Ключ створено – скопіюйте його зараз, він більше не відображатиметься.",
"copyApiKey": "Копіювати ключ API",
"copiedToClipboard": "Скопійовано в буфер обміну",
"apiKeyCount": "клавіші {{count}}",
"newKey": "Новий ключ",
"noApiKeys": "Ключів API поки що немає.",
"apiKeyActive": "Активний",
"apiKeyUsageHint": "Додайте свій ключ до",
"apiKeyUsageHintHeader": "заголовок.",
"apiKeyPermissionsHint": "Ключі успадковують дозволи користувача, який їх створює.",
"exportData": "Експорт моїх даних",
"exportDataDesc": "Завантажте резервну копію своїх хостів, облікових даних та налаштувань для перенесення на інший пристрій",
"export": "Експорт",
"exporting": "Експорт...",
"importData": "Імпортувати мої дані",
"importDataDesc": "Відновіть свої хости, облікові дані та налаштування з резервного файлу .sqlite",
"importDataSelected": "Вибрано: {{name}}",
"selectFile": "Виберіть файл",
"changeFile": "Зміна",
"import": "Імпорт",
"importing": "Імпорт...",
"exportSuccess": "Дані успішно експортовано",
"exportFailed": "Не вдалося експортувати дані",
"importSelectFile": "Спочатку виберіть файл",
"importCompleted": "Імпорт завершено: імпортовано {{total}} елементів, пропущено {{skipped}}",
"importFailed": "Помилка імпорту: {{error}}",
"roleUser": "Користувач",
"authMethodDual": "Подвійна автентифікація",
"authMethodOidc": "External",
"done": "Готово",
"apiKeyNameRequired": "Потрібне ім'я ключа",
"apiKeyCreated": "Ключ API \"{{name}}\" створено",
"apiKeyCreateFailed": "Не вдалося створити ключ API",
"apiKeyUser": "Користувач",
"apiKeyExpires": "Термін дії закінчується",
"apiKeyRevoked": "Ключ API \"{{name}}\" відкликано",
"apiKeyRevokeFailed": "Не вдалося скасувати ключ API",
"passwordFieldsRequired": "Потрібні поточний та новий паролі",
"passwordMismatch": "Паролі не збігаються",
"passwordTooShort": "Пароль має містити щонайменше 6 символів",
"passwordUpdated": "Пароль успішно оновлено",
"passwordUpdateFailed": "Не вдалося оновити пароль",
"deletePasswordRequired": "Для видалення облікового запису потрібен пароль",
"deleteFailed": "Не вдалося видалити обліковий запис",
"deleting": "Видалення...",
"colorPickerTooltip": "Відкрити вибір кольору",
"themeSystem": "Система",
"themeLight": "Світло",
"themeDark": "Темний",
"themeDracula": "Дракула",
"themeCatppuccin": "Катпучін",
"themeNord": "Норд",
"themeSolarized": "Соляризований",
"themeTokyoNight": "Ніч у Токіо",
"themeOneDark": "Одна темрява",
"themeGruvbox": "Грувбокс",
"linkedProfileTitle": "Signed in to {{server}}",
"linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.",
"manageSync": "Manage sync",
"setUpSync": "Link to a server",
"settingsTabsAndShortcuts": "Tabs and Shortcuts"
}
}
},
"terminalToolbar": {},
"plugins": {
"capabilities": {
"credentials:read": {
"title": "See your passwords and keys",
"consequence": "It can read the stored secret for any host you can reach."
},
"ssh:connect": {
"title": "Run commands on your servers",
"consequence": "Any command, on hosts you connect it to, with your access."
},
"process:spawn": {
"title": "Run programs on this machine",
"consequence": "Programs run on the Termix server itself, not on your hosts."
},
"users:write": {
"title": "Create and change user accounts",
"consequence": "It can add users and change their roles."
},
"auth:provide": {
"title": "Handle sign in",
"consequence": "It can add a login method, a second factor or an SSH sign-in type."
},
"system:tls": {
"title": "Manage certificates",
"consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities."
},
"device:serial": {
"title": "Access serial and USB devices",
"consequence": "It can open a physical serial port on the machine running Termix."
},
"hosts:write": {
"title": "Create and change hosts",
"consequence": "It can add hosts and edit the ones you already have."
},
"credentials:use": {
"title": "Connect to your servers",
"consequence": "It cannot see your passwords or keys."
},
"credentials:write": {
"title": "Save new credentials",
"consequence": "It can add passwords and keys to your saved credentials."
},
"network:outbound": {
"title": "Reach the internet",
"consequence": "It can send requests to outside services."
},
"network:serve": {
"title": "Accept connections",
"consequence": "It opens a port on the Termix server."
},
"network:broadcast": {
"title": "Send network broadcasts",
"consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal."
},
"users:read": {
"title": "See usernames and roles",
"consequence": "Never password hashes, never two factor state."
},
"events:core": {
"title": "Watch everything happening",
"consequence": "Including activity from other users, not just yours."
},
"notify:send": {
"title": "Send alerts",
"consequence": "To you or other users, and through the channels they set up."
},
"notify:hub": {
"title": "Receive every alert",
"consequence": "Stores and delivers the alerts all plugins send, including their contents."
},
"audit:read": {
"title": "Read the audit log",
"consequence": "It can see who did what and when."
},
"desktop:window": {
"title": "Open desktop windows",
"consequence": "Only in the Termix desktop app."
},
"users:impersonate": {
"title": "Act as other users",
"consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log."
},
"db:core-refs": {
"title": "Read core account tables",
"consequence": "Can query users, roles and hosts directly from the database."
},
"hosts:read": {
"title": "See your host list",
"consequence": "Names and addresses for hosts you can already see."
},
"db:own": {
"title": "Store its own data",
"consequence": "Kept in its own tables, separate from other plugins."
},
"kv:own": {
"title": "Remember small settings",
"consequence": "Kept separate from other plugins."
},
"files:own": {
"title": "Store its own files",
"consequence": "In its own folder on disk, separate from other plugins."
},
"secrets:own": {
"title": "Store its own secrets",
"consequence": "Encrypted by Termix. The plugin never holds the key."
},
"settings:read-core": {
"title": "Read Termix settings",
"consequence": "Server settings, not your hosts or credentials."
},
"plugins:read": {
"title": "See installed features",
"consequence": "It can see which features are installed and running."
},
"ui:surface": {
"title": "Add its own screens",
"consequence": "Tabs, panels and settings you can hide later."
}
},
"runtime": {
"needsPlugin": "{{name}} is not available",
"needsUnknownPlugin": "This feature is not available",
"disabledHint": "It is turned off on this server.",
"missingHint": "The feature it came from has been removed.",
"failed": "{{name}} could not start",
"failedHint": "An admin can check the server logs for details.",
"loading": "Loading {{name}}",
"crashed": "Something went wrong in {{name}}",
"retry": "Try again"
}
},
"settings": {
"secretSet": "Set",
"secretNotSet": "Not set",
"secretReplace": "Replace",
"pluginSettingsSaved": "Settings saved",
"pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.",
"pluginSettingsSaveFailed": "Failed to save settings",
"pluginSettingsLoadFailed": "Failed to load settings",
"featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect."
},
"managerCard": {
"refresh": "Refresh",
"retry": "Retry",
"sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.",
"noData": "No data",
"filter": "Filter..."
},
"sync": {
"server": "Termix server",
"account": "Account",
"status": "Status",
"never": "never",
"justNow": "just now",
"minutesAgo_one": "{{count}} minute ago",
"minutesAgo_other": "{{count}} minutes ago",
"hoursAgo_one": "{{count}} hour ago",
"hoursAgo_other": "{{count}} hours ago",
"actionFailed": "That did not work. Try again.",
"unlinkedTitle": "This device only",
"unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.",
"unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.",
"unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.",
"unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.",
"linkButton": "Link to a server",
"state": {
"syncing": "Syncing",
"offline": "Server not reachable",
"error": "Sync stopped",
"signedOut": "Signed out",
"synced": "Synced {{time}}"
},
"pending_one": "{{count}} change waiting to sync",
"pending_other": "{{count}} changes waiting to sync",
"signInAgain": "Sign in again",
"syncNow": "Sync now",
"unlink": "Unlink",
"unlinked": "This device is no longer linked",
"unlinkTitle": "Unlink this device?",
"unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.",
"unlinkKeepTitle": "Keep my data here",
"unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.",
"unlinkRemoveTitle": "Remove synced data",
"unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.",
"conflictsTitle": "Conflicts",
"conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.",
"keepMine": "Keep mine",
"keepServer": "Keep server",
"errorsTitle": "Not synced",
"errorsDescription": "The server did not accept these changes. They stay on this device.",
"errorPermission": "Your account on the server is not allowed to make this change.",
"retry": "Try again",
"whatSyncs": "What syncs",
"whatSyncsDescription": "Turn off anything you want to keep on this device only.",
"coreGroup": "Termix",
"notOnServer": "The server does not have this",
"notOnDevice": "Not on this device yet",
"localOnlyHint": "You can also keep single hosts or folders on this device from their settings.",
"originTitle": "Where connections start",
"originDescription": "Connect to hosts from this device, or through the server. You can change this per host.",
"originLocal": "This device",
"originRemote": "The server",
"entities": {
"hosts": "Hosts",
"sshCredentials": "Credentials",
"sshFolders": "Folders",
"userPreferences": "Preferences",
"pluginUserSettings": "Feature settings",
"sharedHosts": "Hosts shared with you",
"sharedCredentials": "Credentials shared with you",
"vaultProfiles": "Vault profiles",
"snippetFolders": "Snippet folders",
"snippets": "Snippets",
"dashboardServiceLinks": "Service links",
"homepageItems": "Homepage items",
"networkTopology": "Network map",
"workspaces": "Workspaces"
},
"proxy": {
"title": "Reverse proxy",
"description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.",
"headersTitle": "Extra headers",
"headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.",
"headerName": "Header name",
"headerValue": "Value",
"savedValue": "Saved, type to change",
"addHeader": "Add header",
"removeHeader": "Remove header",
"basicAuthTitle": "Username and password",
"basicAuthHint": "For a proxy that asks for a username and password before Termix.",
"username": "Username",
"password": "Password",
"allowInvalidCertificate": "Trust a self-signed certificate",
"allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.",
"saved": "Saved"
},
"problems": {
"invalidUrl": "That does not look like a web address.",
"unreachable": "Could not reach the server. Check the address and that the server is running.",
"unreachableWithReason": "Could not reach the server: {{reason}}",
"tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.",
"basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.",
"proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.",
"notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.",
"versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.",
"differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first."
},
"wizard": {
"title": "Link to a Termix server",
"reloginTitle": "Sign in again",
"savedServers": "Recent servers",
"removeServer": "Remove from the list",
"serverDescription": "Enter the address you use to open Termix in your browser.",
"signinDescription": "Sign in to {{url}}",
"chooseDescription": "This device already has data. What should happen to it?",
"finishingDescription": "Linking this device.",
"serverUrl": "Server address",
"serverUrlHint": "For example https://termix.example.com",
"showProxySettings": "Reverse proxy settings",
"hideProxySettings": "Hide reverse proxy settings",
"continue": "Continue",
"back": "Back",
"mergeTitle": "Add it to my account",
"mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.",
"replaceTitle": "Replace it with my account",
"replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.",
"link": "Link",
"linking": "Linking and running the first sync...",
"linked": "Linked. Your data is syncing now.",
"signedInAgain": "Signed in. Sync is running again."
}
},
"hostDefaults": {
"source": {
"folder": "Folder {{name}}",
"user": "My defaults",
"admin": "Server",
"builtin": "Built-in"
},
"custom": "Custom",
"setHere": "Set here",
"notSet": "Not set",
"notSetTitle": "No default is set for this",
"resetTitle": "This host sets its own value. Click to use the default from {{source}} again",
"clearTitle": "Set at this level. Click to clear it and use {{source}} instead",
"inheritedTitle": "Follows the default from {{source}}",
"titleAdmin": "Server host defaults",
"titleUser": "My host defaults",
"titleFolder": "Folder defaults: {{name}}",
"descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.",
"descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.",
"descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.",
"save": "Save defaults",
"saved_one": "Defaults saved. {{count}} host was updated.",
"saved_other": "Defaults saved. {{count}} hosts were updated.",
"savedInBackground": "Defaults saved. Hosts are being updated in the background.",
"appliedToHosts_one": "{{count}} host was updated with the new defaults.",
"appliedToHosts_other": "{{count}} hosts were updated with the new defaults.",
"saveFailed": "Could not save the defaults",
"loadFailed": "Could not load the defaults",
"confirmTitle": "Save defaults?",
"confirmChanges_one": "{{count}} host follows these defaults and will change.",
"confirmChanges_other": "{{count}} hosts follow these defaults and will change.",
"confirmNoChanges": "No existing host changes. New hosts will start with these defaults.",
"menuMyDefaults": "My host defaults",
"folderDefaultsAction": "Folder defaults",
"adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.",
"editServerDefaults": "Edit server defaults",
"resetMenu": "Reset",
"resetAll": "Everything to defaults",
"resetCore": "Connection and SSH to defaults",
"resetDone_one": "{{count}} host now follows its defaults.",
"resetDone_other": "{{count}} hosts now follow their defaults."
}
}