Compare commits

..
Author SHA1 Message Date
LukeGus 8f7501203b chore: sync Crowdin translations 2026-08-26 06:10:56 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 46d4626f03 chore(deps-dev): bump the dev-minor-updates group across 1 directory with 10 updates (#1323)
Bumps the dev-minor-updates group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@codemirror/commands](https://github.com/codemirror/commands) | `6.10.4` | `6.11.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.2` | `26.2.0` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.5` | `6.1.0` |
| [electron](https://github.com/electron/electron) | `43.2.0` | `43.4.1` |
| [globals](https://github.com/sindresorhus/globals) | `17.9.0` | `17.11.0` |
| [i18next](https://github.com/i18next/i18next) | `26.3.6` | `26.4.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.28.0` | `1.33.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.84.0` | `7.85.0` |
| [react-pdf](https://github.com/wojtekmaj/react-pdf/tree/HEAD/packages/react-pdf) | `10.4.1` | `10.5.0` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.66.0` | `8.67.0` |



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

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

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

Updates `electron` from 43.2.0 to 43.4.1
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v43.2.0...v43.4.1)

Updates `globals` from 17.9.0 to 17.11.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.9.0...v17.11.0)

Updates `i18next` from 26.3.6 to 26.4.0
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next/compare/v26.3.6...v26.4.0)

Updates `lucide-react` from 1.28.0 to 1.33.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.33.0/packages/lucide-react)

Updates `react-hook-form` from 7.84.0 to 7.85.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.84.0...v7.85.0)

Updates `react-pdf` from 10.4.1 to 10.5.0
- [Release notes](https://github.com/wojtekmaj/react-pdf/releases)
- [Commits](https://github.com/wojtekmaj/react-pdf/commits/v10.5.0/packages/react-pdf)

Updates `typescript-eslint` from 8.66.0 to 8.67.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.67.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@codemirror/commands"
  dependency-version: 6.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@types/node"
  dependency-version: 26.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: electron
  dependency-version: 43.4.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: globals
  dependency-version: 17.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: i18next
  dependency-version: 26.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: lucide-react
  dependency-version: 1.33.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.85.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: react-pdf
  dependency-version: 10.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.67.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-24 19:47:48 +08:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 80191409e8 chore(deps): bump the prod-minor-updates group across 1 directory with 3 updates (#1325)
Bumps the prod-minor-updates group with 3 updates in the / directory: [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript), [js-yaml](https://github.com/nodeca/js-yaml) and [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg).


Updates `@anthropic-ai/sdk` from 0.116.0 to 0.120.0
- [Release notes](https://github.com/anthropics/anthropic-sdk-typescript/releases)
- [Changelog](https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.116.0...sdk-v0.120.0)

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

Updates `pg` from 8.22.0 to 8.23.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.23.0/packages/pg)

---
updated-dependencies:
- dependency-name: "@anthropic-ai/sdk"
  dependency-version: 0.120.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: js-yaml
  dependency-version: 5.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: pg
  dependency-version: 8.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-24 19:36:20 +08:00
LukeGus a6874cea95 chore: sync Crowdin translations 2026-08-24 06:14:10 +00:00
LukeGus fbf267fe5f chore: bump Homebrew cask to 2.7.1 2026-08-23 01:30:26 +00:00
5 changed files with 222 additions and 218 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
cask "termix" do
version "2.7.0"
sha256 "8cdae5cf5ce2786e35a1a676dec51974cfca318a5595bc743981a4c373515059"
version "2.7.1"
sha256 "dbebf8d25b6ae4e2e8aa03b3b20865473234645207d55bd00844a7c7f8d2998c"
url "https://github.com/Termix-SSH/Termix/releases/download/release-#{version}-tag/termix_macos_universal_dmg.dmg"
name "Termix"
+122 -118
View File
@@ -9,7 +9,7 @@
"version": "2.7.1",
"hasInstallScript": true,
"dependencies": {
"@anthropic-ai/sdk": "^0.116.0",
"@anthropic-ai/sdk": "^0.120.0",
"@simplewebauthn/browser": "^13.3.0",
"@simplewebauthn/server": "^13.3.2",
"@tanstack/react-virtual": "^3.14.9",
@@ -28,7 +28,7 @@
"express": "^5.2.1",
"guacamole-lite": "^1.2.0",
"jose": "^6.2.8",
"js-yaml": "^5.2.3",
"js-yaml": "^5.3.0",
"jsonwebtoken": "^9.0.3",
"jszip": "^3.10.1",
"ldapjs": "^3.0.7",
@@ -37,7 +37,7 @@
"mysql2": "^3.23.2",
"nanoid": "^6.0.1",
"node-pty": "^1.1.0",
"pg": "^8.22.0",
"pg": "^8.23.0",
"qrcode": "^1.5.4",
"serialport": "^13.0.0",
"sharp": "^0.35.3",
@@ -49,7 +49,7 @@
},
"devDependencies": {
"@codemirror/autocomplete": "^6.20.3",
"@codemirror/commands": "^6.10.4",
"@codemirror/commands": "^6.11.0",
"@codemirror/search": "^6.7.1",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.43.7",
@@ -93,8 +93,8 @@
"@types/js-yaml": "^4.0.9",
"@types/jsonwebtoken": "^9.0.10",
"@types/multer": "^2.2.0",
"@types/node": "^26.1.2",
"@types/pg": "^8.20.3",
"@types/node": "^26.2.0",
"@types/pg": "^8.23.1",
"@types/qrcode": "^1.5.6",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.4",
@@ -104,7 +104,7 @@
"@uiw/codemirror-extensions-langs": "^4.25.11",
"@uiw/codemirror-theme-github": "^4.25.11",
"@uiw/react-codemirror": "^4.25.11",
"@vitejs/plugin-react": "^6.0.5",
"@vitejs/plugin-react": "^6.1.0",
"@vitest/coverage-v8": "^4.1.10",
"@vitest/ui": "^4.1.10",
"@xterm/addon-clipboard": "^0.2.0",
@@ -119,31 +119,31 @@
"concurrently": "^10.0.4",
"cytoscape": "^3.34.0",
"drizzle-kit": "^0.31.10",
"electron": "^43.2.0",
"electron": "^43.4.1",
"electron-builder": "^26.15.3",
"eslint": "^10.8.0",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.3",
"eslint-plugin-unused-imports": "^4.4.1",
"globals": "^17.8.0",
"globals": "^17.11.0",
"guacamole-common-js": "^1.5.0",
"husky": "^9.1.7",
"i18next": "^26.3.6",
"i18next": "^26.4.0",
"i18next-browser-languagedetector": "^8.2.1",
"jsdom": "^30.0.1",
"lint-staged": "^17.2.0",
"lucide-react": "^1.28.0",
"lucide-react": "^1.33.0",
"prettier": "3.9.6",
"radix-ui": "^1.6.7",
"react": "^19.2.8",
"react-cytoscapejs": "^2.0.0",
"react-dom": "^19.2.8",
"react-h5-audio-player": "^3.10.2",
"react-hook-form": "^7.84.0",
"react-hook-form": "^7.85.0",
"react-i18next": "^17.0.11",
"react-icons": "^5.7.0",
"react-markdown": "^10.1.0",
"react-pdf": "^10.4.1",
"react-pdf": "^10.5.0",
"react-photo-view": "^1.2.7",
"react-syntax-highlighter": "^16.1.1",
"react-xtermjs": "^1.0.10",
@@ -153,7 +153,7 @@
"tailwindcss": "^4.2.4",
"tw-animate-css": "^1.4.0",
"typescript": "~6.0.3",
"typescript-eslint": "^8.66.0",
"typescript-eslint": "^8.67.0",
"vite": "^8.2.0",
"vite-plugin-svgr": "^5.2.0",
"vitest": "^4.1.10"
@@ -171,9 +171,9 @@
"license": "MIT"
},
"node_modules/@anthropic-ai/sdk": {
"version": "0.116.0",
"resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.116.0.tgz",
"integrity": "sha512-4UEapYQ+epLEMsAuLZDvW8ExVSOtHD8a7zTyLzhw0H9RXJ1eilPgmqhjwgcdg22diwx13spw6fJ4rONZ+bS7Ww==",
"version": "0.120.0",
"resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.120.0.tgz",
"integrity": "sha512-ZlvmNFT/iIF6JD13rxbbMWD8nvGR0RaUp6yMQnoc+4Af0YjVVe/bIdW1XSQQsoxXAtg1NaT6Vak0LKFlJ4d37Q==",
"license": "MIT",
"dependencies": {
"json-schema-to-ts": "^3.1.1",
@@ -625,9 +625,9 @@
}
},
"node_modules/@codemirror/commands": {
"version": "6.10.4",
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.4.tgz",
"integrity": "sha512-Ryk9y9T0FFVF0cUGhAknveAyUOl/A1qReTFi+qPKtOh2Z9F4AUBz3XOrYD4ZEgZirdugVzHvd/2/Wcwy5OliTg==",
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.11.0.tgz",
"integrity": "sha512-/K4Rl5BN0OtTiPWmJCdqODu38XnDMsDxKY5rgrPnCkutPTJf2wVbkoixLfealF5Kwse/s8P8M5jAiURiwSwnFA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7266,18 +7266,18 @@
}
},
"node_modules/@types/node": {
"version": "26.1.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz",
"integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==",
"version": "26.2.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz",
"integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==",
"license": "MIT",
"dependencies": {
"undici-types": "~8.3.0"
}
},
"node_modules/@types/pg": {
"version": "8.20.3",
"resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.20.3.tgz",
"integrity": "sha512-4Tvg+HO6+oQaAkpT8GTYoSExzpGGZz532GXgbbCElWJQeQdMozBWxEKNBhJJpHFjWXsMxqPbyypvj/89FWNoSQ==",
"version": "8.23.1",
"resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.23.1.tgz",
"integrity": "sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7409,17 +7409,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz",
"integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz",
"integrity": "sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.12.2",
"@typescript-eslint/scope-manager": "8.66.0",
"@typescript-eslint/type-utils": "8.66.0",
"@typescript-eslint/utils": "8.66.0",
"@typescript-eslint/visitor-keys": "8.66.0",
"@typescript-eslint/scope-manager": "8.67.0",
"@typescript-eslint/type-utils": "8.67.0",
"@typescript-eslint/utils": "8.67.0",
"@typescript-eslint/visitor-keys": "8.67.0",
"ignore": "^7.0.5",
"natural-compare": "^1.4.0",
"ts-api-utils": "^2.5.0"
@@ -7432,7 +7432,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"@typescript-eslint/parser": "^8.66.0",
"@typescript-eslint/parser": "^8.67.0",
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
"typescript": ">=4.8.4 <6.1.0"
}
@@ -7448,16 +7448,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz",
"integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.67.0.tgz",
"integrity": "sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/scope-manager": "8.66.0",
"@typescript-eslint/types": "8.66.0",
"@typescript-eslint/typescript-estree": "8.66.0",
"@typescript-eslint/visitor-keys": "8.66.0",
"@typescript-eslint/scope-manager": "8.67.0",
"@typescript-eslint/types": "8.67.0",
"@typescript-eslint/typescript-estree": "8.67.0",
"@typescript-eslint/visitor-keys": "8.67.0",
"debug": "^4.4.3"
},
"engines": {
@@ -7473,14 +7473,14 @@
}
},
"node_modules/@typescript-eslint/project-service": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz",
"integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.67.0.tgz",
"integrity": "sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/tsconfig-utils": "^8.66.0",
"@typescript-eslint/types": "^8.66.0",
"@typescript-eslint/tsconfig-utils": "^8.67.0",
"@typescript-eslint/types": "^8.67.0",
"debug": "^4.4.3"
},
"engines": {
@@ -7495,14 +7495,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz",
"integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz",
"integrity": "sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.66.0",
"@typescript-eslint/visitor-keys": "8.66.0"
"@typescript-eslint/types": "8.67.0",
"@typescript-eslint/visitor-keys": "8.67.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -7513,9 +7513,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz",
"integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz",
"integrity": "sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7530,15 +7530,15 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz",
"integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz",
"integrity": "sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.66.0",
"@typescript-eslint/typescript-estree": "8.66.0",
"@typescript-eslint/utils": "8.66.0",
"@typescript-eslint/types": "8.67.0",
"@typescript-eslint/typescript-estree": "8.67.0",
"@typescript-eslint/utils": "8.67.0",
"debug": "^4.4.3",
"ts-api-utils": "^2.5.0"
},
@@ -7555,9 +7555,9 @@
}
},
"node_modules/@typescript-eslint/types": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz",
"integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz",
"integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7569,16 +7569,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz",
"integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz",
"integrity": "sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/project-service": "8.66.0",
"@typescript-eslint/tsconfig-utils": "8.66.0",
"@typescript-eslint/types": "8.66.0",
"@typescript-eslint/visitor-keys": "8.66.0",
"@typescript-eslint/project-service": "8.67.0",
"@typescript-eslint/tsconfig-utils": "8.67.0",
"@typescript-eslint/types": "8.67.0",
"@typescript-eslint/visitor-keys": "8.67.0",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -7597,16 +7597,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz",
"integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.67.0.tgz",
"integrity": "sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
"@typescript-eslint/scope-manager": "8.66.0",
"@typescript-eslint/types": "8.66.0",
"@typescript-eslint/typescript-estree": "8.66.0"
"@typescript-eslint/scope-manager": "8.67.0",
"@typescript-eslint/types": "8.67.0",
"@typescript-eslint/typescript-estree": "8.67.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -7621,13 +7621,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz",
"integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz",
"integrity": "sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.66.0",
"@typescript-eslint/types": "8.67.0",
"eslint-visitor-keys": "^5.0.0"
},
"engines": {
@@ -7775,9 +7775,9 @@
"license": "ISC"
},
"node_modules/@vitejs/plugin-react": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.5.tgz",
"integrity": "sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==",
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.0.tgz",
"integrity": "sha512-qd2BzUBehkov86WFhg0JkEFEYyCLG9uPCe6qWTY/kRlss9OvJrOF2UbIWT7p+8IzZHkEu0DNGHc4HSv+JdDLsw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7789,6 +7789,7 @@
"peerDependencies": {
"@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
"babel-plugin-react-compiler": "^1.0.0",
"oxc-transform-react": "^0.145.0",
"vite": "^8.0.0"
},
"peerDependenciesMeta": {
@@ -7797,6 +7798,9 @@
},
"babel-plugin-react-compiler": {
"optional": true
},
"oxc-transform-react": {
"optional": true
}
}
},
@@ -10250,9 +10254,9 @@
}
},
"node_modules/electron": {
"version": "43.2.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-43.2.0.tgz",
"integrity": "sha512-80zvrgG7ZRXD+tD0IyLvrnN9n+veSxadMRsMaC9wKKP3iUbtC7rGM8+dVuCmOb0Rrwwv8ESW4awnUZh9Hbp1fA==",
"version": "43.4.1",
"resolved": "https://registry.npmjs.org/electron/-/electron-43.4.1.tgz",
"integrity": "sha512-5b+EuiwkgG5iRcsEL34rimgRpkYp15SsfZOa0pC5kXs0Tb82TH4n95rpQzTZa7yRCbA7tm0WoEbuBL6NaAhAcA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11454,9 +11458,9 @@
}
},
"node_modules/globals": {
"version": "17.9.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-17.9.0.tgz",
"integrity": "sha512-m/MvAW61QVU5VDNF1Vj8axt016h8w7L5TU1e9zlab7XIttAT2YAlCwl75K1fOqvMM9apmD7lbCIRhpfkhmxhCg==",
"version": "17.11.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz",
"integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11801,9 +11805,9 @@
}
},
"node_modules/i18next": {
"version": "26.3.6",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.6.tgz",
"integrity": "sha512-Bu5Z2nAXgfVyM8xvW3jk9EKRIuX37PudsrBViThNFx7CR7aaYTpP01cxNB/E4c4UUzTDiAZRstEhsRfPOL/8xA==",
"version": "26.4.0",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-26.4.0.tgz",
"integrity": "sha512-rsmK5bFqsD1AetSFSIa43wtNR4WpvvH4p0tLEsTxkC7QTrfdFm06nbQ95bh8Og4wwaCnUEcm9DVYL2cgxitiQg==",
"dev": true,
"funding": [
{
@@ -12224,9 +12228,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.3.tgz",
"integrity": "sha512-n+mUVyUX5bVv7G/G2zyIHOhdxfuU1dY2NOFzTQUWiMUbFss8b57NFlgCCaggU78wSw5KVS9cllzeLyzyR+n5nw==",
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.3.0.tgz",
"integrity": "sha512-muutsYr+e2+d3rTgUGslq5rxbBlUy3cJ61IsHag2QNDQV+7zXWjkUpmALIajhrlLlrgRUiymj6U3zUr/TMK84Q==",
"funding": [
{
"type": "github",
@@ -12964,9 +12968,9 @@
}
},
"node_modules/lucide-react": {
"version": "1.28.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz",
"integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==",
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.33.0.tgz",
"integrity": "sha512-MTRwMy0ZlL8Ur/vOAiJ9XGHE+kFPC7brq6MxAm0GiGXEBj0qy0jA/pG4N675oSzciO/UCdX8T+5yUQdmDeTLxg==",
"dev": true,
"license": "ISC",
"peerDependencies": {
@@ -14781,14 +14785,14 @@
}
},
"node_modules/pg": {
"version": "8.22.0",
"resolved": "https://registry.npmjs.org/pg/-/pg-8.22.0.tgz",
"integrity": "sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA==",
"version": "8.23.0",
"resolved": "https://registry.npmjs.org/pg/-/pg-8.23.0.tgz",
"integrity": "sha512-Ip2EQCngowJLGOfCwkFhPXU7/ljlhn6Rxlmy4XYfL2Y+vyRM59+8uR2xqRWKdYmbXmxCFOAmKxBuSUCdF34qLg==",
"license": "MIT",
"dependencies": {
"pg-connection-string": "^2.14.0",
"pg-pool": "^3.14.0",
"pg-protocol": "^1.15.0",
"pg-protocol": "^1.16.0",
"pg-types": "2.2.0",
"pgpass": "1.0.5"
},
@@ -14839,9 +14843,9 @@
}
},
"node_modules/pg-protocol": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.15.0.tgz",
"integrity": "sha512-cq9sECI5s0+uPUXjbz8ioyPJni6RzsRib0US67i5IoTZKw8fNeYlVE7u8F4dG7vEJJtc5wdD1K189lCCUwqWTQ==",
"version": "1.16.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.16.0.tgz",
"integrity": "sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg==",
"license": "MIT"
},
"node_modules/pg-types": {
@@ -15596,9 +15600,9 @@
}
},
"node_modules/react-hook-form": {
"version": "7.84.0",
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.84.0.tgz",
"integrity": "sha512-+hWvQP6GLco56mDwrbU4XnHix8t1z90ltZsDIrREl+jnQFQxYLX8oAzqe/Xn8nHpmoXTY5M6oEXrAhbP1qevNQ==",
"version": "7.85.0",
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.85.0.tgz",
"integrity": "sha512-U2MTriFXnclmV4rOE20p2DcRFv5WEg3FIcBFOKcOLFHDVvGIMPvLTkTWefUsonmlaVy23khVDxDWym6uJVGOzw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15686,9 +15690,9 @@
}
},
"node_modules/react-pdf": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-10.4.1.tgz",
"integrity": "sha512-kS/35staVCBqS29verTQJQZXw7RfsRCPO3fdJoW1KXylcv7A9dw6DZ3vJXC2w+bIBgLw5FN4pOFvKSQtkQhPfA==",
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-10.5.0.tgz",
"integrity": "sha512-zGKb6Ph5AYn2OfO4TS8Gg0Go3eW5K/TKy0+0FTm8EwFNbpgbuaWBZoJdYkJt+cRBCkizE9dYvqtMtHRj522Q4w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -17274,16 +17278,16 @@
}
},
"node_modules/typescript-eslint": {
"version": "8.66.0",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz",
"integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==",
"version": "8.67.0",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.67.0.tgz",
"integrity": "sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "8.66.0",
"@typescript-eslint/parser": "8.66.0",
"@typescript-eslint/typescript-estree": "8.66.0",
"@typescript-eslint/utils": "8.66.0"
"@typescript-eslint/eslint-plugin": "8.67.0",
"@typescript-eslint/parser": "8.67.0",
"@typescript-eslint/typescript-estree": "8.67.0",
"@typescript-eslint/utils": "8.67.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+14 -14
View File
@@ -46,7 +46,7 @@
"schema:migrations": "drizzle-kit generate --config=drizzle.config.sqlite.ts && drizzle-kit generate --config=drizzle.config.pg.ts && drizzle-kit generate --config=drizzle.config.mysql.ts"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.116.0",
"@anthropic-ai/sdk": "^0.120.0",
"@simplewebauthn/browser": "^13.3.0",
"@simplewebauthn/server": "^13.3.2",
"@tanstack/react-virtual": "^3.14.9",
@@ -65,7 +65,7 @@
"express": "^5.2.1",
"guacamole-lite": "^1.2.0",
"jose": "^6.2.8",
"js-yaml": "^5.2.3",
"js-yaml": "^5.3.0",
"jsonwebtoken": "^9.0.3",
"jszip": "^3.10.1",
"ldapjs": "^3.0.7",
@@ -74,7 +74,7 @@
"mysql2": "^3.23.2",
"nanoid": "^6.0.1",
"node-pty": "^1.1.0",
"pg": "^8.22.0",
"pg": "^8.23.0",
"qrcode": "^1.5.4",
"serialport": "^13.0.0",
"sharp": "^0.35.3",
@@ -86,7 +86,7 @@
},
"devDependencies": {
"@codemirror/autocomplete": "^6.20.3",
"@codemirror/commands": "^6.10.4",
"@codemirror/commands": "^6.11.0",
"@codemirror/search": "^6.7.1",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.43.7",
@@ -130,8 +130,8 @@
"@types/js-yaml": "^4.0.9",
"@types/jsonwebtoken": "^9.0.10",
"@types/multer": "^2.2.0",
"@types/node": "^26.1.2",
"@types/pg": "^8.20.3",
"@types/node": "^26.2.0",
"@types/pg": "^8.23.1",
"@types/qrcode": "^1.5.6",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.4",
@@ -141,7 +141,7 @@
"@uiw/codemirror-extensions-langs": "^4.25.11",
"@uiw/codemirror-theme-github": "^4.25.11",
"@uiw/react-codemirror": "^4.25.11",
"@vitejs/plugin-react": "^6.0.5",
"@vitejs/plugin-react": "^6.1.0",
"@vitest/coverage-v8": "^4.1.10",
"@vitest/ui": "^4.1.10",
"@xterm/addon-clipboard": "^0.2.0",
@@ -156,31 +156,31 @@
"concurrently": "^10.0.4",
"cytoscape": "^3.34.0",
"drizzle-kit": "^0.31.10",
"electron": "^43.2.0",
"electron": "^43.4.1",
"electron-builder": "^26.15.3",
"eslint": "^10.8.0",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.3",
"eslint-plugin-unused-imports": "^4.4.1",
"globals": "^17.8.0",
"globals": "^17.11.0",
"guacamole-common-js": "^1.5.0",
"husky": "^9.1.7",
"i18next": "^26.3.6",
"i18next": "^26.4.0",
"i18next-browser-languagedetector": "^8.2.1",
"jsdom": "^30.0.1",
"lint-staged": "^17.2.0",
"lucide-react": "^1.28.0",
"lucide-react": "^1.33.0",
"prettier": "3.9.6",
"radix-ui": "^1.6.7",
"react": "^19.2.8",
"react-cytoscapejs": "^2.0.0",
"react-dom": "^19.2.8",
"react-h5-audio-player": "^3.10.2",
"react-hook-form": "^7.84.0",
"react-hook-form": "^7.85.0",
"react-i18next": "^17.0.11",
"react-icons": "^5.7.0",
"react-markdown": "^10.1.0",
"react-pdf": "^10.4.1",
"react-pdf": "^10.5.0",
"react-photo-view": "^1.2.7",
"react-syntax-highlighter": "^16.1.1",
"react-xtermjs": "^1.0.10",
@@ -190,7 +190,7 @@
"tailwindcss": "^4.2.4",
"tw-animate-css": "^1.4.0",
"typescript": "~6.0.3",
"typescript-eslint": "^8.66.0",
"typescript-eslint": "^8.67.0",
"vite": "^8.2.0",
"vite-plugin-svgr": "^5.2.0",
"vitest": "^4.1.10"
+1 -1
View File
@@ -2053,7 +2053,7 @@
"failedToUploadFile": "Caricamento file non riuscito",
"uploadingFolderFiles": "Caricamento del/dei file {{count}} in corso...",
"uploadedFolderFiles": "File caricati con successo {{count}}",
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed",
"uploadedFolderPartial": "Caricamento del/i file {{uploaded}} non riuscito/i {{failed}}",
"fileDownloadedSuccessfully": "File \"{{name}}\" scaricato con successo",
"failedToDownloadFile": "Scaricamento file non riuscito",
"fileCreatedSuccessfully": "File \"{{name}}\" creato con successo",
+83 -83
View File
@@ -1,6 +1,6 @@
{
"connection": {
"retryingIn": "将在 {{seconds}}秒后重试({{attempt}}/{{max}}",
"retryingIn": "将在 {{seconds}} 秒后重试({{attempt}}/{{max}}",
"retryingNow": "正在重试... ({{attempt}}/{{max}})",
"disconnected": "无法连接",
"reconnect": "重新连接"
@@ -111,16 +111,16 @@
"filterTypeKey": "SSH 密钥",
"filterTagsGroup": "标签",
"copyDeployCommand": "复制部署命令",
"cloneCredentialAction": "克隆凭",
"cloneCredentialAction": "克隆凭",
"clonedCredential": "克隆 {{name}}",
"clonedCredentialName": "{{name}} 复制",
"clonedCredentialName": "{{name}} 副本",
"deleteCredentialAction": "删除凭据",
"editCredentialAction": "编辑凭证",
"failedToCloneCredential": "克隆凭证失败",
"failedToDeleteCredential": "删除凭据失败",
"idBadge": "ID",
"keyBadge": "钥",
"passwordBadge": "公共工程部",
"keyBadge": "钥",
"passwordBadge": "密码",
"renameFolder": "重命名文件夹",
"deleteFolder": "删除文件夹",
"deleteCredentialConfirm": "删除凭证“{{name}}”?",
@@ -135,26 +135,26 @@
"sortManual": "手动(拖动重新排序)",
"customizeSidebar": "自定义侧边栏",
"customizeSidebarDescription": "选择凭证列表的外观和行为方式。",
"customizeDensityTitle": "密度",
"densityComfortableDesc": "每行一条凭证,并附上详细信息。",
"densityCompactDesc": "较长的列表,每条凭证占一行。",
"displayDensityComfortable": "舒服的",
"displayDensityCompact": "袖珍的",
"customizeBehaviorTitle": "行为",
"customizeDensityTitle": "显示密度",
"densityComfortableDesc": "每个凭证独占一行,展示更多详细信息。",
"densityCompactDesc": "每行一条凭证,适用于较长的列表。",
"displayDensityComfortable": "宽松",
"displayDensityCompact": "紧凑",
"customizeBehaviorTitle": "交互",
"showCredentialTags": "显示标签",
"showCredentialTagsDesc": "在凭证列表中显示标签",
"actionsVisibility": "凭证操作",
"actionsVisibilityDesc": "当每个凭证上的连接管理按钮出现时",
"actionsAlways": "始终可见",
"actionsOnly": "仅连接,其余操作请点击",
"actionsHover": "鼠标悬停时显示",
"actionsClick": "点击显示",
"actionsVisibility": "显示操作按钮",
"actionsVisibilityDesc": "设置连接管理按钮的显示时机",
"actionsAlways": "始终显示",
"actionsOnly": "仅显示“连接,其余点击显示",
"actionsHover": "悬停时显示",
"actionsClick": "点击显示",
"customizeSortHint": "排序方式设置在工具栏的排序菜单中。",
"expandActions": "展开操作",
"collapseActions": "坍塌动作",
"backToHosts": "返回主持人",
"backToCredentials": "返回凭",
"searchCredentialsPlaceholder": "搜索凭…",
"backToHosts": "返回主机列表",
"backToCredentials": "返回凭据列表",
"searchCredentialsPlaceholder": "搜索凭…",
"deployDialogTitle": "部署 SSH 密钥",
"deployDialogDesc": "将 {{name}} 部署到主机的 authorized_keys 中。",
"targetHostLabel": "目标主机",
@@ -163,9 +163,9 @@
"deployBtn": "部署",
"keyDeployedSuccess": "密钥已成功部署",
"failedToDeployKey": "密钥部署失败",
"folderRenamedTo": "文件夹已重命名为“{{name}}”",
"folderRenamedTo": "文件夹已重命名为 “{{name}}”",
"failedToRenameFolder": "重命名文件夹失败",
"arrangeUnlockedSwitchedToManual": "已切换至人工分拣,因此您的订单不会更改。",
"arrangeUnlockedSwitchedToManual": "已切换至手动排序以保留您的自定义顺序",
"arrangeUnlocked": "解锁拖动即可重新排列"
},
"homepage": {
@@ -457,7 +457,7 @@
"title": "Termix Desktop 现在可以独立运行",
"body1": "此应用以前直接连接到您的 Termix 服务器。现在已重新设计,可完全独立运行,将主机和凭据存储在本地,因此即使离线也能正常工作。与自托管 Termix 服务器的双向同步现在是可选的。",
"body2": "您现有的主机和凭据仍然在 {{url}}上。启用远程同步并重新连接到该服务器,即可恢复它们并保持两者同步。",
"dismiss": "现在不要",
"dismiss": "稍后再说",
"setUpSync": "设置远程同步"
},
"remoteSync": {
@@ -471,17 +471,17 @@
"syncError": "同步错误: {{message}}",
"needsReauth": "登录已过期",
"connectButton": "连接到服务器",
"disconnectButton": "断开",
"disconnectButton": "断开连接",
"syncNowButton": "立即同步",
"syncing": "正在同步...",
"serverUrl": "服务器 URL",
"enterServerUrl": "请输入服务器网址",
"mustIncludeProtocol": "服务器 URL 必须以 http:// 或 https:// 开头",
"enterServerUrl": "请输入服务器 URL",
"mustIncludeProtocol": "服务器 URL 必须以 http:// 或 https:// 开头",
"connectionTestFailed": "无法通过该 URL 连接到 Termix 服务器",
"allowInvalidCertificate": "允许无效证书",
"allowInvalidCertificateDesc": "仅适用于具有自签名证书或 IP 地址证书的受信任的自托管服务器。",
"savedServers": "已保存的服务器",
"removeServer": "除",
"removeServer": "除",
"continueButton": "继续",
"cancelButton": "取消",
"signInTitle": "登录到 {{url}}",
@@ -579,73 +579,73 @@
"required": "必填"
},
"onboarding": {
"stepCounter": "步骤 {{current}}{{total}}",
"stepCounter": "步骤 {{current}}/{{total}}",
"skip": "跳过设置",
"next": "下一个",
"finish": "开始使用",
"welcomeTitle": "欢迎来到 Termix",
"welcomeIntro": "Termix 让您在一个地方即可管理所有服务器。整个设置过程大约只需一分钟,且所有设置都不是永久性的。",
"welcome_hosts": "保你的服务器",
"welcomeIntro": "Termix 能够为您集中管理服务器。设置大约只需一分钟,且所有配置后续均可随时更改。",
"welcome_hosts": "保你的服务器",
"welcome_hosts_desc": "将您管理的所有机器都放在一个列表中。",
"welcome_terminal": "立即连接",
"welcome_terminal_desc": "在标签页中打开终端,无需单独的 SSH 客户端。",
"welcome_terminal": "快速连接",
"welcome_terminal_desc": "在标签页中直接打开终端,无需额外安装 SSH 客户端。",
"welcome_files": "浏览和编辑文件",
"welcome_files_desc": "上传、下载编辑远程文件。",
"presetTitle": "你想在屏幕上显示多少内容",
"presetIntro": "Termix 可以根据您的需要,简单或详细均可。选择一个起点即可。",
"presetChangeLater": "您可以在“设置”下的“界面”中切换预设或更改任何单个设置。",
"appearanceTitle": "让它成为你的",
"appearanceIntro": "选择主题、强调色和语言。这三项都可以在“设置”中更改。",
"featuresTitle": "Termix 还有哪些其他功能",
"featuresIntro": "保存的每个服务器都可以在终端以外的多个终端中打开。以下是左侧图标背后的功能。",
"welcome_files_desc": "支持上传、下载编辑远程文件。",
"presetTitle": "你希望屏幕上显示多少信息",
"presetIntro": "Termix 允许您灵活配置界面的信息密度。请选择初始布局。",
"presetChangeLater": "后续你可以可随时在“设置”>“界面”中切换预设或调整具体选项。",
"appearanceTitle": "个性化外观",
"appearanceIntro": "选择主题、强调色和界面语言。后续均可在“设置”中随时更改。",
"featuresTitle": "Termix 其他功能",
"featuresIntro": "保存的服务器不仅能在终端中打开。左侧图标还提供了以下强大功能。",
"feature_files": "文件管理器",
"feature_files_desc": "无需离开应用程序,即可通过 SFTP 浏览、上传、下载编辑文件。",
"feature_files_desc": "无需离开应用,即可通过 SFTP 浏览、上传、下载编辑文件。",
"feature_desktop": "远程桌面",
"feature_desktop_desc": "像 SSH 一样,在同一个标签页中打开 RDP、VNC 和 Telnet 会话。",
"feature_desktop_desc": "像 SSH 一样,在标签页中直接打开 RDP、VNC 和 Telnet 会话。",
"feature_tunnels": "隧道",
"feature_tunnels_desc": "通过服务器转发端口以访问未公开的服务。",
"feature_tunnels_desc": "通过服务器转发端口以访问未暴露的服务。",
"feature_docker": "Docker",
"feature_docker_desc": "查看运行 Docker 的任何主机上容器、读取日志和查看统计信息。",
"feature_snippets": "片段",
"feature_snippets_desc": "保存您经常运行的命令,一键将其发送终端。",
"feature_docker_desc": "在任何运行 Docker 的主机上查看容器、读取日志及监控运行状态。",
"feature_snippets": "代码片段",
"feature_snippets_desc": "保存常用命令,一键发送终端执行。",
"feature_automations": "自动化",
"feature_automations_desc": "当发生某些事情时,自动运行步骤并接收通知。",
"feature_metrics": "指标和警报",
"feature_metrics_desc": "跟踪 CPU、内存和磁盘的运行情况,并在它们出现故障时发出警。",
"featuresRailHint": "不需要其中任何一个图标?您可以在“设置”>“导航”中隐藏侧边栏中的任何图标。",
"workflowTitle": "移动速度加快",
"workflowIntro": "拥有几台服务器后,养成以下几个习惯可以节省大量时间。",
"feature_automations_desc": "触发特定事件时自动执行任务,并接收通知。",
"feature_metrics": "指标与告警",
"feature_metrics_desc": "跟踪 CPU、内存和磁盘的运行情况,并在它们出现故障时发出警。",
"featuresRailHint": "不需要某些功能?可在“设置” > “导航”中隐藏侧边栏的对应图标。",
"workflowTitle": "提升操作效率",
"workflowIntro": "当您管理多台服务器时,掌握以下技巧能大幅节省时间。",
"workflow_palette": "命令面板",
"workflow_palette_desc": "输入文字即可跳转到任意服务器或操作。按两次Shift键即可打开。",
"workflow_palette_desc": "输入文字即可快速跳转至服务器或执行操作。双击 Shift 键打开。",
"workflow_split": "分屏",
"workflow_split_desc": "工作时可并排显示最多四个标签页来查看日志。",
"workflow_split_desc": "支持最多四分屏并排显示,方便边工作边查看日志。",
"workflow_dock": "侧面板",
"workflow_dock_desc": "单击中键或右键单击侧边栏图标,可将其作为标签页打开或将其固定右侧。",
"workflow_dock_desc": "中键或右键单击侧边栏图标,可将其标签页打开或固定右侧。",
"workflow_workspaces": "工作区",
"workflow_workspaces_desc": "保存一组打开的标签页,稍后重新打开整个布局。",
"securityTitle": "保护您的登录信息安全",
"securityIntro": "Termix 会为您存储凭据,因此值得花点时间了解一下它是如何工作的。",
"security_credentials": "可重用凭",
"security_credentials_desc": "只需保存一次密钥或密码,即可将其附加到任意数量的服务器。",
"security_twofa": "双因素认证和密码",
"security_twofa_desc": "“设置”>“安全”中,为您的帐户添加 TOTP 或密码密钥。",
"workflow_workspaces_desc": "保存当前打开的标签页组合,方便之后一键恢复整个布局。",
"securityTitle": "保障登录安全",
"securityIntro": "Termix 提供安全的凭据存储功能,建议花一分钟了解其工作原理。",
"security_credentials": "可重用凭",
"security_credentials_desc": "只需保存一次密钥或密码,即可将绑定至任意数量的服务器。",
"security_twofa": "双因素认证与通行密钥",
"security_twofa_desc": "请前往“设置” > “安全”为您的账号添加 TOTP 或通行密钥。",
"security_identity": "Termix ID",
"security_identity_desc": "发短期 SSH 证书,而不是将密钥复制到每台服务器。",
"security_sharing": "享",
"security_sharing_desc": "允许其他用户在不透露密码的情况下访问服务器。",
"securityEncryptionNote": "凭在存储前会进行加密,只有在连接需要时才会解密。",
"security_identity_desc": "发短期 SSH 证书,避免在每台服务器上复制密钥。",
"security_sharing": "享",
"security_sharing_desc": "无需共享密码,即可授权其他用户访问服务器。",
"securityEncryptionNote": "凭在存储前会加密,仅在建立连接时解密。",
"doneTitle": "一切就绪",
"doneHeading": "设置完成",
"doneDesc": "从侧边栏选择一服务器,即可打开终端、浏览文件或查看指标。",
"doneDesc": "从侧边栏选择一服务器,即可打开终端、浏览文件或查看监控指标。",
"done_settings": "稍后更改任何内容",
"done_settings_desc": "主题、布局密度以及显示的图标等设置都可以在“设置”中进行更改。",
"done_rerun": "还想再来一次吗",
"done_rerun_desc": "打开设置,进入界面,选择运行设置,再次按照这些步骤操作。",
"done_settings_desc": "主题、界面显示密度及侧边栏图标,均可在“设置”中随时更改。",
"done_rerun": "需要重新配置",
"done_rerun_desc": "前往“设置” > “界面”并选择运行向导”,即可再次执行此流程。",
"done_desktop": "桌面应用程序",
"done_desktop_desc": "Termix 可作为桌面应用程序在 Windows、macOS 和 Linux 上运行。",
"done_desktop_link": "获取桌面应用程序",
"done_mobile": "移动应用",
"done_mobile_desc": "在 iOS 和 Android 设备上携带您的服务器。",
"done_mobile_desc": "在 iOS 和 Android 设备上随时随地管理您的服务器。",
"done_mobile_link": "获取移动应用",
"done_docs": "完整文档",
"done_docs_desc": "所有功能均提供指南,包括此处未涵盖的功能。",
@@ -653,13 +653,13 @@
"done_cli": "命令行工具",
"done_cli_desc": "通过终端管理您的服务器,并在您自己的脚本中使用Termix。",
"done_cli_link": "打开 CLI 文档",
"aiTitle": "人工智能助手",
"aiTitle": "AI 助手",
"aiIntro": "Termix 可以包含一个可选的 AI 助手。您可以稍后在设置中更改此选项。",
"aiEnableTitle": "打开它",
"aiEnableDesc": "添加一个助手,它可以读取您的置并提出您批准的更改建议。需要您提供服务提供商,例如当地的 Ollama 服务商。",
"aiSkipTitle": "丢开",
"aiSkipDesc": "Termix 的运行方式与现在相同。助手保持隐藏状态。",
"aiNote": "在您添加服务提供商并发送消息之前,任何内容都不会发送任何地方。"
"aiEnableTitle": "启用",
"aiEnableDesc": "启用 AI 助手,它将分析您的置并提供优化建议。需自行配置服务商,例如本地运行的 Ollama。",
"aiSkipTitle": "禁用",
"aiSkipDesc": "Termix 正常工作,AI 助手保持隐藏状态。",
"aiNote": "在您配置服务商并主动发送消息之前,绝不会向外发送任何数据。"
},
"nav": {
"home": "首页",
@@ -719,7 +719,7 @@
"serial": "串口",
"roleAdministrator": "管理员",
"roleUser": "用户",
"ai": "人工智能"
"ai": "AI"
},
"hosts": {
"hosts": "主机",
@@ -3183,8 +3183,8 @@
"sectionImageStorage": "图像存储",
"imageStorageMode": "存储模式",
"imageStorageModeDesc": "终端镜像粘贴和上传位置已设置。自动选择连接、本地和远程(SFTP)镜像的功能已修复。",
"imageStorageModeAuto": "汽车",
"imageStorageModeLocal": "当地的",
"imageStorageModeAuto": "自动",
"imageStorageModeLocal": "本地",
"imageStorageModeRemoteSftp": "远程(SFTP",
"imageStorageLocalDir": "本地目录",
"imageStorageLocalDirDesc": "Termix 后端上的绝对路径。出于安全考虑,保存后将不显示。",
@@ -3574,7 +3574,7 @@
"save": "保存",
"saving": "保存中..."
},
"aiGloballyEnabled": "人工智能助手",
"aiGloballyEnabled": "AI 助手",
"aiGloballyEnabledDesc": "允许用户开启AI助手。关闭此功能后,助手将被隐藏,所有用户均无法使用。",
"aiPrivateEndpoints": "允许的私有人工智能主机",
"aiPrivateEndpointsDesc": "用户可能将服务提供商指向的私有网络上的主机,例如自托管的 Ollama。用逗号分隔。",
@@ -4107,7 +4107,7 @@
"presetConfirmDesc": "此操作会重置您的侧边栏、导航栏、仪表盘布局、终端工具栏和文件管理器视图。您的主机、凭据和主页不会受到影响。",
"presetConfirmApply": "应用预设",
"runSetupAgainDesc": "再走一遍第一次运行的设置流程。",
"runSetupAgainButton": "运行设置",
"runSetupAgainButton": "运行向导",
"uiArea_chrome": "Chrome 应用",
"uiArea_hostList": "主机列表",
"uiArea_credentialList": "凭证列表",
@@ -4562,7 +4562,7 @@
"proposalApplied": "变更已生效",
"proposalApplyFailed": "无法应用更改",
"proposalRejectFailed": "无法拒绝更改",
"enableTitle": "启用人工智能助手",
"enableTitle": "启用 AI 助手",
"enableDescription": "让助手读取您的设置并提出更改建议,供您批准。",
"readOnlyCommands": "允许只读诊断命令",
"readOnlyCommandsDescription": "助手可能会在不每次都询问的情况下运行一些安全的命令,例如 `df` 和 `uptime`。任何会更改服务器的操作都会优先被提出。",