mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-31 15:45:23 +00:00
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>
This commit is contained in:
4405 files changed
+1341026
-289722
No files matched your search
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Save",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancel",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Bekyk outomatisasies",
|
||||
"description": "Sien die outomatisasies en hul geskiedenis."
|
||||
},
|
||||
"create": {
|
||||
"title": "Skep outomatisasies",
|
||||
"description": "Voeg nuwe outomatisasies by."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Wysig outomatisasies",
|
||||
"description": "Verander bestaande outomatisasies."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Vee outomatisasies uit",
|
||||
"description": "Verwyder outomatisasies."
|
||||
},
|
||||
"run": {
|
||||
"title": "Voer outomatisasies uit",
|
||||
"description": "Aktiveer 'n outomatisering met die hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Outomatisasies",
|
||||
"tabAutomations": "Outomatisasies",
|
||||
"tabRuns": "Loopbane",
|
||||
"tabChannels": "Kanale",
|
||||
"createAutomation": "Nuwe Outomatisering",
|
||||
"backToAutomations": "Terug na Outomatisasies",
|
||||
"createTitle": "Nuwe Outomatisering",
|
||||
"editTitle": "Wysig Outomatisering",
|
||||
"empty": "Geen outomatisasies nog nie. Skep een om op 'n maatstaf, 'n skedule of 'n gebeurtenis te reageer.",
|
||||
"emptyRuns": "Geen lopies nog nie.",
|
||||
"channelsHint": "Kanale word in Waarskuwings opgestel",
|
||||
"noChannelsHint": "Die waarskuwing gaan altyd na jou inboks. Voeg kanale by Waarskuwings om dit ook elders te stuur.",
|
||||
"nameLabel": "Naam",
|
||||
"namePlaceholder": "bv. Maak /data skoon wanneer dit vol is",
|
||||
"nameRequired": "Naam word vereis",
|
||||
"descriptionLabel": "Beskrywing",
|
||||
"descriptionPlaceholder": "Opsionele beskrywing",
|
||||
"enabledLabel": "Geaktiveer",
|
||||
"concurrencyLabel": "As dit reeds aan die gang is",
|
||||
"concurrencyHint": "Wat om te doen wanneer dit weer geaktiveer word voordat die laaste lopie klaar is.",
|
||||
"concurrency": {
|
||||
"skip": "Slaan die nuwe lopie oor",
|
||||
"queue": "Wag en hardloop agterna",
|
||||
"allow": "Begin albei gelyktydig"
|
||||
},
|
||||
"save": "Stoor",
|
||||
"created": "Outomatisering geskep",
|
||||
"updated": "Outomatisering gestoor",
|
||||
"deleted": "Outomatisering uitgevee",
|
||||
"deleteConfirm": "Vee hierdie outomatisering uit? Die loopgeskiedenis daarvan word ook uitgevee.",
|
||||
"runNow": "Hardloop nou",
|
||||
"testRun": "Toetslopie",
|
||||
"testRunHint": "Loop elke stap, maar raak niks buite Termix aan nie.",
|
||||
"runStarted": "Loop het begin",
|
||||
"runFinished": "Loop voltooi: {{status}}",
|
||||
"trigger": "Sneller",
|
||||
"steps": "Stappe",
|
||||
"addStep": "Voeg stap by",
|
||||
"removeStep": "Verwyder stap",
|
||||
"moveUp": "Beweeg op",
|
||||
"moveDown": "Beweeg af",
|
||||
"noSteps": "Geen stappe nog nie. Voeg een by om te sê wat moet gebeur.",
|
||||
"webhookTokenTitle": "Webhook-URL",
|
||||
"webhookTokenDescription": "Dit word een keer gewys. Stoor dit nou, dit kan nie later herwin word nie.",
|
||||
"copy": "Kopieer",
|
||||
"copied": "Gekopieer",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Bouer",
|
||||
"viewGraph": "Grafiek",
|
||||
"lastRun": "Laaste lopie",
|
||||
"never": "Nooit",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Uitset",
|
||||
"stepError": "Fout",
|
||||
"dryRunBadge": "Toetslopie",
|
||||
"hostSelector": {
|
||||
"trigger": "Aanvallende gasheer",
|
||||
"host": "Spesifieke gasheer",
|
||||
"fleet": "Vloot",
|
||||
"all": "Alle gashere"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metrieke drempel",
|
||||
"host_status": "Gasheer gaan op of af",
|
||||
"health_check": "Veranderinge in gesondheidstoetse",
|
||||
"schedule": "Op 'n skedule",
|
||||
"docker_event": "Houergebeurtenis",
|
||||
"internal_event": "Termix-geleentheid",
|
||||
"webhook": "Inkomende webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Stuur 'n waarskuwing",
|
||||
"http": "Roep 'n URL op",
|
||||
"run_snippet": "Voer 'n brokkie uit",
|
||||
"run_command": "Voer 'n opdrag uit",
|
||||
"docker": "Beheer 'n houer",
|
||||
"tunnel": "Beheer 'n tonnel",
|
||||
"wol": "Maak 'n gasheer wakker",
|
||||
"wait": "Wag",
|
||||
"set_var": "Stel 'n veranderlike",
|
||||
"if": "Indien / andersins",
|
||||
"run_automation": "Begin nog 'n outomatisering",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Hardloop",
|
||||
"success": "Sukses",
|
||||
"failed": "Misluk",
|
||||
"timeout": "Tyd verstryk",
|
||||
"skipped": "Oorgeslaan",
|
||||
"cancelled": "Gekanselleer"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Gasheer",
|
||||
"metric": "Metrieke",
|
||||
"mount": "Monteerpunt",
|
||||
"operator": "Is",
|
||||
"value": "Waarde",
|
||||
"forSeconds": "Aangehou vir (sekondes)",
|
||||
"cooldown": "Afkoeltyd (minute)",
|
||||
"cron": "Cron-uitdrukking",
|
||||
"intervalSeconds": "Elke (sekondes)",
|
||||
"timezone": "Tydsone",
|
||||
"timezoneServer": "Bedienertyd",
|
||||
"timezoneHint": "Cron-tye word in hierdie sone gelees. Geld nie vir intervalskedules nie.",
|
||||
"container": "Houer",
|
||||
"command": "Bevel",
|
||||
"url": "URL",
|
||||
"method": "Metode",
|
||||
"body": "Liggaam",
|
||||
"channels": "Stuur ook na",
|
||||
"title": "Titel",
|
||||
"message": "Boodskap",
|
||||
"snippet": "Brokkie",
|
||||
"seconds": "Sekondes",
|
||||
"conditionLeftPlaceholder": "Waarde om na te gaan",
|
||||
"conditionRightPlaceholder": "Vergelyk teen",
|
||||
"variableName": "Veranderlike naam",
|
||||
"variableValue": "Waarde",
|
||||
"elevated": "Begin met sudo",
|
||||
"onError": "As dit misluk",
|
||||
"allowPrivateNetwork": "Laat plaaslike netwerkadresse toe",
|
||||
"allowPrivateNetworkHint": "Nodig vir 'n selfgehoste diens op jou LAN. Standaard afgeskakel om versoeke na interne adresse te voorkom."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop die hardloop",
|
||||
"continue": "Gaan voort"
|
||||
},
|
||||
"needsPlugin": "Benodig {{plugin}}",
|
||||
"needsPluginHint": "Hierdie outomatisering word oorgeslaan totdat die funksie wat dit benodig weer beskikbaar is.",
|
||||
"offBadge": "Af",
|
||||
"docsLink": "Bekyk dokumente",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s gelede",
|
||||
"minutes": "{{count}}m gelede",
|
||||
"hours": "{{count}}uur gelede",
|
||||
"days": "{{count}}dae gelede"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Outomatisasies"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Outomatisasies",
|
||||
"feature_automations_desc": "Voer stappe outomaties uit wanneer iets gebeur, en word in kennis gestel."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Onderhoud",
|
||||
"description": "Onderbreek gasheerstatus, gesondheid, metrieke, houer- en tonnel-ontkoppelingsoutomatisasies terwyl werk aan die gang is. Monitering, handmatige lopies en geskeduleerde outomatisasies gaan voort.",
|
||||
"denied": "Jy het nie toestemming om onderhoud te sien nie.",
|
||||
"sharedReadOnly": "Hierdie gasheer is met jou gedeel. Slegs die eienaar kan die onderhoud verander.",
|
||||
"failed": "Onderhoud kon nie opgedateer word nie.",
|
||||
"active": "Onderhoud aktief",
|
||||
"estimated": "Geraamde voltooiing",
|
||||
"noAutoEnd": "Die skatting beëindig nie onderhoud nie. Beëindig dit eksplisiet wanneer die werk voltooi is.",
|
||||
"endConfirm": "Beëindig onderhoud en hervat gebeurtenis-geaktiveerde outomatisasies vir hierdie gasheer?",
|
||||
"confirmEnd": "Bevestig einde",
|
||||
"cancel": "Kanselleer",
|
||||
"end": "Einde van onderhoud",
|
||||
"action": "Aksie",
|
||||
"startNow": "Begin nou",
|
||||
"schedule": "Skeduleer vir later",
|
||||
"reason": "Rede",
|
||||
"startUtc": "Eerste begin (UTC)",
|
||||
"repeat": "Herhaal",
|
||||
"once": "Eens",
|
||||
"weekly": "Weekliks",
|
||||
"monthly": "Maandeliks",
|
||||
"utcHelp": "Skedules gebruik UTC dwarsdeur die jaar. Maandelikse skedules slaan maande oor sonder die gekose dag. Beplande vensters kan nie oorvleuel nie; oorskrydende onderhoud gaan voort oor latere vensters.",
|
||||
"duration": "Geraamde duur (minute)",
|
||||
"grace": "Genadetydperk (minute)",
|
||||
"notify": "Stel een keer in kennis indien steeds vanlyn na die skatting plus grasietydperk",
|
||||
"addSchedule": "Voeg skedule by",
|
||||
"schedules": "Skedules",
|
||||
"noSchedules": "Geen onderhoudskedules nie.",
|
||||
"completed": "Reeds begin",
|
||||
"minutes_one": "{{count}} minuut",
|
||||
"minutes_other": "{{count}} minute",
|
||||
"remove": "Verwyder skedule",
|
||||
"loadFailed": "Kon nie onderhoudstatus verfris nie. Veranderinge is gedeaktiveer totdat dit gelaai kan word.",
|
||||
"loading": "Laai onderhoudstatus…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "عرض عمليات التشغيل الآلي",
|
||||
"description": "اطلع على أنظمة التشغيل الآلي وتاريخها."
|
||||
},
|
||||
"create": {
|
||||
"title": "إنشاء عمليات أتمتة",
|
||||
"description": "أضف عمليات أتمتة جديدة."
|
||||
},
|
||||
"edit": {
|
||||
"title": "تحرير عمليات التشغيل الآلي",
|
||||
"description": "قم بتغيير أنظمة التشغيل الآلي الحالية."
|
||||
},
|
||||
"delete": {
|
||||
"title": "حذف عمليات التشغيل الآلي",
|
||||
"description": "إزالة العمليات الآلية."
|
||||
},
|
||||
"run": {
|
||||
"title": "تشغيل عمليات التشغيل الآلي",
|
||||
"description": "قم بتشغيل عملية أتمتة يدوياً."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "الأتمتة",
|
||||
"tabAutomations": "الأتمتة",
|
||||
"tabRuns": "يركض",
|
||||
"tabChannels": "القنوات",
|
||||
"createAutomation": "الأتمتة الجديدة",
|
||||
"backToAutomations": "العودة إلى الأتمتة",
|
||||
"createTitle": "الأتمتة الجديدة",
|
||||
"editTitle": "أتمتة التحرير",
|
||||
"empty": "لا توجد عمليات أتمتة حتى الآن. أنشئ واحدة للتفاعل مع مقياس أو جدول زمني أو حدث.",
|
||||
"emptyRuns": "لم يتم تسجيل أي نقاط حتى الآن.",
|
||||
"channelsHint": "يتم إعداد القنوات في قسم التنبيهات",
|
||||
"noChannelsHint": "تصل التنبيهات دائمًا إلى بريدك الوارد. أضف قنوات في قسم التنبيهات لإرسالها إلى مكان آخر أيضًا.",
|
||||
"nameLabel": "الاسم",
|
||||
"namePlaceholder": "مثال: تنظيف /data عند امتلائها",
|
||||
"nameRequired": "الاسم مطلوب",
|
||||
"descriptionLabel": "الوصف",
|
||||
"descriptionPlaceholder": "وصف اختياري",
|
||||
"enabledLabel": "مُمكّن",
|
||||
"concurrencyLabel": "إذا كان قيد التشغيل بالفعل",
|
||||
"concurrencyHint": "ماذا نفعل عندما يتم تشغيل هذا مرة أخرى قبل انتهاء التشغيل الأخير؟",
|
||||
"concurrency": {
|
||||
"skip": "تخطَّ الجولة الجديدة",
|
||||
"queue": "انتظر واركض خلفه",
|
||||
"allow": "قم بتشغيل كليهما في وقت واحد"
|
||||
},
|
||||
"save": "حفظ",
|
||||
"created": "تم إنشاء الأتمتة",
|
||||
"updated": "تم حفظ الأتمتة",
|
||||
"deleted": "تم حذف الأتمتة",
|
||||
"deleteConfirm": "هل تريد حذف هذه العملية الآلية؟ سيتم حذف سجل تشغيلها أيضاً.",
|
||||
"runNow": "انطلق الآن",
|
||||
"testRun": "تشغيل تجريبي",
|
||||
"testRunHint": "يقوم بتنفيذ كل خطوة ولكنه لا يلمس أي شيء خارج Termix.",
|
||||
"runStarted": "بدأ الجري",
|
||||
"runFinished": "انتهى التشغيل: {{status}}",
|
||||
"trigger": "المشغّل",
|
||||
"steps": "خطوات",
|
||||
"addStep": "خطوات إضافية",
|
||||
"removeStep": "خطوة الإزالة",
|
||||
"moveUp": "انتقل إلى مستوى أعلى",
|
||||
"moveDown": "انزل لأسفل",
|
||||
"noSteps": "لم تُتخذ أي خطوات بعد. أضف خطوة واحدة لتوضيح ما ينبغي أن يحدث.",
|
||||
"webhookTokenTitle": "رابط الويب هوك",
|
||||
"webhookTokenDescription": "هذا يظهر مرة واحدة فقط. احفظه الآن، فلن تتمكن من استعادته لاحقاً.",
|
||||
"copy": "نسخ",
|
||||
"copied": "تم النسخ",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "باني",
|
||||
"viewGraph": "الرسم البياني",
|
||||
"lastRun": "الجولة الأخيرة",
|
||||
"never": "أبدًا",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "المخرجات",
|
||||
"stepError": "خطأ",
|
||||
"dryRunBadge": "تشغيل تجريبي",
|
||||
"hostSelector": {
|
||||
"trigger": "تشغيل المضيف",
|
||||
"host": "مضيف محدد",
|
||||
"fleet": "أسطول",
|
||||
"all": "جميع المضيفين"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "العتبة المترية",
|
||||
"host_status": "يرتفع أو ينخفض مستوى المضيف",
|
||||
"health_check": "تغييرات في الفحص الصحي",
|
||||
"schedule": "وفقًا لجدول زمني",
|
||||
"docker_event": "حدث الحاوية",
|
||||
"internal_event": "حدث تيرميكس",
|
||||
"webhook": "رابط الويب الوارد"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "إرسال تنبيه",
|
||||
"http": "استدعاء عنوان URL",
|
||||
"run_snippet": "قم بتشغيل جزء من التعليمات البرمجية",
|
||||
"run_command": "نفّذ أمرًا",
|
||||
"docker": "التحكم في حاوية",
|
||||
"tunnel": "التحكم في نفق",
|
||||
"wol": "أيقظ مضيفًا",
|
||||
"wait": "انتظر",
|
||||
"set_var": "قم بتعيين متغير",
|
||||
"if": "إذا / خلاف ذلك",
|
||||
"run_automation": "قم بتشغيل عملية أتمتة أخرى",
|
||||
"stop": "التوقف"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "قيد التشغيل",
|
||||
"success": "نجاح",
|
||||
"failed": "فشل",
|
||||
"timeout": "انتهت مهلة الاتصال",
|
||||
"skipped": "تم التخطي",
|
||||
"cancelled": "تم الإلغاء"
|
||||
},
|
||||
"fields": {
|
||||
"host": "المضيف",
|
||||
"metric": "المقياس",
|
||||
"mount": "نقطة التثبيت",
|
||||
"operator": "يكون",
|
||||
"value": "قيمة",
|
||||
"forSeconds": "استمر لمدة (ثوانٍ)",
|
||||
"cooldown": "فترة التهدئة (بالدقائق)",
|
||||
"cron": "تعبير كرون",
|
||||
"intervalSeconds": "كل (ثانية)",
|
||||
"timezone": "المنطقة الزمنية",
|
||||
"timezoneServer": "وقت الخادم",
|
||||
"timezoneHint": "تُقرأ أوقات Cron في هذه المنطقة. لا ينطبق ذلك على الجداول الزمنية الفاصلة.",
|
||||
"container": "حاوية",
|
||||
"command": "الأمر",
|
||||
"url": "URL",
|
||||
"method": "طريقة",
|
||||
"body": "جسم",
|
||||
"channels": "أرسل أيضًا إلى",
|
||||
"title": "العنوان",
|
||||
"message": "رسالة",
|
||||
"snippet": "مقتطف",
|
||||
"seconds": "ثوانٍ",
|
||||
"conditionLeftPlaceholder": "قيمة يجب التحقق منها",
|
||||
"conditionRightPlaceholder": "قارن بـ",
|
||||
"variableName": "اسم المتغير",
|
||||
"variableValue": "قيمة",
|
||||
"elevated": "قم بتشغيل الأمر sudo",
|
||||
"onError": "إذا فشل هذا",
|
||||
"allowPrivateNetwork": "السماح بعناوين الشبكة المحلية",
|
||||
"allowPrivateNetworkHint": "هذا الخيار ضروري لخدمة مُستضافة ذاتيًا على شبكتك المحلية. وهو مُعطّل افتراضيًا لمنع الطلبات إلى العناوين الداخلية."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "أوقف الجري",
|
||||
"continue": "حمل"
|
||||
},
|
||||
"needsPlugin": "الاحتياجات {{plugin}}",
|
||||
"needsPluginHint": "يتم تخطي هذه العملية الآلية حتى تصبح الميزة التي تحتاجها متاحة مرة أخرى.",
|
||||
"offBadge": "غير مفعلة",
|
||||
"docsLink": "عرض المستندات",
|
||||
"ago": {
|
||||
"seconds": "{{count}}منذ ثانية",
|
||||
"minutes": "قبل {{count}}m",
|
||||
"hours": "قبل {{count}}h",
|
||||
"days": "قبل {{count}}d"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "الأتمتة"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "الأتمتة",
|
||||
"feature_automations_desc": "قم بتشغيل الخطوات تلقائيًا عند حدوث شيء ما، واحصل على إشعار بذلك."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "صيانة",
|
||||
"description": "أوقف عمليات أتمتة حالة المضيف، وصحته، ومقاييسه، والحاويات، وفصل الأنفاق مؤقتًا أثناء سير العمل. وتستمر عمليات المراقبة، والتشغيل اليدوي، والأتمتة المجدولة.",
|
||||
"denied": "ليس لديك إذن للاطلاع على أعمال الصيانة.",
|
||||
"sharedReadOnly": "تمت مشاركة هذا المضيف معك. مالكه فقط هو من يستطيع تغيير إعداداته.",
|
||||
"failed": "تعذر تحديث الصيانة.",
|
||||
"active": "الصيانة نشطة",
|
||||
"estimated": "تاريخ الإنجاز المتوقع",
|
||||
"noAutoEnd": "لا يُنهي التقدير أعمال الصيانة. يجب إنهاؤه صراحةً عند اكتمال العمل.",
|
||||
"endConfirm": "هل تريد إنهاء الصيانة واستئناف عمليات التشغيل الآلي التي يتم تشغيلها بواسطة الأحداث لهذا المضيف؟",
|
||||
"confirmEnd": "تأكيد الإنهاء",
|
||||
"cancel": "إلغاء",
|
||||
"end": "إنهاء الصيانة",
|
||||
"action": "الإجراء",
|
||||
"startNow": "ابدأ الآن",
|
||||
"schedule": "جدولة لاحقاً",
|
||||
"reason": "سبب",
|
||||
"startUtc": "بداية التشغيل الأولى (UTC)",
|
||||
"repeat": "يكرر",
|
||||
"once": "مرة واحدة",
|
||||
"weekly": "أسبوعي",
|
||||
"monthly": "شهريا",
|
||||
"utcHelp": "تستخدم الجداول الزمنية التوقيت العالمي المنسق (UTC) على مدار العام. وتتخطى الجداول الشهرية الأشهر التي لا تتضمن اليوم المحدد. ولا يمكن أن تتداخل فترات التخطيط؛ إذ تستمر أعمال الصيانة المتأخرة خلال الفترات اللاحقة.",
|
||||
"duration": "المدة المقدرة (بالدقائق)",
|
||||
"grace": "فترة السماح (بالدقائق)",
|
||||
"notify": "قم بالإخطار مرة واحدة إذا كنت لا تزال غير متصل بالإنترنت بعد الفترة التقديرية بالإضافة إلى فترة السماح",
|
||||
"addSchedule": "إضافة جدول",
|
||||
"schedules": "الجداول الزمنية",
|
||||
"noSchedules": "لا توجد جداول صيانة.",
|
||||
"completed": "ابدأ بالفعل",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} دقائق",
|
||||
"remove": "إزالة الجدول الزمني",
|
||||
"loadFailed": "تعذر تحديث حالة الصيانة. التغييرات معطلة حتى يتم تحميلها.",
|
||||
"loading": "جارٍ تحميل حالة الصيانة…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Преглед на автоматизациите",
|
||||
"description": "Вижте автоматизациите и тяхната история."
|
||||
},
|
||||
"create": {
|
||||
"title": "Създаване на автоматизации",
|
||||
"description": "Добавете нови автоматизации."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Редактиране на автоматизации",
|
||||
"description": "Променете съществуващите автоматизации."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Изтриване на автоматизации",
|
||||
"description": "Премахнете автоматизациите."
|
||||
},
|
||||
"run": {
|
||||
"title": "Изпълнявайте автоматизации",
|
||||
"description": "Задействайте автоматизация ръчно."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Автоматизации",
|
||||
"tabAutomations": "Автоматизации",
|
||||
"tabRuns": "Бягания",
|
||||
"tabChannels": "Канали",
|
||||
"createAutomation": "Нова автоматизация",
|
||||
"backToAutomations": "Обратно към Автоматизации",
|
||||
"createTitle": "Нова автоматизация",
|
||||
"editTitle": "Редактиране на автоматизация",
|
||||
"empty": "Все още няма автоматизации. Създайте такава, която да реагира на показател, график или събитие.",
|
||||
"emptyRuns": "Все още няма бягания.",
|
||||
"channelsHint": "Каналите се настройват в „Известия“",
|
||||
"noChannelsHint": "Сигналът винаги отива във входящата ви поща. Добавете канали в „Сигнали“, за да го изпращате и някъде другаде.",
|
||||
"nameLabel": "Име",
|
||||
"namePlaceholder": "напр. Почистване на /данни, когато се запълни",
|
||||
"nameRequired": "Името е задължително",
|
||||
"descriptionLabel": "Описание",
|
||||
"descriptionPlaceholder": "Незадължително описание",
|
||||
"enabledLabel": "Активирано",
|
||||
"concurrencyLabel": "Ако вече работи",
|
||||
"concurrencyHint": "Какво да направите, когато това се задейства отново, преди да е завършило последното изпълнение.",
|
||||
"concurrency": {
|
||||
"skip": "Пропуснете новото бягане",
|
||||
"queue": "Изчакай и бягай след това",
|
||||
"allow": "Изпълнете и двете едновременно"
|
||||
},
|
||||
"save": "Запазване",
|
||||
"created": "Автоматизация, създадена",
|
||||
"updated": "Автоматизацията е запазена",
|
||||
"deleted": "Автоматизацията е изтрита",
|
||||
"deleteConfirm": "Да се изтрие ли тази автоматизация? Историята на нейните изпълнения също ще бъде изтрита.",
|
||||
"runNow": "Бягай сега",
|
||||
"testRun": "Тестов пробег",
|
||||
"testRunHint": "Изпълнява всяка стъпка, но не докосва нищо извън Termix.",
|
||||
"runStarted": "Бягането започна",
|
||||
"runFinished": "Изпълнението е завършено: {{status}}",
|
||||
"trigger": "Спусък",
|
||||
"steps": "Стъпки",
|
||||
"addStep": "Добавяне на стъпка",
|
||||
"removeStep": "Премахване на стъпка",
|
||||
"moveUp": "Премести нагоре",
|
||||
"moveDown": "Премести надолу",
|
||||
"noSteps": "Все още няма стъпки. Добавете една, за да кажете какво трябва да се случи.",
|
||||
"webhookTokenTitle": "URL адрес на уебкукичката",
|
||||
"webhookTokenDescription": "Това се показва веднъж. Запазете го сега, не може да бъде извлечено по-късно.",
|
||||
"copy": "Копиране",
|
||||
"copied": "Копирано",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Строител",
|
||||
"viewGraph": "Графика",
|
||||
"lastRun": "Последно бягане",
|
||||
"never": "Никога",
|
||||
"duration": "{{seconds}}с",
|
||||
"stepOutput": "Изход",
|
||||
"stepError": "Грешка",
|
||||
"dryRunBadge": "Тестов пробег",
|
||||
"hostSelector": {
|
||||
"trigger": "Задействащ хост",
|
||||
"host": "Специфичен хост",
|
||||
"fleet": "Флот",
|
||||
"all": "Всички хостове"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Праг на показателя",
|
||||
"host_status": "Домакинът се изкачва или слиза",
|
||||
"health_check": "Промени в проверката на състоянието",
|
||||
"schedule": "По график",
|
||||
"docker_event": "Събитие в контейнера",
|
||||
"internal_event": "Събитие Termix",
|
||||
"webhook": "Входящ уеб кукичка"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Изпрати сигнал",
|
||||
"http": "Извикване на URL адрес",
|
||||
"run_snippet": "Изпълнете фрагмент",
|
||||
"run_command": "Изпълнете команда",
|
||||
"docker": "Контрол на контейнер",
|
||||
"tunnel": "Контрол на тунел",
|
||||
"wol": "Събудете домакин",
|
||||
"wait": "Чакай",
|
||||
"set_var": "Задаване на променлива",
|
||||
"if": "Ако / в противен случай",
|
||||
"run_automation": "Изпълнете друга автоматизация",
|
||||
"stop": "Спри"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Бягане",
|
||||
"success": "Успех",
|
||||
"failed": "Неуспешно",
|
||||
"timeout": "Времето за изчакване изтече",
|
||||
"skipped": "Пропуснато",
|
||||
"cancelled": "Отменено"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Домакин",
|
||||
"metric": "Метричен",
|
||||
"mount": "Точка на монтиране",
|
||||
"operator": "Е",
|
||||
"value": "Стойност",
|
||||
"forSeconds": "Задържа се за (секунди)",
|
||||
"cooldown": "Охлаждане (минути)",
|
||||
"cron": "Cron израз",
|
||||
"intervalSeconds": "Всеки (секунди)",
|
||||
"timezone": "Часова зона",
|
||||
"timezoneServer": "Време на сървъра",
|
||||
"timezoneHint": "Cron времената се отчитат в тази зона. Не се отнася за интервални графици.",
|
||||
"container": "Контейнер",
|
||||
"command": "Команда",
|
||||
"url": "URL адрес",
|
||||
"method": "Метод",
|
||||
"body": "Тяло",
|
||||
"channels": "Изпрати също до",
|
||||
"title": "Заглавие",
|
||||
"message": "Съобщение",
|
||||
"snippet": "Фрагмент",
|
||||
"seconds": "Секунди",
|
||||
"conditionLeftPlaceholder": "Стойност за проверка",
|
||||
"conditionRightPlaceholder": "Сравнете с",
|
||||
"variableName": "Име на променлива",
|
||||
"variableValue": "Стойност",
|
||||
"elevated": "Стартирай със sudo",
|
||||
"onError": "Ако това не успее",
|
||||
"allowPrivateNetwork": "Разрешаване на локални мрежови адреси",
|
||||
"allowPrivateNetworkHint": "Необходимо за самостоятелно хоствана услуга във вашата локална мрежа. Изключено по подразбиране, за да се предотвратят заявки към вътрешни адреси."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Спрете бягането",
|
||||
"continue": "Продължавай"
|
||||
},
|
||||
"needsPlugin": "Изисква {{plugin}}",
|
||||
"needsPluginHint": "Тази автоматизация се пропуска, докато функцията, от която се нуждае, не стане отново налична.",
|
||||
"offBadge": "Изключено",
|
||||
"docsLink": "Преглед на документи",
|
||||
"ago": {
|
||||
"seconds": "преди {{count}}сек",
|
||||
"minutes": "преди {{count}}мин.",
|
||||
"hours": "преди {{count}}ч",
|
||||
"days": "преди {{count}}дни"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Автоматизации"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Автоматизации",
|
||||
"feature_automations_desc": "Изпълнявайте стъпките автоматично, когато нещо се случи, и получавайте известия."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Поддръжка",
|
||||
"description": "Паузирайте автоматизациите за състоянието на хоста, здравето, метриките, контейнерите и прекъсванията на тунелите, докато работата е в ход. Мониторингът, ръчните изпълнения и планираните автоматизации продължават.",
|
||||
"denied": "Нямате разрешение да преглеждате поддръжката.",
|
||||
"sharedReadOnly": "Този хост беше споделен с вас. Само собственикът му може да променя поддръжката.",
|
||||
"failed": "Поддръжката не можа да бъде актуализирана.",
|
||||
"active": "Поддръжката е активна",
|
||||
"estimated": "Очаквано завършване",
|
||||
"noAutoEnd": "Оценката не прекратява поддръжката. Прекратете я изрично, когато работата е завършена.",
|
||||
"endConfirm": "Да се прекрати ли поддръжката и да се възобновят автоматизациите, задействани от събития, за този хост?",
|
||||
"confirmEnd": "Потвърждаване на края",
|
||||
"cancel": "Отказ",
|
||||
"end": "Край на поддръжката",
|
||||
"action": "Действие",
|
||||
"startNow": "Започнете сега",
|
||||
"schedule": "Планирайте за по-късно",
|
||||
"reason": "Причина",
|
||||
"startUtc": "Първо стартиране (UTC)",
|
||||
"repeat": "Повторете",
|
||||
"once": "Веднъж",
|
||||
"weekly": "Седмично",
|
||||
"monthly": "Месечно",
|
||||
"utcHelp": "Графиците използват UTC през цялата година. Месечните графици пропускат месеците без избрания ден. Планираните прозорци не могат да се припокриват; превишаването на поддръжката продължава и през по-късни прозорци.",
|
||||
"duration": "Очаквана продължителност (минути)",
|
||||
"grace": "Гратисен период (минути)",
|
||||
"notify": "Уведомявай веднъж, ако все още си офлайн след прогнозната цена плюс гратисен период",
|
||||
"addSchedule": "Добавяне на график",
|
||||
"schedules": "Разписания",
|
||||
"noSchedules": "Няма графици за поддръжка.",
|
||||
"completed": "Вече започна",
|
||||
"minutes_one": "{{count}} минута",
|
||||
"minutes_other": "{{count}} минути",
|
||||
"remove": "Премахване на графика",
|
||||
"loadFailed": "Не можа да се обнови състоянието на поддръжката. Промените са деактивирани, докато не може да бъде заредено.",
|
||||
"loading": "Зареждане на състоянието на поддръжката…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Save",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancel",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Veure automatitzacions",
|
||||
"description": "Vegeu les automatitzacions i el seu historial."
|
||||
},
|
||||
"create": {
|
||||
"title": "Crea automatitzacions",
|
||||
"description": "Afegiu noves automatitzacions."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edita automatitzacions",
|
||||
"description": "Canviar les automatitzacions existents."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Suprimeix automatitzacions",
|
||||
"description": "Eliminar automatitzacions."
|
||||
},
|
||||
"run": {
|
||||
"title": "Executar automatitzacions",
|
||||
"description": "Activa una automatització manualment."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatitzacions",
|
||||
"tabAutomations": "Automatitzacions",
|
||||
"tabRuns": "Carreres",
|
||||
"tabChannels": "Canals",
|
||||
"createAutomation": "Nova automatització",
|
||||
"backToAutomations": "Torna a Automatitzacions",
|
||||
"createTitle": "Nova automatització",
|
||||
"editTitle": "Edita l'automatització",
|
||||
"empty": "Encara no hi ha automatitzacions. Crea'n una per reaccionar a una mètrica, una programació o un esdeveniment.",
|
||||
"emptyRuns": "Encara no hi ha curses.",
|
||||
"channelsHint": "Els canals es configuren a Alertes",
|
||||
"noChannelsHint": "L'alerta sempre va a la teva safata d'entrada. Afegeix canals a Alertes per enviar-la també a un altre lloc.",
|
||||
"nameLabel": "Nom",
|
||||
"namePlaceholder": "p. ex., Neteja /dades quan s'ompli",
|
||||
"nameRequired": "El nom és obligatori",
|
||||
"descriptionLabel": "Descripció",
|
||||
"descriptionPlaceholder": "Descripció opcional",
|
||||
"enabledLabel": "Activat",
|
||||
"concurrencyLabel": "Si ja està en funcionament",
|
||||
"concurrencyHint": "Què cal fer quan això es torna a activar abans que s'hagi acabat l'última execució.",
|
||||
"concurrency": {
|
||||
"skip": "Omet la nova cursa",
|
||||
"queue": "Espera i corre darrere",
|
||||
"allow": "Executa tots dos alhora"
|
||||
},
|
||||
"save": "Desa",
|
||||
"created": "Automatització creada",
|
||||
"updated": "Automatització desada",
|
||||
"deleted": "Automatització suprimida",
|
||||
"deleteConfirm": "Voleu suprimir aquesta automatització? També se n'esborra l'historial d'execucions.",
|
||||
"runNow": "Executa ara",
|
||||
"testRun": "Prova de funcionament",
|
||||
"testRunHint": "Corre cada pas però no toca res fora de Termix.",
|
||||
"runStarted": "Execució iniciada",
|
||||
"runFinished": "Execució acabada: {{status}}",
|
||||
"trigger": "Disparador",
|
||||
"steps": "Passos",
|
||||
"addStep": "Afegeix un pas",
|
||||
"removeStep": "Elimina el pas",
|
||||
"moveUp": "Puja",
|
||||
"moveDown": "Moure cap avall",
|
||||
"noSteps": "Encara no hi ha cap pas. Afegeix-ne un per indicar què hauria de passar.",
|
||||
"webhookTokenTitle": "URL del webhook",
|
||||
"webhookTokenDescription": "Això es mostra una vegada. Desa-ho ara, no es podrà recuperar més tard.",
|
||||
"copy": "Còpia",
|
||||
"copied": "Copiat",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Constructor",
|
||||
"viewGraph": "Gràfic",
|
||||
"lastRun": "Última cursa",
|
||||
"never": "Mai",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Sortida",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Prova de funcionament",
|
||||
"hostSelector": {
|
||||
"trigger": "Host activador",
|
||||
"host": "Amfitrió específic",
|
||||
"fleet": "Flota",
|
||||
"all": "Tots els amfitrions"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Llindar mètric",
|
||||
"host_status": "L'amfitrió puja o baixa",
|
||||
"health_check": "Canvis en la revisió de salut",
|
||||
"schedule": "En un horari",
|
||||
"docker_event": "Esdeveniment de contenidor",
|
||||
"internal_event": "Esdeveniment de Termix",
|
||||
"webhook": "Webhook entrant"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Enviar una alerta",
|
||||
"http": "Crida a una URL",
|
||||
"run_snippet": "Executa un fragment",
|
||||
"run_command": "Executa una ordre",
|
||||
"docker": "Controlar un contenidor",
|
||||
"tunnel": "Controlar un túnel",
|
||||
"wol": "Despertar un amfitrió",
|
||||
"wait": "Espera",
|
||||
"set_var": "Defineix una variable",
|
||||
"if": "Si / altrament",
|
||||
"run_automation": "Executa una altra automatització",
|
||||
"stop": "Atura"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Córrer",
|
||||
"success": "Èxit",
|
||||
"failed": "Fallat",
|
||||
"timeout": "Temps d'espera esgotat",
|
||||
"skipped": "Omès",
|
||||
"cancelled": "Cancel·lat"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Amfitrió",
|
||||
"metric": "Mètrica",
|
||||
"mount": "Punt de muntatge",
|
||||
"operator": "És",
|
||||
"value": "Valor",
|
||||
"forSeconds": "Sostingut durant (segons)",
|
||||
"cooldown": "Refredament (minuts)",
|
||||
"cron": "Expressió cron",
|
||||
"intervalSeconds": "Cada (segons)",
|
||||
"timezone": "Zona horària",
|
||||
"timezoneServer": "Hora del servidor",
|
||||
"timezoneHint": "Els temps cron es llegeixen en aquesta zona. No s'aplica a les programacions per intervals.",
|
||||
"container": "Contenidor",
|
||||
"command": "Comandament",
|
||||
"url": "URL",
|
||||
"method": "Mètode",
|
||||
"body": "Cos",
|
||||
"channels": "També envia a",
|
||||
"title": "Títol",
|
||||
"message": "Missatge",
|
||||
"snippet": "Fragment",
|
||||
"seconds": "Segons",
|
||||
"conditionLeftPlaceholder": "Valor a comprovar",
|
||||
"conditionRightPlaceholder": "Comparar amb",
|
||||
"variableName": "Nom de la variable",
|
||||
"variableValue": "Valor",
|
||||
"elevated": "Executar amb sudo",
|
||||
"onError": "Si això falla",
|
||||
"allowPrivateNetwork": "Permetre adreces de xarxa locals",
|
||||
"allowPrivateNetworkHint": "Necessari per a un servei autoallotjat a la vostra LAN. Desactivat per defecte per evitar sol·licituds a adreces internes."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Atura la cursa",
|
||||
"continue": "Continua"
|
||||
},
|
||||
"needsPlugin": "Necessita {{plugin}}",
|
||||
"needsPluginHint": "Aquesta automatització s'omet fins que la funció que necessita torni a estar disponible.",
|
||||
"offBadge": "Desactivat",
|
||||
"docsLink": "Veure documents",
|
||||
"ago": {
|
||||
"seconds": "Fa {{count}}segons",
|
||||
"minutes": "fa {{count}}minuts",
|
||||
"hours": "fa {{count}}h",
|
||||
"days": "fa {{count}}dies"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatitzacions"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatitzacions",
|
||||
"feature_automations_desc": "Executa els passos automàticament quan passi alguna cosa i rep notificacions."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Manteniment",
|
||||
"description": "Pausa les automatitzacions d'estat, salut, mètriques, contenidors i desconnexió de túnels de l'amfitrió mentre la feina està en curs. La supervisió, les execucions manuals i les automatitzacions programades continuen.",
|
||||
"denied": "No teniu permís per veure el manteniment.",
|
||||
"sharedReadOnly": "Aquest amfitrió s'ha compartit amb tu. Només el seu propietari pot canviar el manteniment.",
|
||||
"failed": "No s'ha pogut actualitzar el manteniment.",
|
||||
"active": "Manteniment actiu",
|
||||
"estimated": "Finalització prevista",
|
||||
"noAutoEnd": "El pressupost no finalitza el manteniment. Finalitzeu-lo explícitament quan la feina s'hagi completat.",
|
||||
"endConfirm": "Voleu finalitzar el manteniment i reprendre les automatitzacions activades per esdeveniments per a aquest amfitrió?",
|
||||
"confirmEnd": "Confirma la fi",
|
||||
"cancel": "Cancel·la",
|
||||
"end": "Finalitzar el manteniment",
|
||||
"action": "Acció",
|
||||
"startNow": "Comença ara",
|
||||
"schedule": "Programa per a més tard",
|
||||
"reason": "Raó",
|
||||
"startUtc": "Primer inici (UTC)",
|
||||
"repeat": "Repetir",
|
||||
"once": "Un cop",
|
||||
"weekly": "Setmanal",
|
||||
"monthly": "Mensual",
|
||||
"utcHelp": "Les programacions utilitzen UTC durant tot l'any. Les programacions mensuals salten mesos sense el dia seleccionat. Les finestres planificades no es poden superposar; el manteniment que s'executa de manera excessiva continua a les finestres posteriors.",
|
||||
"duration": "Durada estimada (minuts)",
|
||||
"grace": "Període de gràcia (minuts)",
|
||||
"notify": "Notifica una vegada si encara estàs fora de línia després de l'estimació més el període de gràcia",
|
||||
"addSchedule": "Afegeix una programació",
|
||||
"schedules": "Horaris",
|
||||
"noSchedules": "Sense programes de manteniment.",
|
||||
"completed": "Ja ha començat",
|
||||
"minutes_one": "{{count}} minut",
|
||||
"minutes_other": "{{count}} minuts",
|
||||
"remove": "Elimina la programació",
|
||||
"loadFailed": "No s'ha pogut actualitzar l'estat del manteniment. Els canvis estan desactivats fins que es pugui carregar.",
|
||||
"loading": "S'està carregant l'estat del manteniment…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Zobrazit automatizace",
|
||||
"description": "Podívejte se na automatizace a jejich historii."
|
||||
},
|
||||
"create": {
|
||||
"title": "Vytvářejte automatizace",
|
||||
"description": "Přidejte nové automatizace."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Upravit automatizace",
|
||||
"description": "Změňte stávající automatizace."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Smazat automatizace",
|
||||
"description": "Odstraňte automatizace."
|
||||
},
|
||||
"run": {
|
||||
"title": "Spouštění automatizací",
|
||||
"description": "Ručně spusťte automatizaci."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatizace",
|
||||
"tabAutomations": "Automatizace",
|
||||
"tabRuns": "Běhy",
|
||||
"tabChannels": "Kanály",
|
||||
"createAutomation": "Nová automatizace",
|
||||
"backToAutomations": "Zpět k automatizaci",
|
||||
"createTitle": "Nová automatizace",
|
||||
"editTitle": "Upravit automatizaci",
|
||||
"empty": "Zatím žádné automatizace. Vytvořte si automatizaci, která bude reagovat na metriku, plán nebo událost.",
|
||||
"emptyRuns": "Zatím žádné běhy.",
|
||||
"channelsHint": "Kanály se nastavují v části Upozornění",
|
||||
"noChannelsHint": "Upozornění se vždy dostane do vaší schránky. Přidejte si do Upozornění kanály, aby se odesílalo i někam jinam.",
|
||||
"nameLabel": "Jméno",
|
||||
"namePlaceholder": "např. Vyčistit /data, když se zaplní",
|
||||
"nameRequired": "Jméno je povinné",
|
||||
"descriptionLabel": "Popis",
|
||||
"descriptionPlaceholder": "Volitelný popis",
|
||||
"enabledLabel": "Povoleno",
|
||||
"concurrencyLabel": "Pokud již běží",
|
||||
"concurrencyHint": "Co dělat, když se to spustí znovu před dokončením posledního běhu.",
|
||||
"concurrency": {
|
||||
"skip": "Přeskočit nový běh",
|
||||
"queue": "Čekej a běž za ním",
|
||||
"allow": "Spustit obojí najednou"
|
||||
},
|
||||
"save": "Uložit",
|
||||
"created": "Automatizace vytvořena",
|
||||
"updated": "Automatizace uložena",
|
||||
"deleted": "Automatizace smazána",
|
||||
"deleteConfirm": "Smazat tuto automatizaci? Její historie spuštění bude také smazána.",
|
||||
"runNow": "Běhej hned",
|
||||
"testRun": "Zkušební provoz",
|
||||
"testRunHint": "Provádí každý krok, ale nedotýká se ničeho mimo Termix.",
|
||||
"runStarted": "Běh byl zahájen",
|
||||
"runFinished": "Běh dokončen: {{status}}",
|
||||
"trigger": "Spoušť",
|
||||
"steps": "Kroky",
|
||||
"addStep": "Přidat krok",
|
||||
"removeStep": "Odebrat krok",
|
||||
"moveUp": "Posunout nahoru",
|
||||
"moveDown": "Přesunout dolů",
|
||||
"noSteps": "Zatím žádné kroky. Přidejte jeden, který popisuje, co by se mělo stát.",
|
||||
"webhookTokenTitle": "URL webhooku",
|
||||
"webhookTokenDescription": "Toto se zobrazí jednou. Uložte si to nyní, později to nelze načíst.",
|
||||
"copy": "Kopie",
|
||||
"copied": "Zkopírováno",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Stavitel",
|
||||
"viewGraph": "Graf",
|
||||
"lastRun": "Poslední běh",
|
||||
"never": "Nikdy",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Výstup",
|
||||
"stepError": "Chyba",
|
||||
"dryRunBadge": "Zkušební provoz",
|
||||
"hostSelector": {
|
||||
"trigger": "Spouštěcí hostitel",
|
||||
"host": "Specifický hostitel",
|
||||
"fleet": "Loďstvo",
|
||||
"all": "Všichni hostitelé"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Prahová hodnota metriky",
|
||||
"host_status": "Hostitel jde nahoru nebo dolů",
|
||||
"health_check": "Změny v kontrolách stavu",
|
||||
"schedule": "Podle plánu",
|
||||
"docker_event": "Událost kontejneru",
|
||||
"internal_event": "Událost Termix",
|
||||
"webhook": "Příchozí webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Odeslat upozornění",
|
||||
"http": "Zavolat URL",
|
||||
"run_snippet": "Spustit úryvek",
|
||||
"run_command": "Spusťte příkaz",
|
||||
"docker": "Ovládání kontejneru",
|
||||
"tunnel": "Ovládejte tunel",
|
||||
"wol": "Probuďte hostitele",
|
||||
"wait": "Počkejte",
|
||||
"set_var": "Nastavení proměnné",
|
||||
"if": "Pokud / jinak",
|
||||
"run_automation": "Spusťte další automatizaci",
|
||||
"stop": "Zastávka"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Běh",
|
||||
"success": "Úspěch",
|
||||
"failed": "Selhalo",
|
||||
"timeout": "Časový limit vypršel",
|
||||
"skipped": "Přeskočeno",
|
||||
"cancelled": "Zrušeno"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Hostitel",
|
||||
"metric": "Metrický",
|
||||
"mount": "Bod připojení",
|
||||
"operator": "Je",
|
||||
"value": "Hodnota",
|
||||
"forSeconds": "Trvalé po dobu (sekund)",
|
||||
"cooldown": "Doba ochlazování (minuty)",
|
||||
"cron": "Cron výraz",
|
||||
"intervalSeconds": "Každých (sekund)",
|
||||
"timezone": "Časové pásmo",
|
||||
"timezoneServer": "Čas serveru",
|
||||
"timezoneHint": "V této zóně se odečítají časy Cron. Nevztahuje se na intervalové plány.",
|
||||
"container": "Kontejner",
|
||||
"command": "Příkaz",
|
||||
"url": "URL",
|
||||
"method": "Metoda",
|
||||
"body": "Tělo",
|
||||
"channels": "Také poslat na",
|
||||
"title": "Titul",
|
||||
"message": "Zpráva",
|
||||
"snippet": "Úryvek",
|
||||
"seconds": "Sekundy",
|
||||
"conditionLeftPlaceholder": "Hodnota ke kontrole",
|
||||
"conditionRightPlaceholder": "Porovnat s",
|
||||
"variableName": "Název proměnné",
|
||||
"variableValue": "Hodnota",
|
||||
"elevated": "Spustit se sudo",
|
||||
"onError": "Pokud se to nepodaří",
|
||||
"allowPrivateNetwork": "Povolit lokální síťové adresy",
|
||||
"allowPrivateNetworkHint": "Vyžadováno pro službu hostovanou na vašem lokálním serveru (LAN). Ve výchozím nastavení vypnuto, aby se zabránilo požadavkům na interní adresy."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Zastav běh",
|
||||
"continue": "Pokračovat"
|
||||
},
|
||||
"needsPlugin": "Potřeby {{plugin}}",
|
||||
"needsPluginHint": "Tato automatizace se přeskočí, dokud nebude znovu k dispozici funkce, kterou potřebuje.",
|
||||
"offBadge": "Vypnuto",
|
||||
"docsLink": "Zobrazit dokumenty",
|
||||
"ago": {
|
||||
"seconds": "Před {{count}}s",
|
||||
"minutes": "{{count}}před m",
|
||||
"hours": "{{count}}před hodinami",
|
||||
"days": "Před {{count}}dny"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatizace"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatizace",
|
||||
"feature_automations_desc": "Automaticky spouštět kroky, když se něco stane, a dostávat upozornění."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Údržba",
|
||||
"description": "Během probíhající práce pozastavte automatizaci stavu hostitele, jeho kondice, metrik, kontejnerů a odpojení tunelů. Monitorování, ruční spuštění a plánované automatizace pokračují.",
|
||||
"denied": "Nemáte oprávnění k zobrazení údržby.",
|
||||
"sharedReadOnly": "Tento hostitel byl s vámi sdílen. Pouze jeho majitel může změnit údržbu.",
|
||||
"failed": "Údržbu se nepodařilo aktualizovat.",
|
||||
"active": "Údržba aktivní",
|
||||
"estimated": "Předpokládané dokončení",
|
||||
"noAutoEnd": "Odhad údržby neukončuje. Ukončete ji explicitně po dokončení prací.",
|
||||
"endConfirm": "Ukončit údržbu a obnovit automatizace spouštěné událostmi pro tohoto hostitele?",
|
||||
"confirmEnd": "Potvrdit konec",
|
||||
"cancel": "Zrušit",
|
||||
"end": "Ukončení údržby",
|
||||
"action": "Akce",
|
||||
"startNow": "Začněte hned",
|
||||
"schedule": "Naplánovat na později",
|
||||
"reason": "Důvod",
|
||||
"startUtc": "První spuštění (UTC)",
|
||||
"repeat": "Opakovat",
|
||||
"once": "Jednou",
|
||||
"weekly": "Týdně",
|
||||
"monthly": "Měsíční",
|
||||
"utcHelp": "Harmonogramy používají po celý rok UTC. Měsíční harmonogramy přeskakují měsíce bez vybraného dne. Plánovaná okna se nemohou překrývat; údržba překročením se provádí i v pozdějších oknech.",
|
||||
"duration": "Odhadovaná doba trvání (minuty)",
|
||||
"grace": "Dodatečná lhůta (minuty)",
|
||||
"notify": "Upozornit jednou, pokud je stále offline po uplynutí odhadované doby plus lhůty.",
|
||||
"addSchedule": "Přidat rozvrh",
|
||||
"schedules": "Rozvrhy",
|
||||
"noSchedules": "Žádné plány údržby.",
|
||||
"completed": "Již začalo",
|
||||
"minutes_one": "{{count}} minuta",
|
||||
"minutes_other": "{{count}} minut",
|
||||
"remove": "Odebrat plán",
|
||||
"loadFailed": "Nepodařilo se obnovit stav údržby. Změny jsou zakázány, dokud nebude možné jej načíst.",
|
||||
"loading": "Načítání stavu údržby…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Se automatiseringer",
|
||||
"description": "Se automatiseringerne og deres historik."
|
||||
},
|
||||
"create": {
|
||||
"title": "Opret automatiseringer",
|
||||
"description": "Tilføj nye automatiseringer."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Rediger automatiseringer",
|
||||
"description": "Ændr eksisterende automatiseringer."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Slet automatiseringer",
|
||||
"description": "Fjern automatiseringer."
|
||||
},
|
||||
"run": {
|
||||
"title": "Kør automatiseringer",
|
||||
"description": "Udløs en automatisering manuelt."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatiseringer",
|
||||
"tabAutomations": "Automatiseringer",
|
||||
"tabRuns": "Løber",
|
||||
"tabChannels": "Kanaler",
|
||||
"createAutomation": "Ny automatisering",
|
||||
"backToAutomations": "Tilbage til Automatiseringer",
|
||||
"createTitle": "Ny automatisering",
|
||||
"editTitle": "Rediger automatisering",
|
||||
"empty": "Ingen automatiseringer endnu. Opret en for at reagere på en metric, en tidsplan eller en begivenhed.",
|
||||
"emptyRuns": "Ingen løb endnu.",
|
||||
"channelsHint": "Kanaler er konfigureret i advarsler",
|
||||
"noChannelsHint": "Beskeden sendes altid til din indbakke. Tilføj kanaler i Beskeder for også at sende den et andet sted hen.",
|
||||
"nameLabel": "Navn",
|
||||
"namePlaceholder": "f.eks. Ryd op i /data når den fyldes op",
|
||||
"nameRequired": "Navn er påkrævet",
|
||||
"descriptionLabel": "Beskrivelse",
|
||||
"descriptionPlaceholder": "Valgfri beskrivelse",
|
||||
"enabledLabel": "Aktiveret",
|
||||
"concurrencyLabel": "Hvis den allerede kører",
|
||||
"concurrencyHint": "Hvad skal man gøre, når dette udløses igen, før den sidste kørsel er færdig.",
|
||||
"concurrency": {
|
||||
"skip": "Spring den nye kørsel over",
|
||||
"queue": "Vent og løb efter",
|
||||
"allow": "Kør begge på én gang"
|
||||
},
|
||||
"save": "Spare",
|
||||
"created": "Automatisering skabt",
|
||||
"updated": "Automatisering gemt",
|
||||
"deleted": "Automatisering slettet",
|
||||
"deleteConfirm": "Vil du slette denne automatisering? Dens kørselshistorik slettes også.",
|
||||
"runNow": "Løb nu",
|
||||
"testRun": "Testkørsel",
|
||||
"testRunHint": "Kører hvert trin, men rører ikke noget uden for Termix.",
|
||||
"runStarted": "Løbet startede",
|
||||
"runFinished": "Kørsel færdig: {{status}}",
|
||||
"trigger": "Udløser",
|
||||
"steps": "Trin",
|
||||
"addStep": "Tilføj trin",
|
||||
"removeStep": "Fjern trin",
|
||||
"moveUp": "Flyt op",
|
||||
"moveDown": "Flyt ned",
|
||||
"noSteps": "Ingen trin endnu. Tilføj et trin for at angive, hvad der skal ske.",
|
||||
"webhookTokenTitle": "Webhook-URL",
|
||||
"webhookTokenDescription": "Dette vises én gang. Gem det nu, det kan ikke hentes senere.",
|
||||
"copy": "Kopi",
|
||||
"copied": "Kopieret",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Byggefirma",
|
||||
"viewGraph": "Kurve",
|
||||
"lastRun": "Sidste løb",
|
||||
"never": "Aldrig",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Produktion",
|
||||
"stepError": "Fejl",
|
||||
"dryRunBadge": "Testkørsel",
|
||||
"hostSelector": {
|
||||
"trigger": "Udløsende vært",
|
||||
"host": "Specifik vært",
|
||||
"fleet": "Flåde",
|
||||
"all": "Alle værter"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metrisk tærskel",
|
||||
"host_status": "Værten går op eller ned",
|
||||
"health_check": "Ændringer i sundhedstjek",
|
||||
"schedule": "På en tidsplan",
|
||||
"docker_event": "Containerhændelse",
|
||||
"internal_event": "Termix-begivenhed",
|
||||
"webhook": "Indgående webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send en alarm",
|
||||
"http": "Kald en URL",
|
||||
"run_snippet": "Kør et uddrag",
|
||||
"run_command": "Kør en kommando",
|
||||
"docker": "Styr en container",
|
||||
"tunnel": "Kontroller en tunnel",
|
||||
"wol": "Væk en vært",
|
||||
"wait": "Vente",
|
||||
"set_var": "Angiv en variabel",
|
||||
"if": "Hvis / ellers",
|
||||
"run_automation": "Kør en anden automatisering",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Løb",
|
||||
"success": "Succes",
|
||||
"failed": "Mislykkedes",
|
||||
"timeout": "Timeout",
|
||||
"skipped": "Springet over",
|
||||
"cancelled": "Annulleret"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Vært",
|
||||
"metric": "Metrisk",
|
||||
"mount": "Monteringspunkt",
|
||||
"operator": "Er",
|
||||
"value": "Værdi",
|
||||
"forSeconds": "Vedvarende i (sekunder)",
|
||||
"cooldown": "Nedkølingstid (minutter)",
|
||||
"cron": "Cron-udtryk",
|
||||
"intervalSeconds": "Hvert (sekund)",
|
||||
"timezone": "Tidszone",
|
||||
"timezoneServer": "Servertid",
|
||||
"timezoneHint": "Cron-tider aflæses i denne zone. Gælder ikke for intervalplaner.",
|
||||
"container": "Beholder",
|
||||
"command": "Kommando",
|
||||
"url": "URL",
|
||||
"method": "Metode",
|
||||
"body": "Legeme",
|
||||
"channels": "Send også til",
|
||||
"title": "Titel",
|
||||
"message": "Besked",
|
||||
"snippet": "Uddrag",
|
||||
"seconds": "Sekunder",
|
||||
"conditionLeftPlaceholder": "Værdi at kontrollere",
|
||||
"conditionRightPlaceholder": "Sammenlign med",
|
||||
"variableName": "Variabelnavn",
|
||||
"variableValue": "Værdi",
|
||||
"elevated": "Kør med sudo",
|
||||
"onError": "Hvis dette mislykkes",
|
||||
"allowPrivateNetwork": "Tillad lokale netværksadresser",
|
||||
"allowPrivateNetworkHint": "Nødvendig for en selvhostet tjeneste på dit LAN. Deaktiveret som standard for at forhindre anmodninger til interne adresser."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop løbet",
|
||||
"continue": "Fortsæt"
|
||||
},
|
||||
"needsPlugin": "Behøver {{plugin}}",
|
||||
"needsPluginHint": "Denne automatisering springes over, indtil den nødvendige funktion er tilgængelig igen.",
|
||||
"offBadge": "Slukket",
|
||||
"docsLink": "Se dokumenter",
|
||||
"ago": {
|
||||
"seconds": "For {{count}}sekunder siden",
|
||||
"minutes": "For {{count}}minutter siden",
|
||||
"hours": "For {{count}}timer siden",
|
||||
"days": "for {{count}}dage siden"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatiseringer"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatiseringer",
|
||||
"feature_automations_desc": "Kør trin automatisk, når der sker noget, og få besked."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Opretholdelse",
|
||||
"description": "Sæt automatiseringer for værtsstatus, tilstand, metrikker, containere og tunnelfrakobling på pause, mens arbejdet er i gang. Overvågning, manuelle kørsel og planlagte automatiseringer fortsætter.",
|
||||
"denied": "Du har ikke tilladelse til at se vedligeholdelsen.",
|
||||
"sharedReadOnly": "Denne vært blev delt med dig. Kun dens ejer kan ændre vedligeholdelsen.",
|
||||
"failed": "Vedligeholdelsen kunne ikke opdateres.",
|
||||
"active": "Vedligeholdelse aktiv",
|
||||
"estimated": "Forventet færdiggørelse",
|
||||
"noAutoEnd": "Estimatet afslutter ikke vedligeholdelsen. Afslut den eksplicit, når arbejdet er færdigt.",
|
||||
"endConfirm": "Vil du afslutte vedligeholdelsen og genoptage hændelsesudløste automatiseringer for denne vært?",
|
||||
"confirmEnd": "Bekræft slut",
|
||||
"cancel": "Ophæve",
|
||||
"end": "Afslut vedligeholdelse",
|
||||
"action": "Handling",
|
||||
"startNow": "Start nu",
|
||||
"schedule": "Planlæg til senere",
|
||||
"reason": "Årsag",
|
||||
"startUtc": "Første start (UTC)",
|
||||
"repeat": "Gentage",
|
||||
"once": "Engang",
|
||||
"weekly": "Ugentlig",
|
||||
"monthly": "Månedlig",
|
||||
"utcHelp": "Tidsplaner bruger UTC hele året. Månedlige tidsplaner springer måneder over uden den valgte dag. Planlagte vinduer kan ikke overlappe hinanden; overstyring af vedligeholdelse fortsætter på tværs af senere vinduer.",
|
||||
"duration": "Estimeret varighed (minutter)",
|
||||
"grace": "Frist (minutter)",
|
||||
"notify": "Giv én besked, hvis du stadig er offline efter estimatet plus den henstandsperiode",
|
||||
"addSchedule": "Tilføj tidsplan",
|
||||
"schedules": "Tidsplaner",
|
||||
"noSchedules": "Ingen vedligeholdelsesplaner.",
|
||||
"completed": "Allerede startet",
|
||||
"minutes_one": "{{count}} minut",
|
||||
"minutes_other": "{{count}} minutter",
|
||||
"remove": "Fjern tidsplan",
|
||||
"loadFailed": "Vedligeholdelsesstatus kunne ikke opdateres. Ændringer er deaktiveret, indtil den kan indlæses.",
|
||||
"loading": "Indlæser vedligeholdelsesstatus…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Automatisierungen anzeigen",
|
||||
"description": "Sehen Sie sich die Automatisierungen und deren Verlauf an."
|
||||
},
|
||||
"create": {
|
||||
"title": "Automatisierungen erstellen",
|
||||
"description": "Neue Automatisierungen hinzufügen."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Automatisierungen bearbeiten",
|
||||
"description": "Bestehende Automatisierungen ändern."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Automatisierungen löschen",
|
||||
"description": "Automatisierungen entfernen."
|
||||
},
|
||||
"run": {
|
||||
"title": "Automatisierungen ausführen",
|
||||
"description": "Eine Automatisierung manuell auslösen."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatisierungen",
|
||||
"tabAutomations": "Automatisierungen",
|
||||
"tabRuns": "Läufe",
|
||||
"tabChannels": "Kanäle",
|
||||
"createAutomation": "Neue Automatisierung",
|
||||
"backToAutomations": "Zurück zu Automatisierungen",
|
||||
"createTitle": "Neue Automatisierung",
|
||||
"editTitle": "Automatisierung bearbeiten",
|
||||
"empty": "Noch keine Automatisierungen. Erstellen Sie eine, um auf eine Kennzahl, einen Zeitplan oder ein Ereignis zu reagieren.",
|
||||
"emptyRuns": "Bisher keine Läufe.",
|
||||
"channelsHint": "Kanäle werden in den Benachrichtigungen eingerichtet.",
|
||||
"noChannelsHint": "Die Benachrichtigung wird immer in Ihrem Posteingang angezeigt. Fügen Sie in den Benachrichtigungen Kanäle hinzu, um sie auch an andere Orte zu senden.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "z.B. das Verzeichnis /data leeren, wenn es voll ist",
|
||||
"nameRequired": "Name ist erforderlich",
|
||||
"descriptionLabel": "Beschreibung",
|
||||
"descriptionPlaceholder": "Optionale Beschreibung",
|
||||
"enabledLabel": "Aktiviert",
|
||||
"concurrencyLabel": "Wenn es bereits läuft",
|
||||
"concurrencyHint": "Was ist zu tun, wenn dies erneut ausgelöst wird, bevor der letzte Durchlauf abgeschlossen ist?",
|
||||
"concurrency": {
|
||||
"skip": "Den neuen Lauf überspringen.",
|
||||
"queue": "Warten und dann hinterherlaufen",
|
||||
"allow": "Führe beide gleichzeitig aus"
|
||||
},
|
||||
"save": "Speichern",
|
||||
"created": "Automatisierung erstellt",
|
||||
"updated": "Automatisierung gerettet",
|
||||
"deleted": "Automatisierung gelöscht",
|
||||
"deleteConfirm": "Wenn Sie diese Automatisierung löschen, wird auch ihr Ausführungsverlauf gelöscht.",
|
||||
"runNow": "Jetzt laufen",
|
||||
"testRun": "Probelauf",
|
||||
"testRunHint": "Führt jeden Schritt aus, greift aber auf nichts außerhalb von Termix ein.",
|
||||
"runStarted": "Lauf gestartet",
|
||||
"runFinished": "Lauf beendet: {{status}}",
|
||||
"trigger": "Auslöser",
|
||||
"steps": "Schritte",
|
||||
"addStep": "Schritt hinzufügen",
|
||||
"removeStep": "Schritt entfernen",
|
||||
"moveUp": "Aufsteigen",
|
||||
"moveDown": "Nach unten schieben",
|
||||
"noSteps": "Noch keine Schritte. Füge einen hinzu, um zu beschreiben, was passieren soll.",
|
||||
"webhookTokenTitle": "Webhook-URL",
|
||||
"webhookTokenDescription": "Dies wird nur einmal angezeigt. Speichern Sie es jetzt, es kann später nicht mehr abgerufen werden.",
|
||||
"copy": "Kopieren",
|
||||
"copied": "Kopiert",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Bauherr",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Letzter Lauf",
|
||||
"never": "Nie",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Ausgabe",
|
||||
"stepError": "Fehler",
|
||||
"dryRunBadge": "Probelauf",
|
||||
"hostSelector": {
|
||||
"trigger": "Auslösender Host",
|
||||
"host": "Spezifischer Wirt",
|
||||
"fleet": "Flotte",
|
||||
"all": "Alle Hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metrischer Schwellenwert",
|
||||
"host_status": "Der Host steigt oder fällt ab",
|
||||
"health_check": "Änderungen bei Gesundheitschecks",
|
||||
"schedule": "Nach einem Zeitplan",
|
||||
"docker_event": "Container-Ereignis",
|
||||
"internal_event": "Termix-Ereignis",
|
||||
"webhook": "Eingehender Webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Benachrichtigung senden",
|
||||
"http": "URL aufrufen",
|
||||
"run_snippet": "Führe einen Codeausschnitt aus",
|
||||
"run_command": "Führe einen Befehl aus",
|
||||
"docker": "Einen Container steuern",
|
||||
"tunnel": "Einen Tunnel steuern",
|
||||
"wol": "Wecken Sie einen Gastgeber",
|
||||
"wait": "Warten",
|
||||
"set_var": "Eine Variable setzen",
|
||||
"if": "Falls / andernfalls",
|
||||
"run_automation": "Führe eine weitere Automatisierung aus",
|
||||
"stop": "Stoppen"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Läuft",
|
||||
"success": "Erfolgreich",
|
||||
"failed": "Fehlgeschlagen",
|
||||
"timeout": "Zeitüberschreitung",
|
||||
"skipped": "Übersprungen",
|
||||
"cancelled": "Abgesagt"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metrik",
|
||||
"mount": "Montagepunkt",
|
||||
"operator": "Ist",
|
||||
"value": "Wert",
|
||||
"forSeconds": "Anhaltend für (Sekunden)",
|
||||
"cooldown": "Abklingzeit (Minuten)",
|
||||
"cron": "Cron-Ausdruck",
|
||||
"intervalSeconds": "Alle (Sekunden)",
|
||||
"timezone": "Zeitzone",
|
||||
"timezoneServer": "Serverzeit",
|
||||
"timezoneHint": "In dieser Zone werden Cron-Zeiten gelesen. Gilt nicht für Intervallpläne.",
|
||||
"container": "Container",
|
||||
"command": "Befehl",
|
||||
"url": "URL",
|
||||
"method": "Verfahren",
|
||||
"body": "Körper",
|
||||
"channels": "Bitte auch senden an",
|
||||
"title": "Titel",
|
||||
"message": "Nachricht",
|
||||
"snippet": "Ausschnitt",
|
||||
"seconds": "Sekunden",
|
||||
"conditionLeftPlaceholder": "Zu prüfender Wert",
|
||||
"conditionRightPlaceholder": "Vergleiche mit",
|
||||
"variableName": "Variablenname",
|
||||
"variableValue": "Wert",
|
||||
"elevated": "Mit sudo ausführen",
|
||||
"onError": "Wenn das fehlschlägt",
|
||||
"allowPrivateNetwork": "Lokale Netzwerkadressen zulassen",
|
||||
"allowPrivateNetworkHint": "Wird für einen selbstgehosteten Dienst in Ihrem LAN benötigt. Standardmäßig deaktiviert, um Anfragen an interne Adressen zu verhindern."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stoppt die Flucht!",
|
||||
"continue": "Weiter geht's"
|
||||
},
|
||||
"needsPlugin": "Benötigt {{plugin}}",
|
||||
"needsPluginHint": "Diese Automatisierung wird übersprungen, bis die benötigte Funktion wieder verfügbar ist.",
|
||||
"offBadge": "Aus",
|
||||
"docsLink": "Dokumentation ansehen",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "vor {{count}} Min.",
|
||||
"hours": "vor {{count}} Std.",
|
||||
"days": "vor {{count}} Tagen"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatisierungen"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatisierungen",
|
||||
"feature_automations_desc": "Schritte automatisch ausführen, wenn etwas passiert, und Benachrichtigungen erhalten."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Wartung",
|
||||
"description": "Die Automatisierungen für Hoststatus, Integrität, Metriken, Container- und Tunnel-Trennung werden während der laufenden Arbeiten pausiert. Überwachung, manuelle Ausführungen und geplante Automatisierungen werden fortgesetzt.",
|
||||
"denied": "Sie haben keine Berechtigung, Wartungsarbeiten anzuzeigen.",
|
||||
"sharedReadOnly": "Dieser Host wurde Ihnen zur Verfügung gestellt. Nur der Eigentümer kann Wartungsänderungen vornehmen.",
|
||||
"failed": "Die Wartungsarbeiten konnten nicht aktualisiert werden.",
|
||||
"active": "Wartung aktiv",
|
||||
"estimated": "Voraussichtlicher Abschluss",
|
||||
"noAutoEnd": "Die Kostenschätzung beendet die Wartungsarbeiten nicht. Beenden Sie sie explizit, sobald die Arbeiten abgeschlossen sind.",
|
||||
"endConfirm": "Wartungsarbeiten beenden und ereignisgesteuerte Automatisierungen für diesen Host wiederaufnehmen?",
|
||||
"confirmEnd": "Ende bestätigen",
|
||||
"cancel": "Abbrechen",
|
||||
"end": "Wartungsarbeiten beenden",
|
||||
"action": "Aktion",
|
||||
"startNow": "Jetzt starten",
|
||||
"schedule": "Termin für später",
|
||||
"reason": "Grund",
|
||||
"startUtc": "Erster Start (UTC)",
|
||||
"repeat": "Wiederholen",
|
||||
"once": "Einmal",
|
||||
"weekly": "Wöchentlich",
|
||||
"monthly": "Monatlich",
|
||||
"utcHelp": "Die Zeitpläne verwenden ganzjährig UTC. Monatliche Zeitpläne überspringen Monate ohne den ausgewählten Tag. Geplante Zeiträume dürfen sich nicht überschneiden; Wartungsarbeiten, die über die vereinbarten Zeiträume hinausgehen, werden fortgesetzt.",
|
||||
"duration": "Geschätzte Dauer (Minuten)",
|
||||
"grace": "Kulanzfrist (Minuten)",
|
||||
"notify": "Benachrichtigen Sie uns einmalig, falls Sie nach Ablauf der Schätzung und der Kulanzfrist immer noch offline sind.",
|
||||
"addSchedule": "Zeitplan hinzufügen",
|
||||
"schedules": "Zeitpläne",
|
||||
"noSchedules": "Keine Wartungspläne.",
|
||||
"completed": "Bereits begonnen",
|
||||
"minutes_one": "{{count}} Minute",
|
||||
"minutes_other": "{{count}} Minuten",
|
||||
"remove": "Zeitplan entfernen",
|
||||
"loadFailed": "Der Wartungsstatus konnte nicht aktualisiert werden. Änderungen sind deaktiviert, bis die Daten geladen werden können.",
|
||||
"loading": "Lade Wartungsstatus…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Προβολή αυτοματισμών",
|
||||
"description": "Δείτε τους αυτοματισμούς και το ιστορικό τους."
|
||||
},
|
||||
"create": {
|
||||
"title": "Δημιουργήστε αυτοματισμούς",
|
||||
"description": "Προσθήκη νέων αυτοματισμών."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Επεξεργασία αυτοματισμών",
|
||||
"description": "Αλλαγή υπαρχόντων αυτοματισμών."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Διαγραφή αυτοματισμών",
|
||||
"description": "Αφαίρεση αυτοματισμών."
|
||||
},
|
||||
"run": {
|
||||
"title": "Εκτέλεση αυτοματισμών",
|
||||
"description": "Ενεργοποιήστε έναν αυτοματισμό χειροκίνητα."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Αυτοματισμοί",
|
||||
"tabAutomations": "Αυτοματισμοί",
|
||||
"tabRuns": "Τρεξίματα",
|
||||
"tabChannels": "Κανάλια",
|
||||
"createAutomation": "Νέος Αυτοματισμός",
|
||||
"backToAutomations": "Επιστροφή στους Αυτοματισμούς",
|
||||
"createTitle": "Νέος Αυτοματισμός",
|
||||
"editTitle": "Επεξεργασία αυτοματισμού",
|
||||
"empty": "Δεν υπάρχουν ακόμη αυτοματοποιήσεις. Δημιουργήστε μία για να αντιδράτε σε μια μέτρηση, ένα πρόγραμμα ή ένα συμβάν.",
|
||||
"emptyRuns": "Δεν υπάρχουν τρεξίματα ακόμα.",
|
||||
"channelsHint": "Τα κανάλια έχουν ρυθμιστεί στις Ειδοποιήσεις",
|
||||
"noChannelsHint": "Η ειδοποίηση αποστέλλεται πάντα στα εισερχόμενά σας. Προσθέστε κανάλια στις Ειδοποιήσεις για να την στείλετε και κάπου αλλού.",
|
||||
"nameLabel": "Ονομα",
|
||||
"namePlaceholder": "π.χ., Καθαρισμός /data όταν γεμίσει",
|
||||
"nameRequired": "Απαιτείται όνομα",
|
||||
"descriptionLabel": "Περιγραφή",
|
||||
"descriptionPlaceholder": "Προαιρετική περιγραφή",
|
||||
"enabledLabel": "Ενεργοποιημένο",
|
||||
"concurrencyLabel": "Εάν ήδη εκτελείται",
|
||||
"concurrencyHint": "Τι πρέπει να κάνετε όταν αυτό ενεργοποιηθεί ξανά πριν ολοκληρωθεί η τελευταία εκτέλεση.",
|
||||
"concurrency": {
|
||||
"skip": "Παράλειψη της νέας διαδρομής",
|
||||
"queue": "Περίμενε και τρέχα πίσω",
|
||||
"allow": "Εκτελέστε και τα δύο ταυτόχρονα"
|
||||
},
|
||||
"save": "Εκτός",
|
||||
"created": "Αυτοματοποίηση που δημιουργήθηκε",
|
||||
"updated": "Ο αυτοματισμός αποθηκεύτηκε",
|
||||
"deleted": "Ο αυτοματισμός διαγράφηκε.",
|
||||
"deleteConfirm": "Διαγραφή αυτού του αυτοματισμού; Το ιστορικό εκτέλεσής του διαγράφεται επίσης.",
|
||||
"runNow": "Εκτέλεση τώρα",
|
||||
"testRun": "Δοκιμαστική εκτέλεση",
|
||||
"testRunHint": "Εκτελεί κάθε βήμα αλλά δεν αγγίζει τίποτα εκτός του Termix.",
|
||||
"runStarted": "Η εκτέλεση ξεκίνησε",
|
||||
"runFinished": "Η εκτέλεση ολοκληρώθηκε: {{status}}",
|
||||
"trigger": "Σκανδάλη",
|
||||
"steps": "Βήματα",
|
||||
"addStep": "Προσθήκη βήματος",
|
||||
"removeStep": "Αφαίρεση βήματος",
|
||||
"moveUp": "Μετακίνηση προς τα πάνω",
|
||||
"moveDown": "Μετακίνηση προς τα κάτω",
|
||||
"noSteps": "Δεν υπάρχουν ακόμη βήματα. Προσθέστε ένα για να πείτε τι πρέπει να συμβεί.",
|
||||
"webhookTokenTitle": "URL ιστού",
|
||||
"webhookTokenDescription": "Αυτό εμφανίζεται μία φορά. Αποθηκεύστε το τώρα, δεν μπορεί να ανακτηθεί αργότερα.",
|
||||
"copy": "Αντίγραφο",
|
||||
"copied": "Αντιγράφηκε",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Οικοδόμος",
|
||||
"viewGraph": "Γραφική παράσταση",
|
||||
"lastRun": "Τελευταία εκτέλεση",
|
||||
"never": "Ποτέ",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Παραγωγή",
|
||||
"stepError": "Σφάλμα",
|
||||
"dryRunBadge": "Δοκιμαστική εκτέλεση",
|
||||
"hostSelector": {
|
||||
"trigger": "Ενεργοποίηση κεντρικού υπολογιστή",
|
||||
"host": "Συγκεκριμένος κεντρικός υπολογιστής",
|
||||
"fleet": "Στόλος",
|
||||
"all": "Όλοι οι οικοδεσπότες"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Μετρικό όριο",
|
||||
"host_status": "Ο κεντρικός υπολογιστής ανεβαίνει ή κατεβαίνει",
|
||||
"health_check": "Αλλαγές στον έλεγχο υγείας",
|
||||
"schedule": "Σε πρόγραμμα",
|
||||
"docker_event": "Συμβάν κοντέινερ",
|
||||
"internal_event": "Συμβάν Termix",
|
||||
"webhook": "Εισερχόμενο webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Αποστολή ειδοποίησης",
|
||||
"http": "Κλήση μιας διεύθυνσης URL",
|
||||
"run_snippet": "Εκτέλεση ενός αποσπάσματος",
|
||||
"run_command": "Εκτέλεση εντολής",
|
||||
"docker": "Έλεγχος ενός κοντέινερ",
|
||||
"tunnel": "Έλεγχος μιας σήραγγας",
|
||||
"wol": "Ξυπνήστε έναν οικοδεσπότη",
|
||||
"wait": "Περιμένετε",
|
||||
"set_var": "Ορισμός μεταβλητής",
|
||||
"if": "Εάν / διαφορετικά",
|
||||
"run_automation": "Εκτελέστε έναν άλλο αυτοματισμό",
|
||||
"stop": "Στάση"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Τρέξιμο",
|
||||
"success": "Επιτυχία",
|
||||
"failed": "Αποτυχημένος",
|
||||
"timeout": "Λήξη χρονικού ορίου",
|
||||
"skipped": "Παραλήφθηκε",
|
||||
"cancelled": "Ακυρώθηκε"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Πλήθος",
|
||||
"metric": "Μετρικός",
|
||||
"mount": "Σημείο προσάρτησης",
|
||||
"operator": "Είναι",
|
||||
"value": "Αξία",
|
||||
"forSeconds": "Διαρκεί για (δευτερόλεπτα)",
|
||||
"cooldown": "Χρόνος αναμονής (λεπτά)",
|
||||
"cron": "Έκφραση Cron",
|
||||
"intervalSeconds": "Κάθε (δευτερόλεπτα)",
|
||||
"timezone": "Ζώνη ώρας",
|
||||
"timezoneServer": "Ώρα διακομιστή",
|
||||
"timezoneHint": "Οι χρόνοι Cron διαβάζονται σε αυτήν τη ζώνη. Δεν ισχύει για τα χρονοδιαγράμματα διαστημάτων.",
|
||||
"container": "Δοχείο",
|
||||
"command": "Εντολή",
|
||||
"url": "URL",
|
||||
"method": "Μέθοδος",
|
||||
"body": "Σώμα",
|
||||
"channels": "Αποστολή επίσης σε",
|
||||
"title": "Τίτλος",
|
||||
"message": "Μήνυμα",
|
||||
"snippet": "Απόσπασμα",
|
||||
"seconds": "Δευτερόλεπτα",
|
||||
"conditionLeftPlaceholder": "Τιμή προς έλεγχο",
|
||||
"conditionRightPlaceholder": "Σύγκριση με",
|
||||
"variableName": "Όνομα μεταβλητής",
|
||||
"variableValue": "Αξία",
|
||||
"elevated": "Εκτέλεση με sudo",
|
||||
"onError": "Εάν αυτό αποτύχει",
|
||||
"allowPrivateNetwork": "Επιτρέψτε τις τοπικές διευθύνσεις δικτύου",
|
||||
"allowPrivateNetworkHint": "Απαιτείται για μια αυτο-φιλοξενούμενη υπηρεσία στο LAN σας. Απενεργοποιημένο από προεπιλογή για την αποτροπή αιτημάτων σε εσωτερικές διευθύνσεις."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Σταμάτα το τρέξιμο",
|
||||
"continue": "Συνεχίζω"
|
||||
},
|
||||
"needsPlugin": "Ανάγκες {{plugin}}",
|
||||
"needsPluginHint": "Αυτή η αυτοματοποίηση παραλείπεται μέχρι να γίνει ξανά διαθέσιμη η λειτουργία που χρειάζεται.",
|
||||
"offBadge": "Μακριά από",
|
||||
"docsLink": "Προβολή εγγράφων",
|
||||
"ago": {
|
||||
"seconds": "{{count}}πριν από s",
|
||||
"minutes": "{{count}}πριν από λεπτά",
|
||||
"hours": "{{count}}πριν από ώρες",
|
||||
"days": "{{count}}πριν από ημέρες"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Αυτοματισμοί"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Αυτοματισμοί",
|
||||
"feature_automations_desc": "Εκτελέστε αυτόματα βήματα όταν συμβεί κάτι και λάβετε ειδοποίηση."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Συντήρηση",
|
||||
"description": "Παύση των αυτοματισμών κατάστασης κεντρικού υπολογιστή, εύρυθμης λειτουργίας, μετρήσεων, κοντέινερ και αποσύνδεσης σήραγγας ενώ οι εργασίες βρίσκονται σε εξέλιξη. Η παρακολούθηση, οι χειροκίνητες εκτελέσεις και οι προγραμματισμένοι αυτοματισμοί συνεχίζονται.",
|
||||
"denied": "Δεν έχετε άδεια προβολής συντήρησης.",
|
||||
"sharedReadOnly": "Αυτός ο κεντρικός υπολογιστής κοινοποιήθηκε σε εσάς. Μόνο ο κάτοχός του μπορεί να αλλάξει τη συντήρηση.",
|
||||
"failed": "Δεν ήταν δυνατή η ενημέρωση της συντήρησης.",
|
||||
"active": "Ενεργή συντήρηση",
|
||||
"estimated": "Εκτιμώμενη ολοκλήρωση",
|
||||
"noAutoEnd": "Η εκτίμηση κόστους δεν τερματίζει τη συντήρηση. Τερματίζει ρητά όταν ολοκληρωθεί η εργασία.",
|
||||
"endConfirm": "Να τερματιστεί η συντήρηση και να συνεχιστούν οι αυτοματοποιήσεις που ενεργοποιούνται από συμβάντα για αυτόν τον κεντρικό υπολογιστή;",
|
||||
"confirmEnd": "Επιβεβαίωση τέλους",
|
||||
"cancel": "Ματαίωση",
|
||||
"end": "Τέλος συντήρησης",
|
||||
"action": "Δράση",
|
||||
"startNow": "Ξεκινήστε τώρα",
|
||||
"schedule": "Προγραμματισμός για αργότερα",
|
||||
"reason": "Λόγος",
|
||||
"startUtc": "Πρώτη εκκίνηση (UTC)",
|
||||
"repeat": "Επαναλαμβάνω",
|
||||
"once": "Μια φορά",
|
||||
"weekly": "Εβδομαδιαίος",
|
||||
"monthly": "Μηνιαίος",
|
||||
"utcHelp": "Τα χρονοδιαγράμματα χρησιμοποιούν UTC καθ' όλη τη διάρκεια του έτους. Τα μηνιαία χρονοδιαγράμματα παραλείπουν μήνες χωρίς την επιλεγμένη ημέρα. Τα προγραμματισμένα παράθυρα δεν μπορούν να επικαλύπτονται. Η συντήρηση που εκτελείται εκτός προγράμματος συνεχίζεται και σε μεταγενέστερα παράθυρα.",
|
||||
"duration": "Εκτιμώμενη διάρκεια (λεπτά)",
|
||||
"grace": "Περίοδος χάριτος (λεπτά)",
|
||||
"notify": "Ειδοποιήστε μία φορά εάν εξακολουθείτε να είστε εκτός σύνδεσης μετά την εκτίμηση συν την περίοδο χάριτος",
|
||||
"addSchedule": "Προσθήκη χρονοδιαγράμματος",
|
||||
"schedules": "Δρομολόγια",
|
||||
"noSchedules": "Δεν υπάρχουν χρονοδιαγράμματα συντήρησης.",
|
||||
"completed": "Ήδη ξεκίνησε",
|
||||
"minutes_one": "{{count}} λεπτό",
|
||||
"minutes_other": "{{count}} λεπτά",
|
||||
"remove": "Κατάργηση χρονοδιαγράμματος",
|
||||
"loadFailed": "Δεν ήταν δυνατή η ανανέωση της κατάστασης συντήρησης. Οι αλλαγές είναι απενεργοποιημένες μέχρι να είναι δυνατή η φόρτωσή τους.",
|
||||
"loading": "Φόρτωση κατάστασης συντήρησης…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Ver automatizaciones",
|
||||
"description": "Consulta las automatizaciones y su historial."
|
||||
},
|
||||
"create": {
|
||||
"title": "Crear automatizaciones",
|
||||
"description": "Agregar nuevas automatizaciones."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Editar automatizaciones",
|
||||
"description": "Modificar las automatizaciones existentes."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Eliminar automatizaciones",
|
||||
"description": "Eliminar automatizaciones."
|
||||
},
|
||||
"run": {
|
||||
"title": "Ejecutar automatizaciones",
|
||||
"description": "Activar una automatización manualmente."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatizaciones",
|
||||
"tabAutomations": "Automatizaciones",
|
||||
"tabRuns": "Corre",
|
||||
"tabChannels": "Canales",
|
||||
"createAutomation": "Nueva automatización",
|
||||
"backToAutomations": "Volver a Automatizaciones",
|
||||
"createTitle": "Nueva automatización",
|
||||
"editTitle": "Automatización de edición",
|
||||
"empty": "Aún no hay automatizaciones. Crea una para que reaccione a una métrica, una programación o un evento.",
|
||||
"emptyRuns": "Aún no hay carreras.",
|
||||
"channelsHint": "Los canales se configuran en Alertas.",
|
||||
"noChannelsHint": "La alerta siempre llega a tu bandeja de entrada. Agrega canales en Alertas para enviarla también a otros lugares.",
|
||||
"nameLabel": "Nombre",
|
||||
"namePlaceholder": "Por ejemplo, limpiar /data cuando se llena",
|
||||
"nameRequired": "El nombre es obligatorio",
|
||||
"descriptionLabel": "Descripción",
|
||||
"descriptionPlaceholder": "Descripción opcional",
|
||||
"enabledLabel": "Activado",
|
||||
"concurrencyLabel": "Si ya está en funcionamiento",
|
||||
"concurrencyHint": "Qué hacer si esto se activa de nuevo antes de que finalice la última ejecución.",
|
||||
"concurrency": {
|
||||
"skip": "Saltarse la nueva carrera",
|
||||
"queue": "Espera y corre tras",
|
||||
"allow": "Ejecutar ambos a la vez"
|
||||
},
|
||||
"save": "Guardar",
|
||||
"created": "Automatización creada",
|
||||
"updated": "Automatización guardada",
|
||||
"deleted": "Automatización eliminada",
|
||||
"deleteConfirm": "¿Eliminar esta automatización? Su historial de ejecución también se eliminará.",
|
||||
"runNow": "Corre ahora",
|
||||
"testRun": "Ejecución de prueba",
|
||||
"testRunHint": "Ejecuta todos los pasos, pero no toca nada fuera de Termix.",
|
||||
"runStarted": "La carrera ha comenzado.",
|
||||
"runFinished": "Ejecución finalizada: {{status}}",
|
||||
"trigger": "Disparador",
|
||||
"steps": "Pasos",
|
||||
"addStep": "Agregar paso",
|
||||
"removeStep": "Eliminar paso",
|
||||
"moveUp": "Subir",
|
||||
"moveDown": "Baja",
|
||||
"noSteps": "Aún no hay pasos a seguir. Añade uno para indicar qué debería suceder.",
|
||||
"webhookTokenTitle": "URL del webhook",
|
||||
"webhookTokenDescription": "Esto se muestra una sola vez. Guárdalo ahora, no se podrá recuperar más tarde.",
|
||||
"copy": "Copiar",
|
||||
"copied": "Copiado",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Constructor",
|
||||
"viewGraph": "Gráfico",
|
||||
"lastRun": "Última carrera",
|
||||
"never": "Nunca",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Salida",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Ejecución de prueba",
|
||||
"hostSelector": {
|
||||
"trigger": "Host desencadenante",
|
||||
"host": "Anfitrión específico",
|
||||
"fleet": "Flota",
|
||||
"all": "Todos los hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Umbral métrico",
|
||||
"host_status": "El host sube o baja",
|
||||
"health_check": "Cambios en los chequeos médicos",
|
||||
"schedule": "Según un horario",
|
||||
"docker_event": "Evento de contenedor",
|
||||
"internal_event": "Evento Termix",
|
||||
"webhook": "Webhook entrante"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Enviar alerta",
|
||||
"http": "Llamar a una URL",
|
||||
"run_snippet": "Ejecutar un fragmento",
|
||||
"run_command": "Ejecutar un comando",
|
||||
"docker": "Controlar un contenedor",
|
||||
"tunnel": "Controlar un túnel",
|
||||
"wol": "Despierta a un anfitrión",
|
||||
"wait": "Esperar",
|
||||
"set_var": "Establecer una variable",
|
||||
"if": "Si / de lo contrario",
|
||||
"run_automation": "Ejecuta otra automatización",
|
||||
"stop": "Parada"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "En ejecución",
|
||||
"success": "Éxito",
|
||||
"failed": "Fallido",
|
||||
"timeout": "Tiempo de espera agotado",
|
||||
"skipped": "Saltado",
|
||||
"cancelled": "Cancelado"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Métrica",
|
||||
"mount": "Punto de montaje",
|
||||
"operator": "Es",
|
||||
"value": "Valor",
|
||||
"forSeconds": "Mantenido durante (segundos)",
|
||||
"cooldown": "Tiempo de espera (minutos)",
|
||||
"cron": "Expresión cron",
|
||||
"intervalSeconds": "Cada (segundos)",
|
||||
"timezone": "Huso horario",
|
||||
"timezoneServer": "Hora del servidor",
|
||||
"timezoneHint": "En esta zona se leen las horas cron. No se aplica a los horarios de intervalo.",
|
||||
"container": "Recipiente",
|
||||
"command": "Comando",
|
||||
"url": "URL",
|
||||
"method": "Método",
|
||||
"body": "Cuerpo",
|
||||
"channels": "También enviar a",
|
||||
"title": "Título",
|
||||
"message": "Mensaje",
|
||||
"snippet": "Retazo",
|
||||
"seconds": "Artículos de segunda clase",
|
||||
"conditionLeftPlaceholder": "Valor a comprobar",
|
||||
"conditionRightPlaceholder": "Comparar con",
|
||||
"variableName": "nombre de la variable",
|
||||
"variableValue": "Valor",
|
||||
"elevated": "Ejecutar con sudo",
|
||||
"onError": "Si esto falla",
|
||||
"allowPrivateNetwork": "Permitir direcciones de red local",
|
||||
"allowPrivateNetworkHint": "Necesario para un servicio autohospedado en su LAN. Desactivado por defecto para evitar solicitudes a direcciones internas."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Detengan la carrera",
|
||||
"continue": "Continuar"
|
||||
},
|
||||
"needsPlugin": "Necesidades {{plugin}}",
|
||||
"needsPluginHint": "Esta automatización se omite hasta que la función que necesita vuelva a estar disponible.",
|
||||
"offBadge": "Desactivado",
|
||||
"docsLink": "Ver documentación",
|
||||
"ago": {
|
||||
"seconds": "{{count}}hace s",
|
||||
"minutes": "hace {{count}}m",
|
||||
"hours": "hace {{count}}h",
|
||||
"days": "hace {{count}}d"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatizaciones"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatizaciones",
|
||||
"feature_automations_desc": "Ejecuta pasos automáticamente cuando ocurra algo y recibe notificaciones."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Mantenimiento",
|
||||
"description": "Se pausan las automatizaciones de estado del host, salud, métricas, contenedores y desconexión de túneles mientras se realiza el trabajo. La monitorización, las ejecuciones manuales y las automatizaciones programadas continúan.",
|
||||
"denied": "No tienes permiso para ver el mantenimiento.",
|
||||
"sharedReadOnly": "Este servidor se ha compartido contigo. Solo su propietario puede modificar el mantenimiento.",
|
||||
"failed": "No se pudo actualizar el mantenimiento.",
|
||||
"active": "Mantenimiento activo",
|
||||
"estimated": "Finalización estimada",
|
||||
"noAutoEnd": "El presupuesto no pone fin al mantenimiento. Finalícelo explícitamente cuando el trabajo esté terminado.",
|
||||
"endConfirm": "¿Finalizar el mantenimiento y reanudar las automatizaciones activadas por eventos para este host?",
|
||||
"confirmEnd": "Confirmar fin",
|
||||
"cancel": "Cancelar",
|
||||
"end": "Fin del mantenimiento",
|
||||
"action": "Acción",
|
||||
"startNow": "Empieza ahora",
|
||||
"schedule": "Programar para más tarde",
|
||||
"reason": "Razón",
|
||||
"startUtc": "Primer inicio (UTC)",
|
||||
"repeat": "Repetir",
|
||||
"once": "Una vez",
|
||||
"weekly": "Semanalmente",
|
||||
"monthly": "Mensual",
|
||||
"utcHelp": "Los horarios utilizan UTC durante todo el año. Los horarios mensuales omiten los meses que no incluyen el día seleccionado. Los periodos de mantenimiento planificados no pueden superponerse; el mantenimiento prolongado continúa en los periodos posteriores.",
|
||||
"duration": "Duración estimada (minutos)",
|
||||
"grace": "Período de gracia (minutos)",
|
||||
"notify": "Notificar una vez si sigue sin conexión después del período estimado más el período de gracia.",
|
||||
"addSchedule": "Agregar horario",
|
||||
"schedules": "Horarios",
|
||||
"noSchedules": "Sin programas de mantenimiento.",
|
||||
"completed": "Ya ha comenzado",
|
||||
"minutes_one": "{{count}} minuto",
|
||||
"minutes_other": "{{count}} minutos",
|
||||
"remove": "Eliminar horario",
|
||||
"loadFailed": "No se pudo actualizar el estado de mantenimiento. Los cambios están deshabilitados hasta que se puedan cargar.",
|
||||
"loading": "Cargando estado de mantenimiento…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Näytä automaatiot",
|
||||
"description": "Katso automaatiot ja niiden historia."
|
||||
},
|
||||
"create": {
|
||||
"title": "Luo automaatioita",
|
||||
"description": "Lisää uusia automaatioita."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Muokkaa automaatioita",
|
||||
"description": "Muuta olemassa olevia automaatioita."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Poista automaatiot",
|
||||
"description": "Poista automaatiot."
|
||||
},
|
||||
"run": {
|
||||
"title": "Suorita automaatioita",
|
||||
"description": "Käynnistä automaatio manuaalisesti."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automaatiot",
|
||||
"tabAutomations": "Automaatiot",
|
||||
"tabRuns": "Juoksut",
|
||||
"tabChannels": "Kanavat",
|
||||
"createAutomation": "Uusi automaatio",
|
||||
"backToAutomations": "Takaisin automaatioihin",
|
||||
"createTitle": "Uusi automaatio",
|
||||
"editTitle": "Muokkaa automatisointia",
|
||||
"empty": "Ei vielä automaatioita. Luo sellainen reagoimaan mittariin, aikatauluun tai tapahtumaan.",
|
||||
"emptyRuns": "Ei vielä juoksuja.",
|
||||
"channelsHint": "Kanavat määritetään Hälytykset-kohdassa",
|
||||
"noChannelsHint": "Ilmoitus menee aina postilaatikkoosi. Lisää kanavia Ilmoitukset-kohtaan lähettääksesi sen myös muualle.",
|
||||
"nameLabel": "Nimi",
|
||||
"namePlaceholder": "esim. Siivoa /data, kun se täyttyy",
|
||||
"nameRequired": "Nimi on pakollinen",
|
||||
"descriptionLabel": "Kuvaus",
|
||||
"descriptionPlaceholder": "Valinnainen kuvaus",
|
||||
"enabledLabel": "Käytössä",
|
||||
"concurrencyLabel": "Jos se on jo käynnissä",
|
||||
"concurrencyHint": "Mitä tehdä, kun tämä laukeaa uudelleen ennen viimeisen ajon päättymistä.",
|
||||
"concurrency": {
|
||||
"skip": "Ohita uusi juoksu",
|
||||
"queue": "Odota ja juokse perässä",
|
||||
"allow": "Suorita molemmat yhtä aikaa"
|
||||
},
|
||||
"save": "Tallentaa",
|
||||
"created": "Automaatio luotu",
|
||||
"updated": "Automaatio tallennettu",
|
||||
"deleted": "Automaatio poistettu",
|
||||
"deleteConfirm": "Poistetaanko tämä automaatio? Myös sen suoritushistoria poistetaan.",
|
||||
"runNow": "Juokse nyt",
|
||||
"testRun": "Koeajo",
|
||||
"testRunHint": "Juoksee jokaisen askeleen, mutta ei koske mihinkään Termixin ulkopuolella.",
|
||||
"runStarted": "Juoksu aloitettu",
|
||||
"runFinished": "Suoritus päättynyt: {{status}}",
|
||||
"trigger": "Laukaista",
|
||||
"steps": "Askeleet",
|
||||
"addStep": "Lisää vaihe",
|
||||
"removeStep": "Poista vaihe",
|
||||
"moveUp": "Siirry ylös",
|
||||
"moveDown": "Siirrä alas",
|
||||
"noSteps": "Ei vielä vaiheita. Lisää yksi, joka kertoo, mitä pitäisi tapahtua.",
|
||||
"webhookTokenTitle": "Webhookin URL-osoite",
|
||||
"webhookTokenDescription": "Tämä näytetään kerran. Tallenna se nyt, sitä ei voi palauttaa myöhemmin.",
|
||||
"copy": "Kopioida",
|
||||
"copied": "Kopioitu",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Rakentaja",
|
||||
"viewGraph": "Kaavio",
|
||||
"lastRun": "Viimeisin juoksu",
|
||||
"never": "Ei koskaan",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Lähtö",
|
||||
"stepError": "Virhe",
|
||||
"dryRunBadge": "Koeajo",
|
||||
"hostSelector": {
|
||||
"trigger": "Käynnistävä isäntä",
|
||||
"host": "Tietty isäntä",
|
||||
"fleet": "Laivasto",
|
||||
"all": "Kaikki isännät"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metrinen kynnysarvo",
|
||||
"host_status": "Isäntä nousee tai laskee",
|
||||
"health_check": "Terveystarkastusten muutokset",
|
||||
"schedule": "Aikataulussa",
|
||||
"docker_event": "Säiliötapahtuma",
|
||||
"internal_event": "Termix-tapahtuma",
|
||||
"webhook": "Saapuva webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Lähetä hälytys",
|
||||
"http": "Soita URL-osoitteeseen",
|
||||
"run_snippet": "Suorita koodinpätkä",
|
||||
"run_command": "Suorita komento",
|
||||
"docker": "Säiliön hallinta",
|
||||
"tunnel": "Hallitse tunnelia",
|
||||
"wol": "Herätä isäntä",
|
||||
"wait": "Odota",
|
||||
"set_var": "Aseta muuttuja",
|
||||
"if": "Jos / muuten",
|
||||
"run_automation": "Suorita toinen automaatio",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Juoksu",
|
||||
"success": "Menestys",
|
||||
"failed": "Epäonnistui",
|
||||
"timeout": "Aikakatkaisu",
|
||||
"skipped": "Ohitettu",
|
||||
"cancelled": "Peruutettu"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Isäntä",
|
||||
"metric": "Metrinen",
|
||||
"mount": "Kiinnityskohta",
|
||||
"operator": "On",
|
||||
"value": "Arvo",
|
||||
"forSeconds": "Jatkuu (sekuntia)",
|
||||
"cooldown": "Jäähdyttelyaika (minuuttia)",
|
||||
"cron": "Cron-lauseke",
|
||||
"intervalSeconds": "Joka (sekunti)",
|
||||
"timezone": "Aikavyöhyke",
|
||||
"timezoneServer": "Palvelimen aika",
|
||||
"timezoneHint": "Cron-ajat luetaan tällä alueella. Ei koske intervalliaikatauluja.",
|
||||
"container": "Kontti",
|
||||
"command": "Komento",
|
||||
"url": "URL-osoite",
|
||||
"method": "Menetelmä",
|
||||
"body": "Keho",
|
||||
"channels": "Lähetä myös osoitteeseen",
|
||||
"title": "Otsikko",
|
||||
"message": "Viesti",
|
||||
"snippet": "Katkelma",
|
||||
"seconds": "Sekuntia",
|
||||
"conditionLeftPlaceholder": "Tarkistettava arvo",
|
||||
"conditionRightPlaceholder": "Vertaa",
|
||||
"variableName": "Muuttujan nimi",
|
||||
"variableValue": "Arvo",
|
||||
"elevated": "Suorita sudon avulla",
|
||||
"onError": "Jos tämä epäonnistuu",
|
||||
"allowPrivateNetwork": "Salli paikallisverkko-osoitteet",
|
||||
"allowPrivateNetworkHint": "Tarvitaan lähiverkossasi itse isännöidylle palvelulle. Oletusarvoisesti pois päältä estääkseen pyynnöt sisäisiin osoitteisiin."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Pysäytä juoksu",
|
||||
"continue": "Jatkaa"
|
||||
},
|
||||
"needsPlugin": "Tarpeet {{plugin}}",
|
||||
"needsPluginHint": "Tämä automaatio ohitetaan, kunnes sen tarvitsema ominaisuus on taas käytettävissä.",
|
||||
"offBadge": "Pois",
|
||||
"docsLink": "Näytä dokumentit",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s sitten",
|
||||
"minutes": "{{count}}minuuttia sitten",
|
||||
"hours": "{{count}}tuntia sitten",
|
||||
"days": "{{count}}d sitten"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automaatiot"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automaatiot",
|
||||
"feature_automations_desc": "Suorita vaiheet automaattisesti, kun jotain tapahtuu, ja saat ilmoituksen."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Huolto",
|
||||
"description": "Keskeytä isännän tilan, kunnon, mittareiden, säilön ja tunnelin katkaisun automatisoinnit työn ollessa käynnissä. Valvonta, manuaaliset suoritukset ja ajoitetut automatisoinnit jatkuvat.",
|
||||
"denied": "Sinulla ei ole oikeutta tarkastella ylläpitoa.",
|
||||
"sharedReadOnly": "Tämä isäntä jaettiin kanssasi. Vain sen omistaja voi muuttaa ylläpitoa.",
|
||||
"failed": "Ylläpitoa ei voitu päivittää.",
|
||||
"active": "Huolto aktiivinen",
|
||||
"estimated": "Arvioitu valmistuminen",
|
||||
"noAutoEnd": "Arvio ei lopeta huoltoa. Lopeta se nimenomaisesti, kun työ on valmis.",
|
||||
"endConfirm": "Lopetetaanko ylläpito ja jatketaanko tapahtumien laukaisemia automaatioita tälle isännälle?",
|
||||
"confirmEnd": "Vahvista loppu",
|
||||
"cancel": "Peruuttaa",
|
||||
"end": "Huoltopäätös",
|
||||
"action": "Toiminta",
|
||||
"startNow": "Aloita nyt",
|
||||
"schedule": "Aikatauluta myöhemmin",
|
||||
"reason": "Syy",
|
||||
"startUtc": "Ensimmäinen lähtö (UTC)",
|
||||
"repeat": "Toistaa",
|
||||
"once": "Kerran",
|
||||
"weekly": "Viikoittain",
|
||||
"monthly": "Kuukausittain",
|
||||
"utcHelp": "Aikataulut käyttävät UTC-aikaa ympäri vuoden. Kuukausiaikataulut ohittavat kuukaudet, joilla ei ole valittua päivää. Suunnitellut ikkunat eivät voi olla päällekkäisiä; ylikuormittava huolto jatkuu myöhemmissä ikkuna-ajoissa.",
|
||||
"duration": "Arvioitu kesto (minuutteina)",
|
||||
"grace": "Lisäaika (minuutteina)",
|
||||
"notify": "Ilmoita kerran, jos olet edelleen offline-tilassa arvion ja lisäajan jälkeen",
|
||||
"addSchedule": "Lisää aikataulu",
|
||||
"schedules": "Aikataulut",
|
||||
"noSchedules": "Ei huoltoaikatauluja.",
|
||||
"completed": "Jo aloitettu",
|
||||
"minutes_one": "{{count}} minuutti",
|
||||
"minutes_other": "{{count}} minuuttia",
|
||||
"remove": "Poista aikataulu",
|
||||
"loadFailed": "Ylläpidon tilaa ei voitu päivittää. Muutokset on poistettu käytöstä, kunnes ne voidaan ladata.",
|
||||
"loading": "Ladataan ylläpitotilaa…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Afficher les automatisations",
|
||||
"description": "Consultez les automatisations et leur historique."
|
||||
},
|
||||
"create": {
|
||||
"title": "Créer des automatisations",
|
||||
"description": "Ajouter de nouvelles automatisations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Modifier les automatisations",
|
||||
"description": "Modifier les automatisations existantes."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Supprimer les automatisations",
|
||||
"description": "Supprimer les automatisations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Exécuter des automatisations",
|
||||
"description": "Déclencher une automatisation manuellement."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatisations",
|
||||
"tabAutomations": "Automatisations",
|
||||
"tabRuns": "Courses",
|
||||
"tabChannels": "Canaux",
|
||||
"createAutomation": "Nouvelle automatisation",
|
||||
"backToAutomations": "Retour aux automatisations",
|
||||
"createTitle": "Nouvelle automatisation",
|
||||
"editTitle": "Automatisation de la modification",
|
||||
"empty": "Aucune automatisation pour le moment. Créez-en une pour qu'elle réagisse à une mesure, une planification ou un événement.",
|
||||
"emptyRuns": "Pas encore de runs.",
|
||||
"channelsHint": "Les canaux sont configurés dans les alertes",
|
||||
"noChannelsHint": "L'alerte est toujours envoyée dans votre boîte de réception. Ajoutez des canaux dans les alertes pour la diffuser également ailleurs.",
|
||||
"nameLabel": "Nom",
|
||||
"namePlaceholder": "Par exemple, nettoyer le répertoire /data lorsqu'il est plein.",
|
||||
"nameRequired": "Le nom est obligatoire",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Description facultative",
|
||||
"enabledLabel": "Activé",
|
||||
"concurrencyLabel": "S'il est déjà en cours d'exécution",
|
||||
"concurrencyHint": "Que faire si ce problème se reproduit avant la fin de la dernière exécution ?",
|
||||
"concurrency": {
|
||||
"skip": "Évitez la nouvelle course",
|
||||
"queue": "Attendez et courez après",
|
||||
"allow": "Exécutez les deux simultanément."
|
||||
},
|
||||
"save": "Enregistrer",
|
||||
"created": "L'automatisation a créé",
|
||||
"updated": "L'automatisation a permis de sauver",
|
||||
"deleted": "Automatisation supprimée",
|
||||
"deleteConfirm": "Supprimer cette automatisation ? Son historique d'exécution est également supprimé.",
|
||||
"runNow": "Courez maintenant",
|
||||
"testRun": "Essai",
|
||||
"testRunHint": "Exécute chaque étape mais ne touche à rien en dehors de Termix.",
|
||||
"runStarted": "La course a commencé",
|
||||
"runFinished": "Course terminée : {{status}}",
|
||||
"trigger": "Déclencheur",
|
||||
"steps": "Mesures",
|
||||
"addStep": "Ajouter une étape",
|
||||
"removeStep": "Supprimer l'étape",
|
||||
"moveUp": "Monter en gamme",
|
||||
"moveDown": "Descendre",
|
||||
"noSteps": "Aucune étape pour l'instant. Ajoutez-en une pour décrire ce qui doit se passer.",
|
||||
"webhookTokenTitle": "URL du webhook",
|
||||
"webhookTokenDescription": "Ceci ne s'affiche qu'une seule fois. Enregistrez-le maintenant, il ne pourra pas être récupéré ultérieurement.",
|
||||
"copy": "Copier",
|
||||
"copied": "Copié",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Constructeur",
|
||||
"viewGraph": "Graphique",
|
||||
"lastRun": "Dernière course",
|
||||
"never": "Jamais",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Sortie",
|
||||
"stepError": "Erreur",
|
||||
"dryRunBadge": "Essai",
|
||||
"hostSelector": {
|
||||
"trigger": "Hôte déclencheur",
|
||||
"host": "hôte spécifique",
|
||||
"fleet": "Flotte",
|
||||
"all": "Tous les hôtes"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Seuil métrique",
|
||||
"host_status": "L'hôte monte ou descend",
|
||||
"health_check": "changements au bilan de santé",
|
||||
"schedule": "Selon un horaire",
|
||||
"docker_event": "événement conteneur",
|
||||
"internal_event": "Événement Termix",
|
||||
"webhook": "Webhook entrant"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Envoyer une alerte",
|
||||
"http": "Appeler une URL",
|
||||
"run_snippet": "Exécuter un extrait de code",
|
||||
"run_command": "Exécuter une commande",
|
||||
"docker": "Contrôler un conteneur",
|
||||
"tunnel": "Contrôler un tunnel",
|
||||
"wol": "Réveillez un hôte",
|
||||
"wait": "Attendez",
|
||||
"set_var": "Définir une variable",
|
||||
"if": "Si / sinon",
|
||||
"run_automation": "Exécutez une autre automatisation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "En cours d’exécution",
|
||||
"success": "Succès",
|
||||
"failed": "Échec",
|
||||
"timeout": "Délai d'attente dépassé",
|
||||
"skipped": "Omission",
|
||||
"cancelled": "Annulé"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Hôte",
|
||||
"metric": "Métrique",
|
||||
"mount": "Point de montage",
|
||||
"operator": "Est",
|
||||
"value": "Valeur",
|
||||
"forSeconds": "Maintenu pendant (secondes)",
|
||||
"cooldown": "Temporisation (minutes)",
|
||||
"cron": "Expression de Cron",
|
||||
"intervalSeconds": "Toutes les (secondes)",
|
||||
"timezone": "Fuseau horaire",
|
||||
"timezoneServer": "Heure du serveur",
|
||||
"timezoneHint": "Les heures des tâches cron sont lues dans cette zone. Ceci ne s'applique pas aux planifications par intervalles.",
|
||||
"container": "Récipient",
|
||||
"command": "Commande",
|
||||
"url": "URL",
|
||||
"method": "Méthode",
|
||||
"body": "Corps",
|
||||
"channels": "Envoyer également à",
|
||||
"title": "Titre",
|
||||
"message": "Message",
|
||||
"snippet": "Fragment",
|
||||
"seconds": "Secondes",
|
||||
"conditionLeftPlaceholder": "Valeur à vérifier",
|
||||
"conditionRightPlaceholder": "Comparer à",
|
||||
"variableName": "Nom de la variable",
|
||||
"variableValue": "Valeur",
|
||||
"elevated": "Exécuter avec sudo",
|
||||
"onError": "Si cela échoue",
|
||||
"allowPrivateNetwork": "Autoriser les adresses réseau locales",
|
||||
"allowPrivateNetworkHint": "Nécessaire pour un service auto-hébergé sur votre réseau local. Désactivé par défaut pour empêcher les requêtes vers des adresses internes."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Arrêtez la course",
|
||||
"continue": "Continuer"
|
||||
},
|
||||
"needsPlugin": "Besoins {{plugin}}",
|
||||
"needsPluginHint": "Cette automatisation est suspendue jusqu'à ce que la fonctionnalité nécessaire soit de nouveau disponible.",
|
||||
"offBadge": "Désactivée",
|
||||
"docsLink": "Voir la documentation",
|
||||
"ago": {
|
||||
"seconds": "{{count}}il y a s",
|
||||
"minutes": "il y a {{count}} min",
|
||||
"hours": "il y a {{count}} h",
|
||||
"days": "il y a {{count}} j"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatisations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatisations",
|
||||
"feature_automations_desc": "Exécutez des actions automatiquement lorsqu'un événement se produit et recevez une notification."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Suspendez les automatisations relatives à l'état des hôtes, à leur santé, aux métriques, aux conteneurs et à la déconnexion des tunnels pendant la durée de l'opération. La surveillance, les exécutions manuelles et les automatisations planifiées se poursuivent.",
|
||||
"denied": "Vous n'êtes pas autorisé à consulter les informations de maintenance.",
|
||||
"sharedReadOnly": "Cet hébergement vous a été proposé à la location. Seul son propriétaire peut en modifier la maintenance.",
|
||||
"failed": "La maintenance n'a pas pu être mise à jour.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Achèvement estimé",
|
||||
"noAutoEnd": "Le devis ne met pas fin à la maintenance. Il faut y mettre fin explicitement une fois les travaux terminés.",
|
||||
"endConfirm": "Mettre fin à la maintenance et reprendre les automatisations déclenchées par des événements pour cet hôte ?",
|
||||
"confirmEnd": "Confirmer la fin",
|
||||
"cancel": "Annuler",
|
||||
"end": "Maintenance finale",
|
||||
"action": "Action",
|
||||
"startNow": "Commencez maintenant",
|
||||
"schedule": "Planifiez plus tard",
|
||||
"reason": "Raison",
|
||||
"startUtc": "Premier démarrage (UTC)",
|
||||
"repeat": "Répéter",
|
||||
"once": "Une fois",
|
||||
"weekly": "Hebdomadaire",
|
||||
"monthly": "Mensuel",
|
||||
"utcHelp": "Les planifications utilisent le temps universel coordonné (UTC) tout au long de l'année. Les planifications mensuelles ignorent les mois sans le jour sélectionné. Les fenêtres de planification ne peuvent pas se chevaucher ; la maintenance en cours se poursuit sur les fenêtres suivantes.",
|
||||
"duration": "Durée estimée (minutes)",
|
||||
"grace": "Délai de grâce (minutes)",
|
||||
"notify": "Veuillez nous informer une seule fois si nous sommes toujours hors ligne après la période estimée et le délai de grâce. Veuillez nous avertir une fois si nous sommes toujours hors ligne après la période estimée et le délai de grâce.",
|
||||
"addSchedule": "Ajouter un horaire",
|
||||
"schedules": "Horaires",
|
||||
"noSchedules": "Aucun programme de maintenance.",
|
||||
"completed": "Déjà commencé",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Supprimer le planning",
|
||||
"loadFailed": "Impossible d'actualiser l'état de maintenance. Les modifications sont désactivées jusqu'à ce que le chargement soit possible.",
|
||||
"loading": "État de la maintenance en cours de chargement…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "הצג אוטומציות",
|
||||
"description": "ראה את האוטומציות ואת ההיסטוריה שלהן."
|
||||
},
|
||||
"create": {
|
||||
"title": "צור אוטומציות",
|
||||
"description": "הוסף אוטומציות חדשות."
|
||||
},
|
||||
"edit": {
|
||||
"title": "עריכת אוטומציות",
|
||||
"description": "שינוי אוטומציות קיימות."
|
||||
},
|
||||
"delete": {
|
||||
"title": "מחיקת אוטומציות",
|
||||
"description": "הסר אוטומציות."
|
||||
},
|
||||
"run": {
|
||||
"title": "הפעלת אוטומציות",
|
||||
"description": "הפעל אוטומציה באופן ידני."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "אוטומציות",
|
||||
"tabAutomations": "אוטומציות",
|
||||
"tabRuns": "ריצות",
|
||||
"tabChannels": "ערוצים",
|
||||
"createAutomation": "אוטומציה חדשה",
|
||||
"backToAutomations": "חזרה לאוטומציות",
|
||||
"createTitle": "אוטומציה חדשה",
|
||||
"editTitle": "עריכה אוטומציה",
|
||||
"empty": "אין עדיין אוטומציות. צור אחת שתגיב למדד, לוח זמנים או אירוע.",
|
||||
"emptyRuns": "עדיין אין ריצות.",
|
||||
"channelsHint": "ערוצים מוגדרים בהתראות",
|
||||
"noChannelsHint": "ההתראה תמיד מגיעה לתיבת הדואר הנכנס שלך. הוסף ערוצים בהתראות כדי לשלוח אותה גם למקום אחר.",
|
||||
"nameLabel": "שֵׁם",
|
||||
"namePlaceholder": "לדוגמה, ניקוי /נתונים כאשר הוא מתמלא",
|
||||
"nameRequired": "שם נדרש",
|
||||
"descriptionLabel": "תֵאוּר",
|
||||
"descriptionPlaceholder": "תיאור אופציונלי",
|
||||
"enabledLabel": "מופעל",
|
||||
"concurrencyLabel": "אם זה כבר פועל",
|
||||
"concurrencyHint": "מה לעשות כאשר זה מופעל שוב לפני שהריצה האחרונה הסתיימה.",
|
||||
"concurrency": {
|
||||
"skip": "דלג על הריצה החדשה",
|
||||
"queue": "חכו ורוץ אחרי",
|
||||
"allow": "הפעל את שניהם בו זמנית"
|
||||
},
|
||||
"save": "לְהַצִיל",
|
||||
"created": "אוטומציה נוצרה",
|
||||
"updated": "אוטומציה נשמרה",
|
||||
"deleted": "אוטומציה נמחקה",
|
||||
"deleteConfirm": "למחוק את האוטומציה הזו? גם היסטוריית הריצות שלה נמחקת.",
|
||||
"runNow": "רוץ עכשיו",
|
||||
"testRun": "ריצת מבחן",
|
||||
"testRunHint": "רץ כל שלב אבל לא נוגע בשום דבר מחוץ לטרמיקס.",
|
||||
"runStarted": "הריצה התחילה",
|
||||
"runFinished": "ריצה הסתיימה: {{status}}",
|
||||
"trigger": "לְהַפְעִיל",
|
||||
"steps": "צעדים",
|
||||
"addStep": "הוסף שלב",
|
||||
"removeStep": "הסר שלב",
|
||||
"moveUp": "הזז למעלה",
|
||||
"moveDown": "הזז למטה",
|
||||
"noSteps": "אין עדיין שלבים. הוסף שלבים כדי לומר מה אמור לקרות.",
|
||||
"webhookTokenTitle": "כתובת אתר של Webhook",
|
||||
"webhookTokenDescription": "זה מוצג פעם אחת. שמור את זה עכשיו, לא ניתן לאחזר את זה מאוחר יותר.",
|
||||
"copy": "לְהַעְתִיק",
|
||||
"copied": "מוּעֲתָק",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "בּוֹנֶה",
|
||||
"viewGraph": "גרָף",
|
||||
"lastRun": "ריצה אחרונה",
|
||||
"never": "לְעוֹלָם לֹא",
|
||||
"duration": "{{seconds}}ים",
|
||||
"stepOutput": "תְפוּקָה",
|
||||
"stepError": "שְׁגִיאָה",
|
||||
"dryRunBadge": "ריצת מבחן",
|
||||
"hostSelector": {
|
||||
"trigger": "מארח מפעיל",
|
||||
"host": "מארח ספציפי",
|
||||
"fleet": "צִי",
|
||||
"all": "כל המארחים"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "סף מטרי",
|
||||
"host_status": "המארח עולה או יורד",
|
||||
"health_check": "שינויים בבדיקת הבריאות",
|
||||
"schedule": "על פי לוח זמנים",
|
||||
"docker_event": "אירוע מיכל",
|
||||
"internal_event": "אירוע טרמיקס",
|
||||
"webhook": "וובהוק נכנס"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "שלח התראה",
|
||||
"http": "קריאה לכתובת URL",
|
||||
"run_snippet": "הפעלת קטע קוד",
|
||||
"run_command": "הפעל פקודה",
|
||||
"docker": "שליטה על מכולה",
|
||||
"tunnel": "שליטה במנהרה",
|
||||
"wol": "להעיר מארח",
|
||||
"wait": "לַחֲכוֹת",
|
||||
"set_var": "הגדר משתנה",
|
||||
"if": "אם / אחרת",
|
||||
"run_automation": "הפעל אוטומציה נוספת",
|
||||
"stop": "לְהַפְסִיק"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "רִיצָה",
|
||||
"success": "הַצלָחָה",
|
||||
"failed": "נִכשָׁל",
|
||||
"timeout": "תם הזמן",
|
||||
"skipped": "דילג",
|
||||
"cancelled": "בּוּטלָה"
|
||||
},
|
||||
"fields": {
|
||||
"host": "מְאָרֵחַ",
|
||||
"metric": "מֶטרִי",
|
||||
"mount": "נקודת הרכבה",
|
||||
"operator": "האם",
|
||||
"value": "עֵרֶך",
|
||||
"forSeconds": "נמשך (שניות)",
|
||||
"cooldown": "זמן קירור (דקות)",
|
||||
"cron": "ביטוי קרון",
|
||||
"intervalSeconds": "כל (שניות)",
|
||||
"timezone": "אזור זמן",
|
||||
"timezoneServer": "זמן שרת",
|
||||
"timezoneHint": "זמני Cron נקראים באזור זה. לא חל על לוחות זמנים של מרווחים.",
|
||||
"container": "מְכוֹלָה",
|
||||
"command": "פְּקוּדָה",
|
||||
"url": "כתובת אתר",
|
||||
"method": "שִׁיטָה",
|
||||
"body": "גוּף",
|
||||
"channels": "שלחו גם אל",
|
||||
"title": "כּוֹתֶרֶת",
|
||||
"message": "הוֹדָעָה",
|
||||
"snippet": "קטע",
|
||||
"seconds": "שניות",
|
||||
"conditionLeftPlaceholder": "ערך לבדיקה",
|
||||
"conditionRightPlaceholder": "השווה מול",
|
||||
"variableName": "שם משתנה",
|
||||
"variableValue": "עֵרֶך",
|
||||
"elevated": "רוץ עם סודו",
|
||||
"onError": "אם זה ייכשל",
|
||||
"allowPrivateNetwork": "אפשר כתובות רשת מקומיות",
|
||||
"allowPrivateNetworkHint": "נדרש עבור שירות אירוח עצמי ברשת הרשת המקומית שלך. כבוי כברירת מחדל כדי למנוע בקשות לכתובות פנימיות."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "עצור את הריצה",
|
||||
"continue": "לְהַמשִׁיך"
|
||||
},
|
||||
"needsPlugin": "צרכים {{plugin}}",
|
||||
"needsPluginHint": "אוטומציה זו מדלגת עד שהתכונה הדרושה לה תהיה זמינה שוב.",
|
||||
"offBadge": "כבוי",
|
||||
"docsLink": "הצג מסמכים",
|
||||
"ago": {
|
||||
"seconds": "לפני {{count}}שניות",
|
||||
"minutes": "לפני {{count}}דקות",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "אוטומציות"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "אוטומציות",
|
||||
"feature_automations_desc": "הפעל שלבים באופן אוטומטי כאשר משהו קורה, וקבל הודעה."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "תַחזוּקָה",
|
||||
"description": "השהה אוטומציות של סטטוס המארח, תקינות, מדדים, ניתוק מנהרות ומכולות בזמן שהעבודה מתבצעת. ניטור, הרצות ידניות ואוטומציות מתוזמנות ממשיכות.",
|
||||
"denied": "אין לך הרשאה לצפות בתחזוקה.",
|
||||
"sharedReadOnly": "מארח זה שותף איתך. רק בעליו יכול לשנות את התחזוקה.",
|
||||
"failed": "לא ניתן היה לעדכן את תוכנית התחזוקה.",
|
||||
"active": "תחזוקה פעילה",
|
||||
"estimated": "השלמה משוערת",
|
||||
"noAutoEnd": "ההערכה אינה מסיימת את התחזוקה. יש לסיים אותה במפורש כאשר העבודה הושלמה.",
|
||||
"endConfirm": "לסיים את התחזוקה ולחדש אוטומציות המופעלות על ידי אירועים עבור מארח זה?",
|
||||
"confirmEnd": "אישור סיום",
|
||||
"cancel": "לְבַטֵל",
|
||||
"end": "סיום תחזוקה",
|
||||
"action": "פְּעוּלָה",
|
||||
"startNow": "התחל עכשיו",
|
||||
"schedule": "קבע למועד מאוחר יותר",
|
||||
"reason": "לְנַמֵק",
|
||||
"startUtc": "התחלה ראשונה (UTC)",
|
||||
"repeat": "לַחֲזוֹר עַל",
|
||||
"once": "פַּעַם",
|
||||
"weekly": "שְׁבוּעִי",
|
||||
"monthly": "יַרחוֹן",
|
||||
"utcHelp": "לוחות זמנים משתמשים ב-UTC לאורך כל השנה. לוחות זמנים חודשיים מדלגים על חודשים ללא היום שנבחר. חלונות מתוכננים אינם יכולים לחפוף; תחזוקה מדורגת ממשיכה בחלונות מאוחרים יותר.",
|
||||
"duration": "משך זמן משוער (בדקות)",
|
||||
"grace": "תקופת חסד (בדקות)",
|
||||
"notify": "הודעה אחת אם עדיין לא מחובר לאחר תקופת ההערכה בתוספת חסד",
|
||||
"addSchedule": "הוסף לוח זמנים",
|
||||
"schedules": "לוחות זמנים",
|
||||
"noSchedules": "אין לוחות זמנים לתחזוקה.",
|
||||
"completed": "כבר התחיל",
|
||||
"minutes_one": "דקה {{count}}",
|
||||
"minutes_other": "{{count}} דקות",
|
||||
"remove": "הסר את לוח הזמנים",
|
||||
"loadFailed": "לא ניתן היה לרענן את סטטוס התחזוקה. השינויים מושבתים עד שניתן יהיה לטעון אותו.",
|
||||
"loading": "טוען סטטוס תחזוקה…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "चैनल",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "नाम",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "नाम आवश्यक है",
|
||||
"descriptionLabel": "विवरण",
|
||||
"descriptionPlaceholder": "वैकल्पिक विवरण",
|
||||
"enabledLabel": "सक्षम",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "सहेजें",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "ट्रिगर",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "कॉपी",
|
||||
"copied": "कॉपी किया गया",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "कभी नहीं",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "आउटपुट",
|
||||
"stepError": "त्रुटि",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "सभी होस्ट"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "स्टॉप"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "चालू",
|
||||
"success": "सफल",
|
||||
"failed": "असफल",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "होस्ट",
|
||||
"metric": "मीट्रिक",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "कूलडाउन (मिनट)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "कमांड",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "शीर्षक",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "बंद",
|
||||
"docsLink": "दस्तावेज़ देखें",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m पहले",
|
||||
"hours": "{{count}}h पहले",
|
||||
"days": "{{count}}d पहले"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "रखरखाव",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "रद्द करें",
|
||||
"end": "End maintenance",
|
||||
"action": "क्रिया",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Automatizálások megtekintése",
|
||||
"description": "Tekintse meg az automatizálásokat és azok előzményeit."
|
||||
},
|
||||
"create": {
|
||||
"title": "Automatizálások létrehozása",
|
||||
"description": "Új automatizálások hozzáadása."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Automatizálások szerkesztése",
|
||||
"description": "Módosítsa a meglévő automatizálásokat."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Automatizálások törlése",
|
||||
"description": "Automatizálások eltávolítása."
|
||||
},
|
||||
"run": {
|
||||
"title": "Automatizálások futtatása",
|
||||
"description": "Automatizálás manuális indítása."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatizálások",
|
||||
"tabAutomations": "Automatizálások",
|
||||
"tabRuns": "Futások",
|
||||
"tabChannels": "Csatornák",
|
||||
"createAutomation": "Új automatizálás",
|
||||
"backToAutomations": "Vissza az automatizálásokhoz",
|
||||
"createTitle": "Új automatizálás",
|
||||
"editTitle": "Szerkesztési automatizálás",
|
||||
"empty": "Még nincsenek automatizálások. Hozz létre egyet, amely egy mérőszámra, ütemezésre vagy eseményre reagál.",
|
||||
"emptyRuns": "Még nincsenek futások.",
|
||||
"channelsHint": "A csatornák a Riasztások menüpontban vannak beállítva.",
|
||||
"noChannelsHint": "Az értesítés mindig a beérkező levelek mappájába érkezik. Adj hozzá csatornákat az Értesítések részben, hogy máshová is elküldhesd.",
|
||||
"nameLabel": "Név",
|
||||
"namePlaceholder": "pl. /data törlése, amikor megtelik",
|
||||
"nameRequired": "Név megadása kötelező",
|
||||
"descriptionLabel": "Leírás",
|
||||
"descriptionPlaceholder": "Opcionális leírás",
|
||||
"enabledLabel": "Engedélyezve",
|
||||
"concurrencyLabel": "Ha már fut",
|
||||
"concurrencyHint": "Mi a teendő, ha ez ismét aktiválódik, mielőtt az utolsó futtatás befejeződött?",
|
||||
"concurrency": {
|
||||
"skip": "Kihagyja az új futást",
|
||||
"queue": "Várj és fuss utána",
|
||||
"allow": "Futtassa mindkettőt egyszerre"
|
||||
},
|
||||
"save": "Megtakarítás",
|
||||
"created": "Automatizálás létrehozva",
|
||||
"updated": "Automatizálás mentve",
|
||||
"deleted": "Automatizálás törölve",
|
||||
"deleteConfirm": "Törli ezt az automatizálást? A futási előzményei is törlődnek.",
|
||||
"runNow": "Futtatás most",
|
||||
"testRun": "Próbaüzem",
|
||||
"testRunHint": "Minden lépést lefuttat, de a Termixen kívül semmihez sem ér hozzá.",
|
||||
"runStarted": "Futtatás elkezdve",
|
||||
"runFinished": "Futtatás befejezve: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Lépések",
|
||||
"addStep": "Lépés hozzáadása",
|
||||
"removeStep": "Lépés eltávolítása",
|
||||
"moveUp": "Feljebb mozgatás",
|
||||
"moveDown": "Lejjebb mozgatás",
|
||||
"noSteps": "Még nincsenek lépések. Írj be egyet, ami leírja, hogy minek kellene történnie.",
|
||||
"webhookTokenTitle": "Webhook URL-címe",
|
||||
"webhookTokenDescription": "Ez egyszer jelenik meg. Mentsd el most, később nem lesz elérhető.",
|
||||
"copy": "Másolat",
|
||||
"copied": "Másolva",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Építész",
|
||||
"viewGraph": "Grafikon",
|
||||
"lastRun": "Utolsó futás",
|
||||
"never": "Soha",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Kimenet",
|
||||
"stepError": "Hiba",
|
||||
"dryRunBadge": "Próbaüzem",
|
||||
"hostSelector": {
|
||||
"trigger": "Kiváltó gazdagép",
|
||||
"host": "Adott gazdagép",
|
||||
"fleet": "Flotta",
|
||||
"all": "Minden házigazda"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metrikus küszöbérték",
|
||||
"host_status": "A host fel- vagy lekapcsolódik",
|
||||
"health_check": "Egészségügyi ellenőrzés változásai",
|
||||
"schedule": "Ütemterv szerint",
|
||||
"docker_event": "Konténeresemény",
|
||||
"internal_event": "Termix esemény",
|
||||
"webhook": "Bejövő webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Értesítés küldése",
|
||||
"http": "URL hívása",
|
||||
"run_snippet": "Kódrészlet futtatása",
|
||||
"run_command": "Parancs futtatása",
|
||||
"docker": "Egy konténer vezérlése",
|
||||
"tunnel": "Irányíts egy alagutat",
|
||||
"wol": "Ébresszen fel egy házigazdát",
|
||||
"wait": "Várjon",
|
||||
"set_var": "Változó beállítása",
|
||||
"if": "Ha / egyébként",
|
||||
"run_automation": "Futtasson egy másik automatizálást",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Futás",
|
||||
"success": "Siker",
|
||||
"failed": "Sikertelen",
|
||||
"timeout": "Időtúllépés történt",
|
||||
"skipped": "Kihagyva",
|
||||
"cancelled": "Lemondva"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Házigazda",
|
||||
"metric": "Metrika",
|
||||
"mount": "Csatlakozási pont",
|
||||
"operator": "Van",
|
||||
"value": "Érték",
|
||||
"forSeconds": "Fenntartott (másodperc)",
|
||||
"cooldown": "Lehűlési idő (perc)",
|
||||
"cron": "Cron kifejezés",
|
||||
"intervalSeconds": "Minden (másodperc)",
|
||||
"timezone": "Időzóna",
|
||||
"timezoneServer": "Szerveridő",
|
||||
"timezoneHint": "A Cron idők leolvasása ebben a zónában történik. Nem vonatkozik az intervallumos ütemtervekre.",
|
||||
"container": "Tartály",
|
||||
"command": "Parancs",
|
||||
"url": "URL-cím",
|
||||
"method": "Módszer",
|
||||
"body": "Test",
|
||||
"channels": "Küldés ide is",
|
||||
"title": "Cím",
|
||||
"message": "Üzenet",
|
||||
"snippet": "Töredék",
|
||||
"seconds": "Másodperc",
|
||||
"conditionLeftPlaceholder": "Ellenőrizendő érték",
|
||||
"conditionRightPlaceholder": "Összevet",
|
||||
"variableName": "Változó neve",
|
||||
"variableValue": "Érték",
|
||||
"elevated": "Futtassa a sudo paranccsal",
|
||||
"onError": "Ha ez nem sikerül",
|
||||
"allowPrivateNetwork": "Helyi hálózati címek engedélyezése",
|
||||
"allowPrivateNetworkHint": "Szükséges egy saját tárhelyen futó szolgáltatáshoz a helyi hálózaton. Alapértelmezés szerint ki van kapcsolva, hogy megakadályozza a belső címekre irányuló kéréseket."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Állítsd meg a futást",
|
||||
"continue": "Folytat"
|
||||
},
|
||||
"needsPlugin": "Szükségletek {{plugin}}",
|
||||
"needsPluginHint": "Ez az automatizálás kimarad, amíg a szükséges funkció újra elérhetővé nem válik.",
|
||||
"offBadge": "Le",
|
||||
"docsLink": "Dokumentumok megtekintése",
|
||||
"ago": {
|
||||
"seconds": "{{count}}másodperccel ezelőtt",
|
||||
"minutes": "{{count}}perccel ezelőtt",
|
||||
"hours": "{{count}}órával ezelőtt",
|
||||
"days": "{{count}}nappal ezelőtt"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatizálások"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatizálások",
|
||||
"feature_automations_desc": "Automatikusan futtassa a lépéseket, amikor valami történik, és kapjon értesítést."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Karbantartás",
|
||||
"description": "A folyamatban lévő munka alatt szüneteltesse a hoszt állapot-, egészség-, metrika-, konténer- és alagút-leválasztási automatizálásokat. A monitorozás, a manuális futtatások és az ütemezett automatizálások továbbra is működnek.",
|
||||
"denied": "Nincs jogosultsága a karbantartás megtekintésére.",
|
||||
"sharedReadOnly": "Ezt a gazdagépet megosztották veled. Csak a tulajdonosa módosíthatja a karbantartási beállításokat.",
|
||||
"failed": "A karbantartás frissítése nem sikerült.",
|
||||
"active": "Karbantartás aktív",
|
||||
"estimated": "Várható befejezés",
|
||||
"noAutoEnd": "A becslés nem fejezi be a karbantartást. A munka befejezésekor explicit módon fejezze be.",
|
||||
"endConfirm": "Befejezi a karbantartást, és folytatja az eseményvezérelt automatizálásokat ennél a gazdagépnél?",
|
||||
"confirmEnd": "Vég megerősítése",
|
||||
"cancel": "Mégsem",
|
||||
"end": "Karbantartás vége",
|
||||
"action": "Akció",
|
||||
"startNow": "Kezdés most",
|
||||
"schedule": "Későbbi időpontra ütemezhető",
|
||||
"reason": "Ok",
|
||||
"startUtc": "Első indítás (UTC)",
|
||||
"repeat": "Ismétlés",
|
||||
"once": "Egyszer",
|
||||
"weekly": "Heti",
|
||||
"monthly": "Havi",
|
||||
"utcHelp": "Az ütemtervek az év során UTC-t használják. A havi ütemtervek kihagyják a kiválasztott nap nélküli hónapokat. A tervezett ablakok nem fedhetik át egymást; a túlterheléses karbantartás a későbbi ablakokban is folytatódik.",
|
||||
"duration": "Becsült időtartam (perc)",
|
||||
"grace": "Türelmi időszak (perc)",
|
||||
"notify": "Értesítsen egyszer, ha a becslés és a türelmi időszak után is offline állapotban van",
|
||||
"addSchedule": "Ütemezés hozzáadása",
|
||||
"schedules": "Ütemtervek",
|
||||
"noSchedules": "Nincsenek karbantartási ütemtervek.",
|
||||
"completed": "Már elkezdődött",
|
||||
"minutes_one": "{{count}} perc",
|
||||
"minutes_other": "{{count}} perc",
|
||||
"remove": "Ütemezés eltávolítása",
|
||||
"loadFailed": "Nem sikerült frissíteni a karbantartási állapotot. A változtatások le vannak tiltva, amíg be nem töltődik.",
|
||||
"loading": "Karbantartási állapot betöltése…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Save",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}} menit lalu",
|
||||
"hours": "{{count}} jam lalu",
|
||||
"days": "{{count}} detik lalu"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancel",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Visualizza le automazioni",
|
||||
"description": "Visualizza le automazioni e la loro cronologia."
|
||||
},
|
||||
"create": {
|
||||
"title": "Creare automazioni",
|
||||
"description": "Aggiungi nuove automazioni."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Automazioni di modifica",
|
||||
"description": "Modifica le automazioni esistenti."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Eliminazione delle automazioni",
|
||||
"description": "Rimuovi le automazioni."
|
||||
},
|
||||
"run": {
|
||||
"title": "Eseguire automazioni",
|
||||
"description": "Attivare un'automazione manualmente."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automazioni",
|
||||
"tabAutomations": "Automazioni",
|
||||
"tabRuns": "Corse",
|
||||
"tabChannels": "Canali",
|
||||
"createAutomation": "Nuova automazione",
|
||||
"backToAutomations": "Torna alle automazioni",
|
||||
"createTitle": "Nuova automazione",
|
||||
"editTitle": "Automazione di modifica",
|
||||
"empty": "Nessuna automazione ancora disponibile. Creane una per reagire a una metrica, a una pianificazione o a un evento.",
|
||||
"emptyRuns": "Nessuna corsa ancora.",
|
||||
"channelsHint": "I canali sono configurati negli avvisi",
|
||||
"noChannelsHint": "L'avviso viene sempre inviato alla tua casella di posta. Aggiungi i canali agli avvisi per inviarlo anche ad altri destinatari.",
|
||||
"nameLabel": "Nome",
|
||||
"namePlaceholder": "Ad esempio, pulire /data quando è pieno",
|
||||
"nameRequired": "Nome obbligatorio",
|
||||
"descriptionLabel": "Descrizione",
|
||||
"descriptionPlaceholder": "Descrizione opzionale",
|
||||
"enabledLabel": "Abilitato",
|
||||
"concurrencyLabel": "Se è già in esecuzione",
|
||||
"concurrencyHint": "Cosa fare se questo problema si ripresenta prima che l'ultima esecuzione sia terminata.",
|
||||
"concurrency": {
|
||||
"skip": "Salta la nuova corsa",
|
||||
"queue": "Aspetta e corri dopo",
|
||||
"allow": "Eseguili entrambi contemporaneamente"
|
||||
},
|
||||
"save": "Salva",
|
||||
"created": "Automazione creata",
|
||||
"updated": "Automazione salvata",
|
||||
"deleted": "Automazione eliminata",
|
||||
"deleteConfirm": "Eliminare questa automazione? Anche la sua cronologia di esecuzione verrà eliminata.",
|
||||
"runNow": "Corri adesso",
|
||||
"testRun": "Esecuzione del test",
|
||||
"testRunHint": "Esegue ogni passaggio ma non tocca nulla al di fuori di Termix.",
|
||||
"runStarted": "Corsa iniziata",
|
||||
"runFinished": "Corsa terminata: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Passaggi",
|
||||
"addStep": "Aggiungi passaggio",
|
||||
"removeStep": "Rimuovere il passaggio",
|
||||
"moveUp": "Spostarsi verso l'alto",
|
||||
"moveDown": "Scendendo",
|
||||
"noSteps": "Nessun passaggio ancora. Aggiungine uno per specificare cosa dovrebbe succedere.",
|
||||
"webhookTokenTitle": "URL del webhook",
|
||||
"webhookTokenDescription": "Questa immagine viene visualizzata una sola volta. Salvala ora, non sarà possibile recuperarla in seguito.",
|
||||
"copy": "Copia",
|
||||
"copied": "Copiato",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Costruttore",
|
||||
"viewGraph": "Grafico",
|
||||
"lastRun": "Prima corsa",
|
||||
"never": "Mai",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Errore",
|
||||
"dryRunBadge": "Esecuzione del test",
|
||||
"hostSelector": {
|
||||
"trigger": "Host che ha attivato l'evento",
|
||||
"host": "Ospite specifico",
|
||||
"fleet": "Flotta",
|
||||
"all": "Tutti gli host"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Soglia metrica",
|
||||
"host_status": "L'host sale o scende",
|
||||
"health_check": "modifiche al controllo sanitario",
|
||||
"schedule": "Secondo un programma",
|
||||
"docker_event": "evento contenitore",
|
||||
"internal_event": "Evento Termix",
|
||||
"webhook": "Webhook in entrata"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Invia un avviso",
|
||||
"http": "Chiamare un medico",
|
||||
"run_snippet": "Esegui uno snippet",
|
||||
"run_command": "Eseguire un comando",
|
||||
"docker": "Controllare un contenitore",
|
||||
"tunnel": "Controllare un tunnel",
|
||||
"wol": "Svegliare un ospite",
|
||||
"wait": "Aspettare",
|
||||
"set_var": "Imposta una variabile",
|
||||
"if": "Se / altrimenti",
|
||||
"run_automation": "Esegui un'altra automazione",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "In esecuzione",
|
||||
"success": "Successo",
|
||||
"failed": "Fallito",
|
||||
"timeout": "Tempo scaduto",
|
||||
"skipped": "Saltato",
|
||||
"cancelled": "Annullato"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metrica",
|
||||
"mount": "Punto di appoggio",
|
||||
"operator": "È",
|
||||
"value": "Valore",
|
||||
"forSeconds": "Sostenuto per (secondi)",
|
||||
"cooldown": "Cooldown (minuti)",
|
||||
"cron": "espressione Cron",
|
||||
"intervalSeconds": "Ogni (secondi)",
|
||||
"timezone": "Fuso orario",
|
||||
"timezoneServer": "Ora del server",
|
||||
"timezoneHint": "In questa zona vengono letti i tempi di Cron. Non si applica alle programmazioni a intervalli.",
|
||||
"container": "Contenitore",
|
||||
"command": "Comando",
|
||||
"url": "URL",
|
||||
"method": "Metodo",
|
||||
"body": "Corpo",
|
||||
"channels": "Invia anche a",
|
||||
"title": "Titolo",
|
||||
"message": "Messaggio",
|
||||
"snippet": "Frammento",
|
||||
"seconds": "secondi",
|
||||
"conditionLeftPlaceholder": "Valore da controllare",
|
||||
"conditionRightPlaceholder": "Confronta con",
|
||||
"variableName": "Nome variabile",
|
||||
"variableValue": "Valore",
|
||||
"elevated": "Esegui con sudo",
|
||||
"onError": "Se questo non funziona",
|
||||
"allowPrivateNetwork": "Consenti indirizzi di rete locale",
|
||||
"allowPrivateNetworkHint": "Necessario per un servizio self-hosted sulla tua LAN. Disattivato per impostazione predefinita per impedire richieste a indirizzi interni."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Ferma la corsa",
|
||||
"continue": "Proseguire"
|
||||
},
|
||||
"needsPlugin": "Bisogno {{plugin}}",
|
||||
"needsPluginHint": "Questa automazione viene saltata finché la funzionalità necessaria non sarà nuovamente disponibile.",
|
||||
"offBadge": "Disattivo",
|
||||
"docsLink": "Vedi documenti",
|
||||
"ago": {
|
||||
"seconds": "{{count}}secondi fa",
|
||||
"minutes": "{{count}}m fa",
|
||||
"hours": "{{count}}h fa",
|
||||
"days": "{{count}}d fa"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automazioni"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automazioni",
|
||||
"feature_automations_desc": "Esegui automaticamente i passaggi quando si verifica un evento e ricevi una notifica."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Manutenzione",
|
||||
"description": "Metti in pausa le automazioni relative allo stato dell'host, all'integrità, alle metriche, ai container e alla disconnessione del tunnel durante l'esecuzione dei lavori. Il monitoraggio, le esecuzioni manuali e le automazioni pianificate continuano.",
|
||||
"denied": "Non hai l'autorizzazione per visualizzare gli interventi di manutenzione.",
|
||||
"sharedReadOnly": "Questo host è stato condiviso con te. Solo il proprietario può modificarne la manutenzione.",
|
||||
"failed": "Impossibile aggiornare la manutenzione.",
|
||||
"active": "Manutenzione attiva",
|
||||
"estimated": "Completamento previsto",
|
||||
"noAutoEnd": "Il preventivo non conclude la manutenzione. La sua conclusione va esplicitamente al termine dei lavori.",
|
||||
"endConfirm": "Terminare la manutenzione e riprendere le automazioni attivate da eventi per questo host?",
|
||||
"confirmEnd": "Conferma fine",
|
||||
"cancel": "Annulla",
|
||||
"end": "Manutenzione finale",
|
||||
"action": "Azione",
|
||||
"startNow": "Inizia ora",
|
||||
"schedule": "Programma per dopo",
|
||||
"reason": "Motivo",
|
||||
"startUtc": "Primo inizio (UTC)",
|
||||
"repeat": "Ripetere",
|
||||
"once": "Una volta",
|
||||
"weekly": "Settimanale",
|
||||
"monthly": "Mensile",
|
||||
"utcHelp": "Le pianificazioni utilizzano il fuso orario UTC durante tutto l'anno. Le pianificazioni mensili saltano i mesi in cui non è selezionato il giorno. Le finestre temporali pianificate non possono sovrapporsi; la manutenzione straordinaria si estende anche alle finestre successive.",
|
||||
"duration": "Durata stimata (minuti)",
|
||||
"grace": "Periodo di grazia (minuti)",
|
||||
"notify": "Avvisami una volta se rimani ancora offline dopo il periodo stimato più il periodo di tolleranza.",
|
||||
"addSchedule": "Aggiungi programma",
|
||||
"schedules": "Orari",
|
||||
"noSchedules": "Nessun programma di manutenzione.",
|
||||
"completed": "iniziato",
|
||||
"minutes_one": "{{count}} minuto",
|
||||
"minutes_other": "{{count}} minuti",
|
||||
"remove": "Rimuovere la pianificazione",
|
||||
"loadFailed": "Impossibile aggiornare lo stato della manutenzione. Le modifiche sono disabilitate fino al caricamento.",
|
||||
"loading": "Caricamento dello stato di manutenzione…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "自動化を表示する",
|
||||
"description": "自動化処理とその履歴をご覧ください。"
|
||||
},
|
||||
"create": {
|
||||
"title": "自動化を作成する",
|
||||
"description": "新しい自動化機能を追加します。"
|
||||
},
|
||||
"edit": {
|
||||
"title": "自動化を編集する",
|
||||
"description": "既存の自動化プロセスを変更します。"
|
||||
},
|
||||
"delete": {
|
||||
"title": "自動化を削除する",
|
||||
"description": "自動化機能を削除してください。"
|
||||
},
|
||||
"run": {
|
||||
"title": "自動化を実行する",
|
||||
"description": "自動化処理を手動で起動する。"
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "自動化",
|
||||
"tabAutomations": "自動化",
|
||||
"tabRuns": "走る",
|
||||
"tabChannels": "チャンネル",
|
||||
"createAutomation": "新しい自動化",
|
||||
"backToAutomations": "自動化に戻る",
|
||||
"createTitle": "新しい自動化",
|
||||
"editTitle": "編集自動化",
|
||||
"empty": "自動化はまだ設定されていません。指標、スケジュール、またはイベントに応じて自動化を設定してください。",
|
||||
"emptyRuns": "まだ得点はありません。",
|
||||
"channelsHint": "アラートでチャンネルを設定します",
|
||||
"noChannelsHint": "アラートは常に受信トレイに届きます。アラート設定でチャネルを追加すれば、他の場所にも送信できます。",
|
||||
"nameLabel": "名前",
|
||||
"namePlaceholder": "例:/data がいっぱいになったらクリーンアップする",
|
||||
"nameRequired": "名前は必須です",
|
||||
"descriptionLabel": "説明",
|
||||
"descriptionPlaceholder": "任意の説明",
|
||||
"enabledLabel": "有効",
|
||||
"concurrencyLabel": "既に実行中の場合",
|
||||
"concurrencyHint": "前回の実行が終了する前に、これが再び発生した場合の対処法。",
|
||||
"concurrency": {
|
||||
"skip": "新しいランをスキップ",
|
||||
"queue": "待ってから追いかける",
|
||||
"allow": "両方を同時に実行する"
|
||||
},
|
||||
"save": "保存",
|
||||
"created": "自動化によって作成されました",
|
||||
"updated": "自動化が保存されました",
|
||||
"deleted": "自動化が削除されました",
|
||||
"deleteConfirm": "この自動化を削除すると、実行履歴も削除されます。",
|
||||
"runNow": "今すぐ実行",
|
||||
"testRun": "試運転",
|
||||
"testRunHint": "すべてのステップを実行しますが、Termix以外のものには一切触れません。",
|
||||
"runStarted": "ランニング開始",
|
||||
"runFinished": "実行完了: {{status}}",
|
||||
"trigger": "トリガー",
|
||||
"steps": "手順",
|
||||
"addStep": "ステップを追加する",
|
||||
"removeStep": "削除手順",
|
||||
"moveUp": "上へ進む",
|
||||
"moveDown": "下へ移動",
|
||||
"noSteps": "まだ手順がありません。何が起こるべきかを記述する手順を追加してください。",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "これは一度しか表示されません。今すぐ保存してください。後で取り出すことはできません。",
|
||||
"copy": "コピー",
|
||||
"copied": "コピーしました",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "ビルダー",
|
||||
"viewGraph": "グラフ",
|
||||
"lastRun": "最後の走行",
|
||||
"never": "なし",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "出力",
|
||||
"stepError": "エラー",
|
||||
"dryRunBadge": "試運転",
|
||||
"hostSelector": {
|
||||
"trigger": "トリガーホスト",
|
||||
"host": "特定の宿主",
|
||||
"fleet": "艦隊",
|
||||
"all": "すべてのホスト"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "メトリックしきい値",
|
||||
"host_status": "ホストが起動または停止する",
|
||||
"health_check": "健康チェックの変更点",
|
||||
"schedule": "スケジュール通りに",
|
||||
"docker_event": "コンテナイベント",
|
||||
"internal_event": "ターミックスイベント",
|
||||
"webhook": "受信ウェブフック"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "アラートを送信する",
|
||||
"http": "URLを呼び出す",
|
||||
"run_snippet": "スニペットを実行する",
|
||||
"run_command": "コマンドを実行する",
|
||||
"docker": "コンテナを制御する",
|
||||
"tunnel": "トンネルを制御する",
|
||||
"wol": "ホストを起こす",
|
||||
"wait": "待って",
|
||||
"set_var": "変数を設定する",
|
||||
"if": "もし/そうでなければ",
|
||||
"run_automation": "別の自動化を実行する",
|
||||
"stop": "ストップ"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "実行中",
|
||||
"success": "成功",
|
||||
"failed": "失敗",
|
||||
"timeout": "タイムアウト",
|
||||
"skipped": "スキップしました",
|
||||
"cancelled": "キャンセル"
|
||||
},
|
||||
"fields": {
|
||||
"host": "ホスト",
|
||||
"metric": "メトリック",
|
||||
"mount": "取り付けポイント",
|
||||
"operator": "は",
|
||||
"value": "価値",
|
||||
"forSeconds": "(秒)の間持続",
|
||||
"cooldown": "クールダウン(分)",
|
||||
"cron": "Cron発現",
|
||||
"intervalSeconds": "(秒)ごとに",
|
||||
"timezone": "タイムゾーン",
|
||||
"timezoneServer": "サーバー時間",
|
||||
"timezoneHint": "このゾーンでは、cronの実行時間が読み取られます。インターバルスケジュールには適用されません。",
|
||||
"container": "容器",
|
||||
"command": "コマンド",
|
||||
"url": "URL",
|
||||
"method": "方法",
|
||||
"body": "体",
|
||||
"channels": "また、以下へも送信してください。",
|
||||
"title": "タイトル",
|
||||
"message": "メッセージ",
|
||||
"snippet": "抜粋",
|
||||
"seconds": "秒",
|
||||
"conditionLeftPlaceholder": "チェックすべき値",
|
||||
"conditionRightPlaceholder": "比較対象",
|
||||
"variableName": "変数名",
|
||||
"variableValue": "価値",
|
||||
"elevated": "sudo を付けて実行",
|
||||
"onError": "これが失敗した場合",
|
||||
"allowPrivateNetwork": "ローカルネットワークアドレスを許可する",
|
||||
"allowPrivateNetworkHint": "LAN上でセルフホスト型サービスを実行する場合に必要です。内部アドレスへのリクエストを防ぐため、デフォルトでは無効になっています。"
|
||||
},
|
||||
"onError": {
|
||||
"stop": "走るのをやめろ",
|
||||
"continue": "続ける"
|
||||
},
|
||||
"needsPlugin": "必要数 {{plugin}}",
|
||||
"needsPluginHint": "この自動化処理は、必要な機能が再び利用可能になるまでスキップされます。",
|
||||
"offBadge": "オフ",
|
||||
"docsLink": "ドキュメントを見る",
|
||||
"ago": {
|
||||
"seconds": "{{count}}秒前",
|
||||
"minutes": "{{count}}分前",
|
||||
"hours": "{{count}}時間前",
|
||||
"days": "{{count}}日前"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "自動化"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "自動化",
|
||||
"feature_automations_desc": "何かが発生した際に自動的に手順を実行し、通知を受け取ります。"
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "メンテナンス",
|
||||
"description": "作業中は、ホストの状態、健全性、メトリック、コンテナ、トンネル切断に関する自動化処理を一時停止します。監視、手動実行、およびスケジュールされた自動化処理は継続されます。",
|
||||
"denied": "メンテナンス情報を閲覧する権限がありません。",
|
||||
"sharedReadOnly": "このホストはあなたと共有されています。メンテナンス設定を変更できるのは所有者のみです。",
|
||||
"failed": "メンテナンスの更新ができませんでした。",
|
||||
"active": "メンテナンスが有効です",
|
||||
"estimated": "完成予定",
|
||||
"noAutoEnd": "見積もりはメンテナンスの終了を意味するものではありません。作業が完了した時点で、明示的に終了してください。",
|
||||
"endConfirm": "このホストのメンテナンスを終了し、イベントトリガーによる自動化を再開しますか?",
|
||||
"confirmEnd": "終了を確認する",
|
||||
"cancel": "キャンセル",
|
||||
"end": "最終メンテナンス",
|
||||
"action": "アクション",
|
||||
"startNow": "今すぐ始めましょう",
|
||||
"schedule": "後でスケジュールする",
|
||||
"reason": "理由",
|
||||
"startUtc": "最初の開始時刻(UTC)",
|
||||
"repeat": "繰り返す",
|
||||
"once": "一度",
|
||||
"weekly": "毎週",
|
||||
"monthly": "月刊",
|
||||
"utcHelp": "年間を通してスケジュールはUTCを使用します。月間スケジュールでは、選択した日がない月はスキップされます。計画された作業期間は重複できません。作業期間が超過した場合、その超過作業は後の作業期間にも引き継がれます。",
|
||||
"duration": "所要時間の目安(分)",
|
||||
"grace": "猶予期間(分)",
|
||||
"notify": "推定期間と猶予期間を過ぎてもオフライン状態が続く場合は、一度通知してください。",
|
||||
"addSchedule": "スケジュールを追加",
|
||||
"schedules": "スケジュール",
|
||||
"noSchedules": "メンテナンススケジュールはありません。",
|
||||
"completed": "既に開始済み",
|
||||
"minutes_one": "{{count}} 分",
|
||||
"minutes_other": "{{count}} 分",
|
||||
"remove": "スケジュールを削除",
|
||||
"loadFailed": "メンテナンス状況を更新できませんでした。読み込みが完了するまで、変更は無効になっています。",
|
||||
"loading": "メンテナンスステータスをロード中…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "자동화 보기",
|
||||
"description": "자동화 기능과 그 이력을 확인하세요."
|
||||
},
|
||||
"create": {
|
||||
"title": "자동화를 생성하세요",
|
||||
"description": "새로운 자동화를 추가하세요."
|
||||
},
|
||||
"edit": {
|
||||
"title": "자동화 편집",
|
||||
"description": "기존 자동화 설정을 변경하세요."
|
||||
},
|
||||
"delete": {
|
||||
"title": "자동화 삭제",
|
||||
"description": "자동화 기능을 제거하세요."
|
||||
},
|
||||
"run": {
|
||||
"title": "자동화 실행",
|
||||
"description": "자동화 기능을 수동으로 실행합니다."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "자동화",
|
||||
"tabAutomations": "자동화",
|
||||
"tabRuns": "실행",
|
||||
"tabChannels": "채널",
|
||||
"createAutomation": "새로운 자동화",
|
||||
"backToAutomations": "자동화 목록으로 돌아가기",
|
||||
"createTitle": "새로운 자동화",
|
||||
"editTitle": "편집 자동화",
|
||||
"empty": "아직 자동화가 설정되어 있지 않습니다. 지표, 일정 또는 이벤트에 반응하는 자동화를 생성하세요.",
|
||||
"emptyRuns": "아직 실행된 적이 없습니다.",
|
||||
"channelsHint": "알림에 채널이 설정됩니다.",
|
||||
"noChannelsHint": "알림은 항상 받은 편지함으로 전송됩니다. 알림 설정에서 채널을 추가하면 다른 곳으로도 알림을 보낼 수 있습니다.",
|
||||
"nameLabel": "이름",
|
||||
"namePlaceholder": "예: /data 디렉토리가 가득 차면 정리합니다.",
|
||||
"nameRequired": "이름은 필수입니다",
|
||||
"descriptionLabel": "설명",
|
||||
"descriptionPlaceholder": "선택 사항 설명",
|
||||
"enabledLabel": "사용",
|
||||
"concurrencyLabel": "이미 실행 중인 경우",
|
||||
"concurrencyHint": "마지막 실행이 완료되기 전에 이 문제가 다시 발생할 경우 어떻게 해야 할까요?",
|
||||
"concurrency": {
|
||||
"skip": "새로운 실행을 건너뛰세요",
|
||||
"queue": "기다렸다가 실행하세요",
|
||||
"allow": "두 가지를 동시에 실행하세요"
|
||||
},
|
||||
"save": "저장",
|
||||
"created": "자동화 생성됨",
|
||||
"updated": "자동화 저장됨",
|
||||
"deleted": "자동화 삭제됨",
|
||||
"deleteConfirm": "이 자동화를 삭제하시겠습니까? 실행 기록도 함께 삭제됩니다.",
|
||||
"runNow": "지금 실행하세요",
|
||||
"testRun": "테스트 실행",
|
||||
"testRunHint": "모든 단계를 실행하지만 Termix 외부의 어떤 것도 건드리지 않습니다.",
|
||||
"runStarted": "실행 시작됨",
|
||||
"runFinished": "실행 완료: {{status}}",
|
||||
"trigger": "트리거",
|
||||
"steps": "단계",
|
||||
"addStep": "단계 추가",
|
||||
"removeStep": "제거 단계",
|
||||
"moveUp": "위로 이동",
|
||||
"moveDown": "아래로 이동",
|
||||
"noSteps": "아직 단계가 없습니다. 어떤 일이 일어나야 하는지 설명하는 단계를 추가하세요.",
|
||||
"webhookTokenTitle": "웹훅 URL",
|
||||
"webhookTokenDescription": "이 내용은 한 번만 표시됩니다. 지금 저장하세요. 나중에 다시 불러올 수 없습니다.",
|
||||
"copy": "복사",
|
||||
"copied": "복사됨",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "건축업자",
|
||||
"viewGraph": "그래프",
|
||||
"lastRun": "마지막 실행",
|
||||
"never": "없음",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "출력",
|
||||
"stepError": "오류",
|
||||
"dryRunBadge": "테스트 실행",
|
||||
"hostSelector": {
|
||||
"trigger": "트리거링 호스트",
|
||||
"host": "특정 호스트",
|
||||
"fleet": "함대",
|
||||
"all": "모든 호스트"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "측정 임계값",
|
||||
"host_status": "호스트가 올라가거나 내려갑니다.",
|
||||
"health_check": "건강 검진 변경 사항",
|
||||
"schedule": "정해진 일정에 따라",
|
||||
"docker_event": "컨테이너 이벤트",
|
||||
"internal_event": "터믹스 이벤트",
|
||||
"webhook": "수신 웹훅"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "알림을 보내세요",
|
||||
"http": "URL을 호출합니다",
|
||||
"run_snippet": "코드 조각을 실행하세요",
|
||||
"run_command": "명령어를 실행하세요",
|
||||
"docker": "컨테이너를 제어하세요",
|
||||
"tunnel": "터널을 제어하세요",
|
||||
"wol": "호스트를 깨우세요",
|
||||
"wait": "기다리다",
|
||||
"set_var": "변수를 설정하세요",
|
||||
"if": "만약 / 그렇지 않다면",
|
||||
"run_automation": "다른 자동화를 실행합니다",
|
||||
"stop": "스톱"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "실행 중",
|
||||
"success": "성공",
|
||||
"failed": "실패",
|
||||
"timeout": "시간 초과됨",
|
||||
"skipped": "건너뛰었습니다",
|
||||
"cancelled": "취소"
|
||||
},
|
||||
"fields": {
|
||||
"host": "호스트",
|
||||
"metric": "메트릭",
|
||||
"mount": "마운트 포인트",
|
||||
"operator": "~이다",
|
||||
"value": "값",
|
||||
"forSeconds": "(초) 동안 지속됨",
|
||||
"cooldown": "쿨다운 (분)",
|
||||
"cron": "크론 발현",
|
||||
"intervalSeconds": "매 (초)",
|
||||
"timezone": "시간대",
|
||||
"timezoneServer": "서버 시간",
|
||||
"timezoneHint": "크론 시간은 이 영역에서 읽습니다. 간격 스케줄에는 적용되지 않습니다.",
|
||||
"container": "컨테이너",
|
||||
"command": "명령",
|
||||
"url": "URL",
|
||||
"method": "방법",
|
||||
"body": "몸",
|
||||
"channels": "또한 다음에도 보내주세요",
|
||||
"title": "제목",
|
||||
"message": "메시지",
|
||||
"snippet": "단편",
|
||||
"seconds": "초",
|
||||
"conditionLeftPlaceholder": "확인할 값",
|
||||
"conditionRightPlaceholder": "~와 비교하세요",
|
||||
"variableName": "변수 이름",
|
||||
"variableValue": "값",
|
||||
"elevated": "sudo를 사용하여 실행하세요",
|
||||
"onError": "이것이 실패하면",
|
||||
"allowPrivateNetwork": "로컬 네트워크 주소를 허용합니다",
|
||||
"allowPrivateNetworkHint": "LAN에서 자체 호스팅 서비스를 운영하는 데 필요합니다. 내부 주소로의 요청을 방지하기 위해 기본적으로 비활성화되어 있습니다."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "달리기를 멈춰라",
|
||||
"continue": "계속하세요"
|
||||
},
|
||||
"needsPlugin": "{{plugin}}가 필요합니다",
|
||||
"needsPluginHint": "이 자동화 작업은 필요한 기능이 다시 사용 가능해질 때까지 건너뛰어집니다.",
|
||||
"offBadge": "꺼짐",
|
||||
"docsLink": "문서 보기",
|
||||
"ago": {
|
||||
"seconds": "{{count}}초 전",
|
||||
"minutes": "{{count}}분 전",
|
||||
"hours": "{{count}}시간 전",
|
||||
"days": "{{count}}일 전"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "자동화"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "자동화",
|
||||
"feature_automations_desc": "어떤 상황이 발생하면 자동으로 단계를 실행하고 알림을 받으세요."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "유지 관리",
|
||||
"description": "작업이 진행되는 동안 호스트 상태, 상태 모니터링, 메트릭 모니터링, 컨테이너 모니터링 및 터널 연결 해제 자동화가 일시 중지됩니다. 모니터링, 수동 실행 및 예약된 자동화는 계속 실행됩니다.",
|
||||
"denied": "유지보수 화면을 볼 권한이 없습니다.",
|
||||
"sharedReadOnly": "이 호스트는 귀하와 공유되었습니다. 유지 관리 변경은 호스트 소유자만 할 수 있습니다.",
|
||||
"failed": "유지보수 업데이트를 할 수 없습니다.",
|
||||
"active": "유지보수 중",
|
||||
"estimated": "예상 완료일",
|
||||
"noAutoEnd": "견적은 유지보수를 종료하는 것이 아닙니다. 작업이 완료되면 명시적으로 유지보수를 종료하십시오.",
|
||||
"endConfirm": "이 호스트에 대한 유지 관리를 종료하고 이벤트 기반 자동화를 다시 시작하시겠습니까?",
|
||||
"confirmEnd": "종료 확인",
|
||||
"cancel": "취소",
|
||||
"end": "유지보수 종료",
|
||||
"action": "작업",
|
||||
"startNow": "지금 시작하세요",
|
||||
"schedule": "나중에 일정 잡기",
|
||||
"reason": "이유",
|
||||
"startUtc": "첫 시작 (UTC)",
|
||||
"repeat": "반복하다",
|
||||
"once": "한 번",
|
||||
"weekly": "주간",
|
||||
"monthly": "월간 간행물",
|
||||
"utcHelp": "일정은 연중 UTC를 기준으로 합니다. 월별 일정은 선택한 날짜가 없는 달은 건너뜁니다. 계획된 기간은 겹칠 수 없으며, 연장된 유지 보수 작업은 이후 기간에도 계속됩니다.",
|
||||
"duration": "예상 소요 시간(분)",
|
||||
"grace": "유예 기간(분)",
|
||||
"notify": "예상 시간 및 유예 기간이 지난 후에도 오프라인 상태인 경우 한 번만 알림을 보내주세요.",
|
||||
"addSchedule": "일정을 추가하세요",
|
||||
"schedules": "일정",
|
||||
"noSchedules": "정기 유지보수 일정이 없습니다.",
|
||||
"completed": "이미 시작했습니다",
|
||||
"minutes_one": "{{count}} 분",
|
||||
"minutes_other": "{{count}} 분",
|
||||
"remove": "일정을 삭제합니다",
|
||||
"loadFailed": "점검 상태를 새로 고칠 수 없습니다. 점검 상태가 로드될 때까지 변경 사항이 적용되지 않습니다.",
|
||||
"loading": "유지보수 상태 로딩 중…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Automatiseringen bekijken",
|
||||
"description": "Bekijk de automatiseringen en hun geschiedenis."
|
||||
},
|
||||
"create": {
|
||||
"title": "Automatiseringen maken",
|
||||
"description": "Voeg nieuwe automatiseringen toe."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Automatiseringen bewerken",
|
||||
"description": "Wijzig bestaande automatiseringsprocessen."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Automatiseringen verwijderen",
|
||||
"description": "Automatiseringen uitschakelen."
|
||||
},
|
||||
"run": {
|
||||
"title": "Automatiseringen uitvoeren",
|
||||
"description": "Activeer een automatisering handmatig."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatiseringen",
|
||||
"tabAutomations": "Automatiseringen",
|
||||
"tabRuns": "Loopt",
|
||||
"tabChannels": "Kanalen",
|
||||
"createAutomation": "Nieuwe automatisering",
|
||||
"backToAutomations": "Terug naar automatiseringen",
|
||||
"createTitle": "Nieuwe automatisering",
|
||||
"editTitle": "Automatisering bewerken",
|
||||
"empty": "Nog geen automatiseringen. Maak er een aan die reageert op een meetwaarde, een planning of een gebeurtenis.",
|
||||
"emptyRuns": "Nog geen runs.",
|
||||
"channelsHint": "Kanalen worden ingesteld in waarschuwingen.",
|
||||
"noChannelsHint": "De melding komt altijd in je inbox terecht. Voeg kanalen toe in Meldingen om de melding ook naar een andere locatie te verzenden.",
|
||||
"nameLabel": "Naam",
|
||||
"namePlaceholder": "Bijvoorbeeld: maak /data leeg wanneer het vol is.",
|
||||
"nameRequired": "Naam is verplicht",
|
||||
"descriptionLabel": "Beschrijving",
|
||||
"descriptionPlaceholder": "Optionele beschrijving",
|
||||
"enabledLabel": "Ingeschakeld",
|
||||
"concurrencyLabel": "Als het al draait",
|
||||
"concurrencyHint": "Wat te doen als dit opnieuw wordt geactiveerd voordat de laatste run is voltooid?",
|
||||
"concurrency": {
|
||||
"skip": "Sla de nieuwe run over",
|
||||
"queue": "Wacht en ren erachteraan.",
|
||||
"allow": "Voer ze allebei tegelijk uit"
|
||||
},
|
||||
"save": "Redden",
|
||||
"created": "Automatisering gecreëerd",
|
||||
"updated": "Automatisering opgeslagen",
|
||||
"deleted": "Automatisering verwijderd",
|
||||
"deleteConfirm": "Als je deze automatisering verwijdert, wordt ook de uitvoeringsgeschiedenis ervan verwijderd.",
|
||||
"runNow": "Ren nu",
|
||||
"testRun": "Testrun",
|
||||
"testRunHint": "Het voert elke stap uit, maar raakt niets buiten Termix aan.",
|
||||
"runStarted": "De run is gestart.",
|
||||
"runFinished": "Run voltooid: {{status}}",
|
||||
"trigger": "Trekker",
|
||||
"steps": "Stappen",
|
||||
"addStep": "Voeg stap toe",
|
||||
"removeStep": "Verwijder stap",
|
||||
"moveUp": "Omhoog gaan",
|
||||
"moveDown": "Ga naar beneden",
|
||||
"noSteps": "Nog geen stappen. Voeg er een toe om aan te geven wat er moet gebeuren.",
|
||||
"webhookTokenTitle": "Webhook-URL",
|
||||
"webhookTokenDescription": "Dit wordt eenmalig weergegeven. Sla het nu op, het kan later niet meer worden opgevraagd.",
|
||||
"copy": "Kopiëren",
|
||||
"copied": "Gekopieerd",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Bouwer",
|
||||
"viewGraph": "Grafiek",
|
||||
"lastRun": "Laatste run",
|
||||
"never": "Nooit",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Uitvoer",
|
||||
"stepError": "Fout",
|
||||
"dryRunBadge": "Testrun",
|
||||
"hostSelector": {
|
||||
"trigger": "Activerende host",
|
||||
"host": "Specifieke gastheer",
|
||||
"fleet": "Vloot",
|
||||
"all": "Alle hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metrische drempelwaarde",
|
||||
"host_status": "De host gaat omhoog of omlaag.",
|
||||
"health_check": "Wijzigingen in de gezondheidscontrole",
|
||||
"schedule": "Volgens een schema",
|
||||
"docker_event": "Container-gebeurtenis",
|
||||
"internal_event": "Termix-evenement",
|
||||
"webhook": "Inkomende webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Verzend een melding",
|
||||
"http": "Roep een URL aan",
|
||||
"run_snippet": "Voer een codefragment uit",
|
||||
"run_command": "Voer een opdracht uit",
|
||||
"docker": "Een container besturen",
|
||||
"tunnel": "Beheer een tunnel",
|
||||
"wol": "Maak een gastheer wakker",
|
||||
"wait": "Wachten",
|
||||
"set_var": "Een variabele instellen",
|
||||
"if": "Indien / anders",
|
||||
"run_automation": "Voer nog een automatisering uit",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Rennen",
|
||||
"success": "Succes",
|
||||
"failed": "Mislukt",
|
||||
"timeout": "De tijd is verlopen.",
|
||||
"skipped": "Overgeslagen",
|
||||
"cancelled": "Geannuleerd"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Gastheer",
|
||||
"metric": "Metrisch",
|
||||
"mount": "Bergpunt",
|
||||
"operator": "Is",
|
||||
"value": "Waarde",
|
||||
"forSeconds": "Aangehouden gedurende (seconden)",
|
||||
"cooldown": "Afkoeltijd (minuten)",
|
||||
"cron": "Cron-expressie",
|
||||
"intervalSeconds": "Elke (seconden)",
|
||||
"timezone": "Tijdzone",
|
||||
"timezoneServer": "Servertijd",
|
||||
"timezoneHint": "In deze zone worden de cron-tijden gelezen. Dit geldt niet voor intervalschema's.",
|
||||
"container": "Container",
|
||||
"command": "Commando",
|
||||
"url": "URL",
|
||||
"method": "Methode",
|
||||
"body": "Lichaam",
|
||||
"channels": "Ook verzenden naar",
|
||||
"title": "Titel",
|
||||
"message": "Bericht",
|
||||
"snippet": "Fragment",
|
||||
"seconds": "Seconden",
|
||||
"conditionLeftPlaceholder": "Waarde om te controleren",
|
||||
"conditionRightPlaceholder": "Vergelijk met",
|
||||
"variableName": "Variabelenaam",
|
||||
"variableValue": "Waarde",
|
||||
"elevated": "Uitvoeren met sudo",
|
||||
"onError": "Als dit mislukt",
|
||||
"allowPrivateNetwork": "Sta lokale netwerkadressen toe.",
|
||||
"allowPrivateNetworkHint": "Nodig voor een zelfgehoste service op uw LAN. Standaard uitgeschakeld om verzoeken naar interne adressen te voorkomen."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop de loop",
|
||||
"continue": "Ga zo door"
|
||||
},
|
||||
"needsPlugin": "Vereist {{plugin}}",
|
||||
"needsPluginHint": "Deze automatisering wordt overgeslagen totdat de benodigde functie weer beschikbaar is.",
|
||||
"offBadge": "Uit",
|
||||
"docsLink": "Documenten bekijken",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s geleden",
|
||||
"minutes": "{{count}}m geleden",
|
||||
"hours": "{{count}}uur geleden",
|
||||
"days": "{{count}}dagen geleden"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatiseringen"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatiseringen",
|
||||
"feature_automations_desc": "Voer stappen automatisch uit wanneer er iets gebeurt en ontvang meldingen."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Onderhoud",
|
||||
"description": "Pauzeer de automatiseringsprocessen voor hoststatus, gezondheid, metrics, containers en tunnelontkoppeling terwijl de werkzaamheden worden uitgevoerd. Monitoring, handmatige uitvoeringen en geplande automatiseringsprocessen worden wel voortgezet.",
|
||||
"denied": "U hebt geen toestemming om onderhoudswerkzaamheden te bekijken.",
|
||||
"sharedReadOnly": "Deze host is met u gedeeld. Alleen de eigenaar kan het onderhoud wijzigen.",
|
||||
"failed": "Het onderhoud kon niet worden bijgewerkt.",
|
||||
"active": "Onderhoud actief",
|
||||
"estimated": "Geschatte voltooiing",
|
||||
"noAutoEnd": "De begroting beëindigt het onderhoud niet. Beëindig het expliciet wanneer de werkzaamheden zijn voltooid.",
|
||||
"endConfirm": "Onderhoud beëindigen en gebeurtenisgestuurde automatiseringen voor deze host hervatten?",
|
||||
"confirmEnd": "Bevestig einde",
|
||||
"cancel": "Annuleren",
|
||||
"end": "Einde onderhoud",
|
||||
"action": "Actie",
|
||||
"startNow": "Begin nu",
|
||||
"schedule": "Plan voor later",
|
||||
"reason": "Reden",
|
||||
"startUtc": "Eerste start (UTC)",
|
||||
"repeat": "Herhalen",
|
||||
"once": "Eenmaal",
|
||||
"weekly": "Wekelijks",
|
||||
"monthly": "Maandelijks",
|
||||
"utcHelp": "De planning gebruikt het hele jaar door UTC. Maandelijkse planningen slaan maanden over waarin de geselecteerde dag niet voorkomt. Geplande onderhoudsvensters mogen elkaar niet overlappen; uitlopend onderhoud wordt voortgezet in latere vensters.",
|
||||
"duration": "Geschatte duur (minuten)",
|
||||
"grace": "Respijtperiode (minuten)",
|
||||
"notify": "Eenmalige melding verzenden indien de verbinding na de geschatte tijd plus de respijtperiode nog steeds verbroken is.",
|
||||
"addSchedule": "Voeg een schema toe",
|
||||
"schedules": "Roosters",
|
||||
"noSchedules": "Geen onderhoudsschema's.",
|
||||
"completed": "Reeds begonnen",
|
||||
"minutes_one": "{{count}} minuut",
|
||||
"minutes_other": "{{count}} minuten",
|
||||
"remove": "Schema verwijderen",
|
||||
"loadFailed": "De onderhoudsstatus kon niet worden vernieuwd. Wijzigingen zijn uitgeschakeld totdat de status kan worden geladen.",
|
||||
"loading": "Onderhoudsstatus laden…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Navn",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Navn er påkrevd",
|
||||
"descriptionLabel": "Beskrivelse",
|
||||
"descriptionPlaceholder": "Valgfri beskrivelse",
|
||||
"enabledLabel": "Aktivert",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Lagre",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Kopier",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Feil",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stopp"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Kjører",
|
||||
"success": "Suksess",
|
||||
"failed": "Mislyktes",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Kommando",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Vedlikehold",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Avbryt",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatyzacje",
|
||||
"tabAutomations": "Automatyzacje",
|
||||
"tabRuns": "Uruchomienia",
|
||||
"tabChannels": "Kanały",
|
||||
"createAutomation": "Nowa automatyzacja",
|
||||
"backToAutomations": "Powrót do automatyzacji",
|
||||
"createTitle": "Nowa automatyzacja",
|
||||
"editTitle": "Edytuj automatyzację",
|
||||
"empty": "Brak jeszcze automatyzacji. Utwórz automatyzację, która będzie reagować na metrykę, harmonogram lub zdarzenie.",
|
||||
"emptyRuns": "Brak uruchomień.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Nazwa",
|
||||
"namePlaceholder": "np. Wyczyść /data, gdy się zapełni",
|
||||
"nameRequired": "Nazwa jest wymagana",
|
||||
"descriptionLabel": "Opis",
|
||||
"descriptionPlaceholder": "Opis opcjonalny",
|
||||
"enabledLabel": "Włączona",
|
||||
"concurrencyLabel": "Jeśli już działa",
|
||||
"concurrencyHint": "Co zrobić, gdy zostanie wyzwolona ponownie przed zakończeniem poprzedniego uruchomienia.",
|
||||
"concurrency": {
|
||||
"skip": "Pomiń nowe uruchomienie",
|
||||
"queue": "Poczekaj i uruchom po zakończeniu",
|
||||
"allow": "Uruchom oba naraz"
|
||||
},
|
||||
"save": "Zapisz",
|
||||
"created": "Utworzono automatyzację",
|
||||
"updated": "Zapisano automatyzację",
|
||||
"deleted": "Usunięto automatyzację",
|
||||
"deleteConfirm": "Usunąć tę automatyzację? Jej historia uruchomień również zostanie usunięta.",
|
||||
"runNow": "Uruchom teraz",
|
||||
"testRun": "Uruchomienie próbne",
|
||||
"testRunHint": "Wykonuje każdy krok, ale nie zmienia niczego poza Termixem.",
|
||||
"runStarted": "Uruchomiono",
|
||||
"runFinished": "Zakończono: {{status}}",
|
||||
"trigger": "Wyzwalacz",
|
||||
"steps": "Kroki",
|
||||
"addStep": "Dodaj krok",
|
||||
"removeStep": "Usuń krok",
|
||||
"moveUp": "W górę",
|
||||
"moveDown": "W dół",
|
||||
"noSteps": "Brak kroków. Dodaj jeden, aby określić, co powinno się stać.",
|
||||
"webhookTokenTitle": "Adres URL webhooka",
|
||||
"webhookTokenDescription": "Pokazywany tylko raz. Zapisz go teraz, później nie da się go odzyskać.",
|
||||
"copy": "Kopiuj",
|
||||
"copied": "Skopiowano",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Kreator",
|
||||
"viewGraph": "Graf",
|
||||
"lastRun": "Ostatnie uruchomienie",
|
||||
"never": "Nigdy",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Wyjście",
|
||||
"stepError": "Błąd",
|
||||
"dryRunBadge": "Uruchomienie próbne",
|
||||
"hostSelector": {
|
||||
"trigger": "Host wyzwalający",
|
||||
"host": "Konkretny host",
|
||||
"fleet": "Flota",
|
||||
"all": "Wszystkie hosty"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Próg metryki",
|
||||
"host_status": "Host wstaje lub pada",
|
||||
"health_check": "Zmiana kontroli stanu",
|
||||
"schedule": "Zgodnie z harmonogramem",
|
||||
"docker_event": "Zdarzenie kontenera",
|
||||
"internal_event": "Zdarzenie Termixa",
|
||||
"webhook": "Przychodzący webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Wywołaj adres URL",
|
||||
"run_snippet": "Uruchom snippet",
|
||||
"run_command": "Uruchom polecenie",
|
||||
"docker": "Kontroluj kontener",
|
||||
"tunnel": "Kontroluj tunel",
|
||||
"wol": "Obudź host",
|
||||
"wait": "Czekaj",
|
||||
"set_var": "Ustaw zmienną",
|
||||
"if": "Jeśli / w przeciwnym razie",
|
||||
"run_automation": "Uruchom inną automatyzację",
|
||||
"stop": "Zatrzymaj"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Działa",
|
||||
"success": "Powodzenie",
|
||||
"failed": "Niepowodzenie",
|
||||
"timeout": "Przekroczono limit czasu",
|
||||
"skipped": "Pominięto",
|
||||
"cancelled": "Anulowano"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metryka",
|
||||
"mount": "Punkt montowania",
|
||||
"operator": "Jest",
|
||||
"value": "Wartość",
|
||||
"forSeconds": "Utrzymywany przez (sekundy)",
|
||||
"cooldown": "Czas wyciszenia (minuty)",
|
||||
"cron": "Wyrażenie cron",
|
||||
"intervalSeconds": "Co (sekundy)",
|
||||
"timezone": "Strefa czasowa",
|
||||
"timezoneServer": "Czas serwera",
|
||||
"timezoneHint": "Czasy cron są odczytywane w tej strefie. Nie dotyczy harmonogramów interwałowych.",
|
||||
"container": "Kontener",
|
||||
"command": "Polecenie",
|
||||
"url": "Adres URL",
|
||||
"method": "Metoda",
|
||||
"body": "Treść",
|
||||
"channels": "Also send to",
|
||||
"title": "Tytuł",
|
||||
"message": "Wiadomość",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Sekundy",
|
||||
"conditionLeftPlaceholder": "Wartość do sprawdzenia",
|
||||
"conditionRightPlaceholder": "Porównaj z",
|
||||
"variableName": "Nazwa zmiennej",
|
||||
"variableValue": "Wartość",
|
||||
"elevated": "Uruchom z sudo",
|
||||
"onError": "Jeśli to się nie powiedzie",
|
||||
"allowPrivateNetwork": "Zezwalaj na lokalne adresy sieciowe",
|
||||
"allowPrivateNetworkHint": "Wymagane dla własnej usługi w sieci LAN. Domyślnie wyłączone, aby zapobiec żądaniom do adresów wewnętrznych."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Zatrzymaj uruchomienie",
|
||||
"continue": "Kontynuuj"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Wył.",
|
||||
"docsLink": "Zobacz dokumentację",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}} min temu",
|
||||
"hours": "{{count}} godz. temu",
|
||||
"days": "{{count}} dni temu"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatyzacje"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatyzacje",
|
||||
"feature_automations_desc": "Uruchamiaj kroki automatycznie, gdy coś się wydarzy, i otrzymuj powiadomienia."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Konserwacja",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Anuluj",
|
||||
"end": "End maintenance",
|
||||
"action": "Akcja",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Powtórz",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Salvar",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copiar",
|
||||
"copied": "Copiado",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Erro",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "Documentação",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Manutenção",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancelar",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Canais",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Nome",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "O nome é obrigatório",
|
||||
"descriptionLabel": "Descrição",
|
||||
"descriptionPlaceholder": "Descrição opcional",
|
||||
"enabledLabel": "Ativado",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Guardar",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Gatilho",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copiar",
|
||||
"copied": "Copiado",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Nunca",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Saída",
|
||||
"stepError": "Erro",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "Todos os hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Em execução",
|
||||
"success": "Sucesso",
|
||||
"failed": "Falhou",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Servidor",
|
||||
"metric": "Métrica",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Período de arrefecimento (minutos)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Comando",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Título",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Desativado",
|
||||
"docsLink": "Ver docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "há {{count}} min",
|
||||
"hours": "há {{count}} h",
|
||||
"days": "há {{count}} d"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Manutenção",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancelar",
|
||||
"end": "End maintenance",
|
||||
"action": "Ação",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "Vizualizați automatizările",
|
||||
"description": "Vedeți automatizările și istoricul lor."
|
||||
},
|
||||
"create": {
|
||||
"title": "Creați automatizări",
|
||||
"description": "Adăugați noi automatizări."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Editați automatizările",
|
||||
"description": "Modificați automatizările existente."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Șterge automatizările",
|
||||
"description": "Eliminați automatizările."
|
||||
},
|
||||
"run": {
|
||||
"title": "Rulați automatizări",
|
||||
"description": "Declanșează o automatizare manual."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automatizări",
|
||||
"tabAutomations": "Automatizări",
|
||||
"tabRuns": "Aleargă",
|
||||
"tabChannels": "Canale",
|
||||
"createAutomation": "Automatizare nouă",
|
||||
"backToAutomations": "Înapoi la Automatizări",
|
||||
"createTitle": "Automatizare nouă",
|
||||
"editTitle": "Editare automatizare",
|
||||
"empty": "Încă nu există automatizări. Creați una pentru a reacționa la o metrică, un program sau un eveniment.",
|
||||
"emptyRuns": "Nicio alergare încă.",
|
||||
"channelsHint": "Canalele sunt configurate în Alerte",
|
||||
"noChannelsHint": "Alerta ajunge întotdeauna în căsuța ta poștală. Adaugă canale în Alerte pentru a o trimite și în altă parte.",
|
||||
"nameLabel": "Nume",
|
||||
"namePlaceholder": "De exemplu, curățați /data când se umple",
|
||||
"nameRequired": "Numele este obligatoriu",
|
||||
"descriptionLabel": "Descriere",
|
||||
"descriptionPlaceholder": "Descriere opțională",
|
||||
"enabledLabel": "Activat",
|
||||
"concurrencyLabel": "Dacă deja rulează",
|
||||
"concurrencyHint": "Ce trebuie făcut când acest lucru este declanșat din nou înainte de finalizarea ultimei rulări.",
|
||||
"concurrency": {
|
||||
"skip": "Sari peste noua cursă",
|
||||
"queue": "Așteaptă și aleargă după",
|
||||
"allow": "Rulați ambele simultan"
|
||||
},
|
||||
"save": "Salva",
|
||||
"created": "Automatizare creată",
|
||||
"updated": "Automatizare salvată",
|
||||
"deleted": "Automatizare ștearsă",
|
||||
"deleteConfirm": "Ștergeți această automatizare? Și istoricul execuțiilor sale este șters.",
|
||||
"runNow": "Aleargă acum",
|
||||
"testRun": "Test de funcționare",
|
||||
"testRunHint": "Aleargă la fiecare pas, dar nu atinge nimic din afara Termixului.",
|
||||
"runStarted": "Rularea a început",
|
||||
"runFinished": "Execuția s-a încheiat: {{status}}",
|
||||
"trigger": "Declanșator",
|
||||
"steps": "Pași",
|
||||
"addStep": "Adăugați un pas",
|
||||
"removeStep": "Eliminați pasul",
|
||||
"moveUp": "Mută în sus",
|
||||
"moveDown": "Mută în jos",
|
||||
"noSteps": "Încă nu există pași. Adăugați unul pentru a specifica ce ar trebui să se întâmple.",
|
||||
"webhookTokenTitle": "URL-ul webhook-ului",
|
||||
"webhookTokenDescription": "Aceasta se afișează o singură dată. Salvați-o acum, nu poate fi recuperată ulterior.",
|
||||
"copy": "Copie",
|
||||
"copied": "Copiat",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Constructor",
|
||||
"viewGraph": "Grafic",
|
||||
"lastRun": "Ultima alergare",
|
||||
"never": "Nu",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Ieșire",
|
||||
"stepError": "Eroare",
|
||||
"dryRunBadge": "Test de funcționare",
|
||||
"hostSelector": {
|
||||
"trigger": "Gazdă declanșatoare",
|
||||
"host": "Gazdă specifică",
|
||||
"fleet": "Flotă",
|
||||
"all": "Toate gazdele"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Pragul metric",
|
||||
"host_status": "Gazda se activează sau se deconectează",
|
||||
"health_check": "Modificări la verificarea stării de sănătate",
|
||||
"schedule": "Pe un program",
|
||||
"docker_event": "Eveniment container",
|
||||
"internal_event": "Evenimentul Termix",
|
||||
"webhook": "Webhook de intrare"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Trimiteți o alertă",
|
||||
"http": "Apelați o adresă URL",
|
||||
"run_snippet": "Executați un fragment",
|
||||
"run_command": "Executați o comandă",
|
||||
"docker": "Controlează un container",
|
||||
"tunnel": "Controlează un tunel",
|
||||
"wol": "Trezește o gazdă",
|
||||
"wait": "Așteaptă",
|
||||
"set_var": "Setați o variabilă",
|
||||
"if": "Dacă / altfel",
|
||||
"run_automation": "Rulați o altă automatizare",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Funcţionare",
|
||||
"success": "Succes",
|
||||
"failed": "Eșuat",
|
||||
"timeout": "Expirat",
|
||||
"skipped": "Omis",
|
||||
"cancelled": "Anulat"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Gazdă",
|
||||
"metric": "Metric",
|
||||
"mount": "Punct de montare",
|
||||
"operator": "Este",
|
||||
"value": "Valoare",
|
||||
"forSeconds": "Menținut timp de (secunde)",
|
||||
"cooldown": "Timp de răcire (minute)",
|
||||
"cron": "Expresie Cron",
|
||||
"intervalSeconds": "La fiecare (secunde)",
|
||||
"timezone": "Fus orar",
|
||||
"timezoneServer": "Ora serverului",
|
||||
"timezoneHint": "Timpii cron sunt citiți în această zonă. Nu se aplică programărilor cu intervale.",
|
||||
"container": "Container",
|
||||
"command": "Comanda",
|
||||
"url": "URL-ul",
|
||||
"method": "Metodă",
|
||||
"body": "Corp",
|
||||
"channels": "Trimiteți și către",
|
||||
"title": "Titlu",
|
||||
"message": "Mesaj",
|
||||
"snippet": "Fragment",
|
||||
"seconds": "Secunde",
|
||||
"conditionLeftPlaceholder": "Valoare de verificat",
|
||||
"conditionRightPlaceholder": "Comparați cu",
|
||||
"variableName": "Nume variabilă",
|
||||
"variableValue": "Valoare",
|
||||
"elevated": "Execută cu sudo",
|
||||
"onError": "Dacă acest lucru eșuează",
|
||||
"allowPrivateNetwork": "Permiteți adrese de rețea locală",
|
||||
"allowPrivateNetworkHint": "Necesar pentru un serviciu auto-găzduit în rețeaua locală. Dezactivat în mod implicit pentru a preveni solicitările către adrese interne."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Oprește alergarea",
|
||||
"continue": "Continuă"
|
||||
},
|
||||
"needsPlugin": "Necesită {{plugin}}",
|
||||
"needsPluginHint": "Această automatizare este omisă până când funcția de care are nevoie este din nou disponibilă.",
|
||||
"offBadge": "Dezactivat",
|
||||
"docsLink": "Vizualizați documentele",
|
||||
"ago": {
|
||||
"seconds": "Acum {{count}}secunde",
|
||||
"minutes": "{{count}}acum câteva minute",
|
||||
"hours": "{{count}}acum o oră",
|
||||
"days": "{{count}}zile în urmă"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automatizări"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automatizări",
|
||||
"feature_automations_desc": "Execută pașii automat când se întâmplă ceva și primește notificări."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Întreţinere",
|
||||
"description": "Întrerupeți automatizările privind starea gazdei, sănătatea, metrica, containerul și deconectarea tunelului în timp ce lucrul este în desfășurare. Monitorizarea, rulările manuale și automatizările programate continuă.",
|
||||
"denied": "Nu aveți permisiunea de a vizualiza întreținerea.",
|
||||
"sharedReadOnly": "Această gazdă a fost partajată cu dvs. Numai proprietarul acesteia poate modifica întreținerea.",
|
||||
"failed": "Întreținerea nu a putut fi actualizată.",
|
||||
"active": "Mentenanță activă",
|
||||
"estimated": "Finalizare estimată",
|
||||
"noAutoEnd": "Estimarea nu încheie întreținerea. Încheiați-o explicit când lucrarea este finalizată.",
|
||||
"endConfirm": "Încheiați întreținerea și reluați automatizările declanșate de evenimente pentru această gazdă?",
|
||||
"confirmEnd": "Confirmați sfârșitul",
|
||||
"cancel": "Anula",
|
||||
"end": "Sfârșitul întreținerii",
|
||||
"action": "Acţiune",
|
||||
"startNow": "Începeți acum",
|
||||
"schedule": "Programați pentru mai târziu",
|
||||
"reason": "Motiv",
|
||||
"startUtc": "Prima pornire (UTC)",
|
||||
"repeat": "Repeta",
|
||||
"once": "Dată",
|
||||
"weekly": "Săptămânal",
|
||||
"monthly": "Lunar",
|
||||
"utcHelp": "Programările utilizează UTC pe tot parcursul anului. Programările lunare sar peste luni fără ziua selectată. Ferestrele planificate nu se pot suprapune; întreținerea depășită continuă în ferestrele ulterioare.",
|
||||
"duration": "Durată estimată (minute)",
|
||||
"grace": "Perioadă de grație (minute)",
|
||||
"notify": "Notificați o dată dacă sunteți încă offline după estimare plus perioada de grație",
|
||||
"addSchedule": "Adăugați un program",
|
||||
"schedules": "Programe",
|
||||
"noSchedules": "Fără programe de întreținere.",
|
||||
"completed": "Deja început",
|
||||
"minutes_one": "{{count}} minut",
|
||||
"minutes_other": "{{count}} minute",
|
||||
"remove": "Eliminați programul",
|
||||
"loadFailed": "Nu s-a putut actualiza starea de întreținere. Modificările sunt dezactivate până când pot fi încărcate.",
|
||||
"loading": "Se încarcă starea de întreținere…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Каналы",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Название",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Имя обязательно",
|
||||
"descriptionLabel": "Описание",
|
||||
"descriptionPlaceholder": "Необязательное описание",
|
||||
"enabledLabel": "Включено",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Сохранить",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Триггер",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Копировать",
|
||||
"copied": "Скопировано",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Никогда",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Вывод",
|
||||
"stepError": "Ошибка",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "Все хосты"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Остановить"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Запущен",
|
||||
"success": "Успех",
|
||||
"failed": "Ошибка",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Хост",
|
||||
"metric": "Метрика",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Задержка повторения (минут)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Команда",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Название",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Отключено",
|
||||
"docsLink": "Документация",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}м назад",
|
||||
"hours": "{{count}}ч назад",
|
||||
"days": "{{count}}д назад"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Обслуживание",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Отмена",
|
||||
"end": "End maintenance",
|
||||
"action": "Действие",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Save",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancel",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Save",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancel",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Save",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancel",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Kanallar",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Ad",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Ad zorunludur",
|
||||
"descriptionLabel": "Açıklama",
|
||||
"descriptionPlaceholder": "İsteğe bağlı açıklama",
|
||||
"enabledLabel": "Etkin",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Kaydet",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Tetikleyici",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Kopyala",
|
||||
"copied": "Kopyalandı",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Hiçbir zaman",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Çıktı",
|
||||
"stepError": "Hata",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "Tüm sunucular"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Durdurma"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Çalışıyor",
|
||||
"success": "Başarılı",
|
||||
"failed": "Başarısız",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Ana Bilgisayar",
|
||||
"metric": "Metrik",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Bekleme süresi (dakika)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Komut",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Başlık",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Kapalı",
|
||||
"docsLink": "Belgelere bak",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}} dakika önce",
|
||||
"hours": "{{count}} saat önce",
|
||||
"days": "{{count}} gün önce"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Bakım",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "İptal",
|
||||
"end": "End maintenance",
|
||||
"action": "İşlem",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Channels",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Name is required",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description",
|
||||
"enabledLabel": "Enabled",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Save",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Trigger",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Never",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Output",
|
||||
"stepError": "Error",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "All hosts"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Stop"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Running",
|
||||
"success": "Success",
|
||||
"failed": "Failed",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Host",
|
||||
"metric": "Metric",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Cooldown (minutes)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Command",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Title",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Off",
|
||||
"docsLink": "View docs",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}}m ago",
|
||||
"hours": "{{count}}h ago",
|
||||
"days": "{{count}}d ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Maintenance",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Cancel",
|
||||
"end": "End maintenance",
|
||||
"action": "Action",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "Kênh",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "Tên",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "Tên là bắt buộc",
|
||||
"descriptionLabel": "Mô tả",
|
||||
"descriptionPlaceholder": "Mô tả tùy chọn",
|
||||
"enabledLabel": "Đã bật",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "Lưu",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "Kích hoạt",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "Sao chép",
|
||||
"copied": "Đã sao chép",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "Chưa bao giờ",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "Đầu ra",
|
||||
"stepError": "Lỗi",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "Tất cả máy chủ"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "Bit dừng"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "Đang chạy",
|
||||
"success": "Thành công",
|
||||
"failed": "Thất bại",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "Máy chủ",
|
||||
"metric": "Chỉ số",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "Thời gian chờ (phút)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "Lệnh",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "Tiêu đề",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "Tắt",
|
||||
"docsLink": "Xem tài liệu",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}} phút trước",
|
||||
"hours": "{{count}} giờ trước",
|
||||
"days": "{{count}} ngày trước"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "Bảo trì",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "Hủy",
|
||||
"end": "End maintenance",
|
||||
"action": "Hành động",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "运行记录",
|
||||
"tabChannels": "通道",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "暂无运行记录。",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "名称",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "名称为必填项",
|
||||
"descriptionLabel": "描述",
|
||||
"descriptionPlaceholder": "可选描述",
|
||||
"enabledLabel": "已启用",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "稍等会再运行",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "保存",
|
||||
"created": "自动化已创建",
|
||||
"updated": "自动化已保存",
|
||||
"deleted": "自动化已删除",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "触发器",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "复制",
|
||||
"copied": "已复制",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "构建器",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "上次运行",
|
||||
"never": "从未",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "输出",
|
||||
"stepError": "错误",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "所有主机"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "主机上线或离线",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix 事件",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "运行另一个自动化程序",
|
||||
"stop": "停止"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "运行中",
|
||||
"success": "成功",
|
||||
"failed": "失败",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "已取消"
|
||||
},
|
||||
"fields": {
|
||||
"host": "主机",
|
||||
"metric": "指标",
|
||||
"mount": "挂载点",
|
||||
"operator": "Is",
|
||||
"value": "值",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "冷却时间(分钟)",
|
||||
"cron": "Cron 表达式",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "命令",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "请求体",
|
||||
"channels": "Also send to",
|
||||
"title": "标题",
|
||||
"message": "消息",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "变量名",
|
||||
"variableValue": "值",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "停止运行",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "关闭",
|
||||
"docsLink": "查看文档",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}} 分钟前",
|
||||
"hours": "{{count}} 小时前",
|
||||
"days": "{{count}} 天前"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "触发特定事件时自动执行任务,并接收通知。"
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "维护中",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "取消",
|
||||
"end": "End maintenance",
|
||||
"action": "操作",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"permissions": {
|
||||
"view": {
|
||||
"title": "View automations",
|
||||
"description": "See the automations and their history."
|
||||
},
|
||||
"create": {
|
||||
"title": "Create automations",
|
||||
"description": "Add new automations."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit automations",
|
||||
"description": "Change existing automations."
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete automations",
|
||||
"description": "Remove automations."
|
||||
},
|
||||
"run": {
|
||||
"title": "Run automations",
|
||||
"description": "Trigger an automation by hand."
|
||||
}
|
||||
},
|
||||
"newUi": {
|
||||
"sidebar": {
|
||||
"automations": {
|
||||
"title": "Automations",
|
||||
"tabAutomations": "Automations",
|
||||
"tabRuns": "Runs",
|
||||
"tabChannels": "通道",
|
||||
"createAutomation": "New Automation",
|
||||
"backToAutomations": "Back to Automations",
|
||||
"createTitle": "New Automation",
|
||||
"editTitle": "Edit Automation",
|
||||
"empty": "No automations yet. Create one to react to a metric, a schedule, or an event.",
|
||||
"emptyRuns": "No runs yet.",
|
||||
"channelsHint": "Channels are set up in Alerts",
|
||||
"noChannelsHint": "The alert always goes to your inbox. Add channels in Alerts to also send it somewhere else.",
|
||||
"nameLabel": "名稱",
|
||||
"namePlaceholder": "e.g., Clean up /data when it fills",
|
||||
"nameRequired": "名稱為必填",
|
||||
"descriptionLabel": "說明",
|
||||
"descriptionPlaceholder": "選用說明",
|
||||
"enabledLabel": "已啟用",
|
||||
"concurrencyLabel": "If it is already running",
|
||||
"concurrencyHint": "What to do when this is triggered again before the last run has finished.",
|
||||
"concurrency": {
|
||||
"skip": "Skip the new run",
|
||||
"queue": "Wait and run after",
|
||||
"allow": "Run both at once"
|
||||
},
|
||||
"save": "儲存",
|
||||
"created": "Automation created",
|
||||
"updated": "Automation saved",
|
||||
"deleted": "Automation deleted",
|
||||
"deleteConfirm": "Delete this automation? Its run history is deleted too.",
|
||||
"runNow": "Run now",
|
||||
"testRun": "Test run",
|
||||
"testRunHint": "Runs every step but does not touch anything outside Termix.",
|
||||
"runStarted": "Run started",
|
||||
"runFinished": "Run finished: {{status}}",
|
||||
"trigger": "觸發條件",
|
||||
"steps": "Steps",
|
||||
"addStep": "Add step",
|
||||
"removeStep": "Remove step",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"noSteps": "No steps yet. Add one to say what should happen.",
|
||||
"webhookTokenTitle": "Webhook URL",
|
||||
"webhookTokenDescription": "This is shown once. Save it now, it cannot be retrieved later.",
|
||||
"copy": "複製",
|
||||
"copied": "已複製",
|
||||
"viewJson": "JSON",
|
||||
"viewBuilder": "Builder",
|
||||
"viewGraph": "Graph",
|
||||
"lastRun": "Last run",
|
||||
"never": "從未",
|
||||
"duration": "{{seconds}}s",
|
||||
"stepOutput": "輸出",
|
||||
"stepError": "錯誤",
|
||||
"dryRunBadge": "Test run",
|
||||
"hostSelector": {
|
||||
"trigger": "Triggering host",
|
||||
"host": "Specific host",
|
||||
"fleet": "Fleet",
|
||||
"all": "所有主機"
|
||||
},
|
||||
"triggerKinds": {
|
||||
"metric_threshold": "Metric threshold",
|
||||
"host_status": "Host goes up or down",
|
||||
"health_check": "Health check changes",
|
||||
"schedule": "On a schedule",
|
||||
"docker_event": "Container event",
|
||||
"internal_event": "Termix event",
|
||||
"webhook": "Incoming webhook"
|
||||
},
|
||||
"stepTypes": {
|
||||
"notify": "Send an alert",
|
||||
"http": "Call a URL",
|
||||
"run_snippet": "Run a snippet",
|
||||
"run_command": "Run a command",
|
||||
"docker": "Control a container",
|
||||
"tunnel": "Control a tunnel",
|
||||
"wol": "Wake a host",
|
||||
"wait": "Wait",
|
||||
"set_var": "Set a variable",
|
||||
"if": "If / otherwise",
|
||||
"run_automation": "Run another automation",
|
||||
"stop": "停止位元"
|
||||
},
|
||||
"statuses": {
|
||||
"running": "執行中",
|
||||
"success": "成功",
|
||||
"failed": "失敗",
|
||||
"timeout": "Timed out",
|
||||
"skipped": "Skipped",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"fields": {
|
||||
"host": "主機",
|
||||
"metric": "指標",
|
||||
"mount": "Mount point",
|
||||
"operator": "Is",
|
||||
"value": "Value",
|
||||
"forSeconds": "Sustained for (seconds)",
|
||||
"cooldown": "冷卻時間(分鐘)",
|
||||
"cron": "Cron expression",
|
||||
"intervalSeconds": "Every (seconds)",
|
||||
"timezone": "Time zone",
|
||||
"timezoneServer": "Server time",
|
||||
"timezoneHint": "Cron times are read in this zone. Does not apply to interval schedules.",
|
||||
"container": "Container",
|
||||
"command": "指令",
|
||||
"url": "URL",
|
||||
"method": "Method",
|
||||
"body": "Body",
|
||||
"channels": "Also send to",
|
||||
"title": "標題",
|
||||
"message": "Message",
|
||||
"snippet": "Snippet",
|
||||
"seconds": "Seconds",
|
||||
"conditionLeftPlaceholder": "Value to check",
|
||||
"conditionRightPlaceholder": "Compare against",
|
||||
"variableName": "Variable name",
|
||||
"variableValue": "Value",
|
||||
"elevated": "Run with sudo",
|
||||
"onError": "If this fails",
|
||||
"allowPrivateNetwork": "Allow local network addresses",
|
||||
"allowPrivateNetworkHint": "Needed for a self-hosted service on your LAN. Off by default to prevent requests to internal addresses."
|
||||
},
|
||||
"onError": {
|
||||
"stop": "Stop the run",
|
||||
"continue": "Carry on"
|
||||
},
|
||||
"needsPlugin": "Needs {{plugin}}",
|
||||
"needsPluginHint": "This automation is skipped until the feature it needs is available again.",
|
||||
"offBadge": "關閉",
|
||||
"docsLink": "檢視文件",
|
||||
"ago": {
|
||||
"seconds": "{{count}}s ago",
|
||||
"minutes": "{{count}} 分鐘前",
|
||||
"hours": "{{count}} 小時前",
|
||||
"days": "{{count}} 天前"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"automations": "Automations"
|
||||
},
|
||||
"onboarding": {
|
||||
"feature_automations": "Automations",
|
||||
"feature_automations_desc": "Run steps automatically when something happens, and get notified."
|
||||
},
|
||||
"maintenance": {
|
||||
"title": "維護",
|
||||
"description": "Pause host status, health, metric, container and tunnel-disconnection automations while work is in progress. Monitoring, manual runs and scheduled automations continue.",
|
||||
"denied": "You do not have permission to view maintenance.",
|
||||
"sharedReadOnly": "This host was shared with you. Only its owner can change maintenance.",
|
||||
"failed": "Maintenance could not be updated.",
|
||||
"active": "Maintenance active",
|
||||
"estimated": "Estimated completion",
|
||||
"noAutoEnd": "The estimate does not end maintenance. End it explicitly when the work is complete.",
|
||||
"endConfirm": "End maintenance and resume event-triggered automations for this host?",
|
||||
"confirmEnd": "Confirm end",
|
||||
"cancel": "取消",
|
||||
"end": "End maintenance",
|
||||
"action": "動作",
|
||||
"startNow": "Start now",
|
||||
"schedule": "Schedule for later",
|
||||
"reason": "Reason",
|
||||
"startUtc": "First start (UTC)",
|
||||
"repeat": "Repeat",
|
||||
"once": "Once",
|
||||
"weekly": "Weekly",
|
||||
"monthly": "Monthly",
|
||||
"utcHelp": "Schedules use UTC throughout the year. Monthly schedules skip months without the selected day. Planned windows cannot overlap; overrunning maintenance continues across later windows.",
|
||||
"duration": "Estimated duration (minutes)",
|
||||
"grace": "Grace period (minutes)",
|
||||
"notify": "Notify once if still offline after the estimate plus grace period",
|
||||
"addSchedule": "Add schedule",
|
||||
"schedules": "Schedules",
|
||||
"noSchedules": "No maintenance schedules.",
|
||||
"completed": "Already started",
|
||||
"minutes_one": "{{count}} minute",
|
||||
"minutes_other": "{{count}} minutes",
|
||||
"remove": "Remove schedule",
|
||||
"loadFailed": "Could not refresh maintenance status. Changes are disabled until it can be loaded.",
|
||||
"loading": "Loading maintenance status…"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user