Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 17a5ef5a9e |
@@ -339,7 +339,8 @@ jobs:
|
||||
env:
|
||||
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
|
||||
GH_TOKEN: ${{ steps.committer.outputs.token }}
|
||||
CSC_KEYCHAIN: build.keychain
|
||||
CSC_LINK: ${{ secrets.APPLE_CERTIFICATE }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
|
||||
APPLE_API_KEY: ${{ runner.temp }}/apple-api-key.p8
|
||||
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY }}
|
||||
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
|
||||
|
||||
@@ -252,6 +252,33 @@ These are not strictly enforced, they are just general guidelines:
|
||||
|
||||
For net-new functionality, start with a design conversation. Open an issue describing the problem, your proposed approach (optional), and why it belongs in OpenCode. The core team will help decide whether it should move forward; please wait for that approval instead of opening a feature PR directly.
|
||||
|
||||
## Trust & Vouch System
|
||||
|
||||
This project uses [vouch](https://github.com/mitchellh/vouch) to manage contributor trust. The vouch list is maintained in [`.github/VOUCHED.td`](.github/VOUCHED.td).
|
||||
|
||||
### How it works
|
||||
|
||||
- **Vouched users** are explicitly trusted contributors.
|
||||
- **Denounced users** are explicitly blocked. Issues and pull requests from denounced users are automatically closed. If you have been denounced, you can request to be unvouched by reaching out to a maintainer on [Discord](https://opencode.ai/discord)
|
||||
- **Everyone else** can participate normally — you don't need to be vouched to open issues or PRs.
|
||||
|
||||
### For maintainers
|
||||
|
||||
Collaborators with write access can manage the vouch list by commenting on any issue:
|
||||
|
||||
- `vouch` — vouch for the issue author
|
||||
- `vouch @username` — vouch for a specific user
|
||||
- `denounce` — denounce the issue author
|
||||
- `denounce @username` — denounce a specific user
|
||||
- `denounce @username <reason>` — denounce with a reason
|
||||
- `unvouch` / `unvouch @username` — remove someone from the list
|
||||
|
||||
Changes are committed automatically to `.github/VOUCHED.td`.
|
||||
|
||||
### Denouncement policy
|
||||
|
||||
Denouncement is reserved for users who repeatedly submit low-quality AI-generated contributions, spam, or otherwise act in bad faith. It is not used for disagreements or honest mistakes.
|
||||
|
||||
## Issue Requirements
|
||||
|
||||
All issues **must** use one of our issue templates:
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
},
|
||||
"packages/app": {
|
||||
"name": "@opencode-ai/app",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@corvu/drawer": "catalog:",
|
||||
"@dnd-kit/abstract": "0.5.0",
|
||||
@@ -96,7 +96,7 @@
|
||||
},
|
||||
"packages/cli": {
|
||||
"name": "@opencode-ai/cli",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"bin": {
|
||||
"lildax": "./bin/lildax.cjs",
|
||||
},
|
||||
@@ -144,7 +144,7 @@
|
||||
},
|
||||
"packages/codemode": {
|
||||
"name": "@opencode-ai/codemode",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"acorn": "8.15.0",
|
||||
"effect": "catalog:",
|
||||
@@ -158,7 +158,7 @@
|
||||
},
|
||||
"packages/console/app": {
|
||||
"name": "@opencode-ai/console-app",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@cloudflare/vite-plugin": "1.15.2",
|
||||
"@ibm/plex": "6.4.1",
|
||||
@@ -194,7 +194,7 @@
|
||||
},
|
||||
"packages/console/core": {
|
||||
"name": "@opencode-ai/console-core",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sts": "3.782.0",
|
||||
"@jsx-email/render": "1.1.1",
|
||||
@@ -221,7 +221,7 @@
|
||||
},
|
||||
"packages/console/function": {
|
||||
"name": "@opencode-ai/console-function",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@ai-sdk/anthropic": "3.0.82",
|
||||
"@ai-sdk/openai": "3.0.48",
|
||||
@@ -243,7 +243,7 @@
|
||||
},
|
||||
"packages/console/mail": {
|
||||
"name": "@opencode-ai/console-mail",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@jsx-email/all": "2.2.3",
|
||||
"@jsx-email/cli": "1.4.3",
|
||||
@@ -267,7 +267,7 @@
|
||||
},
|
||||
"packages/console/support": {
|
||||
"name": "@opencode-ai/console-support",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@cloudflare/vite-plugin": "1.15.2",
|
||||
"@opencode-ai/console-core": "workspace:*",
|
||||
@@ -287,7 +287,7 @@
|
||||
},
|
||||
"packages/core": {
|
||||
"name": "@opencode-ai/core",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"bin": {
|
||||
"opencode": "./bin/opencode",
|
||||
},
|
||||
@@ -339,7 +339,7 @@
|
||||
"drizzle-orm": "catalog:",
|
||||
"effect": "catalog:",
|
||||
"fuzzysort": "3.1.0",
|
||||
"gitlab-ai-provider": "6.12.1",
|
||||
"gitlab-ai-provider": "6.12.0",
|
||||
"glob": "13.0.5",
|
||||
"google-auth-library": "10.5.0",
|
||||
"gray-matter": "4.0.3",
|
||||
@@ -381,16 +381,16 @@
|
||||
},
|
||||
"packages/desktop": {
|
||||
"name": "@opencode-ai/desktop",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@zip.js/zip.js": "2.7.62",
|
||||
"drizzle-orm": "catalog:",
|
||||
"effect": "catalog:",
|
||||
"electron-context-menu": "4.1.2",
|
||||
"electron-log": "^5",
|
||||
"electron-store": "11.0.2",
|
||||
"electron-updater": "6.8.9",
|
||||
"electron-window-state": "^5.0.3",
|
||||
"marked": "^15",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@actions/artifact": "4.0.0",
|
||||
@@ -435,7 +435,7 @@
|
||||
},
|
||||
"packages/effect-drizzle-sqlite": {
|
||||
"name": "@opencode-ai/effect-drizzle-sqlite",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"drizzle-orm": "catalog:",
|
||||
"effect": "catalog:",
|
||||
@@ -449,7 +449,7 @@
|
||||
},
|
||||
"packages/effect-sqlite-node": {
|
||||
"name": "@opencode-ai/effect-sqlite-node",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"effect": "catalog:",
|
||||
},
|
||||
@@ -461,7 +461,7 @@
|
||||
},
|
||||
"packages/enterprise": {
|
||||
"name": "@opencode-ai/enterprise",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@hono/standard-validator": "catalog:",
|
||||
"@opencode-ai/core": "workspace:*",
|
||||
@@ -493,7 +493,7 @@
|
||||
},
|
||||
"packages/function": {
|
||||
"name": "@opencode-ai/function",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@octokit/auth-app": "8.0.1",
|
||||
"@octokit/rest": "catalog:",
|
||||
@@ -509,7 +509,7 @@
|
||||
},
|
||||
"packages/http-recorder": {
|
||||
"name": "@opencode-ai/http-recorder",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@effect/platform-node": "4.0.0-beta.83",
|
||||
"@effect/platform-node-shared": "4.0.0-beta.83",
|
||||
@@ -540,7 +540,7 @@
|
||||
},
|
||||
"packages/llm": {
|
||||
"name": "@opencode-ai/llm",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@opencode-ai/schema": "workspace:*",
|
||||
"@smithy/eventstream-codec": "4.2.14",
|
||||
@@ -559,7 +559,7 @@
|
||||
},
|
||||
"packages/opencode": {
|
||||
"name": "opencode",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"bin": {
|
||||
"opencode": "./bin/opencode",
|
||||
},
|
||||
@@ -632,7 +632,7 @@
|
||||
"drizzle-orm": "catalog:",
|
||||
"effect": "catalog:",
|
||||
"fuzzysort": "3.1.0",
|
||||
"gitlab-ai-provider": "6.12.1",
|
||||
"gitlab-ai-provider": "6.12.0",
|
||||
"glob": "13.0.5",
|
||||
"google-auth-library": "10.5.0",
|
||||
"gray-matter": "4.0.3",
|
||||
@@ -690,7 +690,7 @@
|
||||
},
|
||||
"packages/plugin": {
|
||||
"name": "@opencode-ai/plugin",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@ai-sdk/provider": "3.0.8",
|
||||
"@opencode-ai/sdk": "workspace:*",
|
||||
@@ -766,7 +766,7 @@
|
||||
},
|
||||
"packages/sdk/js": {
|
||||
"name": "@opencode-ai/sdk",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"cross-spawn": "catalog:",
|
||||
},
|
||||
@@ -781,7 +781,7 @@
|
||||
},
|
||||
"packages/server": {
|
||||
"name": "@opencode-ai/server",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@opencode-ai/core": "workspace:*",
|
||||
"@opencode-ai/protocol": "workspace:*",
|
||||
@@ -796,7 +796,7 @@
|
||||
},
|
||||
"packages/session-ui": {
|
||||
"name": "@opencode-ai/session-ui",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@kobalte/core": "catalog:",
|
||||
"@opencode-ai/client": "file:../app/vendor/opencode-ai-client-1.17.13-v2.tgz",
|
||||
@@ -811,11 +811,15 @@
|
||||
"@solid-primitives/media": "2.3.3",
|
||||
"@solid-primitives/resize-observer": "2.1.3",
|
||||
"@solidjs/meta": "catalog:",
|
||||
"@solidjs/router": "catalog:",
|
||||
"diff": "catalog:",
|
||||
"dompurify": "3.3.1",
|
||||
"fuzzysort": "catalog:",
|
||||
"katex": "0.16.27",
|
||||
"luxon": "catalog:",
|
||||
"marked": "catalog:",
|
||||
"marked-katex-extension": "5.1.6",
|
||||
"marked-shiki": "catalog:",
|
||||
"morphdom": "2.7.8",
|
||||
"motion": "12.34.5",
|
||||
"remeda": "catalog:",
|
||||
@@ -828,6 +832,7 @@
|
||||
"devDependencies": {
|
||||
"@tsconfig/node22": "catalog:",
|
||||
"@types/bun": "catalog:",
|
||||
"@types/katex": "0.16.7",
|
||||
"@types/luxon": "catalog:",
|
||||
"@typescript/native-preview": "catalog:",
|
||||
"typescript": "catalog:",
|
||||
@@ -836,7 +841,7 @@
|
||||
},
|
||||
"packages/slack": {
|
||||
"name": "@opencode-ai/slack",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@opencode-ai/sdk": "workspace:*",
|
||||
"@slack/bolt": "^3.17.1",
|
||||
@@ -849,7 +854,7 @@
|
||||
},
|
||||
"packages/stats/app": {
|
||||
"name": "@opencode-ai/stats-app",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@ibm/plex": "6.4.1",
|
||||
"@kobalte/core": "catalog:",
|
||||
@@ -883,7 +888,7 @@
|
||||
},
|
||||
"packages/stats/core": {
|
||||
"name": "@opencode-ai/stats-core",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-athena": "3.933.0",
|
||||
"@planetscale/database": "1.19.0",
|
||||
@@ -902,7 +907,7 @@
|
||||
},
|
||||
"packages/stats/server": {
|
||||
"name": "@opencode-ai/stats-server",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-firehose": "3.933.0",
|
||||
"@effect/platform-node": "catalog:",
|
||||
@@ -944,7 +949,7 @@
|
||||
},
|
||||
"packages/tui": {
|
||||
"name": "@opencode-ai/tui",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@opencode-ai/core": "workspace:*",
|
||||
"@opencode-ai/plugin": "workspace:*",
|
||||
@@ -971,7 +976,7 @@
|
||||
},
|
||||
"packages/ui": {
|
||||
"name": "@opencode-ai/ui",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@kobalte/core": "catalog:",
|
||||
"@pierre/diffs": "catalog:",
|
||||
@@ -987,6 +992,7 @@
|
||||
"katex": "0.16.27",
|
||||
"luxon": "catalog:",
|
||||
"marked": "catalog:",
|
||||
"marked-katex-extension": "5.1.6",
|
||||
"marked-shiki": "catalog:",
|
||||
"morphdom": "2.7.8",
|
||||
"motion": "12.34.5",
|
||||
@@ -996,7 +1002,6 @@
|
||||
"remend": "catalog:",
|
||||
"shiki": "catalog:",
|
||||
"solid-list": "catalog:",
|
||||
"solid-sonner": "catalog:",
|
||||
"strip-ansi": "7.1.2",
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -1022,7 +1027,7 @@
|
||||
},
|
||||
"packages/web": {
|
||||
"name": "@opencode-ai/web",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"dependencies": {
|
||||
"@astrojs/cloudflare": "12.6.3",
|
||||
"@astrojs/markdown-remark": "6.3.1",
|
||||
@@ -1132,7 +1137,7 @@
|
||||
"hono": "4.10.7",
|
||||
"hono-openapi": "1.1.2",
|
||||
"luxon": "3.6.1",
|
||||
"marked": "18.0.7",
|
||||
"marked": "17.0.6",
|
||||
"marked-shiki": "1.2.1",
|
||||
"opentui-spinner": "0.0.7",
|
||||
"remeda": "2.26.0",
|
||||
@@ -1141,7 +1146,6 @@
|
||||
"shiki": "4.2.0",
|
||||
"solid-js": "1.9.10",
|
||||
"solid-list": "0.3.0",
|
||||
"solid-sonner": "0.3.1",
|
||||
"sst": "4.13.1",
|
||||
"tailwindcss": "4.1.11",
|
||||
"typescript": "5.8.2",
|
||||
@@ -3851,7 +3855,7 @@
|
||||
|
||||
"github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="],
|
||||
|
||||
"gitlab-ai-provider": ["gitlab-ai-provider@6.12.1", "", { "dependencies": { "@anthropic-ai/sdk": "^0.71.0", "@anycable/core": "^0.9.2", "graphql-request": "^6.1.0", "isomorphic-ws": "^5.0.0", "openai": "^6.16.0", "socket.io-client": "^4.8.1", "vscode-jsonrpc": "^8.2.1", "zod": "^3.25.76" }, "peerDependencies": { "@ai-sdk/provider": ">=3.0.0", "@ai-sdk/provider-utils": ">=4.0.0" } }, "sha512-Qn5iHqvjG8yktI5MWaUgdRR94l7O4WtYW0CAbhsCh1Tj0Fei/DeprOYPVyf4Nht1Ix6U2PXSYM32QOHI6Z2TDw=="],
|
||||
"gitlab-ai-provider": ["gitlab-ai-provider@6.12.0", "", { "dependencies": { "@anthropic-ai/sdk": "^0.71.0", "@anycable/core": "^0.9.2", "graphql-request": "^6.1.0", "isomorphic-ws": "^5.0.0", "openai": "^6.16.0", "socket.io-client": "^4.8.1", "vscode-jsonrpc": "^8.2.1", "zod": "^3.25.76" }, "peerDependencies": { "@ai-sdk/provider": ">=3.0.0", "@ai-sdk/provider-utils": ">=4.0.0" } }, "sha512-uGan7MQaNfmV5SH9wiMJkZ7D5QxM4KVPRcjIHtPCM5icZjgXl5mrHMjr3/e7TAHa9OjEJKT0a2FxzPgwRtN3PQ=="],
|
||||
|
||||
"glob": ["glob@13.0.5", "", { "dependencies": { "minimatch": "^10.2.1", "minipass": "^7.1.2", "path-scurry": "^2.0.0" } }, "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw=="],
|
||||
|
||||
@@ -4313,7 +4317,9 @@
|
||||
|
||||
"markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="],
|
||||
|
||||
"marked": ["marked@18.0.7", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-iDVQ5ldaiKXn6b2JroX5kgRfmwgqolW7NpaEzTl1k/2Zh1njIEN9yniyLV/mOvWwtsE8OGgkjsCYvijuPk1dtA=="],
|
||||
"marked": ["marked@17.0.6", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA=="],
|
||||
|
||||
"marked-katex-extension": ["marked-katex-extension@5.1.6", "", { "peerDependencies": { "katex": ">=0.16 <0.17", "marked": ">=4 <18" } }, "sha512-vYpLXwmlIDKILIhJtiRTgdyZRn5sEYdFBuTmbpjD7lbCIzg0/DWyK3HXIntN3Tp8zV6hvOUgpZNLWRCgWVc24A=="],
|
||||
|
||||
"marked-shiki": ["marked-shiki@1.2.1", "", { "peerDependencies": { "marked": ">=7.0.0", "shiki": ">=1.0.0" } }, "sha512-yHxYQhPY5oYaIRnROn98foKhuClark7M373/VpLxiy5TrDu9Jd/LsMwo8w+U91Up4oDb9IXFrP0N1MFRz8W/DQ=="],
|
||||
|
||||
@@ -5121,8 +5127,6 @@
|
||||
|
||||
"solid-refresh": ["solid-refresh@0.6.3", "", { "dependencies": { "@babel/generator": "^7.23.6", "@babel/helper-module-imports": "^7.22.15", "@babel/types": "^7.23.6" }, "peerDependencies": { "solid-js": "^1.3" } }, "sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA=="],
|
||||
|
||||
"solid-sonner": ["solid-sonner@0.3.1", "", { "peerDependencies": { "solid-js": "^1.6.0" } }, "sha512-F/+zi9yKJTHh5hX1UGJfkDvyC+F34Vi3jgy44NJwOKCgic1QtAon0b1iT9OsDO77RTgR+PCil+3Y5B8T2Owy1Q=="],
|
||||
|
||||
"solid-stripe": ["solid-stripe@0.8.1", "", { "peerDependencies": { "@stripe/stripe-js": ">=1.44.1 <8.0.0", "solid-js": "^1.6.0" } }, "sha512-l2SkWoe51rsvk9u1ILBRWyCHODZebChSGMR6zHYJTivTRC0XWrRnNNKs5x1PYXsaIU71KYI6ov5CZB5cOtGLWw=="],
|
||||
|
||||
"solid-transition-size": ["solid-transition-size@0.1.4", "", { "dependencies": { "@corvu/utils": "~0.3.2" }, "peerDependencies": { "solid-js": "^1.8" } }, "sha512-ocHVnbfy23CgfaH4cEUR/AFg0Y3CEL8Oh3n9Qv8OHFJgPh+zkmERKZQfi/xH5XvxDCizg8VjPrVUhiHB1Gza8g=="],
|
||||
@@ -6037,6 +6041,8 @@
|
||||
|
||||
"@opencode-ai/desktop/@actions/artifact": ["@actions/artifact@4.0.0", "", { "dependencies": { "@actions/core": "^1.10.0", "@actions/github": "^6.0.1", "@actions/http-client": "^2.1.0", "@azure/core-http": "^3.0.5", "@azure/storage-blob": "^12.15.0", "@octokit/core": "^5.2.1", "@octokit/plugin-request-log": "^1.0.4", "@octokit/plugin-retry": "^3.0.9", "@octokit/request": "^8.4.1", "@octokit/request-error": "^5.1.1", "@protobuf-ts/plugin": "^2.2.3-alpha.1", "archiver": "^7.0.1", "jwt-decode": "^3.1.2", "unzip-stream": "^0.3.1" } }, "sha512-HCc2jMJRAfviGFAh0FsOR/jNfWhirxl7W6z8zDtttt0GltwxBLdEIjLiweOPFl9WbyJRW1VWnPUSAixJqcWUMQ=="],
|
||||
|
||||
"@opencode-ai/desktop/marked": ["marked@15.0.12", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA=="],
|
||||
|
||||
"@opencode-ai/desktop/typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="],
|
||||
|
||||
"@opencode-ai/llm/@smithy/eventstream-codec": ["@smithy/eventstream-codec@4.2.14", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@smithy/types": "^4.14.1", "@smithy/util-hex-encoding": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw=="],
|
||||
|
||||
+2
-6
@@ -288,12 +288,8 @@ new sst.cloudflare.x.SolidStart("Console", {
|
||||
server: {
|
||||
placement: { region: "aws:us-east-2" },
|
||||
transform: {
|
||||
worker: (args) => {
|
||||
args.compatibilityFlags = $resolve(args.compatibilityFlags).apply((flags) => [
|
||||
...(flags ?? []),
|
||||
"global_fetch_strictly_public",
|
||||
])
|
||||
args.tailConsumers = [{ service: logProcessor.nodes.worker.scriptName }]
|
||||
worker: {
|
||||
tailConsumers: [{ service: logProcessor.nodes.worker.scriptName }],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"nodeModules": {
|
||||
"x86_64-linux": "sha256-GRjnvvyj37H36RqiCB7dz5ALAEwvw16izwuk1wsHEpU=",
|
||||
"aarch64-linux": "sha256-0OIn1o6dpqIQ5XgIMzpenMCMqsYzraaYVJk+te5eINU=",
|
||||
"aarch64-darwin": "sha256-sQSQcuox78d8wT1lsKYHqVBl11NusiszQ+gu2XYXZi8=",
|
||||
"x86_64-darwin": "sha256-SINkhMRd4oM1zABSs1Uf3OAzxJ1lgcycl1U4fmi+baY="
|
||||
"x86_64-linux": "sha256-/ZtluLolVq1ZFAYgbDScze9GZR0NF9baRQXvfEoOnkI=",
|
||||
"aarch64-linux": "sha256-kdh7Dpira7cx9lvtozFsjLrDqMBrUMcgxkhfsqrutws=",
|
||||
"aarch64-darwin": "sha256-chPeMCX+8hvOQ32hTANIn7FmONsSv9t3dKTWTaHerjs=",
|
||||
"x86_64-darwin": "sha256-rMc0dDZB+YbXrjYwXTIt7QvHUxSp//wDJQ5hUdR+LYM="
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -70,7 +70,7 @@
|
||||
"hono-openapi": "1.1.2",
|
||||
"fuzzysort": "3.1.0",
|
||||
"luxon": "3.6.1",
|
||||
"marked": "18.0.7",
|
||||
"marked": "17.0.6",
|
||||
"marked-shiki": "1.2.1",
|
||||
"remend": "1.3.0",
|
||||
"@playwright/test": "1.59.1",
|
||||
@@ -90,7 +90,6 @@
|
||||
"@sentry/solid": "10.36.0",
|
||||
"@sentry/vite-plugin": "4.6.0",
|
||||
"solid-js": "1.9.10",
|
||||
"solid-sonner": "0.3.1",
|
||||
"vite-plugin-solid": "2.11.10",
|
||||
"@lydell/node-pty": "1.2.0-beta.12"
|
||||
}
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
import { expect, test } from "@playwright/test"
|
||||
import type { Page } from "@playwright/test"
|
||||
import { fixture, pageMessages } from "../smoke/session-timeline.fixture"
|
||||
import { mockOpenCodeServer } from "../utils/mock-server"
|
||||
import { expectAppVisible } from "../utils/waits"
|
||||
|
||||
const NAMES = ["alpha-service", "bravo-web", "charlie-api", "delta-tools", "echo-infra", "foxtrot-docs"]
|
||||
const worktrees = NAMES.map((name) => `/opencode-demo/${name}`)
|
||||
|
||||
// The sixth project sits outside the five-item recent cap, so it is only reachable if the
|
||||
// dialog hands every recent project to the list filter instead of a pre-truncated slice.
|
||||
const OUTSIDE_CAP = "foxtrot-docs"
|
||||
|
||||
// Dialog rows carry data-directory-path; the sidebar project list does not, so this
|
||||
// scopes assertions to the picker instead of matching the sidebar entry of the same name.
|
||||
const rows = (page: Page) => page.locator("[data-directory-path]")
|
||||
const row = (page: Page, name: string) => page.locator(`[data-directory-path*="${name}"]`)
|
||||
|
||||
async function openProjectDialog(page: Page) {
|
||||
await mockOpenCodeServer(page, {
|
||||
sessions: fixture.sessions,
|
||||
provider: fixture.provider,
|
||||
directory: fixture.directory,
|
||||
project: fixture.project,
|
||||
pageMessages,
|
||||
fileList: () => [],
|
||||
findFiles: () => [],
|
||||
})
|
||||
await page.addInitScript((dirs) => {
|
||||
localStorage.setItem(
|
||||
"opencode.global.dat:server",
|
||||
JSON.stringify({
|
||||
projects: { local: dirs.map((worktree: string) => ({ worktree, expanded: false })) },
|
||||
lastProject: {},
|
||||
}),
|
||||
)
|
||||
}, worktrees)
|
||||
await page.goto("/")
|
||||
const add = page.getByRole("button", { name: "Add project" }).first()
|
||||
await expectAppVisible(add)
|
||||
await add.click()
|
||||
await expect(rows(page)).toHaveCount(5)
|
||||
return page.getByRole("textbox").last()
|
||||
}
|
||||
|
||||
test("searches every recent project, not just the five most recent", async ({ page }) => {
|
||||
const search = await openProjectDialog(page)
|
||||
await expect(row(page, OUTSIDE_CAP)).toHaveCount(0)
|
||||
|
||||
await search.fill("foxtrot")
|
||||
|
||||
await expect(row(page, OUTSIDE_CAP)).toHaveCount(1)
|
||||
})
|
||||
|
||||
test("still caps the idle recent list at five projects", async ({ page }) => {
|
||||
await openProjectDialog(page)
|
||||
|
||||
await expect(row(page, NAMES[4])).toHaveCount(1)
|
||||
await expect(row(page, OUTSIDE_CAP)).toHaveCount(0)
|
||||
})
|
||||
@@ -2,7 +2,7 @@ import { expect, test } from "@playwright/test"
|
||||
import { assistantMessage, setupTimeline, toolPart, userMessage } from "../performance/timeline-stability/fixture"
|
||||
|
||||
for (const profile of [
|
||||
{ locale: "de", label: "Erkundung abgeschlossen" },
|
||||
{ locale: "de", label: "Erkundet" },
|
||||
{ locale: "ar", label: "تم الاستكشاف" },
|
||||
] as const) {
|
||||
test(`projects translated context status in ${profile.locale}`, async ({ page }) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/app",
|
||||
"version": "1.18.12",
|
||||
"version": "1.18.9",
|
||||
"description": "",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
@@ -19,9 +19,9 @@
|
||||
"build": "vite build",
|
||||
"serve": "vite preview",
|
||||
"test": "bun run test:unit && bun run test:browser",
|
||||
"test:unit": "bun test --conditions=solid --only-failures --preload ./happydom.ts ./src",
|
||||
"test:unit": "bun test --only-failures --preload ./happydom.ts ./src",
|
||||
"test:browser": "bun test --conditions=browser --preload ./happydom.ts ./test-browser",
|
||||
"test:unit:watch": "bun test --conditions=solid --watch --preload ./happydom.ts ./src",
|
||||
"test:unit:watch": "bun test --watch --preload ./happydom.ts ./src",
|
||||
"test:e2e": "playwright test",
|
||||
"test:e2e:local": "playwright test",
|
||||
"test:e2e:ui": "playwright test --ui",
|
||||
|
||||
@@ -3,6 +3,7 @@ import * as Sentry from "@sentry/solid"
|
||||
import { I18nProvider } from "@opencode-ai/ui/context"
|
||||
import { DialogProvider } from "@opencode-ai/ui/context/dialog"
|
||||
import { FileComponentProvider } from "@opencode-ai/ui/context/file"
|
||||
import { MarkedProvider } from "@opencode-ai/ui/context/marked"
|
||||
import { File } from "@opencode-ai/session-ui/file"
|
||||
import { Font } from "@opencode-ai/ui/font"
|
||||
import { Splash } from "@opencode-ai/ui/logo"
|
||||
@@ -233,11 +234,7 @@ function ResolvedDraftRoute(props: { draft: DraftTab }) {
|
||||
|
||||
function UiI18nBridge(props: ParentProps) {
|
||||
const language = useLanguage()
|
||||
return (
|
||||
<I18nProvider value={{ locale: language.intl, t: language.t, plural: language.plural }}>
|
||||
{props.children}
|
||||
</I18nProvider>
|
||||
)
|
||||
return <I18nProvider value={{ locale: language.intl, t: language.t }}>{props.children}</I18nProvider>
|
||||
}
|
||||
|
||||
function LayoutCompatibility(props: ParentProps) {
|
||||
@@ -408,7 +405,9 @@ export function AppBaseProviders(props: ParentProps<{ locale?: Locale }>) {
|
||||
<QueryProvider>
|
||||
<WslServersProvider>
|
||||
<DialogProvider>
|
||||
<FileComponentProvider component={File}>{props.children}</FileComponentProvider>
|
||||
<MarkedProvider>
|
||||
<FileComponentProvider component={File}>{props.children}</FileComponentProvider>
|
||||
</MarkedProvider>
|
||||
</DialogProvider>
|
||||
</WslServersProvider>
|
||||
</QueryProvider>
|
||||
|
||||
@@ -66,7 +66,7 @@ function Cell(props: {
|
||||
<div
|
||||
classList={{
|
||||
"flex min-w-0 items-center": true,
|
||||
"min-h-[20px] w-fit justify-start px-1.5 py-0.5 text-left": !!props.inline,
|
||||
"min-h-[20px] w-fit flex-row justify-start gap-1.5 px-1.5 py-0.5 text-left": !!props.inline,
|
||||
"justify-center text-center": !props.inline,
|
||||
"min-h-[42px] w-full flex-col rounded-[8px] px-0.5 py-1": !props.inline,
|
||||
"col-span-2": !!props.wide && !props.inline,
|
||||
@@ -74,29 +74,21 @@ function Cell(props: {
|
||||
>
|
||||
<div
|
||||
classList={{
|
||||
"flex min-w-0": true,
|
||||
"-translate-y-px items-baseline gap-1.5": !!props.inline,
|
||||
"flex-col items-center": !props.inline,
|
||||
"text-[10px] leading-none font-black uppercase tracking-[0.04em] opacity-70": true,
|
||||
}}
|
||||
>
|
||||
<div
|
||||
classList={{
|
||||
"text-[10px] leading-none font-black uppercase tracking-[0.04em] opacity-70": true,
|
||||
}}
|
||||
>
|
||||
{props.label}
|
||||
</div>
|
||||
<div
|
||||
classList={{
|
||||
"uppercase leading-none font-bold tabular-nums": true,
|
||||
"text-[11px]": !!props.inline,
|
||||
"text-[13px] sm:text-[14px]": !props.inline,
|
||||
"text-text-on-critical-base": !!props.bad,
|
||||
"opacity-70": !!props.dim,
|
||||
}}
|
||||
>
|
||||
{props.value}
|
||||
</div>
|
||||
{props.label}
|
||||
</div>
|
||||
<div
|
||||
classList={{
|
||||
"uppercase leading-none font-bold tabular-nums": true,
|
||||
"text-[11px]": !!props.inline,
|
||||
"text-[13px] sm:text-[14px]": !props.inline,
|
||||
"text-text-on-critical-base": !!props.bad,
|
||||
"opacity-70": !!props.dim,
|
||||
}}
|
||||
>
|
||||
{props.value}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
@@ -124,25 +116,15 @@ function FocusCell(props: { active: boolean; inline?: boolean; onClick: () => vo
|
||||
aria-pressed={props.active}
|
||||
classList={{
|
||||
"flex min-w-0 items-center font-mono uppercase hover:bg-surface-raised-base focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-border-focus": true,
|
||||
"min-h-[20px] w-fit justify-start rounded px-1.5 py-0.5 text-left": !!props.inline,
|
||||
"min-h-[20px] w-fit flex-row justify-start gap-1.5 rounded px-1.5 py-0.5 text-left": !!props.inline,
|
||||
"min-h-[42px] w-full flex-col justify-center rounded-[8px] px-0.5 py-1 text-center": !props.inline,
|
||||
"bg-surface-raised-base text-text-strong": props.active,
|
||||
}}
|
||||
onClick={props.onClick}
|
||||
>
|
||||
<span
|
||||
classList={{
|
||||
flex: true,
|
||||
"-translate-y-px items-baseline gap-1.5": !!props.inline,
|
||||
"flex-col items-center": !props.inline,
|
||||
}}
|
||||
>
|
||||
<span class="text-[10px] leading-none font-black tracking-[0.04em] opacity-70">FOCUS</span>
|
||||
<span
|
||||
classList={{ "leading-none font-bold": true, "text-[11px]": !!props.inline, "text-[13px]": !props.inline }}
|
||||
>
|
||||
{props.active ? "ON" : "OFF"}
|
||||
</span>
|
||||
<span class="text-[10px] leading-none font-black tracking-[0.04em] opacity-70">FOCUS</span>
|
||||
<span classList={{ "leading-none font-bold": true, "text-[11px]": !!props.inline, "text-[13px]": !props.inline }}>
|
||||
{props.active ? "ON" : "OFF"}
|
||||
</span>
|
||||
</button>
|
||||
)
|
||||
|
||||
@@ -29,7 +29,7 @@ import {
|
||||
} from "solid-js"
|
||||
import { createStore, produce } from "solid-js/store"
|
||||
import { useParams } from "@solidjs/router"
|
||||
import { ExternalLink } from "@/components/external-link"
|
||||
import { Link } from "@/components/link"
|
||||
import { useServerSDK } from "@/context/server-sdk"
|
||||
import { useServerSync } from "@/context/server-sync"
|
||||
import { useLanguage } from "@/context/language"
|
||||
@@ -836,12 +836,12 @@ function ProviderConnection(props: {
|
||||
<div>{language.t("provider.connect.opencodeZen.line2")}</div>
|
||||
<div>
|
||||
{language.t("provider.connect.opencodeZen.visit.prefix")}
|
||||
<ExternalLink
|
||||
<Link
|
||||
href="https://opencode.ai/zen"
|
||||
class="text-v2-text-text-base focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-v2-border-border-focus"
|
||||
>
|
||||
{language.t("provider.connect.opencodeZen.visit.link")}
|
||||
</ExternalLink>
|
||||
</Link>
|
||||
{language.t("provider.connect.opencodeZen.visit.suffix")}
|
||||
</div>
|
||||
</div>
|
||||
@@ -886,9 +886,9 @@ function ProviderConnection(props: {
|
||||
<div class="text-14-regular text-text-base">{language.t("provider.connect.opencodeZen.line2")}</div>
|
||||
<div class="text-14-regular text-text-base">
|
||||
{language.t("provider.connect.opencodeZen.visit.prefix")}
|
||||
<ExternalLink href="https://opencode.ai/zen" tabIndex={-1}>
|
||||
<Link href="https://opencode.ai/zen" tabIndex={-1}>
|
||||
{language.t("provider.connect.opencodeZen.visit.link")}
|
||||
</ExternalLink>
|
||||
</Link>
|
||||
{language.t("provider.connect.opencodeZen.visit.suffix")}
|
||||
</div>
|
||||
</div>
|
||||
@@ -967,9 +967,9 @@ function ProviderConnection(props: {
|
||||
<div class="flex flex-col gap-5 px-3 text-[13px] font-[440] leading-5 tracking-[-0.04px] text-v2-text-text-muted">
|
||||
<div>
|
||||
{language.t("provider.connect.oauth.code.visit.prefix")}
|
||||
<ExternalLink href={store.authorization!.url} class="text-v2-text-text-base">
|
||||
<Link href={store.authorization!.url} class="text-v2-text-text-base">
|
||||
{language.t("provider.connect.oauth.code.visit.link")}
|
||||
</ExternalLink>
|
||||
</Link>
|
||||
{language.t("provider.connect.oauth.code.visit.suffix", { provider: provider().name })}
|
||||
</div>
|
||||
<form onSubmit={handleSubmit} class="flex flex-col items-start gap-5 self-stretch">
|
||||
@@ -1006,9 +1006,7 @@ function ProviderConnection(props: {
|
||||
<div class="flex flex-col gap-6">
|
||||
<div class="text-14-regular text-text-base">
|
||||
{language.t("provider.connect.oauth.code.visit.prefix")}
|
||||
<ExternalLink href={store.authorization!.url}>
|
||||
{language.t("provider.connect.oauth.code.visit.link")}
|
||||
</ExternalLink>
|
||||
<Link href={store.authorization!.url}>{language.t("provider.connect.oauth.code.visit.link")}</Link>
|
||||
{language.t("provider.connect.oauth.code.visit.suffix", { provider: provider().name })}
|
||||
</div>
|
||||
<form onSubmit={handleSubmit} class="flex flex-col items-start gap-4">
|
||||
@@ -1079,9 +1077,7 @@ function ProviderConnection(props: {
|
||||
<div class="flex flex-col gap-6">
|
||||
<div class="text-14-regular text-text-base">
|
||||
{language.t("provider.connect.oauth.auto.visit.prefix")}
|
||||
<ExternalLink href={store.authorization!.url}>
|
||||
{language.t("provider.connect.oauth.auto.visit.link")}
|
||||
</ExternalLink>
|
||||
<Link href={store.authorization!.url}>{language.t("provider.connect.oauth.auto.visit.link")}</Link>
|
||||
{language.t("provider.connect.oauth.auto.visit.suffix", { provider: provider().name })}
|
||||
</div>
|
||||
<TextField
|
||||
|
||||
@@ -8,7 +8,7 @@ import { TextField } from "@opencode-ai/ui/text-field"
|
||||
import { showToast } from "@/utils/toast"
|
||||
import { batch, For } from "solid-js"
|
||||
import { createStore, produce } from "solid-js/store"
|
||||
import { ExternalLink } from "@/components/external-link"
|
||||
import { Link } from "@/components/link"
|
||||
import { useServerSDK } from "@/context/server-sdk"
|
||||
import { useServerSync } from "@/context/server-sync"
|
||||
import { useLanguage } from "@/context/language"
|
||||
@@ -185,9 +185,9 @@ export function CustomProviderForm(props: { autofocus?: boolean } = {}) {
|
||||
<form onSubmit={save} class="px-2.5 pb-6 flex flex-col gap-6">
|
||||
<p class="text-14-regular text-text-base">
|
||||
{language.t("provider.custom.description.prefix")}
|
||||
<ExternalLink href="https://opencode.ai/docs/providers/#custom-provider" tabIndex={-1}>
|
||||
<Link href="https://opencode.ai/docs/providers/#custom-provider" tabIndex={-1}>
|
||||
{language.t("provider.custom.description.link")}
|
||||
</ExternalLink>
|
||||
</Link>
|
||||
{language.t("provider.custom.description.suffix")}
|
||||
</p>
|
||||
|
||||
|
||||
@@ -18,8 +18,6 @@ interface DialogSelectDirectoryProps {
|
||||
server: ServerConnection.Any
|
||||
}
|
||||
|
||||
const RECENT_PROJECT_LIMIT = 5
|
||||
|
||||
type Row = {
|
||||
absolute: string
|
||||
search: string
|
||||
@@ -59,9 +57,9 @@ export function DialogSelectDirectory(props: DialogSelectDirectoryProps) {
|
||||
const [filter, setFilter] = createSignal("")
|
||||
let list: ListRef | undefined
|
||||
|
||||
const missingHome = createMemo(() => !sync.data.path.home)
|
||||
const missingBase = createMemo(() => !(sync.data.path.home || sync.data.path.directory))
|
||||
const [fallbackPath] = createResource(
|
||||
() => (missingHome() ? true : undefined),
|
||||
() => (missingBase() ? true : undefined),
|
||||
async (): Promise<Path | undefined> => {
|
||||
if ((await sdk.protocol) !== "v1") return
|
||||
return sdk.client.path
|
||||
@@ -104,6 +102,7 @@ export function DialogSelectDirectory(props: DialogSelectDirectoryProps) {
|
||||
return projects
|
||||
.map((project, index) => ({ project, at: byProject.get(project.worktree) ?? 0, index }))
|
||||
.sort((a, b) => b.at - a.at || a.index - b.index)
|
||||
.slice(0, 5)
|
||||
.map(({ project }) => {
|
||||
const row = toRow(project.worktree, home(), "recent")
|
||||
const name = project.name || getFilename(project.worktree)
|
||||
@@ -117,10 +116,7 @@ export function DialogSelectDirectory(props: DialogSelectDirectoryProps) {
|
||||
const items = async (value: string) => {
|
||||
const results = await directories(value)
|
||||
const directoryRows = results.map((absolute) => toRow(absolute, home(), "folders"))
|
||||
// Cap the idle list only. Once a query narrows the results, every project stays searchable.
|
||||
const recent = recentProjects()
|
||||
const visible = value ? recent : recent.slice(0, RECENT_PROJECT_LIMIT)
|
||||
return uniqueRows([...visible, ...directoryRows])
|
||||
return uniqueRows([...recentProjects(), ...directoryRows])
|
||||
}
|
||||
|
||||
function resolve(absolute: string) {
|
||||
|
||||
@@ -17,7 +17,7 @@ export function DialogUsageExceeded(props: DialogGoUpsellProps) {
|
||||
const platform = usePlatform()
|
||||
|
||||
const runAction = () => {
|
||||
if (props.link) platform.openExternal(props.link)
|
||||
if (props.link) platform.openLink(props.link)
|
||||
props.onClose?.()
|
||||
dialog.close()
|
||||
}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
import { ComponentProps, splitProps } from "solid-js"
|
||||
|
||||
export interface ExternalLinkProps extends Omit<ComponentProps<"a">, "href"> {
|
||||
href: string
|
||||
}
|
||||
|
||||
export function ExternalLink(props: ExternalLinkProps) {
|
||||
const [local, rest] = splitProps(props, ["href", "children", "class", "target", "rel"])
|
||||
|
||||
return (
|
||||
<a
|
||||
href={local.href}
|
||||
class={`text-text-strong underline ${local.class ?? ""}`}
|
||||
target={local.target ?? "_blank"}
|
||||
rel={local.rel ?? "noopener noreferrer"}
|
||||
{...rest}
|
||||
>
|
||||
{local.children}
|
||||
</a>
|
||||
)
|
||||
}
|
||||
@@ -215,7 +215,6 @@ export default function FileTreeV2(props: {
|
||||
<div
|
||||
ref={setRoot}
|
||||
data-component="file-tree-v2"
|
||||
dir="ltr"
|
||||
data-total-rows={live() ? rows().length : model()!.total}
|
||||
class="group/file-tree-v2"
|
||||
style={{ position: "relative", height: `${virtualizer.getTotalSize()}px` }}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { ComponentProps, splitProps } from "solid-js"
|
||||
import { usePlatform } from "@/context/platform"
|
||||
|
||||
export interface LinkProps extends Omit<ComponentProps<"a">, "href"> {
|
||||
href: string
|
||||
}
|
||||
|
||||
export function Link(props: LinkProps) {
|
||||
const platform = usePlatform()
|
||||
const [local, rest] = splitProps(props, ["href", "children", "class"])
|
||||
|
||||
return (
|
||||
<a
|
||||
href={local.href}
|
||||
class={`text-text-strong underline ${local.class ?? ""}`}
|
||||
onClick={(event) => {
|
||||
if (!local.href) return
|
||||
event.preventDefault()
|
||||
platform.openLink(local.href)
|
||||
}}
|
||||
{...rest}
|
||||
>
|
||||
{local.children}
|
||||
</a>
|
||||
)
|
||||
}
|
||||
@@ -344,7 +344,7 @@ export function usePromptInputV2Controller(props: PromptInputV2ControllerProps):
|
||||
if (item?.commentID) comments.remove(item.path, item.commentID)
|
||||
},
|
||||
openAttachment: (attachment) =>
|
||||
dialog.show(() => <ImagePreview src={attachment.blob.url} alt={attachment.filename} />),
|
||||
dialog.show(() => <ImagePreview src={attachment.dataUrl} alt={attachment.filename} />),
|
||||
openContext(key) {
|
||||
const item = controller.contextItem(key)
|
||||
if (item) openComment(item, props, sync, layout, files, comments)
|
||||
@@ -368,7 +368,6 @@ export function usePromptInputV2Controller(props: PromptInputV2ControllerProps):
|
||||
title: language.t("prompt.toast.pasteUnsupported.title"),
|
||||
description: language.t("prompt.toast.pasteUnsupported.description"),
|
||||
}),
|
||||
duplicate: () => showToast({ title: language.t("prompt.toast.attachmentDuplicate.title") }),
|
||||
onError: (error) =>
|
||||
showToast({
|
||||
variant: "error",
|
||||
@@ -377,7 +376,6 @@ export function usePromptInputV2Controller(props: PromptInputV2ControllerProps):
|
||||
}),
|
||||
readClipboardImage: platform.readClipboardImage,
|
||||
getPathForFile: platform.getPathForFile,
|
||||
store: platform.draftStore?.putBlob,
|
||||
},
|
||||
view: {
|
||||
placeholder: designPlaceholder,
|
||||
|
||||
@@ -1489,7 +1489,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
||||
<PromptImageAttachments
|
||||
attachments={imageAttachments()}
|
||||
onOpen={(attachment) =>
|
||||
dialog.show(() => <ImagePreview src={attachment.blob.url} alt={attachment.filename} />)
|
||||
dialog.show(() => <ImagePreview src={attachment.dataUrl} alt={attachment.filename} />)
|
||||
}
|
||||
onRemove={removeAttachment}
|
||||
removeLabel={language.t("prompt.attachment.remove")}
|
||||
|
||||
@@ -3,13 +3,28 @@ import { makeEventListener } from "@solid-primitives/event-listener"
|
||||
import { showToast } from "@/utils/toast"
|
||||
import { type ContentPart, type ImageAttachmentPart, type usePrompt } from "@/context/prompt"
|
||||
import { useLanguage } from "@/context/language"
|
||||
import { usePlatform } from "@/context/platform"
|
||||
import { uuid } from "@/utils/uuid"
|
||||
import { getCursorPosition } from "./editor-dom"
|
||||
import { createBlobReference, type DraftStore } from "@/utils/draft-store"
|
||||
import { attachmentMime } from "./files"
|
||||
import { normalizePaste, pasteMode } from "./paste"
|
||||
|
||||
function dataUrl(file: File, mime: string) {
|
||||
return new Promise<string>((resolve) => {
|
||||
const reader = new FileReader()
|
||||
reader.addEventListener("error", () => resolve(""))
|
||||
reader.addEventListener("load", () => {
|
||||
const value = typeof reader.result === "string" ? reader.result : ""
|
||||
const idx = value.indexOf(",")
|
||||
if (idx === -1) {
|
||||
resolve(value)
|
||||
return
|
||||
}
|
||||
resolve(`data:${mime};base64,${value.slice(idx + 1)}`)
|
||||
})
|
||||
reader.readAsDataURL(file)
|
||||
})
|
||||
}
|
||||
|
||||
type PromptTarget = Pick<ReturnType<ReturnType<typeof usePrompt>["capture"]>, "current" | "cursor" | "set">
|
||||
type AttachmentTarget = { prompt: PromptTarget; cursor: number | undefined }
|
||||
|
||||
@@ -21,7 +36,6 @@ type PromptAttachmentsCoreInput = {
|
||||
warn?: () => void
|
||||
readClipboardImage?: () => Promise<File | null>
|
||||
getPathForFile?: (file: File) => string
|
||||
draftStore?: DraftStore
|
||||
}
|
||||
|
||||
export type PromptAttachmentsInput = {
|
||||
@@ -51,13 +65,16 @@ export function createPromptAttachmentsCore(input: PromptAttachmentsCoreInput) {
|
||||
return false
|
||||
}
|
||||
|
||||
const url = await dataUrl(file, mime)
|
||||
if (!url) return false
|
||||
|
||||
const attachment: ImageAttachmentPart = {
|
||||
type: "image",
|
||||
id: uuid(),
|
||||
filename: file.name,
|
||||
sourcePath: input.getPathForFile?.(file) || undefined,
|
||||
mime,
|
||||
blob: input.draftStore ? await input.draftStore.putBlob(file) : await createBlobReference(file),
|
||||
dataUrl: url,
|
||||
}
|
||||
target.prompt.set([...target.prompt.current(), attachment], target.cursor)
|
||||
return true
|
||||
@@ -149,10 +166,8 @@ export function createPromptAttachmentsCore(input: PromptAttachmentsCoreInput) {
|
||||
|
||||
export function createPromptAttachments(input: PromptAttachmentsInput) {
|
||||
const language = useLanguage()
|
||||
const platform = usePlatform()
|
||||
const attachments = createPromptAttachmentsCore({
|
||||
...input,
|
||||
draftStore: platform.draftStore,
|
||||
capture: input.prompt.capture,
|
||||
warn: () => {
|
||||
showToast({
|
||||
|
||||
@@ -22,7 +22,7 @@ type ContextFile = {
|
||||
type BuildRequestPartsInput = {
|
||||
prompt: Prompt
|
||||
context: ContextFile[]
|
||||
images: (Omit<ImageAttachmentPart, "blob"> & { dataUrl: string })[]
|
||||
images: ImageAttachmentPart[]
|
||||
text: string
|
||||
messageID: string
|
||||
sessionID: string
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
import { createStore, type SetStoreFunction, type Store } from "solid-js/store"
|
||||
import type { Prompt } from "@/context/prompt"
|
||||
import { Persist, persisted } from "@/utils/persist"
|
||||
import {
|
||||
clonePromptHistoryComments,
|
||||
clonePromptParts,
|
||||
prependHistoryEntry,
|
||||
type PromptHistoryComment,
|
||||
type PromptHistoryStoredEntry,
|
||||
} from "./history"
|
||||
import { prependHistoryEntry, type PromptHistoryComment, type PromptHistoryStoredEntry } from "./history"
|
||||
|
||||
export type PromptInputHistory = {
|
||||
entries: (mode: "normal" | "shell") => PromptHistoryStoredEntry[]
|
||||
@@ -41,23 +35,13 @@ export function createPromptInputHistory(): PromptInputHistory {
|
||||
}
|
||||
|
||||
export function createPersistedPromptInputHistory() {
|
||||
const [normal, setNormal, normalInit] = persisted(
|
||||
Persist.prompt(Persist.global("prompt-history", ["prompt-history.v1"])),
|
||||
const [normal, setNormal] = persisted(
|
||||
Persist.global("prompt-history", ["prompt-history.v1"]),
|
||||
createStore<PromptHistoryState>({ entries: [] }),
|
||||
)
|
||||
const [shell, setShell, shellInit] = persisted(
|
||||
Persist.prompt(Persist.global("prompt-history-shell", ["prompt-history-shell.v1"])),
|
||||
const [shell, setShell] = persisted(
|
||||
Persist.global("prompt-history-shell", ["prompt-history-shell.v1"]),
|
||||
createStore<PromptHistoryState>({ entries: [] }),
|
||||
)
|
||||
const history = createPromptInputHistoryStore(normal, setNormal, shell, setShell)
|
||||
return {
|
||||
...history,
|
||||
add(prompt: Prompt, mode: "normal" | "shell", comments: PromptHistoryComment[]) {
|
||||
const ready = mode === "shell" ? shellInit : normalInit
|
||||
if (!(ready instanceof Promise)) return history.add(prompt, mode, comments)
|
||||
const saved = clonePromptParts(prompt)
|
||||
const metadata = clonePromptHistoryComments(comments)
|
||||
void ready.then(() => history.add(saved, mode, metadata))
|
||||
},
|
||||
}
|
||||
return createPromptInputHistoryStore(normal, setNormal, shell, setShell)
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ describe("prompt-input history", () => {
|
||||
end: 12,
|
||||
selection: { startLine: 1, startChar: 1, endLine: 2, endChar: 1 },
|
||||
},
|
||||
{ type: "image", id: "1", filename: "img.png", mime: "image/png", blob: { id: "blob", url: "blob:test" } },
|
||||
{ type: "image", id: "1", filename: "img.png", mime: "image/png", dataUrl: "data:image/png;base64,abc" },
|
||||
]
|
||||
const copy = clonePromptParts(original)
|
||||
expect(copy).not.toBe(original)
|
||||
|
||||
@@ -100,7 +100,7 @@ export const PromptImageAttachments: Component<PromptImageAttachmentsProps> = (p
|
||||
}
|
||||
>
|
||||
<img
|
||||
src={attachment.blob.url}
|
||||
src={attachment.dataUrl}
|
||||
alt={attachment.filename}
|
||||
class={props.newLayoutDesigns ? imageClassV2 : imageClass}
|
||||
onClick={() => props.onOpen(attachment)}
|
||||
|
||||
@@ -22,7 +22,6 @@ import { ScopedKey } from "@/utils/server-scope"
|
||||
import { createPromptSubmissionState } from "./submission-state"
|
||||
import { normalizeSessionInfo } from "@/utils/session"
|
||||
import { Event } from "@opencode-ai/schema/event"
|
||||
import { blobDataUrl } from "@/utils/draft-store"
|
||||
|
||||
type PendingPrompt = {
|
||||
abort: AbortController
|
||||
@@ -96,12 +95,10 @@ export async function sendFollowupDraft(input: FollowupSendInput) {
|
||||
providerID: input.draft.model.providerID,
|
||||
variant: input.draft.variant,
|
||||
},
|
||||
files: await Promise.all(
|
||||
images.map(async (attachment) => ({
|
||||
uri: await blobDataUrl(attachment.blob, attachment.mime),
|
||||
name: attachment.filename,
|
||||
})),
|
||||
),
|
||||
files: images.map((attachment) => ({
|
||||
uri: attachment.dataUrl,
|
||||
name: attachment.filename,
|
||||
})),
|
||||
})
|
||||
return true
|
||||
} catch (err) {
|
||||
@@ -111,16 +108,10 @@ export async function sendFollowupDraft(input: FollowupSendInput) {
|
||||
}
|
||||
|
||||
const messageID = input.messageID ?? Identifier.ascending("message")
|
||||
const encodedImages = await Promise.all(
|
||||
images.map(async (attachment) => ({
|
||||
...attachment,
|
||||
dataUrl: await blobDataUrl(attachment.blob, attachment.mime),
|
||||
})),
|
||||
)
|
||||
const { requestParts, optimisticParts } = buildRequestParts({
|
||||
prompt: input.draft.prompt,
|
||||
context: input.draft.context,
|
||||
images: encodedImages,
|
||||
images,
|
||||
text,
|
||||
sessionID: input.draft.sessionID,
|
||||
messageID,
|
||||
@@ -525,12 +516,10 @@ export function createPromptSubmit(input: PromptSubmitInput) {
|
||||
arguments: args.join(" "),
|
||||
agent,
|
||||
model: { id: model.modelID, providerID: model.providerID, variant },
|
||||
files: await Promise.all(
|
||||
images.map(async (attachment) => ({
|
||||
uri: await blobDataUrl(attachment.blob, attachment.mime),
|
||||
name: attachment.filename,
|
||||
})),
|
||||
),
|
||||
files: images.map((attachment) => ({
|
||||
uri: attachment.dataUrl,
|
||||
name: attachment.filename,
|
||||
})),
|
||||
})
|
||||
.catch((err) => {
|
||||
serverSync().session.set("session_status", session.id, { type: "idle" })
|
||||
|
||||
@@ -289,9 +289,9 @@ export function SessionHeader() {
|
||||
|
||||
return (
|
||||
<>
|
||||
<Show when={search() && centerMount()} keyed>
|
||||
<Show when={search() && centerMount()}>
|
||||
{(mount) => (
|
||||
<Portal mount={mount}>
|
||||
<Portal mount={mount()}>
|
||||
<Button
|
||||
type="button"
|
||||
variant="ghost"
|
||||
@@ -308,10 +308,10 @@ export function SessionHeader() {
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<Show when={hotkey()} keyed>
|
||||
<Show when={hotkey()}>
|
||||
{(keybind) => (
|
||||
<Keybind class="shrink-0 !border-0 !bg-transparent !shadow-none px-0 text-text-weaker">
|
||||
{keybind}
|
||||
{keybind()}
|
||||
</Keybind>
|
||||
)}
|
||||
</Show>
|
||||
@@ -319,9 +319,9 @@ export function SessionHeader() {
|
||||
</Portal>
|
||||
)}
|
||||
</Show>
|
||||
<Show when={rightMount()} keyed>
|
||||
<Show when={rightMount()}>
|
||||
{(mount) => (
|
||||
<Portal mount={mount}>
|
||||
<Portal mount={mount()}>
|
||||
<Show
|
||||
when={isV2}
|
||||
fallback={
|
||||
|
||||
@@ -29,7 +29,7 @@ import {
|
||||
} from "@/context/settings"
|
||||
import { decode64 } from "@/utils/base64"
|
||||
import { playSoundById, SOUND_OPTIONS } from "@/utils/sound"
|
||||
import { ExternalLink } from "./external-link"
|
||||
import { Link } from "./link"
|
||||
import { SettingsList } from "./settings-list"
|
||||
|
||||
let demoSoundState = {
|
||||
@@ -482,7 +482,7 @@ export const SettingsGeneral: Component = () => {
|
||||
description={
|
||||
<>
|
||||
{language.t("settings.general.row.theme.description")}{" "}
|
||||
<ExternalLink href="https://opencode.ai/docs/themes/">{language.t("common.learnMore")}</ExternalLink>
|
||||
<Link href="https://opencode.ai/docs/themes/">{language.t("common.learnMore")}</Link>
|
||||
</>
|
||||
}
|
||||
>
|
||||
|
||||
@@ -9,7 +9,7 @@ import { useLanguage } from "@/context/language"
|
||||
import { usePlatform } from "@/context/platform"
|
||||
import { useUpdaterAction } from "../updater-action"
|
||||
import { useSettings } from "@/context/settings"
|
||||
import { ExternalLink } from "../external-link"
|
||||
import { Link } from "../link"
|
||||
import { SettingsListV2 } from "./parts/list"
|
||||
import { SettingsRowV2 } from "./parts/row"
|
||||
import { LayoutRetirementNotice, LayoutTransitionToggle } from "./interface-transition"
|
||||
@@ -150,9 +150,9 @@ const AppearanceSection: Component<{ controller: AppearanceSettingsController }>
|
||||
description={
|
||||
<>
|
||||
{language.t("settings.general.row.theme.description")}{" "}
|
||||
<ExternalLink class="settings-v2-link" href="https://opencode.ai/docs/themes/">
|
||||
<Link class="settings-v2-link" href="https://opencode.ai/docs/themes/">
|
||||
{language.t("common.learnMore")}
|
||||
</ExternalLink>
|
||||
</Link>
|
||||
</>
|
||||
}
|
||||
>
|
||||
|
||||
@@ -382,11 +382,7 @@ export const Terminal = (props: TerminalProps) => {
|
||||
|
||||
event.preventDefault()
|
||||
event.stopImmediatePropagation()
|
||||
if (URL.canParse(text) && new URL(text).protocol === "file:" && platform.openLocalFile) {
|
||||
platform.openLocalFile(text)
|
||||
return
|
||||
}
|
||||
platform.openExternal(text)
|
||||
platform.openLink(text)
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
@@ -742,7 +738,6 @@ export const Terminal = (props: TerminalProps) => {
|
||||
<div
|
||||
ref={container}
|
||||
data-component="terminal"
|
||||
dir="ltr"
|
||||
data-prevent-autofocus
|
||||
tabIndex={-1}
|
||||
style={{ "background-color": terminalColors().background }}
|
||||
|
||||
@@ -9,86 +9,53 @@
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
[data-titlebar-tab] {
|
||||
--tab-base: var(--v2-background-bg-deep);
|
||||
--tab-overlay: transparent;
|
||||
background: linear-gradient(var(--tab-overlay), var(--tab-overlay)), var(--tab-base);
|
||||
}
|
||||
|
||||
[data-titlebar-tab]:is(:hover, :has(> [data-slot="tab-link"]:focus-visible)):not([data-state="pressed"]):not(
|
||||
[data-dragging="true"]
|
||||
):not([data-editing="true"]) {
|
||||
--tab-base: var(--v2-background-bg-layer-02);
|
||||
--tab-overlay: var(--v2-overlay-simple-overlay-hover);
|
||||
}
|
||||
|
||||
[data-titlebar-tab]:is([data-state="pressed"], [data-dragging="true"], [data-editing="true"]) {
|
||||
--tab-base: var(--v2-background-bg-layer-02);
|
||||
--tab-overlay: var(--v2-overlay-simple-overlay-pressed);
|
||||
}
|
||||
|
||||
[data-titlebar-tab]:is(:hover, [data-state="pressed"]) [data-slot="tab-close"] {
|
||||
background: linear-gradient(var(--tab-overlay), var(--tab-overlay)), var(--tab-base);
|
||||
}
|
||||
|
||||
[data-titlebar-tab][data-editing="true"] [data-slot="tab-close"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
[data-titlebar-tab-list] {
|
||||
gap: 6px;
|
||||
gap: 13.5px;
|
||||
}
|
||||
|
||||
[data-titlebar-tab-slot] {
|
||||
--tab-separator: var(--v2-background-bg-layer-03);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
[data-color-scheme="dark"] [data-titlebar-tab-slot] {
|
||||
--tab-separator: var(--v2-background-bg-layer-02);
|
||||
}
|
||||
|
||||
[data-titlebar-tab-slot]:not(:first-child):not([data-active="true"])::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
left: -3.75px;
|
||||
left: -6.75px;
|
||||
width: 1.5px;
|
||||
height: 12px;
|
||||
border-radius: 9999px;
|
||||
background: var(--tab-separator);
|
||||
background: var(--v2-background-bg-layer-02);
|
||||
}
|
||||
|
||||
[data-titlebar-tab-slot][data-active="true"] + [data-titlebar-tab-slot]::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
[data-titlebar-tab-slot]:not([data-active="true"]):has([data-titlebar-tab]:hover)::before,
|
||||
[data-titlebar-tab-slot]:not([data-active="true"]):has([data-titlebar-tab]:hover) + [data-titlebar-tab-slot]::before {
|
||||
[data-titlebar-tab] [data-slot="tab-close"]::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 28px;
|
||||
width: 16px;
|
||||
pointer-events: none;
|
||||
background: linear-gradient(to right, transparent, var(--tab-bg));
|
||||
display: none;
|
||||
}
|
||||
|
||||
[data-titlebar-tab][data-title-overflow="true"]:not([data-editing="true"]) [data-slot="tab-link"] {
|
||||
--tab-title-fade-offset: 4px;
|
||||
-webkit-mask-image: linear-gradient(
|
||||
to right,
|
||||
black 0,
|
||||
black calc(100% - var(--tab-title-fade-offset) - 16px),
|
||||
transparent calc(100% - var(--tab-title-fade-offset)),
|
||||
transparent 100%
|
||||
);
|
||||
mask-image: linear-gradient(
|
||||
to right,
|
||||
black 0,
|
||||
black calc(100% - var(--tab-title-fade-offset) - 16px),
|
||||
transparent calc(100% - var(--tab-title-fade-offset)),
|
||||
transparent 100%
|
||||
);
|
||||
[data-titlebar-tab][data-title-overflow="true"]:not([data-editing="true"]) [data-slot="tab-close"]::before {
|
||||
display: block;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
[data-titlebar-tab][data-title-overflow="true"]:is(:hover, [data-active="true"]):not([data-editing="true"])
|
||||
[data-slot="tab-link"] {
|
||||
--tab-title-fade-offset: 24px;
|
||||
[data-titlebar-tab][data-title-overflow="true"]:hover:not([data-editing="true"]) [data-slot="tab-close"]::before,
|
||||
[data-titlebar-tab][data-title-overflow="true"][data-active="true"]:not([data-editing="true"])
|
||||
[data-slot="tab-close"]::before {
|
||||
right: 100%;
|
||||
}
|
||||
|
||||
[data-titlebar-tab][data-title-overflow="true"]:not(:hover):not([data-active="true"]):not([data-editing="true"])
|
||||
|
||||
@@ -180,11 +180,11 @@ export function TabNavItem(props: {
|
||||
data-slot="titlebar-tab-item"
|
||||
data-title-overflow={titleOverflowing()}
|
||||
data-editing={editing()}
|
||||
class="group relative flex h-7 w-full min-w-0 select-none flex-row items-center gap-1.5 overflow-hidden whitespace-nowrap rounded-[6px] px-1.5 [container-type:inline-size]"
|
||||
class="group relative flex h-7 w-full min-w-0 select-none flex-row items-center gap-1.5 overflow-hidden whitespace-nowrap rounded-[6px] bg-[var(--tab-bg)] px-1.5 [container-type:inline-size] [--tab-bg:var(--v2-background-bg-deep)] hover:[--tab-bg:var(--v2-background-bg-layer-02)] has-[>a:focus-visible]:[--tab-bg:var(--v2-background-bg-layer-02)] data-[active='true']:[--tab-bg:var(--v2-background-bg-layer-02)] data-[dragging='true']:[--tab-bg:var(--v2-background-bg-layer-02)] data-[pressed='true']:[--tab-bg:var(--v2-background-bg-layer-02)] data-[editing='true']:[--tab-bg:var(--v2-background-bg-layer-02)]"
|
||||
classList={{ invisible: props.hidden }}
|
||||
data-active={props.active}
|
||||
data-dragging={props.dragging}
|
||||
data-state={props.active || props.pressed ? "pressed" : undefined}
|
||||
data-pressed={props.pressed}
|
||||
onMouseDown={(event) => {
|
||||
if (event.button !== MIDDLE_MOUSE_BUTTON) return
|
||||
event.preventDefault()
|
||||
@@ -224,7 +224,6 @@ export function TabNavItem(props: {
|
||||
<span data-slot="project-avatar-slot" class="flex size-4 shrink-0 items-center justify-center">
|
||||
<Show
|
||||
when={props.session()}
|
||||
keyed
|
||||
fallback={
|
||||
<span class="block size-4 rounded-[3px] border border-v2-border-border-muted" aria-hidden="true" />
|
||||
}
|
||||
@@ -232,8 +231,8 @@ export function TabNavItem(props: {
|
||||
{(session) => (
|
||||
<SessionTabAvatar
|
||||
project={project()}
|
||||
directory={session.directory}
|
||||
sessionId={session.id}
|
||||
directory={session().directory}
|
||||
sessionId={session().id}
|
||||
server={props.server}
|
||||
/>
|
||||
)}
|
||||
@@ -277,7 +276,7 @@ export function TabNavItem(props: {
|
||||
/>
|
||||
</a>
|
||||
|
||||
<div data-slot="tab-close">
|
||||
<div data-slot="tab-close" class="group-hover:bg-[var(--tab-bg)] group-data-[active=true]:bg-[var(--tab-bg)]">
|
||||
<IconButtonV2
|
||||
size="small"
|
||||
variant="ghost-muted"
|
||||
@@ -335,8 +334,8 @@ export function DraftTabItem(props: {
|
||||
data-slot="titlebar-tab-item"
|
||||
data-active={props.active}
|
||||
data-dragging={props.dragging}
|
||||
data-state={props.active || props.pressed ? "pressed" : undefined}
|
||||
class="group relative flex h-7 w-full min-w-0 flex-row items-center gap-1.5 overflow-hidden rounded-[6px] px-1.5 [container-type:inline-size] whitespace-nowrap"
|
||||
data-pressed={props.pressed}
|
||||
class="group relative flex h-7 w-full min-w-0 flex-row items-center gap-1.5 overflow-hidden rounded-[6px] bg-[var(--tab-bg)] px-1.5 [container-type:inline-size] whitespace-nowrap [--tab-bg:var(--v2-background-bg-deep)] hover:[--tab-bg:var(--v2-background-bg-layer-02)] has-[>a:focus-visible]:[--tab-bg:var(--v2-background-bg-layer-02)] data-[active='true']:[--tab-bg:var(--v2-background-bg-layer-02)] data-[dragging='true']:[--tab-bg:var(--v2-background-bg-layer-02)] data-[pressed='true']:[--tab-bg:var(--v2-background-bg-layer-02)] data-[editing='true']:[--tab-bg:var(--v2-background-bg-layer-02)]"
|
||||
classList={{ invisible: props.hidden }}
|
||||
onMouseDown={(event) => {
|
||||
if (event.button !== MIDDLE_MOUSE_BUTTON) return
|
||||
@@ -382,7 +381,7 @@ export function DraftTabItem(props: {
|
||||
{props.title}
|
||||
</span>
|
||||
</a>
|
||||
<div data-slot="tab-close">
|
||||
<div data-slot="tab-close" class="group-hover:bg-[var(--tab-bg)] group-data-[active=true]:bg-[var(--tab-bg)]">
|
||||
<IconButtonV2
|
||||
size="small"
|
||||
variant="ghost-muted"
|
||||
|
||||
@@ -395,25 +395,27 @@ export function Titlebar(props: { update?: TitlebarUpdate; debugTools?: { visibl
|
||||
}}
|
||||
onReorder={(keys) => tabsStoreActions.reorder(keys)}
|
||||
/>
|
||||
<TooltipV2
|
||||
placement="bottom"
|
||||
value={
|
||||
<>
|
||||
{language.t("command.session.new")}
|
||||
<KeybindV2 keys={newTabTooltipKeybind(command)} variant="neutral" />
|
||||
</>
|
||||
}
|
||||
>
|
||||
<IconButtonV2
|
||||
type="button"
|
||||
variant="ghost-muted"
|
||||
size="large"
|
||||
class="shrink-0"
|
||||
icon={<IconV2 name="plus" />}
|
||||
onClick={openNewTab}
|
||||
aria-label={language.t("command.session.new")}
|
||||
/>
|
||||
</TooltipV2>
|
||||
<Show when={!creating()}>
|
||||
<TooltipV2
|
||||
placement="bottom"
|
||||
value={
|
||||
<>
|
||||
{language.t("command.session.new")}
|
||||
<KeybindV2 keys={newTabTooltipKeybind(command)} variant="neutral" />
|
||||
</>
|
||||
}
|
||||
>
|
||||
<IconButtonV2
|
||||
type="button"
|
||||
variant="ghost-muted"
|
||||
size="large"
|
||||
class="shrink-0"
|
||||
icon={<IconV2 name="plus" />}
|
||||
onClick={openNewTab}
|
||||
aria-label={language.t("command.session.new")}
|
||||
/>
|
||||
</TooltipV2>
|
||||
</Show>
|
||||
<div class="flex-1" />
|
||||
<TitlebarV2Right state={v2RightState()} />
|
||||
</div>
|
||||
|
||||
@@ -43,7 +43,7 @@ export function WindowsAppMenu(props: {
|
||||
runAction(entry.action)
|
||||
return
|
||||
}
|
||||
if (entry.href) props.platform.openExternal(entry.href)
|
||||
if (entry.href) props.platform.openLink(entry.href)
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
bootstrapDirectory,
|
||||
loadAgentsQuery,
|
||||
loadCommands,
|
||||
loadGlobalConfigQuery,
|
||||
loadPathQuery,
|
||||
loadProjectsQuery,
|
||||
loadProvidersQuery,
|
||||
@@ -77,7 +76,6 @@ function directoryState() {
|
||||
|
||||
describe("bootstrapDirectory", () => {
|
||||
test("uses legacy MCP endpoints while refreshing a v1 directory", async () => {
|
||||
const legacyConfigReads: string[] = []
|
||||
const mcpReads: string[] = []
|
||||
const [store, setStore] = directoryState()
|
||||
|
||||
@@ -93,12 +91,7 @@ describe("bootstrapDirectory", () => {
|
||||
},
|
||||
sdk: {
|
||||
app: { agents: async () => ({ data: [{ name: "build", mode: "primary" }] }) },
|
||||
config: {
|
||||
get: async () => {
|
||||
legacyConfigReads.push("directory")
|
||||
return { data: {} }
|
||||
},
|
||||
},
|
||||
config: { get: async () => ({ data: {} }) },
|
||||
session: { status: async () => ({ data: {} }) },
|
||||
vcs: { get: async () => ({ data: undefined }) },
|
||||
command: {
|
||||
@@ -141,88 +134,8 @@ describe("bootstrapDirectory", () => {
|
||||
await new Promise((resolve) => setTimeout(resolve, 80))
|
||||
|
||||
expect(store.status).toBe("complete")
|
||||
expect(legacyConfigReads).toEqual(["directory"])
|
||||
expect(mcpReads.sort()).toEqual(["command", "resource", "status"])
|
||||
})
|
||||
|
||||
test("skips legacy config while refreshing a v2 directory", async () => {
|
||||
const [store, setStore] = directoryState()
|
||||
|
||||
await bootstrapDirectory({
|
||||
directory: "/project",
|
||||
scope: ServerScope.local,
|
||||
mcp: false,
|
||||
global: {
|
||||
config: {} satisfies Config,
|
||||
path: { state: "", config: "", worktree: "/project", directory: "/project", home: "/home" },
|
||||
project: [{ id: "project", worktree: "/project" } as Project],
|
||||
provider,
|
||||
},
|
||||
sdk: {
|
||||
config: {
|
||||
get: async () => {
|
||||
throw new Error("legacy directory config should not be called")
|
||||
},
|
||||
},
|
||||
} as unknown as OpencodeClient,
|
||||
api,
|
||||
store,
|
||||
setStore,
|
||||
vcsCache: { setStore() {} } as unknown as VcsCache,
|
||||
loadSessions() {},
|
||||
translate: (key) => key,
|
||||
queryClient: new QueryClient(),
|
||||
protocol: Promise.resolve("v2"),
|
||||
})
|
||||
|
||||
expect(store.status).toBe("partial")
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 80))
|
||||
|
||||
expect(store.status).toBe("complete")
|
||||
})
|
||||
})
|
||||
|
||||
describe("config queries", () => {
|
||||
test("skips legacy global config for v2 servers", async () => {
|
||||
const sdk = {
|
||||
global: {
|
||||
config: {
|
||||
get: async () => {
|
||||
throw new Error("legacy global config should not be called")
|
||||
},
|
||||
},
|
||||
},
|
||||
} as unknown as OpencodeClient
|
||||
|
||||
const result = await new QueryClient().fetchQuery(
|
||||
loadGlobalConfigQuery(ServerScope.local, sdk, Promise.resolve("v2")),
|
||||
)
|
||||
|
||||
expect(result).toEqual({})
|
||||
})
|
||||
|
||||
test("loads legacy global config for v1 servers", async () => {
|
||||
const calls: string[] = []
|
||||
const config = { shell: "zsh" } satisfies Config
|
||||
const sdk = {
|
||||
global: {
|
||||
config: {
|
||||
get: async () => {
|
||||
calls.push("global")
|
||||
return { data: config }
|
||||
},
|
||||
},
|
||||
},
|
||||
} as unknown as OpencodeClient
|
||||
|
||||
const result = await new QueryClient().fetchQuery(
|
||||
loadGlobalConfigQuery(ServerScope.local, sdk, Promise.resolve("v1")),
|
||||
)
|
||||
|
||||
expect(result).toEqual(config)
|
||||
expect(calls).toEqual(["global"])
|
||||
})
|
||||
})
|
||||
|
||||
describe("query keys", () => {
|
||||
|
||||
@@ -105,13 +105,10 @@ function showErrors(input: {
|
||||
})
|
||||
}
|
||||
|
||||
export const loadGlobalConfigQuery = (scope: ServerScope, sdk: OpencodeClient, protocol?: Promise<ServerProtocol>) =>
|
||||
export const loadGlobalConfigQuery = (scope: ServerScope, sdk: OpencodeClient) =>
|
||||
queryOptions({
|
||||
queryKey: [scope, "config"],
|
||||
queryFn: async () => {
|
||||
if ((await protocol) !== "v1") return {}
|
||||
return retry(() => sdk.global.config.get().then((x) => x.data!))
|
||||
},
|
||||
queryFn: () => retry(() => sdk.global.config.get().then((x) => x.data!)),
|
||||
})
|
||||
|
||||
type ProjectApi = {
|
||||
@@ -152,7 +149,7 @@ export async function bootstrapGlobal(input: {
|
||||
queryClient: QueryClient
|
||||
}) {
|
||||
const slow = [
|
||||
() => input.queryClient.fetchQuery(loadGlobalConfigQuery(input.scope, input.serverSDK, input.protocol)),
|
||||
() => input.queryClient.fetchQuery(loadGlobalConfigQuery(input.scope, input.serverSDK)),
|
||||
() =>
|
||||
input.queryClient.fetchQuery(
|
||||
loadProvidersQuery(input.scope, null, input.serverAPI, input.serverSDK, input.protocol),
|
||||
@@ -379,10 +376,7 @@ export async function bootstrapDirectory(input: {
|
||||
.ensureQueryData(loadAgentsQuery(input.scope, input.directory, input.api.agent, input.sdk, input.protocol))
|
||||
.then((data) => input.setStore("agent", data)),
|
||||
() =>
|
||||
retry(async () => {
|
||||
if ((await input.protocol) !== "v1") return
|
||||
return input.sdk.config.get().then((x) => input.setStore("config", reconcile(x.data!, { merge: false })))
|
||||
}),
|
||||
retry(() => input.sdk.config.get().then((x) => input.setStore("config", reconcile(x.data!, { merge: false })))),
|
||||
() =>
|
||||
retry(() =>
|
||||
(async () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as i18n from "@solid-primitives/i18n"
|
||||
import { createEffect, createMemo, createResource } from "solid-js"
|
||||
import { createStore } from "solid-js/store"
|
||||
import { createSimpleContext, pluralCategory, type UiI18nPluralKey } from "@opencode-ai/ui/context"
|
||||
import { createSimpleContext } from "@opencode-ai/ui/context"
|
||||
import { Persist, persisted } from "@/utils/persist"
|
||||
import { dict as en } from "@/i18n/en"
|
||||
import { dict as uiEn } from "@opencode-ai/ui/i18n/en"
|
||||
@@ -25,26 +25,9 @@ export type Locale =
|
||||
| "th"
|
||||
| "bs"
|
||||
| "tr"
|
||||
| "hi"
|
||||
| "nl"
|
||||
| "id"
|
||||
| "vi"
|
||||
| "it"
|
||||
| "ur"
|
||||
| "pa"
|
||||
| "az"
|
||||
| "fi"
|
||||
| "sv"
|
||||
|
||||
const RTL_LOCALES: ReadonlySet<Locale> = new Set(["ar", "ur", "pa"])
|
||||
|
||||
type RawDictionary = typeof en & typeof uiEn
|
||||
type Dictionary = i18n.Flatten<RawDictionary>
|
||||
type PluralKey =
|
||||
| UiI18nPluralKey
|
||||
| "session.question.pending"
|
||||
| "session.followupDock.summary"
|
||||
| "session.revertDock.summary"
|
||||
type Source = { dict: Record<string, string> }
|
||||
|
||||
function cookie(locale: Locale) {
|
||||
@@ -70,16 +53,6 @@ const LOCALES: readonly Locale[] = [
|
||||
"br",
|
||||
"th",
|
||||
"tr",
|
||||
"hi",
|
||||
"nl",
|
||||
"id",
|
||||
"vi",
|
||||
"it",
|
||||
"ur",
|
||||
"pa",
|
||||
"az",
|
||||
"fi",
|
||||
"sv",
|
||||
]
|
||||
|
||||
const INTL: Record<Locale, string> = {
|
||||
@@ -101,19 +74,9 @@ const INTL: Record<Locale, string> = {
|
||||
th: "th",
|
||||
bs: "bs",
|
||||
tr: "tr",
|
||||
hi: "hi-IN",
|
||||
nl: "nl-NL",
|
||||
id: "id-ID",
|
||||
vi: "vi-VN",
|
||||
it: "it-IT",
|
||||
ur: "ur-PK",
|
||||
pa: "pa-Arab-PK",
|
||||
az: "az-Latn-AZ",
|
||||
fi: "fi-FI",
|
||||
sv: "sv-SE",
|
||||
}
|
||||
|
||||
const LABEL_KEY: Partial<Record<Locale, keyof Dictionary>> = {
|
||||
const LABEL_KEY: Record<Locale, keyof Dictionary> = {
|
||||
en: "language.en",
|
||||
zh: "language.zh",
|
||||
zht: "language.zht",
|
||||
@@ -134,19 +97,6 @@ const LABEL_KEY: Partial<Record<Locale, keyof Dictionary>> = {
|
||||
tr: "language.tr",
|
||||
}
|
||||
|
||||
const LABEL: Partial<Record<Locale, string>> = {
|
||||
hi: "हिन्दी",
|
||||
nl: "Nederlands",
|
||||
id: "Bahasa Indonesia",
|
||||
vi: "Tiếng Việt",
|
||||
it: "Italiano",
|
||||
ur: "اردو",
|
||||
pa: "پنجابی",
|
||||
az: "Azərbaycanca",
|
||||
fi: "Suomi",
|
||||
sv: "Svenska",
|
||||
}
|
||||
|
||||
const base = i18n.flatten({ ...en, ...uiEn })
|
||||
const dicts = new Map<Locale, Dictionary>([["en", base]])
|
||||
|
||||
@@ -171,16 +121,6 @@ const loaders: Record<Exclude<Locale, "en">, () => Promise<Dictionary>> = {
|
||||
th: () => merge(import("@/i18n/th"), import("@opencode-ai/ui/i18n/th")),
|
||||
bs: () => merge(import("@/i18n/bs"), import("@opencode-ai/ui/i18n/bs")),
|
||||
tr: () => merge(import("@/i18n/tr"), import("@opencode-ai/ui/i18n/tr")),
|
||||
hi: () => merge(import("@/i18n/hi"), import("@opencode-ai/ui/i18n/hi")),
|
||||
nl: () => merge(import("@/i18n/nl"), import("@opencode-ai/ui/i18n/nl")),
|
||||
id: () => merge(import("@/i18n/id"), import("@opencode-ai/ui/i18n/id")),
|
||||
vi: () => merge(import("@/i18n/vi"), import("@opencode-ai/ui/i18n/vi")),
|
||||
it: () => merge(import("@/i18n/it"), import("@opencode-ai/ui/i18n/it")),
|
||||
ur: () => merge(import("@/i18n/ur"), import("@opencode-ai/ui/i18n/ur")),
|
||||
pa: () => merge(import("@/i18n/pa"), import("@opencode-ai/ui/i18n/pa")),
|
||||
az: () => merge(import("@/i18n/az"), import("@opencode-ai/ui/i18n/az")),
|
||||
fi: () => merge(import("@/i18n/fi"), import("@opencode-ai/ui/i18n/fi")),
|
||||
sv: () => merge(import("@/i18n/sv"), import("@opencode-ai/ui/i18n/sv")),
|
||||
}
|
||||
|
||||
function loadDict(locale: Locale) {
|
||||
@@ -200,12 +140,7 @@ export function loadLocaleDict(locale: Locale) {
|
||||
|
||||
const localeMatchers: Array<{ locale: Locale; match: (language: string) => boolean }> = [
|
||||
{ locale: "en", match: (language) => language.startsWith("en") },
|
||||
{
|
||||
locale: "zht",
|
||||
match: (language) =>
|
||||
language.startsWith("zh") &&
|
||||
(language.includes("hant") || language.includes("-tw") || language.includes("-hk") || language.includes("-mo")),
|
||||
},
|
||||
{ locale: "zht", match: (language) => language.startsWith("zh") && language.includes("hant") },
|
||||
{ locale: "zh", match: (language) => language.startsWith("zh") },
|
||||
{ locale: "ko", match: (language) => language.startsWith("ko") },
|
||||
{ locale: "de", match: (language) => language.startsWith("de") },
|
||||
@@ -225,22 +160,6 @@ const localeMatchers: Array<{ locale: Locale; match: (language: string) => boole
|
||||
{ locale: "th", match: (language) => language.startsWith("th") },
|
||||
{ locale: "bs", match: (language) => language.startsWith("bs") },
|
||||
{ locale: "tr", match: (language) => language.startsWith("tr") },
|
||||
{ locale: "hi", match: (language) => language.startsWith("hi") },
|
||||
{ locale: "nl", match: (language) => language.startsWith("nl") },
|
||||
{ locale: "id", match: (language) => language.startsWith("id") },
|
||||
{ locale: "vi", match: (language) => language.startsWith("vi") },
|
||||
{ locale: "it", match: (language) => language.startsWith("it") },
|
||||
{ locale: "ur", match: (language) => language.startsWith("ur") },
|
||||
{
|
||||
locale: "pa",
|
||||
match: (language) => language.startsWith("pa") && (language.includes("arab") || language.includes("-pk")),
|
||||
},
|
||||
{
|
||||
locale: "az",
|
||||
match: (language) => language.startsWith("az") && !language.includes("arab") && !language.includes("cyrl"),
|
||||
},
|
||||
{ locale: "fi", match: (language) => language.startsWith("fi") },
|
||||
{ locale: "sv", match: (language) => language.startsWith("sv") },
|
||||
]
|
||||
|
||||
function detectLocale(): Locale {
|
||||
@@ -301,26 +220,12 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont
|
||||
params?: Record<string, string | number | boolean>,
|
||||
) => string
|
||||
|
||||
const plural = (key: PluralKey, count: number, params?: Record<string, string | number | boolean>) => {
|
||||
const category = pluralCategory(intl(), count)
|
||||
const current = (dict.loading ? base : (dict() ?? base)) as Record<string, string>
|
||||
const candidate = `${key}.${category}`
|
||||
const fallback = `${key}.other`
|
||||
return i18n.resolveTemplate(current[candidate] ?? current[fallback] ?? fallback, { ...params, count })
|
||||
}
|
||||
|
||||
const label = (value: Locale) => {
|
||||
const key = LABEL_KEY[value]
|
||||
if (key) return t(key)
|
||||
return LABEL[value] ?? value
|
||||
}
|
||||
const label = (value: Locale) => t(LABEL_KEY[value])
|
||||
|
||||
createEffect(() => {
|
||||
if (typeof document !== "object") return
|
||||
const value = locale()
|
||||
document.documentElement.lang = value
|
||||
document.documentElement.dir = RTL_LOCALES.has(value) ? "rtl" : "ltr"
|
||||
document.cookie = cookie(value)
|
||||
document.documentElement.lang = locale()
|
||||
document.cookie = cookie(locale())
|
||||
})
|
||||
|
||||
return {
|
||||
@@ -330,7 +235,6 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont
|
||||
locales: LOCALES,
|
||||
label,
|
||||
t,
|
||||
plural,
|
||||
setLocale(next: Locale) {
|
||||
setStore("locale", normalizeLocale(next))
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { createStore, reconcile } from "solid-js/store"
|
||||
import { type Accessor, batch, createEffect, createMemo, createRoot, getOwner, onCleanup } from "solid-js"
|
||||
import { useNavigate, useParams, useSearchParams } from "@solidjs/router"
|
||||
import { useParams, useSearchParams } from "@solidjs/router"
|
||||
import { createSimpleContext } from "@opencode-ai/ui/context"
|
||||
import type { ServerSDK } from "./server-sdk"
|
||||
import type { ServerSync } from "./server-sync"
|
||||
@@ -118,7 +118,6 @@ export const { use: useNotification, provider: NotificationProvider } = createSi
|
||||
const global = useGlobal()
|
||||
const server = useServer()
|
||||
const tabs = useTabs()
|
||||
const navigate = useNavigate()
|
||||
const platform = usePlatform()
|
||||
const settings = useSettings()
|
||||
const language = useLanguage()
|
||||
@@ -154,7 +153,6 @@ export const { use: useNotification, provider: NotificationProvider } = createSi
|
||||
platform,
|
||||
settings,
|
||||
language,
|
||||
navigate,
|
||||
}),
|
||||
}),
|
||||
owner ?? undefined,
|
||||
@@ -219,7 +217,6 @@ function createServerNotificationState(input: {
|
||||
platform: ReturnType<typeof usePlatform>
|
||||
settings: ReturnType<typeof useSettings>
|
||||
language: ReturnType<typeof useLanguage>
|
||||
navigate: (href: string) => void
|
||||
}) {
|
||||
const serverSDK = () => input.sdk
|
||||
const serverSync = () => input.sync
|
||||
@@ -356,9 +353,7 @@ function createServerNotificationState(input: {
|
||||
|
||||
const href = `/${base64Encode(directory)}/session/${sessionID}`
|
||||
if (settings.notifications.agent()) {
|
||||
void platform.notify(language.t("notification.session.responseReady.title"), session.title ?? sessionID, () =>
|
||||
input.navigate(href),
|
||||
)
|
||||
void platform.notify(language.t("notification.session.responseReady.title"), session.title ?? sessionID, href)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -391,7 +386,7 @@ function createServerNotificationState(input: {
|
||||
(typeof error === "string" ? error : language.t("notification.session.error.fallbackDescription"))
|
||||
const href = sessionID ? `/${base64Encode(directory)}/session/${sessionID}` : `/${base64Encode(directory)}`
|
||||
if (settings.notifications.errors()) {
|
||||
void platform.notify(language.t("notification.session.error.title"), description, () => input.navigate(href))
|
||||
void platform.notify(language.t("notification.session.error.title"), description, href)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import type { DesktopMenuAction } from "../desktop-menu"
|
||||
import { ServerConnection } from "./server"
|
||||
import type { WslServersPlatform } from "../wsl/types"
|
||||
import type { UpdaterPlatform } from "../updater"
|
||||
import type { DraftStore } from "@/utils/draft-store"
|
||||
|
||||
type PickerPaths = string | string[] | null
|
||||
type OpenDirectoryPickerOptions = { title?: string; multiple?: boolean }
|
||||
@@ -32,23 +31,26 @@ type PlatformBase = {
|
||||
/** App version */
|
||||
version?: string
|
||||
|
||||
/** Open a web or mail URL in the default system application */
|
||||
openExternal(url: string): void
|
||||
/** Open a URL in the default browser */
|
||||
openLink(url: string): void
|
||||
|
||||
/** Open a local path in a local app (desktop only) */
|
||||
openPath?(path: string, app?: string): Promise<void>
|
||||
|
||||
/** Open a local file URL in its default app (desktop only) */
|
||||
openLocalFile?(url: string): void
|
||||
|
||||
/** Reveal a local path in the system file manager; false when the path does not exist (desktop only) */
|
||||
revealPath?(path: string): Promise<boolean>
|
||||
|
||||
/** Restart the app */
|
||||
restart(): Promise<void>
|
||||
|
||||
/** Send a system notification */
|
||||
notify(title: string, description?: string, onClick?: () => void): Promise<void>
|
||||
/** Navigate back in history */
|
||||
back(): void
|
||||
|
||||
/** Navigate forward in history */
|
||||
forward(): void
|
||||
|
||||
/** Send a system notification (optional deep link) */
|
||||
notify(title: string, description?: string, href?: string): Promise<void>
|
||||
|
||||
/** Open a native attachment picker and read selected files sequentially (desktop only) */
|
||||
openAttachmentPickerDialog?(
|
||||
@@ -65,9 +67,6 @@ type PlatformBase = {
|
||||
/** Storage mechanism, defaults to localStorage */
|
||||
storage?: (name?: string) => SyncStorage | AsyncStorage
|
||||
|
||||
/** Prompt drafts, history, and their blobs. */
|
||||
draftStore?: DraftStore
|
||||
|
||||
/** Stable platform window identity for window-scoped persistence */
|
||||
windowID?: string
|
||||
|
||||
@@ -92,6 +91,9 @@ type PlatformBase = {
|
||||
/** Set the preferred display backend (desktop only) */
|
||||
setDisplayBackend?(backend: DisplayBackend): Promise<void>
|
||||
|
||||
/** Parse markdown to HTML using native parser (desktop only, returns unprocessed code blocks) */
|
||||
parseMarkdown?(markdown: string): Promise<string>
|
||||
|
||||
/** Webview zoom level (desktop only) */
|
||||
webviewZoom?: Accessor<number>
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ import { createStore, type SetStoreFunction } from "solid-js/store"
|
||||
import type { FileSelection } from "@/context/file"
|
||||
import { Persist, persisted } from "@/utils/persist"
|
||||
import type { ServerScope } from "@/utils/server-scope"
|
||||
import type { BlobReference } from "@/utils/draft-store"
|
||||
|
||||
interface PartBase {
|
||||
content: string
|
||||
@@ -38,7 +37,7 @@ export interface ImageAttachmentPart {
|
||||
filename: string
|
||||
sourcePath?: string
|
||||
mime: string
|
||||
blob: BlobReference
|
||||
dataUrl: string
|
||||
}
|
||||
|
||||
export type ContentPart = TextPart | FileAttachmentPart | AgentPart | ImageAttachmentPart
|
||||
@@ -169,9 +168,9 @@ function createPromptActions(setStore: SetStoreFunction<PromptStore>) {
|
||||
}
|
||||
|
||||
function promptTarget(serverScope: ServerScope, scope: PromptScope) {
|
||||
if ("draftID" in scope) return Persist.prompt(Persist.draft(scope.draftID, "prompt"))
|
||||
if ("draftID" in scope) return Persist.draft(scope.draftID, "prompt")
|
||||
const legacy = `${scope.dir}/prompt${scope.id ? "/" + scope.id : ""}.v2`
|
||||
return Persist.prompt(Persist.serverScoped(serverScope, scope.dir, scope.id, "prompt", [legacy]))
|
||||
return Persist.serverScoped(serverScope, scope.dir, scope.id, "prompt", [legacy])
|
||||
}
|
||||
|
||||
function promptStore(initial?: InitialPrompt): PromptStore {
|
||||
@@ -246,7 +245,7 @@ export function createPromptSession(serverScope: ServerScope, scope: PromptScope
|
||||
}
|
||||
|
||||
export function createDraftPromptSession(draftID: string, initial?: InitialPrompt) {
|
||||
return createPersistedPrompt(Persist.prompt(Persist.draft(draftID, "prompt")), initial)
|
||||
return createPersistedPrompt(Persist.draft(draftID, "prompt"), initial)
|
||||
}
|
||||
|
||||
export type PromptSession = ReturnType<typeof createPromptSession>
|
||||
|
||||
@@ -184,7 +184,7 @@ function makeQueryOptionsApi(
|
||||
protocol: Promise<"v1" | "v2">,
|
||||
) {
|
||||
return {
|
||||
globalConfig: () => loadGlobalConfigQuery(scope, serverSDK(), protocol),
|
||||
globalConfig: () => loadGlobalConfigQuery(scope, serverSDK()),
|
||||
projects: () => loadProjectsQuery(scope, serverAPI.project),
|
||||
providers: (directory: PathKey | null) =>
|
||||
loadProvidersQuery(scope, directory, serverAPI, directory ? sdkFor(directory) : serverSDK(), protocol),
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
import type { ServerConnection } from "./server"
|
||||
import type { Tab } from "./tabs"
|
||||
|
||||
export function migrateTabs(value: unknown, fallback: ServerConnection.Key): Tab[] {
|
||||
if (!Array.isArray(value)) return []
|
||||
return value.flatMap<Tab>((tab) => {
|
||||
if (!tab || typeof tab !== "object") return []
|
||||
if ("server" in tab && typeof tab.server !== "string") return []
|
||||
const server = ("server" in tab ? tab.server : fallback) as ServerConnection.Key
|
||||
if (tab.type === "session" && typeof tab.sessionId === "string") {
|
||||
return [{ type: tab.type, server, sessionId: tab.sessionId }]
|
||||
}
|
||||
if (
|
||||
tab.type === "draft" &&
|
||||
typeof tab.draftID === "string" &&
|
||||
typeof tab.directory === "string" &&
|
||||
(tab.worktree === undefined || typeof tab.worktree === "string")
|
||||
) {
|
||||
return [{ type: tab.type, server, draftID: tab.draftID, directory: tab.directory, worktree: tab.worktree }]
|
||||
}
|
||||
return []
|
||||
})
|
||||
}
|
||||
@@ -3,7 +3,6 @@ import { createRoot, getOwner, onCleanup } from "solid-js"
|
||||
import { createTabMemory } from "./tab-memory"
|
||||
import { nextTabAfterClose, pushClosedTab, removeClosedTabs, takeClosedTab, type ClosedTab } from "./closed-tabs"
|
||||
import type { SessionTab, Tab } from "./tabs"
|
||||
import { migrateTabs } from "./tab-migration"
|
||||
import type { ServerConnection } from "./server"
|
||||
|
||||
const server = "local\nhttp://localhost:4096" as ServerConnection.Key
|
||||
@@ -12,23 +11,6 @@ function sessionTab(sessionId: string): SessionTab {
|
||||
return { type: "session", server, sessionId }
|
||||
}
|
||||
|
||||
describe("tab migration", () => {
|
||||
test("drops null and malformed persisted tabs", () => {
|
||||
expect(
|
||||
migrateTabs([null, sessionTab("a"), { type: "session", server }, { type: "unknown", server }, "invalid"], server),
|
||||
).toEqual([sessionTab("a")])
|
||||
})
|
||||
|
||||
test("adds the fallback server to valid legacy tabs", () => {
|
||||
expect(migrateTabs([{ type: "session", sessionId: "a", dirBase64: "legacy" }], server)).toEqual([sessionTab("a")])
|
||||
})
|
||||
|
||||
test("replaces invalid top-level persisted data", () => {
|
||||
expect(migrateTabs(null, server)).toEqual([])
|
||||
expect(migrateTabs({}, server)).toEqual([])
|
||||
})
|
||||
})
|
||||
|
||||
describe("tab memory", () => {
|
||||
test("keeps state until its tab is removed", () => {
|
||||
createRoot((dispose) => {
|
||||
|
||||
@@ -12,7 +12,6 @@ import { sessionHref } from "@/utils/session-route"
|
||||
import { createTabMemory } from "./tab-memory"
|
||||
import { nextTabAfterClose, pushClosedTab, removeClosedTabs, takeClosedTab, type ClosedTab } from "./closed-tabs"
|
||||
import { createDraftPromptSession, type PromptModel } from "./prompt-state"
|
||||
import { migrateTabs } from "./tab-migration"
|
||||
|
||||
export type SessionTab = {
|
||||
type: "session"
|
||||
@@ -60,7 +59,13 @@ export const { use: useTabs, provider: TabsProvider } = createSimpleContext({
|
||||
const [store, setStore, _, ready] = persisted(
|
||||
{
|
||||
...Persist.window("tabs"),
|
||||
migrate: (value: unknown) => migrateTabs(value, fallback),
|
||||
migrate: (value: unknown) => {
|
||||
if (!Array.isArray(value)) return value
|
||||
return value.map((tab) => {
|
||||
if (!tab || typeof tab !== "object" || "server" in tab) return tab
|
||||
return { ...tab, server: fallback }
|
||||
})
|
||||
},
|
||||
},
|
||||
createStore<Tab[]>([]),
|
||||
)
|
||||
@@ -101,10 +106,7 @@ export const { use: useTabs, provider: TabsProvider } = createSimpleContext({
|
||||
}
|
||||
|
||||
const removeDraftPersisted = (draftID: string) => {
|
||||
for (const key of draftPersistedKeys()) {
|
||||
const target = Persist.draft(draftID, key)
|
||||
removePersisted(key === "prompt" ? Persist.prompt(target) : target, platform)
|
||||
}
|
||||
for (const key of draftPersistedKeys()) removePersisted(Persist.draft(draftID, key), platform)
|
||||
}
|
||||
|
||||
const removeInfo = (key: string) => {
|
||||
|
||||
+16
-11
@@ -4,9 +4,9 @@ import * as Sentry from "@sentry/solid"
|
||||
import { render } from "solid-js/web"
|
||||
import { AppBaseProviders, AppInterface } from "@/app"
|
||||
import { type Platform, PlatformProvider } from "@/context/platform"
|
||||
import { createBrowserDraftStore } from "@/utils/draft-store"
|
||||
import { dict as en } from "@/i18n/en"
|
||||
import { dict as zh } from "@/i18n/zh"
|
||||
import { handleNotificationClick } from "@/utils/notification-click"
|
||||
import { authFromToken } from "@/utils/server"
|
||||
import pkg from "../package.json"
|
||||
import { ServerConnection } from "./context/server"
|
||||
@@ -54,7 +54,7 @@ const setStorage = (key: string, value: string | null) => {
|
||||
const readDefaultServerUrl = () => getStorage(DEFAULT_SERVER_URL_KEY)
|
||||
const writeDefaultServerUrl = (url: string | null) => setStorage(DEFAULT_SERVER_URL_KEY, url)
|
||||
|
||||
const notify: Platform["notify"] = async (title, description, onClick) => {
|
||||
const notify: Platform["notify"] = async (title, description, href) => {
|
||||
if (!("Notification" in window)) return
|
||||
|
||||
const permission =
|
||||
@@ -73,17 +73,21 @@ const notify: Platform["notify"] = async (title, description, onClick) => {
|
||||
})
|
||||
|
||||
notification.onclick = () => {
|
||||
window.focus()
|
||||
onClick?.()
|
||||
handleNotificationClick(href)
|
||||
notification.close()
|
||||
}
|
||||
}
|
||||
|
||||
const openExternal: Platform["openExternal"] = (value) => {
|
||||
if (!URL.canParse(value)) return
|
||||
const url = new URL(value)
|
||||
if (url.protocol !== "http:" && url.protocol !== "https:" && url.protocol !== "mailto:") return
|
||||
window.open(url.href, "_blank", "noopener,noreferrer")
|
||||
const openLink: Platform["openLink"] = (url) => {
|
||||
window.open(url, "_blank")
|
||||
}
|
||||
|
||||
const back: Platform["back"] = () => {
|
||||
window.history.back()
|
||||
}
|
||||
|
||||
const forward: Platform["forward"] = () => {
|
||||
window.history.forward()
|
||||
}
|
||||
|
||||
const restart: Platform["restart"] = async () => {
|
||||
@@ -117,9 +121,10 @@ const clearAuthToken = () => {
|
||||
|
||||
const platform: Platform = {
|
||||
platform: "web",
|
||||
draftStore: createBrowserDraftStore(),
|
||||
version: pkg.version,
|
||||
openExternal,
|
||||
openLink,
|
||||
back,
|
||||
forward,
|
||||
restart,
|
||||
notify,
|
||||
getDefaultServer: async () => {
|
||||
|
||||
+82
-101
@@ -59,16 +59,16 @@ export const dict = {
|
||||
"command.message.next.description": "انتقل إلى رسالة المستخدم التالية",
|
||||
"command.model.choose": "اختيار نموذج",
|
||||
"command.model.choose.description": "حدد نموذجًا مختلفًا",
|
||||
"command.mcp.toggle": "تبديل خوادم MCP",
|
||||
"command.mcp.toggle.description": "تبديل خوادم MCP",
|
||||
"command.mcp.toggle": "تبديل MCPs",
|
||||
"command.mcp.toggle.description": "تبديل MCPs",
|
||||
"command.agent.cycle": "تغيير الوكيل",
|
||||
"command.agent.cycle.description": "التبديل إلى الوكيل التالي",
|
||||
"command.agent.cycle.reverse": "تغيير الوكيل للخلف",
|
||||
"command.agent.cycle.reverse.description": "التبديل إلى الوكيل السابق",
|
||||
"command.model.variant.cycle": "تغيير جهد الاستدلال",
|
||||
"command.model.variant.cycle": "تغيير جهد التفكير",
|
||||
"command.model.variant.cycle.description": "التبديل إلى مستوى الجهد التالي",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "موجّه",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "قبول الأذونات تلقائيًا",
|
||||
"command.permissions.autoaccept.disable": "إيقاف قبول الأذونات تلقائيًا",
|
||||
"command.workspace.toggle": "تبديل مساحات العمل",
|
||||
@@ -94,14 +94,13 @@ export const dict = {
|
||||
"dialog.provider.empty": "لم يتم العثور على موفرين",
|
||||
"dialog.provider.group.popular": "شائع",
|
||||
"dialog.provider.group.other": "آخر",
|
||||
"dialog.provider.custom.label": "موفر مخصص متوافق مع OpenAI",
|
||||
"dialog.provider.tag.recommended": "موصى به",
|
||||
"dialog.provider.opencode.note": "نماذج مختارة تتضمن Claude و GPT و Gemini والمزيد",
|
||||
"dialog.provider.opencode.tagline": "نماذج موثوقة ومحسنة",
|
||||
"dialog.provider.opencodeGo.tagline": "اشتراك منخفض التكلفة للجميع",
|
||||
"dialog.provider.anthropic.note": "وصول مباشر إلى نماذج Claude، بما فيها Pro و Max",
|
||||
"dialog.provider.copilot.note": "نماذج ذكاء اصطناعي للمساعدة في البرمجة عبر GitHub Copilot",
|
||||
"dialog.provider.openai.note": "نماذج GPT لمهام الذكاء الاصطناعي العامة السريعة والمتقدمة",
|
||||
"dialog.provider.anthropic.note": "اتصل باستخدام Claude Pro/Max أو مفتاح API",
|
||||
"dialog.provider.copilot.note": "اتصل باستخدام Copilot أو مفتاح API",
|
||||
"dialog.provider.openai.note": "اتصل باستخدام ChatGPT Pro/Plus أو مفتاح API",
|
||||
"dialog.provider.google.note": "نماذج Gemini لاستجابات سريعة ومنظمة",
|
||||
"dialog.provider.openrouter.note": "الوصول إلى جميع النماذج المدعومة من موفر واحد",
|
||||
"dialog.provider.vercel.note": "وصول موحد إلى نماذج الذكاء الاصطناعي مع توجيه ذكي",
|
||||
@@ -113,9 +112,8 @@ export const dict = {
|
||||
"dialog.model.manage.provider.toggle": "تبديل جميع نماذج {{provider}}",
|
||||
"dialog.model.unpaid.freeModels.title": "نماذج مجانية مقدمة من OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "إضافة المزيد من النماذج من موفرين مشهورين",
|
||||
"dialog.model.unpaid.viewMoreProviders": "عرض أكثر من 70 موفرًا إضافيًا",
|
||||
"dialog.provider.viewAll": "عرض المزيد من الموفرين",
|
||||
"provider.connect.title": "الاتصال بـ {{provider}}",
|
||||
"provider.connect.title": "اتصال {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "تسجيل الدخول باستخدام Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "حدد طريقة تسجيل الدخول لـ {{provider}}.",
|
||||
"provider.connect.method.apiKey": "مفتاح API",
|
||||
@@ -123,8 +121,8 @@ export const dict = {
|
||||
"provider.connect.status.waiting": "في انتظار التفويض...",
|
||||
"provider.connect.status.failed": "فشل التفويض: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"أدخل مفتاح API الخاص بـ {{provider}} لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
|
||||
"provider.connect.apiKey.label": "مفتاح API لـ {{provider}}",
|
||||
"أدخل مفتاح واجهة برمجة تطبيقات {{provider}} الخاص بك لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
|
||||
"provider.connect.apiKey.label": "مفتاح واجهة برمجة تطبيقات {{provider}}",
|
||||
"provider.connect.apiKey.placeholder": "مفتاح API",
|
||||
"provider.connect.apiKey.required": "مفتاح API مطلوب",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
@@ -198,26 +196,26 @@ export const dict = {
|
||||
"model.input.image": "صورة",
|
||||
"model.input.audio": "صوت",
|
||||
"model.input.video": "فيديو",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "يسمح: {{inputs}}",
|
||||
"model.tooltip.context.label": "السياق",
|
||||
"model.tooltip.inputs": "المدخلات",
|
||||
"model.tooltip.model": "النموذج",
|
||||
"model.tooltip.provider": "الموفر",
|
||||
"model.tooltip.reasoning": "الاستدلال",
|
||||
"model.tooltip.reasoning.allowed": "يدعم الاستدلال",
|
||||
"model.tooltip.reasoning.none": "بدون استدلال",
|
||||
"model.tooltip.reasoning": "الاستنتاج",
|
||||
"model.tooltip.reasoning.allowed": "يسمح بالاستنتاج",
|
||||
"model.tooltip.reasoning.none": "بدون استنتاج",
|
||||
"model.tooltip.context": "حد السياق {{limit}}",
|
||||
"common.search.placeholder": "بحث",
|
||||
"common.goBack": "رجوع",
|
||||
"common.goForward": "التقدم",
|
||||
"common.goForward": "انتقل للأمام",
|
||||
"common.loading": "جارٍ التحميل",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "إلغاء",
|
||||
"common.clear": "مسح",
|
||||
"common.connect": "اتصال",
|
||||
"common.disconnect": "قطع الاتصال",
|
||||
"common.continue": "متابعة",
|
||||
"common.continue": "إرسال",
|
||||
"common.submit": "إرسال",
|
||||
"common.save": "حفظ",
|
||||
"common.saving": "جارٍ الحفظ...",
|
||||
@@ -229,7 +227,7 @@ export const dict = {
|
||||
"prompt.placeholder.summarizeComments": "لخّص التعليقات…",
|
||||
"prompt.placeholder.summarizeComment": "لخّص التعليق…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "موجّه",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "esc للخروج",
|
||||
"session.child.promptDisabled": "لا يمكن إرسال موجّهات إلى جلسات الوكلاء الفرعيين.",
|
||||
"session.child.backToParent": "العودة إلى الجلسة الرئيسية.",
|
||||
@@ -251,17 +249,17 @@ export const dict = {
|
||||
"prompt.example.16": "إضافة معالجة الأخطاء لهذه الدالة",
|
||||
"prompt.example.17": "اشرح نمط regex هذا",
|
||||
"prompt.example.18": "تحويل هذا إلى TypeScript",
|
||||
"prompt.example.19": "إضافة التسجيل في جميع أنحاء قاعدة التعليمات البرمجية",
|
||||
"prompt.example.19": "إضافة تسجيل الدخول (logging) في جميع أنحاء قاعدة التعليمات البرمجية",
|
||||
"prompt.example.20": "ما هي التبعيات القديمة؟",
|
||||
"prompt.example.21": "ساعدني في كتابة برنامج نصي للترحيل",
|
||||
"prompt.example.22": "تنفيذ التخزين المؤقت لنقطة النهاية هذه",
|
||||
"prompt.example.21": "ساعدني في كتابة برنامج نصي للهجرة",
|
||||
"prompt.example.22": "تنفيذ التخزين المؤقت لهذه النقطة النهائية",
|
||||
"prompt.example.23": "إضافة ترقيم الصفحات إلى هذه القائمة",
|
||||
"prompt.example.24": "إنشاء أمر CLI لـ...",
|
||||
"prompt.example.25": "كيف تعمل متغيرات البيئة هنا؟",
|
||||
"prompt.popover.emptyResults": "لا توجد نتائج مطابقة",
|
||||
"prompt.popover.emptyCommands": "لا توجد أوامر مطابقة",
|
||||
"prompt.dropzone.label": "أفلت الصور أو ملفات PDF أو الملفات النصية هنا",
|
||||
"prompt.dropzone.file.label": "أفلت الملف للإشارة إليه باستخدام @",
|
||||
"prompt.dropzone.file.label": "أفلت لإشارة @ للملف",
|
||||
"prompt.slash.badge.custom": "مخصص",
|
||||
"prompt.slash.badge.skill": "مهارة",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
@@ -269,7 +267,7 @@ export const dict = {
|
||||
"prompt.context.includeActiveFile": "تضمين الملف النشط",
|
||||
"prompt.context.removeActiveFile": "إزالة الملف النشط من السياق",
|
||||
"prompt.context.removeFile": "إزالة الملف من السياق",
|
||||
"prompt.action.attachFile": "إضافة ملفات",
|
||||
"prompt.action.attachFile": "إرفاق ملف",
|
||||
"prompt.menu.addImagesAndFiles": "إضافة ملفات والمزيد",
|
||||
"prompt.menu.imagesAndFiles": "الصور والملفات",
|
||||
"prompt.menu.commands": "الأوامر",
|
||||
@@ -277,9 +275,8 @@ export const dict = {
|
||||
"prompt.menu.shellCommand": "أمر shell",
|
||||
"prompt.attachment.remove": "إزالة المرفق",
|
||||
"prompt.action.send": "إرسال",
|
||||
"prompt.action.stop": "إيقاف",
|
||||
"prompt.action.stop": "توقف",
|
||||
"prompt.toast.pasteUnsupported.title": "مرفق غير مدعوم",
|
||||
"prompt.toast.attachmentDuplicate.title": "تم تحميل هذا الملف بالفعل",
|
||||
"prompt.toast.pasteUnsupported.description": "يمكن إرفاق الصور أو ملفات PDF أو الملفات النصية فقط هنا.",
|
||||
"prompt.toast.modelAgentRequired.title": "حدد وكيلاً ونموذجاً",
|
||||
"prompt.toast.modelAgentRequired.description": "اختر وكيلاً ونموذجاً قبل إرسال الموجه.",
|
||||
@@ -289,10 +286,10 @@ export const dict = {
|
||||
"prompt.toast.commandSendFailed.title": "فشل إرسال الأمر",
|
||||
"prompt.toast.promptSendFailed.title": "فشل إرسال الموجه",
|
||||
"prompt.toast.promptSendFailed.description": "تعذر استرداد الجلسة",
|
||||
"dialog.mcp.title": "خوادم MCP",
|
||||
"dialog.mcp.description": "تم تفعيل {{enabled}} من أصل {{total}}",
|
||||
"dialog.mcp.empty": "لم يتم تكوين أي خوادم MCP",
|
||||
"dialog.lsp.empty": "تُكتشف خوادم LSP تلقائيًا من أنواع الملفات",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "{{enabled}} من {{total}} مفعل",
|
||||
"dialog.mcp.empty": "لم يتم تكوين MCPs",
|
||||
"dialog.lsp.empty": "تم الكشف تلقائيًا عن LSPs من أنواع الملفات",
|
||||
"dialog.plugins.empty": "الإضافات المكونة في opencode.json",
|
||||
"mcp.status.connected": "متصل",
|
||||
"mcp.status.failed": "فشل",
|
||||
@@ -411,35 +408,35 @@ export const dict = {
|
||||
"dialog.project.edit.icon.recommended": "موصى به: 128x128px",
|
||||
"dialog.project.edit.color": "لون",
|
||||
"dialog.project.edit.color.select": "اختر لون {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "برنامج نصي لبدء تشغيل مساحة العمل",
|
||||
"dialog.project.edit.worktree.startup": "سكريبت بدء تشغيل مساحة العمل",
|
||||
"dialog.project.edit.worktree.startup.description": "يتم تشغيله بعد إنشاء مساحة عمل جديدة (شجرة عمل).",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "مثال: bun install",
|
||||
"context.breakdown.title": "تفصيل السياق",
|
||||
"context.breakdown.note": 'تفصيل تقريبي لرموز الإدخال المميزة. يشمل "أخرى" تعريفات الأدوات والأعباء الإضافية.',
|
||||
"context.breakdown.note": 'تفصيل تقريبي لرموز الإدخال. يشمل "أخرى" تعريفات الأدوات والنفقات العامة.',
|
||||
"context.breakdown.system": "النظام",
|
||||
"context.breakdown.user": "المستخدم",
|
||||
"context.breakdown.assistant": "المساعد",
|
||||
"context.breakdown.tool": "استدعاءات الأدوات",
|
||||
"context.breakdown.tool": "استدعاءات الأداة",
|
||||
"context.breakdown.other": "أخرى",
|
||||
"context.systemPrompt.title": "موجّه النظام",
|
||||
"context.systemPrompt.title": "موجه النظام",
|
||||
"context.rawMessages.title": "الرسائل الخام",
|
||||
"context.stats.session": "جلسة",
|
||||
"context.stats.messages": "رسائل",
|
||||
"context.stats.provider": "موفر",
|
||||
"context.stats.model": "نموذج",
|
||||
"context.stats.limit": "حد السياق",
|
||||
"context.stats.totalTokens": "إجمالي الرموز المميزة",
|
||||
"context.stats.totalTokens": "إجمالي الرموز",
|
||||
"context.stats.usage": "استخدام",
|
||||
"context.stats.inputTokens": "رموز الإدخال المميزة",
|
||||
"context.stats.outputTokens": "رموز الإخراج المميزة",
|
||||
"context.stats.reasoningTokens": "رموز الاستدلال المميزة",
|
||||
"context.stats.cacheTokens": "رموز التخزين المؤقت المميزة (قراءة/كتابة)",
|
||||
"context.stats.inputTokens": "رموز الإدخال",
|
||||
"context.stats.outputTokens": "رموز الإخراج",
|
||||
"context.stats.reasoningTokens": "رموز الاستنتاج",
|
||||
"context.stats.cacheTokens": "رموز التخزين المؤقت (قراءة/كتابة)",
|
||||
"context.stats.userMessages": "رسائل المستخدم",
|
||||
"context.stats.assistantMessages": "رسائل المساعد",
|
||||
"context.stats.totalCost": "التكلفة الإجمالية",
|
||||
"context.stats.sessionCreated": "تم إنشاء الجلسة",
|
||||
"context.stats.lastActivity": "آخر نشاط",
|
||||
"context.usage.tokens": "الرموز المميزة",
|
||||
"context.usage.tokens": "رموز",
|
||||
"context.usage.usage": "استخدام",
|
||||
"context.usage.cost": "تكلفة",
|
||||
"context.usage.clickToView": "انقر لعرض السياق",
|
||||
@@ -467,9 +464,9 @@ export const dict = {
|
||||
"toast.theme.title": "تم تبديل السمة",
|
||||
"toast.scheme.title": "مخطط الألوان",
|
||||
"toast.workspace.enabled.title": "تم تمكين مساحات العمل",
|
||||
"toast.workspace.enabled.description": "تُعرض الآن عدة أشجار عمل في الشريط الجانبي",
|
||||
"toast.workspace.enabled.description": "الآن يتم عرض عدة worktrees في الشريط الجانبي",
|
||||
"toast.workspace.disabled.title": "تم تعطيل مساحات العمل",
|
||||
"toast.workspace.disabled.description": "تُعرض شجرة العمل الرئيسية فقط في الشريط الجانبي",
|
||||
"toast.workspace.disabled.description": "يتم عرض worktree الرئيسي فقط في الشريط الجانبي",
|
||||
"toast.permissions.autoaccept.on.title": "يتم قبول الأذونات تلقائيًا",
|
||||
"toast.permissions.autoaccept.on.description": "ستتم الموافقة على طلبات الأذونات تلقائيًا",
|
||||
"toast.permissions.autoaccept.off.title": "تم إيقاف قبول الأذونات تلقائيًا",
|
||||
@@ -491,7 +488,7 @@ export const dict = {
|
||||
"toast.session.unshare.failed.description": "حدث خطأ أثناء إلغاء مشاركة الجلسة",
|
||||
"toast.session.listFailed.title": "فشل تحميل الجلسات لـ {{project}}",
|
||||
"toast.update.title": "تحديث متاح",
|
||||
"toast.update.description": "يتوفر الآن إصدار جديد من OpenCode ({{version}}) للتثبيت.",
|
||||
"toast.update.description": "نسخة جديدة من OpenCode ({{version}}) متاحة الآن للتثبيت.",
|
||||
"toast.update.action.installRestart": "تثبيت وإعادة تشغيل",
|
||||
"toast.update.action.notYet": "ليس الآن",
|
||||
"error.page.title": "حدث خطأ ما",
|
||||
@@ -511,7 +508,7 @@ export const dict = {
|
||||
"error.dev.rootNotFound":
|
||||
"لم يتم العثور على العنصر الجذري. هل نسيت إضافته إلى index.html؟ أو ربما تمت كتابة سمة id بشكل خاطئ؟",
|
||||
"error.serverSync.connectFailed": "تعذر الاتصال بالخادم. هل هناك خادم يعمل في `{{url}}`؟",
|
||||
"directory.error.invalidUrl": "مجلد غير صالح في عنوان URL.",
|
||||
"directory.error.invalidUrl": "دليل غير صالح في عنوان URL.",
|
||||
"error.chain.unknown": "خطأ غير معروف",
|
||||
"error.chain.causedBy": "بسبب:",
|
||||
"error.chain.apiError": "خطأ API",
|
||||
@@ -539,7 +536,7 @@ export const dict = {
|
||||
"notification.session.responseReady.title": "الاستجابة جاهزة",
|
||||
"notification.session.error.title": "خطأ في الجلسة",
|
||||
"notification.session.error.fallbackDescription": "حدث خطأ",
|
||||
"home.recentProjects": "المشاريع الأخيرة",
|
||||
"home.recentProjects": "المشاريع الحديثة",
|
||||
"home.empty.title": "لا توجد مشاريع حديثة",
|
||||
"home.empty.description": "ابدأ بفتح مشروع محلي",
|
||||
"home.title": "الرئيسية",
|
||||
@@ -557,7 +554,7 @@ export const dict = {
|
||||
"home.sessions.group.today": "اليوم",
|
||||
"home.sessions.group.yesterday": "أمس",
|
||||
"home.sessions.group.older": "الأقدم",
|
||||
"home.providerTip": "اتصل بأكثر من 75 موفرًا لاستخدام نماذج أخرى، بما فيها Claude وGPT وGemini وغيرها",
|
||||
"home.providerTip": "اتصل بأكثر من 75 مزودًا لاستخدام نماذج أخرى، بما فيها Claude وGPT وGemini وغيرها",
|
||||
"session.tab.session": "جلسة",
|
||||
"session.tab.review": "مراجعة",
|
||||
"session.tab.context": "سياق",
|
||||
@@ -567,7 +564,7 @@ export const dict = {
|
||||
"session.error.notFound.description": "يشير هذا التبويب إلى جلسة لم تعد موجودة على هذا الخادم.",
|
||||
"session.error.notFound.closeTab": "إغلاق علامة التبويب",
|
||||
"session.error.serverConnection": "تعذر الاتصال بهذا الخادم",
|
||||
"session.review.filesChanged": "الملفات المتغيرة: {{count}}",
|
||||
"session.review.filesChanged": "تم تغيير {{count}} ملفات",
|
||||
"session.review.change.one": "تغيير",
|
||||
"session.review.change.other": "تغييرات",
|
||||
"session.review.loadingChanges": "جارٍ تحميل التغييرات...",
|
||||
@@ -575,7 +572,7 @@ export const dict = {
|
||||
"session.review.noChanges": "لا توجد تغييرات",
|
||||
"session.review.noUncommittedChanges": "لا توجد تغييرات غير مُودَعة بعد",
|
||||
"session.review.noBranchChanges": "لا توجد تغييرات في الفرع بعد",
|
||||
"session.review.noVcs": "لم يُكتشف نظام Git للتحكم في الإصدارات، لذا لن تُعرض التغييرات",
|
||||
"session.review.noVcs": "لم يتم اكتشاف نظام التحكم في الإصدار Git، لن يتم عرض التغييرات",
|
||||
"session.review.noSnapshot": "تم تعطيل تتبع اللقطات في التكوين، لذا فإن تغييرات الجلسة غير متوفرة",
|
||||
"session.files.selectToOpen": "اختر ملفًا لفتحه",
|
||||
"session.files.all": "كل الملفات",
|
||||
@@ -593,26 +590,14 @@ export const dict = {
|
||||
"session.question.minimize": "تصغير السؤال",
|
||||
"session.question.restore": "استعادة السؤال",
|
||||
"session.question.pending.one": "{{count}} سؤال معلق",
|
||||
"session.question.pending.zero": "عدد الأسئلة المعلقة: {{count}}",
|
||||
"session.question.pending.two": "عدد الأسئلة المعلقة: {{count}}",
|
||||
"session.question.pending.few": "{{count}} أسئلة معلقة",
|
||||
"session.question.pending.many": "{{count}} سؤالًا معلقًا",
|
||||
"session.question.pending.other": "الأسئلة المعلقة: {{count}}",
|
||||
"session.followupDock.summary.one": "{{count}} رسالة في قائمة الانتظار",
|
||||
"session.followupDock.summary.zero": "عدد الرسائل في قائمة الانتظار: {{count}}",
|
||||
"session.followupDock.summary.two": "عدد الرسائل في قائمة الانتظار: {{count}}",
|
||||
"session.followupDock.summary.few": "{{count}} رسائل في قائمة الانتظار",
|
||||
"session.followupDock.summary.many": "{{count}} رسالةً في قائمة الانتظار",
|
||||
"session.followupDock.summary.other": "{{count}} رسائل في قائمة الانتظار",
|
||||
"session.followupDock.summary.one": "{{count}} رسالة في الانتظار",
|
||||
"session.followupDock.summary.other": "{{count}} رسائل في الانتظار",
|
||||
"session.followupDock.sendNow": "إرسال الآن",
|
||||
"session.followupDock.edit": "تحرير",
|
||||
"session.followupDock.collapse": "طي الرسائل المنتظرة",
|
||||
"session.followupDock.expand": "توسيع الرسائل المنتظرة",
|
||||
"session.revertDock.summary.one": "{{count}} رسالة تم التراجع عنها",
|
||||
"session.revertDock.summary.zero": "عدد الرسائل التي تم التراجع عنها: {{count}}",
|
||||
"session.revertDock.summary.two": "عدد الرسائل التي تم التراجع عنها: {{count}}",
|
||||
"session.revertDock.summary.few": "{{count}} رسائل تم التراجع عنها",
|
||||
"session.revertDock.summary.many": "{{count}} رسالةً تم التراجع عنها",
|
||||
"session.revertDock.summary.other": "{{count}} رسائل تم التراجع عنها",
|
||||
"session.revertDock.collapse": "طي الرسائل التي تم التراجع عنها",
|
||||
"session.revertDock.expand": "توسيع الرسائل التي تم التراجع عنها",
|
||||
@@ -665,10 +650,10 @@ export const dict = {
|
||||
"terminal.connectionLost.title": "فقد الاتصال",
|
||||
"terminal.connectionLost.description": "انقطع اتصال المحطة الطرفية. يمكن أن يحدث هذا عند إعادة تشغيل الخادم.",
|
||||
"common.closeTab": "إغلاق علامة التبويب",
|
||||
"common.dismiss": "إهمال",
|
||||
"common.dismiss": "رفض",
|
||||
"common.requestFailed": "فشل الطلب",
|
||||
"common.moreOptions": "مزيد من الخيارات",
|
||||
"common.learnMore": "اطّلع على المزيد",
|
||||
"common.learnMore": "اعرف المزيد",
|
||||
"common.rename": "إعادة تسمية",
|
||||
"common.reset": "إعادة تعيين",
|
||||
"common.archive": "أرشفة",
|
||||
@@ -686,7 +671,7 @@ export const dict = {
|
||||
"sidebar.gettingStarted.title": "البدء",
|
||||
"sidebar.gettingStarted.line1": "يتضمن OpenCode نماذج مجانية حتى تتمكن من البدء فورًا.",
|
||||
"sidebar.gettingStarted.line2": "قم بتوصيل أي موفر لاستخدام النماذج، بما في ذلك Claude و GPT و Gemini وما إلى ذلك.",
|
||||
"sidebar.project.recentSessions": "الجلسات الأخيرة",
|
||||
"sidebar.project.recentSessions": "الجلسات الحديثة",
|
||||
"sidebar.project.viewAllSessions": "عرض جميع الجلسات",
|
||||
"sidebar.project.clearNotifications": "مسح الإشعارات",
|
||||
"sidebar.empty.title": "لا توجد مشاريع مفتوحة",
|
||||
@@ -705,7 +690,7 @@ export const dict = {
|
||||
"settings.general.section.updates": "التحديثات",
|
||||
"settings.general.section.sounds": "المؤثرات الصوتية",
|
||||
"settings.general.section.feed": "الخلاصة",
|
||||
"settings.general.section.display": "العرض",
|
||||
"settings.general.section.display": "شاشة العرض",
|
||||
"settings.general.row.language.title": "اللغة",
|
||||
"settings.general.row.language.description": "تغيير لغة العرض لـ OpenCode",
|
||||
"settings.general.row.shell.title": "Shell المحطة الطرفية",
|
||||
@@ -742,11 +727,10 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "التنقل السفلي",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"وضع شريط العنوان وعلامات تبويب الجلسات أسفل الشاشة على الأجهزة المحمولة",
|
||||
"settings.general.row.showCustomAgents.title": "إظهار الوكيل",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"التبديل بين الوكلاء في محرر الرسائل. عند إخفائه، يُستخدم وكيل Build افتراضيًا.",
|
||||
"settings.general.row.reasoningSummaries.title": "إظهار ملخصات الاستدلال",
|
||||
"settings.general.row.reasoningSummaries.description": "عرض ملخصات استدلال النموذج في الشريط الزمني",
|
||||
"settings.general.row.showCustomAgents.title": "الوكلاء المخصصون",
|
||||
"settings.general.row.showCustomAgents.description": "إظهار محدد الوكلاء في محرر الرسائل",
|
||||
"settings.general.row.reasoningSummaries.title": "إظهار ملخصات الاستنتاج",
|
||||
"settings.general.row.reasoningSummaries.description": "عرض ملخصات استنتاج النموذج في الشريط الزمني",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "توسيع أجزاء أداة shell",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"إظهار أجزاء أداة shell موسعة بشكل افتراضي في الشريط الزمني",
|
||||
@@ -759,12 +743,11 @@ export const dict = {
|
||||
"استخدم علامات التبويب الجديدة وتخطيط الصفحة الرئيسية. يمكنك التبديل بين التخطيطات لفترة محدودة.",
|
||||
"settings.general.row.newInterfaceNotice.title": "أنت تستخدم الآن التخطيط الجديد",
|
||||
"settings.general.row.newInterfaceNotice.description": "التخطيط السابق لم يعد متاحًا",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "إهمال",
|
||||
"settings.general.row.pinchZoom.title": "التكبير بالمقاربة والمباعدة",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"السماح بإيماءات مقاربة الأصابع ومباعدتها على لوحة التعقب والتمرير مع الضغط على Ctrl للتكبير",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "رفض",
|
||||
"settings.general.row.pinchZoom.title": "التكبير بإيماءة القرص",
|
||||
"settings.general.row.pinchZoom.description": "السماح بإيماءة القرص على لوحة اللمس وإيماءة Ctrl-scroll للتكبير",
|
||||
"settings.general.row.wayland.title": "استخدام Wayland الأصلي",
|
||||
"settings.general.row.wayland.description": "تعطيل الرجوع إلى X11 على Wayland. يتطلب إعادة التشغيل.",
|
||||
"settings.general.row.wayland.description": "تعطيل التراجع إلى X11 على Wayland. يتطلب إعادة التشغيل.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"على Linux مع شاشات بمعدلات تحديث مختلطة، يمكن أن يكون Wayland الأصلي أكثر استقرارًا.",
|
||||
"settings.general.row.releaseNotes.title": "ملاحظات الإصدار",
|
||||
@@ -777,7 +760,7 @@ export const dict = {
|
||||
"settings.updates.action.checking": "جارٍ التحقق...",
|
||||
"settings.updates.action.downloading": "جارٍ التنزيل...",
|
||||
"settings.updates.action.installing": "جارٍ التثبيت...",
|
||||
"settings.updates.toast.latest.title": "لديك أحدث إصدار",
|
||||
"settings.updates.toast.latest.title": "أنت على آخر إصدار",
|
||||
"settings.updates.toast.latest.description": "أنت تستخدم أحدث إصدار من OpenCode.",
|
||||
"sound.option.none": "بلا",
|
||||
"sound.option.alert01": "تنبيه 01",
|
||||
@@ -839,17 +822,17 @@ export const dict = {
|
||||
"settings.general.sounds.errors.description": "تشغيل صوت عند حدوث خطأ",
|
||||
"settings.shortcuts.title": "اختصارات لوحة المفاتيح",
|
||||
"settings.shortcuts.reset.button": "إعادة التعيين إلى الافتراضيات",
|
||||
"settings.shortcuts.reset.toast.title": "أُعيد تعيين الاختصارات",
|
||||
"settings.shortcuts.reset.toast.description": "أُعيد تعيين اختصارات لوحة المفاتيح إلى الإعدادات الافتراضية.",
|
||||
"settings.shortcuts.reset.toast.title": "تم إعادة تعيين الاختصارات",
|
||||
"settings.shortcuts.reset.toast.description": "تم إعادة تعيين اختصارات لوحة المفاتيح إلى الافتراضيات.",
|
||||
"settings.shortcuts.conflict.title": "الاختصار قيد الاستخدام بالفعل",
|
||||
"settings.shortcuts.conflict.description": "الاختصار {{keybind}} مخصص بالفعل لـ {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "غير مخصص",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} معين بالفعل لـ {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "غير معين",
|
||||
"settings.shortcuts.pressKeys": "اضغط على المفاتيح",
|
||||
"settings.shortcuts.search.placeholder": "البحث في الاختصارات",
|
||||
"settings.shortcuts.search.empty": "لم يتم العثور على اختصارات",
|
||||
"settings.shortcuts.group.general": "عام",
|
||||
"settings.shortcuts.group.session": "جلسة",
|
||||
"settings.shortcuts.group.navigation": "التنقل",
|
||||
"settings.shortcuts.group.navigation": "تصفح",
|
||||
"settings.shortcuts.group.modelAndAgent": "النموذج والوكيل",
|
||||
"settings.shortcuts.group.terminal": "المحطة الطرفية",
|
||||
"settings.shortcuts.group.prompt": "موجه",
|
||||
@@ -874,18 +857,19 @@ export const dict = {
|
||||
"settings.permissions.description": "تحكم في الأدوات التي يمكن للخادم استخدامها بشكل افتراضي.",
|
||||
"settings.permissions.section.tools": "الأدوات",
|
||||
"settings.permissions.toast.updateFailed.title": "فشل تحديث الأذونات",
|
||||
"settings.permissions.action.allow": "السماح",
|
||||
"settings.permissions.action.ask": "طلب الإذن",
|
||||
"settings.permissions.action.deny": "الرفض",
|
||||
"settings.permissions.action.allow": "سماح",
|
||||
"settings.permissions.action.ask": "سؤال",
|
||||
"settings.permissions.action.deny": "رفض",
|
||||
"settings.permissions.tool.read.title": "قراءة",
|
||||
"settings.permissions.tool.read.description": "قراءة ملف (يطابق مسار الملف)",
|
||||
"settings.permissions.tool.edit.title": "تحرير",
|
||||
"settings.permissions.tool.edit.description": "تعديل الملفات، بما في ذلك عمليات التحرير والكتابة وتطبيق الرقع",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"تعديل الملفات، بما في ذلك التحرير والكتابة والتصحيحات والتحرير المتعدد",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "مطابقة الملفات باستخدام أنماط glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "البحث في محتويات الملف باستخدام التعبيرات العادية",
|
||||
"settings.permissions.tool.list.title": "سرد",
|
||||
"settings.permissions.tool.list.title": "قائمة",
|
||||
"settings.permissions.tool.list.description": "سرد الملفات داخل دليل",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "تشغيل أوامر shell",
|
||||
@@ -903,7 +887,7 @@ export const dict = {
|
||||
"settings.permissions.tool.websearch.description": "البحث في الويب",
|
||||
"settings.permissions.tool.external_directory.title": "دليل خارجي",
|
||||
"settings.permissions.tool.external_directory.description": "الوصول إلى الملفات خارج دليل المشروع",
|
||||
"settings.permissions.tool.doom_loop.title": "حلقة مفرغة",
|
||||
"settings.permissions.tool.doom_loop.title": "حلقة الموت",
|
||||
"settings.permissions.tool.doom_loop.description": "اكتشاف استدعاءات الأدوات المتكررة بمدخلات متطابقة",
|
||||
"session.delete.failed.title": "فشل حذف الجلسة",
|
||||
"session.delete.title": "حذف الجلسة",
|
||||
@@ -911,7 +895,7 @@ export const dict = {
|
||||
"session.delete.button": "حذف الجلسة",
|
||||
"workspace.new": "مساحة عمل جديدة",
|
||||
"workspace.type.local": "محلي",
|
||||
"workspace.type.sandbox": "بيئة معزولة",
|
||||
"workspace.type.sandbox": "صندوق رمل",
|
||||
"workspace.create.failed.title": "فشل إنشاء مساحة العمل",
|
||||
"workspace.delete.failed.title": "فشل حذف مساحة العمل",
|
||||
"workspace.resetting.title": "إعادة تعيين مساحة العمل",
|
||||
@@ -921,7 +905,7 @@ export const dict = {
|
||||
"workspace.reset.success.description": "مساحة العمل تطابق الآن الفرع الافتراضي.",
|
||||
"workspace.error.stillPreparing": "مساحة العمل لا تزال قيد الإعداد",
|
||||
"workspace.status.checking": "التحقق من التغييرات غير المدمجة...",
|
||||
"workspace.status.error": "تعذر التحقق من حالة Git.",
|
||||
"workspace.status.error": "تعذر التحقق من حالة git.",
|
||||
"workspace.status.clean": "لم يتم اكتشاف تغييرات غير مدمجة.",
|
||||
"workspace.status.dirty": "تم اكتشاف تغييرات غير مدمجة في مساحة العمل هذه.",
|
||||
"workspace.delete.title": "حذف مساحة العمل",
|
||||
@@ -937,7 +921,7 @@ export const dict = {
|
||||
"common.open": "فتح",
|
||||
"dialog.releaseNotes.action.getStarted": "البدء",
|
||||
"dialog.releaseNotes.action.next": "التالي",
|
||||
"dialog.releaseNotes.action.hideFuture": "عدم إظهارها مستقبلاً",
|
||||
"dialog.releaseNotes.action.hideFuture": "عدم إظهار هذا في المستقبل",
|
||||
"dialog.releaseNotes.media.alt": "معاينة الإصدار",
|
||||
"toast.project.reloadFailed.title": "فشل في إعادة تحميل {{project}}",
|
||||
"error.server.invalidConfiguration": "تكوين غير صالح",
|
||||
@@ -947,25 +931,22 @@ export const dict = {
|
||||
"common.time.hoursAgo.short": "قبل {{count}} س",
|
||||
"common.time.daysAgo.short": "قبل {{count}} ي",
|
||||
"settings.providers.connected.environmentDescription": "متصل من متغيرات البيئة الخاصة بك",
|
||||
"settings.providers.custom.description": "أضف موفرًا متوافقًا مع OpenAI باستخدام عنوان URL الأساسي.",
|
||||
"settings.providers.custom.description": "أضف مزود متوافق مع OpenAI بواسطة عنوان URL الأساسي.",
|
||||
|
||||
"app.server.unreachable": "تعذر الوصول إلى {{server}}",
|
||||
"app.server.retrying": "جارٍ إعادة المحاولة تلقائيًا...",
|
||||
"app.server.retrying": "جاري إعادة المحاولة تلقائيًا...",
|
||||
"app.server.otherServers": "خوادم أخرى",
|
||||
"dialog.server.add.usernamePlaceholder": "اسم المستخدم",
|
||||
"dialog.server.add.passwordPlaceholder": "كلمة المرور",
|
||||
"server.row.noUsername": "لا يوجد اسم مستخدم",
|
||||
"session.review.noVcs.createGit.title": "إنشاء مستودع Git",
|
||||
"session.review.noVcs.createGit.description": "تتبع ومراجعة والتراجع عن التغييرات في هذا المشروع",
|
||||
"session.review.noVcs.createGit.actionLoading": "جارٍ إنشاء مستودع Git...",
|
||||
"session.review.noVcs.createGit.actionLoading": "جاري إنشاء مستودع Git...",
|
||||
"session.review.noVcs.createGit.action": "إنشاء مستودع Git",
|
||||
"session.todo.progress": "تم إكمال {{done}} من {{total}} مهام",
|
||||
"session.question.progress": "{{current}} من {{total}} أسئلة",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "مستكشف الملفات",
|
||||
"session.header.reveal.finder": "إظهار في Finder",
|
||||
"session.header.reveal.fileExplorer": "إظهار في مستكشف الملفات",
|
||||
"session.header.reveal.containingFolder": "فتح المجلد الحاوي",
|
||||
"session.header.open.fileManager": "مدير الملفات",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -983,9 +964,9 @@ export const dict = {
|
||||
"debugBar.ariaLabel": "تشخيص أداء التطوير",
|
||||
"debugBar.na": "غير متاح",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip": "آخر انتقال مكتمل للمسار يتضمن صفحة جلسة، مُقاسًا من بدء التوجيه حتى أول رسم بعد استقراره.",
|
||||
"debugBar.nav.tip": "آخر انتقال مكتمل للمسار يمس صفحة جلسة، مُقاسًا من بدء التوجيه حتى أول رسم بعد استقراره.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "متوسط متحرك لمعدل الإطارات في الثانية خلال آخر 5 ثوانٍ.",
|
||||
"debugBar.fps.tip": "الإطارات المتجددة في الثانية خلال آخر 5 ثوانٍ.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "أسوأ وقت للإطار خلال آخر 5 ثوانٍ.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
@@ -997,7 +978,7 @@ export const dict = {
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip": "مدة التفاعل التقريبية خلال آخر 5 ثوانٍ. هذا يشبه INP، وليس Web Vitals INP الرسمي.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "التحول التخطيطي التراكمي منذ تشغيل التطبيق الحالي.",
|
||||
"debugBar.cls.tip": "التحول التخطيطي التراكمي لعمر التطبيق الحالي.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "كومة JS المستخدمة مقابل حد الكومة. Chromium فقط.",
|
||||
"debugBar.mem.tip": "كومة JS المستخدمة مقابل حد الكومة. {{used}} من {{limit}}.",
|
||||
@@ -1016,7 +997,7 @@ export const dict = {
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "غير معروف",
|
||||
"error.page.circular": "[مرجع دائري]",
|
||||
"error.page.circular": "[دائري]",
|
||||
"error.serverSDK.noServerAvailable": "لا يوجد خادم متاح",
|
||||
"error.serverSDK.serverNotAvailable": "الخادم غير متاح",
|
||||
"error.childStore.persistedCacheCreateFailed": "فشل إنشاء ذاكرة التخزين المؤقت الدائمة",
|
||||
|
||||
@@ -1,1029 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Təklif olunan",
|
||||
"command.category.view": "Görünüş",
|
||||
"command.category.project": "Layihə",
|
||||
"command.category.provider": "Provayder",
|
||||
"command.category.server": "Server",
|
||||
"command.category.session": "Sessiya",
|
||||
"command.category.theme": "Mövzu",
|
||||
"command.category.language": "Dil",
|
||||
"command.category.file": "Fayl",
|
||||
"command.category.context": "Kontekst",
|
||||
"command.category.terminal": "Terminal",
|
||||
"command.category.model": "Model",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Agent",
|
||||
"command.category.permissions": "İcazələr",
|
||||
"command.category.workspace": "İş sahəsi",
|
||||
"command.category.settings": "Tənzimləmələr",
|
||||
"theme.scheme.system": "Sistem",
|
||||
"theme.scheme.light": "Açıq",
|
||||
"theme.scheme.dark": "Tünd",
|
||||
"command.sidebar.toggle": "Yan paneli aç/bağla",
|
||||
"command.project.open": "Layihəni aç",
|
||||
"command.project.previous": "Əvvəlki layihə",
|
||||
"command.project.next": "Növbəti layihə",
|
||||
"command.project.index": "{{index}} nömrəli layihəyə keç",
|
||||
"command.provider.connect": "Provayderi qoş",
|
||||
"command.server.switch": "Serveri dəyiş",
|
||||
"command.settings.open": "Tənzimləmələri aç",
|
||||
"command.session.previous": "Əvvəlki sessiya",
|
||||
"command.session.next": "Növbəti sessiya",
|
||||
"command.session.previous.unseen": "Əvvəlki oxunmamış sessiya",
|
||||
"command.session.next.unseen": "Növbəti oxunmamış sessiya",
|
||||
"command.session.archive": "Sessiyanı arxivlə",
|
||||
"command.palette": "Əmr paneli",
|
||||
"command.theme.cycle": "Mövzunu dəyiş",
|
||||
"command.theme.set": "Mövzudan istifadə et: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Rəng sxemini dəyiş",
|
||||
"command.theme.scheme.set": "Rəng sxemindən istifadə et: {{scheme}}",
|
||||
"command.language.cycle": "Dili dəyiş",
|
||||
"command.language.set": "Dildən istifadə et: {{language}}",
|
||||
"command.session.new": "Yeni sessiya",
|
||||
"command.file.open": "Faylı aç",
|
||||
"command.tab.close": "Tabı bağla",
|
||||
"command.tab.reopenClosed": "Bağlanmış tabı yenidən aç",
|
||||
"command.context.addSelection": "Seçimi kontekstə əlavə et",
|
||||
"command.context.addSelection.description": "Cari fayldan seçilmiş sətirləri əlavə et",
|
||||
"command.input.focus": "Giriş sahəsinə fokusla",
|
||||
"command.terminal.toggle": "Terminalı aç/bağla",
|
||||
"command.fileTree.toggle": "Fayl ağacını aç/bağla",
|
||||
"command.review.toggle": "İcmalı aç/bağla",
|
||||
"command.terminal.new": "Yeni terminal",
|
||||
"command.terminal.new.description": "Yeni terminal tabı yarat",
|
||||
"command.steps.toggle": "Addımları aç/bağla",
|
||||
"command.steps.toggle.description": "Cari mesaj üçün addımları göstər və ya gizlət",
|
||||
"command.message.previous": "Əvvəlki mesaj",
|
||||
"command.message.previous.description": "Əvvəlki istifadəçi mesajına keç",
|
||||
"command.message.next": "Növbəti mesaj",
|
||||
"command.message.next.description": "Növbəti istifadəçi mesajına keç",
|
||||
"command.model.choose": "Model seç",
|
||||
"command.model.choose.description": "Fərqli model seç",
|
||||
"command.mcp.toggle": "MCP-ləri aç/bağla",
|
||||
"command.mcp.toggle.description": "MCP-ləri aç/bağla",
|
||||
"command.agent.cycle": "Agenti dəyiş",
|
||||
"command.agent.cycle.description": "Növbəti agentə keç",
|
||||
"command.agent.cycle.reverse": "Agenti geri dəyiş",
|
||||
"command.agent.cycle.reverse.description": "Əvvəlki agentə keç",
|
||||
"command.model.variant.cycle": "Düşünmə səviyyəsini dəyiş",
|
||||
"command.model.variant.cycle.description": "Növbəti səviyyəyə keç",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "İcazələri avtomatik qəbul et",
|
||||
"command.permissions.autoaccept.disable": "İcazələrin avtomatik qəbulunu dayandır",
|
||||
"command.workspace.toggle": "İş sahələrini aç/bağla",
|
||||
"command.workspace.toggle.description": "Yan paneldə birdən çox iş sahəsini aktiv və ya deaktiv et",
|
||||
"command.session.undo": "Geri al",
|
||||
"command.session.undo.description": "Son mesajı geri al",
|
||||
"command.session.redo": "Yenidən et",
|
||||
"command.session.redo.description": "Son geri alınmış mesajı yenidən et",
|
||||
"command.session.compact": "Sessiyanı sıxlaşdır",
|
||||
"command.session.compact.description": "Kontekst həcmini azaltmaq üçün sessiyanı xülasə et",
|
||||
"command.session.fork": "Mesajdan fork et",
|
||||
"command.session.fork.description": "Əvvəlki mesajdan yeni sessiya yarat",
|
||||
"command.session.share": "Sessiyanı paylaş",
|
||||
"command.session.share.description": "Bu sessiyanı paylaş və URL-ni buferə kopyala",
|
||||
"command.session.unshare": "Sessiyanın paylaşımını dayandır",
|
||||
"command.session.unshare.description": "Bu sessiyanın paylaşımını dayandır",
|
||||
"palette.search.placeholder": "Fayl, əmr və sessiya axtar",
|
||||
"palette.search.placeholder.home": "Əmr və sessiyaları axtar",
|
||||
"palette.empty": "Nəticə tapılmadı",
|
||||
"palette.group.commands": "Əmrlər",
|
||||
"palette.group.files": "Fayllar",
|
||||
"dialog.provider.search.placeholder": "Provayderləri axtar",
|
||||
"dialog.provider.empty": "Provayder tapılmadı",
|
||||
"dialog.provider.group.popular": "Populyar",
|
||||
"dialog.provider.group.other": "Digər",
|
||||
"dialog.provider.custom.label": "Xüsusi OpenAI-a uyğun provayder",
|
||||
"dialog.provider.tag.recommended": "Tövsiyə olunan",
|
||||
"dialog.provider.opencode.note": "Claude, GPT, Gemini və daha çoxu daxil olmaqla seçilmiş modellər",
|
||||
"dialog.provider.opencode.tagline": "Etibarlı optimallaşdırılmış modellər",
|
||||
"dialog.provider.opencodeGo.tagline": "Hamı üçün aşağı qiymətli abunəlik",
|
||||
"dialog.provider.anthropic.note": "Pro və Max daxil olmaqla Claude modellərinə birbaşa giriş",
|
||||
"dialog.provider.copilot.note": "GitHub Copilot vasitəsilə kodlaşdırma yardımı üçün AI modelləri",
|
||||
"dialog.provider.openai.note": "Sürətli və bacarıqlı ümumi AI tapşırıqları üçün GPT modelləri",
|
||||
"dialog.provider.google.note": "Sürətli, strukturlaşdırılmış cavablar üçün Gemini modelləri",
|
||||
"dialog.provider.openrouter.note": "Bir provayderdən bütün dəstəklənən modellərə giriş",
|
||||
"dialog.provider.vercel.note": "Ağıllı yönləndirmə ilə AI modellərinə vahid giriş",
|
||||
"dialog.model.select.title": "Model seç",
|
||||
"dialog.model.search.placeholder": "Modelləri axtar",
|
||||
"dialog.model.empty": "Model nəticəsi yoxdur",
|
||||
"dialog.model.manage": "Modelləri idarə et",
|
||||
"dialog.model.manage.description": "Model seçicisində hansı modellərin görünəcəyini fərdiləşdir.",
|
||||
"dialog.model.manage.provider.toggle": "Bütün {{provider}} modellərini aç/bağla",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode tərəfindən təqdim olunan pulsuz modellər",
|
||||
"dialog.model.unpaid.addMore.title": "Populyar provayderlərdən daha çox model əlavə edin",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Daha 70+ provayderə baxın",
|
||||
"dialog.provider.viewAll": "Daha çox provayder göstər",
|
||||
"provider.connect.title": "{{provider}} provayderini qoş",
|
||||
"provider.connect.title.anthropicProMax": "Claude Pro/Max ilə daxil ol",
|
||||
"provider.connect.selectMethod": "{{provider}} üçün giriş üsulunu seçin.",
|
||||
"provider.connect.method.apiKey": "API açarı",
|
||||
"provider.connect.status.inProgress": "Avtorizasiya davam edir...",
|
||||
"provider.connect.status.waiting": "Avtorizasiya gözlənilir...",
|
||||
"provider.connect.status.failed": "Avtorizasiya uğursuz oldu: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Hesabınızı qoşmaq və OpenCode-da {{provider}} modellərindən istifadə etmək üçün {{provider}} API açarınızı daxil edin.",
|
||||
"provider.connect.apiKey.label": "{{provider}} API açarı",
|
||||
"provider.connect.apiKey.placeholder": "API açarı",
|
||||
"provider.connect.apiKey.required": "API açarı tələb olunur",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen sizə kodlaşdırma agentləri üçün etibarlı optimallaşdırılmış seçilmiş modellər dəstinə giriş verir.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Tək bir API açarı ilə Claude, GPT, Gemini, GLM və daha çox modellərə giriş əldə edəcəksiniz.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " səhifəsinə daxil olub API açarınızı əldə edin.",
|
||||
"provider.connect.oauth.code.visit.prefix": "",
|
||||
"provider.connect.oauth.code.visit.link": "Bu linkə",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" daxil olub hesabınızı qoşmaq və OpenCode-da {{provider}} modellərindən istifadə etmək üçün avtorizasiya kodunuzu əldə edin.",
|
||||
"provider.connect.oauth.code.label": "{{method}} avtorizasiya kodu",
|
||||
"provider.connect.oauth.code.placeholder": "Avtorizasiya kodu",
|
||||
"provider.connect.oauth.code.required": "Avtorizasiya kodu tələb olunur",
|
||||
"provider.connect.oauth.code.invalid": "Yanlış avtorizasiya kodu",
|
||||
"provider.connect.oauth.auto.visit.prefix": "",
|
||||
"provider.connect.oauth.auto.visit.link": "Bu linkə",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" daxil olub aşağıdakı kodu daxil edərək hesabınızı qoşun və OpenCode-da {{provider}} modellərindən istifadə edin.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Təsdiq kodu",
|
||||
"provider.connect.toast.connected.title": "{{provider}} qoşuldu",
|
||||
"provider.connect.toast.connected.description": "{{provider}} modelləri artıq istifadə üçün mövcuddur.",
|
||||
"provider.custom.title": "Fərdi provayder",
|
||||
"provider.custom.description.prefix": "OpenAI ilə uyğun provayderi konfiqurasiya edin. ",
|
||||
"provider.custom.description.link": "Provayder konfiqurasiyası sənədləri",
|
||||
"provider.custom.description.suffix": "nə baxın.",
|
||||
"provider.custom.field.providerID.label": "Provayder ID",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Kiçik hərflər, rəqəmlər, tire və ya alt xətt",
|
||||
"provider.custom.field.name.label": "Görünən ad",
|
||||
"provider.custom.field.name.placeholder": "Mənim AI Provayderim",
|
||||
"provider.custom.field.baseURL.label": "Əsas URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API açarı",
|
||||
"provider.custom.field.apiKey.placeholder": "API açarı",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"İstəyə bağlıdır. Autentifikasiyanı başlıqlar vasitəsilə idarə edirsinizsə, boş buraxın.",
|
||||
"provider.custom.models.label": "Modellər",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "Ad",
|
||||
"provider.custom.models.name.placeholder": "Görünən ad",
|
||||
"provider.custom.models.remove": "Modeli sil",
|
||||
"provider.custom.models.add": "Model əlavə et",
|
||||
"provider.custom.headers.label": "Başlıqlar (istəyə bağlı)",
|
||||
"provider.custom.headers.key.label": "Başlıq",
|
||||
"provider.custom.headers.key.placeholder": "Başlıq-Adı",
|
||||
"provider.custom.headers.value.label": "Dəyər",
|
||||
"provider.custom.headers.value.placeholder": "dəyər",
|
||||
"provider.custom.headers.remove": "Başlığı sil",
|
||||
"provider.custom.headers.add": "Başlıq əlavə et",
|
||||
"provider.custom.error.providerID.required": "Provayder ID tələb olunur",
|
||||
"provider.custom.error.providerID.format": "Kiçik hərflər, rəqəmlər, tire və ya alt xətt istifadə edin",
|
||||
"provider.custom.error.providerID.exists": "Bu provayder ID artıq mövcuddur",
|
||||
"provider.custom.error.name.required": "Görünən ad tələb olunur",
|
||||
"provider.custom.error.baseURL.required": "Əsas URL tələb olunur",
|
||||
"provider.custom.error.baseURL.format": "http:// və ya https:// ilə başlamalıdır",
|
||||
"provider.custom.error.required": "Tələb olunur",
|
||||
"provider.custom.error.duplicate": "Təkrar",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} ayrıldı",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}} modelləri artıq mövcud deyil.",
|
||||
"model.tag.free": "Pulsuz",
|
||||
"model.tag.latest": "Ən son",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "mətn",
|
||||
"model.input.image": "şəkil",
|
||||
"model.input.audio": "səs",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Dəstəkləyir: {{inputs}}",
|
||||
"model.tooltip.context.label": "Kontekst",
|
||||
"model.tooltip.inputs": "Girişlər",
|
||||
"model.tooltip.model": "Model",
|
||||
"model.tooltip.provider": "Provayder",
|
||||
"model.tooltip.reasoning": "Düşünmə",
|
||||
"model.tooltip.reasoning.allowed": "Düşünməni dəstəkləyir",
|
||||
"model.tooltip.reasoning.none": "Düşünmə yoxdur",
|
||||
"model.tooltip.context": "Kontekst limiti {{limit}}",
|
||||
"common.search.placeholder": "Axtar",
|
||||
"common.goBack": "Geri keç",
|
||||
"common.goForward": "İrəli keç",
|
||||
"common.loading": "Yüklənir",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Ləğv et",
|
||||
"common.clear": "Təmizlə",
|
||||
"common.open": "Aç",
|
||||
"common.connect": "Qoş",
|
||||
"common.disconnect": "Ayır",
|
||||
"common.continue": "Davam et",
|
||||
"common.submit": "Göndər",
|
||||
"common.save": "Saxla",
|
||||
"common.saving": "Saxlanılır...",
|
||||
"common.default": "Standart",
|
||||
"common.attachment": "əlavə",
|
||||
"prompt.placeholder.shell": "Qabıq əmrini daxil edin... {{example}}",
|
||||
"prompt.placeholder.normal": 'Nə istəsəniz soruşun... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Nə istəsəniz soruşun...",
|
||||
"prompt.placeholder.summarizeComments": "Şərhləri xülasə et…",
|
||||
"prompt.placeholder.summarizeComment": "Şərhi xülasə et…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "çıxmaq üçün esc",
|
||||
"session.child.promptDisabled": "Alt agent sessiyalarına prompt göndərmək olmaz.",
|
||||
"session.child.backToParent": "Əsas sessiyaya qayıt.",
|
||||
"prompt.example.1": "Kod bazasında TODO-nu həll et",
|
||||
"prompt.example.2": "Bu layihənin texnologiya yığını nədir?",
|
||||
"prompt.example.3": "Xətalı testləri düzəlt",
|
||||
"prompt.example.4": "Autentifikasiyanın necə işlədiyini izah et",
|
||||
"prompt.example.5": "Təhlükəsizlik boşluqlarını tap və düzəlt",
|
||||
"prompt.example.6": "İstifadəçi xidməti üçün vahid testləri əlavə et",
|
||||
"prompt.example.7": "Bu funksiyanı daha oxunaqlı hala gətir",
|
||||
"prompt.example.8": "Bu xəta nə deməkdir?",
|
||||
"prompt.example.9": "Bu problemi sazlamağa kömək et",
|
||||
"prompt.example.10": "API sənədləri yarat",
|
||||
"prompt.example.11": "Verilənlər bazası sorğularını optimallaşdır",
|
||||
"prompt.example.12": "Giriş doğrulaması əlavə et",
|
||||
"prompt.example.13": "Bunun üçün yeni komponent yarat...",
|
||||
"prompt.example.14": "Bu layihəni necə yerləşdirə bilərəm?",
|
||||
"prompt.example.15": "Kodumu qabaqcıl təcrübələr baxımından nəzərdən keçir",
|
||||
"prompt.example.16": "Bu funksiyaya xəta idarəetməsi əlavə et",
|
||||
"prompt.example.17": "Bu regex nümunəsini izah et",
|
||||
"prompt.example.18": "Bunu TypeScript-ə çevir",
|
||||
"prompt.example.19": "Bütün kod bazasına jurnallaşdırma əlavə et",
|
||||
"prompt.example.20": "Hansı asılılıqlar köhnəlib?",
|
||||
"prompt.example.21": "Miqrasiya skripti yazmağıma kömək et",
|
||||
"prompt.example.22": "Bu endpoint üçün keşləmə tətbiq et",
|
||||
"prompt.example.23": "Bu siyahıya səhifələmə əlavə et",
|
||||
"prompt.example.24": "Bunun üçün CLI əmri yarat...",
|
||||
"prompt.example.25": "Burada mühit dəyişənləri necə işləyir?",
|
||||
"prompt.popover.emptyResults": "Uyğun nəticə yoxdur",
|
||||
"prompt.popover.emptyCommands": "Uyğun əmr yoxdur",
|
||||
"prompt.dropzone.label": "Şəkilləri, PDF-ləri və ya mətn fayllarını bura buraxın",
|
||||
"prompt.dropzone.file.label": "Faylı @ ilə qeyd etmək üçün buraxın",
|
||||
"prompt.slash.badge.custom": "fərdi",
|
||||
"prompt.slash.badge.skill": "bacarıq",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "aktiv",
|
||||
"prompt.context.includeActiveFile": "Aktiv faylı daxil et",
|
||||
"prompt.context.removeActiveFile": "Aktiv faylı kontekstdən sil",
|
||||
"prompt.context.removeFile": "Faylı kontekstdən sil",
|
||||
"prompt.action.attachFile": "Fayllar əlavə et",
|
||||
"prompt.menu.addImagesAndFiles": "Fayllar və daha çox əlavə edin",
|
||||
"prompt.menu.imagesAndFiles": "Şəkillər və fayllar",
|
||||
"prompt.menu.commands": "Əmrlər",
|
||||
"prompt.menu.context": "Kontekst",
|
||||
"prompt.menu.shellCommand": "Shell əmri",
|
||||
"prompt.attachment.remove": "Əlavəni sil",
|
||||
"prompt.action.send": "Göndər",
|
||||
"prompt.action.stop": "Dayandır",
|
||||
"prompt.toast.pasteUnsupported.title": "Dəstəklənməyən əlavə",
|
||||
"prompt.toast.pasteUnsupported.description": "Buraya yalnız şəkillər, PDF-lər və ya mətn faylları əlavə edilə bilər.",
|
||||
"prompt.toast.attachmentDuplicate.title": "Bu fayl artıq yüklənib",
|
||||
"prompt.toast.modelAgentRequired.title": "Agent və model seçin",
|
||||
"prompt.toast.modelAgentRequired.description": "Prompt göndərməzdən əvvəl agent və model seçin.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Worktree yaradıla bilmədi",
|
||||
"prompt.toast.sessionCreateFailed.title": "Sessiya yaradıla bilmədi",
|
||||
"prompt.toast.shellSendFailed.title": "Shell əmri göndərilə bilmədi",
|
||||
"prompt.toast.commandSendFailed.title": "Əmr göndərilə bilmədi",
|
||||
"prompt.toast.promptSendFailed.title": "Prompt göndərilə bilmədi",
|
||||
"prompt.toast.promptSendFailed.description": "Sessiya əldə edilə bilmədi",
|
||||
"dialog.mcp.title": "MCP-lər",
|
||||
"dialog.mcp.description": "{{total}}-dən {{enabled}} aktiv",
|
||||
"dialog.mcp.empty": "MCP konfiqurasiya edilməyib",
|
||||
"dialog.lsp.empty": "LSP-lər fayl növlərindən avtomatik aşkarlanır",
|
||||
"dialog.plugins.empty": "Plaginlər opencode.json-da konfiqurasiya edilib",
|
||||
"mcp.status.connected": "qoşulub",
|
||||
"mcp.status.failed": "uğursuz",
|
||||
"mcp.status.needs_auth": "avtorizasiya lazımdır",
|
||||
"mcp.status.disabled": "deaktiv",
|
||||
"mcp.auth.clickToAuthenticate": "Autentifikasiya üçün klikləyin",
|
||||
"dialog.fork.empty": "Yeni sessiyaya ayırmaq üçün mesaj yoxdur",
|
||||
"dialog.directory.search.placeholder": "Qovluqları axtar",
|
||||
"dialog.directory.empty": "Qovluq tapılmadı",
|
||||
"dialog.directory.action.selectFile": "Fayl seçin",
|
||||
"dialog.directory.action.selectFolder": "Qovluğu seçin",
|
||||
"dialog.directory.root": "Kök",
|
||||
"dialog.directory.parent": "Üst qovluq",
|
||||
"dialog.directory.readError": "Bu qovluğu oxumaq mümkün deyil",
|
||||
"app.server.unreachable": "{{server}}-ə çatmaq mümkün olmadı",
|
||||
"app.server.retrying": "Avtomatik olaraq yenidən cəhd edilir...",
|
||||
"app.server.otherServers": "Digər serverlər",
|
||||
"dialog.server.title": "Serverlər",
|
||||
"dialog.server.description": "Bu tətbiqin qoşulduğu OpenCode serverini dəyişdirin.",
|
||||
"dialog.server.search.placeholder": "Serverləri axtar",
|
||||
"dialog.server.empty": "Hələ server yoxdur",
|
||||
"dialog.server.add.title": "Server əlavə et",
|
||||
"dialog.server.add.url": "Server ünvanı",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Serverə qoşulmaq mümkün olmadı",
|
||||
"dialog.server.add.checking": "Yoxlanılır...",
|
||||
"dialog.server.add.button": "Server əlavə et",
|
||||
"dialog.server.add.name": "Server adı (istəyə bağlı)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "İstifadəçi adı (istəyə bağlı)",
|
||||
"dialog.server.add.usernamePlaceholder": "istifadəçi adı",
|
||||
"dialog.server.add.password": "Şifrə (istəyə bağlı)",
|
||||
"dialog.server.add.passwordPlaceholder": "parol",
|
||||
"dialog.server.edit.title": "Serveri redaktə et",
|
||||
"dialog.server.default.title": "Standart server",
|
||||
"dialog.server.default.description":
|
||||
"Tətbiq açıldıqda yerli server başlatmaq əvəzinə bu serverə qoşulun. Yenidən başlatma tələb olunur.",
|
||||
"dialog.server.default.none": "Server seçilməyib",
|
||||
"dialog.server.default.set": "Cari serveri standart olaraq təyin et",
|
||||
"dialog.server.default.clear": "Təmizlə",
|
||||
"dialog.server.action.remove": "Serveri sil",
|
||||
"dialog.server.menu.edit": "Redaktə et",
|
||||
"dialog.server.menu.default": "Standart olaraq təyin et",
|
||||
"dialog.server.menu.defaultRemove": "Standartı sil",
|
||||
"dialog.server.menu.delete": "Sil",
|
||||
"dialog.server.current": "Cari server",
|
||||
"dialog.server.status.default": "Standart",
|
||||
"wsl.server.add": "WSL server əlavə edin",
|
||||
"wsl.server.addShort": "WSL əlavə edin",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL server",
|
||||
"wsl.server.retryStart": "Yenidən başlamağa cəhd edin",
|
||||
"wsl.server.updating": "Yenilənir...",
|
||||
"wsl.onboarding.step.distro": "Distribütiv seçin",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "WSL yoxlanılır...",
|
||||
"wsl.onboarding.restartRequired":
|
||||
"WSL-nin quraşdırılmasını başa çatdırmaq üçün Windows-un yenidən başlaması lazımdır.",
|
||||
"wsl.onboarding.ready": "WSL hazırdır.",
|
||||
"wsl.onboarding.required": "Davam etmək üçün WSL tələb olunur.",
|
||||
"wsl.onboarding.checkingDistros": "Distribütivlər yoxlanılır...",
|
||||
"wsl.onboarding.installingDistro": "{{distro}} quraşdırılır...",
|
||||
"wsl.onboarding.checkingDistro": "{{distro}} yoxlanılır...",
|
||||
"wsl.onboarding.listingDistros": "Distribütivlər siyahılanır...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} hazırdır.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} hələ quraşdırılmayıb.",
|
||||
"wsl.onboarding.openDistroOnce": "Quraşdırmanı bitirmək üçün {{distro}}-ni bir dəfə açın.",
|
||||
"wsl.onboarding.finishingDistro": "{{distro}} üçün quraşdırma tamamlanır.",
|
||||
"wsl.onboarding.pickDistro": "Distribütiv seçin və ya aşağıdakılardan birini quraşdırın.",
|
||||
"wsl.onboarding.checkingOpencode": "OpenCode yoxlanılır...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "{{distro}}-də OpenCode yoxlanılır...",
|
||||
"wsl.onboarding.updatingOpencode": "OpenCode yenilənir...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "{{distro}}-də OpenCode yenilənir...",
|
||||
"wsl.onboarding.updateOpencodeIn": "{{distro}}-də OpenCode-u yeniləyin.",
|
||||
"wsl.onboarding.updateOpencode": "OpenCode-u yeniləyin",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode {{distro}}-də hazırdır.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode hazırdır.",
|
||||
"wsl.onboarding.installOpencodeIn": "OpenCode-u {{distro}}-də quraşdırın.",
|
||||
"wsl.onboarding.installOpencode": "OpenCode quraşdırın",
|
||||
"wsl.onboarding.chooseDistroFirst": "Əvvəlcə distribütiv seçin.",
|
||||
"wsl.onboarding.loadFailed": "WSL vəziyyətini yükləmək alınmadı.",
|
||||
"wsl.onboarding.loading": "Yüklənir...",
|
||||
"wsl.onboarding.installedDistros": "Quraşdırılmış distribütivlər",
|
||||
"wsl.onboarding.checkAgain": "Yenidən yoxlayın",
|
||||
"wsl.onboarding.distroStatus.ready": "Hazır",
|
||||
"wsl.onboarding.distroStatus.checking": "Yoxlanır...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode quraşdırılmayıb",
|
||||
"wsl.onboarding.distroStatus.missingTools": "Çatışmayan bash, curl",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Dəstəklənmir · WSL 2 istifadə edin",
|
||||
"wsl.onboarding.needAnotherDistro": "Başqa distribütiv lazımdır?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "WSL kataloqundan Linux paylamasını quraşdırın",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL quraşdırılmayıb",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"OpenCode WSL serveri əlavə etməzdən əvvəl WSL (Linux üçün Windows alt sistemi) tələb olunur",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL mövcud deyil",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode bu maşında WSL-i doğrulaya bilmədi.",
|
||||
"wsl.onboarding.installWsl": "WSL quraşdırın",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"WSL-nin quraşdırılmasını başa çatdırmaq üçün Windows-u yenidən başladın, sonra OpenCode-u yenidən açın.",
|
||||
"wsl.onboarding.next": "Növbəti",
|
||||
"wsl.onboarding.refresh": "Yeniləyin",
|
||||
"wsl.onboarding.allDistrosAdded": "Bütün quraşdırılmış distribütivlər artıq əlavə edilib.",
|
||||
"wsl.onboarding.noDistros": "Hələ distribütiv aşkarlanmayıb.",
|
||||
"wsl.onboarding.install": "Quraşdırın",
|
||||
"wsl.onboarding.installing": "Quraşdırılır...",
|
||||
"wsl.onboarding.installDistro": "Distribütiv quraşdırın",
|
||||
"wsl.onboarding.searchDistros": "Distribütivləri axtar",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 tələb olunur.",
|
||||
"wsl.onboarding.toolsRequired": "Bu distribütiv üçün bash və curl tələb olunur.",
|
||||
"wsl.onboarding.openTerminal": "Terminalı aç",
|
||||
"wsl.onboarding.path": "Yol: {{path}}",
|
||||
"wsl.onboarding.notFound": "tapılmadı",
|
||||
"wsl.onboarding.version": "Versiya: {{version}}",
|
||||
"wsl.onboarding.unknown": "naməlum",
|
||||
"wsl.onboarding.desktopVersion": "masaüstü {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "Quraşdırılmış versiya masaüstü proqram versiyasına uyğun gəlmir.",
|
||||
"wsl.onboarding.adding": "Əlavə edilir...",
|
||||
"server.row.noUsername": "istifadəçi adı yoxdur",
|
||||
"dialog.project.edit.title": "Layihəni redaktə et",
|
||||
"dialog.project.edit.name": "Ad",
|
||||
"dialog.project.edit.icon": "İkon",
|
||||
"dialog.project.edit.icon.alt": "Layihə ikonu",
|
||||
"dialog.project.edit.icon.hint": "Şəkilə klikləyin və ya onu sürükləyin",
|
||||
"dialog.project.edit.icon.recommended": "Tövsiyə: 128x128px",
|
||||
"dialog.project.edit.color": "Rəng",
|
||||
"dialog.project.edit.color.select": "{{color}} rəngini seçin",
|
||||
"dialog.project.edit.worktree.startup": "İş sahəsi başlanğıc skripti",
|
||||
"dialog.project.edit.worktree.startup.description": "Yeni iş sahəsi (worktree) yaradıldıqdan sonra işləyir.",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "məs. bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "Başla",
|
||||
"dialog.releaseNotes.action.next": "Növbəti",
|
||||
"dialog.releaseNotes.action.hideFuture": "Gələcəkdə göstərmə",
|
||||
"dialog.releaseNotes.media.alt": "Buraxılış önbaxışı",
|
||||
"context.breakdown.title": "Kontekst bölgüsü",
|
||||
"context.breakdown.note": 'Giriş tokenlərinin təxmini bölgüsü. "Digər" alət təriflərini və əlavə yükü əhatə edir.',
|
||||
"context.breakdown.system": "Sistem",
|
||||
"context.breakdown.user": "İstifadəçi",
|
||||
"context.breakdown.assistant": "Köməkçi",
|
||||
"context.breakdown.tool": "Alət çağırışları",
|
||||
"context.breakdown.other": "Digər",
|
||||
"context.systemPrompt.title": "Sistem promptu",
|
||||
"context.rawMessages.title": "Xam mesajlar",
|
||||
"context.stats.session": "Sessiya",
|
||||
"context.stats.messages": "Mesajlar",
|
||||
"context.stats.provider": "Provayder",
|
||||
"context.stats.model": "Model",
|
||||
"context.stats.limit": "Kontekst limiti",
|
||||
"context.stats.totalTokens": "Ümumi tokenlər",
|
||||
"context.stats.usage": "İstifadə",
|
||||
"context.stats.inputTokens": "Giriş tokenləri",
|
||||
"context.stats.outputTokens": "Çıxış tokenləri",
|
||||
"context.stats.reasoningTokens": "Düşünmə tokenləri",
|
||||
"context.stats.cacheTokens": "Keş tokenləri (oxuma/yazma)",
|
||||
"context.stats.userMessages": "İstifadəçi mesajları",
|
||||
"context.stats.assistantMessages": "Köməkçi mesajları",
|
||||
"context.stats.totalCost": "Ümumi xərc",
|
||||
"context.stats.sessionCreated": "Sessiya yaradıldı",
|
||||
"context.stats.lastActivity": "Son fəaliyyət",
|
||||
"context.usage.tokens": "Tokenlər",
|
||||
"context.usage.usage": "İstifadə",
|
||||
"context.usage.cost": "Xərc",
|
||||
"context.usage.clickToView": "Kontekstə baxmaq üçün klikləyin",
|
||||
"context.usage.view": "Kontekst istifadəsinə bax",
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Dil",
|
||||
"toast.language.description": "{{language}} dilinə keçildi",
|
||||
"toast.theme.title": "Mövzu dəyişdirildi",
|
||||
"toast.scheme.title": "Rəng sxemi",
|
||||
"toast.workspace.enabled.title": "İş sahələri aktivləşdirildi",
|
||||
"toast.workspace.enabled.description": "Birdən çox worktree indi yan paneldə göstərilir",
|
||||
"toast.workspace.disabled.title": "İş sahələri deaktiv edildi",
|
||||
"toast.workspace.disabled.description": "Yan paneldə yalnız əsas worktree göstərilir",
|
||||
"toast.permissions.autoaccept.on.title": "İcazələr avtomatik qəbul edilir",
|
||||
"toast.permissions.autoaccept.on.description": "İcazə sorğuları avtomatik təsdiqlənəcək",
|
||||
"toast.permissions.autoaccept.off.title": "İcazələrin avtomatik qəbulu dayandırıldı",
|
||||
"toast.permissions.autoaccept.off.description": "İcazə sorğuları təsdiq tələb edəcək",
|
||||
"toast.model.none.title": "Model seçilməyib",
|
||||
"toast.model.none.description": "Bu sessiyanı xülasə etmək üçün provayder qoşun",
|
||||
"toast.file.loadFailed.title": "Fayl yüklənə bilmədi",
|
||||
"toast.file.listFailed.title": "Fayllar siyahılana bilmədi",
|
||||
"toast.context.noLineSelection.title": "Sətir seçimi yoxdur",
|
||||
"toast.context.noLineSelection.description": "Əvvəlcə fayl tabında sətir aralığı seçin.",
|
||||
"toast.session.share.copyFailed.title": "URL buferə kopyalana bilmədi",
|
||||
"toast.session.share.success.title": "Sessiya paylaşıldı",
|
||||
"toast.session.share.success.description": "Paylaşma URL-si buferə kopyalandı!",
|
||||
"toast.session.share.failed.title": "Sessiya paylaşıla bilmədi",
|
||||
"toast.session.share.failed.description": "Sessiyanı paylaşarkən xəta baş verdi",
|
||||
"toast.session.unshare.success.title": "Sessiyanın paylaşımı dayandırıldı",
|
||||
"toast.session.unshare.success.description": "Sessiyanın paylaşımı uğurla dayandırıldı!",
|
||||
"toast.session.unshare.failed.title": "Sessiyanın paylaşımı dayandırıla bilmədi",
|
||||
"toast.session.unshare.failed.description": "Sessiyanın paylaşımını dayandırarkən xəta baş verdi",
|
||||
"toast.session.listFailed.title": "{{project}} üçün sessiyalar yüklənə bilmədi",
|
||||
"toast.project.reloadFailed.title": "{{project}} yenidən yüklənə bilmədi",
|
||||
"toast.update.title": "Yeniləmə mövcuddur",
|
||||
"toast.update.description": "OpenCode-un yeni versiyası ({{version}}) quraşdırma üçün mövcuddur.",
|
||||
"toast.update.action.installRestart": "Quraşdır və yenidən başlat",
|
||||
"toast.update.action.notYet": "Hələ yox",
|
||||
"error.page.title": "Xəta baş verdi",
|
||||
"error.page.description": "Tətbiq yüklənərkən xəta baş verdi.",
|
||||
"error.page.description.localServerStartup": "Lokal serveri işə salarkən xəta baş verdi.",
|
||||
"error.page.details.label": "Xəta detalları",
|
||||
"error.page.action.restart": "Yenidən başlat",
|
||||
"error.page.action.report": "Xəta bildirin",
|
||||
"error.page.action.reported": "Xəta bildirildi",
|
||||
"error.page.action.exportLogs": "Qeydləri ixrac edin",
|
||||
"error.page.action.checking": "Yoxlanılır...",
|
||||
"error.page.action.checkUpdates": "Yeniləmələri yoxla",
|
||||
"error.page.action.updateTo": "{{version}} versiyasına yenilə",
|
||||
"error.page.circular": "[Dairəvi]",
|
||||
"error.page.report.prefix": "Bu xətanı OpenCode komandasına",
|
||||
"error.page.report.discord": "Discord-da bildirin",
|
||||
"error.page.version": "Versiya: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"Kök element tapılmadı. index.html-ə əlavə etməyi unutmusunuz? Yoxsa id atributu səhv yazılıb?",
|
||||
"error.serverSync.connectFailed": "Serverə qoşulmaq mümkün olmadı. `{{url}}`-də işləyən server varmı?",
|
||||
"error.serverSDK.noServerAvailable": "Əlçatan server yoxdur",
|
||||
"error.serverSDK.serverNotAvailable": "Server mövcud deyil",
|
||||
"error.childStore.persistedCacheCreateFailed": "Qalıcı keş yaradıla bilmədi",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Qalıcı layihə metadatası yaradıla bilmədi",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Qalıcı layihə nişanı yaradıla bilmədi",
|
||||
"error.childStore.storeCreateFailed": "Saxlanc yaradıla bilmədi",
|
||||
"directory.error.invalidUrl": "URL-də yanlış qovluq.",
|
||||
"error.chain.unknown": "Naməlum xəta",
|
||||
"error.server.invalidConfiguration": "Yanlış konfiqurasiya",
|
||||
"error.chain.causedBy": "Səbəb:",
|
||||
"error.chain.apiError": "API xətası",
|
||||
"error.chain.status": "Status: {{status}}",
|
||||
"error.chain.retryable": "Təkrar cəhd mümkündür: {{retryable}}",
|
||||
"error.chain.responseBody": "Cavab gövdəsi:\n{{body}}",
|
||||
"error.chain.didYouMean": "Bunu nəzərdə tuturdunuz: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Model tapılmadı: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Konfiqurasiyanızdakı (opencode.json) provayder/model adlarını yoxlayın",
|
||||
"error.chain.mcpFailed":
|
||||
'MCP server "{{name}}" uğursuz oldu. Qeyd: OpenCode hələ MCP autentifikasiyasını dəstəkləmir.',
|
||||
"error.chain.providerAuthFailed": "Provayder autentifikasiyası uğursuz oldu ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'"{{provider}}" provayderinin işə salınması uğursuz oldu. Giriş məlumatlarını və konfiqurasiyanı yoxlayın.',
|
||||
"error.chain.configJsonInvalid": "{{path}} ünvanındakı konfiqurasiya faylı etibarlı JSON(C) deyil",
|
||||
"error.chain.configJsonInvalidWithMessage":
|
||||
"{{path}} ünvanındakı konfiqurasiya faylı etibarlı JSON(C) deyil: {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'{{path}} içindəki "{{dir}}" qovluğu etibarlı deyil. Qovluğu "{{suggestion}}" adına dəyişdirin və ya silin. Bu ümumi bir yazım xətasıdır.',
|
||||
"error.chain.configFrontmatterError": "{{path}} faylındakı frontmatter təhlil edilə bilmədi:\n{{message}}",
|
||||
"error.chain.configInvalid": "{{path}} ünvanındakı konfiqurasiya faylı etibarsızdır",
|
||||
"error.chain.configInvalidWithMessage": "{{path}} ünvanındakı konfiqurasiya faylı etibarsızdır: {{message}}",
|
||||
"notification.permission.title": "İcazə tələb olunur",
|
||||
"notification.permission.description": "{{projectName}} layihəsində {{sessionTitle}} icazə tələb edir",
|
||||
"notification.question.title": "Sual",
|
||||
"notification.question.description": "{{projectName}} layihəsində {{sessionTitle}} sualı var",
|
||||
"notification.action.goToSession": "Sessiyaya keç",
|
||||
"notification.session.responseReady.title": "Cavab hazırdır",
|
||||
"notification.session.error.title": "Sessiya xətası",
|
||||
"notification.session.error.fallbackDescription": "Xəta baş verdi",
|
||||
"home.recentProjects": "Son layihələr",
|
||||
"home.empty.title": "Son layihə yoxdur",
|
||||
"home.empty.description": "Yerli layihə açaraq başlayın",
|
||||
"home.title": "Ana səhifə",
|
||||
"home.projects": "Layihələr",
|
||||
"home.project.add": "Layihə əlavə edin",
|
||||
"home.recentlyClosed": "Bu yaxınlarda bağlandı",
|
||||
"home.server.collapse": "Server layihələrini yığışdırın",
|
||||
"home.server.expand": "Server layihələrini genişləndirin",
|
||||
"home.sessions.search.placeholder": "Sessiyaları axtar",
|
||||
"home.sessions.search.placeholder.scoped": "{{scope}}-də sessiyaları axtarın",
|
||||
"home.sessions.search.sessions": "Sessiyalar",
|
||||
"home.sessions.search.noResults": "{{query}} üçün sessiya tapılmadı",
|
||||
"home.sessions.empty": "Burada hələ heç nə yoxdur",
|
||||
"home.sessions.empty.description": "Başlamaq üçün sessiya yaradın",
|
||||
"home.sessions.group.today": "Bu gün",
|
||||
"home.sessions.group.yesterday": "Dünən",
|
||||
"home.sessions.group.older": "Daha əvvəl",
|
||||
"home.providerTip":
|
||||
"Claude, GPT, Gemini və s. daxil olmaqla, digər modellərdən istifadə etmək üçün 75+ provayderə qoşulun",
|
||||
"session.tab.session": "Sessiya",
|
||||
"session.tab.review": "İcmal",
|
||||
"session.tab.context": "Kontekst",
|
||||
"session.tab.unknown": "Naməlum sessiya",
|
||||
"session.panel.reviewAndFiles": "İcmal və fayllar",
|
||||
"session.error.notFound": "Bu sessiyanı tapmaq mümkün deyil",
|
||||
"session.error.notFound.description": "Bu tab artıq bu serverdə olmayan sessiyaya işarə edir.",
|
||||
"session.error.notFound.closeTab": "Tabı bağla",
|
||||
"session.error.serverConnection": "Bu serverə qoşulmaq mümkün deyil",
|
||||
"session.review.filesChanged": "{{count}} fayl dəyişdi",
|
||||
"session.review.change.one": "Dəyişiklik",
|
||||
"session.review.change.other": "Dəyişikliklər",
|
||||
"session.review.loadingChanges": "Dəyişikliklər yüklənir...",
|
||||
"session.review.empty": "Bu sessiyada hələ dəyişiklik yoxdur",
|
||||
"session.review.noVcs": "Git versiyaya nəzarət sistemi aşkarlanmadı; sessiya dəyişiklikləri göstərilməyəcək",
|
||||
"session.review.noVcs.createGit.title": "Git repozitoriyası yaradın",
|
||||
"session.review.noVcs.createGit.description": "Bu layihədə dəyişiklikləri izləyin, nəzərdən keçirin və ləğv edin",
|
||||
"session.review.noVcs.createGit.actionLoading": "Git repozitoriyası yaradılır...",
|
||||
"session.review.noVcs.createGit.action": "Git repozitoriyası yaradın",
|
||||
"session.review.noSnapshot":
|
||||
"Snapshot izləmə konfiqurasiyada deaktiv edilib, ona görə də sessiya dəyişiklikləri əlçatan deyil",
|
||||
"session.review.noChanges": "Dəyişiklik yoxdur",
|
||||
"session.review.noUncommittedChanges": "Hələ commit edilməmiş dəyişiklik yoxdur",
|
||||
"session.review.noBranchChanges": "Hələ branch dəyişikliyi yoxdur",
|
||||
"session.files.selectToOpen": "Açmaq üçün fayl seçin",
|
||||
"session.files.all": "Bütün fayllar",
|
||||
"session.files.empty": "Fayl yoxdur",
|
||||
"session.files.binaryContent": "İkili fayl (məzmun göstərilə bilmir)",
|
||||
"session.messages.renderEarlier": "Əvvəlki mesajları göstər",
|
||||
"session.messages.loadingEarlier": "Əvvəlki mesajlar yüklənir...",
|
||||
"session.messages.loadEarlier": "Əvvəlki mesajları yüklə",
|
||||
"session.messages.loading": "Mesajlar yüklənir...",
|
||||
"session.messages.jumpToLatest": "Ən sonuncuya keç",
|
||||
"session.context.addToContext": "{{selection}} kontekstə əlavə et",
|
||||
"session.todo.title": "Tapşırıqlar",
|
||||
"session.todo.collapse": "Yığ",
|
||||
"session.todo.expand": "Genişlət",
|
||||
"session.todo.progress": "{{total}} tapşırıqdan {{done}}-i tamamlandı",
|
||||
"session.question.progress": "{{total}} sualdan {{current}}-i",
|
||||
"session.question.minimize": "Sualı kiçilt",
|
||||
"session.question.restore": "Sualı bərpa edin",
|
||||
"session.question.pending.one": "{{count}} cavab gözləyən sual",
|
||||
"session.question.pending.other": "{{count}} cavab gözləyən sual",
|
||||
"session.followupDock.summary.one": "{{count}} növbəyə qoyulmuş mesaj",
|
||||
"session.followupDock.summary.other": "{{count}} növbəyə qoyulmuş mesajlar",
|
||||
"session.followupDock.sendNow": "İndi göndər",
|
||||
"session.followupDock.edit": "Redaktə et",
|
||||
"session.followupDock.collapse": "Növbəyə qoyulmuş mesajları yığcamlaşdırın",
|
||||
"session.followupDock.expand": "Növbəyə qoyulmuş mesajları genişləndirin",
|
||||
"session.revertDock.summary.one": "{{count}} geri alınmış mesaj",
|
||||
"session.revertDock.summary.other": "{{count}} geri alınmış mesaj",
|
||||
"session.revertDock.collapse": "Geri alınmış mesajları yığcamlaşdırın",
|
||||
"session.revertDock.expand": "Geri qaytarılmış mesajları genişləndirin",
|
||||
"session.revertDock.restore": "Mesajı bərpa edin",
|
||||
"session.new.title": "İstədiyinizi qurun",
|
||||
"session.new.project.new": "Yeni layihə",
|
||||
"session.new.project.search": "Layihələri axtarın",
|
||||
"session.new.project.add": "Layihə əlavə edin",
|
||||
"session.new.worktree.main": "Əsas branch",
|
||||
"session.new.worktree.mainWithBranch": "Əsas branch ({{branch}})",
|
||||
"session.new.worktree.create": "Yeni worktree yarat",
|
||||
"session.new.workspace.runIn": "Sessiyanı burada işə sal",
|
||||
"session.new.workspace.triggerLocal": "Yerli",
|
||||
"session.new.workspace.local": "Yerli depo",
|
||||
"session.new.workspace.existing": "İş sahəsi…",
|
||||
"session.new.git.none": "Git yoxdur",
|
||||
"session.new.lastModified": "Son dəyişiklik",
|
||||
"session.header.search.placeholder": "{{project}} axtar",
|
||||
"session.header.searchFiles": "Faylları axtar",
|
||||
"session.header.openIn": "Burada aç:",
|
||||
"session.header.open.action": "{{app}} tətbiqini aç",
|
||||
"session.header.open.ariaLabel": "{{app}} tətbiqində aç",
|
||||
"session.header.open.menu": "Seçimləri aç",
|
||||
"session.header.open.copyPath": "Yolu kopyala",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.open.fileManager": "Fayl meneceri",
|
||||
"session.header.reveal.finder": "Finder-də göstər",
|
||||
"session.header.reveal.fileExplorer": "File Explorer-də göstər",
|
||||
"session.header.reveal.containingFolder": "Tərkibindəki qovluğu açın",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminal",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "Status",
|
||||
"status.popover.ariaLabel": "Server konfiqurasiyaları",
|
||||
"status.popover.tab.servers": "Serverlər",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Plaginlər",
|
||||
"status.popover.action.manageServers": "Serverləri idarə et",
|
||||
"session.share.popover.title": "Vebdə dərc et",
|
||||
"session.share.popover.description.shared": "Bu sessiya vebdə açıqdır. Linkə sahib olan hər kəs daxil ola bilər.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Sessiyanı vebdə açıq paylaşın. Linkə sahib olan hər kəs daxil ola biləcək.",
|
||||
"session.share.action.share": "Paylaş",
|
||||
"session.share.action.publish": "Dərc et",
|
||||
"session.share.action.publishing": "Dərc edilir...",
|
||||
"session.share.action.unpublish": "Dərcdən çıxar",
|
||||
"session.share.action.unpublishing": "Dərcdən çıxarılır...",
|
||||
"session.share.action.view": "Bax",
|
||||
"session.share.copy.copied": "Kopyalandı",
|
||||
"session.share.copy.copyLink": "Linki kopyala",
|
||||
"lsp.tooltip.none": "LSP server yoxdur",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Prompt yüklənir...",
|
||||
"terminal.loading": "Terminal yüklənir...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Terminalı bağla",
|
||||
"terminal.connectionLost.title": "Bağlantı kəsildi",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket anormal bağlandı: {{code}}",
|
||||
"terminal.connectionLost.description": "Terminal bağlantısı kəsildi. Bu server yenidən başladıqda baş verə bilər.",
|
||||
"common.closeTab": "Tabı bağla",
|
||||
"common.dismiss": "Bağla",
|
||||
"common.moreCountSuffix": " (+{{count}} daha)",
|
||||
"common.requestFailed": "Sorğu uğursuz oldu",
|
||||
"common.moreOptions": "Daha çox seçim",
|
||||
"common.learnMore": "Ətraflı öyrən",
|
||||
"common.rename": "Adını dəyiş",
|
||||
"common.reset": "Sıfırla",
|
||||
"common.archive": "Arxivlə",
|
||||
"common.delete": "Sil",
|
||||
"common.close": "Bağla",
|
||||
"common.edit": "Redaktə et",
|
||||
"common.loadMore": "Daha çox yüklə",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Boşluq",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Sil",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "Son",
|
||||
"common.key.pageUp": "Səhifə Yuxarı",
|
||||
"common.key.pageDown": "Səhifə Aşağı",
|
||||
"common.key.insert": "Daxil et",
|
||||
"common.unknown": "naməlum",
|
||||
"common.time.justNow": "İndicə",
|
||||
"common.time.minutesAgo.short": "{{count}}d əvvəl",
|
||||
"common.time.hoursAgo.short": "{{count}}s əvvəl",
|
||||
"common.time.daysAgo.short": "{{count}}g əvvəl",
|
||||
"sidebar.menu.toggle": "Menyunu aç/bağla",
|
||||
"sidebar.nav.projectsAndSessions": "Layihələr və sessiyalar",
|
||||
"sidebar.settings": "Tənzimləmələr",
|
||||
"sidebar.help": "Kömək",
|
||||
"sidebar.workspaces.enable": "İş sahələrini aktivləşdir",
|
||||
"sidebar.workspaces.disable": "İş sahələrini deaktiv et",
|
||||
"sidebar.gettingStarted.title": "Başlanğıc",
|
||||
"sidebar.gettingStarted.line1": "OpenCode-a pulsuz modellər daxildir, buna görə dərhal başlaya bilərsiniz.",
|
||||
"sidebar.gettingStarted.line2":
|
||||
"Claude, GPT, Gemini və s. kimi modellərdən istifadə etmək üçün istənilən provayderi qoşun.",
|
||||
"sidebar.project.recentSessions": "Son sessiyalar",
|
||||
"sidebar.project.viewAllSessions": "Bütün sessiyalara bax",
|
||||
"sidebar.project.clearNotifications": "Bildirişləri təmizlə",
|
||||
"sidebar.empty.title": "Heç bir layihə açılmayıb",
|
||||
"sidebar.empty.description": "Başlamaq üçün bir layihə açın",
|
||||
"debugBar.ariaLabel": "Tərtibatçı performans diaqnostikası",
|
||||
"debugBar.na": "yox",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Sessiya səhifəsinə aid son tamamlanmış marşrut keçidi; marşrutlaşdırıcının başladığı andan keçid tamamlandıqdan sonrakı ilk göstərilməyədək ölçülür.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Son 5 saniyə üzrə saniyədə kadrların hərəkətli orta qiyməti.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Son 5 saniyədə ən uzun kadr müddəti.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Son 5 saniyədə 32 ms-dən uzun çəkən kadrlar.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Son 5 saniyədə bloklanma müddəti və uzun tapşırıqların sayı. Ən uzun tapşırıq: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Son 5 saniyədə müşahidə olunan ən uzun daxiletmə gecikməsi.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Son 5 saniyədə təxmini qarşılıqlı əlaqə müddəti. Bu, rəsmi Web Vitals INP göstəricisi deyil, ona bənzər göstəricidir.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Tətbiqin cari işləmə müddəti üzrə məcmu tərtibat sürüşməsi.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "İstifadə olunmuş JS yığını və yığın limiti. Yalnız Chromium.",
|
||||
"debugBar.mem.tip": "İstifadə olunmuş JS yığını və yığın limiti. {{used}} və {{limit}}.",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Masaüstü",
|
||||
"settings.section.server": "Server",
|
||||
"settings.tab.general": "Ümumi",
|
||||
"settings.tab.shortcuts": "Qısa yollar",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL inteqrasiyası",
|
||||
"settings.desktop.wsl.description": "Windows-da WSL daxilində OpenCode serverini işlət.",
|
||||
"settings.general.section.appearance": "Görünüş",
|
||||
"settings.general.section.advanced": "Qabaqcıl",
|
||||
"settings.general.section.notifications": "Sistem bildirişləri",
|
||||
"settings.general.section.updates": "Yeniləmələr",
|
||||
"settings.general.section.sounds": "Səs effektləri",
|
||||
"settings.general.section.feed": "Lenta",
|
||||
"settings.general.section.display": "Ekran",
|
||||
"settings.general.row.language.title": "Dil",
|
||||
"settings.general.row.language.description": "OpenCode üçün ekran dilini dəyişdirin",
|
||||
"settings.general.row.shell.title": "Terminal qabığı",
|
||||
"settings.general.row.shell.description": "Terminal və agent alətləri tərəfindən istifadə edilən qabıq",
|
||||
"settings.general.row.shell.autoDefault": "Avtomatik (Standart)",
|
||||
"settings.general.row.shell.terminalOnly": "yalnız terminal",
|
||||
"settings.general.row.appearance.title": "Görünüş",
|
||||
"settings.general.row.appearance.description": "OpenCode-un cihazınızda necə göründüyünü fərdiləşdirin",
|
||||
"settings.general.row.colorScheme.title": "Rəng sxemi",
|
||||
"settings.general.row.colorScheme.description":
|
||||
"OpenCode-un sistem, açıq və ya tünd mövzudan istifadə etməsini seçin",
|
||||
"settings.general.row.theme.title": "Mövzu",
|
||||
"settings.general.row.theme.description": "OpenCode-un mövzusunu fərdiləşdirin.",
|
||||
"settings.general.row.font.title": "Kod şrifti",
|
||||
"settings.general.row.font.description": "Kod bloklarında istifadə olunan mono şrifti fərdiləşdirin",
|
||||
"settings.general.row.terminalFont.title": "Terminal şrifti",
|
||||
"settings.general.row.terminalFont.description": "Terminalda istifadə olunan şrifti fərdiləşdirin",
|
||||
"settings.general.row.uiFont.title": "İnterfeys şrifti",
|
||||
"settings.general.row.uiFont.description": "Bütün interfeysdə istifadə olunan şrifti fərdiləşdirin",
|
||||
"settings.general.row.followup.title": "Sonrakı sorğuların davranışı",
|
||||
"settings.general.row.followup.description":
|
||||
"Sonrakı sorğuların dərhal yönləndirilməsini və ya növbədə gözləməsini seçin",
|
||||
"settings.general.row.followup.option.queue": "Növbə",
|
||||
"settings.general.row.followup.option.steer": "Yönləndir",
|
||||
"settings.general.row.showFileTree.title": "Fayl ağacı",
|
||||
"settings.general.row.showFileTree.description": "Seanslarda fayl ağacı panelini göstərin",
|
||||
"settings.general.row.showNavigation.title": "Naviqasiya nəzarətləri",
|
||||
"settings.general.row.showNavigation.description":
|
||||
"Masaüstü tətbiqin başlıq zolağında geri və irəli düymələrini göstərin",
|
||||
"settings.general.row.showSearch.title": "Komanda palitrası",
|
||||
"settings.general.row.showSearch.description": "Başlıq çubuğunda axtarış və əmr palitrası düyməsini göstərin",
|
||||
"settings.general.row.showTerminal.title": "Terminal",
|
||||
"settings.general.row.showTerminal.description": "Masaüstü tətbiqin başlıq zolağında terminal düyməsini göstərin",
|
||||
"settings.general.row.showStatus.title": "Server statusu",
|
||||
"settings.general.row.showStatus.description": "Başlıq çubuğunda server statusu düyməsini göstərin",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Aşağı naviqasiya",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Başlıq çubuğunu və sessiya tablarını mobil cihazda ekranın aşağısına yerləşdirin",
|
||||
"settings.general.row.showCustomAgents.title": "Agenti göstər",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Mesaj sahəsində agentlər arasında keçid edin. Gizlədildikdə Build agenti seçilir.",
|
||||
"settings.general.row.reasoningSummaries.title": "Düşünmə xülasələrini göstər",
|
||||
"settings.general.row.reasoningSummaries.description": "Zaman xəttində modelin düşünmə xülasələrini göstər",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Shell alət hissələrini genişlət",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Zaman xəttində shell alət hissələrini standart olaraq genişlədilmiş göstər",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Redaktə alət hissələrini genişlət",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Zaman xəttində redaktə, yazma və patch alət hissələrini standart olaraq genişlədilmiş göstər",
|
||||
"settings.general.row.newInterface.title": "Yeni tərtibat",
|
||||
"settings.general.row.newInterface.badge": "Yeni",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Yeni tab və ana səhifə tərtibatından istifadə edin. Məhdud müddət ərzində tərtibatlar arasında keçid edin.",
|
||||
"settings.general.row.newInterfaceNotice.title": "İndi yeni tərtibatdan istifadə edirsiniz",
|
||||
"settings.general.row.newInterfaceNotice.description": "Əvvəlki tərtibat artıq mövcud deyil",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Rədd et",
|
||||
"settings.general.row.pinchZoom.title": "Böyütmək üçün çimdikləyin",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Trekpadda çimdikləmə və Ctrl-sürüşdürmə jestləri ilə miqyaslamağa icazə verin",
|
||||
"settings.general.row.wayland.title": "Nativ Wayland-dan istifadə et",
|
||||
"settings.general.row.wayland.description": "Wayland-da X11 geri dönüşünü deaktiv et. Yenidən başlatma tələb olunur.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Qarışıq yeniləmə tezlikli monitorlu Linux-da nativ Wayland daha sabit ola bilər.",
|
||||
"settings.general.row.releaseNotes.title": "Buraxılış qeydləri",
|
||||
"settings.general.row.releaseNotes.description": "Yeniləmələrdən sonra yenilikləri göstər",
|
||||
"settings.updates.row.startup.title": "Başlanğıcda yeniləmələri yoxla",
|
||||
"settings.updates.row.startup.description": "OpenCode açıldıqda avtomatik yeniləmələri yoxla",
|
||||
"settings.updates.row.check.title": "Yeniləmələri yoxla",
|
||||
"settings.updates.row.check.description": "Əl ilə yeniləmələri yoxla və mövcud olduqda quraşdır",
|
||||
"settings.updates.action.checkNow": "İndi yoxla",
|
||||
"settings.updates.action.checking": "Yoxlanılır...",
|
||||
"settings.updates.action.downloading": "Yüklənir...",
|
||||
"settings.updates.action.installing": "Quraşdırılır...",
|
||||
"settings.updates.toast.latest.title": "Ən son versiyadan istifadə edirsiniz",
|
||||
"settings.updates.toast.latest.description": "OpenCode-un ən son versiyasından istifadə edirsiniz.",
|
||||
"sound.option.none": "Yoxdur",
|
||||
"sound.option.alert01": "Alert 01",
|
||||
"sound.option.alert02": "Alert 02",
|
||||
"sound.option.alert03": "Alert 03",
|
||||
"sound.option.alert04": "Alert 04",
|
||||
"sound.option.alert05": "Alert 05",
|
||||
"sound.option.alert06": "Alert 06",
|
||||
"sound.option.alert07": "Alert 07",
|
||||
"sound.option.alert08": "Alert 08",
|
||||
"sound.option.alert09": "Alert 09",
|
||||
"sound.option.alert10": "Alert 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"settings.general.notifications.agent.title": "Agent",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Agent tamamlandıqda və ya diqqət tələb etdikdə sistem bildirişi göstər",
|
||||
"settings.general.notifications.permissions.title": "İcazələr",
|
||||
"settings.general.notifications.permissions.description": "İcazə tələb olunduqda sistem bildirişi göstər",
|
||||
"settings.general.notifications.errors.title": "Xətalar",
|
||||
"settings.general.notifications.errors.description": "Xəta baş verdikdə sistem bildirişi göstər",
|
||||
"settings.general.sounds.agent.title": "Agent",
|
||||
"settings.general.sounds.agent.description": "Agent tamamlandıqda və ya diqqət tələb etdikdə səs çal",
|
||||
"settings.general.sounds.permissions.title": "İcazələr",
|
||||
"settings.general.sounds.permissions.description": "İcazə tələb olunduqda səs çal",
|
||||
"settings.general.sounds.errors.title": "Xətalar",
|
||||
"settings.general.sounds.errors.description": "Xəta baş verdikdə səs çal",
|
||||
"settings.shortcuts.title": "Klaviatura qısa yolları",
|
||||
"settings.shortcuts.reset.button": "Standartlara sıfırla",
|
||||
"settings.shortcuts.reset.toast.title": "Qısa yollar sıfırlandı",
|
||||
"settings.shortcuts.reset.toast.description": "Klaviatura qısa yolları standartlara sıfırlandı.",
|
||||
"settings.shortcuts.conflict.title": "Qısa yol artıq istifadə olunur",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} artıq {{titles}} üçün təyin edilib.",
|
||||
"settings.shortcuts.unassigned": "Təyin edilməyib",
|
||||
"settings.shortcuts.pressKeys": "Düymələrə basın",
|
||||
"settings.shortcuts.search.placeholder": "Qısa yolları axtar",
|
||||
"settings.shortcuts.search.empty": "Qısa yol tapılmadı",
|
||||
"settings.shortcuts.group.general": "Ümumi",
|
||||
"settings.shortcuts.group.session": "Sessiya",
|
||||
"settings.shortcuts.group.navigation": "Naviqasiya",
|
||||
"settings.shortcuts.group.modelAndAgent": "Model və agent",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "Prompt",
|
||||
"settings.providers.title": "Provayderlər",
|
||||
"settings.providers.description": "Provayder tənzimləmələri burada konfiqurasiya edilə biləcək.",
|
||||
"settings.providers.section.connected": "Qoşulmuş provayderlər",
|
||||
"settings.providers.connected.empty": "Qoşulmuş provayder yoxdur",
|
||||
"settings.providers.connected.environmentDescription": "Mühit dəyişənlərinizdən qoşulub",
|
||||
"settings.providers.section.popular": "Populyar provayderlər",
|
||||
"settings.providers.custom.description": "Əsas URL ilə OpenAI-uyğun provayder əlavə edin.",
|
||||
"settings.providers.tag.environment": "Mühit",
|
||||
"settings.providers.tag.config": "Konfiqurasiya",
|
||||
"settings.providers.tag.custom": "Fərdi",
|
||||
"settings.providers.tag.other": "Digər",
|
||||
"settings.models.title": "Modellər",
|
||||
"settings.models.description": "Model tənzimləmələri burada konfiqurasiya edilə biləcək.",
|
||||
"settings.agents.title": "Agentlər",
|
||||
"settings.agents.description": "Agent tənzimləmələri burada konfiqurasiya edilə biləcək.",
|
||||
"settings.commands.title": "Əmrlər",
|
||||
"settings.commands.description": "Əmr tənzimləmələri burada konfiqurasiya edilə biləcək.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP tənzimləmələri burada konfiqurasiya edilə biləcək.",
|
||||
"settings.permissions.title": "İcazələr",
|
||||
"settings.permissions.description": "Serverin standart olaraq hansı alətləri istifadə edə biləcəyini idarə edin.",
|
||||
"settings.permissions.section.tools": "Alətlər",
|
||||
"settings.permissions.toast.updateFailed.title": "İcazələr yenilənə bilmədi",
|
||||
"settings.permissions.action.allow": "İcazə ver",
|
||||
"settings.permissions.action.ask": "Soruş",
|
||||
"settings.permissions.action.deny": "Rədd et",
|
||||
"settings.permissions.tool.read.title": "Oxu",
|
||||
"settings.permissions.tool.read.description": "Fayl oxuma (fayl yoluna uyğun gəlir)",
|
||||
"settings.permissions.tool.edit.title": "Redaktə",
|
||||
"settings.permissions.tool.edit.description": "Redaktə, yazma və yamaq tətbiqi daxil olmaqla faylları dəyişdir",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Glob nümunələri ilə faylları uyğunlaşdır",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Müntəzəm ifadələrlə fayl məzmununu axtar",
|
||||
"settings.permissions.tool.list.title": "Siyahı",
|
||||
"settings.permissions.tool.list.description": "Qovluq daxilindəki faylları siyahıla",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Shell əmrlərini işlət",
|
||||
"settings.permissions.tool.task.title": "Tapşırıq",
|
||||
"settings.permissions.tool.task.description": "Alt agentləri işə sal",
|
||||
"settings.permissions.tool.skill.title": "Bacarıq",
|
||||
"settings.permissions.tool.skill.description": "Adla bacarıq yüklə",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Dil server sorğularını işlət",
|
||||
"settings.permissions.tool.todowrite.title": "Tapşırıq yaz",
|
||||
"settings.permissions.tool.todowrite.description": "Tapşırıq siyahısını yenilə",
|
||||
"settings.permissions.tool.webfetch.title": "Veb əldə et",
|
||||
"settings.permissions.tool.webfetch.description": "URL-dən məzmun əldə et",
|
||||
"settings.permissions.tool.websearch.title": "Veb axtarış",
|
||||
"settings.permissions.tool.websearch.description": "Vebdə axtar",
|
||||
"settings.permissions.tool.external_directory.title": "Xarici qovluq",
|
||||
"settings.permissions.tool.external_directory.description": "Layihə qovluğundan kənardakı fayllara daxil ol",
|
||||
"settings.permissions.tool.doom_loop.title": "Sonsuz dövr",
|
||||
"settings.permissions.tool.doom_loop.description": "Eyni girişlə təkrarlanan alət çağırışlarını aşkarla",
|
||||
"session.delete.failed.title": "Sessiya silinə bilmədi",
|
||||
"session.delete.title": "Sessiyanı sil",
|
||||
"session.delete.confirm": '"{{name}}" sessiyasını silmək istəyirsiniz?',
|
||||
"session.delete.button": "Sessiyanı sil",
|
||||
"workspace.new": "Yeni iş sahəsi",
|
||||
"workspace.type.local": "yerli",
|
||||
"workspace.type.sandbox": "sandbox",
|
||||
"workspace.create.failed.title": "İş sahəsi yaradıla bilmədi",
|
||||
"workspace.delete.failed.title": "İş sahəsi silinə bilmədi",
|
||||
"workspace.resetting.title": "İş sahəsi sıfırlanır",
|
||||
"workspace.resetting.description": "Bu bir dəqiqə çəkə bilər.",
|
||||
"workspace.reset.failed.title": "İş sahəsi sıfırlana bilmədi",
|
||||
"workspace.reset.success.title": "İş sahəsi sıfırlandı",
|
||||
"workspace.reset.success.description": "İş sahəsi indi standart branch ilə uyğunlaşır.",
|
||||
"workspace.error.stillPreparing": "İş sahəsi hələ hazırlanır",
|
||||
"workspace.status.checking": "Birləşdirilməmiş dəyişikliklər yoxlanılır...",
|
||||
"workspace.status.error": "Git statusu doğrulana bilmədi.",
|
||||
"workspace.status.clean": "Birləşdirilməmiş dəyişiklik aşkarlanmadı.",
|
||||
"workspace.status.dirty": "Bu iş sahəsində birləşdirilməmiş dəyişikliklər aşkarlandı.",
|
||||
"workspace.delete.title": "İş sahəsini sil",
|
||||
"workspace.delete.confirm": '"{{name}}" iş sahəsini silmək istəyirsiniz?',
|
||||
"workspace.delete.button": "İş sahəsini sil",
|
||||
"workspace.reset.title": "İş sahəsini sıfırla",
|
||||
"workspace.reset.confirm": '"{{name}}" iş sahəsini sıfırlamaq istəyirsiniz?',
|
||||
"workspace.reset.button": "İş sahəsini sıfırla",
|
||||
"workspace.reset.archived.none": "Heç bir aktiv sessiya arxivlənməyəcək.",
|
||||
"workspace.reset.archived.one": "1 sessiya arxivlənəcək.",
|
||||
"workspace.reset.archived.many": "{{count}} sessiya arxivlənəcək.",
|
||||
"workspace.reset.note": "Bu iş sahəsini standart branch ilə uyğunlaşdırmaq üçün sıfırlayacaq.",
|
||||
}
|
||||
+44
-54
@@ -94,14 +94,13 @@ export const dict = {
|
||||
"dialog.provider.empty": "Nenhum provedor encontrado",
|
||||
"dialog.provider.group.popular": "Popular",
|
||||
"dialog.provider.group.other": "Outro",
|
||||
"dialog.provider.custom.label": "Provedor personalizado compatível com OpenAI",
|
||||
"dialog.provider.tag.recommended": "Recomendado",
|
||||
"dialog.provider.opencode.note": "Modelos selecionados incluindo Claude, GPT, Gemini e mais",
|
||||
"dialog.provider.opencode.tagline": "Modelos otimizados e confiáveis",
|
||||
"dialog.provider.opencodeGo.tagline": "Assinatura de baixo custo para todos",
|
||||
"dialog.provider.anthropic.note": "Acesso direto aos modelos Claude, incluindo Pro e Max",
|
||||
"dialog.provider.copilot.note": "Modelos de IA para auxílio à programação pelo GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Modelos GPT rápidos e avançados para tarefas gerais de IA",
|
||||
"dialog.provider.anthropic.note": "Conectar com Claude Pro/Max ou chave de API",
|
||||
"dialog.provider.copilot.note": "Conectar com Copilot ou chave de API",
|
||||
"dialog.provider.openai.note": "Conectar com ChatGPT Pro/Plus ou chave de API",
|
||||
"dialog.provider.google.note": "Modelos Gemini para respostas rápidas e estruturadas",
|
||||
"dialog.provider.openrouter.note": "Acesse todos os modelos suportados de um único provedor",
|
||||
"dialog.provider.vercel.note": "Acesso unificado a modelos de IA com roteamento inteligente",
|
||||
@@ -113,7 +112,6 @@ export const dict = {
|
||||
"dialog.model.manage.provider.toggle": "Alternar todos os modelos {{provider}}",
|
||||
"dialog.model.unpaid.freeModels.title": "Modelos gratuitos fornecidos pelo OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Adicionar mais modelos de provedores populares",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Ver mais de 70 provedores",
|
||||
"dialog.provider.viewAll": "Ver mais provedores",
|
||||
"provider.connect.title": "Conectar {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Entrar com Claude Pro/Max",
|
||||
@@ -153,12 +151,12 @@ export const dict = {
|
||||
"provider.custom.description.prefix": "Configure um provedor compatível com OpenAI. Veja a ",
|
||||
"provider.custom.description.link": "documentação de configuração do provedor",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "ID do provedor",
|
||||
"provider.custom.field.providerID.label": "ID do Provedor",
|
||||
"provider.custom.field.providerID.placeholder": "meuprovedor",
|
||||
"provider.custom.field.providerID.description": "Letras minúsculas, números, hifens ou sublinhados",
|
||||
"provider.custom.field.name.label": "Nome de exibição",
|
||||
"provider.custom.field.name.placeholder": "Meu provedor de IA",
|
||||
"provider.custom.field.baseURL.label": "URL base",
|
||||
"provider.custom.field.name.placeholder": "Meu Provedor de IA",
|
||||
"provider.custom.field.baseURL.label": "URL Base",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.meuprovedor.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Chave de API",
|
||||
"provider.custom.field.apiKey.placeholder": "Chave de API",
|
||||
@@ -167,7 +165,7 @@ export const dict = {
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "id-do-modelo",
|
||||
"provider.custom.models.name.label": "Nome",
|
||||
"provider.custom.models.name.placeholder": "Nome de exibição",
|
||||
"provider.custom.models.name.placeholder": "Nome de Exibição",
|
||||
"provider.custom.models.remove": "Remover modelo",
|
||||
"provider.custom.models.add": "Adicionar modelo",
|
||||
"provider.custom.headers.label": "Cabeçalhos (opcional)",
|
||||
@@ -177,11 +175,11 @@ export const dict = {
|
||||
"provider.custom.headers.value.placeholder": "valor",
|
||||
"provider.custom.headers.remove": "Remover cabeçalho",
|
||||
"provider.custom.headers.add": "Adicionar cabeçalho",
|
||||
"provider.custom.error.providerID.required": "O ID do provedor é obrigatório",
|
||||
"provider.custom.error.providerID.required": "ID do Provedor é obrigatório",
|
||||
"provider.custom.error.providerID.format": "Use letras minúsculas, números, hifens ou sublinhados",
|
||||
"provider.custom.error.providerID.exists": "Esse ID de provedor já existe",
|
||||
"provider.custom.error.name.required": "O nome de exibição é obrigatório",
|
||||
"provider.custom.error.baseURL.required": "A URL base é obrigatória",
|
||||
"provider.custom.error.name.required": "Nome de exibição é obrigatório",
|
||||
"provider.custom.error.baseURL.required": "URL Base é obrigatória",
|
||||
"provider.custom.error.baseURL.format": "Deve começar com http:// ou https://",
|
||||
"provider.custom.error.required": "Obrigatório",
|
||||
"provider.custom.error.duplicate": "Duplicado",
|
||||
@@ -217,7 +215,7 @@ export const dict = {
|
||||
"common.clear": "Limpar",
|
||||
"common.connect": "Conectar",
|
||||
"common.disconnect": "Desconectar",
|
||||
"common.continue": "Continuar",
|
||||
"common.continue": "Enviar",
|
||||
"common.submit": "Enviar",
|
||||
"common.save": "Salvar",
|
||||
"common.saving": "Salvando...",
|
||||
@@ -269,7 +267,7 @@ export const dict = {
|
||||
"prompt.context.includeActiveFile": "Incluir arquivo ativo",
|
||||
"prompt.context.removeActiveFile": "Remover arquivo ativo do contexto",
|
||||
"prompt.context.removeFile": "Remover arquivo do contexto",
|
||||
"prompt.action.attachFile": "Adicionar arquivos",
|
||||
"prompt.action.attachFile": "Anexar arquivo",
|
||||
"prompt.menu.addImagesAndFiles": "Adicionar arquivos e mais",
|
||||
"prompt.menu.imagesAndFiles": "Imagens e arquivos",
|
||||
"prompt.menu.commands": "Comandos",
|
||||
@@ -279,7 +277,6 @@ export const dict = {
|
||||
"prompt.action.send": "Enviar",
|
||||
"prompt.action.stop": "Parar",
|
||||
"prompt.toast.pasteUnsupported.title": "Anexo não suportado",
|
||||
"prompt.toast.attachmentDuplicate.title": "Este arquivo já foi enviado",
|
||||
"prompt.toast.pasteUnsupported.description": "Apenas imagens, PDFs ou arquivos de texto podem ser anexados aqui.",
|
||||
"prompt.toast.modelAgentRequired.title": "Selecione um agente e modelo",
|
||||
"prompt.toast.modelAgentRequired.description": "Escolha um agente e modelo antes de enviar um prompt.",
|
||||
@@ -290,7 +287,7 @@ export const dict = {
|
||||
"prompt.toast.promptSendFailed.title": "Falha ao enviar prompt",
|
||||
"prompt.toast.promptSendFailed.description": "Não foi possível recuperar a sessão",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "{{enabled}} de {{total}} ativados",
|
||||
"dialog.mcp.description": "{{enabled}} of {{total}} habilitados",
|
||||
"dialog.mcp.empty": "Nenhum MCP configurado",
|
||||
"dialog.lsp.empty": "LSPs detectados automaticamente pelos tipos de arquivo",
|
||||
"dialog.plugins.empty": "Plugins configurados em opencode.json",
|
||||
@@ -312,11 +309,11 @@ export const dict = {
|
||||
"dialog.server.search.placeholder": "Buscar servidores",
|
||||
"dialog.server.empty": "Nenhum servidor ainda",
|
||||
"dialog.server.add.title": "Adicionar um servidor",
|
||||
"dialog.server.add.url": "Endereço do servidor",
|
||||
"dialog.server.add.url": "URL do servidor",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Não foi possível conectar ao servidor",
|
||||
"dialog.server.add.checking": "Verificando...",
|
||||
"dialog.server.add.button": "Adicionar servidor",
|
||||
"dialog.server.add.button": "Adicionar",
|
||||
"dialog.server.add.name": "Nome do servidor (opcional)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "Nome de usuário (opcional)",
|
||||
@@ -324,7 +321,7 @@ export const dict = {
|
||||
"dialog.server.edit.title": "Editar servidor",
|
||||
"dialog.server.default.title": "Servidor padrão",
|
||||
"dialog.server.default.description":
|
||||
"Conectar a este servidor na inicialização do aplicativo em vez de iniciar um servidor local. Requer reinicialização.",
|
||||
"Conectar a este servidor na inicialização do aplicativo ao invés de iniciar um servidor local. Requer reinicialização.",
|
||||
"dialog.server.default.none": "Nenhum servidor selecionado",
|
||||
"dialog.server.default.set": "Definir servidor atual como padrão",
|
||||
"dialog.server.default.clear": "Limpar",
|
||||
@@ -414,33 +411,33 @@ export const dict = {
|
||||
"dialog.project.edit.color.select": "Selecionar cor {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Script de inicialização do espaço de trabalho",
|
||||
"dialog.project.edit.worktree.startup.description": "Executa após criar um novo espaço de trabalho (worktree).",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "Ex.: bun install",
|
||||
"context.breakdown.title": "Detalhamento do contexto",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "ex: bun install",
|
||||
"context.breakdown.title": "Detalhamento do Contexto",
|
||||
"context.breakdown.note":
|
||||
'Detalhamento aproximado dos tokens de entrada. "Outros" inclui definições de ferramentas e sobrecarga.',
|
||||
'Detalhamento aproximado dos tokens de entrada. "Outros" inclui definições de ferramentas e overhead.',
|
||||
"context.breakdown.system": "Sistema",
|
||||
"context.breakdown.user": "Usuário",
|
||||
"context.breakdown.assistant": "Assistente",
|
||||
"context.breakdown.tool": "Chamadas de ferramentas",
|
||||
"context.breakdown.tool": "Chamadas de Ferramentas",
|
||||
"context.breakdown.other": "Outros",
|
||||
"context.systemPrompt.title": "Prompt do sistema",
|
||||
"context.systemPrompt.title": "Prompt do Sistema",
|
||||
"context.rawMessages.title": "Mensagens brutas",
|
||||
"context.stats.session": "Sessão",
|
||||
"context.stats.messages": "Mensagens",
|
||||
"context.stats.provider": "Provedor",
|
||||
"context.stats.model": "Modelo",
|
||||
"context.stats.limit": "Limite de contexto",
|
||||
"context.stats.totalTokens": "Total de tokens",
|
||||
"context.stats.limit": "Limite de Contexto",
|
||||
"context.stats.totalTokens": "Total de Tokens",
|
||||
"context.stats.usage": "Uso",
|
||||
"context.stats.inputTokens": "Tokens de entrada",
|
||||
"context.stats.outputTokens": "Tokens de saída",
|
||||
"context.stats.reasoningTokens": "Tokens de raciocínio",
|
||||
"context.stats.cacheTokens": "Tokens de cache (leitura/escrita)",
|
||||
"context.stats.userMessages": "Mensagens do usuário",
|
||||
"context.stats.assistantMessages": "Mensagens do assistente",
|
||||
"context.stats.totalCost": "Custo total",
|
||||
"context.stats.sessionCreated": "Sessão criada",
|
||||
"context.stats.lastActivity": "Última atividade",
|
||||
"context.stats.inputTokens": "Tokens de Entrada",
|
||||
"context.stats.outputTokens": "Tokens de Saída",
|
||||
"context.stats.reasoningTokens": "Tokens de Raciocínio",
|
||||
"context.stats.cacheTokens": "Tokens de Cache (leitura/escrita)",
|
||||
"context.stats.userMessages": "Mensagens de Usuário",
|
||||
"context.stats.assistantMessages": "Mensagens do Assistente",
|
||||
"context.stats.totalCost": "Custo Total",
|
||||
"context.stats.sessionCreated": "Sessão Criada",
|
||||
"context.stats.lastActivity": "Última Atividade",
|
||||
"context.usage.tokens": "Tokens",
|
||||
"context.usage.usage": "Uso",
|
||||
"context.usage.cost": "Custo",
|
||||
@@ -499,7 +496,7 @@ export const dict = {
|
||||
"error.page.title": "Algo deu errado",
|
||||
"error.page.description": "Ocorreu um erro ao carregar a aplicação.",
|
||||
"error.page.description.localServerStartup": "Ocorreu um erro ao iniciar o servidor local.",
|
||||
"error.page.details.label": "Detalhes do erro",
|
||||
"error.page.details.label": "Detalhes do Erro",
|
||||
"error.page.action.restart": "Reiniciar",
|
||||
"error.page.action.report": "Reportar erro",
|
||||
"error.page.action.reported": "Erro reportado",
|
||||
@@ -572,7 +569,7 @@ export const dict = {
|
||||
"session.error.notFound.description": "Esta aba aponta para uma sessão que não existe mais neste servidor.",
|
||||
"session.error.notFound.closeTab": "Fechar aba",
|
||||
"session.error.serverConnection": "Não é possível conectar a este servidor",
|
||||
"session.review.filesChanged": "{{count}} arquivos alterados",
|
||||
"session.review.filesChanged": "{{count}} Arquivos Alterados",
|
||||
"session.review.change.one": "Alteração",
|
||||
"session.review.change.other": "Alterações",
|
||||
"session.review.loadingChanges": "Carregando alterações...",
|
||||
@@ -599,17 +596,14 @@ export const dict = {
|
||||
"session.question.minimize": "Minimizar pergunta",
|
||||
"session.question.restore": "Restaurar pergunta",
|
||||
"session.question.pending.one": "{{count}} pergunta pendente",
|
||||
"session.question.pending.many": "{{count}} de perguntas pendentes",
|
||||
"session.question.pending.other": "{{count}} perguntas pendentes",
|
||||
"session.followupDock.summary.one": "{{count}} mensagem na fila",
|
||||
"session.followupDock.summary.many": "{{count}} de mensagens na fila",
|
||||
"session.followupDock.summary.other": "{{count}} mensagens na fila",
|
||||
"session.followupDock.sendNow": "Enviar agora",
|
||||
"session.followupDock.edit": "Editar",
|
||||
"session.followupDock.collapse": "Recolher mensagens na fila",
|
||||
"session.followupDock.expand": "Expandir mensagens na fila",
|
||||
"session.revertDock.summary.one": "{{count}} mensagem revertida",
|
||||
"session.revertDock.summary.many": "{{count}} de mensagens revertidas",
|
||||
"session.revertDock.summary.other": "{{count}} mensagens revertidas",
|
||||
"session.revertDock.collapse": "Recolher mensagens revertidas",
|
||||
"session.revertDock.expand": "Expandir mensagens revertidas",
|
||||
@@ -661,7 +655,7 @@ export const dict = {
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Fechar terminal",
|
||||
"terminal.connectionLost.title": "Conexão perdida",
|
||||
"terminal.connectionLost.title": "Conexão Perdida",
|
||||
"terminal.connectionLost.description":
|
||||
"A conexão do terminal foi interrompida. Isso pode acontecer quando o servidor reinicia.",
|
||||
"common.closeTab": "Fechar aba",
|
||||
@@ -711,7 +705,7 @@ export const dict = {
|
||||
"settings.general.row.shell.title": "Shell do terminal",
|
||||
"settings.general.row.shell.description":
|
||||
"Escolha o shell usado no terminal. Os shells compatíveis também são usados nas chamadas de ferramentas do agente.",
|
||||
"settings.general.row.shell.autoDefault": "Automático (padrão)",
|
||||
"settings.general.row.shell.autoDefault": "Automático (Padrão)",
|
||||
"settings.general.row.shell.terminalOnly": "somente no terminal",
|
||||
"settings.general.row.appearance.title": "Aparência",
|
||||
"settings.general.row.appearance.description": "Personalize como o OpenCode aparece no seu dispositivo",
|
||||
@@ -744,9 +738,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navegação inferior",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Posicionar a barra de título e as abas da sessão na parte inferior da tela em dispositivos móveis",
|
||||
"settings.general.row.showCustomAgents.title": "Mostrar agente",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Alternar entre agentes na área de composição. Quando oculto, usa o agente Build como padrão.",
|
||||
"settings.general.row.showCustomAgents.title": "Agentes personalizados",
|
||||
"settings.general.row.showCustomAgents.description": "Mostrar o seletor de agentes na área de composição",
|
||||
"settings.general.row.reasoningSummaries.title": "Mostrar resumos de raciocínio",
|
||||
"settings.general.row.reasoningSummaries.description": "Exibir resumos de raciocínio do modelo na linha do tempo",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Expandir partes da ferramenta shell",
|
||||
@@ -829,15 +822,14 @@ export const dict = {
|
||||
"sound.option.yup06": "Sim 06",
|
||||
"settings.general.notifications.agent.title": "Agente",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Mostrar notificação do sistema quando o agente concluir o trabalho ou precisar de atenção",
|
||||
"Mostrar notificação do sistema quando o agente estiver completo ou precisar de atenção",
|
||||
"settings.general.notifications.permissions.title": "Permissões",
|
||||
"settings.general.notifications.permissions.description":
|
||||
"Mostrar notificação do sistema quando uma permissão for necessária",
|
||||
"settings.general.notifications.errors.title": "Erros",
|
||||
"settings.general.notifications.errors.description": "Mostrar notificação do sistema quando ocorrer um erro",
|
||||
"settings.general.sounds.agent.title": "Agente",
|
||||
"settings.general.sounds.agent.description":
|
||||
"Reproduzir som quando o agente concluir o trabalho ou precisar de atenção",
|
||||
"settings.general.sounds.agent.description": "Reproduzir som quando o agente estiver completo ou precisar de atenção",
|
||||
"settings.general.sounds.permissions.title": "Permissões",
|
||||
"settings.general.sounds.permissions.description": "Reproduzir som quando uma permissão for necessária",
|
||||
"settings.general.sounds.errors.title": "Erros",
|
||||
@@ -885,7 +877,8 @@ export const dict = {
|
||||
"settings.permissions.tool.read.title": "Ler",
|
||||
"settings.permissions.tool.read.description": "Ler um arquivo (corresponde ao caminho do arquivo)",
|
||||
"settings.permissions.tool.edit.title": "Editar",
|
||||
"settings.permissions.tool.edit.description": "Modificar arquivos, incluindo edições, escritas e patches",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Modificar arquivos, incluindo edições, escritas, patches e multi-edições",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Corresponder arquivos usando padrões glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
@@ -895,7 +888,7 @@ export const dict = {
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Executar comandos shell",
|
||||
"settings.permissions.tool.task.title": "Tarefa",
|
||||
"settings.permissions.tool.task.description": "Iniciar subagentes",
|
||||
"settings.permissions.tool.task.description": "Lançar sub-agentes",
|
||||
"settings.permissions.tool.skill.title": "Habilidade",
|
||||
"settings.permissions.tool.skill.description": "Carregar uma habilidade por nome",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
@@ -952,7 +945,7 @@ export const dict = {
|
||||
"common.time.hoursAgo.short": "{{count}}h atrás",
|
||||
"common.time.daysAgo.short": "{{count}}d atrás",
|
||||
"settings.providers.connected.environmentDescription": "Conectado a partir de suas variáveis de ambiente",
|
||||
"settings.providers.custom.description": "Adicionar um provedor compatível com OpenAI por meio da URL base.",
|
||||
"settings.providers.custom.description": "Adicionar um provedor compatível com a OpenAI através do URL base.",
|
||||
|
||||
"app.server.unreachable": "Não foi possível conectar a {{server}}",
|
||||
"app.server.retrying": "Tentando novamente automaticamente...",
|
||||
@@ -968,9 +961,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}} de {{total}} perguntas",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Explorador de Arquivos",
|
||||
"session.header.reveal.finder": "Revelar no Finder",
|
||||
"session.header.reveal.fileExplorer": "Revelar no Explorador de Arquivos",
|
||||
"session.header.reveal.containingFolder": "Abrir pasta que contém este item",
|
||||
"session.header.open.fileManager": "Gerenciador de Arquivos",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
|
||||
+42
-52
@@ -102,7 +102,6 @@ export const dict = {
|
||||
"dialog.provider.empty": "Nema pronađenih provajdera",
|
||||
"dialog.provider.group.popular": "Popularno",
|
||||
"dialog.provider.group.other": "Ostalo",
|
||||
"dialog.provider.custom.label": "Prilagođeni provajder kompatibilan s OpenAI-jem",
|
||||
"dialog.provider.tag.recommended": "Preporučeno",
|
||||
"dialog.provider.opencode.note": "Kurirani modeli uključujući Claude, GPT, Gemini i druge",
|
||||
"dialog.provider.opencode.tagline": "Pouzdani optimizovani modeli",
|
||||
@@ -123,7 +122,6 @@ export const dict = {
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Besplatni modeli koje obezbjeđuje OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Dodaj još modela od popularnih provajdera",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Pogledaj još više od 70 provajdera",
|
||||
|
||||
"dialog.provider.viewAll": "Prikaži više provajdera",
|
||||
|
||||
@@ -234,7 +232,7 @@ export const dict = {
|
||||
"common.clear": "Očisti",
|
||||
"common.connect": "Poveži",
|
||||
"common.disconnect": "Prekini vezu",
|
||||
"common.continue": "Nastavi",
|
||||
"common.continue": "Pošalji",
|
||||
"common.submit": "Pošalji",
|
||||
"common.save": "Sačuvaj",
|
||||
"common.saving": "Čuvanje...",
|
||||
@@ -265,7 +263,7 @@ export const dict = {
|
||||
"prompt.example.11": "Optimizuj upite prema bazi podataka",
|
||||
"prompt.example.12": "Dodaj validaciju ulaza",
|
||||
"prompt.example.13": "Napravi novu komponentu za...",
|
||||
"prompt.example.14": "Kako da postavim ovaj projekat?",
|
||||
"prompt.example.14": "Kako da deployam ovaj projekat?",
|
||||
"prompt.example.15": "Pregledaj moj kod prema najboljim praksama",
|
||||
"prompt.example.16": "Dodaj obradu grešaka u ovu funkciju",
|
||||
"prompt.example.17": "Objasni ovaj regex obrazac",
|
||||
@@ -273,14 +271,14 @@ export const dict = {
|
||||
"prompt.example.19": "Dodaj logovanje kroz cijelu bazu koda",
|
||||
"prompt.example.20": "Koje su zavisnosti zastarjele?",
|
||||
"prompt.example.21": "Pomozi mi da napišem migracijsku skriptu",
|
||||
"prompt.example.22": "Implementiraj keširanje za ovu krajnju tačku",
|
||||
"prompt.example.22": "Implementiraj keširanje za ovaj endpoint",
|
||||
"prompt.example.23": "Dodaj paginaciju u ovu listu",
|
||||
"prompt.example.24": "Napravi CLI komandu za...",
|
||||
"prompt.example.25": "Kako ovdje rade varijable okruženja?",
|
||||
|
||||
"prompt.popover.emptyResults": "Nema rezultata",
|
||||
"prompt.popover.emptyCommands": "Nema komandi",
|
||||
"prompt.dropzone.label": "Ovdje prevuci slike, PDF-ove ili tekstualne datoteke",
|
||||
"prompt.dropzone.label": "Ovdje prevucite slike, PDF-ove ili tekstualne datoteke",
|
||||
"prompt.dropzone.file.label": "Spusti za @spominjanje datoteke",
|
||||
"prompt.slash.badge.custom": "prilagođeno",
|
||||
"prompt.slash.badge.skill": "skill",
|
||||
@@ -289,7 +287,7 @@ export const dict = {
|
||||
"prompt.context.includeActiveFile": "Uključi aktivnu datoteku",
|
||||
"prompt.context.removeActiveFile": "Ukloni aktivnu datoteku iz konteksta",
|
||||
"prompt.context.removeFile": "Ukloni datoteku iz konteksta",
|
||||
"prompt.action.attachFile": "Dodaj datoteke",
|
||||
"prompt.action.attachFile": "Priloži datoteku",
|
||||
"prompt.menu.addImagesAndFiles": "Dodaj datoteke i više",
|
||||
"prompt.menu.imagesAndFiles": "Slike i datoteke",
|
||||
"prompt.menu.commands": "Komande",
|
||||
@@ -300,7 +298,6 @@ export const dict = {
|
||||
"prompt.action.stop": "Zaustavi",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Nepodržan prilog",
|
||||
"prompt.toast.attachmentDuplicate.title": "Ova datoteka je već učitana",
|
||||
"prompt.toast.pasteUnsupported.description": "Ovdje se mogu priložiti samo slike, PDF-ovi ili tekstualne datoteke.",
|
||||
"prompt.toast.modelAgentRequired.title": "Odaberi agenta i model",
|
||||
"prompt.toast.modelAgentRequired.description": "Odaberi agenta i model prije slanja upita.",
|
||||
@@ -313,7 +310,7 @@ export const dict = {
|
||||
|
||||
"dialog.mcp.title": "MCP-ovi",
|
||||
"dialog.mcp.description": "{{enabled}} od {{total}} omogućeno",
|
||||
"dialog.mcp.empty": "Nema konfigurisanih MCP-ova",
|
||||
"dialog.mcp.empty": "Nema konfigurisnih MCP-ova",
|
||||
|
||||
"dialog.lsp.empty": "LSP-ovi se automatski otkrivaju prema tipu datoteke",
|
||||
"dialog.plugins.empty": "Plugini su konfigurisani u opencode.json",
|
||||
@@ -321,18 +318,18 @@ export const dict = {
|
||||
"mcp.status.connected": "povezano",
|
||||
"mcp.status.failed": "neuspjelo",
|
||||
"mcp.status.needs_auth": "potrebna autentifikacija",
|
||||
"mcp.auth.clickToAuthenticate": "Klikni za autentifikaciju",
|
||||
"mcp.auth.clickToAuthenticate": "Kliknite za autentifikaciju",
|
||||
"mcp.status.disabled": "onemogućeno",
|
||||
|
||||
"dialog.fork.empty": "Nema poruka za fork",
|
||||
|
||||
"dialog.directory.search.placeholder": "Pretraži fascikle",
|
||||
"dialog.directory.empty": "Nema pronađenih fascikli",
|
||||
"dialog.directory.search.placeholder": "Pretraži foldere",
|
||||
"dialog.directory.empty": "Nema pronađenih foldera",
|
||||
"dialog.directory.action.selectFile": "Odaberi datoteku",
|
||||
"dialog.directory.action.selectFolder": "Odaberi fasciklu",
|
||||
"dialog.directory.action.selectFolder": "Odaberi folder",
|
||||
"dialog.directory.root": "Korijen",
|
||||
"dialog.directory.parent": "Nadređena fascikla",
|
||||
"dialog.directory.readError": "Nije moguće pročitati ovu fasciklu",
|
||||
"dialog.directory.parent": "Nadređeni folder",
|
||||
"dialog.directory.readError": "Nije moguće pročitati ovaj folder",
|
||||
|
||||
"dialog.server.title": "Serveri",
|
||||
"dialog.server.description": "Promijeni na koji se OpenCode server ova aplikacija povezuje.",
|
||||
@@ -351,7 +348,7 @@ export const dict = {
|
||||
"dialog.server.edit.title": "Uredi server",
|
||||
"dialog.server.default.title": "Podrazumijevani server",
|
||||
"dialog.server.default.description":
|
||||
"Poveži se na ovaj server pri pokretanju aplikacije umjesto pokretanja lokalnog servera. Potrebno je ponovo pokrenuti aplikaciju.",
|
||||
"Poveži se na ovaj server pri pokretanju aplikacije umjesto pokretanja lokalnog servera. Potreban je restart.",
|
||||
"dialog.server.default.none": "Nije odabran server",
|
||||
"dialog.server.default.set": "Postavi trenutni server kao podrazumijevani",
|
||||
"dialog.server.default.clear": "Očisti",
|
||||
@@ -447,7 +444,7 @@ export const dict = {
|
||||
|
||||
"context.breakdown.title": "Razlaganje konteksta",
|
||||
"context.breakdown.note":
|
||||
'Približna raspodjela ulaznih tokena. "Ostalo" uključuje definicije alata i dodatno opterećenje.',
|
||||
'Približna raspodjela ulaznih tokena. "Ostalo" uključuje definicije alata i dodatni overhead.',
|
||||
"context.breakdown.system": "Sistem",
|
||||
"context.breakdown.user": "Korisnik",
|
||||
"context.breakdown.assistant": "Asistent",
|
||||
@@ -467,7 +464,7 @@ export const dict = {
|
||||
"context.stats.inputTokens": "Ulazni tokeni",
|
||||
"context.stats.outputTokens": "Izlazni tokeni",
|
||||
"context.stats.reasoningTokens": "Tokeni za rasuđivanje",
|
||||
"context.stats.cacheTokens": "Keširani tokeni (čitanje/pisanje)",
|
||||
"context.stats.cacheTokens": "Cache tokeni (čitanje/pisanje)",
|
||||
"context.stats.userMessages": "Korisničke poruke",
|
||||
"context.stats.assistantMessages": "Poruke asistenta",
|
||||
"context.stats.totalCost": "Ukupni trošak",
|
||||
@@ -539,14 +536,14 @@ export const dict = {
|
||||
|
||||
"toast.update.title": "Dostupno ažuriranje",
|
||||
"toast.update.description": "Nova verzija OpenCode-a ({{version}}) je dostupna za instalaciju.",
|
||||
"toast.update.action.installRestart": "Instaliraj i ponovo pokreni",
|
||||
"toast.update.action.installRestart": "Instaliraj i restartuj",
|
||||
"toast.update.action.notYet": "Ne još",
|
||||
|
||||
"error.page.title": "Nešto je pošlo po zlu",
|
||||
"error.page.description": "Došlo je do greške prilikom učitavanja aplikacije.",
|
||||
"error.page.description.localServerStartup": "Došlo je do greške pri pokretanju lokalnog servera.",
|
||||
"error.page.details.label": "Detalji greške",
|
||||
"error.page.action.restart": "Ponovo pokreni",
|
||||
"error.page.action.restart": "Restartuj",
|
||||
"error.page.action.report": "Prijavi grešku",
|
||||
"error.page.action.reported": "Greška prijavljena",
|
||||
"error.page.action.exportLogs": "Izvezi logove",
|
||||
@@ -571,7 +568,7 @@ export const dict = {
|
||||
"error.chain.responseBody": "Tijelo odgovora:\n{{body}}",
|
||||
"error.chain.didYouMean": "Da li si mislio: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Model nije pronađen: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Provjeri nazive provajdera/modela u konfiguraciji (opencode.json)",
|
||||
"error.chain.checkConfig": "Provjeri konfiguraciju (opencode.json) provider/model names",
|
||||
"error.chain.mcpFailed": 'MCP server "{{name}}" nije uspio. Napomena: OpenCode još ne podržava MCP autentifikaciju.',
|
||||
"error.chain.providerAuthFailed": "Autentifikacija provajdera nije uspjela ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
@@ -613,7 +610,7 @@ export const dict = {
|
||||
"home.sessions.group.yesterday": "Jučer",
|
||||
"home.sessions.group.older": "Starije",
|
||||
"home.providerTip":
|
||||
"Poveži se s više od 75 provajdera da koristiš druge modele, uključujući Claude, GPT, Gemini i druge",
|
||||
"Povežite se s više od 75 pružalaca usluga kako biste koristili druge modele, uključujući Claude, GPT, Gemini i druge",
|
||||
|
||||
"session.tab.session": "Sesija",
|
||||
"session.tab.review": "Pregled",
|
||||
@@ -629,11 +626,11 @@ export const dict = {
|
||||
"session.review.change.other": "Izmjene",
|
||||
"session.review.loadingChanges": "Učitavanje izmjena...",
|
||||
"session.review.empty": "Još nema izmjena u ovoj sesiji",
|
||||
"session.review.noVcs": "Nije otkriven Git sistem za kontrolu verzija, pa se promjene ne prikazuju",
|
||||
"session.review.noVcs": "Nije detektovan Git sistem kontrole verzija, promjene se ne prikazuju",
|
||||
"session.review.noSnapshot":
|
||||
"Praćenje snimaka (snapshot) je onemogućeno u konfiguraciji, pa promjene sesije nisu dostupne",
|
||||
"session.review.noChanges": "Nema izmjena",
|
||||
"session.review.noUncommittedChanges": "Još nema promjena koje nisu commitovane",
|
||||
"session.review.noUncommittedChanges": "Još nema nepotvrđenih promjena",
|
||||
"session.review.noBranchChanges": "Još nema promjena na grani",
|
||||
|
||||
"session.files.selectToOpen": "Odaberi datoteku za otvaranje",
|
||||
@@ -654,17 +651,14 @@ export const dict = {
|
||||
"session.question.minimize": "Minimiziraj pitanje",
|
||||
"session.question.restore": "Vrati pitanje",
|
||||
"session.question.pending.one": "{{count}} pitanje na čekanju",
|
||||
"session.question.pending.few": "{{count}} pitanja na čekanju",
|
||||
"session.question.pending.other": "{{count}} pitanja na čekanju",
|
||||
"session.followupDock.summary.one": "{{count}} poruka na čekanju",
|
||||
"session.followupDock.summary.few": "{{count}} poruke na čekanju",
|
||||
"session.followupDock.summary.other": "{{count}} poruka na čekanju",
|
||||
"session.followupDock.sendNow": "Pošalji sada",
|
||||
"session.followupDock.edit": "Uredi",
|
||||
"session.followupDock.collapse": "Sažmi poruke na čekanju",
|
||||
"session.followupDock.expand": "Proširi poruke na čekanju",
|
||||
"session.revertDock.summary.one": "{{count}} vraćena poruka",
|
||||
"session.revertDock.summary.few": "{{count}} vraćene poruke",
|
||||
"session.revertDock.summary.other": "{{count}} vraćenih poruka",
|
||||
"session.revertDock.collapse": "Sažmi vraćene poruke",
|
||||
"session.revertDock.expand": "Proširi vraćene poruke",
|
||||
@@ -722,7 +716,7 @@ export const dict = {
|
||||
"terminal.close": "Zatvori terminal",
|
||||
"terminal.connectionLost.title": "Veza prekinuta",
|
||||
"terminal.connectionLost.description":
|
||||
"Veza s terminalom je prekinuta. Ovo se može desiti kada se server ponovo pokrene.",
|
||||
"Veza s terminalom je prekinuta. Ovo se može desiti kada se server restartuje.",
|
||||
|
||||
"common.closeTab": "Zatvori karticu",
|
||||
"common.dismiss": "Odbaci",
|
||||
@@ -730,7 +724,7 @@ export const dict = {
|
||||
"common.moreOptions": "Više opcija",
|
||||
"common.learnMore": "Saznaj više",
|
||||
"common.rename": "Preimenuj",
|
||||
"common.reset": "Vrati na početno stanje",
|
||||
"common.reset": "Resetuj",
|
||||
"common.archive": "Arhiviraj",
|
||||
"common.delete": "Izbriši",
|
||||
"common.close": "Zatvori",
|
||||
@@ -787,7 +781,7 @@ export const dict = {
|
||||
"settings.general.row.font.title": "Font za kod",
|
||||
"settings.general.row.font.description": "Prilagodi font koji se koristi u blokovima koda",
|
||||
"settings.general.row.terminalFont.title": "Font terminala",
|
||||
"settings.general.row.terminalFont.description": "Prilagodi font koji se koristi u terminalu",
|
||||
"settings.general.row.terminalFont.description": "Prilagodite font koji se koristi u terminalu",
|
||||
"settings.general.row.uiFont.title": "UI font",
|
||||
"settings.general.row.uiFont.description": "Prilagodi font koji se koristi u cijelom interfejsu",
|
||||
"settings.general.row.followup.title": "Ponašanje nadovezivanja",
|
||||
@@ -822,16 +816,15 @@ export const dict = {
|
||||
"settings.general.row.newInterface.title": "Novi raspored",
|
||||
"settings.general.row.newInterface.badge": "Novo",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Koristi nove kartice i raspored početne stranice. Ograničeno vrijeme možeš se prebacivati između rasporeda.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Sada koristiš novi raspored",
|
||||
"Koristite nove kartice i raspored početne stranice. Ograničeno vrijeme možete se prebacivati između rasporeda.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Sada koristite novi raspored",
|
||||
"settings.general.row.newInterfaceNotice.description": "Prethodni raspored više nije dostupan",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Odbaci",
|
||||
"settings.general.row.pinchZoom.title": "Zumiranje štipanjem",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Dozvoli zumiranje gestom štipanja na dodirnoj ploči i pomoću Ctrl-pomjeranja",
|
||||
"settings.general.row.wayland.title": "Koristi nativni Wayland",
|
||||
"settings.general.row.wayland.description":
|
||||
"Onemogući rezervni X11 način rada na Waylandu. Zahtijeva ponovno pokretanje.",
|
||||
"settings.general.row.wayland.description": "Onemogući X11 fallback na Waylandu. Zahtijeva restart.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Na Linuxu sa monitorima miješanih stopa osvježavanja, nativni Wayland može biti stabilniji.",
|
||||
|
||||
@@ -947,7 +940,7 @@ export const dict = {
|
||||
"settings.mcp.description": "MCP postavke će se ovdje moći podešavati.",
|
||||
|
||||
"settings.permissions.title": "Dozvole",
|
||||
"settings.permissions.description": "Kontroliši koje alate server smije koristiti zadano.",
|
||||
"settings.permissions.description": "Kontroliši koje alate server smije koristiti po defaultu.",
|
||||
"settings.permissions.section.tools": "Alati",
|
||||
"settings.permissions.toast.updateFailed.title": "Neuspjelo ažuriranje dozvola",
|
||||
|
||||
@@ -959,7 +952,7 @@ export const dict = {
|
||||
"settings.permissions.tool.read.description": "Čitanje datoteke (podudara se s putanjom datoteke)",
|
||||
"settings.permissions.tool.edit.title": "Uređivanje",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Mijenjanje datoteka, uključujući uređivanje, pisanje, zakrpe i višestruke izmjene",
|
||||
"Mijenjanje datoteka, uključujući izmjene, pisanja, patch-eve i multi-izmjene",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Podudaranje datoteka pomoću glob šablona",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
@@ -995,26 +988,26 @@ export const dict = {
|
||||
"workspace.type.sandbox": "sandbox",
|
||||
"workspace.create.failed.title": "Neuspješno kreiranje radnog prostora",
|
||||
"workspace.delete.failed.title": "Neuspješno brisanje radnog prostora",
|
||||
"workspace.resetting.title": "Vraćanje radnog prostora na početno stanje",
|
||||
"workspace.resetting.title": "Resetovanje radnog prostora",
|
||||
"workspace.resetting.description": "Ovo može potrajati minut.",
|
||||
"workspace.reset.failed.title": "Neuspješno vraćanje radnog prostora na početno stanje",
|
||||
"workspace.reset.success.title": "Radni prostor vraćen na početno stanje",
|
||||
"workspace.reset.failed.title": "Neuspješno resetovanje radnog prostora",
|
||||
"workspace.reset.success.title": "Radni prostor resetovan",
|
||||
"workspace.reset.success.description": "Radni prostor sada odgovara podrazumijevanoj grani.",
|
||||
"workspace.error.stillPreparing": "Radni prostor se još priprema",
|
||||
"workspace.status.checking": "Provjera promjena koje nisu commitovane...",
|
||||
"workspace.status.checking": "Provjera neobjedinjenih promjena...",
|
||||
"workspace.status.error": "Nije moguće provjeriti git status.",
|
||||
"workspace.status.clean": "Nisu pronađene promjene koje nisu commitovane.",
|
||||
"workspace.status.dirty": "Pronađene su promjene koje nisu commitovane u ovom radnom prostoru.",
|
||||
"workspace.status.clean": "Nisu pronađene neobjedinjene promjene.",
|
||||
"workspace.status.dirty": "Pronađene su neobjedinjene promjene u ovom radnom prostoru.",
|
||||
"workspace.delete.title": "Izbriši radni prostor",
|
||||
"workspace.delete.confirm": 'Izbriši radni prostor "{{name}}"?',
|
||||
"workspace.delete.button": "Izbriši radni prostor",
|
||||
"workspace.reset.title": "Vrati radni prostor na početno stanje",
|
||||
"workspace.reset.confirm": 'Vrati radni prostor "{{name}}" na početno stanje?',
|
||||
"workspace.reset.button": "Vrati radni prostor na početno stanje",
|
||||
"workspace.reset.title": "Resetuj radni prostor",
|
||||
"workspace.reset.confirm": 'Resetuj radni prostor "{{name}}"?',
|
||||
"workspace.reset.button": "Resetuj radni prostor",
|
||||
"workspace.reset.archived.none": "Nijedna aktivna sesija neće biti arhivirana.",
|
||||
"workspace.reset.archived.one": "1 sesija će biti arhivirana.",
|
||||
"workspace.reset.archived.many": "Biće arhivirano {{count}} sesija.",
|
||||
"workspace.reset.note": "Ovo će vratiti radni prostor na stanje podrazumijevane grane.",
|
||||
"workspace.reset.note": "Ovo će resetovati radni prostor da odgovara podrazumijevanoj grani.",
|
||||
"common.open": "Otvori",
|
||||
"dialog.releaseNotes.action.getStarted": "Započni",
|
||||
"dialog.releaseNotes.action.next": "Sljedeće",
|
||||
@@ -1027,8 +1020,8 @@ export const dict = {
|
||||
"common.time.minutesAgo.short": "prije {{count}} min",
|
||||
"common.time.hoursAgo.short": "prije {{count}} h",
|
||||
"common.time.daysAgo.short": "prije {{count}} d",
|
||||
"settings.providers.connected.environmentDescription": "Povezano s tvojim varijablama okruženja",
|
||||
"settings.providers.custom.description": "Dodaj provajdera kompatibilnog s OpenAI putem baznog URL-a.",
|
||||
"settings.providers.connected.environmentDescription": "Povezano sa vašim varijablama okruženja",
|
||||
"settings.providers.custom.description": "Dodajte provajdera kompatibilnog s OpenAI putem osnovnog URL-a.",
|
||||
|
||||
"app.server.unreachable": "Nije moguće pristupiti {{server}}",
|
||||
"app.server.retrying": "Automatski ponovni pokušaj...",
|
||||
@@ -1037,16 +1030,13 @@ export const dict = {
|
||||
"dialog.server.add.passwordPlaceholder": "lozinka",
|
||||
"server.row.noUsername": "nema korisničkog imena",
|
||||
"session.review.noVcs.createGit.title": "Kreiraj Git repozitorij",
|
||||
"session.review.noVcs.createGit.description": "Prati, pregledaj i poništi promjene u ovom projektu",
|
||||
"session.review.noVcs.createGit.description": "Pratite, pregledajte i poništite promjene u ovom projektu",
|
||||
"session.review.noVcs.createGit.actionLoading": "Kreiranje Git repozitorija...",
|
||||
"session.review.noVcs.createGit.action": "Kreiraj Git repozitorij",
|
||||
"session.todo.progress": "{{done}} od {{total}} zadataka završeno",
|
||||
"session.question.progress": "{{current}} od {{total}} pitanja",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.reveal.finder": "Prikaži u Finderu",
|
||||
"session.header.reveal.fileExplorer": "Prikaži u File Exploreru",
|
||||
"session.header.reveal.containingFolder": "Otvori fasciklu koja sadrži ovu stavku",
|
||||
"session.header.open.fileManager": "File Manager",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
|
||||
+38
-46
@@ -102,7 +102,6 @@ export const dict = {
|
||||
"dialog.provider.empty": "Ingen udbydere fundet",
|
||||
"dialog.provider.group.popular": "Populære",
|
||||
"dialog.provider.group.other": "Andre",
|
||||
"dialog.provider.custom.label": "Brugerdefineret OpenAI-kompatibel udbyder",
|
||||
"dialog.provider.tag.recommended": "Anbefalet",
|
||||
"dialog.provider.opencode.note": "Udvalgte modeller inklusive Claude, GPT, Gemini og flere",
|
||||
"dialog.provider.opencode.tagline": "Pålidelige optimerede modeller",
|
||||
@@ -123,7 +122,6 @@ export const dict = {
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Gratis modeller leveret af OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Tilføj flere modeller fra populære udbydere",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Se mere end 70 yderligere udbydere",
|
||||
|
||||
"dialog.provider.viewAll": "Vis flere udbydere",
|
||||
|
||||
@@ -135,8 +133,8 @@ export const dict = {
|
||||
"provider.connect.status.waiting": "Venter på godkendelse...",
|
||||
"provider.connect.status.failed": "Godkendelse mislykkedes: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Indtast din API-nøgle til {{provider}} for at forbinde din konto og bruge modeller fra {{provider}} i OpenCode.",
|
||||
"provider.connect.apiKey.label": "API-nøgle til {{provider}}",
|
||||
"Indtast din {{provider}} API-nøgle for at forbinde din konto og bruge {{provider}} modeller i OpenCode.",
|
||||
"provider.connect.apiKey.label": "{{provider}} API-nøgle",
|
||||
"provider.connect.apiKey.placeholder": "API-nøgle",
|
||||
"provider.connect.apiKey.required": "API-nøgle er påkrævet",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
@@ -149,7 +147,7 @@ export const dict = {
|
||||
"provider.connect.oauth.code.visit.prefix": "Besøg ",
|
||||
"provider.connect.oauth.code.visit.link": "dette link",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" for at hente din godkendelseskode, forbinde din konto og bruge modeller fra {{provider}} i OpenCode.",
|
||||
" for at hente din godkendelseskode for at forbinde din konto og bruge {{provider}} modeller i OpenCode.",
|
||||
"provider.connect.oauth.code.label": "{{method}} godkendelseskode",
|
||||
"provider.connect.oauth.code.placeholder": "Godkendelseskode",
|
||||
"provider.connect.oauth.code.required": "Godkendelseskode er påkrævet",
|
||||
@@ -157,10 +155,10 @@ export const dict = {
|
||||
"provider.connect.oauth.auto.visit.prefix": "Besøg ",
|
||||
"provider.connect.oauth.auto.visit.link": "dette link",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" og indtast koden nedenfor for at forbinde din konto og bruge modeller fra {{provider}} i OpenCode.",
|
||||
" og indtast koden nedenfor for at forbinde din konto og bruge {{provider}} modeller i OpenCode.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Bekræftelseskode",
|
||||
"provider.connect.toast.connected.title": "{{provider}} forbundet",
|
||||
"provider.connect.toast.connected.description": "Modeller fra {{provider}} er nu tilgængelige.",
|
||||
"provider.connect.toast.connected.description": "{{provider}} modeller er nu tilgængelige.",
|
||||
|
||||
"provider.custom.title": "Brugerdefineret udbyder",
|
||||
"provider.custom.description.prefix": "Konfigurer en OpenAI-kompatibel udbyder. Se ",
|
||||
@@ -219,9 +217,9 @@ export const dict = {
|
||||
"model.tooltip.inputs": "Input",
|
||||
"model.tooltip.model": "Model",
|
||||
"model.tooltip.provider": "Udbyder",
|
||||
"model.tooltip.reasoning": "Ræsonnering",
|
||||
"model.tooltip.reasoning.allowed": "Tillader ræsonnering",
|
||||
"model.tooltip.reasoning.none": "Ingen ræsonnering",
|
||||
"model.tooltip.reasoning": "Tænkning",
|
||||
"model.tooltip.reasoning.allowed": "Tillader tænkning",
|
||||
"model.tooltip.reasoning.none": "Ingen tænkning",
|
||||
"model.tooltip.context": "Kontekstgrænse {{limit}}",
|
||||
"common.search.placeholder": "Søg",
|
||||
"common.goBack": "Gå tilbage",
|
||||
@@ -232,7 +230,7 @@ export const dict = {
|
||||
"common.clear": "Ryd",
|
||||
"common.connect": "Forbind",
|
||||
"common.disconnect": "Frakobl",
|
||||
"common.continue": "Fortsæt",
|
||||
"common.continue": "Indsend",
|
||||
"common.submit": "Indsend",
|
||||
"common.save": "Gem",
|
||||
"common.saving": "Gemmer...",
|
||||
@@ -255,7 +253,7 @@ export const dict = {
|
||||
"prompt.example.3": "Ret ødelagte tests",
|
||||
"prompt.example.4": "Forklar hvordan godkendelse fungerer",
|
||||
"prompt.example.5": "Find og ret sikkerhedshuller",
|
||||
"prompt.example.6": "Tilføj enhedstests for brugertjenesten",
|
||||
"prompt.example.6": "Tilføj enhedstests for brugerservice",
|
||||
"prompt.example.7": "Refaktorer denne funktion så den er mere læsbar",
|
||||
"prompt.example.8": "Hvad betyder denne fejl?",
|
||||
"prompt.example.9": "Hjælp mig med at debugge dette problem",
|
||||
@@ -298,7 +296,6 @@ export const dict = {
|
||||
"prompt.action.stop": "Stop",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Ikke understøttet vedhæftning",
|
||||
"prompt.toast.attachmentDuplicate.title": "Denne fil er allerede uploadet",
|
||||
"prompt.toast.pasteUnsupported.description": "Kun billeder, PDF'er eller tekstfiler kan vedhæftes her.",
|
||||
"prompt.toast.modelAgentRequired.title": "Vælg en agent og model",
|
||||
"prompt.toast.modelAgentRequired.description": "Vælg en agent og model før du sender en forespørgsel.",
|
||||
@@ -337,7 +334,7 @@ export const dict = {
|
||||
"dialog.server.search.placeholder": "Søg servere",
|
||||
"dialog.server.empty": "Ingen servere endnu",
|
||||
"dialog.server.add.title": "Tilføj en server",
|
||||
"dialog.server.add.url": "Serveradresse",
|
||||
"dialog.server.add.url": "Server URL",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Kunne ikke forbinde til server",
|
||||
"dialog.server.add.checking": "Tjekker...",
|
||||
@@ -349,7 +346,7 @@ export const dict = {
|
||||
"dialog.server.edit.title": "Rediger server",
|
||||
"dialog.server.default.title": "Standardserver",
|
||||
"dialog.server.default.description":
|
||||
"Opret forbindelse til denne server, når appen starter, i stedet for at starte en lokal server. Kræver genstart.",
|
||||
"Forbind til denne server ved start af app i stedet for at starte en lokal server. Kræver genstart.",
|
||||
"dialog.server.default.none": "Ingen server valgt",
|
||||
"dialog.server.default.set": "Sæt nuværende server som standard",
|
||||
"dialog.server.default.clear": "Ryd",
|
||||
@@ -464,8 +461,8 @@ export const dict = {
|
||||
"context.stats.usage": "Forbrug",
|
||||
"context.stats.inputTokens": "Input-tokens",
|
||||
"context.stats.outputTokens": "Output-tokens",
|
||||
"context.stats.reasoningTokens": "Ræsonneringstokens",
|
||||
"context.stats.cacheTokens": "Cachetokens (læsning/skrivning)",
|
||||
"context.stats.reasoningTokens": "Tænke Tokens",
|
||||
"context.stats.cacheTokens": "Cache Tokens (læs/skriv)",
|
||||
"context.stats.userMessages": "Brugerbeskeder",
|
||||
"context.stats.assistantMessages": "Assistentbeskeder",
|
||||
"context.stats.totalCost": "Samlede omkostninger",
|
||||
@@ -568,7 +565,7 @@ export const dict = {
|
||||
"error.chain.responseBody": "Svarindhold:\n{{body}}",
|
||||
"error.chain.didYouMean": "Mente du: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Model ikke fundet: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Kontrollér udbyder- og modelnavnene i din konfiguration (opencode.json)",
|
||||
"error.chain.checkConfig": "Tjek dine konfigurations (opencode.json) udbyder/modelnavne",
|
||||
"error.chain.mcpFailed": 'MCP-server "{{name}}" fejlede. Bemærk, OpenCode understøtter ikke MCP-godkendelse endnu.',
|
||||
"error.chain.providerAuthFailed": "Udbydergodkendelse mislykkedes ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
@@ -621,12 +618,12 @@ export const dict = {
|
||||
"session.error.notFound.description": "Denne fane henviser til en session, der ikke længere findes på denne server.",
|
||||
"session.error.notFound.closeTab": "Luk fane",
|
||||
"session.error.serverConnection": "Kan ikke oprette forbindelse til denne server",
|
||||
"session.review.filesChanged": "{{count}} ændrede filer",
|
||||
"session.review.filesChanged": "{{count}} Filer ændret",
|
||||
"session.review.change.one": "Ændring",
|
||||
"session.review.change.other": "Ændringer",
|
||||
"session.review.loadingChanges": "Indlæser ændringer...",
|
||||
"session.review.empty": "Ingen ændringer i denne session endnu",
|
||||
"session.review.noVcs": "Intet Git-versionsstyringssystem fundet, så ændringer vises ikke",
|
||||
"session.review.noVcs": "Intet Git versionsstyringssystem fundet, ændringer vises ikke",
|
||||
"session.review.noSnapshot":
|
||||
"Snapshot-sporing er deaktiveret i konfigurationen, så sessionsændringer er ikke tilgængelige",
|
||||
"session.review.noChanges": "Ingen ændringer",
|
||||
@@ -752,7 +749,7 @@ export const dict = {
|
||||
"settings.tab.general": "Generelt",
|
||||
"settings.tab.shortcuts": "Genveje",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL-integration",
|
||||
"settings.desktop.wsl.title": "WSL integration",
|
||||
"settings.desktop.wsl.description": "Kør OpenCode-serveren inde i WSL på Windows.",
|
||||
|
||||
"settings.general.section.appearance": "Udseende",
|
||||
@@ -773,16 +770,15 @@ export const dict = {
|
||||
"settings.general.row.appearance.title": "Udseende",
|
||||
"settings.general.row.appearance.description": "Tilpas hvordan OpenCode ser ud på din enhed",
|
||||
"settings.general.row.colorScheme.title": "Farveskema",
|
||||
"settings.general.row.colorScheme.description":
|
||||
"Vælg, om OpenCode skal følge systemtemaet eller bruge et lyst eller mørkt tema",
|
||||
"settings.general.row.colorScheme.description": "Vælg om OpenCode følger systemets, lyst eller mørkt tema",
|
||||
"settings.general.row.theme.title": "Tema",
|
||||
"settings.general.row.theme.description": "Tilpas OpenCodes tema.",
|
||||
"settings.general.row.theme.description": "Tilpas hvordan OpenCode er temabestemt.",
|
||||
"settings.general.row.font.title": "Kode-skrifttype",
|
||||
"settings.general.row.font.description": "Tilpas skrifttypen, der bruges i kodeblokke",
|
||||
"settings.general.row.terminalFont.title": "Terminalskrifttype",
|
||||
"settings.general.row.terminalFont.description": "Tilpas den skrifttype, der bruges i terminalen",
|
||||
"settings.general.row.uiFont.title": "UI-skrifttype",
|
||||
"settings.general.row.uiFont.description": "Tilpas skrifttypen, der bruges i hele brugergrænsefladen",
|
||||
"settings.general.row.uiFont.description": "Tilpas skrifttypen, der bruges i hele brugerfladen",
|
||||
"settings.general.row.followup.title": "Opfølgningsadfærd",
|
||||
"settings.general.row.followup.description": "Vælg om opfølgende forespørgsler skal styre straks eller vente i kø",
|
||||
"settings.general.row.followup.option.queue": "Kø",
|
||||
@@ -800,11 +796,10 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigation nederst",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Placer titellinjen og sessionsfanerne nederst på skærmen på mobilenheder",
|
||||
"settings.general.row.showCustomAgents.title": "Vis agent",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Skift mellem agenter i promptfeltet. Når vælgeren er skjult, bruges Build-agenten som standard.",
|
||||
"settings.general.row.reasoningSummaries.title": "Vis ræsonneringsoversigter",
|
||||
"settings.general.row.reasoningSummaries.description": "Vis oversigter over modellens ræsonnering på tidslinjen",
|
||||
"settings.general.row.showCustomAgents.title": "Brugerdefinerede agenter",
|
||||
"settings.general.row.showCustomAgents.description": "Vis agentvælgeren i promptfeltet",
|
||||
"settings.general.row.reasoningSummaries.title": "Vis tænkeoversigter",
|
||||
"settings.general.row.reasoningSummaries.description": "Vis model tænkeoversigter i tidslinjen",
|
||||
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Udvid shell-værktøjsdele",
|
||||
"settings.general.row.shellToolPartsExpanded.description": "Vis shell-værktøjsdele udvidet som standard i tidslinjen",
|
||||
@@ -820,13 +815,13 @@ export const dict = {
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Afvis",
|
||||
"settings.general.row.pinchZoom.title": "Knib for at zoome",
|
||||
"settings.general.row.pinchZoom.description": "Tillad knibebevægelser på pegefeltet og Ctrl-rulning for at zoome",
|
||||
"settings.general.row.wayland.title": "Brug indbygget Wayland",
|
||||
"settings.general.row.wayland.title": "Brug native Wayland",
|
||||
"settings.general.row.wayland.description": "Deaktiver X11-fallback på Wayland. Kræver genstart.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"På Linux med skærme med forskellige opdateringshastigheder kan indbygget Wayland være mere stabilt.",
|
||||
"På Linux med skærme med blandet opdateringshastighed kan native Wayland være mere stabilt.",
|
||||
|
||||
"settings.general.row.releaseNotes.title": "Udgivelsesnoter",
|
||||
"settings.general.row.releaseNotes.description": 'Vis pop op-vinduer med "Hvad er nyt" efter opdateringer',
|
||||
"settings.general.row.releaseNotes.description": 'Vis "Hvad er nyt"-popups efter opdateringer',
|
||||
|
||||
"settings.updates.row.startup.title": "Tjek for opdateringer ved opstart",
|
||||
"settings.updates.row.startup.description": "Tjek automatisk for opdateringer, når OpenCode starter",
|
||||
@@ -949,9 +944,9 @@ export const dict = {
|
||||
"settings.permissions.tool.read.description": "Læsning af en fil (matcher filstien)",
|
||||
"settings.permissions.tool.edit.title": "Rediger",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Rediger filer, herunder med redigeringer, skrivning, patches og multiredigeringer",
|
||||
"Ændre filer, herunder redigeringer, skrivninger, patches og multi-redigeringer",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Find filer ved hjælp af globmønstre",
|
||||
"settings.permissions.tool.glob.description": "Match filer ved hjælp af glob-mønstre",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Søg i filindhold ved hjælp af regulære udtryk",
|
||||
"settings.permissions.tool.list.title": "Liste",
|
||||
@@ -964,8 +959,8 @@ export const dict = {
|
||||
"settings.permissions.tool.skill.description": "Indlæs en færdighed efter navn",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Kør sprogserverforespørgsler",
|
||||
"settings.permissions.tool.todowrite.title": "Skriv to-do",
|
||||
"settings.permissions.tool.todowrite.description": "Opdater to-do-listen",
|
||||
"settings.permissions.tool.todowrite.title": "Skriv To-do",
|
||||
"settings.permissions.tool.todowrite.description": "Opdater to-do listen",
|
||||
"settings.permissions.tool.webfetch.title": "Webhentning",
|
||||
"settings.permissions.tool.webfetch.description": "Hent indhold fra en URL",
|
||||
"settings.permissions.tool.websearch.title": "Websøgning",
|
||||
@@ -992,7 +987,7 @@ export const dict = {
|
||||
"workspace.reset.success.description": "Arbejdsområdet matcher nu hovedgrenen.",
|
||||
"workspace.error.stillPreparing": "Arbejdsområdet er stadig ved at blive klargjort",
|
||||
"workspace.status.checking": "Tjekker for uflettede ændringer...",
|
||||
"workspace.status.error": "Kunne ikke bekræfte Git-status.",
|
||||
"workspace.status.error": "Kunne ikke bekræfte git-status.",
|
||||
"workspace.status.clean": "Ingen uflettede ændringer fundet.",
|
||||
"workspace.status.dirty": "Uflettede ændringer fundet i dette arbejdsområde.",
|
||||
"workspace.delete.title": "Slet arbejdsområde",
|
||||
@@ -1034,9 +1029,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}} af {{total}} spørgsmål",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Stifinder",
|
||||
"session.header.reveal.finder": "Vis i Finder",
|
||||
"session.header.reveal.fileExplorer": "Vis i Stifinder",
|
||||
"session.header.reveal.containingFolder": "Åbn den overordnede mappe",
|
||||
"session.header.open.fileManager": "Filhåndtering",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -1057,11 +1049,11 @@ export const dict = {
|
||||
"debugBar.nav.tip":
|
||||
"Sidste gennemførte ruteovergang, der berører en sessionsside, målt fra routerstart til den første optegning efter den falder til ro.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Rullende antal billedrammer pr. sekund over de sidste 5 sekunder.",
|
||||
"debugBar.fps.tip": "Rullende billeder pr. sekund over de sidste 5 sekunder.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Længste billedrammetid over de sidste 5 sekunder.",
|
||||
"debugBar.frame.tip": "Værste billedtid over de sidste 5 sekunder.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Billedrammer over 32 ms i de sidste 5 sekunder.",
|
||||
"debugBar.jank.tip": "Billeder over 32ms i de sidste 5 sekunder.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Blokeret tid og antal lange opgaver i de sidste 5 sekunder. Maks opgave: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
@@ -1072,8 +1064,8 @@ export const dict = {
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Kumulativt layoutskift for den nuværende app-levetid.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Brugt JS-heap sammenholdt med heapgrænsen. Kun Chromium.",
|
||||
"debugBar.mem.tip": "Brugt JS-heap sammenholdt med heapgrænsen. {{used}} af {{limit}}.",
|
||||
"debugBar.mem.tipUnavailable": "Brugt JS-heap vs heap-grænse. Kun Chromium.",
|
||||
"debugBar.mem.tip": "Brugt JS-heap vs heap-grænse. {{used}} af {{limit}}.",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
|
||||
+94
-102
@@ -98,14 +98,13 @@ export const dict = {
|
||||
"dialog.provider.empty": "Keine Anbieter gefunden",
|
||||
"dialog.provider.group.popular": "Beliebt",
|
||||
"dialog.provider.group.other": "Andere",
|
||||
"dialog.provider.custom.label": "Benutzerdefinierter OpenAI-kompatibler Anbieter",
|
||||
"dialog.provider.tag.recommended": "Empfohlen",
|
||||
"dialog.provider.opencode.note": "Kuratierte Modelle inklusive Claude, GPT, Gemini und mehr",
|
||||
"dialog.provider.opencode.tagline": "Zuverlässige, optimierte Modelle",
|
||||
"dialog.provider.opencodeGo.tagline": "Kostengünstiges Abo für alle",
|
||||
"dialog.provider.anthropic.note": "Direkter Zugriff auf Claude-Modelle, einschließlich Pro und Max",
|
||||
"dialog.provider.copilot.note": "KI-Modelle zur Programmierunterstützung über GitHub Copilot",
|
||||
"dialog.provider.openai.note": "GPT-Modelle für schnelle, leistungsfähige allgemeine KI-Aufgaben",
|
||||
"dialog.provider.anthropic.note": "Mit Claude Pro/Max oder API-Schlüssel verbinden",
|
||||
"dialog.provider.copilot.note": "Mit Copilot oder API-Schlüssel verbinden",
|
||||
"dialog.provider.openai.note": "Mit ChatGPT Pro/Plus oder API-Schlüssel verbinden",
|
||||
"dialog.provider.google.note": "Gemini-Modelle für schnelle, strukturierte Antworten",
|
||||
"dialog.provider.openrouter.note": "Zugriff auf alle unterstützten Modelle über einen Anbieter",
|
||||
"dialog.provider.vercel.note": "Einheitlicher Zugriff auf KI-Modelle mit intelligentem Routing",
|
||||
@@ -117,18 +116,17 @@ export const dict = {
|
||||
"dialog.model.manage.provider.toggle": "Alle {{provider}}-Modelle umschalten",
|
||||
"dialog.model.unpaid.freeModels.title": "Kostenlose Modelle von OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Weitere Modelle von beliebten Anbietern hinzufügen",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Über 70 weitere Anbieter anzeigen",
|
||||
"dialog.provider.viewAll": "Mehr Anbieter anzeigen",
|
||||
"provider.connect.title": "{{provider}} verbinden",
|
||||
"provider.connect.title.anthropicProMax": "Mit Claude Pro/Max anmelden",
|
||||
"provider.connect.selectMethod": "Anmeldemethode für {{provider}} auswählen.",
|
||||
"provider.connect.method.apiKey": "API-Schlüssel",
|
||||
"provider.connect.status.inProgress": "Autorisierung läuft…",
|
||||
"provider.connect.status.waiting": "Warten auf Autorisierung…",
|
||||
"provider.connect.status.inProgress": "Autorisierung läuft...",
|
||||
"provider.connect.status.waiting": "Warten auf Autorisierung...",
|
||||
"provider.connect.status.failed": "Autorisierung fehlgeschlagen: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Geben Sie Ihren API-Schlüssel für {{provider}} ein, um Ihr Konto zu verbinden und {{provider}}-Modelle in OpenCode zu nutzen.",
|
||||
"provider.connect.apiKey.label": "API-Schlüssel für {{provider}}",
|
||||
"Geben Sie Ihren {{provider}} API-Schlüssel ein, um Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
|
||||
"provider.connect.apiKey.label": "{{provider}} API-Schlüssel",
|
||||
"provider.connect.apiKey.placeholder": "API-Schlüssel",
|
||||
"provider.connect.apiKey.required": "API-Schlüssel ist erforderlich",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
@@ -141,21 +139,21 @@ export const dict = {
|
||||
"provider.connect.oauth.code.visit.prefix": "Besuchen Sie ",
|
||||
"provider.connect.oauth.code.visit.link": "diesen Link",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
", um Ihren Autorisierungscode zu erhalten, Ihr Konto zu verbinden und {{provider}}-Modelle in OpenCode zu nutzen.",
|
||||
"provider.connect.oauth.code.label": "{{method}}-Autorisierungscode",
|
||||
", um Ihren Autorisierungscode zu erhalten, Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
|
||||
"provider.connect.oauth.code.label": "{{method}} Autorisierungscode",
|
||||
"provider.connect.oauth.code.placeholder": "Autorisierungscode",
|
||||
"provider.connect.oauth.code.required": "Autorisierungscode ist erforderlich",
|
||||
"provider.connect.oauth.code.invalid": "Ungültiger Autorisierungscode",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Besuchen Sie ",
|
||||
"provider.connect.oauth.auto.visit.link": "diesen Link",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" und geben Sie den untenstehenden Code ein, um Ihr Konto zu verbinden und {{provider}}-Modelle in OpenCode zu nutzen.",
|
||||
" und geben Sie den untenstehenden Code ein, um Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Bestätigungscode",
|
||||
"provider.connect.toast.connected.title": "{{provider}} verbunden",
|
||||
"provider.connect.toast.connected.description": "{{provider}}-Modelle sind jetzt verfügbar.",
|
||||
"provider.connect.toast.connected.description": "{{provider}} Modelle sind jetzt verfügbar.",
|
||||
"provider.custom.title": "Benutzerdefinierter Anbieter",
|
||||
"provider.custom.description.prefix": "Konfigurieren Sie einen OpenAI-kompatiblen Anbieter. Siehe die ",
|
||||
"provider.custom.description.link": "Dokumentation zur Anbieterkonfiguration",
|
||||
"provider.custom.description.link": "Anbieter-Konfigurationsdokumente",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "Anbieter-ID",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
@@ -210,32 +208,32 @@ export const dict = {
|
||||
"model.tooltip.model": "Modell",
|
||||
"model.tooltip.provider": "Anbieter",
|
||||
"model.tooltip.reasoning": "Reasoning",
|
||||
"model.tooltip.reasoning.allowed": "Reasoning möglich",
|
||||
"model.tooltip.reasoning.allowed": "Erlaubt Reasoning",
|
||||
"model.tooltip.reasoning.none": "Kein Reasoning",
|
||||
"model.tooltip.context": "Kontextlimit {{limit}}",
|
||||
"common.search.placeholder": "Suchen",
|
||||
"common.goBack": "Zurück",
|
||||
"common.goForward": "Vorwärts navigieren",
|
||||
"common.loading": "Wird geladen",
|
||||
"common.loading.ellipsis": "…",
|
||||
"common.loading": "Laden",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Abbrechen",
|
||||
"common.clear": "Leeren",
|
||||
"common.connect": "Verbinden",
|
||||
"common.disconnect": "Trennen",
|
||||
"common.continue": "Weiter",
|
||||
"common.continue": "Absenden",
|
||||
"common.submit": "Absenden",
|
||||
"common.save": "Speichern",
|
||||
"common.saving": "Wird gespeichert…",
|
||||
"common.saving": "Speichert...",
|
||||
"common.default": "Standard",
|
||||
"common.attachment": "Anhang",
|
||||
"prompt.placeholder.shell": "Shell-Befehl eingeben… {{example}}",
|
||||
"prompt.placeholder.normal": 'Beliebige Frage stellen… "{{example}}"',
|
||||
"prompt.placeholder.simple": "Beliebige Frage stellen…",
|
||||
"prompt.placeholder.shell": "Shell-Befehl eingeben... {{example}}",
|
||||
"prompt.placeholder.normal": 'Fragen Sie alles... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Fragen Sie alles...",
|
||||
"prompt.placeholder.summarizeComments": "Kommentare zusammenfassen…",
|
||||
"prompt.placeholder.summarizeComment": "Kommentar zusammenfassen…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "Esc zum Verlassen",
|
||||
"prompt.mode.shell.exit": "esc zum Verlassen",
|
||||
"session.child.promptDisabled": "Unteragenten-Sitzungen können keine Prompts erhalten.",
|
||||
"session.child.backToParent": "Zurück zur Hauptsitzung.",
|
||||
"prompt.example.1": "Ein TODO in der Codebasis beheben",
|
||||
@@ -250,8 +248,8 @@ export const dict = {
|
||||
"prompt.example.10": "API-Dokumentation generieren",
|
||||
"prompt.example.11": "Datenbankabfragen optimieren",
|
||||
"prompt.example.12": "Eingabevalidierung hinzufügen",
|
||||
"prompt.example.13": "Neue Komponente erstellen für…",
|
||||
"prompt.example.14": "Wie stelle ich dieses Projekt bereit?",
|
||||
"prompt.example.13": "Neue Komponente erstellen für...",
|
||||
"prompt.example.14": "Wie deploye ich dieses Projekt?",
|
||||
"prompt.example.15": "Meinen Code auf Best Practices überprüfen",
|
||||
"prompt.example.16": "Fehlerbehandlung zu dieser Funktion hinzufügen",
|
||||
"prompt.example.17": "Erkläre dieses Regex-Muster",
|
||||
@@ -261,12 +259,12 @@ export const dict = {
|
||||
"prompt.example.21": "Hilf mir, ein Migrationsskript zu schreiben",
|
||||
"prompt.example.22": "Caching für diesen Endpunkt implementieren",
|
||||
"prompt.example.23": "Paginierung zu dieser Liste hinzufügen",
|
||||
"prompt.example.24": "CLI-Befehl erstellen für…",
|
||||
"prompt.example.24": "CLI-Befehl erstellen für...",
|
||||
"prompt.example.25": "Wie funktionieren Umgebungsvariablen hier?",
|
||||
"prompt.popover.emptyResults": "Keine passenden Ergebnisse",
|
||||
"prompt.popover.emptyCommands": "Keine passenden Befehle",
|
||||
"prompt.dropzone.label": "Bilder, PDFs oder Textdateien hier ablegen",
|
||||
"prompt.dropzone.file.label": "Ablegen, um die Datei mit @ zu erwähnen",
|
||||
"prompt.dropzone.file.label": "Ablegen zum @Erwähnen der Datei",
|
||||
"prompt.slash.badge.custom": "benutzerdefiniert",
|
||||
"prompt.slash.badge.skill": "Skill",
|
||||
"prompt.slash.badge.mcp": "MCP",
|
||||
@@ -282,14 +280,13 @@ export const dict = {
|
||||
"prompt.menu.shellCommand": "Shell-Befehl",
|
||||
"prompt.attachment.remove": "Anhang entfernen",
|
||||
"prompt.action.send": "Senden",
|
||||
"prompt.action.stop": "Stoppen",
|
||||
"prompt.action.stop": "Stopp",
|
||||
"prompt.toast.pasteUnsupported.title": "Nicht unterstützter Anhang",
|
||||
"prompt.toast.attachmentDuplicate.title": "Diese Datei wurde bereits hochgeladen",
|
||||
"prompt.toast.pasteUnsupported.description": "Hier können nur Bilder, PDFs oder Textdateien angehängt werden.",
|
||||
"prompt.toast.modelAgentRequired.title": "Wählen Sie einen Agenten und ein Modell",
|
||||
"prompt.toast.modelAgentRequired.description":
|
||||
"Wählen Sie einen Agenten und ein Modell, bevor Sie eine Eingabe senden.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Der Worktree konnte nicht erstellt werden",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Worktree konnte nicht erstellt werden",
|
||||
"prompt.toast.sessionCreateFailed.title": "Sitzung konnte nicht erstellt werden",
|
||||
"prompt.toast.shellSendFailed.title": "Shell-Befehl konnte nicht gesendet werden",
|
||||
"prompt.toast.commandSendFailed.title": "Befehl konnte nicht gesendet werden",
|
||||
@@ -302,7 +299,7 @@ export const dict = {
|
||||
"dialog.plugins.empty": "In opencode.json konfigurierte Plugins",
|
||||
"mcp.status.connected": "verbunden",
|
||||
"mcp.status.failed": "fehlgeschlagen",
|
||||
"mcp.status.needs_auth": "Authentifizierung erforderlich",
|
||||
"mcp.status.needs_auth": "benötigt Authentifizierung",
|
||||
"mcp.auth.clickToAuthenticate": "Zum Authentifizieren klicken",
|
||||
"mcp.status.disabled": "deaktiviert",
|
||||
"dialog.fork.empty": "Keine Nachrichten zum Abzweigen vorhanden",
|
||||
@@ -318,10 +315,10 @@ export const dict = {
|
||||
"dialog.server.search.placeholder": "Server durchsuchen",
|
||||
"dialog.server.empty": "Noch keine Server",
|
||||
"dialog.server.add.title": "Server hinzufügen",
|
||||
"dialog.server.add.url": "Serveradresse",
|
||||
"dialog.server.add.url": "Server-URL",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Verbindung zum Server fehlgeschlagen",
|
||||
"dialog.server.add.checking": "Prüfen…",
|
||||
"dialog.server.add.checking": "Prüfen...",
|
||||
"dialog.server.add.button": "Server hinzufügen",
|
||||
"dialog.server.add.name": "Servername (optional)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
@@ -330,7 +327,7 @@ export const dict = {
|
||||
"dialog.server.edit.title": "Server bearbeiten",
|
||||
"dialog.server.default.title": "Standardserver",
|
||||
"dialog.server.default.description":
|
||||
"Beim App-Start mit diesem Server verbinden, anstatt einen lokalen Server zu starten. Ein Neustart ist erforderlich.",
|
||||
"Beim App-Start mit diesem Server verbinden, anstatt einen lokalen Server zu starten. Erfordert Neustart.",
|
||||
"dialog.server.default.none": "Kein Server ausgewählt",
|
||||
"dialog.server.default.set": "Aktuellen Server als Standard setzen",
|
||||
"dialog.server.default.clear": "Löschen",
|
||||
@@ -346,26 +343,26 @@ export const dict = {
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL-Server",
|
||||
"wsl.server.retryStart": "Start erneut versuchen",
|
||||
"wsl.server.updating": "Wird aktualisiert…",
|
||||
"wsl.server.updating": "Wird aktualisiert...",
|
||||
"wsl.onboarding.step.distro": "Distribution auswählen",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "WSL wird geprüft…",
|
||||
"wsl.onboarding.checkingRuntime": "WSL wird geprüft...",
|
||||
"wsl.onboarding.restartRequired": "Windows muss neu gestartet werden, um die WSL-Installation abzuschließen.",
|
||||
"wsl.onboarding.ready": "WSL ist bereit.",
|
||||
"wsl.onboarding.required": "WSL ist erforderlich, um fortzufahren.",
|
||||
"wsl.onboarding.checkingDistros": "Distributionen werden geprüft…",
|
||||
"wsl.onboarding.installingDistro": "{{distro}} wird installiert…",
|
||||
"wsl.onboarding.checkingDistro": "{{distro}} wird geprüft…",
|
||||
"wsl.onboarding.listingDistros": "Distributionen werden aufgelistet…",
|
||||
"wsl.onboarding.checkingDistros": "Distributionen werden geprüft...",
|
||||
"wsl.onboarding.installingDistro": "{{distro}} wird installiert...",
|
||||
"wsl.onboarding.checkingDistro": "{{distro}} wird geprüft...",
|
||||
"wsl.onboarding.listingDistros": "Distributionen werden aufgelistet...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} ist bereit.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} ist noch nicht installiert.",
|
||||
"wsl.onboarding.openDistroOnce": "Öffnen Sie {{distro}} einmal, um die Einrichtung abzuschließen.",
|
||||
"wsl.onboarding.finishingDistro": "Einrichtung von {{distro}} wird abgeschlossen.",
|
||||
"wsl.onboarding.pickDistro": "Wählen Sie eine Distribution aus oder installieren Sie unten eine.",
|
||||
"wsl.onboarding.checkingOpencode": "OpenCode wird geprüft…",
|
||||
"wsl.onboarding.checkingOpencodeIn": "OpenCode in {{distro}} wird geprüft…",
|
||||
"wsl.onboarding.updatingOpencode": "OpenCode wird aktualisiert…",
|
||||
"wsl.onboarding.updatingOpencodeIn": "OpenCode in {{distro}} wird aktualisiert…",
|
||||
"wsl.onboarding.checkingOpencode": "OpenCode wird geprüft...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "OpenCode in {{distro}} wird geprüft...",
|
||||
"wsl.onboarding.updatingOpencode": "OpenCode wird aktualisiert...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "OpenCode in {{distro}} wird aktualisiert...",
|
||||
"wsl.onboarding.updateOpencodeIn": "Aktualisieren Sie OpenCode in {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "OpenCode aktualisieren",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode ist in {{distro}} bereit.",
|
||||
@@ -374,11 +371,11 @@ export const dict = {
|
||||
"wsl.onboarding.installOpencode": "OpenCode installieren",
|
||||
"wsl.onboarding.chooseDistroFirst": "Wählen Sie zuerst eine Distribution aus.",
|
||||
"wsl.onboarding.loadFailed": "WSL-Status konnte nicht geladen werden.",
|
||||
"wsl.onboarding.loading": "Wird geladen…",
|
||||
"wsl.onboarding.loading": "Wird geladen...",
|
||||
"wsl.onboarding.installedDistros": "Installierte Distributionen",
|
||||
"wsl.onboarding.checkAgain": "Erneut prüfen",
|
||||
"wsl.onboarding.distroStatus.ready": "Bereit",
|
||||
"wsl.onboarding.distroStatus.checking": "Wird geprüft…",
|
||||
"wsl.onboarding.distroStatus.checking": "Wird geprüft...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode nicht installiert",
|
||||
"wsl.onboarding.distroStatus.missingTools": "Fehlend: bash, curl",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Nicht unterstützt · WSL 2 verwenden",
|
||||
@@ -397,7 +394,7 @@ export const dict = {
|
||||
"wsl.onboarding.allDistrosAdded": "Alle installierten Distributionen wurden bereits hinzugefügt.",
|
||||
"wsl.onboarding.noDistros": "Noch keine Distributionen erkannt.",
|
||||
"wsl.onboarding.install": "Installieren",
|
||||
"wsl.onboarding.installing": "Wird installiert…",
|
||||
"wsl.onboarding.installing": "Wird installiert...",
|
||||
"wsl.onboarding.installDistro": "Distribution installieren",
|
||||
"wsl.onboarding.searchDistros": "Distributionen durchsuchen",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 ist erforderlich.",
|
||||
@@ -409,13 +406,13 @@ export const dict = {
|
||||
"wsl.onboarding.unknown": "unbekannt",
|
||||
"wsl.onboarding.desktopVersion": "Desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "Die installierte Version entspricht nicht der Version der Desktop-App.",
|
||||
"wsl.onboarding.adding": "Wird hinzugefügt…",
|
||||
"wsl.onboarding.adding": "Wird hinzugefügt...",
|
||||
"dialog.project.edit.title": "Projekt bearbeiten",
|
||||
"dialog.project.edit.name": "Name",
|
||||
"dialog.project.edit.icon": "Symbol",
|
||||
"dialog.project.edit.icon.alt": "Projektsymbol",
|
||||
"dialog.project.edit.icon": "Icon",
|
||||
"dialog.project.edit.icon.alt": "Projekt-Icon",
|
||||
"dialog.project.edit.icon.hint": "Klicken oder Bild ziehen",
|
||||
"dialog.project.edit.icon.recommended": "Empfohlen: 128 × 128 px",
|
||||
"dialog.project.edit.icon.recommended": "Empfohlen: 128x128px",
|
||||
"dialog.project.edit.color": "Farbe",
|
||||
"dialog.project.edit.color.select": "{{color}}-Farbe auswählen",
|
||||
"dialog.project.edit.worktree.startup": "Startup-Skript für Arbeitsbereich",
|
||||
@@ -491,7 +488,7 @@ export const dict = {
|
||||
"toast.context.noLineSelection.description": "Wählen Sie zuerst einen Zeilenbereich in einem Datei-Tab aus.",
|
||||
"toast.session.share.copyFailed.title": "URL konnte nicht in die Zwischenablage kopiert werden",
|
||||
"toast.session.share.success.title": "Sitzung geteilt",
|
||||
"toast.session.share.success.description": "URL zum Teilen in die Zwischenablage kopiert!",
|
||||
"toast.session.share.success.description": "Teilen-URL in die Zwischenablage kopiert!",
|
||||
"toast.session.share.failed.title": "Sitzung konnte nicht geteilt werden",
|
||||
"toast.session.share.failed.description": "Beim Teilen der Sitzung ist ein Fehler aufgetreten",
|
||||
"toast.session.unshare.success.title": "Teilen der Sitzung aufgehoben",
|
||||
@@ -511,14 +508,14 @@ export const dict = {
|
||||
"error.page.action.report": "Fehler melden",
|
||||
"error.page.action.reported": "Fehler gemeldet",
|
||||
"error.page.action.exportLogs": "Protokolle exportieren",
|
||||
"error.page.action.checking": "Prüfen…",
|
||||
"error.page.action.checking": "Prüfen...",
|
||||
"error.page.action.checkUpdates": "Nach Updates suchen",
|
||||
"error.page.action.updateTo": "Auf {{version}} aktualisieren",
|
||||
"error.page.report.prefix": "Bitte melden Sie diesen Fehler dem OpenCode-Team",
|
||||
"error.page.report.discord": "auf Discord",
|
||||
"error.page.version": "Version: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"Wurzelelement nicht gefunden. Haben Sie vergessen, es in Ihre index.html aufzunehmen? Oder wurde das ID-Attribut falsch geschrieben?",
|
||||
"Wurzelelement nicht gefunden. Haben Sie vergessen, es in Ihre index.html aufzunehmen? Oder wurde das id-Attribut falsch geschrieben?",
|
||||
"error.serverSync.connectFailed": "Verbindung zum Server fehlgeschlagen. Läuft ein Server unter `{{url}}`?",
|
||||
"directory.error.invalidUrl": "Ungültiges Verzeichnis in der URL.",
|
||||
"error.chain.unknown": "Unbekannter Fehler",
|
||||
@@ -526,10 +523,10 @@ export const dict = {
|
||||
"error.chain.apiError": "API-Fehler",
|
||||
"error.chain.status": "Status: {{status}}",
|
||||
"error.chain.retryable": "Wiederholbar: {{retryable}}",
|
||||
"error.chain.responseBody": "Antwortinhalt:\n{{body}}",
|
||||
"error.chain.responseBody": "Antwort-Body:\n{{body}}",
|
||||
"error.chain.didYouMean": "Meinten Sie: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Modell nicht gefunden: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Überprüfen Sie die Anbieter- und Modellnamen in Ihrer Konfiguration (opencode.json)",
|
||||
"error.chain.checkConfig": "Überprüfen Sie Ihre Konfiguration (opencode.json) auf Anbieter-/Modellnamen",
|
||||
"error.chain.mcpFailed":
|
||||
'MCP-Server "{{name}}" fehlgeschlagen. Hinweis: OpenCode unterstützt noch keine MCP-Authentifizierung.',
|
||||
"error.chain.providerAuthFailed": "Anbieter-Authentifizierung fehlgeschlagen ({{provider}}): {{message}}",
|
||||
@@ -570,7 +567,7 @@ export const dict = {
|
||||
"home.sessions.group.yesterday": "Gestern",
|
||||
"home.sessions.group.older": "Älter",
|
||||
"home.providerTip":
|
||||
"OpenCode mit über 75 Anbietern verbinden, um weitere Modelle wie Claude, GPT, Gemini und andere zu nutzen",
|
||||
"Verbinde dich mit über 75 Anbietern, um weitere Modelle wie Claude, GPT, Gemini und andere zu nutzen",
|
||||
"session.tab.session": "Sitzung",
|
||||
"session.tab.review": "Überprüfung",
|
||||
"session.tab.context": "Kontext",
|
||||
@@ -581,12 +578,12 @@ export const dict = {
|
||||
"Dieser Tab verweist auf eine Sitzung, die auf diesem Server nicht mehr existiert.",
|
||||
"session.error.notFound.closeTab": "Tab schließen",
|
||||
"session.error.serverConnection": "Verbindung zu diesem Server nicht möglich",
|
||||
"session.review.filesChanged": "Geänderte Dateien: {{count}}",
|
||||
"session.review.filesChanged": "{{count}} Dateien geändert",
|
||||
"session.review.change.one": "Änderung",
|
||||
"session.review.change.other": "Änderungen",
|
||||
"session.review.loadingChanges": "Änderungen werden geladen…",
|
||||
"session.review.loadingChanges": "Lade Änderungen...",
|
||||
"session.review.empty": "Noch keine Änderungen in dieser Sitzung",
|
||||
"session.review.noVcs": "Kein Git-Versionskontrollsystem erkannt. Änderungen werden nicht angezeigt",
|
||||
"session.review.noVcs": "Kein Git-Versionskontrollsystem erkannt, Änderungen werden nicht angezeigt",
|
||||
"session.review.noSnapshot":
|
||||
"Snapshot-Tracking ist in der Konfiguration deaktiviert, daher sind Sitzungsänderungen nicht verfügbar",
|
||||
"session.review.noChanges": "Keine Änderungen",
|
||||
@@ -597,10 +594,10 @@ export const dict = {
|
||||
"session.files.empty": "Keine Dateien",
|
||||
"session.files.binaryContent": "Binärdatei (Inhalt kann nicht angezeigt werden)",
|
||||
"session.messages.renderEarlier": "Frühere Nachrichten rendern",
|
||||
"session.messages.loadingEarlier": "Frühere Nachrichten werden geladen…",
|
||||
"session.messages.loadingEarlier": "Lade frühere Nachrichten...",
|
||||
"session.messages.loadEarlier": "Frühere Nachrichten laden",
|
||||
"session.messages.loading": "Nachrichten werden geladen…",
|
||||
"session.messages.jumpToLatest": "Zur neuesten Nachricht springen",
|
||||
"session.messages.loading": "Lade Nachrichten...",
|
||||
"session.messages.jumpToLatest": "Zum neuesten springen",
|
||||
"session.context.addToContext": "{{selection}} zum Kontext hinzufügen",
|
||||
"session.todo.title": "Aufgaben",
|
||||
"session.todo.collapse": "Einklappen",
|
||||
@@ -620,7 +617,7 @@ export const dict = {
|
||||
"session.revertDock.collapse": "Zurückgesetzte Nachrichten einklappen",
|
||||
"session.revertDock.expand": "Zurückgesetzte Nachrichten ausklappen",
|
||||
"session.revertDock.restore": "Nachricht wiederherstellen",
|
||||
"session.new.title": "Alles entwickeln",
|
||||
"session.new.title": "Baue, was du willst",
|
||||
"session.new.project.new": "Neues Projekt",
|
||||
"session.new.project.search": "Projekte durchsuchen",
|
||||
"session.new.project.add": "Projekt hinzufügen",
|
||||
@@ -654,16 +651,16 @@ export const dict = {
|
||||
"Sitzung öffentlich im Web teilen. Sie wird für jeden mit dem Link zugänglich sein.",
|
||||
"session.share.action.share": "Teilen",
|
||||
"session.share.action.publish": "Veröffentlichen",
|
||||
"session.share.action.publishing": "Wird veröffentlicht…",
|
||||
"session.share.action.publishing": "Veröffentliche...",
|
||||
"session.share.action.unpublish": "Veröffentlichung aufheben",
|
||||
"session.share.action.unpublishing": "Veröffentlichung wird aufgehoben…",
|
||||
"session.share.action.unpublishing": "Hebe Veröffentlichung auf...",
|
||||
"session.share.action.view": "Ansehen",
|
||||
"session.share.copy.copied": "Kopiert",
|
||||
"session.share.copy.copyLink": "Link kopieren",
|
||||
"lsp.tooltip.none": "Keine LSP-Server",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Prompt wird geladen…",
|
||||
"terminal.loading": "Terminal wird geladen…",
|
||||
"prompt.loading": "Lade Prompt...",
|
||||
"terminal.loading": "Lade Terminal...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Terminal schließen",
|
||||
@@ -730,12 +727,12 @@ export const dict = {
|
||||
"settings.general.row.font.title": "Code-Schriftart",
|
||||
"settings.general.row.font.description": "Die in Codeblöcken verwendete Schriftart anpassen",
|
||||
"settings.general.row.terminalFont.title": "Terminalschriftart",
|
||||
"settings.general.row.terminalFont.description": "Die im Terminal verwendete Schriftart anpassen",
|
||||
"settings.general.row.terminalFont.description": "Passe die im Terminal verwendete Schriftart an",
|
||||
"settings.general.row.uiFont.title": "UI-Schriftart",
|
||||
"settings.general.row.uiFont.description": "Die in der gesamten Benutzeroberfläche verwendete Schriftart anpassen",
|
||||
"settings.general.row.followup.title": "Verhalten bei Folgeeingaben",
|
||||
"settings.general.row.uiFont.description": "Die im gesamten Interface verwendete Schriftart anpassen",
|
||||
"settings.general.row.followup.title": "Verhalten bei Folgefragen",
|
||||
"settings.general.row.followup.description":
|
||||
"Wählen Sie, ob Folgeeingaben die laufende Sitzung sofort steuern oder in einer Warteschlange warten",
|
||||
"Wählen Sie, ob Folgefragen sofort steuern oder in einer Warteschlange warten",
|
||||
"settings.general.row.followup.option.queue": "Warteschlange",
|
||||
"settings.general.row.followup.option.steer": "Steuern",
|
||||
"settings.general.row.showFileTree.title": "Dateibaum",
|
||||
@@ -753,9 +750,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigation unten",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Titelleiste und Sitzungs-Tabs auf Mobilgeräten am unteren Bildschirmrand platzieren",
|
||||
"settings.general.row.showCustomAgents.title": "Agent anzeigen",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Im Eingabebereich zwischen Agenten wechseln. Ist die Auswahl ausgeblendet, wird standardmäßig der Build-Agent verwendet.",
|
||||
"settings.general.row.showCustomAgents.title": "Benutzerdefinierte Agenten",
|
||||
"settings.general.row.showCustomAgents.description": "Agentenauswahl im Eingabebereich anzeigen",
|
||||
"settings.general.row.reasoningSummaries.title": "Reasoning-Zusammenfassungen anzeigen",
|
||||
"settings.general.row.reasoningSummaries.description":
|
||||
"Zusammenfassungen des Modell-Reasonings in der Timeline anzeigen",
|
||||
@@ -775,7 +771,7 @@ export const dict = {
|
||||
"settings.general.row.pinchZoom.title": "Zoom per Fingergeste",
|
||||
"settings.general.row.pinchZoom.description": "Zoomen per Zwei-Finger- und Ctrl-Scroll-Geste erlauben",
|
||||
"settings.general.row.wayland.title": "Natives Wayland verwenden",
|
||||
"settings.general.row.wayland.description": "X11-Fallback unter Wayland deaktivieren. Ein Neustart ist erforderlich.",
|
||||
"settings.general.row.wayland.description": "X11-Fallback unter Wayland deaktivieren. Erfordert Neustart.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Unter Linux mit Monitoren unterschiedlicher Bildwiederholraten kann natives Wayland stabiler sein.",
|
||||
"settings.general.row.releaseNotes.title": "Versionshinweise",
|
||||
@@ -785,11 +781,11 @@ export const dict = {
|
||||
"settings.updates.row.check.title": "Nach Updates suchen",
|
||||
"settings.updates.row.check.description": "Manuell nach Updates suchen und installieren, wenn verfügbar",
|
||||
"settings.updates.action.checkNow": "Jetzt prüfen",
|
||||
"settings.updates.action.checking": "Wird geprüft…",
|
||||
"settings.updates.action.downloading": "Wird heruntergeladen…",
|
||||
"settings.updates.action.installing": "Wird installiert…",
|
||||
"settings.updates.toast.latest.title": "OpenCode ist auf dem neuesten Stand",
|
||||
"settings.updates.toast.latest.description": "Die aktuelle Version von OpenCode wird verwendet.",
|
||||
"settings.updates.action.checking": "Wird geprüft...",
|
||||
"settings.updates.action.downloading": "Wird heruntergeladen...",
|
||||
"settings.updates.action.installing": "Wird installiert...",
|
||||
"settings.updates.toast.latest.title": "Du bist auf dem neuesten Stand",
|
||||
"settings.updates.toast.latest.description": "Du verwendest die aktuelle Version von OpenCode.",
|
||||
"sound.option.none": "Keine",
|
||||
"sound.option.alert01": "Alarm 01",
|
||||
"sound.option.alert02": "Alarm 02",
|
||||
@@ -905,8 +901,8 @@ export const dict = {
|
||||
"settings.permissions.tool.bash.description": "Shell-Befehle ausführen",
|
||||
"settings.permissions.tool.task.title": "Aufgabe",
|
||||
"settings.permissions.tool.task.description": "Unteragenten starten",
|
||||
"settings.permissions.tool.skill.title": "Skill",
|
||||
"settings.permissions.tool.skill.description": "Einen Skill anhand des Namens laden",
|
||||
"settings.permissions.tool.skill.title": "Fähigkeit",
|
||||
"settings.permissions.tool.skill.description": "Eine Fähigkeit nach Namen laden",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Language-Server-Abfragen ausführen",
|
||||
"settings.permissions.tool.todowrite.title": "Todo schreiben",
|
||||
@@ -934,7 +930,7 @@ export const dict = {
|
||||
"workspace.reset.success.title": "Arbeitsbereich zurückgesetzt",
|
||||
"workspace.reset.success.description": "Der Arbeitsbereich entspricht jetzt dem Standard-Branch.",
|
||||
"workspace.error.stillPreparing": "Arbeitsbereich wird noch vorbereitet",
|
||||
"workspace.status.checking": "Suche nach nicht zusammengeführten Änderungen…",
|
||||
"workspace.status.checking": "Suche nach nicht zusammengeführten Änderungen...",
|
||||
"workspace.status.error": "Git-Status konnte nicht überprüft werden.",
|
||||
"workspace.status.clean": "Keine nicht zusammengeführten Änderungen erkannt.",
|
||||
"workspace.status.dirty": "Nicht zusammengeführte Änderungen in diesem Arbeitsbereich erkannt.",
|
||||
@@ -964,7 +960,7 @@ export const dict = {
|
||||
"settings.providers.custom.description": "Fügen Sie einen OpenAI-kompatiblen Anbieter per Basis-URL hinzu.",
|
||||
|
||||
"app.server.unreachable": "Konnte {{server}} nicht erreichen",
|
||||
"app.server.retrying": "Verbindung wird automatisch erneut hergestellt…",
|
||||
"app.server.retrying": "Automatische erneute Verbindung...",
|
||||
"app.server.otherServers": "Andere Server",
|
||||
"dialog.server.add.usernamePlaceholder": "Benutzername",
|
||||
"dialog.server.add.passwordPlaceholder": "Passwort",
|
||||
@@ -972,15 +968,12 @@ export const dict = {
|
||||
"session.review.noVcs.createGit.title": "Git-Repository erstellen",
|
||||
"session.review.noVcs.createGit.description":
|
||||
"Änderungen in diesem Projekt verfolgen, überprüfen und rückgängig machen",
|
||||
"session.review.noVcs.createGit.actionLoading": "Git-Repository wird erstellt…",
|
||||
"session.review.noVcs.createGit.actionLoading": "Git-Repository wird erstellt...",
|
||||
"session.review.noVcs.createGit.action": "Git-Repository erstellen",
|
||||
"session.todo.progress": "{{done}} von {{total}} Aufgaben erledigt",
|
||||
"session.question.progress": "{{current}} von {{total}} Fragen",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Datei-Explorer",
|
||||
"session.header.reveal.finder": "Im Finder anzeigen",
|
||||
"session.header.reveal.fileExplorer": "Im Datei-Explorer anzeigen",
|
||||
"session.header.reveal.containingFolder": "Übergeordneten Ordner öffnen",
|
||||
"session.header.open.fileManager": "Dateimanager",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -995,30 +988,29 @@ export const dict = {
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"debugBar.ariaLabel": "Leistungsdiagnose für die Entwicklung",
|
||||
"debugBar.ariaLabel": "Entwicklungs-Leistungsdiagnose",
|
||||
"debugBar.na": "n.v.",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Letzter abgeschlossener Routenübergang zu einer Sitzungsseite, gemessen vom Start des Routers bis zum ersten Rendering nach Abschluss des Übergangs.",
|
||||
"Letzter abgeschlossener Routenübergang, der eine Sitzungsseite berührt, gemessen vom Start des Routers bis zum ersten Rendern nach dem Einschwingen.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Gleitender Mittelwert der Frames pro Sekunde in den letzten 5 Sekunden.",
|
||||
"debugBar.fps.tip": "Gleitende Bilder pro Sekunde in den letzten 5 Sekunden.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Längste Framedauer in den letzten 5 Sekunden.",
|
||||
"debugBar.frame.tip": "Schlechteste Frame-Zeit in den letzten 5 Sekunden.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Frames über 32 ms in den letzten 5 Sekunden.",
|
||||
"debugBar.jank.tip": "Frames über 32ms in den letzten 5 Sekunden.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip":
|
||||
"Blockierte Zeit und Anzahl langer Aufgaben in den letzten 5 Sekunden. Längste Aufgabe: {{max}}.",
|
||||
"debugBar.long.tip": "Blockierte Zeit und Anzahl langer Aufgaben in den letzten 5 Sekunden. Max Aufgabe: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Schlechteste beobachtete Eingabeverzögerung in den letzten 5 Sekunden.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Ungefähre Interaktionsdauer in den letzten 5 Sekunden. Dies ist INP-ähnlich, nicht das offizielle Web-Vitals-INP.",
|
||||
"Ungefähre Interaktionsdauer in den letzten 5 Sekunden. Dies ist INP-ähnlich, nicht das offizielle Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Kumulative Layoutverschiebung während der aktuellen App-Laufzeit.",
|
||||
"debugBar.cls.tip": "Kumulative Layoutverschiebung für die aktuelle App-Lebensdauer.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Belegter JS-Heap im Verhältnis zum Heap-Limit. Nur Chromium.",
|
||||
"debugBar.mem.tip": "Belegter JS-Heap im Verhältnis zum Heap-Limit. {{used}} von {{limit}}.",
|
||||
"debugBar.mem.tipUnavailable": "Verwendeter JS-Heap vs Heap-Limit. Nur Chromium.",
|
||||
"debugBar.mem.tip": "Verwendeter JS-Heap vs Heap-Limit. {{used}} von {{limit}}.",
|
||||
"common.key.ctrl": "Strg",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Umschalt",
|
||||
@@ -1039,7 +1031,7 @@ export const dict = {
|
||||
"error.serverSDK.serverNotAvailable": "Server nicht verfügbar",
|
||||
"error.childStore.persistedCacheCreateFailed": "Dauerhafter Cache konnte nicht erstellt werden",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Dauerhafte Projektmetadaten konnten nicht erstellt werden",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Dauerhaftes Projektsymbol konnte nicht erstellt werden",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Dauerhaftes Projekticon konnte nicht erstellt werden",
|
||||
"error.childStore.storeCreateFailed": "Speicher konnte nicht erstellt werden",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket unerwartet geschlossen: {{code}}",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket abnormal geschlossen: {{code}}",
|
||||
} satisfies Partial<Record<Keys, string>>
|
||||
|
||||
@@ -301,7 +301,6 @@ export const dict = {
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Unsupported attachment",
|
||||
"prompt.toast.pasteUnsupported.description": "Only images, PDFs, or text files can be attached here.",
|
||||
"prompt.toast.attachmentDuplicate.title": "This file has already been uploaded",
|
||||
"prompt.toast.modelAgentRequired.title": "Select an agent and model",
|
||||
"prompt.toast.modelAgentRequired.description": "Choose an agent and model before sending a prompt.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Failed to create worktree",
|
||||
|
||||
+101
-111
@@ -21,7 +21,7 @@ export const dict = {
|
||||
"theme.scheme.light": "Claro",
|
||||
"theme.scheme.dark": "Oscuro",
|
||||
|
||||
"command.sidebar.toggle": "Mostrar u ocultar barra lateral",
|
||||
"command.sidebar.toggle": "Alternar barra lateral",
|
||||
"command.project.open": "Abrir proyecto",
|
||||
"command.project.previous": "Proyecto anterior",
|
||||
"command.project.next": "Siguiente proyecto",
|
||||
@@ -37,12 +37,12 @@ export const dict = {
|
||||
|
||||
"command.palette": "Paleta de comandos",
|
||||
|
||||
"command.theme.cycle": "Cambiar tema",
|
||||
"command.theme.cycle": "Alternar tema",
|
||||
"command.theme.set": "Usar tema: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Cambiar esquema de color",
|
||||
"command.theme.scheme.cycle": "Alternar esquema de color",
|
||||
"command.theme.scheme.set": "Usar esquema de color: {{scheme}}",
|
||||
|
||||
"command.language.cycle": "Cambiar idioma",
|
||||
"command.language.cycle": "Alternar idioma",
|
||||
"command.language.set": "Usar idioma: {{language}}",
|
||||
|
||||
"command.session.new": "Nueva sesión",
|
||||
@@ -52,12 +52,12 @@ export const dict = {
|
||||
"command.context.addSelection": "Añadir selección al contexto",
|
||||
"command.context.addSelection.description": "Añadir las líneas seleccionadas del archivo actual",
|
||||
"command.input.focus": "Enfocar entrada",
|
||||
"command.terminal.toggle": "Mostrar u ocultar terminal",
|
||||
"command.fileTree.toggle": "Mostrar u ocultar árbol de archivos",
|
||||
"command.review.toggle": "Mostrar u ocultar revisión",
|
||||
"command.terminal.toggle": "Alternar terminal",
|
||||
"command.fileTree.toggle": "Alternar árbol de archivos",
|
||||
"command.review.toggle": "Alternar revisión",
|
||||
"command.terminal.new": "Nueva terminal",
|
||||
"command.terminal.new.description": "Crear una nueva pestaña de terminal",
|
||||
"command.steps.toggle": "Mostrar u ocultar pasos",
|
||||
"command.steps.toggle": "Alternar pasos",
|
||||
"command.steps.toggle.description": "Mostrar u ocultar pasos para el mensaje actual",
|
||||
"command.message.previous": "Mensaje anterior",
|
||||
"command.message.previous.description": "Ir al mensaje de usuario anterior",
|
||||
@@ -65,19 +65,19 @@ export const dict = {
|
||||
"command.message.next.description": "Ir al siguiente mensaje de usuario",
|
||||
"command.model.choose": "Elegir modelo",
|
||||
"command.model.choose.description": "Seleccionar un modelo diferente",
|
||||
"command.mcp.toggle": "Activar o desactivar servidores MCP",
|
||||
"command.mcp.toggle.description": "Activar o desactivar servidores MCP",
|
||||
"command.agent.cycle": "Cambiar de agente",
|
||||
"command.mcp.toggle": "Alternar MCPs",
|
||||
"command.mcp.toggle.description": "Alternar MCPs",
|
||||
"command.agent.cycle": "Alternar agente",
|
||||
"command.agent.cycle.description": "Cambiar al siguiente agente",
|
||||
"command.agent.cycle.reverse": "Cambiar al agente anterior",
|
||||
"command.agent.cycle.reverse": "Alternar agente hacia atrás",
|
||||
"command.agent.cycle.reverse.description": "Cambiar al agente anterior",
|
||||
"command.model.variant.cycle": "Cambiar esfuerzo de razonamiento",
|
||||
"command.model.variant.cycle": "Alternar esfuerzo de pensamiento",
|
||||
"command.model.variant.cycle.description": "Cambiar al siguiente nivel de esfuerzo",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "Aceptar permisos automáticamente",
|
||||
"command.permissions.autoaccept.disable": "Dejar de aceptar permisos automáticamente",
|
||||
"command.workspace.toggle": "Activar o desactivar espacios de trabajo",
|
||||
"command.workspace.toggle": "Alternar espacios de trabajo",
|
||||
"command.workspace.toggle.description": "Habilitar o deshabilitar múltiples espacios de trabajo en la barra lateral",
|
||||
"command.session.undo": "Deshacer",
|
||||
"command.session.undo.description": "Deshacer el último mensaje",
|
||||
@@ -100,18 +100,17 @@ export const dict = {
|
||||
|
||||
"dialog.provider.search.placeholder": "Buscar proveedores",
|
||||
"dialog.provider.empty": "No se encontraron proveedores",
|
||||
"dialog.provider.group.popular": "Populares",
|
||||
"dialog.provider.group.other": "Otros",
|
||||
"dialog.provider.custom.label": "Proveedor personalizado compatible con OpenAI",
|
||||
"dialog.provider.group.popular": "Popular",
|
||||
"dialog.provider.group.other": "Otro",
|
||||
"dialog.provider.tag.recommended": "Recomendado",
|
||||
"dialog.provider.opencode.note": "Selección de modelos como Claude, GPT, Gemini y otros",
|
||||
"dialog.provider.opencode.note": "Modelos seleccionados incluyendo Claude, GPT, Gemini y más",
|
||||
"dialog.provider.opencode.tagline": "Modelos optimizados y fiables",
|
||||
"dialog.provider.opencodeGo.tagline": "Suscripción económica para todos",
|
||||
"dialog.provider.anthropic.note": "Acceso directo a modelos Claude, incluidos Pro y Max",
|
||||
"dialog.provider.anthropic.note": "Acceso directo a modelos Claude, incluyendo Pro y Max",
|
||||
"dialog.provider.copilot.note": "Modelos de IA para asistencia de codificación a través de GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Modelos GPT para tareas de IA generales rápidas y capaces",
|
||||
"dialog.provider.google.note": "Modelos Gemini para respuestas rápidas y estructuradas",
|
||||
"dialog.provider.openrouter.note": "Accede a todos los modelos compatibles desde un solo proveedor",
|
||||
"dialog.provider.openrouter.note": "Accede a todos los modelos soportados desde un solo proveedor",
|
||||
"dialog.provider.vercel.note": "Acceso unificado a modelos de IA con enrutamiento inteligente",
|
||||
|
||||
"dialog.model.select.title": "Seleccionar modelo",
|
||||
@@ -119,11 +118,10 @@ export const dict = {
|
||||
"dialog.model.empty": "Sin resultados de modelos",
|
||||
"dialog.model.manage": "Gestionar modelos",
|
||||
"dialog.model.manage.description": "Personalizar qué modelos aparecen en el selector de modelos.",
|
||||
"dialog.model.manage.provider.toggle": "Mostrar u ocultar todos los modelos de {{provider}}",
|
||||
"dialog.model.manage.provider.toggle": "Alternar todos los modelos de {{provider}}",
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Modelos gratuitos proporcionados por OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Añadir más modelos de proveedores populares",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Ver más de 70 proveedores",
|
||||
|
||||
"dialog.provider.viewAll": "Ver más proveedores",
|
||||
|
||||
@@ -175,8 +173,7 @@ export const dict = {
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.miproveedor.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Clave API",
|
||||
"provider.custom.field.apiKey.placeholder": "Clave API",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"Opcional. Déjalo vacío si gestionas la autenticación mediante encabezados.",
|
||||
"provider.custom.field.apiKey.description": "Opcional. Dejar vacío si gestionas la autenticación mediante cabeceras.",
|
||||
"provider.custom.models.label": "Modelos",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "id-modelo",
|
||||
@@ -184,13 +181,13 @@ export const dict = {
|
||||
"provider.custom.models.name.placeholder": "Nombre para mostrar",
|
||||
"provider.custom.models.remove": "Eliminar modelo",
|
||||
"provider.custom.models.add": "Añadir modelo",
|
||||
"provider.custom.headers.label": "Encabezados (opcional)",
|
||||
"provider.custom.headers.key.label": "Encabezado",
|
||||
"provider.custom.headers.key.placeholder": "Nombre-Encabezado",
|
||||
"provider.custom.headers.label": "Cabeceras (opcional)",
|
||||
"provider.custom.headers.key.label": "Cabecera",
|
||||
"provider.custom.headers.key.placeholder": "Nombre-Cabecera",
|
||||
"provider.custom.headers.value.label": "Valor",
|
||||
"provider.custom.headers.value.placeholder": "valor",
|
||||
"provider.custom.headers.remove": "Eliminar encabezado",
|
||||
"provider.custom.headers.add": "Añadir encabezado",
|
||||
"provider.custom.headers.remove": "Eliminar cabecera",
|
||||
"provider.custom.headers.add": "Añadir cabecera",
|
||||
"provider.custom.error.providerID.required": "El ID del proveedor es obligatorio",
|
||||
"provider.custom.error.providerID.format": "Usa letras minúsculas, números, guiones o guiones bajos",
|
||||
"provider.custom.error.providerID.exists": "Ese ID de proveedor ya existe",
|
||||
@@ -204,7 +201,7 @@ export const dict = {
|
||||
"provider.disconnect.toast.disconnected.description": "Los modelos de {{provider}} ya no están disponibles.",
|
||||
|
||||
"model.tag.free": "Gratis",
|
||||
"model.tag.latest": "Más reciente",
|
||||
"model.tag.latest": "Último",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
@@ -214,7 +211,7 @@ export const dict = {
|
||||
"model.input.image": "imagen",
|
||||
"model.input.audio": "audio",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Permite: {{inputs}}",
|
||||
"model.tooltip.context.label": "Contexto",
|
||||
"model.tooltip.inputs": "Entradas",
|
||||
@@ -234,7 +231,7 @@ export const dict = {
|
||||
"common.clear": "Limpiar",
|
||||
"common.connect": "Conectar",
|
||||
"common.disconnect": "Desconectar",
|
||||
"common.continue": "Continuar",
|
||||
"common.continue": "Enviar",
|
||||
"common.submit": "Enviar",
|
||||
"common.save": "Guardar",
|
||||
"common.saving": "Guardando...",
|
||||
@@ -253,7 +250,7 @@ export const dict = {
|
||||
"session.child.backToParent": "Volver a la sesión principal.",
|
||||
|
||||
"prompt.example.1": "Arreglar un TODO en el código",
|
||||
"prompt.example.2": "¿Qué tecnologías usa este proyecto?",
|
||||
"prompt.example.2": "¿Cuál es el stack tecnológico de este proyecto?",
|
||||
"prompt.example.3": "Arreglar pruebas rotas",
|
||||
"prompt.example.4": "Explicar cómo funciona la autenticación",
|
||||
"prompt.example.5": "Encontrar y arreglar vulnerabilidades de seguridad",
|
||||
@@ -266,22 +263,22 @@ export const dict = {
|
||||
"prompt.example.12": "Añadir validación de entrada",
|
||||
"prompt.example.13": "Crear un nuevo componente para...",
|
||||
"prompt.example.14": "¿Cómo despliego este proyecto?",
|
||||
"prompt.example.15": "Revisar si mi código sigue las prácticas recomendadas",
|
||||
"prompt.example.16": "Añadir gestión de errores a esta función",
|
||||
"prompt.example.17": "Explicar este patrón de expresión regular",
|
||||
"prompt.example.15": "Revisar mi código para mejores prácticas",
|
||||
"prompt.example.16": "Añadir manejo de errores a esta función",
|
||||
"prompt.example.17": "Explicar este patrón de regex",
|
||||
"prompt.example.18": "Convertir esto a TypeScript",
|
||||
"prompt.example.19": "Añadir registros en todo el código",
|
||||
"prompt.example.19": "Añadir logging en todo el código",
|
||||
"prompt.example.20": "¿Qué dependencias están desactualizadas?",
|
||||
"prompt.example.21": "Ayúdame a escribir un script de migración",
|
||||
"prompt.example.22": "Implementar caché para este punto de conexión",
|
||||
"prompt.example.22": "Implementar caché para este endpoint",
|
||||
"prompt.example.23": "Añadir paginación a esta lista",
|
||||
"prompt.example.24": "Crear un comando CLI para...",
|
||||
"prompt.example.25": "¿Cómo funcionan las variables de entorno aquí?",
|
||||
|
||||
"prompt.popover.emptyResults": "Sin resultados coincidentes",
|
||||
"prompt.popover.emptyCommands": "Sin comandos coincidentes",
|
||||
"prompt.dropzone.label": "Suelta aquí imágenes, archivos PDF o archivos de texto",
|
||||
"prompt.dropzone.file.label": "Suelta para @mencionar el archivo",
|
||||
"prompt.dropzone.label": "Suelta imágenes, PDFs o archivos de texto aquí",
|
||||
"prompt.dropzone.file.label": "Suelta para @mencionar archivo",
|
||||
"prompt.slash.badge.custom": "personalizado",
|
||||
"prompt.slash.badge.skill": "skill",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
@@ -289,7 +286,7 @@ export const dict = {
|
||||
"prompt.context.includeActiveFile": "Incluir archivo activo",
|
||||
"prompt.context.removeActiveFile": "Eliminar archivo activo del contexto",
|
||||
"prompt.context.removeFile": "Eliminar archivo del contexto",
|
||||
"prompt.action.attachFile": "Añadir archivos",
|
||||
"prompt.action.attachFile": "Adjuntar archivo",
|
||||
"prompt.menu.addImagesAndFiles": "Añadir archivos y más",
|
||||
"prompt.menu.imagesAndFiles": "Imágenes y archivos",
|
||||
"prompt.menu.commands": "Comandos",
|
||||
@@ -300,9 +297,7 @@ export const dict = {
|
||||
"prompt.action.stop": "Detener",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Adjunto no compatible",
|
||||
"prompt.toast.attachmentDuplicate.title": "Este archivo ya se ha subido",
|
||||
"prompt.toast.pasteUnsupported.description":
|
||||
"Aquí solo se pueden adjuntar imágenes, archivos PDF o archivos de texto.",
|
||||
"prompt.toast.pasteUnsupported.description": "Solo se pueden adjuntar imágenes, PDFs o archivos de texto aquí.",
|
||||
"prompt.toast.modelAgentRequired.title": "Selecciona un agente y modelo",
|
||||
"prompt.toast.modelAgentRequired.description": "Elige un agente y modelo antes de enviar un prompt.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Fallo al crear el árbol de trabajo",
|
||||
@@ -312,16 +307,16 @@ export const dict = {
|
||||
"prompt.toast.promptSendFailed.title": "Fallo al enviar prompt",
|
||||
"prompt.toast.promptSendFailed.description": "No se pudo recuperar la sesión",
|
||||
|
||||
"dialog.mcp.title": "Servidores MCP",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "{{enabled}} de {{total}} habilitados",
|
||||
"dialog.mcp.empty": "No hay servidores MCP configurados",
|
||||
"dialog.mcp.empty": "No hay MCPs configurados",
|
||||
|
||||
"dialog.lsp.empty": "Servidores LSP detectados automáticamente por tipo de archivo",
|
||||
"dialog.lsp.empty": "LSPs detectados automáticamente por tipo de archivo",
|
||||
"dialog.plugins.empty": "Plugins configurados en opencode.json",
|
||||
|
||||
"mcp.status.connected": "conectado",
|
||||
"mcp.status.failed": "fallido",
|
||||
"mcp.status.needs_auth": "requiere autenticación",
|
||||
"mcp.status.needs_auth": "necesita auth",
|
||||
"mcp.auth.clickToAuthenticate": "Haz clic para autenticar",
|
||||
"mcp.status.disabled": "deshabilitado",
|
||||
|
||||
@@ -332,13 +327,13 @@ export const dict = {
|
||||
"dialog.directory.action.selectFile": "Seleccionar archivo",
|
||||
"dialog.directory.action.selectFolder": "Seleccionar carpeta",
|
||||
"dialog.directory.root": "Raíz",
|
||||
"dialog.directory.parent": "Carpeta superior",
|
||||
"dialog.directory.parent": "Superior",
|
||||
"dialog.directory.readError": "No se puede leer esta carpeta",
|
||||
|
||||
"dialog.server.title": "Servidores",
|
||||
"dialog.server.description": "Cambiar el servidor de OpenCode al que se conecta esta aplicación.",
|
||||
"dialog.server.description": "Cambiar a qué servidor de OpenCode se conecta esta app.",
|
||||
"dialog.server.search.placeholder": "Buscar servidores",
|
||||
"dialog.server.empty": "Aún no hay servidores",
|
||||
"dialog.server.empty": "No hay servidores aún",
|
||||
"dialog.server.add.title": "Añadir un servidor",
|
||||
"dialog.server.add.url": "URL del servidor",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
@@ -352,7 +347,7 @@ export const dict = {
|
||||
"dialog.server.edit.title": "Editar servidor",
|
||||
"dialog.server.default.title": "Servidor predeterminado",
|
||||
"dialog.server.default.description":
|
||||
"Conectar a este servidor al iniciar la aplicación en lugar de iniciar un servidor local. Requiere reiniciar.",
|
||||
"Conectar a este servidor al iniciar la app en lugar de iniciar un servidor local. Requiere reinicio.",
|
||||
"dialog.server.default.none": "Ningún servidor seleccionado",
|
||||
"dialog.server.default.set": "Establecer servidor actual como predeterminado",
|
||||
"dialog.server.default.clear": "Limpiar",
|
||||
@@ -360,7 +355,7 @@ export const dict = {
|
||||
|
||||
"dialog.server.menu.edit": "Editar",
|
||||
"dialog.server.menu.default": "Establecer como predeterminado",
|
||||
"dialog.server.menu.defaultRemove": "Quitar como predeterminado",
|
||||
"dialog.server.menu.defaultRemove": "Quitar predeterminado",
|
||||
"dialog.server.menu.delete": "Eliminar",
|
||||
"dialog.server.current": "Servidor actual",
|
||||
"dialog.server.status.default": "Predeterminado",
|
||||
@@ -447,7 +442,7 @@ export const dict = {
|
||||
"Se ejecuta después de crear un nuevo espacio de trabajo (árbol de trabajo).",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "p. ej. bun install",
|
||||
|
||||
"context.breakdown.title": "Desglose del contexto",
|
||||
"context.breakdown.title": "Desglose de Contexto",
|
||||
"context.breakdown.note":
|
||||
'Desglose aproximado de tokens de entrada. "Otro" incluye definiciones de herramientas y sobrecarga.',
|
||||
"context.breakdown.system": "Sistema",
|
||||
@@ -456,25 +451,25 @@ export const dict = {
|
||||
"context.breakdown.tool": "Llamadas a herramientas",
|
||||
"context.breakdown.other": "Otro",
|
||||
|
||||
"context.systemPrompt.title": "Prompt del sistema",
|
||||
"context.systemPrompt.title": "Prompt del Sistema",
|
||||
"context.rawMessages.title": "Mensajes en bruto",
|
||||
|
||||
"context.stats.session": "Sesión",
|
||||
"context.stats.messages": "Mensajes",
|
||||
"context.stats.provider": "Proveedor",
|
||||
"context.stats.model": "Modelo",
|
||||
"context.stats.limit": "Límite de contexto",
|
||||
"context.stats.totalTokens": "Tokens totales",
|
||||
"context.stats.limit": "Límite de Contexto",
|
||||
"context.stats.totalTokens": "Tokens Totales",
|
||||
"context.stats.usage": "Uso",
|
||||
"context.stats.inputTokens": "Tokens de entrada",
|
||||
"context.stats.outputTokens": "Tokens de salida",
|
||||
"context.stats.reasoningTokens": "Tokens de razonamiento",
|
||||
"context.stats.cacheTokens": "Tokens de caché (lectura/escritura)",
|
||||
"context.stats.userMessages": "Mensajes de usuario",
|
||||
"context.stats.assistantMessages": "Mensajes de asistente",
|
||||
"context.stats.totalCost": "Costo total",
|
||||
"context.stats.sessionCreated": "Sesión creada",
|
||||
"context.stats.lastActivity": "Última actividad",
|
||||
"context.stats.inputTokens": "Tokens de Entrada",
|
||||
"context.stats.outputTokens": "Tokens de Salida",
|
||||
"context.stats.reasoningTokens": "Tokens de Razonamiento",
|
||||
"context.stats.cacheTokens": "Tokens de Caché (lectura/escritura)",
|
||||
"context.stats.userMessages": "Mensajes de Usuario",
|
||||
"context.stats.assistantMessages": "Mensajes de Asistente",
|
||||
"context.stats.totalCost": "Costo Total",
|
||||
"context.stats.sessionCreated": "Sesión Creada",
|
||||
"context.stats.lastActivity": "Última Actividad",
|
||||
|
||||
"context.usage.tokens": "Tokens",
|
||||
"context.usage.usage": "Uso",
|
||||
@@ -528,12 +523,12 @@ export const dict = {
|
||||
|
||||
"toast.session.share.copyFailed.title": "Fallo al copiar URL al portapapeles",
|
||||
"toast.session.share.success.title": "Sesión compartida",
|
||||
"toast.session.share.success.description": "Enlace para compartir copiado al portapapeles.",
|
||||
"toast.session.share.success.description": "¡URL compartida copiada al portapapeles!",
|
||||
"toast.session.share.failed.title": "Fallo al compartir sesión",
|
||||
"toast.session.share.failed.description": "Ocurrió un error al compartir la sesión",
|
||||
|
||||
"toast.session.unshare.success.title": "La sesión dejó de compartirse",
|
||||
"toast.session.unshare.success.description": "La sesión dejó de compartirse correctamente.",
|
||||
"toast.session.unshare.success.title": "Sesión dejó de compartirse",
|
||||
"toast.session.unshare.success.description": "¡La sesión dejó de compartirse exitosamente!",
|
||||
"toast.session.unshare.failed.title": "Fallo al dejar de compartir sesión",
|
||||
"toast.session.unshare.failed.description": "Ocurrió un error al dejar de compartir la sesión",
|
||||
|
||||
@@ -549,13 +544,13 @@ export const dict = {
|
||||
"error.page.description.localServerStartup": "Ocurrió un error al iniciar el servidor local.",
|
||||
"error.page.details.label": "Detalles del error",
|
||||
"error.page.action.restart": "Reiniciar",
|
||||
"error.page.action.report": "Informar del error",
|
||||
"error.page.action.reported": "Error notificado",
|
||||
"error.page.action.report": "Informar error",
|
||||
"error.page.action.reported": "Error informado",
|
||||
"error.page.action.exportLogs": "Exportar registros",
|
||||
"error.page.action.checking": "Comprobando...",
|
||||
"error.page.action.checkUpdates": "Buscar actualizaciones",
|
||||
"error.page.action.updateTo": "Actualizar a {{version}}",
|
||||
"error.page.report.prefix": "Informa de este error al equipo de OpenCode",
|
||||
"error.page.report.prefix": "Por favor reporta este error al equipo de OpenCode",
|
||||
"error.page.report.discord": "en Discord",
|
||||
"error.page.version": "Versión: {{version}}",
|
||||
|
||||
@@ -571,10 +566,10 @@ export const dict = {
|
||||
"error.chain.status": "Estado: {{status}}",
|
||||
"error.chain.retryable": "Reintentable: {{retryable}}",
|
||||
"error.chain.responseBody": "Cuerpo de la respuesta:\n{{body}}",
|
||||
"error.chain.didYouMean": "¿Quizá quisiste decir {{suggestions}}?",
|
||||
"error.chain.didYouMean": "¿Quisiste decir: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Modelo no encontrado: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Comprueba los nombres de proveedor/modelo en tu configuración (opencode.json)",
|
||||
"error.chain.mcpFailed": 'El servidor MCP "{{name}}" falló. Nota: OpenCode aún no admite la autenticación MCP.',
|
||||
"error.chain.mcpFailed": 'El servidor MCP "{{name}}" falló. Nota, OpenCode no soporta autenticación MCP todavía.',
|
||||
"error.chain.providerAuthFailed": "Autenticación de proveedor fallida ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Fallo al inicializar proveedor "{{provider}}". Comprueba credenciales y configuración.',
|
||||
@@ -627,12 +622,12 @@ export const dict = {
|
||||
"session.error.notFound.description": "Esta pestaña apunta a una sesión que ya no existe en este servidor.",
|
||||
"session.error.notFound.closeTab": "Cerrar pestaña",
|
||||
"session.error.serverConnection": "No se puede conectar a este servidor",
|
||||
"session.review.filesChanged": "Archivos modificados: {{count}}",
|
||||
"session.review.filesChanged": "{{count}} Archivos Cambiados",
|
||||
"session.review.change.one": "Cambio",
|
||||
"session.review.change.other": "Cambios",
|
||||
"session.review.loadingChanges": "Cargando cambios...",
|
||||
"session.review.empty": "Aún no hay cambios en esta sesión",
|
||||
"session.review.noVcs": "No se detectó ningún sistema de control de versiones Git; no se muestran los cambios",
|
||||
"session.review.empty": "No hay cambios en esta sesión aún",
|
||||
"session.review.noVcs": "No se detectó Sistema de Control de Versiones Git, los cambios no se muestran",
|
||||
"session.review.noSnapshot":
|
||||
"El seguimiento de instantáneas está deshabilitado en la configuración, por lo que los cambios de sesión no están disponibles",
|
||||
"session.review.noChanges": "Sin cambios",
|
||||
@@ -642,13 +637,13 @@ export const dict = {
|
||||
"session.files.selectToOpen": "Selecciona un archivo para abrir",
|
||||
"session.files.all": "Todos los archivos",
|
||||
"session.files.empty": "Sin archivos",
|
||||
"session.files.binaryContent": "Archivo binario (no se puede mostrar el contenido)",
|
||||
"session.files.binaryContent": "Archivo binario (el contenido no puede ser mostrado)",
|
||||
|
||||
"session.messages.renderEarlier": "Mostrar mensajes anteriores",
|
||||
"session.messages.renderEarlier": "Renderizar mensajes anteriores",
|
||||
"session.messages.loadingEarlier": "Cargando mensajes anteriores...",
|
||||
"session.messages.loadEarlier": "Cargar mensajes anteriores",
|
||||
"session.messages.loading": "Cargando mensajes...",
|
||||
"session.messages.jumpToLatest": "Ir al mensaje más reciente",
|
||||
"session.messages.jumpToLatest": "Ir al último",
|
||||
|
||||
"session.context.addToContext": "Añadir {{selection}} al contexto",
|
||||
"session.todo.title": "Tareas",
|
||||
@@ -657,17 +652,14 @@ export const dict = {
|
||||
"session.question.minimize": "Minimizar pregunta",
|
||||
"session.question.restore": "Restaurar pregunta",
|
||||
"session.question.pending.one": "{{count}} pregunta pendiente",
|
||||
"session.question.pending.many": "{{count}} de preguntas pendientes",
|
||||
"session.question.pending.other": "{{count}} preguntas pendientes",
|
||||
"session.followupDock.summary.one": "{{count}} mensaje en cola",
|
||||
"session.followupDock.summary.many": "{{count}} de mensajes en cola",
|
||||
"session.followupDock.summary.other": "{{count}} mensajes en cola",
|
||||
"session.followupDock.sendNow": "Enviar ahora",
|
||||
"session.followupDock.edit": "Editar",
|
||||
"session.followupDock.collapse": "Contraer mensajes en cola",
|
||||
"session.followupDock.expand": "Expandir mensajes en cola",
|
||||
"session.revertDock.summary.one": "{{count}} mensaje revertido",
|
||||
"session.revertDock.summary.many": "{{count}} de mensajes revertidos",
|
||||
"session.revertDock.summary.other": "{{count}} mensajes revertidos",
|
||||
"session.revertDock.collapse": "Contraer mensajes revertidos",
|
||||
"session.revertDock.expand": "Expandir mensajes revertidos",
|
||||
@@ -701,9 +693,9 @@ export const dict = {
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Plugins",
|
||||
"status.popover.action.manageServers": "Gestionar servidores",
|
||||
"status.popover.action.manageServers": "Administrar servidores",
|
||||
|
||||
"session.share.popover.title": "Publicar en la web",
|
||||
"session.share.popover.title": "Publicar en web",
|
||||
"session.share.popover.description.shared":
|
||||
"Esta sesión es pública en la web. Es accesible para cualquiera con el enlace.",
|
||||
"session.share.popover.description.unshared":
|
||||
@@ -733,7 +725,7 @@ export const dict = {
|
||||
"common.dismiss": "Descartar",
|
||||
"common.requestFailed": "Solicitud fallida",
|
||||
"common.moreOptions": "Más opciones",
|
||||
"common.learnMore": "Más información",
|
||||
"common.learnMore": "Saber más",
|
||||
"common.rename": "Renombrar",
|
||||
"common.reset": "Restablecer",
|
||||
"common.archive": "Archivar",
|
||||
@@ -743,15 +735,15 @@ export const dict = {
|
||||
"common.loadMore": "Cargar más",
|
||||
"common.key.esc": "ESC",
|
||||
|
||||
"sidebar.menu.toggle": "Mostrar u ocultar menú",
|
||||
"sidebar.menu.toggle": "Alternar menú",
|
||||
"sidebar.nav.projectsAndSessions": "Proyectos y sesiones",
|
||||
"sidebar.settings": "Ajustes",
|
||||
"sidebar.help": "Ayuda",
|
||||
"sidebar.workspaces.enable": "Habilitar espacios de trabajo",
|
||||
"sidebar.workspaces.disable": "Deshabilitar espacios de trabajo",
|
||||
"sidebar.gettingStarted.title": "Primeros pasos",
|
||||
"sidebar.gettingStarted.title": "Empezando",
|
||||
"sidebar.gettingStarted.line1": "OpenCode incluye modelos gratuitos para que puedas empezar inmediatamente.",
|
||||
"sidebar.gettingStarted.line2": "Conecta cualquier proveedor para usar modelos como Claude, GPT o Gemini.",
|
||||
"sidebar.gettingStarted.line2": "Conecta cualquier proveedor para usar modelos, inc. Claude, GPT, Gemini etc.",
|
||||
"sidebar.project.recentSessions": "Sesiones recientes",
|
||||
"sidebar.project.viewAllSessions": "Ver todas las sesiones",
|
||||
"sidebar.project.clearNotifications": "Borrar notificaciones",
|
||||
@@ -779,8 +771,9 @@ export const dict = {
|
||||
"settings.general.row.language.title": "Idioma",
|
||||
"settings.general.row.language.description": "Cambiar el idioma de visualización para OpenCode",
|
||||
"settings.general.row.shell.title": "Shell del terminal",
|
||||
"settings.general.row.shell.description": "Shell que usan el terminal y las herramientas del agente",
|
||||
"settings.general.row.shell.autoDefault": "Automático (predeterminado)",
|
||||
"settings.general.row.shell.description":
|
||||
"Elige el shell que se usará en el terminal. Los shells compatibles también se usarán para las llamadas a herramientas del agente.",
|
||||
"settings.general.row.shell.autoDefault": "Automático (Predeterminado)",
|
||||
"settings.general.row.shell.terminalOnly": "solo en el terminal",
|
||||
"settings.general.row.appearance.title": "Apariencia",
|
||||
"settings.general.row.appearance.description": "Personaliza cómo se ve OpenCode en tu dispositivo",
|
||||
@@ -814,9 +807,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navegación inferior",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Colocar la barra de título y las pestañas de sesión en la parte inferior de la pantalla en dispositivos móviles",
|
||||
"settings.general.row.showCustomAgents.title": "Mostrar agente",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Cambiar de agente en el editor. Si se oculta, se usa el agente Build de forma predeterminada.",
|
||||
"settings.general.row.showCustomAgents.title": "Agentes personalizados",
|
||||
"settings.general.row.showCustomAgents.description": "Mostrar el selector de agentes en el editor",
|
||||
"settings.general.row.reasoningSummaries.title": "Mostrar resúmenes de razonamiento",
|
||||
"settings.general.row.reasoningSummaries.description":
|
||||
"Mostrar resúmenes del razonamiento del modelo en la línea de tiempo",
|
||||
@@ -835,9 +827,9 @@ export const dict = {
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Descartar",
|
||||
"settings.general.row.pinchZoom.title": "Pellizcar para ampliar",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Permitir ampliar con el gesto de pellizco del panel táctil y con Ctrl + desplazamiento",
|
||||
"Permitir ampliar con el gesto de pellizco del panel táctil y con Ctrl-scroll",
|
||||
"settings.general.row.wayland.title": "Usar Wayland nativo",
|
||||
"settings.general.row.wayland.description": "Deshabilitar el uso alternativo de X11 en Wayland. Requiere reiniciar.",
|
||||
"settings.general.row.wayland.description": "Deshabilitar fallback a X11 en Wayland. Requiere reinicio.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"En Linux con monitores de frecuencia de actualización mixta, Wayland nativo puede ser más estable.",
|
||||
|
||||
@@ -967,7 +959,8 @@ export const dict = {
|
||||
"settings.permissions.tool.read.title": "Leer",
|
||||
"settings.permissions.tool.read.description": "Leer un archivo (coincide con la ruta del archivo)",
|
||||
"settings.permissions.tool.edit.title": "Editar",
|
||||
"settings.permissions.tool.edit.description": "Modificar archivos mediante ediciones, escrituras y parches",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Modificar archivos, incluyendo ediciones, escrituras, parches y multi-ediciones",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Coincidir archivos usando patrones glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
@@ -977,20 +970,20 @@ export const dict = {
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Ejecutar comandos de shell",
|
||||
"settings.permissions.tool.task.title": "Tarea",
|
||||
"settings.permissions.tool.task.description": "Iniciar subagentes",
|
||||
"settings.permissions.tool.task.description": "Lanzar sub-agentes",
|
||||
"settings.permissions.tool.skill.title": "Habilidad",
|
||||
"settings.permissions.tool.skill.description": "Cargar una habilidad por nombre",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Ejecutar consultas de servidor de lenguaje",
|
||||
"settings.permissions.tool.todowrite.title": "Escribir tareas",
|
||||
"settings.permissions.tool.todowrite.title": "Escribir Todo",
|
||||
"settings.permissions.tool.todowrite.description": "Actualizar la lista de tareas",
|
||||
"settings.permissions.tool.webfetch.title": "Obtener contenido web",
|
||||
"settings.permissions.tool.webfetch.title": "Web Fetch",
|
||||
"settings.permissions.tool.webfetch.description": "Obtener contenido de una URL",
|
||||
"settings.permissions.tool.websearch.title": "Búsqueda web",
|
||||
"settings.permissions.tool.websearch.title": "Búsqueda Web",
|
||||
"settings.permissions.tool.websearch.description": "Buscar en la web",
|
||||
"settings.permissions.tool.external_directory.title": "Directorio externo",
|
||||
"settings.permissions.tool.external_directory.title": "Directorio Externo",
|
||||
"settings.permissions.tool.external_directory.description": "Acceder a archivos fuera del directorio del proyecto",
|
||||
"settings.permissions.tool.doom_loop.title": "Bucle infinito",
|
||||
"settings.permissions.tool.doom_loop.title": "Bucle Infinito",
|
||||
"settings.permissions.tool.doom_loop.description": "Detectar llamadas a herramientas repetidas con entrada idéntica",
|
||||
|
||||
"session.delete.failed.title": "Fallo al eliminar sesión",
|
||||
@@ -1004,13 +997,13 @@ export const dict = {
|
||||
"workspace.create.failed.title": "Fallo al crear espacio de trabajo",
|
||||
"workspace.delete.failed.title": "Fallo al eliminar espacio de trabajo",
|
||||
"workspace.resetting.title": "Restableciendo espacio de trabajo",
|
||||
"workspace.resetting.description": "Esto puede tardar un minuto.",
|
||||
"workspace.resetting.description": "Esto puede tomar un minuto.",
|
||||
"workspace.reset.failed.title": "Fallo al restablecer espacio de trabajo",
|
||||
"workspace.reset.success.title": "Espacio de trabajo restablecido",
|
||||
"workspace.reset.success.description": "El espacio de trabajo ahora coincide con la rama predeterminada.",
|
||||
"workspace.error.stillPreparing": "El espacio de trabajo aún se está preparando",
|
||||
"workspace.status.checking": "Comprobando cambios no fusionados...",
|
||||
"workspace.status.error": "No se pudo verificar el estado de Git.",
|
||||
"workspace.status.error": "No se pudo verificar el estado de git.",
|
||||
"workspace.status.clean": "No se detectaron cambios no fusionados.",
|
||||
"workspace.status.dirty": "Cambios no fusionados detectados en este espacio de trabajo.",
|
||||
"workspace.delete.title": "Eliminar espacio de trabajo",
|
||||
@@ -1052,9 +1045,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}} de {{total}} preguntas",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Explorador de archivos",
|
||||
"session.header.reveal.finder": "Mostrar en Finder",
|
||||
"session.header.reveal.fileExplorer": "Mostrar en el Explorador de archivos",
|
||||
"session.header.reveal.containingFolder": "Abrir carpeta contenedora",
|
||||
"session.header.open.fileManager": "Gestor de archivos",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -1073,13 +1063,13 @@ export const dict = {
|
||||
"debugBar.na": "n/d",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Última transición de ruta completada que afecta a una página de sesión, medida desde el inicio del enrutador hasta el primer renderizado tras estabilizarse.",
|
||||
"Última transición de ruta completada tocando una página de sesión, medida desde el inicio del router hasta el primer pintado después de asentarse.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Cuadros por segundo en los últimos 5 segundos.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Peor tiempo de cuadro en los últimos 5 segundos.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Cuadros superiores a 32 ms en los últimos 5 segundos.",
|
||||
"debugBar.jank.tip": "Cuadros superiores a 32ms en los últimos 5 segundos.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Tiempo bloqueado y recuento de tareas largas en los últimos 5 segundos. Tarea máx: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
@@ -1088,7 +1078,7 @@ export const dict = {
|
||||
"debugBar.inp.tip":
|
||||
"Duración aproximada de la interacción en los últimos 5 segundos. Esto es similar a INP, no el INP oficial de Web Vitals.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Cambio de diseño acumulativo durante la ejecución actual de la aplicación.",
|
||||
"debugBar.cls.tip": "Cambio de diseño acumulativo para la vida útil actual de la aplicación.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Heap JS usado vs límite de heap. Solo Chromium.",
|
||||
"debugBar.mem.tip": "Heap JS usado vs límite de heap. {{used}} de {{limit}}.",
|
||||
|
||||
@@ -1,1030 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Ehdotetut",
|
||||
"command.category.view": "Näytä",
|
||||
"command.category.project": "Projekti",
|
||||
"command.category.provider": "Palveluntarjoaja",
|
||||
"command.category.server": "Palvelin",
|
||||
"command.category.session": "Istunto",
|
||||
"command.category.theme": "Teema",
|
||||
"command.category.language": "Kieli",
|
||||
"command.category.file": "Tiedosto",
|
||||
"command.category.context": "Konteksti",
|
||||
"command.category.terminal": "Terminaali",
|
||||
"command.category.model": "Malli",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Agentti",
|
||||
"command.category.permissions": "Käyttöoikeudet",
|
||||
"command.category.workspace": "Työtila",
|
||||
"command.category.settings": "Asetukset",
|
||||
"theme.scheme.system": "Järjestelmän mukaan",
|
||||
"theme.scheme.light": "Vaalea",
|
||||
"theme.scheme.dark": "Tumma",
|
||||
"command.sidebar.toggle": "Näytä tai piilota sivupalkki",
|
||||
"command.project.open": "Avaa projekti",
|
||||
"command.project.previous": "Edellinen projekti",
|
||||
"command.project.next": "Seuraava projekti",
|
||||
"command.project.index": "Vaihda projektiin {{index}}",
|
||||
"command.provider.connect": "Yhdistä palveluntarjoaja",
|
||||
"command.server.switch": "Vaihda palvelinta",
|
||||
"command.settings.open": "Avaa asetukset",
|
||||
"command.session.previous": "Edellinen istunto",
|
||||
"command.session.next": "Seuraava istunto",
|
||||
"command.session.previous.unseen": "Edellinen lukematon istunto",
|
||||
"command.session.next.unseen": "Seuraava lukematon istunto",
|
||||
"command.session.archive": "Arkistoi istunto",
|
||||
"command.palette": "Komentopaletti",
|
||||
"command.theme.cycle": "Vaihda teemaa",
|
||||
"command.theme.set": "Käytä teemaa: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Vaihda värimallia",
|
||||
"command.theme.scheme.set": "Käytä värimallia: {{scheme}}",
|
||||
"command.language.cycle": "Vaihda kieltä",
|
||||
"command.language.set": "Käytä kieltä: {{language}}",
|
||||
"command.session.new": "Uusi istunto",
|
||||
"command.file.open": "Avaa tiedosto",
|
||||
"command.tab.close": "Sulje välilehti",
|
||||
"command.tab.reopenClosed": "Avaa suljettu välilehti uudelleen",
|
||||
"command.context.addSelection": "Lisää valinta kontekstiin",
|
||||
"command.context.addSelection.description": "Lisää valitut rivit nykyisestä tiedostosta",
|
||||
"command.input.focus": "Kohdista syötekenttään",
|
||||
"command.terminal.toggle": "Näytä tai piilota terminaali",
|
||||
"command.fileTree.toggle": "Näytä tai piilota tiedostopuu",
|
||||
"command.review.toggle": "Näytä tai piilota tarkistus",
|
||||
"command.terminal.new": "Uusi terminaali",
|
||||
"command.terminal.new.description": "Luo uusi terminaalivälilehti",
|
||||
"command.steps.toggle": "Näytä tai piilota vaiheet",
|
||||
"command.steps.toggle.description": "Näytä tai piilota nykyisen viestin vaiheet",
|
||||
"command.message.previous": "Edellinen viesti",
|
||||
"command.message.previous.description": "Siirry edelliseen käyttäjän viestiin",
|
||||
"command.message.next": "Seuraava viesti",
|
||||
"command.message.next.description": "Siirry seuraavaan käyttäjäviestiin",
|
||||
"command.model.choose": "Valitse malli",
|
||||
"command.model.choose.description": "Valitse eri malli",
|
||||
"command.mcp.toggle": "Ota MCP:t käyttöön tai poista käytöstä",
|
||||
"command.mcp.toggle.description": "Ota MCP:t käyttöön tai poista käytöstä",
|
||||
"command.agent.cycle": "Vaihda agenttia",
|
||||
"command.agent.cycle.description": "Vaihda seuraavaan agenttiin",
|
||||
"command.agent.cycle.reverse": "Vaihda agenttia taaksepäin",
|
||||
"command.agent.cycle.reverse.description": "Vaihda edelliseen agenttiin",
|
||||
"command.model.variant.cycle": "Vaihda päättelyn tasoa",
|
||||
"command.model.variant.cycle.description": "Vaihda seuraavalle päättelyn tasolle",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Kehote",
|
||||
"command.permissions.autoaccept.enable": "Hyväksy käyttöoikeudet automaattisesti",
|
||||
"command.permissions.autoaccept.disable": "Lopeta käyttöoikeuksien automaattinen hyväksyminen",
|
||||
"command.workspace.toggle": "Vaihda työtiloja",
|
||||
"command.workspace.toggle.description": "Ota käyttöön tai poista käytöstä useita työtiloja sivupalkissa",
|
||||
"command.session.undo": "Kumoa",
|
||||
"command.session.undo.description": "Kumoa viimeinen viesti",
|
||||
"command.session.redo": "Toista",
|
||||
"command.session.redo.description": "Toista viimeisin kumottu viesti",
|
||||
"command.session.compact": "Tiivistä istunto",
|
||||
"command.session.compact.description": "Tee yhteenveto istunnosta pienentääksesi kontekstin kokoa",
|
||||
"command.session.fork": "Haarauta viestistä",
|
||||
"command.session.fork.description": "Luo uusi istunto edellisestä viestistä",
|
||||
"command.session.share": "Jaa istunto",
|
||||
"command.session.share.description": "Jaa tämä istunto ja kopioi URL-osoite leikepöydälle",
|
||||
"command.session.unshare": "Peru istunnon jakaminen",
|
||||
"command.session.unshare.description": "Lopeta tämän istunnon jakaminen",
|
||||
"palette.search.placeholder": "Hae tiedostoja, komentoja ja istuntoja",
|
||||
"palette.search.placeholder.home": "Hae komentoja ja istuntoja",
|
||||
"palette.empty": "Tuloksia ei löytynyt",
|
||||
"palette.group.commands": "Komennot",
|
||||
"palette.group.files": "Tiedostot",
|
||||
"dialog.provider.search.placeholder": "Etsi palveluntarjoajia",
|
||||
"dialog.provider.empty": "Palveluntarjoajia ei löytynyt",
|
||||
"dialog.provider.group.popular": "Suositut",
|
||||
"dialog.provider.group.other": "Muut",
|
||||
"dialog.provider.custom.label": "Mukautettu OpenAI-yhteensopiva palveluntarjoaja",
|
||||
"dialog.provider.tag.recommended": "Suositeltu",
|
||||
"dialog.provider.opencode.note": "Kuratoituja malleja, kuten Claude, GPT, Gemini ja muita",
|
||||
"dialog.provider.opencode.tagline": "Luotettavat optimoidut mallit",
|
||||
"dialog.provider.opencodeGo.tagline": "Edullinen tilaus kaikille",
|
||||
"dialog.provider.anthropic.note": "Suora pääsy Claude-malleihin, mukaan lukien Pro ja Max",
|
||||
"dialog.provider.copilot.note": "AI-malleja koodausapuun GitHub Copilotin kautta",
|
||||
"dialog.provider.openai.note": "GPT-mallit nopeisiin, suorituskykyisiin yleisiin tekoälytehtäviin",
|
||||
"dialog.provider.google.note": "Gemini-mallit nopeisiin, jäsenneltyihin vastauksiin",
|
||||
"dialog.provider.openrouter.note": "Käytä kaikkia tuettuja malleja yhdeltä palveluntarjoajalta",
|
||||
"dialog.provider.vercel.note": "Yhdistetty pääsy AI-malleihin älykkäällä reitityksellä",
|
||||
"dialog.model.select.title": "Valitse malli",
|
||||
"dialog.model.search.placeholder": "Hae malleja",
|
||||
"dialog.model.empty": "Ei mallituloksia",
|
||||
"dialog.model.manage": "Hallitse malleja",
|
||||
"dialog.model.manage.description": "Mukauta, mitkä mallit näkyvät mallivalitsimessa.",
|
||||
"dialog.model.manage.provider.toggle": "Ota kaikki palveluntarjoajan {{provider}} mallit käyttöön tai pois käytöstä",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCoden tarjoamat ilmaiset mallit",
|
||||
"dialog.model.unpaid.addMore.title": "Lisää malleja suosituilta palveluntarjoajilta",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Katso yli 70 muuta palveluntarjoajaa",
|
||||
"dialog.provider.viewAll": "Näytä lisää palveluntarjoajia",
|
||||
"provider.connect.title": "Yhdistä {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Kirjaudu sisään Claude Pro/Maxilla",
|
||||
"provider.connect.selectMethod": "Valitse kirjautumistapa palvelulle {{provider}}.",
|
||||
"provider.connect.method.apiKey": "API-avain",
|
||||
"provider.connect.status.inProgress": "Valtuutus käynnissä...",
|
||||
"provider.connect.status.waiting": "Odotetaan valtuutusta...",
|
||||
"provider.connect.status.failed": "Valtuutus epäonnistui: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Anna {{provider}}-API-avaimesi yhdistääksesi tilisi ja käyttääksesi {{provider}}-malleja OpenCodessa.",
|
||||
"provider.connect.apiKey.label": "{{provider}}-API-avain",
|
||||
"provider.connect.apiKey.placeholder": "API-avain",
|
||||
"provider.connect.apiKey.required": "API-avain vaaditaan",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen antaa sinulle pääsyn kuratoituun joukkoon luotettavia optimoituja malleja koodausagenteille.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Yhdellä API-avaimella pääset käyttämään malleja, kuten Claude, GPT, Gemini, GLM ja paljon muuta.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Avaa ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " ja hae API-avaimesi.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Avaa ",
|
||||
"provider.connect.oauth.code.visit.link": "tämä linkki",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" ja hae valtuutuskoodi, jolla voit yhdistää tilisi ja käyttää {{provider}}-malleja OpenCodessa.",
|
||||
"provider.connect.oauth.code.label": "Palvelun {{method}} valtuutuskoodi",
|
||||
"provider.connect.oauth.code.placeholder": "Valtuutuskoodi",
|
||||
"provider.connect.oauth.code.required": "Valtuutuskoodi vaaditaan",
|
||||
"provider.connect.oauth.code.invalid": "Virheellinen valtuutuskoodi",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Avaa ",
|
||||
"provider.connect.oauth.auto.visit.link": "tämä linkki",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" ja anna alla oleva koodi yhdistääksesi tilisi ja käyttääksesi {{provider}}-malleja OpenCodessa.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Vahvistuskoodi",
|
||||
"provider.connect.toast.connected.title": "{{provider}} yhdistetty",
|
||||
"provider.connect.toast.connected.description": "{{provider}}-mallit ovat nyt käytettävissä.",
|
||||
"provider.custom.title": "Mukautettu palveluntarjoaja",
|
||||
"provider.custom.description.prefix": "Määritä OpenAI-yhteensopiva palveluntarjoaja. Katso ",
|
||||
"provider.custom.description.link": "palveluntarjoajan asetusdokumentit",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "Palveluntarjoajan tunnus",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Pienet kirjaimet, numerot, yhdysmerkit tai alaviivat",
|
||||
"provider.custom.field.name.label": "Näyttönimi",
|
||||
"provider.custom.field.name.placeholder": "Oma tekoälypalveluni",
|
||||
"provider.custom.field.baseURL.label": "Perus-URL-osoite",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API-avain",
|
||||
"provider.custom.field.apiKey.placeholder": "API-avain",
|
||||
"provider.custom.field.apiKey.description": "Valinnainen. Jätä tyhjäksi, jos hallitset todennusta otsikoiden avulla.",
|
||||
"provider.custom.models.label": "Mallit",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "Nimi",
|
||||
"provider.custom.models.name.placeholder": "Näyttönimi",
|
||||
"provider.custom.models.remove": "Poista malli",
|
||||
"provider.custom.models.add": "Lisää malli",
|
||||
"provider.custom.headers.label": "Otsikot (valinnainen)",
|
||||
"provider.custom.headers.key.label": "Otsikko",
|
||||
"provider.custom.headers.key.placeholder": "Header-Name",
|
||||
"provider.custom.headers.value.label": "Arvo",
|
||||
"provider.custom.headers.value.placeholder": "value",
|
||||
"provider.custom.headers.remove": "Poista otsikko",
|
||||
"provider.custom.headers.add": "Lisää otsikko",
|
||||
"provider.custom.error.providerID.required": "Palveluntarjoajan tunnus vaaditaan",
|
||||
"provider.custom.error.providerID.format": "Käytä pieniä kirjaimia, numeroita, tavuviivoja tai alaviivoja",
|
||||
"provider.custom.error.providerID.exists": "Palveluntarjoajan tunnus on jo olemassa",
|
||||
"provider.custom.error.name.required": "Näyttönimi vaaditaan",
|
||||
"provider.custom.error.baseURL.required": "Perus-URL-osoite vaaditaan",
|
||||
"provider.custom.error.baseURL.format": "Alussa on oltava http:// tai https://",
|
||||
"provider.custom.error.required": "Pakollinen",
|
||||
"provider.custom.error.duplicate": "Kaksoiskappale",
|
||||
"provider.disconnect.toast.disconnected.title": "Yhteys palveluntarjoajaan {{provider}} katkaistu",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}}-mallit eivät ole enää saatavilla.",
|
||||
"model.tag.free": "Ilmainen",
|
||||
"model.tag.latest": "Uusin",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "teksti",
|
||||
"model.input.image": "kuva",
|
||||
"model.input.audio": "ääni",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Sallitut syötteet: {{inputs}}",
|
||||
"model.tooltip.context.label": "Konteksti",
|
||||
"model.tooltip.inputs": "Syötteet",
|
||||
"model.tooltip.model": "Malli",
|
||||
"model.tooltip.provider": "Palveluntarjoaja",
|
||||
"model.tooltip.reasoning": "Päättely",
|
||||
"model.tooltip.reasoning.allowed": "Mahdollistaa päättelyn",
|
||||
"model.tooltip.reasoning.none": "Ei päättelyä",
|
||||
"model.tooltip.context": "Kontekstirajoitus {{limit}}",
|
||||
"common.search.placeholder": "Etsi",
|
||||
"common.goBack": "Siirry takaisin",
|
||||
"common.goForward": "Siirry eteenpäin",
|
||||
"common.loading": "Ladataan",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Peruuta",
|
||||
"common.clear": "Tyhjennä",
|
||||
"common.open": "Avaa",
|
||||
"common.connect": "Yhdistä",
|
||||
"common.disconnect": "Katkaise yhteys",
|
||||
"common.continue": "Jatka",
|
||||
"common.submit": "Lähetä",
|
||||
"common.save": "Tallenna",
|
||||
"common.saving": "Tallennetaan...",
|
||||
"common.default": "Oletus",
|
||||
"common.attachment": "liite",
|
||||
"prompt.placeholder.shell": "Anna shell-komento... {{example}}",
|
||||
"prompt.placeholder.normal": 'Kysy mitä tahansa... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Kysy mitä tahansa...",
|
||||
"prompt.placeholder.summarizeComments": "Tiivistä kommentit…",
|
||||
"prompt.placeholder.summarizeComment": "Tiivistä kommentti…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Kehote",
|
||||
"prompt.mode.shell.exit": "poistu painamalla Esc",
|
||||
"session.child.promptDisabled": "Aliagentti-istuntoihin ei voi lähettää kehotteita.",
|
||||
"session.child.backToParent": "Takaisin pääistuntoon.",
|
||||
"prompt.example.1": "Korjaa TODO koodikannassa",
|
||||
"prompt.example.2": "Mikä on tämän projektin teknologiapino?",
|
||||
"prompt.example.3": "Korjaa rikkinäiset testit",
|
||||
"prompt.example.4": "Selitä, kuinka todennus toimii",
|
||||
"prompt.example.5": "Etsi ja korjaa tietoturva-aukkoja",
|
||||
"prompt.example.6": "Lisää yksikkötestejä käyttäjäpalveluun",
|
||||
"prompt.example.7": "Refaktoroi tämä funktio luettavammaksi",
|
||||
"prompt.example.8": "Mitä tämä virhe tarkoittaa?",
|
||||
"prompt.example.9": "Auta minua selvittämään tämä ongelma",
|
||||
"prompt.example.10": "Luo API-dokumentaatio",
|
||||
"prompt.example.11": "Optimoi tietokantakyselyt",
|
||||
"prompt.example.12": "Lisää syötteen validointi",
|
||||
"prompt.example.13": "Luo uusi komponentti...",
|
||||
"prompt.example.14": "Kuinka otan tämän projektin käyttöön?",
|
||||
"prompt.example.15": "Tarkista koodini parhaat käytännöt",
|
||||
"prompt.example.16": "Lisää tähän toimintoon virheenkäsittely",
|
||||
"prompt.example.17": "Selitä tämä säännöllinen lauseke",
|
||||
"prompt.example.18": "Muunna tämä TypeScriptiksi",
|
||||
"prompt.example.19": "Lisää kirjaus koko koodikantaan",
|
||||
"prompt.example.20": "Mitkä riippuvuudet ovat vanhentuneita?",
|
||||
"prompt.example.21": "Auta minua kirjoittamaan migraatioskripti",
|
||||
"prompt.example.22": "Ota välimuisti käyttöön tälle päätepisteelle",
|
||||
"prompt.example.23": "Lisää sivutus tähän luetteloon",
|
||||
"prompt.example.24": "Luo CLI-komento...",
|
||||
"prompt.example.25": "Miten ympäristömuuttujat toimivat tässä?",
|
||||
"prompt.popover.emptyResults": "Ei vastaavia tuloksia",
|
||||
"prompt.popover.emptyCommands": "Ei vastaavia komentoja",
|
||||
"prompt.dropzone.label": "Pudota kuvia, PDF-tiedostoja tai tekstitiedostoja tähän",
|
||||
"prompt.dropzone.file.label": "Pudota lisätäksesi tiedoston @-mainintana",
|
||||
"prompt.slash.badge.custom": "mukautettu",
|
||||
"prompt.slash.badge.skill": "taito",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "aktiivinen",
|
||||
"prompt.context.includeActiveFile": "Sisällytä aktiivinen tiedosto",
|
||||
"prompt.context.removeActiveFile": "Poista aktiivinen tiedosto kontekstista",
|
||||
"prompt.context.removeFile": "Poista tiedosto kontekstista",
|
||||
"prompt.action.attachFile": "Lisää tiedostoja",
|
||||
"prompt.menu.addImagesAndFiles": "Lisää tiedostoja ja paljon muuta",
|
||||
"prompt.menu.imagesAndFiles": "Kuvia ja tiedostoja",
|
||||
"prompt.menu.commands": "Komennot",
|
||||
"prompt.menu.context": "Konteksti",
|
||||
"prompt.menu.shellCommand": "Shell-komento",
|
||||
"prompt.attachment.remove": "Poista liite",
|
||||
"prompt.action.send": "Lähetä",
|
||||
"prompt.action.stop": "Pysäytä",
|
||||
"prompt.toast.pasteUnsupported.title": "Liitettä ei tueta",
|
||||
"prompt.toast.pasteUnsupported.description": "Vain kuvia, PDF-tiedostoja tai tekstitiedostoja voi liittää tähän.",
|
||||
"prompt.toast.attachmentDuplicate.title": "Tämä tiedosto on jo ladattu",
|
||||
"prompt.toast.modelAgentRequired.title": "Valitse agentti ja malli",
|
||||
"prompt.toast.modelAgentRequired.description": "Valitse agentti ja malli ennen kehotteen lähettämistä.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Työpuun luominen epäonnistui",
|
||||
"prompt.toast.sessionCreateFailed.title": "Istunnon luominen epäonnistui",
|
||||
"prompt.toast.shellSendFailed.title": "Shell-komennon lähettäminen epäonnistui",
|
||||
"prompt.toast.commandSendFailed.title": "Komennon lähettäminen epäonnistui",
|
||||
"prompt.toast.promptSendFailed.title": "Kehotteen lähettäminen epäonnistui",
|
||||
"prompt.toast.promptSendFailed.description": "Istuntoa ei voi noutaa",
|
||||
"dialog.mcp.title": "MCP:t",
|
||||
"dialog.mcp.description": "{{enabled}}/{{total}} käytössä",
|
||||
"dialog.mcp.empty": "MCP:tä ei ole määritetty",
|
||||
"dialog.lsp.empty": "LSP:t tunnistetaan automaattisesti tiedostotyypeistä",
|
||||
"dialog.plugins.empty": "Laajennukset määritetään opencode.json-tiedostossa",
|
||||
"mcp.status.connected": "yhdistetty",
|
||||
"mcp.status.failed": "epäonnistunut",
|
||||
"mcp.status.needs_auth": "tarvitsee todennusta",
|
||||
"mcp.status.disabled": "pois käytöstä",
|
||||
"mcp.auth.clickToAuthenticate": "Todenna napsauttamalla",
|
||||
"dialog.fork.empty": "Ei viestejä, joista voisi haarauttaa",
|
||||
"dialog.directory.search.placeholder": "Hae kansioita",
|
||||
"dialog.directory.empty": "Kansioita ei löytynyt",
|
||||
"dialog.directory.action.selectFile": "Valitse tiedosto",
|
||||
"dialog.directory.action.selectFolder": "Valitse kansio",
|
||||
"dialog.directory.root": "Juuri",
|
||||
"dialog.directory.parent": "Ylätaso",
|
||||
"dialog.directory.readError": "Tätä kansiota ei voi lukea",
|
||||
"app.server.unreachable": "Palvelimeen {{server}} ei saatu yhteyttä",
|
||||
"app.server.retrying": "Yritetään automaattisesti uudelleen...",
|
||||
"app.server.otherServers": "Muut palvelimet",
|
||||
"dialog.server.title": "Palvelimet",
|
||||
"dialog.server.description": "Vaihda OpenCode-palvelimeen, johon tämä sovellus muodostaa yhteyden.",
|
||||
"dialog.server.search.placeholder": "Etsi palvelimia",
|
||||
"dialog.server.empty": "Ei vielä palvelimia",
|
||||
"dialog.server.add.title": "Lisää palvelin",
|
||||
"dialog.server.add.url": "Palvelimen osoite",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Ei voitu muodostaa yhteyttä palvelimeen",
|
||||
"dialog.server.add.checking": "Tarkistetaan...",
|
||||
"dialog.server.add.button": "Lisää palvelin",
|
||||
"dialog.server.add.name": "Palvelimen nimi (valinnainen)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "Käyttäjätunnus (valinnainen)",
|
||||
"dialog.server.add.usernamePlaceholder": "käyttäjätunnus",
|
||||
"dialog.server.add.password": "Salasana (valinnainen)",
|
||||
"dialog.server.add.passwordPlaceholder": "salasana",
|
||||
"dialog.server.edit.title": "Muokkaa palvelinta",
|
||||
"dialog.server.default.title": "Oletuspalvelin",
|
||||
"dialog.server.default.description":
|
||||
"Yhdistä tähän palvelimeen sovelluksen käynnistyksen yhteydessä paikallisen palvelimen käynnistämisen sijaan. Vaatii uudelleenkäynnistyksen.",
|
||||
"dialog.server.default.none": "Palvelinta ei ole valittu",
|
||||
"dialog.server.default.set": "Aseta nykyinen palvelin oletukseksi",
|
||||
"dialog.server.default.clear": "Tyhjennä",
|
||||
"dialog.server.action.remove": "Poista palvelin",
|
||||
"dialog.server.menu.edit": "Muokkaa",
|
||||
"dialog.server.menu.default": "Aseta oletukseksi",
|
||||
"dialog.server.menu.defaultRemove": "Poista oletuspalvelin",
|
||||
"dialog.server.menu.delete": "Poista",
|
||||
"dialog.server.current": "Nykyinen palvelin",
|
||||
"dialog.server.status.default": "Oletus",
|
||||
"wsl.server.add": "Lisää WSL-palvelin",
|
||||
"wsl.server.addShort": "Lisää WSL",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL-palvelin",
|
||||
"wsl.server.retryStart": "Yritä käynnistystä uudelleen",
|
||||
"wsl.server.updating": "Päivitetään...",
|
||||
"wsl.onboarding.step.distro": "Valitse jakelu",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "Tarkistetaan WSL...",
|
||||
"wsl.onboarding.restartRequired": "Windows tarvitsee uudelleenkäynnistyksen WSL:n asennuksen viimeistelemiseksi.",
|
||||
"wsl.onboarding.ready": "WSL on valmis.",
|
||||
"wsl.onboarding.required": "WSL vaaditaan jatkamiseen.",
|
||||
"wsl.onboarding.checkingDistros": "Tarkistetaan jakeluja...",
|
||||
"wsl.onboarding.installingDistro": "Asennetaan {{distro}}...",
|
||||
"wsl.onboarding.checkingDistro": "Tarkistetaan {{distro}}...",
|
||||
"wsl.onboarding.listingDistros": "Luetteloidaan jakeluja...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} on valmis.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} ei ole vielä asennettu.",
|
||||
"wsl.onboarding.openDistroOnce": "Avaa {{distro}} kerran viimeistelläksesi asetukset.",
|
||||
"wsl.onboarding.finishingDistro": "Viimeistellään jakelun {{distro}} asennusta.",
|
||||
"wsl.onboarding.pickDistro": "Valitse jakelu tai asenna sellainen alta.",
|
||||
"wsl.onboarding.checkingOpencode": "Tarkistetaan OpenCodea...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "Tarkistetaan OpenCodea kohteessa {{distro}}...",
|
||||
"wsl.onboarding.updatingOpencode": "Päivitetään OpenCodea...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "Päivitetään OpenCodea kohteessa {{distro}}...",
|
||||
"wsl.onboarding.updateOpencodeIn": "Päivitä OpenCode jakelussa {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "Päivitä OpenCode",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode on valmis jakelussa {{distro}}.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode on valmis.",
|
||||
"wsl.onboarding.installOpencodeIn": "Asenna OpenCode jakeluun {{distro}}.",
|
||||
"wsl.onboarding.installOpencode": "Asenna OpenCode",
|
||||
"wsl.onboarding.chooseDistroFirst": "Valitse ensin jakelu.",
|
||||
"wsl.onboarding.loadFailed": "WSL-tilan lataaminen epäonnistui.",
|
||||
"wsl.onboarding.loading": "Ladataan...",
|
||||
"wsl.onboarding.installedDistros": "Asennetut jakelut",
|
||||
"wsl.onboarding.checkAgain": "Tarkista uudelleen",
|
||||
"wsl.onboarding.distroStatus.ready": "Valmis",
|
||||
"wsl.onboarding.distroStatus.checking": "Tarkistetaan...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCodea ei ole asennettu",
|
||||
"wsl.onboarding.distroStatus.missingTools": "Puuttuu bash, curl",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Ei tuettu · Käytä WSL 2:ta",
|
||||
"wsl.onboarding.needAnotherDistro": "Tarvitsetko toisen jakelun?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "Asenna Linux-jakelu WSL-luettelosta",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL:ää ei ole asennettu",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"WSL (Windows Subsystem for Linux) vaaditaan ennen kuin OpenCode voi lisätä WSL-palvelimen",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL ei ole käytettävissä",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode ei voinut vahvistaa WSL:ää tällä koneella.",
|
||||
"wsl.onboarding.installWsl": "Asenna WSL",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"Viimeistele WSL:n asennus käynnistämällä Windows uudelleen ja avaa sitten OpenCode uudelleen.",
|
||||
"wsl.onboarding.next": "Seuraava",
|
||||
"wsl.onboarding.refresh": "Päivitä",
|
||||
"wsl.onboarding.allDistrosAdded": "Kaikki asennetut jakelut on jo lisätty.",
|
||||
"wsl.onboarding.noDistros": "Jakeluja ei ole vielä havaittu.",
|
||||
"wsl.onboarding.install": "Asenna",
|
||||
"wsl.onboarding.installing": "Asennetaan...",
|
||||
"wsl.onboarding.installDistro": "Asenna jakelu",
|
||||
"wsl.onboarding.searchDistros": "Etsi jakeluja",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 vaaditaan.",
|
||||
"wsl.onboarding.toolsRequired": "Tämä jakelu tarvitsee bashin ja curlin.",
|
||||
"wsl.onboarding.openTerminal": "Avaa terminaali",
|
||||
"wsl.onboarding.path": "Polku: {{path}}",
|
||||
"wsl.onboarding.notFound": "ei löytynyt",
|
||||
"wsl.onboarding.version": "Versio: {{version}}",
|
||||
"wsl.onboarding.unknown": "tuntematon",
|
||||
"wsl.onboarding.desktopVersion": "Desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "Asennettu versio ei vastaa työpöytäsovelluksen versiota.",
|
||||
"wsl.onboarding.adding": "Lisätään...",
|
||||
"server.row.noUsername": "ei käyttäjätunnusta",
|
||||
"dialog.project.edit.title": "Muokkaa projektia",
|
||||
"dialog.project.edit.name": "Nimi",
|
||||
"dialog.project.edit.icon": "Kuvake",
|
||||
"dialog.project.edit.icon.alt": "Projektikuvake",
|
||||
"dialog.project.edit.icon.hint": "Napsauta tai vedä kuvaa",
|
||||
"dialog.project.edit.icon.recommended": "Suositus: 128x128px",
|
||||
"dialog.project.edit.color": "Väri",
|
||||
"dialog.project.edit.color.select": "Valitse väri {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Työtilan käynnistysskripti",
|
||||
"dialog.project.edit.worktree.startup.description": "Suoritetaan uuden työtilan (työpuun) luomisen jälkeen.",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "esim. bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "Aloita",
|
||||
"dialog.releaseNotes.action.next": "Seuraava",
|
||||
"dialog.releaseNotes.action.hideFuture": "Älä näytä näitä jatkossa",
|
||||
"dialog.releaseNotes.media.alt": "Julkaisun esikatselu",
|
||||
"context.breakdown.title": "Kontekstin erittely",
|
||||
"context.breakdown.note":
|
||||
'Syötetokenien arvioitu jakautuminen. "Muut" sisältää työkalumäärittelyt ja muun oheissisällön.',
|
||||
"context.breakdown.system": "Järjestelmä",
|
||||
"context.breakdown.user": "Käyttäjä",
|
||||
"context.breakdown.assistant": "Avustaja",
|
||||
"context.breakdown.tool": "Työkalukutsut",
|
||||
"context.breakdown.other": "Muut",
|
||||
"context.systemPrompt.title": "Järjestelmäkehote",
|
||||
"context.rawMessages.title": "Raakaviestit",
|
||||
"context.stats.session": "Istunto",
|
||||
"context.stats.messages": "Viestit",
|
||||
"context.stats.provider": "Palveluntarjoaja",
|
||||
"context.stats.model": "Malli",
|
||||
"context.stats.limit": "Kontekstirajoitus",
|
||||
"context.stats.totalTokens": "Tokenit yhteensä",
|
||||
"context.stats.usage": "Käyttö",
|
||||
"context.stats.inputTokens": "Syötetokenit",
|
||||
"context.stats.outputTokens": "Tulostokenit",
|
||||
"context.stats.reasoningTokens": "Päättelytokenit",
|
||||
"context.stats.cacheTokens": "Välimuistitokenit (luku/kirjoitus)",
|
||||
"context.stats.userMessages": "Käyttäjäviestit",
|
||||
"context.stats.assistantMessages": "Avustajan viestit",
|
||||
"context.stats.totalCost": "Kokonaiskustannukset",
|
||||
"context.stats.sessionCreated": "Istunto luotu",
|
||||
"context.stats.lastActivity": "Viimeisin toiminta",
|
||||
"context.usage.tokens": "Tokenit",
|
||||
"context.usage.usage": "Käyttö",
|
||||
"context.usage.cost": "Kustannukset",
|
||||
"context.usage.clickToView": "Näytä konteksti napsauttamalla",
|
||||
"context.usage.view": "Näytä kontekstin käyttö",
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Kieli",
|
||||
"toast.language.description": "Kieleksi vaihdettu {{language}}",
|
||||
"toast.theme.title": "Teema vaihdettu",
|
||||
"toast.scheme.title": "Värimalli",
|
||||
"toast.workspace.enabled.title": "Työtilat käytössä",
|
||||
"toast.workspace.enabled.description": "Sivupalkissa näkyy nyt useita työpuita",
|
||||
"toast.workspace.disabled.title": "Työtilat pois käytöstä",
|
||||
"toast.workspace.disabled.description": "Vain päätyöpuu näkyy sivupalkissa",
|
||||
"toast.permissions.autoaccept.on.title": "Käyttöoikeudet hyväksytään automaattisesti",
|
||||
"toast.permissions.autoaccept.on.description": "Lupapyynnöt hyväksytään automaattisesti",
|
||||
"toast.permissions.autoaccept.off.title": "Lupien automaattinen hyväksyminen lopetettu",
|
||||
"toast.permissions.autoaccept.off.description": "Lupapyynnöt vaativat hyväksynnän",
|
||||
"toast.model.none.title": "Mallia ei ole valittu",
|
||||
"toast.model.none.description": "Yhdistä palveluntarjoaja tehdäksesi yhteenvedon tästä istunnosta",
|
||||
"toast.file.loadFailed.title": "Tiedoston lataaminen epäonnistui",
|
||||
"toast.file.listFailed.title": "Tiedostojen luettelointi epäonnistui",
|
||||
"toast.context.noLineSelection.title": "Ei rivivalintaa",
|
||||
"toast.context.noLineSelection.description": "Valitse ensin riviväli tiedostovälilehdeltä.",
|
||||
"toast.session.share.copyFailed.title": "URL-osoitteen kopioiminen leikepöydälle epäonnistui",
|
||||
"toast.session.share.success.title": "Istunto jaettu",
|
||||
"toast.session.share.success.description": "Jakolinkki kopioitu leikepöydälle!",
|
||||
"toast.session.share.failed.title": "Istunnon jakaminen epäonnistui",
|
||||
"toast.session.share.failed.description": "Istunnon jakamisessa tapahtui virhe",
|
||||
"toast.session.unshare.success.title": "Istunnon jako peruttu",
|
||||
"toast.session.unshare.success.description": "Istunnon jakaminen peruutettu onnistuneesti!",
|
||||
"toast.session.unshare.failed.title": "Istunnon jakamisen peruuttaminen epäonnistui",
|
||||
"toast.session.unshare.failed.description": "Virhe peruttaessa istunnon jakamista",
|
||||
"toast.session.listFailed.title": "Projektin {{project}} istuntojen lataaminen epäonnistui",
|
||||
"toast.project.reloadFailed.title": "Projektin {{project}} lataaminen uudelleen epäonnistui",
|
||||
"toast.update.title": "Päivitys saatavilla",
|
||||
"toast.update.description": "OpenCoden uusi versio ({{version}}) on nyt saatavana asennettavaksi.",
|
||||
"toast.update.action.installRestart": "Asenna ja käynnistä uudelleen",
|
||||
"toast.update.action.notYet": "Ei vielä",
|
||||
"error.page.title": "Jotain meni pieleen",
|
||||
"error.page.description": "Sovellusta ladattaessa tapahtui virhe.",
|
||||
"error.page.description.localServerStartup": "Paikallista palvelinta käynnistettäessä tapahtui virhe.",
|
||||
"error.page.details.label": "Virheen tiedot",
|
||||
"error.page.action.restart": "Käynnistä uudelleen",
|
||||
"error.page.action.report": "Ilmoita virheestä",
|
||||
"error.page.action.reported": "Virhe raportoitu",
|
||||
"error.page.action.exportLogs": "Vie lokit",
|
||||
"error.page.action.checking": "Tarkistetaan...",
|
||||
"error.page.action.checkUpdates": "Tarkista päivitykset",
|
||||
"error.page.action.updateTo": "Päivitä versioon {{version}}",
|
||||
"error.page.circular": "[Kehäviittaus]",
|
||||
"error.page.report.prefix": "Ilmoita tästä virheestä OpenCode-tiimille",
|
||||
"error.page.report.discord": "Discordissa",
|
||||
"error.page.version": "Versio: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"Juurielementtiä ei löydy. Unohditko lisätä sen index.html-tiedostoosi? Tai ehkä id-attribuutti on kirjoitettu väärin?",
|
||||
"error.serverSync.connectFailed":
|
||||
"Ei voitu muodostaa yhteyttä palvelimeen. Onko osoitteessa `{{url}}` käynnissä palvelin?",
|
||||
"error.serverSDK.noServerAvailable": "Palvelinta ei ole saatavilla",
|
||||
"error.serverSDK.serverNotAvailable": "Palvelin ei ole käytettävissä",
|
||||
"error.childStore.persistedCacheCreateFailed": "Pysyvän välimuistin luominen epäonnistui",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Projektin pysyvien metatietojen luominen epäonnistui",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Pysyvän projektin kuvakkeen luominen epäonnistui",
|
||||
"error.childStore.storeCreateFailed": "Tietovaraston luominen epäonnistui",
|
||||
"directory.error.invalidUrl": "Virheellinen hakemisto URL-osoitteessa.",
|
||||
"error.chain.unknown": "Tuntematon virhe",
|
||||
"error.server.invalidConfiguration": "Virheellinen määritys",
|
||||
"error.chain.causedBy": "Aiheuttaja:",
|
||||
"error.chain.apiError": "API-virhe",
|
||||
"error.chain.status": "Tila: {{status}}",
|
||||
"error.chain.retryable": "Voidaan yrittää uudelleen: {{retryable}}",
|
||||
"error.chain.responseBody": "Vastausteksti:\n{{body}}",
|
||||
"error.chain.didYouMean": "Tarkoititko: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Mallia ei löydy: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Tarkista määritysten (opencode.json) palveluntarjoajien ja mallien nimet",
|
||||
"error.chain.mcpFailed": 'MCP-palvelin "{{name}}" epäonnistui. Huomaa, että OpenCode ei vielä tue MCP-todennusta.',
|
||||
"error.chain.providerAuthFailed": "Palveluntarjoajan todennus epäonnistui ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Palveluntarjoajan "{{provider}}" alustaminen epäonnistui. Tarkista tunnistetiedot ja määritykset.',
|
||||
"error.chain.configJsonInvalid": "Polun {{path}} määritystiedosto ei ole kelvollista JSON(C)-muotoa",
|
||||
"error.chain.configJsonInvalidWithMessage":
|
||||
"Polun {{path}} määritystiedosto ei ole kelvollista JSON(C)-muotoa: {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'Hakemisto "{{dir}}" polussa {{path}} ei kelpaa. Nimeä hakemisto uudelleen nimellä "{{suggestion}}" tai poista se. Tämä on yleinen kirjoitusvirhe.',
|
||||
"error.chain.configFrontmatterError": "Polun {{path}} front matter -tietojen jäsentäminen epäonnistui:\n{{message}}",
|
||||
"error.chain.configInvalid": "Polun {{path}} määritystiedosto on virheellinen",
|
||||
"error.chain.configInvalidWithMessage": "Polun {{path}} määritystiedosto on virheellinen: {{message}}",
|
||||
"notification.permission.title": "Lupa vaaditaan",
|
||||
"notification.permission.description": "Istunto {{sessionTitle}} projektissa {{projectName}} tarvitsee luvan",
|
||||
"notification.question.title": "Kysymys",
|
||||
"notification.question.description": "Istunto {{sessionTitle}} projektissa {{projectName}} esittää kysymyksen",
|
||||
"notification.action.goToSession": "Siirry istuntoon",
|
||||
"notification.session.responseReady.title": "Vastaus valmiina",
|
||||
"notification.session.error.title": "Istuntovirhe",
|
||||
"notification.session.error.fallbackDescription": "Tapahtui virhe",
|
||||
"home.recentProjects": "Viimeaikaiset projektit",
|
||||
"home.empty.title": "Ei viimeaikaisia projekteja",
|
||||
"home.empty.description": "Aloita avaamalla paikallinen projekti",
|
||||
"home.title": "Etusivu",
|
||||
"home.projects": "Projektit",
|
||||
"home.project.add": "Lisää projekti",
|
||||
"home.recentlyClosed": "Äskettäin suljettu",
|
||||
"home.server.collapse": "Kutista palvelimen projektit",
|
||||
"home.server.expand": "Laajenna palvelimen projektit",
|
||||
"home.sessions.search.placeholder": "Hae istuntoja",
|
||||
"home.sessions.search.placeholder.scoped": "Hae istuntoja kohteesta {{scope}}",
|
||||
"home.sessions.search.sessions": "Istunnot",
|
||||
"home.sessions.search.noResults": "Ei istuntoja haulle {{query}}",
|
||||
"home.sessions.empty": "Ei täällä vielä mitään",
|
||||
"home.sessions.empty.description": "Aloita luomalla istunto",
|
||||
"home.sessions.group.today": "Tänään",
|
||||
"home.sessions.group.yesterday": "Eilen",
|
||||
"home.sessions.group.older": "Vanhemmat",
|
||||
"home.providerTip": "Yhdistä yli 75 palveluntarjoajaan käyttääksesi muita malleja, kuten Claude, GPT, Gemini jne",
|
||||
"session.tab.session": "Istunto",
|
||||
"session.tab.review": "Tarkistus",
|
||||
"session.tab.context": "Konteksti",
|
||||
"session.tab.unknown": "Tuntematon istunto",
|
||||
"session.panel.reviewAndFiles": "Tarkistus ja tiedostot",
|
||||
"session.error.notFound": "Tätä istuntoa ei löydy",
|
||||
"session.error.notFound.description": "Tämä välilehti osoittaa istuntoon, jota ei enää ole tällä palvelimella.",
|
||||
"session.error.notFound.closeTab": "Sulje välilehti",
|
||||
"session.error.serverConnection": "Ei voi muodostaa yhteyttä tähän palvelimeen",
|
||||
"session.review.filesChanged": "Muutettuja tiedostoja: {{count}}",
|
||||
"session.review.change.one": "Muutos",
|
||||
"session.review.change.other": "Muutokset",
|
||||
"session.review.loadingChanges": "Ladataan muutoksia...",
|
||||
"session.review.empty": "Tässä istunnossa ei vielä muutoksia",
|
||||
"session.review.noVcs": "Git-versionhallintaa ei havaittu, joten muutoksia ei näytetä",
|
||||
"session.review.noVcs.createGit.title": "Luo Git-säilö",
|
||||
"session.review.noVcs.createGit.description": "Seuraa, tarkista ja kumoa muutoksia tässä projektissa",
|
||||
"session.review.noVcs.createGit.actionLoading": "Luodaan Git-säilöä...",
|
||||
"session.review.noVcs.createGit.action": "Luo Git-säilö",
|
||||
"session.review.noSnapshot":
|
||||
"Tilannevedosten seuranta on poistettu käytöstä määrityksessä, joten istunnon muutokset eivät ole käytettävissä",
|
||||
"session.review.noChanges": "Ei muutoksia",
|
||||
"session.review.noUncommittedChanges": "Ei vielä sitomattomia muutoksia",
|
||||
"session.review.noBranchChanges": "Ei vielä haaran muutoksia",
|
||||
"session.files.selectToOpen": "Valitse avattava tiedosto",
|
||||
"session.files.all": "Kaikki tiedostot",
|
||||
"session.files.empty": "Ei tiedostoja",
|
||||
"session.files.binaryContent": "Binääritiedosto (sisältöä ei voi näyttää)",
|
||||
"session.messages.renderEarlier": "Hahmonna aiemmat viestit",
|
||||
"session.messages.loadingEarlier": "Ladataan aikaisempia viestejä...",
|
||||
"session.messages.loadEarlier": "Lataa aikaisemmat viestit",
|
||||
"session.messages.loading": "Ladataan viestejä...",
|
||||
"session.messages.jumpToLatest": "Siirry uusimpaan",
|
||||
"session.context.addToContext": "Lisää {{selection}} kontekstiin",
|
||||
"session.todo.title": "Tehtävät",
|
||||
"session.todo.collapse": "Kutista",
|
||||
"session.todo.expand": "Laajenna",
|
||||
"session.todo.progress": "{{done}}/{{total}} tehtävää suoritettu",
|
||||
"session.question.progress": "{{current}}/{{total}} kysymystä",
|
||||
"session.question.minimize": "Pienennä kysymys",
|
||||
"session.question.restore": "Palauta kysymys",
|
||||
"session.question.pending.one": "{{count}} odottava kysymys",
|
||||
"session.question.pending.other": "{{count}} odottavaa kysymystä",
|
||||
"session.followupDock.summary.one": "{{count}} jonossa oleva viesti",
|
||||
"session.followupDock.summary.other": "{{count}} jonossa olevaa viestiä",
|
||||
"session.followupDock.sendNow": "Lähetä nyt",
|
||||
"session.followupDock.edit": "Muokkaa",
|
||||
"session.followupDock.collapse": "Kutista jonossa olevat viestit",
|
||||
"session.followupDock.expand": "Laajenna jonossa olevia viestejä",
|
||||
"session.revertDock.summary.one": "{{count}} palautettu viesti",
|
||||
"session.revertDock.summary.other": "{{count}} palautettua viestiä",
|
||||
"session.revertDock.collapse": "Kutista palautetut viestit",
|
||||
"session.revertDock.expand": "Laajenna palautetut viestit",
|
||||
"session.revertDock.restore": "Palauta viesti",
|
||||
"session.new.title": "Rakenna mitä tahansa",
|
||||
"session.new.project.new": "Uusi projekti",
|
||||
"session.new.project.search": "Etsi projekteja",
|
||||
"session.new.project.add": "Lisää projekti",
|
||||
"session.new.worktree.main": "Päähaara",
|
||||
"session.new.worktree.mainWithBranch": "Päähaara ({{branch}})",
|
||||
"session.new.worktree.create": "Luo uusi työpuu",
|
||||
"session.new.workspace.runIn": "Suorita istunto kohteessa",
|
||||
"session.new.workspace.triggerLocal": "Paikallinen",
|
||||
"session.new.workspace.local": "Paikallinen säilö",
|
||||
"session.new.workspace.existing": "Työtila…",
|
||||
"session.new.git.none": "Ei Gitiä",
|
||||
"session.new.lastModified": "Viimeksi muokattu",
|
||||
"session.header.search.placeholder": "Hae projektista {{project}}",
|
||||
"session.header.searchFiles": "Etsi tiedostoja",
|
||||
"session.header.openIn": "Avaa sovelluksessa",
|
||||
"session.header.open.action": "Avaa {{app}}",
|
||||
"session.header.open.ariaLabel": "Avaa sovelluksessa {{app}}",
|
||||
"session.header.open.menu": "Avausvaihtoehdot",
|
||||
"session.header.open.copyPath": "Kopioi polku",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Tiedostonhallinta",
|
||||
"session.header.open.fileManager": "Tiedostonhallinta",
|
||||
"session.header.reveal.finder": "Näytä Finderissa",
|
||||
"session.header.reveal.fileExplorer": "Näytä Resurssienhallinnassa",
|
||||
"session.header.reveal.containingFolder": "Avaa tiedoston sisältävä kansio",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminaali",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "Tila",
|
||||
"status.popover.ariaLabel": "Palvelimen määritykset",
|
||||
"status.popover.tab.servers": "Palvelimet",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Laajennukset",
|
||||
"status.popover.action.manageServers": "Hallinnoi palvelimia",
|
||||
"session.share.popover.title": "Julkaise verkossa",
|
||||
"session.share.popover.description.shared":
|
||||
"Tämä istunto on julkinen verkossa. Se on kaikkien linkin saaneiden käytettävissä.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Jaa istunto julkisesti verkossa. Se on kaikkien linkin saaneiden käytettävissä.",
|
||||
"session.share.action.share": "Jaa",
|
||||
"session.share.action.publish": "Julkaise",
|
||||
"session.share.action.publishing": "Julkaistaan...",
|
||||
"session.share.action.unpublish": "Peruuta julkaisu",
|
||||
"session.share.action.unpublishing": "Peruutetaan julkaisua...",
|
||||
"session.share.action.view": "Näytä",
|
||||
"session.share.copy.copied": "Kopioitu",
|
||||
"session.share.copy.copyLink": "Kopioi linkki",
|
||||
"lsp.tooltip.none": "Ei LSP-palvelimia",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Ladataan kehotetta...",
|
||||
"terminal.loading": "Ladataan terminaalia...",
|
||||
"terminal.title": "Terminaali",
|
||||
"terminal.title.numbered": "Terminaali {{number}}",
|
||||
"terminal.close": "Sulje terminaali",
|
||||
"terminal.connectionLost.title": "Yhteys katkesi",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket sulkeutui poikkeavasti: {{code}}",
|
||||
"terminal.connectionLost.description":
|
||||
"Terminaaliyhteys katkesi. Näin voi tapahtua, kun palvelin käynnistyy uudelleen.",
|
||||
"common.closeTab": "Sulje välilehti",
|
||||
"common.dismiss": "Hylkää",
|
||||
"common.moreCountSuffix": " (+{{count}} muuta)",
|
||||
"common.requestFailed": "Pyyntö epäonnistui",
|
||||
"common.moreOptions": "Lisää vaihtoehtoja",
|
||||
"common.learnMore": "Lue lisää",
|
||||
"common.rename": "Nimeä uudelleen",
|
||||
"common.reset": "Palauta",
|
||||
"common.archive": "Arkistoi",
|
||||
"common.delete": "Poista",
|
||||
"common.close": "Sulje",
|
||||
"common.edit": "Muokkaa",
|
||||
"common.loadMore": "Lataa lisää",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Space",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "tuntematon",
|
||||
"common.time.justNow": "Juuri nyt",
|
||||
"common.time.minutesAgo.short": "{{count}} min sitten",
|
||||
"common.time.hoursAgo.short": "{{count}} h sitten",
|
||||
"common.time.daysAgo.short": "{{count}} pv sitten",
|
||||
"sidebar.menu.toggle": "Näytä tai piilota valikko",
|
||||
"sidebar.nav.projectsAndSessions": "Projektit ja istunnot",
|
||||
"sidebar.settings": "Asetukset",
|
||||
"sidebar.help": "Ohje",
|
||||
"sidebar.workspaces.enable": "Ota työtilat käyttöön",
|
||||
"sidebar.workspaces.disable": "Poista työtilat käytöstä",
|
||||
"sidebar.gettingStarted.title": "Aloittaminen",
|
||||
"sidebar.gettingStarted.line1": "OpenCode sisältää ilmaisia malleja, joten voit aloittaa heti.",
|
||||
"sidebar.gettingStarted.line2":
|
||||
"Yhdistä mikä tahansa palveluntarjoaja käyttääksesi malleja, mm. Claude, GPT, Gemini jne.",
|
||||
"sidebar.project.recentSessions": "Viimeaikaiset istunnot",
|
||||
"sidebar.project.viewAllSessions": "Näytä kaikki istunnot",
|
||||
"sidebar.project.clearNotifications": "Tyhjennä ilmoitukset",
|
||||
"sidebar.empty.title": "Ei avoimia projekteja",
|
||||
"sidebar.empty.description": "Aloita avaamalla projekti",
|
||||
"debugBar.ariaLabel": "Kehityksen suorituskyvyn diagnostiikka",
|
||||
"debugBar.na": "n/a",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Viimeisin valmis reittisiirtymä, joka koskee istuntosivua, mitattuna reitityksen alusta ensimmäiseen piirtoon siirtymän valmistumisen jälkeen.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Liukuva kuvataajuus viimeisten 5 sekunnin ajalta.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Pisin kuvan piirtoaika viimeisten 5 sekunnin aikana.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Yli 32 ms kestäneet kuvat viimeisten 5 sekunnin aikana.",
|
||||
"debugBar.long.label": "PITKÄ",
|
||||
"debugBar.long.tip": "Estetty aika ja pitkien tehtävien määrä viimeisten 5 sekunnin aikana. Pisin tehtävä: {{max}}.",
|
||||
"debugBar.delay.label": "VIIVE",
|
||||
"debugBar.delay.tip": "Pisin havaittu syöttöviive viimeisten 5 sekunnin aikana.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Vuorovaikutuksen arvioitu kesto viimeisen 5 sekunnin ajalta. Tämä on INP-tyyppinen, ei virallinen Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Kumulatiivinen asettelusiirtymä sovelluksen nykyisen käyttöjakson aikana.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Käytetty JS-keko suhteessa keon rajaan. Vain Chromium.",
|
||||
"debugBar.mem.tip": "Käytetty JS-keko suhteessa keon rajaan. {{used}} / {{limit}}.",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Työpöytä",
|
||||
"settings.section.server": "Palvelin",
|
||||
"settings.tab.general": "Yleiset",
|
||||
"settings.tab.shortcuts": "Pikanäppäimet",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL-integraatio",
|
||||
"settings.desktop.wsl.description": "Suorita OpenCode-palvelin WSL:n sisällä Windowsissa.",
|
||||
"settings.general.section.appearance": "Ulkonäkö",
|
||||
"settings.general.section.advanced": "Lisäasetukset",
|
||||
"settings.general.section.notifications": "Järjestelmän ilmoitukset",
|
||||
"settings.general.section.updates": "Päivitykset",
|
||||
"settings.general.section.sounds": "Äänitehosteet",
|
||||
"settings.general.section.feed": "Syöte",
|
||||
"settings.general.section.display": "Näyttö",
|
||||
"settings.general.row.language.title": "Kieli",
|
||||
"settings.general.row.language.description": "Vaihda OpenCoden näyttökieli",
|
||||
"settings.general.row.shell.title": "Terminaalin komentotulkki",
|
||||
"settings.general.row.shell.description": "Terminaalin ja agenttityökalujen käyttämä komentotulkki",
|
||||
"settings.general.row.shell.autoDefault": "Automaattinen (oletus)",
|
||||
"settings.general.row.shell.terminalOnly": "vain terminaali",
|
||||
"settings.general.row.appearance.title": "Ulkonäkö",
|
||||
"settings.general.row.appearance.description": "Mukauta, miltä OpenCode näyttää laitteellasi",
|
||||
"settings.general.row.colorScheme.title": "Värimalli",
|
||||
"settings.general.row.colorScheme.description":
|
||||
"Valitse, käyttääkö OpenCode järjestelmän mukaista, vaaleaa vai tummaa teemaa",
|
||||
"settings.general.row.theme.title": "Teema",
|
||||
"settings.general.row.theme.description": "Mukauta OpenCoden teemaa.",
|
||||
"settings.general.row.font.title": "Koodifontti",
|
||||
"settings.general.row.font.description": "Mukauta koodilohkoissa käytettyä fonttia",
|
||||
"settings.general.row.terminalFont.title": "Terminaalin fontti",
|
||||
"settings.general.row.terminalFont.description": "Mukauta terminaalissa käytettävää fonttia",
|
||||
"settings.general.row.uiFont.title": "Käyttöliittymän fontti",
|
||||
"settings.general.row.uiFont.description": "Mukauta koko käyttöliittymässä käytettyä fonttia",
|
||||
"settings.general.row.followup.title": "Jatkokehotteiden toiminta",
|
||||
"settings.general.row.followup.description": "Valitse, ohjaavatko jatkokehotteet heti vai odottavatko ne jonossa",
|
||||
"settings.general.row.followup.option.queue": "Jonota",
|
||||
"settings.general.row.followup.option.steer": "Ohjaa heti",
|
||||
"settings.general.row.showFileTree.title": "Tiedostopuu",
|
||||
"settings.general.row.showFileTree.description": "Näytä tiedostopuupaneeli istunnoissa",
|
||||
"settings.general.row.showNavigation.title": "Navigointiohjaimet",
|
||||
"settings.general.row.showNavigation.description":
|
||||
"Näytä taaksepäin- ja eteenpäin-painikkeet työpöydän otsikkorivillä",
|
||||
"settings.general.row.showSearch.title": "Komentopaletti",
|
||||
"settings.general.row.showSearch.description": "Näytä haku- ja komentopalettipainike otsikkorivillä",
|
||||
"settings.general.row.showTerminal.title": "Terminaali",
|
||||
"settings.general.row.showTerminal.description": "Näytä terminaalipainike työpöydän otsikkorivillä",
|
||||
"settings.general.row.showStatus.title": "Palvelimen tila",
|
||||
"settings.general.row.showStatus.description": "Näytä palvelimen tilapainike otsikkorivillä",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigointi alareunassa",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Sijoita otsikkopalkki ja istuntovälilehdet mobiililaitteen näytön alareunaan",
|
||||
"settings.general.row.showCustomAgents.title": "Näytä agentin valinta",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Vaihda agenttien välillä viestikentässä. Kun valinta on piilotettu, Build-agenttia käytetään oletuksena.",
|
||||
"settings.general.row.reasoningSummaries.title": "Näytä päättelyn yhteenvedot",
|
||||
"settings.general.row.reasoningSummaries.description": "Näytä mallin päättelyn yhteenvedot aikajanalla",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Laajenna shell-työkalun osat",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Näytä shell-työkalun osat oletuksena laajennettuina aikajanalla",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Laajenna muokkaustyökalun osat",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Näytä muokkaus-, kirjoitus- ja paikkaustyökalun osat oletusarvoisesti laajennettuina aikajanalla",
|
||||
"settings.general.row.newInterface.title": "Uusi asettelu",
|
||||
"settings.general.row.newInterface.badge": "Uusi",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Käytä uusia välilehtiä ja etusivun asettelua. Vaihda asettelujen välillä rajoitetun ajan.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Käytät nyt uutta asettelua",
|
||||
"settings.general.row.newInterfaceNotice.description": "Edellinen asettelu ei ole enää käytettävissä",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Hylkää",
|
||||
"settings.general.row.pinchZoom.title": "Zoomaa nipistämällä",
|
||||
"settings.general.row.pinchZoom.description": "Salli zoomaus ohjauslevyn nipistyseleellä ja Ctrl-vierityksellä",
|
||||
"settings.general.row.wayland.title": "Käytä alkuperäistä Waylandia",
|
||||
"settings.general.row.wayland.description":
|
||||
"Poista X11-varatila käytöstä Waylandissa. Vaatii uudelleenkäynnistyksen.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Linuxissa alkuperäinen Wayland voi olla vakaampi käytettäessä näyttöjä, joiden virkistystaajuudet eroavat toisistaan.",
|
||||
"settings.general.row.releaseNotes.title": "Julkaisutiedot",
|
||||
"settings.general.row.releaseNotes.description": "Näytä Mitä uutta -ponnahdusikkunat päivitysten jälkeen",
|
||||
"settings.updates.row.startup.title": "Tarkista päivitykset käynnistyksen yhteydessä",
|
||||
"settings.updates.row.startup.description": "Tarkista päivitykset automaattisesti, kun OpenCode käynnistyy",
|
||||
"settings.updates.row.check.title": "Tarkista päivitykset",
|
||||
"settings.updates.row.check.description": "Tarkista päivitykset manuaalisesti ja asenna, jos niitä on saatavilla",
|
||||
"settings.updates.action.checkNow": "Tarkista nyt",
|
||||
"settings.updates.action.checking": "Tarkistetaan...",
|
||||
"settings.updates.action.downloading": "Ladataan...",
|
||||
"settings.updates.action.installing": "Asennetaan...",
|
||||
"settings.updates.toast.latest.title": "Olet ajan tasalla",
|
||||
"settings.updates.toast.latest.description": "Käytät OpenCoden uusinta versiota.",
|
||||
"sound.option.none": "Ei mitään",
|
||||
"sound.option.alert01": "Alert 01",
|
||||
"sound.option.alert02": "Alert 02",
|
||||
"sound.option.alert03": "Alert 03",
|
||||
"sound.option.alert04": "Alert 04",
|
||||
"sound.option.alert05": "Alert 05",
|
||||
"sound.option.alert06": "Alert 06",
|
||||
"sound.option.alert07": "Alert 07",
|
||||
"sound.option.alert08": "Alert 08",
|
||||
"sound.option.alert09": "Alert 09",
|
||||
"sound.option.alert10": "Alert 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"settings.general.notifications.agent.title": "Agentti",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Näytä järjestelmäilmoitus, kun agentti on valmis tai tarvitsee huomiota",
|
||||
"settings.general.notifications.permissions.title": "Käyttöoikeudet",
|
||||
"settings.general.notifications.permissions.description": "Näytä järjestelmäilmoitus, kun lupa vaaditaan",
|
||||
"settings.general.notifications.errors.title": "Virheet",
|
||||
"settings.general.notifications.errors.description": "Näytä järjestelmäilmoitus, kun tapahtuu virhe",
|
||||
"settings.general.sounds.agent.title": "Agentti",
|
||||
"settings.general.sounds.agent.description": "Toista ääni, kun agentti on valmis tai tarvitsee huomiota",
|
||||
"settings.general.sounds.permissions.title": "Käyttöoikeudet",
|
||||
"settings.general.sounds.permissions.description": "Toista ääni, kun vaaditaan lupa",
|
||||
"settings.general.sounds.errors.title": "Virheet",
|
||||
"settings.general.sounds.errors.description": "Toista ääni, kun tapahtuu virhe",
|
||||
"settings.shortcuts.title": "Pikanäppäimet",
|
||||
"settings.shortcuts.reset.button": "Palauta oletusasetukset",
|
||||
"settings.shortcuts.reset.toast.title": "Pikanäppäimet palautettu",
|
||||
"settings.shortcuts.reset.toast.description": "Pikanäppäimet on palautettu oletusasetuksiin.",
|
||||
"settings.shortcuts.conflict.title": "Pikanäppäin on jo käytössä",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} on jo määritetty toiminnolle {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Ei määritetty",
|
||||
"settings.shortcuts.pressKeys": "Paina näppäimiä",
|
||||
"settings.shortcuts.search.placeholder": "Hae pikanäppäimiä",
|
||||
"settings.shortcuts.search.empty": "Pikanäppäimiä ei löytynyt",
|
||||
"settings.shortcuts.group.general": "Yleiset",
|
||||
"settings.shortcuts.group.session": "Istunto",
|
||||
"settings.shortcuts.group.navigation": "Navigointi",
|
||||
"settings.shortcuts.group.modelAndAgent": "Malli ja agentti",
|
||||
"settings.shortcuts.group.terminal": "Terminaali",
|
||||
"settings.shortcuts.group.prompt": "Kehote",
|
||||
"settings.providers.title": "Palveluntarjoajat",
|
||||
"settings.providers.description": "Palveluntarjoajan asetukset voidaan määrittää täällä.",
|
||||
"settings.providers.section.connected": "Yhdistetyt palveluntarjoajat",
|
||||
"settings.providers.connected.empty": "Ei yhdistettyjä palveluntarjoajia",
|
||||
"settings.providers.connected.environmentDescription": "Yhdistetty ympäristömuuttujien kautta",
|
||||
"settings.providers.section.popular": "Suositut palveluntarjoajat",
|
||||
"settings.providers.custom.description":
|
||||
"Lisää OpenAI-yhteensopiva palveluntarjoaja perus-URL-osoitteen perusteella.",
|
||||
"settings.providers.tag.environment": "Ympäristö",
|
||||
"settings.providers.tag.config": "Määritys",
|
||||
"settings.providers.tag.custom": "Mukautettu",
|
||||
"settings.providers.tag.other": "Muut",
|
||||
"settings.models.title": "Mallit",
|
||||
"settings.models.description": "Mallin asetukset voidaan määrittää täällä.",
|
||||
"settings.agents.title": "Agentit",
|
||||
"settings.agents.description": "Agentin asetukset voidaan määrittää täällä.",
|
||||
"settings.commands.title": "Komennot",
|
||||
"settings.commands.description": "Komentoasetukset voidaan määrittää täällä.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP-asetukset voidaan määrittää täällä.",
|
||||
"settings.permissions.title": "Käyttöoikeudet",
|
||||
"settings.permissions.description": "Hallitse, mitä työkaluja palvelin voi käyttää oletuksena.",
|
||||
"settings.permissions.section.tools": "Työkalut",
|
||||
"settings.permissions.toast.updateFailed.title": "Käyttöoikeuksien päivittäminen epäonnistui",
|
||||
"settings.permissions.action.allow": "Salli",
|
||||
"settings.permissions.action.ask": "Kysy",
|
||||
"settings.permissions.action.deny": "Kiellä",
|
||||
"settings.permissions.tool.read.title": "Lue",
|
||||
"settings.permissions.tool.read.description": "Tiedoston lukeminen (vastaa tiedostopolkua)",
|
||||
"settings.permissions.tool.edit.title": "Muokkaa",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Tiedostojen muokkaaminen, mukaan lukien muokkaus-, kirjoitus- ja paikkaustoiminnot",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Etsi glob-malleja vastaavia tiedostoja",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Hae tiedostojen sisällöstä säännöllisten lausekkeiden avulla",
|
||||
"settings.permissions.tool.list.title": "Luettelo",
|
||||
"settings.permissions.tool.list.description": "Listaa tiedostot hakemistossa",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Suorita shell-komennot",
|
||||
"settings.permissions.tool.task.title": "Tehtävä",
|
||||
"settings.permissions.tool.task.description": "Käynnistä aliagentit",
|
||||
"settings.permissions.tool.skill.title": "Taito",
|
||||
"settings.permissions.tool.skill.description": "Lataa taito nimen perusteella",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Suorita kielipalvelinkyselyt",
|
||||
"settings.permissions.tool.todowrite.title": "Tehtävälistan päivitys",
|
||||
"settings.permissions.tool.todowrite.description": "Päivitä tehtävälista",
|
||||
"settings.permissions.tool.webfetch.title": "Web Fetch",
|
||||
"settings.permissions.tool.webfetch.description": "Nouda sisältöä URL-osoitteesta",
|
||||
"settings.permissions.tool.websearch.title": "Verkkohaku",
|
||||
"settings.permissions.tool.websearch.description": "Hae verkosta",
|
||||
"settings.permissions.tool.external_directory.title": "Ulkoinen hakemisto",
|
||||
"settings.permissions.tool.external_directory.description": "Käytä tiedostoja projektihakemiston ulkopuolella",
|
||||
"settings.permissions.tool.doom_loop.title": "Doom Loop",
|
||||
"settings.permissions.tool.doom_loop.description": "Tunnista toistuvat työkalukutsut samalla syötteellä",
|
||||
"session.delete.failed.title": "Istunnon poistaminen epäonnistui",
|
||||
"session.delete.title": "Poista istunto",
|
||||
"session.delete.confirm": 'Poistetaanko istunto "{{name}}"?',
|
||||
"session.delete.button": "Poista istunto",
|
||||
"workspace.new": "Uusi työtila",
|
||||
"workspace.type.local": "paikallinen",
|
||||
"workspace.type.sandbox": "hiekkalaatikko",
|
||||
"workspace.create.failed.title": "Työtilan luominen epäonnistui",
|
||||
"workspace.delete.failed.title": "Työtilan poistaminen epäonnistui",
|
||||
"workspace.resetting.title": "Palautetaan työtilaa",
|
||||
"workspace.resetting.description": "Tämä voi kestää minuutin.",
|
||||
"workspace.reset.failed.title": "Työtilan palauttaminen epäonnistui",
|
||||
"workspace.reset.success.title": "Työtila palautettu",
|
||||
"workspace.reset.success.description": "Työtila vastaa nyt oletushaaraa.",
|
||||
"workspace.error.stillPreparing": "Työtilaa valmistellaan vielä",
|
||||
"workspace.status.checking": "Tarkistetaan yhdistämättömiä muutoksia...",
|
||||
"workspace.status.error": "Gitin tilaa ei voi vahvistaa.",
|
||||
"workspace.status.clean": "Yhdistämättömiä muutoksia ei havaittu.",
|
||||
"workspace.status.dirty": "Tässä työtilassa havaittu yhdistämättömiä muutoksia.",
|
||||
"workspace.delete.title": "Poista työtila",
|
||||
"workspace.delete.confirm": 'Poistetaanko työtila "{{name}}"?',
|
||||
"workspace.delete.button": "Poista työtila",
|
||||
"workspace.reset.title": "Palauta työtila",
|
||||
"workspace.reset.confirm": 'Palautetaanko työtila "{{name}}"?',
|
||||
"workspace.reset.button": "Palauta työtila",
|
||||
"workspace.reset.archived.none": "Aktiivisia istuntoja ei arkistoida.",
|
||||
"workspace.reset.archived.one": "1 istunto arkistoidaan.",
|
||||
"workspace.reset.archived.many": "{{count}} istuntoa arkistoidaan.",
|
||||
"workspace.reset.note": "Tämä palauttaa työtilan vastaamaan oletushaaraa.",
|
||||
}
|
||||
+88
-103
@@ -29,8 +29,8 @@ export const dict = {
|
||||
"command.settings.open": "Ouvrir les paramètres",
|
||||
"command.session.previous": "Session précédente",
|
||||
"command.session.next": "Session suivante",
|
||||
"command.session.previous.unseen": "Session précédente non lue",
|
||||
"command.session.next.unseen": "Session suivante non lue",
|
||||
"command.session.previous.unseen": "Session non lue précédente",
|
||||
"command.session.next.unseen": "Session non lue suivante",
|
||||
"command.session.archive": "Archiver la session",
|
||||
"command.palette": "Palette de commandes",
|
||||
"command.theme.cycle": "Changer de thème",
|
||||
@@ -45,7 +45,7 @@ export const dict = {
|
||||
"command.tab.reopenClosed": "Rouvrir l'onglet fermé",
|
||||
"command.context.addSelection": "Ajouter la sélection au contexte",
|
||||
"command.context.addSelection.description": "Ajouter les lignes sélectionnées du fichier actuel",
|
||||
"command.input.focus": "Activer la zone de saisie",
|
||||
"command.input.focus": "Focus sur l'entrée",
|
||||
"command.terminal.toggle": "Basculer le terminal",
|
||||
"command.fileTree.toggle": "Basculer l'arborescence des fichiers",
|
||||
"command.review.toggle": "Basculer la revue",
|
||||
@@ -59,8 +59,8 @@ export const dict = {
|
||||
"command.message.next.description": "Aller au message utilisateur suivant",
|
||||
"command.model.choose": "Choisir le modèle",
|
||||
"command.model.choose.description": "Sélectionner un modèle différent",
|
||||
"command.mcp.toggle": "Activer ou désactiver les MCP",
|
||||
"command.mcp.toggle.description": "Activer ou désactiver les MCP",
|
||||
"command.mcp.toggle": "Basculer MCP",
|
||||
"command.mcp.toggle.description": "Basculer les MCPs",
|
||||
"command.agent.cycle": "Changer d'agent",
|
||||
"command.agent.cycle.description": "Passer à l'agent suivant",
|
||||
"command.agent.cycle.reverse": "Changer d'agent (inverse)",
|
||||
@@ -68,7 +68,7 @@ export const dict = {
|
||||
"command.model.variant.cycle": "Changer l'effort de réflexion",
|
||||
"command.model.variant.cycle.description": "Passer au niveau d'effort suivant",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Invite",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "Accepter automatiquement les permissions",
|
||||
"command.permissions.autoaccept.disable": "Arrêter d'accepter automatiquement les permissions",
|
||||
"command.workspace.toggle": "Basculer les espaces de travail",
|
||||
@@ -92,9 +92,8 @@ export const dict = {
|
||||
"palette.group.files": "Fichiers",
|
||||
"dialog.provider.search.placeholder": "Rechercher des fournisseurs",
|
||||
"dialog.provider.empty": "Aucun fournisseur trouvé",
|
||||
"dialog.provider.group.popular": "Populaires",
|
||||
"dialog.provider.group.other": "Autres",
|
||||
"dialog.provider.custom.label": "Fournisseur personnalisé compatible avec OpenAI",
|
||||
"dialog.provider.group.popular": "Populaire",
|
||||
"dialog.provider.group.other": "Autre",
|
||||
"dialog.provider.tag.recommended": "Recommandé",
|
||||
"dialog.provider.opencode.note": "Modèles sélectionnés incluant Claude, GPT, Gemini et plus",
|
||||
"dialog.provider.opencode.tagline": "Modèles optimisés et fiables",
|
||||
@@ -110,10 +109,9 @@ export const dict = {
|
||||
"dialog.model.empty": "Aucun résultat de modèle",
|
||||
"dialog.model.manage": "Gérer les modèles",
|
||||
"dialog.model.manage.description": "Personnalisez les modèles qui apparaissent dans le sélecteur.",
|
||||
"dialog.model.manage.provider.toggle": "Activer ou désactiver tous les modèles {{provider}}",
|
||||
"dialog.model.manage.provider.toggle": "Basculer tous les modèles {{provider}}",
|
||||
"dialog.model.unpaid.freeModels.title": "Modèles gratuits fournis par OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Ajouter plus de modèles de fournisseurs populaires",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Voir plus de 70 autres fournisseurs",
|
||||
"dialog.provider.viewAll": "Voir plus de fournisseurs",
|
||||
"provider.connect.title": "Connecter {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Connexion avec Claude Pro/Max",
|
||||
@@ -150,21 +148,19 @@ export const dict = {
|
||||
"provider.connect.toast.connected.title": "{{provider}} connecté",
|
||||
"provider.connect.toast.connected.description": "Les modèles {{provider}} sont maintenant disponibles.",
|
||||
"provider.custom.title": "Fournisseur personnalisé",
|
||||
"provider.custom.description.prefix": "Configurez un fournisseur compatible avec OpenAI. Consultez la ",
|
||||
"provider.custom.description.link": "documentation sur la configuration des fournisseurs",
|
||||
"provider.custom.description.prefix": "Configurer un fournisseur compatible OpenAI. Voir la ",
|
||||
"provider.custom.description.link": "doc de config fournisseur",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "ID du fournisseur",
|
||||
"provider.custom.field.providerID.placeholder": "monfournisseur",
|
||||
"provider.custom.field.providerID.description":
|
||||
"Lettres minuscules, chiffres, traits d'union ou traits de soulignement",
|
||||
"provider.custom.field.providerID.description": "Lettres minuscules, chiffres, traits d'union ou tirets bas",
|
||||
"provider.custom.field.name.label": "Nom d'affichage",
|
||||
"provider.custom.field.name.placeholder": "Mon fournisseur IA",
|
||||
"provider.custom.field.baseURL.label": "URL de base",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.monfournisseur.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Clé API",
|
||||
"provider.custom.field.apiKey.placeholder": "Clé API",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"Facultatif. Laissez ce champ vide si vous gérez l'authentification au moyen des en-têtes.",
|
||||
"provider.custom.field.apiKey.description": "Optionnel. Laisser vide si vous gérez l'auth via les en-têtes.",
|
||||
"provider.custom.models.label": "Modèles",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "id-modele",
|
||||
@@ -180,8 +176,7 @@ export const dict = {
|
||||
"provider.custom.headers.remove": "Supprimer l'en-tête",
|
||||
"provider.custom.headers.add": "Ajouter un en-tête",
|
||||
"provider.custom.error.providerID.required": "L'ID du fournisseur est requis",
|
||||
"provider.custom.error.providerID.format":
|
||||
"Utilisez des lettres minuscules, des chiffres, des traits d'union ou des traits de soulignement",
|
||||
"provider.custom.error.providerID.format": "Utilisez des lettres minuscules, chiffres, traits d'union ou tirets bas",
|
||||
"provider.custom.error.providerID.exists": "Cet ID de fournisseur existe déjà",
|
||||
"provider.custom.error.name.required": "Le nom d'affichage est requis",
|
||||
"provider.custom.error.baseURL.required": "L'URL de base est requise",
|
||||
@@ -191,7 +186,7 @@ export const dict = {
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} déconnecté",
|
||||
"provider.disconnect.toast.disconnected.description": "Les modèles {{provider}} ne sont plus disponibles.",
|
||||
"model.tag.free": "Gratuit",
|
||||
"model.tag.latest": "Le plus récent",
|
||||
"model.tag.latest": "Dernier",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
@@ -202,29 +197,29 @@ export const dict = {
|
||||
"model.input.audio": "audio",
|
||||
"model.input.video": "vidéo",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Formats pris en charge : {{inputs}}",
|
||||
"model.tooltip.allows": "Autorise : {{inputs}}",
|
||||
"model.tooltip.context.label": "Contexte",
|
||||
"model.tooltip.inputs": "Entrées",
|
||||
"model.tooltip.model": "Modèle",
|
||||
"model.tooltip.provider": "Fournisseur",
|
||||
"model.tooltip.reasoning": "Raisonnement",
|
||||
"model.tooltip.reasoning.allowed": "Raisonnement pris en charge",
|
||||
"model.tooltip.reasoning.allowed": "Autorise le raisonnement",
|
||||
"model.tooltip.reasoning.none": "Sans raisonnement",
|
||||
"model.tooltip.context": "Limite de contexte {{limit}}",
|
||||
"common.search.placeholder": "Rechercher",
|
||||
"common.goBack": "Retour",
|
||||
"common.goForward": "Suivant",
|
||||
"common.goForward": "Avancer",
|
||||
"common.loading": "Chargement",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Annuler",
|
||||
"common.clear": "Effacer",
|
||||
"common.connect": "Connecter",
|
||||
"common.disconnect": "Déconnecter",
|
||||
"common.continue": "Continuer",
|
||||
"common.continue": "Soumettre",
|
||||
"common.submit": "Soumettre",
|
||||
"common.save": "Enregistrer",
|
||||
"common.saving": "Enregistrement...",
|
||||
"common.default": "Par défaut",
|
||||
"common.default": "Défaut",
|
||||
"common.attachment": "pièce jointe",
|
||||
"prompt.placeholder.shell": "Entrez une commande shell... {{example}}",
|
||||
"prompt.placeholder.normal": 'Demandez n\'importe quoi... "{{example}}"',
|
||||
@@ -232,8 +227,8 @@ export const dict = {
|
||||
"prompt.placeholder.summarizeComments": "Résumer les commentaires…",
|
||||
"prompt.placeholder.summarizeComment": "Résumer le commentaire…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Invite",
|
||||
"prompt.mode.shell.exit": "Échap pour quitter",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "esc pour quitter",
|
||||
"session.child.promptDisabled": "Les sessions de sous-agents ne peuvent pas recevoir de messages.",
|
||||
"session.child.backToParent": "Revenir à la session principale.",
|
||||
"prompt.example.1": "Corriger un TODO dans la base de code",
|
||||
@@ -242,7 +237,7 @@ export const dict = {
|
||||
"prompt.example.4": "Expliquer comment fonctionne l'authentification",
|
||||
"prompt.example.5": "Trouver et corriger les vulnérabilités de sécurité",
|
||||
"prompt.example.6": "Ajouter des tests unitaires pour le service utilisateur",
|
||||
"prompt.example.7": "Refactoriser cette fonction pour la rendre plus lisible",
|
||||
"prompt.example.7": "Refactoriser cette fonction pour être plus lisible",
|
||||
"prompt.example.8": "Que signifie cette erreur ?",
|
||||
"prompt.example.9": "Aidez-moi à déboguer ce problème",
|
||||
"prompt.example.10": "Générer la documentation de l'API",
|
||||
@@ -250,11 +245,11 @@ export const dict = {
|
||||
"prompt.example.12": "Ajouter une validation d'entrée",
|
||||
"prompt.example.13": "Créer un nouveau composant pour...",
|
||||
"prompt.example.14": "Comment déployer ce projet ?",
|
||||
"prompt.example.15": "Vérifier que mon code respecte les bonnes pratiques",
|
||||
"prompt.example.15": "Vérifier mon code pour les meilleures pratiques",
|
||||
"prompt.example.16": "Ajouter la gestion des erreurs à cette fonction",
|
||||
"prompt.example.17": "Expliquer cette expression régulière",
|
||||
"prompt.example.17": "Expliquer ce modèle regex",
|
||||
"prompt.example.18": "Convertir ceci en TypeScript",
|
||||
"prompt.example.19": "Ajouter une journalisation dans toute la base de code",
|
||||
"prompt.example.19": "Ajouter des logs dans toute la base de code",
|
||||
"prompt.example.20": "Quelles dépendances sont obsolètes ?",
|
||||
"prompt.example.21": "Aidez-moi à écrire un script de migration",
|
||||
"prompt.example.22": "Implémenter la mise en cache pour ce point de terminaison",
|
||||
@@ -266,7 +261,7 @@ export const dict = {
|
||||
"prompt.dropzone.label": "Déposez des images, des PDF ou des fichiers texte ici",
|
||||
"prompt.dropzone.file.label": "Déposez pour @mentionner le fichier",
|
||||
"prompt.slash.badge.custom": "personnalisé",
|
||||
"prompt.slash.badge.skill": "compétence",
|
||||
"prompt.slash.badge.skill": "skill",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "actif",
|
||||
"prompt.context.includeActiveFile": "Inclure le fichier actif",
|
||||
@@ -282,25 +277,24 @@ export const dict = {
|
||||
"prompt.action.send": "Envoyer",
|
||||
"prompt.action.stop": "Arrêter",
|
||||
"prompt.toast.pasteUnsupported.title": "Pièce jointe non prise en charge",
|
||||
"prompt.toast.attachmentDuplicate.title": "Ce fichier a déjà été téléversé",
|
||||
"prompt.toast.pasteUnsupported.description":
|
||||
"Seules les images, les PDF ou les fichiers texte peuvent être joints ici.",
|
||||
"prompt.toast.modelAgentRequired.title": "Sélectionnez un agent et un modèle",
|
||||
"prompt.toast.modelAgentRequired.description": "Choisissez un agent et un modèle avant d'envoyer une invite.",
|
||||
"prompt.toast.modelAgentRequired.description": "Choisissez un agent et un modèle avant d'envoyer un message.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Échec de la création de l'arbre de travail",
|
||||
"prompt.toast.sessionCreateFailed.title": "Échec de la création de la session",
|
||||
"prompt.toast.shellSendFailed.title": "Échec de l'envoi de la commande shell",
|
||||
"prompt.toast.commandSendFailed.title": "Échec de l'envoi de la commande",
|
||||
"prompt.toast.promptSendFailed.title": "Échec de l'envoi de l'invite",
|
||||
"prompt.toast.promptSendFailed.title": "Échec de l'envoi du message",
|
||||
"prompt.toast.promptSendFailed.description": "Impossible de récupérer la session",
|
||||
"dialog.mcp.title": "MCP",
|
||||
"dialog.mcp.description": "MCP actifs : {{enabled}} sur {{total}}",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "{{enabled}} sur {{total}} activés",
|
||||
"dialog.mcp.empty": "Aucun MCP configuré",
|
||||
"dialog.lsp.empty": "Serveurs LSP détectés automatiquement selon le type de fichier",
|
||||
"dialog.plugins.empty": "Extensions configurées dans opencode.json",
|
||||
"dialog.lsp.empty": "LSPs détectés automatiquement par type de fichier",
|
||||
"dialog.plugins.empty": "Plugins configurés dans opencode.json",
|
||||
"mcp.status.connected": "connecté",
|
||||
"mcp.status.failed": "en échec",
|
||||
"mcp.status.needs_auth": "authentification requise",
|
||||
"mcp.status.failed": "échoué",
|
||||
"mcp.status.needs_auth": "nécessite auth",
|
||||
"mcp.auth.clickToAuthenticate": "Cliquez pour vous authentifier",
|
||||
"mcp.status.disabled": "désactivé",
|
||||
"dialog.fork.empty": "Aucun message à partir duquel bifurquer",
|
||||
@@ -335,7 +329,7 @@ export const dict = {
|
||||
"dialog.server.action.remove": "Supprimer le serveur",
|
||||
"dialog.server.menu.edit": "Modifier",
|
||||
"dialog.server.menu.default": "Définir par défaut",
|
||||
"dialog.server.menu.defaultRemove": "Ne plus utiliser par défaut",
|
||||
"dialog.server.menu.defaultRemove": "Supprimer par défaut",
|
||||
"dialog.server.menu.delete": "Supprimer",
|
||||
"dialog.server.current": "Serveur actuel",
|
||||
"dialog.server.status.default": "Défaut",
|
||||
@@ -405,8 +399,8 @@ export const dict = {
|
||||
"wsl.onboarding.notFound": "introuvable",
|
||||
"wsl.onboarding.version": "Version : {{version}}",
|
||||
"wsl.onboarding.unknown": "inconnue",
|
||||
"wsl.onboarding.desktopVersion": "application de bureau {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "La version installée ne correspond pas à celle de l'application de bureau.",
|
||||
"wsl.onboarding.desktopVersion": "desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "La version installée ne correspond pas à celle de l'application desktop.",
|
||||
"wsl.onboarding.adding": "Ajout...",
|
||||
"dialog.project.edit.title": "Modifier le projet",
|
||||
"dialog.project.edit.name": "Nom",
|
||||
@@ -422,13 +416,13 @@ export const dict = {
|
||||
"dialog.project.edit.worktree.startup.placeholder": "p. ex. bun install",
|
||||
"context.breakdown.title": "Répartition du contexte",
|
||||
"context.breakdown.note":
|
||||
"Répartition approximative des jetons d'entrée. \"Autre\" inclut les définitions d'outils et les données annexes.",
|
||||
"Répartition approximative des jetons d'entrée. \"Autre\" inclut les définitions d'outils et les frais généraux.",
|
||||
"context.breakdown.system": "Système",
|
||||
"context.breakdown.user": "Utilisateur",
|
||||
"context.breakdown.assistant": "Assistant",
|
||||
"context.breakdown.tool": "Appels d'outils",
|
||||
"context.breakdown.other": "Autre",
|
||||
"context.systemPrompt.title": "Invite système",
|
||||
"context.systemPrompt.title": "Prompt système",
|
||||
"context.rawMessages.title": "Messages bruts",
|
||||
"context.stats.session": "Session",
|
||||
"context.stats.messages": "Messages",
|
||||
@@ -442,7 +436,7 @@ export const dict = {
|
||||
"context.stats.reasoningTokens": "Jetons de raisonnement",
|
||||
"context.stats.cacheTokens": "Jetons de cache (lecture/écriture)",
|
||||
"context.stats.userMessages": "Messages utilisateur",
|
||||
"context.stats.assistantMessages": "Messages de l'assistant",
|
||||
"context.stats.assistantMessages": "Messages assistant",
|
||||
"context.stats.totalCost": "Coût total",
|
||||
"context.stats.sessionCreated": "Session créée",
|
||||
"context.stats.lastActivity": "Dernière activité",
|
||||
@@ -470,16 +464,16 @@ export const dict = {
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Langue",
|
||||
"toast.language.description": "Langue définie sur {{language}}",
|
||||
"toast.language.description": "Passé à {{language}}",
|
||||
"toast.theme.title": "Thème changé",
|
||||
"toast.scheme.title": "Schéma de couleurs",
|
||||
"toast.workspace.enabled.title": "Espaces de travail activés",
|
||||
"toast.workspace.enabled.description": "Plusieurs arbres de travail sont désormais affichés dans la barre latérale",
|
||||
"toast.workspace.enabled.description": "Plusieurs worktrees sont désormais affichés dans la barre latérale",
|
||||
"toast.workspace.disabled.title": "Espaces de travail désactivés",
|
||||
"toast.workspace.disabled.description": "Seul l'arbre de travail principal est affiché dans la barre latérale",
|
||||
"toast.workspace.disabled.description": "Seul le worktree principal est affiché dans la barre latérale",
|
||||
"toast.permissions.autoaccept.on.title": "Acceptation automatique des permissions",
|
||||
"toast.permissions.autoaccept.on.description": "Les demandes de permission seront approuvées automatiquement",
|
||||
"toast.permissions.autoaccept.off.title": "Acceptation automatique des permissions désactivée",
|
||||
"toast.permissions.autoaccept.off.title": "Acceptation automatique des permissions arrêtée",
|
||||
"toast.permissions.autoaccept.off.description": "Les demandes de permission nécessiteront une approbation",
|
||||
"toast.model.none.title": "Aucun modèle sélectionné",
|
||||
"toast.model.none.description": "Connectez un fournisseur pour résumer cette session",
|
||||
@@ -492,18 +486,17 @@ export const dict = {
|
||||
"toast.session.share.success.description": "URL de partage copiée dans le presse-papiers !",
|
||||
"toast.session.share.failed.title": "Échec du partage de la session",
|
||||
"toast.session.share.failed.description": "Une erreur s'est produite lors du partage de la session",
|
||||
"toast.session.unshare.success.title": "Partage de la session désactivé",
|
||||
"toast.session.unshare.success.description": "Le partage de la session a bien été désactivé.",
|
||||
"toast.session.unshare.failed.title": "Échec de la désactivation du partage",
|
||||
"toast.session.unshare.failed.description":
|
||||
"Une erreur s'est produite lors de la désactivation du partage de la session",
|
||||
"toast.session.unshare.success.title": "Session non partagée",
|
||||
"toast.session.unshare.success.description": "Session non partagée avec succès !",
|
||||
"toast.session.unshare.failed.title": "Échec de l'annulation du partage",
|
||||
"toast.session.unshare.failed.description": "Une erreur s'est produite lors de l'annulation du partage de la session",
|
||||
"toast.session.listFailed.title": "Échec du chargement des sessions pour {{project}}",
|
||||
"toast.update.title": "Mise à jour disponible",
|
||||
"toast.update.description":
|
||||
"Une nouvelle version d'OpenCode ({{version}}) est maintenant disponible pour installation.",
|
||||
"toast.update.action.installRestart": "Installer et redémarrer",
|
||||
"toast.update.action.notYet": "Plus tard",
|
||||
"error.page.title": "Un problème est survenu",
|
||||
"toast.update.action.notYet": "Pas encore",
|
||||
"error.page.title": "Quelque chose s'est mal passé",
|
||||
"error.page.description": "Une erreur s'est produite lors du chargement de l'application.",
|
||||
"error.page.description.localServerStartup": "Une erreur s'est produite lors du démarrage du serveur local.",
|
||||
"error.page.details.label": "Détails de l'erreur",
|
||||
@@ -526,13 +519,13 @@ export const dict = {
|
||||
"error.chain.causedBy": "Causé par :",
|
||||
"error.chain.apiError": "Erreur API",
|
||||
"error.chain.status": "Statut : {{status}}",
|
||||
"error.chain.retryable": "Nouvelle tentative possible : {{retryable}}",
|
||||
"error.chain.retryable": "Réessayable : {{retryable}}",
|
||||
"error.chain.responseBody": "Corps de la réponse :\n{{body}}",
|
||||
"error.chain.didYouMean": "Vouliez-vous dire : {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Modèle introuvable : {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Vérifiez les noms de fournisseur et de modèle dans votre configuration (opencode.json)",
|
||||
"error.chain.checkConfig": "Vérifiez votre configuration (opencode.json) pour les noms de fournisseur/modèle",
|
||||
"error.chain.mcpFailed":
|
||||
"Le serveur MCP \"{{name}}\" a échoué. Notez qu'OpenCode ne prend pas encore en charge l'authentification MCP.",
|
||||
"Le serveur MCP \"{{name}}\" a échoué. Notez qu'OpenCode ne supporte pas encore l'authentification MCP.",
|
||||
"error.chain.providerAuthFailed": "Échec de l'authentification du fournisseur ({{provider}}) : {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Échec de l\'initialisation du fournisseur "{{provider}}". Vérifiez les identifiants et la configuration.',
|
||||
@@ -541,7 +534,7 @@ export const dict = {
|
||||
"Le fichier de configuration à {{path}} n'est pas un JSON(C) valide : {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'Le répertoire "{{dir}}" dans {{path}} n\'est pas valide. Renommez le répertoire en "{{suggestion}}" ou supprimez-le. C\'est une faute de frappe courante.',
|
||||
"error.chain.configFrontmatterError": "Échec de l'analyse de l'en-tête dans {{path}} :\n{{message}}",
|
||||
"error.chain.configFrontmatterError": "Échec de l'analyse du frontmatter dans {{path}} :\n{{message}}",
|
||||
"error.chain.configInvalid": "Le fichier de configuration à {{path}} est invalide",
|
||||
"error.chain.configInvalidWithMessage": "Le fichier de configuration à {{path}} est invalide : {{message}}",
|
||||
"notification.permission.title": "Permission requise",
|
||||
@@ -589,7 +582,7 @@ export const dict = {
|
||||
"session.review.noChanges": "Aucune modification",
|
||||
"session.review.noUncommittedChanges": "Aucune modification non validée pour l'instant",
|
||||
"session.review.noBranchChanges": "Aucune modification de branche pour l'instant",
|
||||
"session.review.noVcs": "Aucun système de gestion de versions Git détecté ; modifications non affichées",
|
||||
"session.review.noVcs": "Aucun système de contrôle de version Git détecté, modifications non affichées",
|
||||
"session.review.noSnapshot":
|
||||
"Le suivi des instantanés est désactivé dans la configuration, les modifications de session sont donc indisponibles",
|
||||
"session.files.selectToOpen": "Sélectionnez un fichier à ouvrir",
|
||||
@@ -600,7 +593,7 @@ export const dict = {
|
||||
"session.messages.loadingEarlier": "Chargement des messages précédents...",
|
||||
"session.messages.loadEarlier": "Charger les messages précédents",
|
||||
"session.messages.loading": "Chargement des messages...",
|
||||
"session.messages.jumpToLatest": "Aller au message le plus récent",
|
||||
"session.messages.jumpToLatest": "Aller au dernier",
|
||||
"session.context.addToContext": "Ajouter {{selection}} au contexte",
|
||||
"session.todo.title": "Tâches",
|
||||
"session.todo.collapse": "Réduire",
|
||||
@@ -608,17 +601,14 @@ export const dict = {
|
||||
"session.question.minimize": "Réduire la question",
|
||||
"session.question.restore": "Restaurer la question",
|
||||
"session.question.pending.one": "{{count}} question en attente",
|
||||
"session.question.pending.many": "{{count}} de questions en attente",
|
||||
"session.question.pending.other": "{{count}} questions en attente",
|
||||
"session.followupDock.summary.one": "{{count}} message en file d'attente",
|
||||
"session.followupDock.summary.many": "{{count}} de messages en file d'attente",
|
||||
"session.followupDock.summary.other": "{{count}} messages en file d'attente",
|
||||
"session.followupDock.sendNow": "Envoyer maintenant",
|
||||
"session.followupDock.edit": "Modifier",
|
||||
"session.followupDock.collapse": "Réduire les messages en file d'attente",
|
||||
"session.followupDock.expand": "Développer les messages en file d'attente",
|
||||
"session.revertDock.summary.one": "{{count}} message annulé",
|
||||
"session.revertDock.summary.many": "{{count}} de messages annulés",
|
||||
"session.revertDock.summary.other": "{{count}} messages annulés",
|
||||
"session.revertDock.collapse": "Réduire les messages annulés",
|
||||
"session.revertDock.expand": "Développer les messages annulés",
|
||||
@@ -644,17 +634,17 @@ export const dict = {
|
||||
"session.header.open.menu": "Options d'ouverture",
|
||||
"session.header.open.copyPath": "Copier le chemin",
|
||||
"status.popover.trigger": "Statut",
|
||||
"status.popover.ariaLabel": "Configuration des serveurs",
|
||||
"status.popover.ariaLabel": "Configurations des serveurs",
|
||||
"status.popover.tab.servers": "Serveurs",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Plugins",
|
||||
"status.popover.action.manageServers": "Gérer les serveurs",
|
||||
"session.share.popover.title": "Publier sur le Web",
|
||||
"session.share.popover.title": "Publier sur le web",
|
||||
"session.share.popover.description.shared":
|
||||
"Cette session est publique sur le Web. Elle est accessible à toute personne disposant du lien.",
|
||||
"Cette session est publique sur le web. Elle est accessible à toute personne disposant du lien.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Rendre la session publique sur le Web. Elle sera accessible à toute personne disposant du lien.",
|
||||
"Partager la session publiquement sur le web. Elle sera accessible à toute personne disposant du lien.",
|
||||
"session.share.action.share": "Partager",
|
||||
"session.share.action.publish": "Publier",
|
||||
"session.share.action.publishing": "Publication...",
|
||||
@@ -665,7 +655,7 @@ export const dict = {
|
||||
"session.share.copy.copyLink": "Copier le lien",
|
||||
"lsp.tooltip.none": "Aucun serveur LSP",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Chargement de l'invite...",
|
||||
"prompt.loading": "Chargement du prompt...",
|
||||
"terminal.loading": "Chargement du terminal...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
@@ -703,7 +693,7 @@ export const dict = {
|
||||
"sidebar.empty.title": "Aucun projet ouvert",
|
||||
"sidebar.empty.description": "Ouvrez un projet pour commencer",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Application de bureau",
|
||||
"settings.section.desktop": "Bureau",
|
||||
"settings.section.server": "Serveur",
|
||||
"settings.tab.general": "Général",
|
||||
"settings.tab.shortcuts": "Raccourcis",
|
||||
@@ -719,10 +709,10 @@ export const dict = {
|
||||
"settings.general.section.display": "Affichage",
|
||||
"settings.general.row.language.title": "Langue",
|
||||
"settings.general.row.language.description": "Changer la langue d'affichage pour OpenCode",
|
||||
"settings.general.row.shell.title": "Interpréteur de commandes du terminal",
|
||||
"settings.general.row.shell.title": "Shell du terminal",
|
||||
"settings.general.row.shell.description":
|
||||
"Choisissez le shell utilisé par votre terminal. Les shells compatibles sont également utilisés pour les appels d'outils de l'agent.",
|
||||
"settings.general.row.shell.autoDefault": "Automatique (par défaut)",
|
||||
"settings.general.row.shell.autoDefault": "Auto (par défaut)",
|
||||
"settings.general.row.shell.terminalOnly": "terminal uniquement",
|
||||
"settings.general.row.appearance.title": "Apparence",
|
||||
"settings.general.row.appearance.description": "Personnaliser l'apparence d'OpenCode sur votre appareil",
|
||||
@@ -736,22 +726,22 @@ export const dict = {
|
||||
"settings.general.row.terminalFont.description": "Personnalisez la police utilisée dans le terminal",
|
||||
"settings.general.row.uiFont.title": "Police de l'interface",
|
||||
"settings.general.row.uiFont.description": "Personnaliser la police utilisée dans toute l'interface",
|
||||
"settings.general.row.followup.title": "Comportement des messages de suivi",
|
||||
"settings.general.row.followup.title": "Comportement de suivi",
|
||||
"settings.general.row.followup.description":
|
||||
"Choisissez si les messages de suivi orientent immédiatement l'agent ou sont placés dans une file d'attente",
|
||||
"Choisissez si les messages de suivi dirigent immédiatement ou attendent dans une file d'attente",
|
||||
"settings.general.row.followup.option.queue": "File d'attente",
|
||||
"settings.general.row.followup.option.steer": "Orienter",
|
||||
"settings.general.row.followup.option.steer": "Diriger",
|
||||
"settings.general.row.showFileTree.title": "Arborescence des fichiers",
|
||||
"settings.general.row.showFileTree.description": "Afficher le panneau d'arborescence des fichiers dans les sessions",
|
||||
"settings.general.row.showNavigation.title": "Commandes de navigation",
|
||||
"settings.general.row.showNavigation.description":
|
||||
"Afficher les boutons précédent et suivant dans la barre de titre de l'application de bureau",
|
||||
"Afficher les boutons précédent et suivant dans la barre de titre de l'application desktop",
|
||||
"settings.general.row.showSearch.title": "Palette de commandes",
|
||||
"settings.general.row.showSearch.description":
|
||||
"Afficher le bouton de recherche et de palette de commandes dans la barre de titre",
|
||||
"settings.general.row.showTerminal.title": "Terminal",
|
||||
"settings.general.row.showTerminal.description":
|
||||
"Afficher le bouton du terminal dans la barre de titre de l'application de bureau",
|
||||
"Afficher le bouton du terminal dans la barre de titre de l'application desktop",
|
||||
"settings.general.row.showStatus.title": "État du serveur",
|
||||
"settings.general.row.showStatus.description": "Afficher le bouton d'état du serveur dans la barre de titre",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigation en bas",
|
||||
@@ -783,13 +773,11 @@ export const dict = {
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Sur Linux avec des moniteurs à taux de rafraîchissement mixte, Wayland natif peut être plus stable.",
|
||||
"settings.general.row.releaseNotes.title": "Notes de version",
|
||||
"settings.general.row.releaseNotes.description":
|
||||
"Afficher les fenêtres contextuelles « Quoi de neuf » après les mises à jour",
|
||||
"settings.general.row.releaseNotes.description": 'Afficher des pop-ups "Quoi de neuf" après les mises à jour',
|
||||
"settings.updates.row.startup.title": "Vérifier les mises à jour au démarrage",
|
||||
"settings.updates.row.startup.description": "Vérifier automatiquement les mises à jour au lancement d'OpenCode",
|
||||
"settings.updates.row.check.title": "Vérifier les mises à jour",
|
||||
"settings.updates.row.check.description":
|
||||
"Rechercher manuellement les mises à jour et installer toute mise à jour disponible",
|
||||
"settings.updates.row.check.description": "Vérifier manuellement les mises à jour et installer si disponible",
|
||||
"settings.updates.action.checkNow": "Vérifier maintenant",
|
||||
"settings.updates.action.checking": "Vérification...",
|
||||
"settings.updates.action.downloading": "Téléchargement...",
|
||||
@@ -857,12 +845,12 @@ export const dict = {
|
||||
"settings.general.sounds.errors.title": "Erreurs",
|
||||
"settings.general.sounds.errors.description": "Jouer un son lorsqu'une erreur se produit",
|
||||
"settings.shortcuts.title": "Raccourcis clavier",
|
||||
"settings.shortcuts.reset.button": "Rétablir les valeurs par défaut",
|
||||
"settings.shortcuts.reset.button": "Rétablir les défauts",
|
||||
"settings.shortcuts.reset.toast.title": "Raccourcis réinitialisés",
|
||||
"settings.shortcuts.reset.toast.description": "Les raccourcis clavier ont été réinitialisés aux valeurs par défaut.",
|
||||
"settings.shortcuts.conflict.title": "Raccourci déjà utilisé",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} est déjà attribué à {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Non attribué",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} est déjà assigné à {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Non assigné",
|
||||
"settings.shortcuts.pressKeys": "Appuyez sur les touches",
|
||||
"settings.shortcuts.search.placeholder": "Rechercher des raccourcis",
|
||||
"settings.shortcuts.search.empty": "Aucun raccourci trouvé",
|
||||
@@ -871,7 +859,7 @@ export const dict = {
|
||||
"settings.shortcuts.group.navigation": "Navigation",
|
||||
"settings.shortcuts.group.modelAndAgent": "Modèle et agent",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "Invite",
|
||||
"settings.shortcuts.group.prompt": "Prompt",
|
||||
"settings.providers.title": "Fournisseurs",
|
||||
"settings.providers.description": "Les paramètres des fournisseurs seront configurables ici.",
|
||||
"settings.providers.section.connected": "Fournisseurs connectés",
|
||||
@@ -900,9 +888,9 @@ export const dict = {
|
||||
"settings.permissions.tool.read.description": "Lecture d'un fichier (correspond au chemin du fichier)",
|
||||
"settings.permissions.tool.edit.title": "Modifier",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Modifier des fichiers, notamment au moyen des outils edit, write et patch",
|
||||
"Modifier des fichiers, y compris les modifications, écritures, patchs et multi-modifications",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Rechercher des fichiers à l'aide de motifs glob",
|
||||
"settings.permissions.tool.glob.description": "Correspondre aux fichiers utilisant des modèles glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description":
|
||||
"Rechercher dans le contenu des fichiers à l'aide d'expressions régulières",
|
||||
@@ -916,12 +904,12 @@ export const dict = {
|
||||
"settings.permissions.tool.skill.description": "Charger une compétence par son nom",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Exécuter des requêtes de serveur de langage",
|
||||
"settings.permissions.tool.todowrite.title": "Écrire les tâches",
|
||||
"settings.permissions.tool.todowrite.title": "Écrire Todo",
|
||||
"settings.permissions.tool.todowrite.description": "Mettre à jour la liste de tâches",
|
||||
"settings.permissions.tool.webfetch.title": "Récupération Web",
|
||||
"settings.permissions.tool.webfetch.description": "Récupérer le contenu d'une URL",
|
||||
"settings.permissions.tool.websearch.title": "Recherche Web",
|
||||
"settings.permissions.tool.websearch.description": "Rechercher sur le Web",
|
||||
"settings.permissions.tool.websearch.description": "Rechercher sur le web",
|
||||
"settings.permissions.tool.external_directory.title": "Répertoire externe",
|
||||
"settings.permissions.tool.external_directory.description": "Accéder aux fichiers en dehors du répertoire du projet",
|
||||
"settings.permissions.tool.doom_loop.title": "Boucle infernale",
|
||||
@@ -942,7 +930,7 @@ export const dict = {
|
||||
"workspace.reset.success.description": "L'espace de travail correspond maintenant à la branche par défaut.",
|
||||
"workspace.error.stillPreparing": "L'espace de travail est encore en cours de préparation",
|
||||
"workspace.status.checking": "Vérification des modifications non fusionnées...",
|
||||
"workspace.status.error": "Impossible de vérifier l'état de Git.",
|
||||
"workspace.status.error": "Impossible de vérifier le statut git.",
|
||||
"workspace.status.clean": "Aucune modification non fusionnée détectée.",
|
||||
"workspace.status.dirty": "Modifications non fusionnées détectées dans cet espace de travail.",
|
||||
"workspace.delete.title": "Supprimer l'espace de travail",
|
||||
@@ -964,9 +952,9 @@ export const dict = {
|
||||
"error.server.invalidConfiguration": "Configuration invalide",
|
||||
"common.moreCountSuffix": " (+{{count}} de plus)",
|
||||
"common.time.justNow": "À l'instant",
|
||||
"common.time.minutesAgo.short": "il y a {{count}} min",
|
||||
"common.time.hoursAgo.short": "il y a {{count}} h",
|
||||
"common.time.daysAgo.short": "il y a {{count}} j",
|
||||
"common.time.minutesAgo.short": "il y a {{count}}m",
|
||||
"common.time.hoursAgo.short": "il y a {{count}}h",
|
||||
"common.time.daysAgo.short": "il y a {{count}}j",
|
||||
"settings.providers.connected.environmentDescription": "Connecté à partir de vos variables d'environnement",
|
||||
"settings.providers.custom.description": "Ajouter un fournisseur compatible avec OpenAI via l'URL de base.",
|
||||
|
||||
@@ -984,9 +972,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}} questions sur {{total}}",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Explorateur de fichiers",
|
||||
"session.header.reveal.finder": "Afficher dans le Finder",
|
||||
"session.header.reveal.fileExplorer": "Afficher dans l’Explorateur de fichiers",
|
||||
"session.header.reveal.containingFolder": "Ouvrir le dossier contenant",
|
||||
"session.header.open.fileManager": "Gestionnaire de fichiers",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -1007,11 +992,11 @@ export const dict = {
|
||||
"debugBar.nav.tip":
|
||||
"Dernière transition de route terminée touchant une page de session, mesurée du début du routeur jusqu'au premier affichage après stabilisation.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Fréquence d'images calculée sur les 5 dernières secondes.",
|
||||
"debugBar.fps.tip": "Images par seconde glissantes sur les 5 dernières secondes.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Durée d'image maximale sur les 5 dernières secondes.",
|
||||
"debugBar.frame.tip": "Pire temps d'image sur les 5 dernières secondes.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Images de plus de 32 ms au cours des 5 dernières secondes.",
|
||||
"debugBar.jank.tip": "Images de plus de 32ms au cours des 5 dernières secondes.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip":
|
||||
"Temps bloqué et nombre de tâches longues au cours des 5 dernières secondes. Tâche max : {{max}}.",
|
||||
@@ -1019,7 +1004,7 @@ export const dict = {
|
||||
"debugBar.delay.tip": "Pire délai d'entrée observé au cours des 5 dernières secondes.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Durée approximative d'interaction au cours des 5 dernières secondes. Il s'agit d'une mesure similaire à l'INP, et non de l'INP officiel des Web Vitals.",
|
||||
"Durée approximative d'interaction au cours des 5 dernières secondes. Ceci est similaire à INP, pas le INP officiel des Web Vitals.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Décalage cumulatif de la mise en page pour la durée de vie actuelle de l'application.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
|
||||
@@ -1,1020 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "सुझाए गए",
|
||||
"command.category.view": "दृश्य",
|
||||
"command.category.project": "प्रोजेक्ट",
|
||||
"command.category.provider": "प्रोवाइडर",
|
||||
"command.category.server": "सर्वर",
|
||||
"command.category.session": "सेशन",
|
||||
"command.category.theme": "थीम",
|
||||
"command.category.language": "भाषा",
|
||||
"command.category.file": "फ़ाइल",
|
||||
"command.category.context": "कॉन्टेक्स्ट",
|
||||
"command.category.terminal": "टर्मिनल",
|
||||
"command.category.model": "मॉडल",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "एजेंट",
|
||||
"command.category.permissions": "अनुमतियाँ",
|
||||
"command.category.workspace": "वर्कस्पेस",
|
||||
"command.category.settings": "सेटिंग्स",
|
||||
"theme.scheme.system": "सिस्टम",
|
||||
"theme.scheme.light": "हल्की",
|
||||
"theme.scheme.dark": "गहरी",
|
||||
"command.sidebar.toggle": "साइडबार टॉगल करें",
|
||||
"command.project.open": "प्रोजेक्ट खोलें",
|
||||
"command.project.previous": "पिछला प्रोजेक्ट",
|
||||
"command.project.next": "अगला प्रोजेक्ट",
|
||||
"command.project.index": "प्रोजेक्ट {{index}} पर स्विच करें",
|
||||
"command.provider.connect": "प्रोवाइडर कनेक्ट करें",
|
||||
"command.server.switch": "सर्वर स्विच करें",
|
||||
"command.settings.open": "सेटिंग्स खोलें",
|
||||
"command.session.previous": "पिछला सेशन",
|
||||
"command.session.next": "अगला सेशन",
|
||||
"command.session.previous.unseen": "पिछला अपठित सेशन",
|
||||
"command.session.next.unseen": "अगला अपठित सेशन",
|
||||
"command.session.archive": "सेशन संग्रहित करें",
|
||||
"command.palette": "कमांड पैलेट",
|
||||
"command.theme.cycle": "थीम बदलें",
|
||||
"command.theme.set": "थीम का उपयोग करें: {{theme}}",
|
||||
"command.theme.scheme.cycle": "रंग योजना बदलें",
|
||||
"command.theme.scheme.set": "रंग योजना का उपयोग करें: {{scheme}}",
|
||||
"command.language.cycle": "भाषा बदलें",
|
||||
"command.language.set": "भाषा का प्रयोग करें: {{language}}",
|
||||
"command.session.new": "नया सेशन",
|
||||
"command.file.open": "फ़ाइल खोलें",
|
||||
"command.tab.close": "टैब बंद करें",
|
||||
"command.tab.reopenClosed": "बंद टैब पुनः खोलें",
|
||||
"command.context.addSelection": "कॉन्टेक्स्ट में चयन जोड़ें",
|
||||
"command.context.addSelection.description": "वर्तमान फ़ाइल से चयनित पंक्तियाँ जोड़ें",
|
||||
"command.input.focus": "इनपुट पर फ़ोकस करें",
|
||||
"command.terminal.toggle": "टर्मिनल टॉगल करें",
|
||||
"command.fileTree.toggle": "फ़ाइल ट्री टॉगल करें",
|
||||
"command.review.toggle": "समीक्षा टॉगल करें",
|
||||
"command.terminal.new": "नया टर्मिनल",
|
||||
"command.terminal.new.description": "एक नया टर्मिनल टैब बनाएं",
|
||||
"command.steps.toggle": "चरण टॉगल करें",
|
||||
"command.steps.toggle.description": "वर्तमान संदेश के लिए चरण दिखाएँ या छिपाएँ",
|
||||
"command.message.previous": "पिछला संदेश",
|
||||
"command.message.previous.description": "पिछले उपयोगकर्ता संदेश पर जाएँ",
|
||||
"command.message.next": "अगला संदेश",
|
||||
"command.message.next.description": "अगले उपयोगकर्ता संदेश पर जाएँ",
|
||||
"command.model.choose": "मॉडल चुनें",
|
||||
"command.model.choose.description": "एक अलग मॉडल चुनें",
|
||||
"command.mcp.toggle": "MCPs टॉगल करें",
|
||||
"command.mcp.toggle.description": "MCPs टॉगल करें",
|
||||
"command.agent.cycle": "एजेंट बदलें",
|
||||
"command.agent.cycle.description": "अगले एजेंट पर स्विच करें",
|
||||
"command.agent.cycle.reverse": "पिछला एजेंट चुनें",
|
||||
"command.agent.cycle.reverse.description": "पिछले एजेंट पर स्विच करें",
|
||||
"command.model.variant.cycle": "तर्क का स्तर बदलें",
|
||||
"command.model.variant.cycle.description": "तर्क के अगले स्तर पर जाएँ",
|
||||
"command.prompt.mode.shell": "शेल",
|
||||
"command.prompt.mode.normal": "प्रॉम्प्ट",
|
||||
"command.permissions.autoaccept.enable": "अनुमतियाँ स्वतः स्वीकार करें",
|
||||
"command.permissions.autoaccept.disable": "अनुमतियाँ स्वत: स्वीकार करना बंद करें",
|
||||
"command.workspace.toggle": "वर्कस्पेस टॉगल करें",
|
||||
"command.workspace.toggle.description": "साइडबार में एकाधिक वर्कस्पेस को सक्षम या अक्षम करें",
|
||||
"command.session.undo": "पूर्ववत",
|
||||
"command.session.undo.description": "अंतिम संदेश पूर्ववत करें",
|
||||
"command.session.redo": "फिर से करें",
|
||||
"command.session.redo.description": "अंतिम पूर्ववत संदेश को पुनः करें",
|
||||
"command.session.compact": "सेशन संक्षिप्त करें",
|
||||
"command.session.compact.description": "कॉन्टेक्स्ट आकार को कम करने के लिए सेशन को सारांशित करें",
|
||||
"command.session.fork": "संदेश से फ़ोर्क",
|
||||
"command.session.fork.description": "पिछले संदेश से एक नया सेशन बनाएं",
|
||||
"command.session.share": "सेशन साझा करें",
|
||||
"command.session.share.description": "इस सेशन को साझा करें और URL को क्लिपबोर्ड पर कॉपी करें",
|
||||
"command.session.unshare": "सेशन साझा करना बंद करें",
|
||||
"command.session.unshare.description": "इस सेशन को साझा करना बंद करें",
|
||||
"palette.search.placeholder": "फ़ाइलें, कमांड और सेशन खोजें",
|
||||
"palette.search.placeholder.home": "कमांड और सेशन खोजें",
|
||||
"palette.empty": "कोई परिणाम नहीं मिला",
|
||||
"palette.group.commands": "कमांड",
|
||||
"palette.group.files": "फ़ाइलें",
|
||||
"dialog.provider.search.placeholder": "प्रोवाइडर खोजें",
|
||||
"dialog.provider.empty": "कोई प्रोवाइडर नहीं मिला",
|
||||
"dialog.provider.group.popular": "लोकप्रिय",
|
||||
"dialog.provider.group.other": "अन्य",
|
||||
"dialog.provider.custom.label": "कस्टम OpenAI-संगत प्रोवाइडर",
|
||||
"dialog.provider.tag.recommended": "अनुशंसित",
|
||||
"dialog.provider.opencode.note": "Claude, GPT, Gemini और अधिक सहित क्यूरेटेड मॉडल",
|
||||
"dialog.provider.opencode.tagline": "विश्वसनीय अनुकूलित मॉडल",
|
||||
"dialog.provider.opencodeGo.tagline": "सभी के लिए कम लागत वाली सदस्यता",
|
||||
"dialog.provider.anthropic.note": "प्रो और मैक्स सहित Claude मॉडल तक सीधी पहुँच",
|
||||
"dialog.provider.copilot.note": "GitHub Copilot के माध्यम से कोडिंग सहायता के लिए AI मॉडल",
|
||||
"dialog.provider.openai.note": "तेज़, सक्षम सामान्य AI कार्यों के लिए GPT मॉडल",
|
||||
"dialog.provider.google.note": "तेज़, संरचित प्रतिक्रियाओं के लिए Gemini मॉडल",
|
||||
"dialog.provider.openrouter.note": "एक प्रोवाइडर से सभी समर्थित मॉडल तक पहुँचें",
|
||||
"dialog.provider.vercel.note": "स्मार्ट रूटिंग के साथ AI मॉडल तक एकीकृत पहुँच",
|
||||
"dialog.model.select.title": "मॉडल चुनें",
|
||||
"dialog.model.search.placeholder": "मॉडल खोजें",
|
||||
"dialog.model.empty": "कोई मॉडल परिणाम नहीं",
|
||||
"dialog.model.manage": "मॉडल प्रबंधित करें",
|
||||
"dialog.model.manage.description": "तय करें कि मॉडल चयनकर्ता में कौन-से मॉडल दिखाई दें।",
|
||||
"dialog.model.manage.provider.toggle": "सभी {{provider}} मॉडल को टॉगल करें",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode द्वारा उपलब्ध निःशुल्क मॉडल",
|
||||
"dialog.model.unpaid.addMore.title": "लोकप्रिय प्रोवाइडर से अधिक मॉडल जोड़ें",
|
||||
"dialog.model.unpaid.viewMoreProviders": "70+ अधिक प्रोवाइडर देखें",
|
||||
"dialog.provider.viewAll": "और प्रोवाइडर दिखाएँ",
|
||||
"provider.connect.title": "{{provider}} कनेक्ट करें",
|
||||
"provider.connect.title.anthropicProMax": "Claude प्रो/मैक्स के साथ लॉगिन करें",
|
||||
"provider.connect.selectMethod": "{{provider}} के लिए लॉगिन विधि चुनें।",
|
||||
"provider.connect.method.apiKey": "API कुंजी",
|
||||
"provider.connect.status.inProgress": "प्राधिकरण प्रगति पर है...",
|
||||
"provider.connect.status.waiting": "प्राधिकरण की प्रतीक्षा हो रही है...",
|
||||
"provider.connect.status.failed": "प्राधिकरण विफल: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"अपने खाते को कनेक्ट करने के लिए अपनी {{provider}} API कुंजी दर्ज करें और OpenCode में {{provider}} मॉडल का उपयोग करें।",
|
||||
"provider.connect.apiKey.label": "{{provider}} API कुंजी",
|
||||
"provider.connect.apiKey.placeholder": "API कुंजी",
|
||||
"provider.connect.apiKey.required": "API कुंजी आवश्यक है",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen आपको कोडिंग एजेंटों के लिए चुने गए विश्वसनीय, अनुकूलित मॉडलों तक पहुँच देता है।",
|
||||
"provider.connect.opencodeZen.line2": "एक API कुंजी से आपको Claude, GPT, Gemini, GLM जैसे कई मॉडलों तक पहुँच मिलेगी।",
|
||||
"provider.connect.opencodeZen.visit.prefix": "यहाँ जाएँ: ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " अपनी API कुंजी प्राप्त करने के लिए।",
|
||||
"provider.connect.oauth.code.visit.prefix": "यहाँ जाएँ: ",
|
||||
"provider.connect.oauth.code.visit.link": "इस लिंक",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" अपने खाते को कनेक्ट करने और OpenCode में {{provider}} मॉडल का उपयोग करने के लिए अपना प्राधिकरण कोड प्राप्त करें।",
|
||||
"provider.connect.oauth.code.label": "{{method}} प्राधिकरण कोड",
|
||||
"provider.connect.oauth.code.placeholder": "प्राधिकरण कोड",
|
||||
"provider.connect.oauth.code.required": "प्राधिकरण कोड आवश्यक है",
|
||||
"provider.connect.oauth.code.invalid": "अमान्य प्राधिकरण कोड",
|
||||
"provider.connect.oauth.auto.visit.prefix": "यहाँ जाएँ: ",
|
||||
"provider.connect.oauth.auto.visit.link": "इस लिंक",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" और अपने खाते को कनेक्ट करने तथा OpenCode में {{provider}} मॉडल का उपयोग करने के लिए नीचे दिया गया कोड दर्ज करें।",
|
||||
"provider.connect.oauth.auto.confirmationCode": "पुष्टि कोड",
|
||||
"provider.connect.toast.connected.title": "{{provider}} कनेक्ट हो गया",
|
||||
"provider.connect.toast.connected.description": "{{provider}} मॉडल अब उपयोग के लिए उपलब्ध हैं।",
|
||||
"provider.custom.title": "कस्टम प्रोवाइडर",
|
||||
"provider.custom.description.prefix": "एक OpenAI-संगत प्रोवाइडर कॉन्फ़िगर करें। देखें ",
|
||||
"provider.custom.description.link": "प्रोवाइडर कॉन्फ़िगरेशन दस्तावेज़",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "प्रोवाइडर ID",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "छोटे अक्षर, संख्याएँ, हाइफ़न, या अंडरस्कोर",
|
||||
"provider.custom.field.name.label": "प्रदर्शित होने वाला नाम",
|
||||
"provider.custom.field.name.placeholder": "मेरा AI प्रोवाइडर",
|
||||
"provider.custom.field.baseURL.label": "आधार URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API कुंजी",
|
||||
"provider.custom.field.apiKey.placeholder": "API कुंजी",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"वैकल्पिक। यदि आप हेडर के माध्यम से प्रमाणीकरण प्रबंधित करते हैं तो खाली छोड़ दें।",
|
||||
"provider.custom.models.label": "मॉडल",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "नाम",
|
||||
"provider.custom.models.name.placeholder": "प्रदर्शित होने वाला नाम",
|
||||
"provider.custom.models.remove": "मॉडल हटाएँ",
|
||||
"provider.custom.models.add": "मॉडल जोड़ें",
|
||||
"provider.custom.headers.label": "हेडर (वैकल्पिक)",
|
||||
"provider.custom.headers.key.label": "हेडर",
|
||||
"provider.custom.headers.key.placeholder": "Header-Name",
|
||||
"provider.custom.headers.value.label": "मान",
|
||||
"provider.custom.headers.value.placeholder": "value",
|
||||
"provider.custom.headers.remove": "हेडर हटाएँ",
|
||||
"provider.custom.headers.add": "हेडर जोड़ें",
|
||||
"provider.custom.error.providerID.required": "प्रोवाइडर ID आवश्यक है",
|
||||
"provider.custom.error.providerID.format": "छोटे अक्षरों, संख्याओं, हाइफ़न या अंडरस्कोर का उपयोग करें",
|
||||
"provider.custom.error.providerID.exists": "वह प्रोवाइडर ID पहले से मौजूद है",
|
||||
"provider.custom.error.name.required": "प्रदर्शन नाम आवश्यक है",
|
||||
"provider.custom.error.baseURL.required": "आधार URL आवश्यक है",
|
||||
"provider.custom.error.baseURL.format": "http:// या https:// से प्रारंभ होना चाहिए",
|
||||
"provider.custom.error.required": "आवश्यक",
|
||||
"provider.custom.error.duplicate": "डुप्लिकेट",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} डिस्कनेक्ट हो गया",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}} मॉडल अब उपलब्ध नहीं हैं।",
|
||||
"model.tag.free": "निःशुल्क",
|
||||
"model.tag.latest": "नवीनतम",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "टेक्स्ट",
|
||||
"model.input.image": "छवि",
|
||||
"model.input.audio": "ऑडियो",
|
||||
"model.input.video": "वीडियो",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.tooltip.allows": "अनुमति देता है: {{inputs}}",
|
||||
"model.tooltip.context.label": "कॉन्टेक्स्ट",
|
||||
"model.tooltip.inputs": "इनपुट",
|
||||
"model.tooltip.model": "मॉडल",
|
||||
"model.tooltip.provider": "प्रोवाइडर",
|
||||
"model.tooltip.reasoning": "तर्क",
|
||||
"model.tooltip.reasoning.allowed": "तर्क करने की अनुमति देता है",
|
||||
"model.tooltip.reasoning.none": "कोई तर्क नहीं",
|
||||
"model.tooltip.context": "कॉन्टेक्स्ट सीमा {{limit}}",
|
||||
"common.search.placeholder": "खोज",
|
||||
"common.goBack": "पीछे जाएँ",
|
||||
"common.goForward": "आगे जाएँ",
|
||||
"common.loading": "लोड हो रहा है",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "रद्द करें",
|
||||
"common.clear": "साफ़ करें",
|
||||
"common.open": "खोलें",
|
||||
"common.connect": "कनेक्ट करें",
|
||||
"common.disconnect": "डिस्कनेक्ट करें",
|
||||
"common.continue": "जारी रखें",
|
||||
"common.submit": "जमा करें",
|
||||
"common.save": "सहेजें",
|
||||
"common.saving": "सहेजा जा रहा है...",
|
||||
"common.default": "डिफ़ॉल्ट",
|
||||
"common.attachment": "अटैचमेंट",
|
||||
"prompt.placeholder.shell": "शेल कमांड... {{example}} दर्ज करें",
|
||||
"prompt.placeholder.normal": 'कुछ भी पूछें... "{{example}}"',
|
||||
"prompt.placeholder.simple": "कुछ भी पूछें...",
|
||||
"prompt.placeholder.summarizeComments": "टिप्पणियों को सारांशित करें...",
|
||||
"prompt.placeholder.summarizeComment": "टिप्पणी को सारांशित करें...",
|
||||
"prompt.mode.shell": "शेल",
|
||||
"prompt.mode.normal": "प्रॉम्प्ट",
|
||||
"prompt.mode.shell.exit": "बाहर निकलने के लिए esc",
|
||||
"session.child.promptDisabled": "सबएजेंट सेशन में प्रॉम्प्ट नहीं भेजा जा सकता।",
|
||||
"session.child.backToParent": "मुख्य सेशन पर वापस जाएँ।",
|
||||
"prompt.example.1": "कोडबेस में एक TODO ठीक करें",
|
||||
"prompt.example.2": "इस प्रोजेक्ट का तकनीकी स्टैक क्या है?",
|
||||
"prompt.example.3": "टूटे हुए परीक्षणों को ठीक करें",
|
||||
"prompt.example.4": "बताएं कि प्रमाणीकरण कैसे काम करता है",
|
||||
"prompt.example.5": "सुरक्षा कमजोरियाँ खोजें और ठीक करें",
|
||||
"prompt.example.6": "उपयोगकर्ता सेवा के लिए यूनिट परीक्षण जोड़ें",
|
||||
"prompt.example.7": "इस फ़ंक्शन को अधिक पठनीय बनाने के लिए रीफ़ैक्टर करें",
|
||||
"prompt.example.8": "इस त्रुटि का मतलब क्या है?",
|
||||
"prompt.example.9": "इस मुद्दे को डीबग करने में मेरी सहायता करें",
|
||||
"prompt.example.10": "API दस्तावेज़ तैयार करें",
|
||||
"prompt.example.11": "डेटाबेस क्वेरीज़ को अनुकूलित करें",
|
||||
"prompt.example.12": "इनपुट सत्यापन जोड़ें",
|
||||
"prompt.example.13": "इसके लिए एक नया कॉम्पोनेंट बनाएँ...",
|
||||
"prompt.example.14": "मैं इस प्रोजेक्ट को कैसे तैनात करूं?",
|
||||
"prompt.example.15": "सर्वोत्तम प्रथाओं के लिए मेरे कोड की समीक्षा करें",
|
||||
"prompt.example.16": "इस फ़ंक्शन में त्रुटि प्रबंधन जोड़ें",
|
||||
"prompt.example.17": "इस रेगेक्स पैटर्न को समझाइये",
|
||||
"prompt.example.18": "इसे TypeScript में बदलें",
|
||||
"prompt.example.19": "पूरे कोडबेस में लॉगिंग जोड़ें",
|
||||
"prompt.example.20": "कौन सी निर्भरताएँ पुरानी हो चुकी हैं?",
|
||||
"prompt.example.21": "माइग्रेशन स्क्रिप्ट लिखने में मेरी सहायता करें",
|
||||
"prompt.example.22": "इस समापन बिंदु के लिए कैशिंग लागू करें",
|
||||
"prompt.example.23": "इस सूची में पेजिनेशन जोड़ें",
|
||||
"prompt.example.24": "इसके लिए एक CLI कमांड बनाएं...",
|
||||
"prompt.example.25": "पर्यावरण चर यहाँ कैसे काम करते हैं?",
|
||||
"prompt.popover.emptyResults": "कोई मेल खाता परिणाम नहीं",
|
||||
"prompt.popover.emptyCommands": "कोई मेल खाता कमांड नहीं",
|
||||
"prompt.dropzone.label": "छवियाँ, PDFs, या टेक्स्ट फ़ाइलें यहां छोड़ें",
|
||||
"prompt.dropzone.file.label": "फ़ाइल का @mention करने के लिए छोड़ें",
|
||||
"prompt.slash.badge.custom": "कस्टम",
|
||||
"prompt.slash.badge.skill": "कौशल",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "सक्रिय",
|
||||
"prompt.context.includeActiveFile": "सक्रिय फ़ाइल शामिल करें",
|
||||
"prompt.context.removeActiveFile": "कॉन्टेक्स्ट से सक्रिय फ़ाइल हटाएँ",
|
||||
"prompt.context.removeFile": "कॉन्टेक्स्ट से फ़ाइल हटाएँ",
|
||||
"prompt.action.attachFile": "फ़ाइलें जोड़ें",
|
||||
"prompt.menu.addImagesAndFiles": "फ़ाइलें और बहुत कुछ जोड़ें",
|
||||
"prompt.menu.imagesAndFiles": "छवियाँ और फ़ाइलें",
|
||||
"prompt.menu.commands": "कमांड",
|
||||
"prompt.menu.context": "कॉन्टेक्स्ट",
|
||||
"prompt.menu.shellCommand": "शेल कमांड",
|
||||
"prompt.attachment.remove": "अनुलग्नक हटाएँ",
|
||||
"prompt.action.send": "भेजें",
|
||||
"prompt.action.stop": "रोकें",
|
||||
"prompt.toast.pasteUnsupported.title": "असमर्थित अनुलग्नक",
|
||||
"prompt.toast.pasteUnsupported.description": "यहां केवल छवियां, PDFs, या टेक्स्ट फ़ाइलें संलग्न की जा सकती हैं।",
|
||||
"prompt.toast.attachmentDuplicate.title": "यह फ़ाइल पहले ही अपलोड की जा चुकी है",
|
||||
"prompt.toast.modelAgentRequired.title": "एक एजेंट और मॉडल चुनें",
|
||||
"prompt.toast.modelAgentRequired.description": "प्रॉम्प्ट भेजने से पहले एक एजेंट और मॉडल चुनें।",
|
||||
"prompt.toast.worktreeCreateFailed.title": "वर्कट्री बनाने में विफल",
|
||||
"prompt.toast.sessionCreateFailed.title": "सेशन बनाने में विफल",
|
||||
"prompt.toast.shellSendFailed.title": "शेल कमांड भेजने में विफल",
|
||||
"prompt.toast.commandSendFailed.title": "कमांड भेजने में विफल",
|
||||
"prompt.toast.promptSendFailed.title": "प्रॉम्प्ट भेजने में विफल",
|
||||
"prompt.toast.promptSendFailed.description": "सेशन पुनः प्राप्त करने में असमर्थ",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "{{total}} में से {{enabled}} सक्षम",
|
||||
"dialog.mcp.empty": "कोई MCP कॉन्फ़िगर नहीं किया गया",
|
||||
"dialog.lsp.empty": "फ़ाइल प्रकारों से LSP का स्वतः पता लगाया जाता है",
|
||||
"dialog.plugins.empty": "प्लगइन opencode.json में कॉन्फ़िगर किए गए हैं",
|
||||
"mcp.status.connected": "कनेक्टेड",
|
||||
"mcp.status.failed": "असफल",
|
||||
"mcp.status.needs_auth": "प्रमाणीकरण की आवश्यकता है",
|
||||
"mcp.status.disabled": "अक्षम",
|
||||
"mcp.auth.clickToAuthenticate": "प्रमाणित करने के लिए क्लिक करें",
|
||||
"dialog.fork.empty": "फ़ोर्क करने के लिए कोई संदेश नहीं",
|
||||
"dialog.directory.search.placeholder": "फ़ोल्डर खोजें",
|
||||
"dialog.directory.empty": "कोई फ़ोल्डर नहीं मिला",
|
||||
"dialog.directory.action.selectFile": "फ़ाइल का चयन करें",
|
||||
"dialog.directory.action.selectFolder": "फ़ोल्डर चुनें",
|
||||
"dialog.directory.root": "रूट",
|
||||
"dialog.directory.parent": "पैरेंट",
|
||||
"dialog.directory.readError": "इस फ़ोल्डर को पढ़ने में असमर्थ",
|
||||
"app.server.unreachable": "{{server}} तक नहीं पहुँचा जा सका",
|
||||
"app.server.retrying": "स्वचालित रूप से पुनः प्रयास किया जा रहा है...",
|
||||
"app.server.otherServers": "अन्य सर्वर",
|
||||
"dialog.server.title": "सर्वर",
|
||||
"dialog.server.description": "स्विच करें कि यह ऐप किस OpenCode सर्वर से कनेक्ट होता है।",
|
||||
"dialog.server.search.placeholder": "सर्वर खोजें",
|
||||
"dialog.server.empty": "अभी तक कोई सर्वर नहीं है",
|
||||
"dialog.server.add.title": "सर्वर जोड़ें",
|
||||
"dialog.server.add.url": "सर्वर पता",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "सर्वर से कनेक्ट नहीं कर सका",
|
||||
"dialog.server.add.checking": "जाँच हो रही है...",
|
||||
"dialog.server.add.button": "सर्वर जोड़ें",
|
||||
"dialog.server.add.name": "सर्वर नाम (वैकल्पिक)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "उपयोगकर्ता नाम (वैकल्पिक)",
|
||||
"dialog.server.add.usernamePlaceholder": "उपयोक्तानाम",
|
||||
"dialog.server.add.password": "पासवर्ड (वैकल्पिक)",
|
||||
"dialog.server.add.passwordPlaceholder": "पासवर्ड",
|
||||
"dialog.server.edit.title": "सर्वर संपादित करें",
|
||||
"dialog.server.default.title": "डिफ़ॉल्ट सर्वर",
|
||||
"dialog.server.default.description":
|
||||
"स्थानीय सर्वर शुरू करने के बजाय ऐप लॉन्च होने पर इस सर्वर से कनेक्ट करें। पुनः आरंभ करना आवश्यक है।",
|
||||
"dialog.server.default.none": "कोई सर्वर चयनित नहीं",
|
||||
"dialog.server.default.set": "वर्तमान सर्वर को डिफ़ॉल्ट के रूप में सेट करें",
|
||||
"dialog.server.default.clear": "साफ़ करें",
|
||||
"dialog.server.action.remove": "सर्वर हटाएँ",
|
||||
"dialog.server.menu.edit": "संपादित करें",
|
||||
"dialog.server.menu.default": "डिफाल्ट के रूप में सेट",
|
||||
"dialog.server.menu.defaultRemove": "डिफ़ॉल्ट हटाएँ",
|
||||
"dialog.server.menu.delete": "हटाएँ",
|
||||
"dialog.server.current": "वर्तमान सर्वर",
|
||||
"dialog.server.status.default": "डिफ़ॉल्ट",
|
||||
"wsl.server.add": "WSL सर्वर जोड़ें",
|
||||
"wsl.server.addShort": "WSL जोड़ें",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL सर्वर",
|
||||
"wsl.server.retryStart": "पुन: प्रयास प्रारंभ करें",
|
||||
"wsl.server.updating": "अद्यतन किया जा रहा है...",
|
||||
"wsl.onboarding.step.distro": "डिस्ट्रो चुनें",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "WSL की जाँच हो रही है...",
|
||||
"wsl.onboarding.restartRequired": "WSL की स्थापना पूरी करने के लिए Windows को पुनः आरंभ करना होगा।",
|
||||
"wsl.onboarding.ready": "WSL तैयार है।",
|
||||
"wsl.onboarding.required": "जारी रखने के लिए WSL आवश्यक है।",
|
||||
"wsl.onboarding.checkingDistros": "डिस्ट्रोज़ की जाँच हो रही है...",
|
||||
"wsl.onboarding.installingDistro": "{{distro}} इंस्टॉल किया जा रहा है...",
|
||||
"wsl.onboarding.checkingDistro": "{{distro}} की जाँच हो रही है...",
|
||||
"wsl.onboarding.listingDistros": "डिस्ट्रो की सूची बनाई जा रही है...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} तैयार है।",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} अभी तक इंस्टॉल नहीं है।",
|
||||
"wsl.onboarding.openDistroOnce": "सेटअप पूरा करने के लिए एक बार {{distro}} खोलें।",
|
||||
"wsl.onboarding.finishingDistro": "{{distro}} का सेटअप पूरा किया जा रहा है।",
|
||||
"wsl.onboarding.pickDistro": "एक डिस्ट्रो चुनें या नीचे एक स्थापित करें।",
|
||||
"wsl.onboarding.checkingOpencode": "OpenCode की जाँच हो रही है...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "{{distro}} में OpenCode की जाँच हो रही है...",
|
||||
"wsl.onboarding.updatingOpencode": "OpenCode अपडेट हो रहा है...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "{{distro}} में OpenCode अपडेट हो रहा है...",
|
||||
"wsl.onboarding.updateOpencodeIn": "{{distro}} में OpenCode को अपडेट करें।",
|
||||
"wsl.onboarding.updateOpencode": "OpenCode को अपडेट करें",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode {{distro}} में तैयार है।",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode तैयार है।",
|
||||
"wsl.onboarding.installOpencodeIn": "{{distro}} में OpenCode स्थापित करें।",
|
||||
"wsl.onboarding.installOpencode": "OpenCode स्थापित करें",
|
||||
"wsl.onboarding.chooseDistroFirst": "पहले एक डिस्ट्रो चुनें।",
|
||||
"wsl.onboarding.loadFailed": "WSL स्थिति लोड करने में विफल।",
|
||||
"wsl.onboarding.loading": "लोड हो रहा है...",
|
||||
"wsl.onboarding.installedDistros": "स्थापित डिस्ट्रोस",
|
||||
"wsl.onboarding.checkAgain": "फिर से जाँचें",
|
||||
"wsl.onboarding.distroStatus.ready": "तैयार",
|
||||
"wsl.onboarding.distroStatus.checking": "जाँच हो रही है...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode स्थापित नहीं है",
|
||||
"wsl.onboarding.distroStatus.missingTools": "गायब बैश, कर्ल",
|
||||
"wsl.onboarding.distroStatus.unsupported": "असमर्थित · WSL 2 का उपयोग करें",
|
||||
"wsl.onboarding.needAnotherDistro": "एक और डिस्ट्रो की आवश्यकता है?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "WSL कैटलॉग से Linux वितरण स्थापित करें",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL स्थापित नहीं है",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"OpenCode द्वारा WSL सर्वर जोड़ने से पहले WSL (Linux के लिए Windows सबसिस्टम) आवश्यक है",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL अनुपलब्ध है",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode इस मशीन पर WSL को सत्यापित नहीं कर सका।",
|
||||
"wsl.onboarding.installWsl": "WSL स्थापित करें",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"WSL की स्थापना समाप्त करने के लिए Windows को पुनरारंभ करें, फिर OpenCode को फिर से खोलें।",
|
||||
"wsl.onboarding.next": "अगला",
|
||||
"wsl.onboarding.refresh": "रीफ़्रेश करें",
|
||||
"wsl.onboarding.allDistrosAdded": "सभी स्थापित डिस्ट्रो पहले ही जोड़े जा चुके हैं।",
|
||||
"wsl.onboarding.noDistros": "अभी तक कोई डिस्ट्रो नहीं मिला।",
|
||||
"wsl.onboarding.install": "स्थापित करें",
|
||||
"wsl.onboarding.installing": "स्थापित किया जा रहा है...",
|
||||
"wsl.onboarding.installDistro": "डिस्ट्रो स्थापित करें",
|
||||
"wsl.onboarding.searchDistros": "डिस्ट्रोस खोजें",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 आवश्यक है।",
|
||||
"wsl.onboarding.toolsRequired": "इस डिस्ट्रो को बैश और कर्ल की जरूरत है।",
|
||||
"wsl.onboarding.openTerminal": "टर्मिनल खोलें",
|
||||
"wsl.onboarding.path": "पथ: {{path}}",
|
||||
"wsl.onboarding.notFound": "नहीं मिला",
|
||||
"wsl.onboarding.version": "संस्करण: {{version}}",
|
||||
"wsl.onboarding.unknown": "अज्ञात",
|
||||
"wsl.onboarding.desktopVersion": "डेस्कटॉप {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "इंस्टॉल किया गया संस्करण डेस्कटॉप ऐप संस्करण से मेल नहीं खाता।",
|
||||
"wsl.onboarding.adding": "जोड़ा जा रहा है...",
|
||||
"server.row.noUsername": "कोई उपयोगकर्ता नाम नहीं",
|
||||
"dialog.project.edit.title": "प्रोजेक्ट संपादित करें",
|
||||
"dialog.project.edit.name": "नाम",
|
||||
"dialog.project.edit.icon": "आइकन",
|
||||
"dialog.project.edit.icon.alt": "प्रोजेक्ट आइकन",
|
||||
"dialog.project.edit.icon.hint": "किसी छवि को क्लिक करें या खींचें",
|
||||
"dialog.project.edit.icon.recommended": "अनुशंसित: 128x128px",
|
||||
"dialog.project.edit.color": "रंग",
|
||||
"dialog.project.edit.color.select": "{{color}} रंग चुनें",
|
||||
"dialog.project.edit.worktree.startup": "वर्कस्पेस स्टार्टअप स्क्रिप्ट",
|
||||
"dialog.project.edit.worktree.startup.description": "एक नया वर्कस्पेस (वर्कट्री) बनाने के बाद चलता है।",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "जैसे: bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "शुरू करें",
|
||||
"dialog.releaseNotes.action.next": "अगला",
|
||||
"dialog.releaseNotes.action.hideFuture": "भविष्य में इन्हें न दिखाएँ",
|
||||
"dialog.releaseNotes.media.alt": "रिलीज़ पूर्वावलोकन",
|
||||
"context.breakdown.title": "कॉन्टेक्स्ट ब्रेकडाउन",
|
||||
"context.breakdown.note": 'इनपुट टोकन का अनुमानित विभाजन। "अन्य" में टूल की परिभाषाएँ और अतिरिक्त खर्च शामिल हैं।',
|
||||
"context.breakdown.system": "सिस्टम",
|
||||
"context.breakdown.user": "उपयोगकर्ता",
|
||||
"context.breakdown.assistant": "सहायक",
|
||||
"context.breakdown.tool": "टूल कॉल",
|
||||
"context.breakdown.other": "अन्य",
|
||||
"context.systemPrompt.title": "सिस्टम प्रॉम्प्ट",
|
||||
"context.rawMessages.title": "मूल संदेश",
|
||||
"context.stats.session": "सेशन",
|
||||
"context.stats.messages": "संदेश",
|
||||
"context.stats.provider": "प्रोवाइडर",
|
||||
"context.stats.model": "मॉडल",
|
||||
"context.stats.limit": "कॉन्टेक्स्ट सीमा",
|
||||
"context.stats.totalTokens": "कुल टोकन",
|
||||
"context.stats.usage": "उपयोग",
|
||||
"context.stats.inputTokens": "इनपुट टोकन",
|
||||
"context.stats.outputTokens": "आउटपुट टोकन",
|
||||
"context.stats.reasoningTokens": "तर्क टोकन",
|
||||
"context.stats.cacheTokens": "कैश टोकन (पढ़ें/लिखें)",
|
||||
"context.stats.userMessages": "उपयोगकर्ता संदेश",
|
||||
"context.stats.assistantMessages": "सहायक संदेश",
|
||||
"context.stats.totalCost": "कुल लागत",
|
||||
"context.stats.sessionCreated": "सेशन बनाया गया",
|
||||
"context.stats.lastActivity": "अंतिम गतिविधि",
|
||||
"context.usage.tokens": "टोकन",
|
||||
"context.usage.usage": "उपयोग",
|
||||
"context.usage.cost": "लागत",
|
||||
"context.usage.clickToView": "कॉन्टेक्स्ट देखने के लिए क्लिक करें",
|
||||
"context.usage.view": "कॉन्टेक्स्ट उपयोग देखें",
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "भाषा",
|
||||
"toast.language.description": "{{language}} पर स्विच किया गया",
|
||||
"toast.theme.title": "थीम स्विच किया गया",
|
||||
"toast.scheme.title": "रंग योजना",
|
||||
"toast.workspace.enabled.title": "वर्कस्पेस सक्षम",
|
||||
"toast.workspace.enabled.description": "एकाधिक वर्कट्री अब साइडबार में दिखाए गए हैं",
|
||||
"toast.workspace.disabled.title": "वर्कस्पेस अक्षम",
|
||||
"toast.workspace.disabled.description": "साइडबार में केवल मुख्य वर्कट्री दिखाया गया है",
|
||||
"toast.permissions.autoaccept.on.title": "अनुमतियाँ स्वतः स्वीकार करना",
|
||||
"toast.permissions.autoaccept.on.description": "अनुमति अनुरोध स्वचालित रूप से स्वीकृत हो जाएंगे",
|
||||
"toast.permissions.autoaccept.off.title": "अनुमतियों को स्वतः स्वीकार करना बंद कर दिया गया",
|
||||
"toast.permissions.autoaccept.off.description": "अनुमति अनुरोधों के लिए अनुमोदन की आवश्यकता होगी",
|
||||
"toast.model.none.title": "कोई मॉडल चयनित नहीं",
|
||||
"toast.model.none.description": "इस सेशन को सारांशित करने के लिए एक प्रोवाइडर कनेक्ट करें",
|
||||
"toast.file.loadFailed.title": "फ़ाइल लोड करने में विफल",
|
||||
"toast.file.listFailed.title": "फ़ाइलें सूचीबद्ध करने में विफल",
|
||||
"toast.context.noLineSelection.title": "कोई पंक्ति चयन नहीं",
|
||||
"toast.context.noLineSelection.description": "पहले फ़ाइल टैब में एक पंक्ति श्रेणी का चयन करें।",
|
||||
"toast.session.share.copyFailed.title": "URL को क्लिपबोर्ड पर कॉपी करने में विफल",
|
||||
"toast.session.share.success.title": "सेशन साझा किया गया",
|
||||
"toast.session.share.success.description": "साझा URL क्लिपबोर्ड पर कॉपी किया गया!",
|
||||
"toast.session.share.failed.title": "सेशन साझा करने में विफल",
|
||||
"toast.session.share.failed.description": "सेशन साझा करते समय एक त्रुटि उत्पन्न हुई",
|
||||
"toast.session.unshare.success.title": "सेशन अनशेयर किया गया",
|
||||
"toast.session.unshare.success.description": "सेशन सफलतापूर्वक अनशेयर किया गया!",
|
||||
"toast.session.unshare.failed.title": "सेशन को अनशेयर करने में विफल",
|
||||
"toast.session.unshare.failed.description": "सेशन को अनशेयर करते समय एक त्रुटि उत्पन्न हुई",
|
||||
"toast.session.listFailed.title": "{{project}} के लिए सेशन लोड करने में विफल",
|
||||
"toast.project.reloadFailed.title": "{{project}} को पुनः लोड करने में विफल",
|
||||
"toast.update.title": "उपलब्ध अद्यतन",
|
||||
"toast.update.description": "OpenCode ({{version}}) का एक नया संस्करण अब इंस्टॉल करने के लिए उपलब्ध है।",
|
||||
"toast.update.action.installRestart": "स्थापित करें और पुनः आरंभ करें",
|
||||
"toast.update.action.notYet": "अभी नहीं",
|
||||
"error.page.title": "कुछ गलत हो गया",
|
||||
"error.page.description": "एप्लिकेशन लोड करते समय एक त्रुटि हुई।",
|
||||
"error.page.description.localServerStartup": "स्थानीय सर्वर शुरू करते समय एक त्रुटि हुई।",
|
||||
"error.page.details.label": "त्रुटि विवरण",
|
||||
"error.page.action.restart": "पुनः आरंभ करें",
|
||||
"error.page.action.report": "त्रुटि की रिपोर्ट करें",
|
||||
"error.page.action.reported": "त्रुटि रिपोर्ट की गई",
|
||||
"error.page.action.exportLogs": "लॉग निर्यात करें",
|
||||
"error.page.action.checking": "जाँच हो रही है...",
|
||||
"error.page.action.checkUpdates": "अद्यतन के लिए जाँच",
|
||||
"error.page.action.updateTo": "{{version}} पर अपडेट करें",
|
||||
"error.page.circular": "[Circular]",
|
||||
"error.page.report.prefix": "कृपया इस त्रुटि की रिपोर्ट OpenCode टीम को करें",
|
||||
"error.page.report.discord": "Discord पर",
|
||||
"error.page.version": "संस्करण: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"मूल तत्व नहीं मिला. क्या आप इसे अपने index.html में जोड़ना भूल गए? या हो सकता है कि आईडी विशेषता गलत वर्तनी हो गई हो?",
|
||||
"error.serverSync.connectFailed": "सर्वर से कनेक्ट नहीं कर सका। क्या `{{url}}` पर कोई सर्वर चल रहा है?",
|
||||
"error.serverSDK.noServerAvailable": "कोई सर्वर उपलब्ध नहीं है",
|
||||
"error.serverSDK.serverNotAvailable": "सर्वर उपलब्ध नहीं है",
|
||||
"error.childStore.persistedCacheCreateFailed": "सतत कैश बनाने में विफल",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "निरंतर प्रोजेक्ट मेटाडेटा बनाने में विफल",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "स्थायी प्रोजेक्ट आइकन बनाने में विफल",
|
||||
"error.childStore.storeCreateFailed": "स्टोर बनाने में विफल",
|
||||
"directory.error.invalidUrl": "URL में अमान्य निर्देशिका।",
|
||||
"error.chain.unknown": "अज्ञात त्रुटि",
|
||||
"error.server.invalidConfiguration": "अमान्य कॉन्फ़िगरेशन",
|
||||
"error.chain.causedBy": "कारण:",
|
||||
"error.chain.apiError": "API त्रुटि",
|
||||
"error.chain.status": "स्थिति: {{status}}",
|
||||
"error.chain.retryable": "पुनः प्रयास योग्य: {{retryable}}",
|
||||
"error.chain.responseBody": "प्रतिक्रिया निकाय:\n{{body}}",
|
||||
"error.chain.didYouMean": "क्या आपका मतलब था: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "मॉडल नहीं मिला: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "अपने कॉन्फ़िगरेशन (opencode.json) प्रोवाइडर/मॉडल नामों की जाँच करें",
|
||||
"error.chain.mcpFailed":
|
||||
'MCP सर्वर "{{name}}" विफल रहा। ध्यान दें, OpenCode अभी तक MCP प्रमाणीकरण का समर्थन नहीं करता है।',
|
||||
"error.chain.providerAuthFailed": "प्रोवाइडर प्रमाणीकरण विफल ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'प्रोवाइडर "{{provider}}" शुरू नहीं किया जा सका। क्रेडेंशियल और कॉन्फ़िगरेशन की जाँच करें।',
|
||||
"error.chain.configJsonInvalid": "{{path}} पर कॉन्फ़िगरेशन फ़ाइल वैध JSON(C) नहीं है",
|
||||
"error.chain.configJsonInvalidWithMessage": "{{path}} पर कॉन्फ़िगरेशन फ़ाइल वैध नहीं है JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'{{path}} में निर्देशिका "{{dir}}" मान्य नहीं है। निर्देशिका का नाम बदलकर "{{suggestion}}" करें या इसे हटा दें। यह वर्तनी की एक सामान्य त्रुटि है।',
|
||||
"error.chain.configFrontmatterError": "{{path}} में फ्रंटमैटर को पार्स करने में विफल:\n{{message}}",
|
||||
"error.chain.configInvalid": "{{path}} पर कॉन्फ़िगरेशन फ़ाइल अमान्य है",
|
||||
"error.chain.configInvalidWithMessage": "{{path}} पर कॉन्फ़िगरेशन फ़ाइल अमान्य है: {{message}}",
|
||||
"notification.permission.title": "अनुमति आवश्यक है",
|
||||
"notification.permission.description": "{{projectName}} में {{sessionTitle}} को अनुमति की आवश्यकता है",
|
||||
"notification.question.title": "प्रश्न",
|
||||
"notification.question.description": "{{projectName}} में {{sessionTitle}} का एक प्रश्न है",
|
||||
"notification.action.goToSession": "सेशन पर जाएं",
|
||||
"notification.session.responseReady.title": "प्रतिक्रिया तैयार",
|
||||
"notification.session.error.title": "सेशन त्रुटि",
|
||||
"notification.session.error.fallbackDescription": "एक त्रुटि पाई गई",
|
||||
"home.recentProjects": "हाल के प्रोजेक्ट",
|
||||
"home.empty.title": "कोई हालिया प्रोजेक्ट नहीं",
|
||||
"home.empty.description": "स्थानीय प्रोजेक्ट खोलकर शुरुआत करें",
|
||||
"home.title": "होम",
|
||||
"home.projects": "प्रोजेक्ट",
|
||||
"home.project.add": "प्रोजेक्ट जोड़ें",
|
||||
"home.recentlyClosed": "हाल ही में बंद हुआ",
|
||||
"home.server.collapse": "सर्वर प्रोजेक्ट को संक्षिप्त करें",
|
||||
"home.server.expand": "सर्वर प्रोजेक्ट का विस्तार करें",
|
||||
"home.sessions.search.placeholder": "सेशन खोजें",
|
||||
"home.sessions.search.placeholder.scoped": "{{scope}} में सेशन खोजें",
|
||||
"home.sessions.search.sessions": "सेशन",
|
||||
"home.sessions.search.noResults": "{{query}} के लिए कोई सेशन नहीं मिला",
|
||||
"home.sessions.empty": "अभी तक यहां कुछ भी नहीं है",
|
||||
"home.sessions.empty.description": "आरंभ करने के लिए एक सेशन बनाएं",
|
||||
"home.sessions.group.today": "आज",
|
||||
"home.sessions.group.yesterday": "कल",
|
||||
"home.sessions.group.older": "पुराने",
|
||||
"home.providerTip": "Claude, GPT, Gemini आदि सहित अन्य मॉडल का उपयोग करने के लिए 75+ प्रोवाइडर से कनेक्ट करें",
|
||||
"session.tab.session": "सेशन",
|
||||
"session.tab.review": "समीक्षा",
|
||||
"session.tab.context": "कॉन्टेक्स्ट",
|
||||
"session.tab.unknown": "अज्ञात सेशन",
|
||||
"session.panel.reviewAndFiles": "समीक्षा और फ़ाइलें",
|
||||
"session.error.notFound": "यह सेशन नहीं मिल सका",
|
||||
"session.error.notFound.description": "यह टैब एक सेशन की ओर इशारा करता है जो अब इस सर्वर पर मौजूद नहीं है।",
|
||||
"session.error.notFound.closeTab": "टैब बंद करें",
|
||||
"session.error.serverConnection": "इस सर्वर से कनेक्ट नहीं किया जा सकता",
|
||||
"session.review.filesChanged": "बदली गई फ़ाइलें: {{count}}",
|
||||
"session.review.change.one": "परिवर्तन",
|
||||
"session.review.change.other": "परिवर्तन",
|
||||
"session.review.loadingChanges": "परिवर्तन लोड हो रहे हैं...",
|
||||
"session.review.empty": "इस सेशन में अभी तक कोई बदलाव नहीं हुआ है",
|
||||
"session.review.noVcs": "कोई Git संस्करण नियंत्रण प्रणाली नहीं पाई गई, परिवर्तन प्रदर्शित नहीं हुए",
|
||||
"session.review.noVcs.createGit.title": "एक Git रिपॉजिटरी बनाएं",
|
||||
"session.review.noVcs.createGit.description":
|
||||
"इस प्रोजेक्ट में परिवर्तनों को ट्रैक करें, समीक्षा करें और पूर्ववत करें",
|
||||
"session.review.noVcs.createGit.actionLoading": "Git रिपॉजिटरी बनाई जा रही है...",
|
||||
"session.review.noVcs.createGit.action": "Git रिपॉजिटरी बनाएं",
|
||||
"session.review.noSnapshot": "कॉन्फ़िगरेशन में स्नैपशॉट ट्रैकिंग अक्षम है, इसलिए सेशन परिवर्तन अनुपलब्ध हैं",
|
||||
"session.review.noChanges": "कोई परिवर्तन नहीं",
|
||||
"session.review.noUncommittedChanges": "अभी तक कोई अप्रतिबद्ध परिवर्तन नहीं",
|
||||
"session.review.noBranchChanges": "अभी तक शाखा में कोई परिवर्तन नहीं",
|
||||
"session.files.selectToOpen": "खोलने के लिए एक फ़ाइल का चयन करें",
|
||||
"session.files.all": "सभी फ़ाइलें",
|
||||
"session.files.empty": "कोई फ़ाइल नहीं",
|
||||
"session.files.binaryContent": "बाइनरी फ़ाइल (सामग्री प्रदर्शित नहीं की जा सकती)",
|
||||
"session.messages.renderEarlier": "पहले के संदेश रेंडर करें",
|
||||
"session.messages.loadingEarlier": "पुराने संदेश लोड हो रहे हैं...",
|
||||
"session.messages.loadEarlier": "पहले के संदेश लोड करें",
|
||||
"session.messages.loading": "संदेश लोड हो रहे हैं...",
|
||||
"session.messages.jumpToLatest": "नवीनतम पर जाएं",
|
||||
"session.context.addToContext": "{{selection}} को कॉन्टेक्स्ट में जोड़ें",
|
||||
"session.todo.title": "कार्य सूची",
|
||||
"session.todo.collapse": "संकुचित करें",
|
||||
"session.todo.expand": "विस्तृत करें",
|
||||
"session.todo.progress": "{{total}} में से {{done}} कार्य पूरे हुए",
|
||||
"session.question.progress": "{{total}} प्रश्नों में से {{current}}",
|
||||
"session.question.minimize": "प्रश्न छोटा करें",
|
||||
"session.question.restore": "प्रश्न पुनर्स्थापित करें",
|
||||
"session.question.pending.one": "{{count}} लंबित प्रश्न",
|
||||
"session.question.pending.other": "{{count}} लंबित प्रश्न",
|
||||
"session.followupDock.summary.one": "कतार में {{count}} संदेश",
|
||||
"session.followupDock.summary.other": "कतार में {{count}} संदेश",
|
||||
"session.followupDock.sendNow": "अब भेजें",
|
||||
"session.followupDock.edit": "संपादित करें",
|
||||
"session.followupDock.collapse": "कतार के संदेश संकुचित करें",
|
||||
"session.followupDock.expand": "कतार के संदेश विस्तृत करें",
|
||||
"session.revertDock.summary.one": "{{count}} संदेश वापस लिया गया",
|
||||
"session.revertDock.summary.other": "{{count}} संदेश वापस लिए गए",
|
||||
"session.revertDock.collapse": "रोलबैक संदेशों को संक्षिप्त करें",
|
||||
"session.revertDock.expand": "वापस लाये गए संदेशों का विस्तार करें",
|
||||
"session.revertDock.restore": "संदेश पुनर्स्थापित करें",
|
||||
"session.new.title": "कुछ भी बनाएँ",
|
||||
"session.new.project.new": "नया प्रोजेक्ट",
|
||||
"session.new.project.search": "प्रोजेक्ट खोजें",
|
||||
"session.new.project.add": "प्रोजेक्ट जोड़ें",
|
||||
"session.new.worktree.main": "मुख्य शाखा",
|
||||
"session.new.worktree.mainWithBranch": "मुख्य शाखा ({{branch}})",
|
||||
"session.new.worktree.create": "नया वर्कट्री बनाएं",
|
||||
"session.new.workspace.runIn": "सेशन यहाँ चलाएँ",
|
||||
"session.new.workspace.triggerLocal": "स्थानीय",
|
||||
"session.new.workspace.local": "स्थानीय रिपॉजिटरी",
|
||||
"session.new.workspace.existing": "वर्कस्पेस…",
|
||||
"session.new.git.none": "कोई Git नहीं",
|
||||
"session.new.lastModified": "अंतिम बार संशोधित",
|
||||
"session.header.search.placeholder": "{{project}} खोजें",
|
||||
"session.header.searchFiles": "फ़ाइलें खोजें",
|
||||
"session.header.openIn": "में खोलें",
|
||||
"session.header.open.action": "{{app}} खोलें",
|
||||
"session.header.open.ariaLabel": "{{app}} में खोलें",
|
||||
"session.header.open.menu": "विकल्प खोलें",
|
||||
"session.header.open.copyPath": "पथ कॉपी करें",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.open.fileManager": "File Manager",
|
||||
"session.header.reveal.finder": "Finder में प्रकट करें",
|
||||
"session.header.reveal.fileExplorer": "File Explorer में प्रकट करें",
|
||||
"session.header.reveal.containingFolder": "मूल फ़ोल्डर खोलें",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "टर्मिनल",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "स्थिति",
|
||||
"status.popover.ariaLabel": "सर्वर कॉन्फ़िगरेशन",
|
||||
"status.popover.tab.servers": "सर्वर",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "प्लग-इन",
|
||||
"status.popover.action.manageServers": "सर्वर प्रबंधित करें",
|
||||
"session.share.popover.title": "वेब पर प्रकाशित करें",
|
||||
"session.share.popover.description.shared":
|
||||
"यह सेशन वेब पर सार्वजनिक है। यह लिंक वाले किसी भी व्यक्ति के लिए सुलभ है।",
|
||||
"session.share.popover.description.unshared":
|
||||
"सेशन को वेब पर सार्वजनिक रूप से साझा करें। यह लिंक वाले किसी भी व्यक्ति के लिए सुलभ होगा।",
|
||||
"session.share.action.share": "साझा करें",
|
||||
"session.share.action.publish": "प्रकाशित करें",
|
||||
"session.share.action.publishing": "प्रकाशित किया जा रहा है...",
|
||||
"session.share.action.unpublish": "प्रकाशन हटाएँ",
|
||||
"session.share.action.unpublishing": "प्रकाशन हटाया जा रहा है...",
|
||||
"session.share.action.view": "देखें",
|
||||
"session.share.copy.copied": "कॉपी किया गया",
|
||||
"session.share.copy.copyLink": "लिंक कॉपी करें",
|
||||
"lsp.tooltip.none": "कोई LSP सर्वर नहीं",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "प्रॉम्प्ट लोड हो रहा है...",
|
||||
"terminal.loading": "टर्मिनल लोड हो रहा है...",
|
||||
"terminal.title": "टर्मिनल",
|
||||
"terminal.title.numbered": "टर्मिनल {{number}}",
|
||||
"terminal.close": "टर्मिनल बंद करें",
|
||||
"terminal.connectionLost.title": "कनेक्शन टूट गया",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket असामान्य रूप से बंद हुआ: {{code}}",
|
||||
"terminal.connectionLost.description": "टर्मिनल कनेक्शन बाधित हो गया था। ऐसा तब हो सकता है जब सर्वर पुनरारंभ हो।",
|
||||
"common.closeTab": "टैब बंद करें",
|
||||
"common.dismiss": "हटाएँ",
|
||||
"common.moreCountSuffix": " (+{{count}} और)",
|
||||
"common.requestFailed": "अनुरोध विफल रहा",
|
||||
"common.moreOptions": "अधिक विकल्प",
|
||||
"common.learnMore": "और अधिक जानें",
|
||||
"common.rename": "नाम बदलें",
|
||||
"common.reset": "रीसेट करें",
|
||||
"common.archive": "संग्रहित करें",
|
||||
"common.delete": "हटाएँ",
|
||||
"common.close": "बंद करें",
|
||||
"common.edit": "संपादित करें",
|
||||
"common.loadMore": "और लोड करें",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Space",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "अज्ञात",
|
||||
"common.time.justNow": "अभी-अभी",
|
||||
"common.time.minutesAgo.short": "{{count}}m पहले",
|
||||
"common.time.hoursAgo.short": "{{count}}h पहले",
|
||||
"common.time.daysAgo.short": "{{count}}d पहले",
|
||||
"sidebar.menu.toggle": "मेनू टॉगल करें",
|
||||
"sidebar.nav.projectsAndSessions": "प्रोजेक्ट और सेशन",
|
||||
"sidebar.settings": "सेटिंग्स",
|
||||
"sidebar.help": "मदद",
|
||||
"sidebar.workspaces.enable": "वर्कस्पेस सक्षम करें",
|
||||
"sidebar.workspaces.disable": "वर्कस्पेस अक्षम करें",
|
||||
"sidebar.gettingStarted.title": "शुरुआत करें",
|
||||
"sidebar.gettingStarted.line1": "OpenCode में निःशुल्क मॉडल शामिल है ताकि आप तुरंत शुरू कर सकें।",
|
||||
"sidebar.gettingStarted.line2": "Claude, GPT, Gemini आदि मॉडल उपयोग करने के लिए किसी भी प्रोवाइडर को कनेक्ट करें।",
|
||||
"sidebar.project.recentSessions": "हाल ही में सेशन",
|
||||
"sidebar.project.viewAllSessions": "सभी सेशन देखें",
|
||||
"sidebar.project.clearNotifications": "सूचनाएँ साफ़ करें",
|
||||
"sidebar.empty.title": "कोई प्रोजेक्ट खुला नहीं",
|
||||
"sidebar.empty.description": "आरंभ करने के लिए एक प्रोजेक्ट खोलें",
|
||||
"debugBar.ariaLabel": "विकास प्रदर्शन निदान",
|
||||
"debugBar.na": "एन/ए",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"सेशन पृष्ठ को छूते हुए अंतिम पूर्ण मार्ग परिवर्तन, राउटर प्रारंभ से लेकर उसके व्यवस्थित होने के बाद पहले पेंट तक मापा जाता है।",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "पिछले 5 सेकंड में फ़्रेम प्रति सेकंड रोलिंग।",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "पिछले 5 सेकंड में सबसे खराब फ़्रेम समय।",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "अंतिम 5 सेकंड में 32 एमएस से अधिक फ़्रेम।",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "पिछले 5 सेकंड में अवरुद्ध समय और लंबे कार्यों की संख्या। सबसे लंबा कार्य: {{max}}।",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "पिछले 5 सेकंड में सबसे खराब इनपुट विलंब देखा गया।",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip": "पिछले 5 सेकंड में अनुमानित इंटरैक्शन अवधि। यह INP जैसा है, आधिकारिक Web Vitals INP नहीं।",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "वर्तमान ऐप जीवनकाल के लिए संचयी लेआउट बदलाव।",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "उपयोग किया गया JS हीप बनाम हीप सीमा। केवल Chromium।",
|
||||
"debugBar.mem.tip": "उपयोग किया गया JS हीप बनाम हीप सीमा। {{limit}} में से {{used}}।",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "डेस्कटॉप",
|
||||
"settings.section.server": "सर्वर",
|
||||
"settings.tab.general": "सामान्य",
|
||||
"settings.tab.shortcuts": "शॉर्टकट",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL एकीकरण",
|
||||
"settings.desktop.wsl.description": "Windows पर WSL के अंदर OpenCode सर्वर चलाएँ।",
|
||||
"settings.general.section.appearance": "उपस्थिति",
|
||||
"settings.general.section.advanced": "उन्नत",
|
||||
"settings.general.section.notifications": "सिस्टम सूचनाएँ",
|
||||
"settings.general.section.updates": "अपडेट",
|
||||
"settings.general.section.sounds": "ध्वनि प्रभाव",
|
||||
"settings.general.section.feed": "फ़ीड",
|
||||
"settings.general.section.display": "प्रदर्शन",
|
||||
"settings.general.row.language.title": "भाषा",
|
||||
"settings.general.row.language.description": "OpenCode के लिए प्रदर्शन भाषा बदलें",
|
||||
"settings.general.row.shell.title": "टर्मिनल शेल",
|
||||
"settings.general.row.shell.description": "शेल का उपयोग टर्मिनल और एजेंट टूल द्वारा किया जाता है",
|
||||
"settings.general.row.shell.autoDefault": "स्वतः (डिफ़ॉल्ट)",
|
||||
"settings.general.row.shell.terminalOnly": "केवल टर्मिनल",
|
||||
"settings.general.row.appearance.title": "उपस्थिति",
|
||||
"settings.general.row.appearance.description": "अनुकूलित करें कि OpenCode आपके डिवाइस पर कैसा दिखता है",
|
||||
"settings.general.row.colorScheme.title": "रंग योजना",
|
||||
"settings.general.row.colorScheme.description": "चुनें कि OpenCode सिस्टम, हल्की या गहरी थीम में से किसका उपयोग करे",
|
||||
"settings.general.row.theme.title": "थीम",
|
||||
"settings.general.row.theme.description": "अनुकूलित करें कि OpenCode की थीम कैसी है।",
|
||||
"settings.general.row.font.title": "कोड फ़ॉन्ट",
|
||||
"settings.general.row.font.description": "कोड ब्लॉक में प्रयुक्त फ़ॉन्ट को अनुकूलित करें",
|
||||
"settings.general.row.terminalFont.title": "टर्मिनल फ़ॉन्ट",
|
||||
"settings.general.row.terminalFont.description": "टर्मिनल में प्रयुक्त फ़ॉन्ट को अनुकूलित करें",
|
||||
"settings.general.row.uiFont.title": "UI फ़ॉन्ट",
|
||||
"settings.general.row.uiFont.description": "पूरे इंटरफ़ेस में उपयोग किए गए फ़ॉन्ट को कस्टमाइज़ करें",
|
||||
"settings.general.row.followup.title": "अनुवर्ती व्यवहार",
|
||||
"settings.general.row.followup.description":
|
||||
"चुनें कि क्या अनुवर्ती प्रॉम्प्ट तुरंत आगे बढ़ेगा या कतार में प्रतीक्षा करेगा",
|
||||
"settings.general.row.followup.option.queue": "कतार",
|
||||
"settings.general.row.followup.option.steer": "तुरंत निर्देश दें",
|
||||
"settings.general.row.showFileTree.title": "फ़ाइल वृक्ष",
|
||||
"settings.general.row.showFileTree.description": "सेशन में फ़ाइल ट्री पैनल दिखाएँ",
|
||||
"settings.general.row.showNavigation.title": "नेविगेशन नियंत्रण",
|
||||
"settings.general.row.showNavigation.description": "डेस्कटॉप टाइटल बार में पीछे और आगे के बटन दिखाएँ",
|
||||
"settings.general.row.showSearch.title": "कमांड पैलेट",
|
||||
"settings.general.row.showSearch.description": "टाइटल बार में खोज और कमांड पैलेट बटन दिखाएँ",
|
||||
"settings.general.row.showTerminal.title": "टर्मिनल",
|
||||
"settings.general.row.showTerminal.description": "डेस्कटॉप टाइटल बार में टर्मिनल बटन दिखाएँ",
|
||||
"settings.general.row.showStatus.title": "सर्वर की स्थिति",
|
||||
"settings.general.row.showStatus.description": "टाइटल बार में सर्वर स्थिति बटन दिखाएँ",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "निचला नेविगेशन",
|
||||
"settings.general.row.mobileTitlebarBottom.description": "मोबाइल पर स्क्रीन के नीचे टाइटल बार और सेशन टैब रखें",
|
||||
"settings.general.row.showCustomAgents.title": "एजेंट दिखाएँ",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"कंपोज़र में एजेंट के बीच स्विच करें। छिपाए जाने पर, डिफ़ॉल्ट रूप से बिल्ड एजेंट हो जाता है।",
|
||||
"settings.general.row.reasoningSummaries.title": "तर्क सारांश दिखाएँ",
|
||||
"settings.general.row.reasoningSummaries.description": "टाइमलाइन में मॉडल तर्क सारांश प्रदर्शित करें",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "शेल टूल पार्ट्स का विस्तार करें",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"टाइमलाइन में डिफ़ॉल्ट रूप से विस्तारित शेल टूल पार्ट्स दिखाएं",
|
||||
"settings.general.row.editToolPartsExpanded.title": "संपादन टूल भागों का विस्तार करें",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"टाइमलाइन में डिफ़ॉल्ट रूप से विस्तारित संपादित करें, लिखें और पैच टूल पार्ट्स दिखाएं",
|
||||
"settings.general.row.newInterface.title": "नया लेआउट",
|
||||
"settings.general.row.newInterface.badge": "नया",
|
||||
"settings.general.row.newInterface.description":
|
||||
"नए टैब और होम लेआउट का उपयोग करें. सीमित समय के लिए लेआउट के बीच स्विच करें।",
|
||||
"settings.general.row.newInterfaceNotice.title": "अब आप नए लेआउट का उपयोग कर रहे हैं",
|
||||
"settings.general.row.newInterfaceNotice.description": "पिछला लेआउट अब उपलब्ध नहीं है",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "हटाएँ",
|
||||
"settings.general.row.pinchZoom.title": "ज़ूम करने के लिए पिंच करें",
|
||||
"settings.general.row.pinchZoom.description": "ट्रैकपैड पिंच और Ctrl-स्क्रॉल जेस्चर को ज़ूम करने की अनुमति दें",
|
||||
"settings.general.row.wayland.title": "नेटिव Wayland का उपयोग करें",
|
||||
"settings.general.row.wayland.description": "Wayland पर X11 फ़ॉलबैक अक्षम करें। पुनः आरंभ करना आवश्यक है।",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"अलग-अलग रीफ़्रेश दर वाले मॉनिटर के साथ Linux पर नेटिव Wayland अधिक स्थिर हो सकता है।",
|
||||
"settings.general.row.releaseNotes.title": "रिलीज़ नोट्स",
|
||||
"settings.general.row.releaseNotes.description": "अपडेट के बाद 'नया क्या है' पॉपअप दिखाएँ",
|
||||
"settings.updates.row.startup.title": "स्टार्टअप पर अपडेट की जाँच करें",
|
||||
"settings.updates.row.startup.description": "OpenCode लॉन्च होने पर अपने-आप अपडेट की जाँच करें",
|
||||
"settings.updates.row.check.title": "अद्यतन के लिए जाँच",
|
||||
"settings.updates.row.check.description": "अपडेट के लिए मैन्युअल रूप से जाँच करें और यदि उपलब्ध हो तो इंस्टॉल करें",
|
||||
"settings.updates.action.checkNow": "अभी जाँचें",
|
||||
"settings.updates.action.checking": "जाँच हो रही है...",
|
||||
"settings.updates.action.downloading": "डाउनलोड हो रहा है...",
|
||||
"settings.updates.action.installing": "स्थापित किया जा रहा है...",
|
||||
"settings.updates.toast.latest.title": "आपके पास नवीनतम संस्करण है",
|
||||
"settings.updates.toast.latest.description": "आप OpenCode का नवीनतम संस्करण चला रहे हैं।",
|
||||
"sound.option.none": "कोई नहीं",
|
||||
"sound.option.alert01": "Alert 01",
|
||||
"sound.option.alert02": "Alert 02",
|
||||
"sound.option.alert03": "Alert 03",
|
||||
"sound.option.alert04": "Alert 04",
|
||||
"sound.option.alert05": "Alert 05",
|
||||
"sound.option.alert06": "Alert 06",
|
||||
"sound.option.alert07": "Alert 07",
|
||||
"sound.option.alert08": "Alert 08",
|
||||
"sound.option.alert09": "Alert 09",
|
||||
"sound.option.alert10": "Alert 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"settings.general.notifications.agent.title": "एजेंट",
|
||||
"settings.general.notifications.agent.description":
|
||||
"जब एजेंट पूरा हो जाए या ध्यान देने की आवश्यकता हो तो सिस्टम अधिसूचना दिखाएं",
|
||||
"settings.general.notifications.permissions.title": "अनुमतियाँ",
|
||||
"settings.general.notifications.permissions.description": "अनुमति की आवश्यकता होने पर सिस्टम अधिसूचना दिखाएं",
|
||||
"settings.general.notifications.errors.title": "त्रुटियाँ",
|
||||
"settings.general.notifications.errors.description": "त्रुटि होने पर सिस्टम अधिसूचना दिखाएं",
|
||||
"settings.general.sounds.agent.title": "एजेंट",
|
||||
"settings.general.sounds.agent.description": "जब एजेंट पूरा हो जाए या ध्यान देने की आवश्यकता हो तो ध्वनि बजाएं",
|
||||
"settings.general.sounds.permissions.title": "अनुमतियाँ",
|
||||
"settings.general.sounds.permissions.description": "अनुमति की आवश्यकता होने पर ध्वनि बजाएं",
|
||||
"settings.general.sounds.errors.title": "त्रुटियाँ",
|
||||
"settings.general.sounds.errors.description": "कोई त्रुटि होने पर ध्वनि बजाएं",
|
||||
"settings.shortcuts.title": "कीबोर्ड शॉर्टकट",
|
||||
"settings.shortcuts.reset.button": "डिफ़ॉल्ट पर पुनः सेट करें",
|
||||
"settings.shortcuts.reset.toast.title": "शॉर्टकट रीसेट",
|
||||
"settings.shortcuts.reset.toast.description": "कीबोर्ड शॉर्टकट को डिफ़ॉल्ट पर रीसेट कर दिया गया है।",
|
||||
"settings.shortcuts.conflict.title": "शॉर्टकट पहले से ही उपयोग में है",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} पहले से ही {{titles}} को सौंपा गया है।",
|
||||
"settings.shortcuts.unassigned": "सौंपे नहीं गए",
|
||||
"settings.shortcuts.pressKeys": "कुंजियाँ दबाएँ",
|
||||
"settings.shortcuts.search.placeholder": "शॉर्टकट खोजें",
|
||||
"settings.shortcuts.search.empty": "कोई शॉर्टकट नहीं मिला",
|
||||
"settings.shortcuts.group.general": "सामान्य",
|
||||
"settings.shortcuts.group.session": "सेशन",
|
||||
"settings.shortcuts.group.navigation": "नेविगेशन",
|
||||
"settings.shortcuts.group.modelAndAgent": "मॉडल और एजेंट",
|
||||
"settings.shortcuts.group.terminal": "टर्मिनल",
|
||||
"settings.shortcuts.group.prompt": "प्रॉम्प्ट",
|
||||
"settings.providers.title": "प्रोवाइडर",
|
||||
"settings.providers.description": "प्रोवाइडर सेटिंग्स यहां कॉन्फ़िगर करने योग्य होंगी।",
|
||||
"settings.providers.section.connected": "कनेक्टेड प्रोवाइडर",
|
||||
"settings.providers.connected.empty": "कोई कनेक्टेड प्रोवाइडर नहीं",
|
||||
"settings.providers.connected.environmentDescription": "आपके एनवायरनमेंट वेरिएबल से कनेक्ट किया गया",
|
||||
"settings.providers.section.popular": "लोकप्रिय प्रोवाइडर",
|
||||
"settings.providers.custom.description": "आधार URL द्वारा एक OpenAI-संगत प्रोवाइडर जोड़ें।",
|
||||
"settings.providers.tag.environment": "एनवायरनमेंट",
|
||||
"settings.providers.tag.config": "कॉन्फ़िगरेशन",
|
||||
"settings.providers.tag.custom": "कस्टम",
|
||||
"settings.providers.tag.other": "अन्य",
|
||||
"settings.models.title": "मॉडल",
|
||||
"settings.models.description": "मॉडल सेटिंग्स यहां कॉन्फ़िगर करने योग्य होंगी।",
|
||||
"settings.agents.title": "एजेंट",
|
||||
"settings.agents.description": "एजेंट सेटिंग्स यहां कॉन्फ़िगर करने योग्य होंगी।",
|
||||
"settings.commands.title": "कमांड",
|
||||
"settings.commands.description": "कमांड सेटिंग्स यहां कॉन्फ़िगर करने योग्य होंगी।",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP सेटिंग्स यहां कॉन्फ़िगर करने योग्य होंगी।",
|
||||
"settings.permissions.title": "अनुमतियाँ",
|
||||
"settings.permissions.description": "नियंत्रित करें कि सर्वर डिफ़ॉल्ट रूप से कौन से टूल का उपयोग कर सकता है।",
|
||||
"settings.permissions.section.tools": "टूल",
|
||||
"settings.permissions.toast.updateFailed.title": "अनुमतियाँ अद्यतन करने में विफल",
|
||||
"settings.permissions.action.allow": "अनुमति दें",
|
||||
"settings.permissions.action.ask": "पूछें",
|
||||
"settings.permissions.action.deny": "अस्वीकार करें",
|
||||
"settings.permissions.tool.read.title": "पढ़ें",
|
||||
"settings.permissions.tool.read.description": "फ़ाइल पढ़ना (फ़ाइल पथ से मेल खाता है)",
|
||||
"settings.permissions.tool.edit.title": "संपादित करें",
|
||||
"settings.permissions.tool.edit.description": "संपादन, लेखन और पैच सहित फ़ाइलों को संशोधित करें",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "ग्लोब पैटर्न का उपयोग करके फ़ाइलों का मिलान करें",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "रेगुलर एक्सप्रेशन का उपयोग करके फ़ाइल सामग्री खोजें",
|
||||
"settings.permissions.tool.list.title": "सूची",
|
||||
"settings.permissions.tool.list.description": "किसी निर्देशिका में फ़ाइलों की सूची बनाएं",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "शेल कमांड चलाएँ",
|
||||
"settings.permissions.tool.task.title": "कार्य",
|
||||
"settings.permissions.tool.task.description": "उप-एजेंट लॉन्च करें",
|
||||
"settings.permissions.tool.skill.title": "कौशल",
|
||||
"settings.permissions.tool.skill.description": "किसी कौशल को नाम से लोड करें",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "भाषा सर्वर क्वेरी चलाएँ",
|
||||
"settings.permissions.tool.todowrite.title": "Todo Write",
|
||||
"settings.permissions.tool.todowrite.description": "कार्य सूची अद्यतन करें",
|
||||
"settings.permissions.tool.webfetch.title": "Web Fetch",
|
||||
"settings.permissions.tool.webfetch.description": "URL से सामग्री प्राप्त करें",
|
||||
"settings.permissions.tool.websearch.title": "Web Search",
|
||||
"settings.permissions.tool.websearch.description": "वेब खोज",
|
||||
"settings.permissions.tool.external_directory.title": "बाह्य निर्देशिका",
|
||||
"settings.permissions.tool.external_directory.description": "प्रोजेक्ट निर्देशिका के बाहर फ़ाइलों तक पहुँचें",
|
||||
"settings.permissions.tool.doom_loop.title": "Doom Loop",
|
||||
"settings.permissions.tool.doom_loop.description": "समान इनपुट के साथ बार-बार टूल कॉल का पता लगाएं",
|
||||
"session.delete.failed.title": "सेशन को हटाने में विफल",
|
||||
"session.delete.title": "सेशन हटाएं",
|
||||
"session.delete.confirm": 'सेशन "{{name}}" हटाएं?',
|
||||
"session.delete.button": "सेशन हटाएं",
|
||||
"workspace.new": "नया वर्कस्पेस",
|
||||
"workspace.type.local": "स्थानीय",
|
||||
"workspace.type.sandbox": "सैंडबॉक्स",
|
||||
"workspace.create.failed.title": "वर्कस्पेस बनाने में विफल",
|
||||
"workspace.delete.failed.title": "वर्कस्पेस को हटाने में विफल",
|
||||
"workspace.resetting.title": "वर्कस्पेस को रीसेट करना",
|
||||
"workspace.resetting.description": "इसमें एक मिनट लग सकता है।",
|
||||
"workspace.reset.failed.title": "वर्कस्पेस को रीसेट करने में विफल",
|
||||
"workspace.reset.success.title": "वर्कस्पेस रीसेट",
|
||||
"workspace.reset.success.description": "वर्कस्पेस अब डिफ़ॉल्ट शाखा से मेल खाता है।",
|
||||
"workspace.error.stillPreparing": "वर्कस्पेस अभी भी तैयारी कर रहा है",
|
||||
"workspace.status.checking": "मर्ज न किए गए परिवर्तनों की जाँच हो रही है...",
|
||||
"workspace.status.error": "Git स्थिति सत्यापित नहीं की जा सकी।",
|
||||
"workspace.status.clean": "मर्ज न किए गए कोई परिवर्तन नहीं मिले।",
|
||||
"workspace.status.dirty": "इस वर्कस्पेस में मर्ज न किए गए परिवर्तन मिले।",
|
||||
"workspace.delete.title": "वर्कस्पेस हटाएं",
|
||||
"workspace.delete.confirm": 'वर्कस्पेस "{{name}}" हटाएं?',
|
||||
"workspace.delete.button": "वर्कस्पेस हटाएं",
|
||||
"workspace.reset.title": "वर्कस्पेस रीसेट करें",
|
||||
"workspace.reset.confirm": 'वर्कस्पेस "{{name}}" रीसेट करें?',
|
||||
"workspace.reset.button": "वर्कस्पेस रीसेट करें",
|
||||
"workspace.reset.archived.none": "कोई सक्रिय सेशन संग्रहित नहीं किया जाएगा।",
|
||||
"workspace.reset.archived.one": "1 सेशन संग्रहित किया जाएगा।",
|
||||
"workspace.reset.archived.many": "{{count}} सेशन संग्रहित किए जाएँगे।",
|
||||
"workspace.reset.note": "यह डिफ़ॉल्ट शाखा से मिलान करने के लिए वर्कस्पेस को रीसेट कर देगा।",
|
||||
}
|
||||
@@ -1,1105 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Disarankan",
|
||||
"command.category.view": "Tampilan",
|
||||
"command.category.project": "Proyek",
|
||||
"command.category.provider": "Penyedia",
|
||||
"command.category.server": "Server",
|
||||
"command.category.session": "Sesi",
|
||||
"command.category.theme": "Tema",
|
||||
"command.category.language": "Bahasa",
|
||||
"command.category.file": "Berkas",
|
||||
"command.category.context": "Konteks",
|
||||
"command.category.terminal": "Terminal",
|
||||
"command.category.model": "Model",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Agen",
|
||||
"command.category.permissions": "Izin",
|
||||
"command.category.workspace": "Ruang kerja",
|
||||
"command.category.settings": "Pengaturan",
|
||||
|
||||
"theme.scheme.system": "Sistem",
|
||||
"theme.scheme.light": "Terang",
|
||||
"theme.scheme.dark": "Gelap",
|
||||
|
||||
"command.sidebar.toggle": "Alihkan panel samping",
|
||||
"command.project.open": "Buka proyek",
|
||||
"command.project.previous": "Proyek sebelumnya",
|
||||
"command.project.next": "Proyek berikutnya",
|
||||
"command.project.index": "Beralih ke proyek {{index}}",
|
||||
"command.provider.connect": "Hubungkan penyedia",
|
||||
"command.server.switch": "Ganti server",
|
||||
"command.settings.open": "Buka pengaturan",
|
||||
"command.session.previous": "Sesi sebelumnya",
|
||||
"command.session.next": "Sesi berikutnya",
|
||||
"command.session.previous.unseen": "Sesi sebelumnya yang belum dibaca",
|
||||
"command.session.next.unseen": "Sesi berikutnya yang belum dibaca",
|
||||
"command.session.archive": "Arsipkan sesi",
|
||||
|
||||
"command.palette": "Palet perintah",
|
||||
|
||||
"command.theme.cycle": "Ganti tema",
|
||||
"command.theme.set": "Gunakan tema: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Ganti skema warna",
|
||||
"command.theme.scheme.set": "Gunakan skema warna: {{scheme}}",
|
||||
|
||||
"command.language.cycle": "Ganti bahasa",
|
||||
"command.language.set": "Gunakan bahasa: {{language}}",
|
||||
|
||||
"command.session.new": "Sesi baru",
|
||||
"command.file.open": "Buka berkas",
|
||||
"command.tab.close": "Tutup tab",
|
||||
"command.tab.reopenClosed": "Buka kembali tab yang ditutup",
|
||||
"command.context.addSelection": "Tambahkan pilihan ke konteks",
|
||||
"command.context.addSelection.description": "Tambahkan baris yang dipilih dari berkas saat ini",
|
||||
"command.input.focus": "Fokuskan masukan",
|
||||
"command.terminal.toggle": "Alihkan terminal",
|
||||
"command.fileTree.toggle": "Alihkan pohon berkas",
|
||||
"command.review.toggle": "Alihkan tinjauan",
|
||||
"command.terminal.new": "Terminal baru",
|
||||
"command.terminal.new.description": "Buat tab terminal baru",
|
||||
"command.steps.toggle": "Alihkan langkah",
|
||||
"command.steps.toggle.description": "Tampilkan atau sembunyikan langkah untuk pesan saat ini",
|
||||
"command.message.previous": "Pesan sebelumnya",
|
||||
"command.message.previous.description": "Pergi ke pesan pengguna sebelumnya",
|
||||
"command.message.next": "Pesan berikutnya",
|
||||
"command.message.next.description": "Pergi ke pesan pengguna berikutnya",
|
||||
"command.model.choose": "Pilih model",
|
||||
"command.model.choose.description": "Pilih model yang berbeda",
|
||||
"command.mcp.toggle": "Alihkan MCP",
|
||||
"command.mcp.toggle.description": "Alihkan MCP",
|
||||
"command.agent.cycle": "Ganti agen",
|
||||
"command.agent.cycle.description": "Beralih ke agen berikutnya",
|
||||
"command.agent.cycle.reverse": "Ganti agen mundur",
|
||||
"command.agent.cycle.reverse.description": "Beralih ke agen sebelumnya",
|
||||
"command.model.variant.cycle": "Ganti usaha berpikir",
|
||||
"command.model.variant.cycle.description": "Beralih ke tingkat usaha berikutnya",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "Terima izin otomatis",
|
||||
"command.permissions.autoaccept.disable": "Hentikan penerimaan izin otomatis",
|
||||
"command.workspace.toggle": "Alihkan ruang kerja",
|
||||
"command.workspace.toggle.description": "Aktifkan atau nonaktifkan beberapa ruang kerja di panel samping",
|
||||
"command.session.undo": "Urungkan",
|
||||
"command.session.undo.description": "Urungkan pesan terakhir",
|
||||
"command.session.redo": "Ulangi",
|
||||
"command.session.redo.description": "Ulangi pesan yang diurungkan",
|
||||
"command.session.compact": "Ringkas sesi",
|
||||
"command.session.compact.description": "Ringkas sesi untuk mengurangi ukuran konteks",
|
||||
"command.session.fork": "Fork dari pesan",
|
||||
"command.session.fork.description": "Buat sesi baru dari pesan sebelumnya",
|
||||
"command.session.share": "Bagikan sesi",
|
||||
"command.session.share.description": "Bagikan sesi ini dan salin URL ke papan klip",
|
||||
"command.session.unshare": "Hentikan berbagi",
|
||||
"command.session.unshare.description": "Hentikan berbagi sesi ini",
|
||||
|
||||
"palette.search.placeholder": "Cari berkas, perintah, dan sesi",
|
||||
"palette.search.placeholder.home": "Cari perintah dan sesi",
|
||||
"palette.empty": "Hasil tidak ditemukan",
|
||||
"palette.group.commands": "Perintah",
|
||||
"palette.group.files": "Berkas",
|
||||
|
||||
"dialog.provider.search.placeholder": "Cari penyedia",
|
||||
"dialog.provider.empty": "Penyedia tidak ditemukan",
|
||||
"dialog.provider.group.popular": "Populer",
|
||||
"dialog.provider.group.other": "Lainnya",
|
||||
"dialog.provider.custom.label": "Penyedia kustom yang kompatibel dengan OpenAI",
|
||||
"dialog.provider.tag.recommended": "Direkomendasikan",
|
||||
"dialog.provider.opencode.note": "Model pilihan, termasuk Claude, GPT, Gemini, dan lainnya",
|
||||
"dialog.provider.opencode.tagline": "Model andal yang dioptimalkan",
|
||||
"dialog.provider.opencodeGo.tagline": "Langganan terjangkau untuk semua orang",
|
||||
"dialog.provider.anthropic.note": "Akses langsung ke model Claude, termasuk Pro dan Max",
|
||||
"dialog.provider.copilot.note": "Model AI untuk bantuan pengodean melalui GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Model GPT untuk tugas AI umum yang cepat dan mumpuni",
|
||||
"dialog.provider.google.note": "Model Gemini untuk respons cepat dan terstruktur",
|
||||
"dialog.provider.openrouter.note": "Akses semua model yang didukung dari satu penyedia",
|
||||
"dialog.provider.vercel.note": "Akses terpadu ke model AI dengan perutean cerdas",
|
||||
|
||||
"dialog.model.select.title": "Pilih model",
|
||||
"dialog.model.search.placeholder": "Cari model",
|
||||
"dialog.model.empty": "Tidak ada hasil model",
|
||||
"dialog.model.manage": "Kelola model",
|
||||
"dialog.model.manage.description": "Sesuaikan model mana yang muncul di pemilih model.",
|
||||
"dialog.model.manage.provider.toggle": "Alihkan semua model {{provider}}",
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Model gratis disediakan oleh OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Tambahkan lebih banyak model dari penyedia populer",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Lihat 70+ penyedia lainnya",
|
||||
|
||||
"dialog.provider.viewAll": "Tampilkan lebih banyak penyedia",
|
||||
|
||||
"provider.connect.title": "Hubungkan {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Masuk dengan Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Pilih metode masuk untuk {{provider}}.",
|
||||
"provider.connect.method.apiKey": "Kunci API",
|
||||
"provider.connect.status.inProgress": "Otorisasi sedang berlangsung...",
|
||||
"provider.connect.status.waiting": "Menunggu otorisasi...",
|
||||
"provider.connect.status.failed": "Otorisasi gagal: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Masukkan kunci API {{provider}} untuk menghubungkan akun Anda dan gunakan model {{provider}} di OpenCode.",
|
||||
"provider.connect.apiKey.label": "Kunci API {{provider}}",
|
||||
"provider.connect.apiKey.placeholder": "Kunci API",
|
||||
"provider.connect.apiKey.required": "Kunci API diperlukan",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen memberi Anda akses ke serangkaian model andal yang dioptimalkan untuk agen pengodean.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Dengan satu kunci API, Anda akan mendapatkan akses ke model seperti Claude, GPT, Gemini, GLM dan lainnya.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Kunjungi ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " untuk mendapatkan kunci API Anda.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Kunjungi ",
|
||||
"provider.connect.oauth.code.visit.link": "tautan ini",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" untuk mendapatkan kode otorisasi guna menghubungkan akun Anda dan menggunakan model {{provider}} di OpenCode.",
|
||||
"provider.connect.oauth.code.label": "Kode otorisasi {{method}}",
|
||||
"provider.connect.oauth.code.placeholder": "Kode otorisasi",
|
||||
"provider.connect.oauth.code.required": "Kode otorisasi diperlukan",
|
||||
"provider.connect.oauth.code.invalid": "Kode otorisasi tidak valid",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Kunjungi ",
|
||||
"provider.connect.oauth.auto.visit.link": "tautan ini",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" dan masukkan kode di bawah untuk menghubungkan akun dan menggunakan model {{provider}} di OpenCode.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Kode konfirmasi",
|
||||
"provider.connect.toast.connected.title": "{{provider}} terhubung",
|
||||
"provider.connect.toast.connected.description": "Model {{provider}} sekarang tersedia untuk digunakan.",
|
||||
|
||||
"provider.custom.title": "Penyedia kustom",
|
||||
"provider.custom.description.prefix": "Konfigurasikan penyedia yang kompatibel dengan OpenAI. Lihat ",
|
||||
"provider.custom.description.link": "dokumen konfigurasi penyedia",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "ID Penyedia",
|
||||
"provider.custom.field.providerID.placeholder": "penyediaku",
|
||||
"provider.custom.field.providerID.description": "Huruf kecil, angka, tanda hubung, atau garis bawah",
|
||||
"provider.custom.field.name.label": "Nama tampilan",
|
||||
"provider.custom.field.name.placeholder": "Penyedia AI Saya",
|
||||
"provider.custom.field.baseURL.label": "URL Dasar",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.penyediaku.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Kunci API",
|
||||
"provider.custom.field.apiKey.placeholder": "Kunci API",
|
||||
"provider.custom.field.apiKey.description": "Opsional. Kosongkan jika Anda mengelola autentikasi melalui tajuk.",
|
||||
"provider.custom.models.label": "Model",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "Nama",
|
||||
"provider.custom.models.name.placeholder": "Nama Tampilan",
|
||||
"provider.custom.models.remove": "Hapus model",
|
||||
"provider.custom.models.add": "Tambah model",
|
||||
"provider.custom.headers.label": "Tajuk (opsional)",
|
||||
"provider.custom.headers.key.label": "Tajuk",
|
||||
"provider.custom.headers.key.placeholder": "Nama-Tajuk",
|
||||
"provider.custom.headers.value.label": "Nilai",
|
||||
"provider.custom.headers.value.placeholder": "nilai",
|
||||
"provider.custom.headers.remove": "Hapus tajuk",
|
||||
"provider.custom.headers.add": "Tambah tajuk",
|
||||
"provider.custom.error.providerID.required": "ID Penyedia diperlukan",
|
||||
"provider.custom.error.providerID.format": "Gunakan huruf kecil, angka, tanda hubung, atau garis bawah",
|
||||
"provider.custom.error.providerID.exists": "ID penyedia tersebut sudah ada",
|
||||
"provider.custom.error.name.required": "Nama tampilan diperlukan",
|
||||
"provider.custom.error.baseURL.required": "URL Dasar diperlukan",
|
||||
"provider.custom.error.baseURL.format": "Harus dimulai dengan http:// atau https://",
|
||||
"provider.custom.error.required": "Diperlukan",
|
||||
"provider.custom.error.duplicate": "Duplikat",
|
||||
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} terputus",
|
||||
"provider.disconnect.toast.disconnected.description": "Model {{provider}} tidak lagi tersedia.",
|
||||
|
||||
"model.tag.free": "Gratis",
|
||||
"model.tag.latest": "Terbaru",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "teks",
|
||||
"model.input.image": "gambar",
|
||||
"model.input.audio": "audio",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Mengizinkan: {{inputs}}",
|
||||
"model.tooltip.context.label": "Konteks",
|
||||
"model.tooltip.inputs": "Masukan",
|
||||
"model.tooltip.model": "Model",
|
||||
"model.tooltip.provider": "Penyedia",
|
||||
"model.tooltip.reasoning": "Penalaran",
|
||||
"model.tooltip.reasoning.allowed": "Mengizinkan penalaran",
|
||||
"model.tooltip.reasoning.none": "Tanpa penalaran",
|
||||
"model.tooltip.context": "Batas konteks {{limit}}",
|
||||
|
||||
"common.search.placeholder": "Cari",
|
||||
"common.goBack": "Navigasi mundur",
|
||||
"common.goForward": "Navigasi maju",
|
||||
"common.loading": "Memuat",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Batal",
|
||||
"common.clear": "Bersihkan",
|
||||
"common.open": "Buka",
|
||||
"common.connect": "Hubungkan",
|
||||
"common.disconnect": "Putuskan",
|
||||
"common.continue": "Lanjutkan",
|
||||
"common.submit": "Kirim",
|
||||
"common.save": "Simpan",
|
||||
"common.saving": "Menyimpan...",
|
||||
"common.default": "Bawaan",
|
||||
"common.attachment": "lampiran",
|
||||
|
||||
"prompt.placeholder.shell": "Masukkan perintah shell... {{example}}",
|
||||
"prompt.placeholder.normal": 'Tanyakan apa saja... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Tanyakan apa saja...",
|
||||
"prompt.placeholder.summarizeComments": "Ringkas komentar…",
|
||||
"prompt.placeholder.summarizeComment": "Ringkas komentar…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "esc untuk keluar",
|
||||
"session.child.promptDisabled": "Sesi subagen tidak dapat diberi prompt.",
|
||||
"session.child.backToParent": "Kembali ke sesi utama.",
|
||||
|
||||
"prompt.example.1": "Perbaiki TODO di basis kode",
|
||||
"prompt.example.2": "Apa tumpukan teknologi proyek ini?",
|
||||
"prompt.example.3": "Perbaiki tes yang rusak",
|
||||
"prompt.example.4": "Jelaskan cara kerja autentikasi",
|
||||
"prompt.example.5": "Temukan dan perbaiki kerentanan keamanan",
|
||||
"prompt.example.6": "Tambahkan pengujian unit untuk layanan pengguna",
|
||||
"prompt.example.7": "Refaktor fungsi ini agar lebih mudah dibaca",
|
||||
"prompt.example.8": "Apa arti kesalahan ini?",
|
||||
"prompt.example.9": "Bantu saya mengawakutu masalah ini",
|
||||
"prompt.example.10": "Hasilkan dokumentasi API",
|
||||
"prompt.example.11": "Optimalkan kueri basis data",
|
||||
"prompt.example.12": "Tambahkan validasi masukan",
|
||||
"prompt.example.13": "Buat komponen baru untuk...",
|
||||
"prompt.example.14": "Bagaimana cara menerapkan proyek ini?",
|
||||
"prompt.example.15": "Tinjau kode saya untuk praktik terbaik",
|
||||
"prompt.example.16": "Tambahkan penanganan kesalahan ke fungsi ini",
|
||||
"prompt.example.17": "Jelaskan pola regex ini",
|
||||
"prompt.example.18": "Konversi ini ke TypeScript",
|
||||
"prompt.example.19": "Tambahkan pencatatan log di seluruh basis kode",
|
||||
"prompt.example.20": "Dependensi mana yang sudah kedaluwarsa?",
|
||||
"prompt.example.21": "Bantu saya menulis skrip migrasi",
|
||||
"prompt.example.22": "Terapkan penembolokan untuk titik akhir ini",
|
||||
"prompt.example.23": "Tambahkan paginasi ke daftar ini",
|
||||
"prompt.example.24": "Buat perintah CLI untuk...",
|
||||
"prompt.example.25": "Bagaimana cara kerja variabel lingkungan di sini?",
|
||||
|
||||
"prompt.popover.emptyResults": "Tidak ada hasil yang cocok",
|
||||
"prompt.popover.emptyCommands": "Tidak ada perintah yang cocok",
|
||||
"prompt.dropzone.label": "Letakkan gambar, PDF, atau berkas teks di sini",
|
||||
"prompt.dropzone.file.label": "Letakkan untuk menyebut berkas dengan @",
|
||||
"prompt.slash.badge.custom": "kustom",
|
||||
"prompt.slash.badge.skill": "keahlian",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "aktif",
|
||||
"prompt.context.includeActiveFile": "Sertakan berkas aktif",
|
||||
"prompt.context.removeActiveFile": "Hapus berkas aktif dari konteks",
|
||||
"prompt.context.removeFile": "Hapus berkas dari konteks",
|
||||
"prompt.action.attachFile": "Tambah berkas",
|
||||
"prompt.menu.addImagesAndFiles": "Tambah berkas dan lainnya",
|
||||
"prompt.menu.imagesAndFiles": "Gambar dan berkas",
|
||||
"prompt.menu.commands": "Perintah",
|
||||
"prompt.menu.context": "Konteks",
|
||||
"prompt.menu.shellCommand": "Perintah shell",
|
||||
"prompt.attachment.remove": "Hapus lampiran",
|
||||
"prompt.action.send": "Kirim",
|
||||
"prompt.action.stop": "Hentikan",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Lampiran tidak didukung",
|
||||
"prompt.toast.pasteUnsupported.description": "Hanya gambar, PDF, atau berkas teks yang dapat dilampirkan di sini.",
|
||||
"prompt.toast.attachmentDuplicate.title": "Berkas ini sudah diunggah",
|
||||
"prompt.toast.modelAgentRequired.title": "Pilih agen dan model",
|
||||
"prompt.toast.modelAgentRequired.description": "Pilih agen dan model sebelum mengirim prompt.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Gagal membuat worktree",
|
||||
"prompt.toast.sessionCreateFailed.title": "Gagal membuat sesi",
|
||||
"prompt.toast.shellSendFailed.title": "Gagal mengirim perintah shell",
|
||||
"prompt.toast.commandSendFailed.title": "Gagal mengirim perintah",
|
||||
"prompt.toast.promptSendFailed.title": "Gagal mengirim prompt",
|
||||
"prompt.toast.promptSendFailed.description": "Tidak dapat mengambil sesi",
|
||||
|
||||
"dialog.mcp.title": "MCP",
|
||||
"dialog.mcp.description": "{{enabled}} dari {{total}} diaktifkan",
|
||||
"dialog.mcp.empty": "Tidak ada MCP yang dikonfigurasi",
|
||||
|
||||
"dialog.lsp.empty": "LSP terdeteksi otomatis dari jenis berkas",
|
||||
"dialog.plugins.empty": "Plugin dikonfigurasi di opencode.json",
|
||||
|
||||
"mcp.status.connected": "terhubung",
|
||||
"mcp.status.failed": "gagal",
|
||||
"mcp.status.needs_auth": "perlu autentikasi",
|
||||
"mcp.status.disabled": "nonaktif",
|
||||
"mcp.auth.clickToAuthenticate": "Klik untuk mengautentikasi",
|
||||
|
||||
"dialog.fork.empty": "Tidak ada pesan yang dapat dicabangkan",
|
||||
|
||||
"dialog.directory.search.placeholder": "Cari folder",
|
||||
"dialog.directory.empty": "Folder tidak ditemukan",
|
||||
"dialog.directory.action.selectFile": "Pilih berkas",
|
||||
"dialog.directory.action.selectFolder": "Pilih folder",
|
||||
"dialog.directory.root": "Akar",
|
||||
"dialog.directory.parent": "Induk",
|
||||
"dialog.directory.readError": "Tidak dapat membaca folder ini",
|
||||
|
||||
"app.server.unreachable": "Tidak dapat menjangkau {{server}}",
|
||||
"app.server.retrying": "Mencoba ulang secara otomatis...",
|
||||
"app.server.otherServers": "Server lainnya",
|
||||
|
||||
"dialog.server.title": "Server",
|
||||
"dialog.server.description": "Ganti server OpenCode mana yang terhubung dengan aplikasi ini.",
|
||||
"dialog.server.search.placeholder": "Cari server",
|
||||
"dialog.server.empty": "Belum ada server",
|
||||
"dialog.server.add.title": "Tambah server",
|
||||
"dialog.server.add.url": "Alamat server",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Tidak dapat terhubung ke server",
|
||||
"dialog.server.add.checking": "Memeriksa...",
|
||||
"dialog.server.add.button": "Tambah server",
|
||||
"dialog.server.add.name": "Nama server (opsional)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "Nama pengguna (opsional)",
|
||||
"dialog.server.add.usernamePlaceholder": "nama pengguna",
|
||||
"dialog.server.add.password": "Kata sandi (opsional)",
|
||||
"dialog.server.add.passwordPlaceholder": "kata sandi",
|
||||
"dialog.server.edit.title": "Sunting server",
|
||||
"dialog.server.default.title": "Server bawaan",
|
||||
"dialog.server.default.description":
|
||||
"Hubungkan ke server ini saat aplikasi diluncurkan, alih-alih memulai server lokal. Memerlukan mulai ulang.",
|
||||
"dialog.server.default.none": "Tidak ada server dipilih",
|
||||
"dialog.server.default.set": "Tetapkan server saat ini sebagai bawaan",
|
||||
"dialog.server.default.clear": "Hapus",
|
||||
"dialog.server.action.remove": "Hapus server",
|
||||
|
||||
"dialog.server.menu.edit": "Sunting",
|
||||
"dialog.server.menu.default": "Tetapkan sebagai bawaan",
|
||||
"dialog.server.menu.defaultRemove": "Hapus bawaan",
|
||||
"dialog.server.menu.delete": "Hapus",
|
||||
"dialog.server.current": "Server Saat Ini",
|
||||
"dialog.server.status.default": "Bawaan",
|
||||
"wsl.server.add": "Tambah server WSL",
|
||||
"wsl.server.addShort": "Tambah WSL",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "Server WSL",
|
||||
"wsl.server.retryStart": "Coba mulai ulang",
|
||||
"wsl.server.updating": "Memperbarui...",
|
||||
"wsl.onboarding.step.distro": "Pilih distro",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "Memeriksa WSL...",
|
||||
"wsl.onboarding.restartRequired": "Windows perlu dimulai ulang untuk menyelesaikan instalasi WSL.",
|
||||
"wsl.onboarding.ready": "WSL siap.",
|
||||
"wsl.onboarding.required": "WSL diperlukan untuk melanjutkan.",
|
||||
"wsl.onboarding.checkingDistros": "Memeriksa distro...",
|
||||
"wsl.onboarding.installingDistro": "Menginstal {{distro}}...",
|
||||
"wsl.onboarding.checkingDistro": "Memeriksa {{distro}}...",
|
||||
"wsl.onboarding.listingDistros": "Memuat daftar distro...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} siap.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} belum terinstal.",
|
||||
"wsl.onboarding.openDistroOnce": "Buka {{distro}} sekali untuk menyelesaikan pengaturan.",
|
||||
"wsl.onboarding.finishingDistro": "Menyelesaikan pengaturan untuk {{distro}}.",
|
||||
"wsl.onboarding.pickDistro": "Pilih distro atau instal salah satu di bawah.",
|
||||
"wsl.onboarding.checkingOpencode": "Memeriksa OpenCode...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "Memeriksa OpenCode di {{distro}}...",
|
||||
"wsl.onboarding.updatingOpencode": "Memperbarui OpenCode...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "Memperbarui OpenCode di {{distro}}...",
|
||||
"wsl.onboarding.updateOpencodeIn": "Perbarui OpenCode di {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "Perbarui OpenCode",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode siap di {{distro}}.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode siap.",
|
||||
"wsl.onboarding.installOpencodeIn": "Instal OpenCode di {{distro}}.",
|
||||
"wsl.onboarding.installOpencode": "Instal OpenCode",
|
||||
"wsl.onboarding.chooseDistroFirst": "Pilih distro terlebih dahulu.",
|
||||
"wsl.onboarding.loadFailed": "Gagal memuat keadaan WSL.",
|
||||
"wsl.onboarding.loading": "Memuat...",
|
||||
"wsl.onboarding.installedDistros": "Distro terinstal",
|
||||
"wsl.onboarding.checkAgain": "Periksa lagi",
|
||||
"wsl.onboarding.distroStatus.ready": "Siap",
|
||||
"wsl.onboarding.distroStatus.checking": "Memeriksa...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode belum terinstal",
|
||||
"wsl.onboarding.distroStatus.missingTools": "bash dan curl tidak tersedia",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Tidak didukung · Gunakan WSL 2",
|
||||
"wsl.onboarding.needAnotherDistro": "Perlu distro lain?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "Instal distribusi Linux dari katalog WSL",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL belum terinstal",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"WSL (Windows Subsystem for Linux) diperlukan sebelum OpenCode dapat menambahkan server WSL",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL tidak tersedia",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode tidak dapat memverifikasi WSL di komputer ini.",
|
||||
"wsl.onboarding.installWsl": "Instal WSL",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"Mulai ulang Windows untuk menyelesaikan instalasi WSL, lalu buka kembali OpenCode.",
|
||||
"wsl.onboarding.next": "Berikutnya",
|
||||
"wsl.onboarding.refresh": "Muat ulang",
|
||||
"wsl.onboarding.allDistrosAdded": "Semua distro yang terinstal sudah ditambahkan.",
|
||||
"wsl.onboarding.noDistros": "Belum ada distro terdeteksi.",
|
||||
"wsl.onboarding.install": "Instal",
|
||||
"wsl.onboarding.installing": "Menginstal...",
|
||||
"wsl.onboarding.installDistro": "Instal distro",
|
||||
"wsl.onboarding.searchDistros": "Cari distro",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 diperlukan.",
|
||||
"wsl.onboarding.toolsRequired": "Distro ini memerlukan bash dan curl.",
|
||||
"wsl.onboarding.openTerminal": "Buka terminal",
|
||||
"wsl.onboarding.path": "Jalur: {{path}}",
|
||||
"wsl.onboarding.notFound": "tidak ditemukan",
|
||||
"wsl.onboarding.version": "Versi: {{version}}",
|
||||
"wsl.onboarding.unknown": "tidak diketahui",
|
||||
"wsl.onboarding.desktopVersion": "desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "Versi terinstal tidak cocok dengan versi aplikasi desktop.",
|
||||
"wsl.onboarding.adding": "Menambahkan...",
|
||||
"server.row.noUsername": "tanpa nama pengguna",
|
||||
|
||||
"dialog.project.edit.title": "Sunting proyek",
|
||||
"dialog.project.edit.name": "Nama",
|
||||
"dialog.project.edit.icon": "Ikon",
|
||||
"dialog.project.edit.icon.alt": "Ikon proyek",
|
||||
"dialog.project.edit.icon.hint": "Klik atau seret gambar",
|
||||
"dialog.project.edit.icon.recommended": "Disarankan: 128x128px",
|
||||
"dialog.project.edit.color": "Warna",
|
||||
"dialog.project.edit.color.select": "Pilih warna {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Skrip awal ruang kerja",
|
||||
"dialog.project.edit.worktree.startup.description": "Berjalan setelah membuat ruang kerja (worktree) baru.",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "mis. bun install",
|
||||
|
||||
"dialog.releaseNotes.action.getStarted": "Mulai",
|
||||
"dialog.releaseNotes.action.next": "Berikutnya",
|
||||
"dialog.releaseNotes.action.hideFuture": "Jangan tampilkan ini di masa depan",
|
||||
"dialog.releaseNotes.media.alt": "Pratinjau rilis",
|
||||
|
||||
"context.breakdown.title": "Rincian Konteks",
|
||||
"context.breakdown.note": 'Perkiraan rincian token masukan. "Lainnya" mencakup definisi alat dan beban tambahan.',
|
||||
"context.breakdown.system": "Sistem",
|
||||
"context.breakdown.user": "Pengguna",
|
||||
"context.breakdown.assistant": "Asisten",
|
||||
"context.breakdown.tool": "Panggilan Alat",
|
||||
"context.breakdown.other": "Lainnya",
|
||||
|
||||
"context.systemPrompt.title": "Prompt Sistem",
|
||||
"context.rawMessages.title": "Pesan mentah",
|
||||
|
||||
"context.stats.session": "Sesi",
|
||||
"context.stats.messages": "Pesan",
|
||||
"context.stats.provider": "Penyedia",
|
||||
"context.stats.model": "Model",
|
||||
"context.stats.limit": "Batas Konteks",
|
||||
"context.stats.totalTokens": "Total Token",
|
||||
"context.stats.usage": "Penggunaan",
|
||||
"context.stats.inputTokens": "Token Masukan",
|
||||
"context.stats.outputTokens": "Token Keluaran",
|
||||
"context.stats.reasoningTokens": "Token Penalaran",
|
||||
"context.stats.cacheTokens": "Token Tembolok (baca/tulis)",
|
||||
"context.stats.userMessages": "Pesan Pengguna",
|
||||
"context.stats.assistantMessages": "Pesan Asisten",
|
||||
"context.stats.totalCost": "Total Biaya",
|
||||
"context.stats.sessionCreated": "Sesi Dibuat",
|
||||
"context.stats.lastActivity": "Aktivitas Terakhir",
|
||||
|
||||
"context.usage.tokens": "Token",
|
||||
"context.usage.usage": "Penggunaan",
|
||||
"context.usage.cost": "Biaya",
|
||||
"context.usage.clickToView": "Klik untuk melihat konteks",
|
||||
"context.usage.view": "Lihat penggunaan konteks",
|
||||
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Bahasa",
|
||||
"toast.language.description": "Beralih ke {{language}}",
|
||||
|
||||
"toast.theme.title": "Tema diganti",
|
||||
"toast.scheme.title": "Skema warna",
|
||||
|
||||
"toast.workspace.enabled.title": "Ruang kerja diaktifkan",
|
||||
"toast.workspace.enabled.description": "Beberapa worktree sekarang ditampilkan di panel samping",
|
||||
"toast.workspace.disabled.title": "Ruang kerja dinonaktifkan",
|
||||
"toast.workspace.disabled.description": "Hanya worktree utama yang ditampilkan di panel samping",
|
||||
|
||||
"toast.permissions.autoaccept.on.title": "Menerima izin secara otomatis",
|
||||
"toast.permissions.autoaccept.on.description": "Permintaan izin akan disetujui secara otomatis",
|
||||
"toast.permissions.autoaccept.off.title": "Berhenti menerima izin otomatis",
|
||||
"toast.permissions.autoaccept.off.description": "Permintaan izin akan memerlukan persetujuan",
|
||||
|
||||
"toast.model.none.title": "Tidak ada model dipilih",
|
||||
"toast.model.none.description": "Hubungkan penyedia untuk meringkas sesi ini",
|
||||
|
||||
"toast.file.loadFailed.title": "Gagal memuat berkas",
|
||||
"toast.file.listFailed.title": "Gagal mendaftar berkas",
|
||||
|
||||
"toast.context.noLineSelection.title": "Tidak ada pilihan baris",
|
||||
"toast.context.noLineSelection.description": "Pilih rentang baris di tab berkas terlebih dahulu.",
|
||||
|
||||
"toast.session.share.copyFailed.title": "Gagal menyalin URL ke papan klip",
|
||||
"toast.session.share.success.title": "Sesi dibagikan",
|
||||
"toast.session.share.success.description": "URL berbagi disalin ke papan klip!",
|
||||
"toast.session.share.failed.title": "Gagal membagikan sesi",
|
||||
"toast.session.share.failed.description": "Terjadi kesalahan saat membagikan sesi",
|
||||
|
||||
"toast.session.unshare.success.title": "Berbagi sesi dihentikan",
|
||||
"toast.session.unshare.success.description": "Berbagi sesi berhasil dihentikan!",
|
||||
"toast.session.unshare.failed.title": "Gagal menghentikan berbagi sesi",
|
||||
"toast.session.unshare.failed.description": "Terjadi kesalahan saat menghentikan berbagi sesi",
|
||||
|
||||
"toast.session.listFailed.title": "Gagal memuat sesi untuk {{project}}",
|
||||
"toast.project.reloadFailed.title": "Gagal memuat ulang {{project}}",
|
||||
|
||||
"toast.update.title": "Pembaruan tersedia",
|
||||
"toast.update.description": "Versi baru OpenCode ({{version}}) sekarang tersedia untuk diinstal.",
|
||||
"toast.update.action.installRestart": "Instal dan mulai ulang",
|
||||
"toast.update.action.notYet": "Nanti saja",
|
||||
|
||||
"error.page.title": "Terjadi kesalahan",
|
||||
"error.page.description": "Terjadi kesalahan saat memuat aplikasi.",
|
||||
"error.page.description.localServerStartup": "Terjadi kesalahan saat memulai server lokal.",
|
||||
"error.page.details.label": "Detail Kesalahan",
|
||||
"error.page.action.restart": "Mulai Ulang",
|
||||
"error.page.action.report": "Laporkan Kesalahan",
|
||||
"error.page.action.reported": "Kesalahan Dilaporkan",
|
||||
"error.page.action.exportLogs": "Ekspor Log",
|
||||
"error.page.action.checking": "Memeriksa...",
|
||||
"error.page.action.checkUpdates": "Periksa pembaruan",
|
||||
"error.page.action.updateTo": "Perbarui ke {{version}}",
|
||||
"error.page.circular": "[Sirkular]",
|
||||
"error.page.report.prefix": "Harap laporkan kesalahan ini ke tim OpenCode",
|
||||
"error.page.report.discord": "di Discord",
|
||||
"error.page.version": "Versi: {{version}}",
|
||||
|
||||
"error.dev.rootNotFound":
|
||||
"Elemen root tidak ditemukan. Apakah Anda lupa menambahkannya ke index.html? Atau mungkin atribut id salah eja?",
|
||||
|
||||
"error.serverSync.connectFailed": "Tidak dapat terhubung ke server. Apakah ada server yang berjalan di `{{url}}`?",
|
||||
"error.serverSDK.noServerAvailable": "Tidak ada server tersedia",
|
||||
"error.serverSDK.serverNotAvailable": "Server tidak tersedia",
|
||||
"error.childStore.persistedCacheCreateFailed": "Gagal membuat tembolok persisten",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Gagal membuat metadata proyek persisten",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Gagal membuat ikon proyek persisten",
|
||||
"error.childStore.storeCreateFailed": "Gagal membuat penyimpanan",
|
||||
"directory.error.invalidUrl": "Direktori tidak valid di URL.",
|
||||
|
||||
"error.chain.unknown": "Kesalahan tidak diketahui",
|
||||
"error.server.invalidConfiguration": "Konfigurasi tidak valid",
|
||||
"error.chain.causedBy": "Disebabkan oleh:",
|
||||
"error.chain.apiError": "Kesalahan API",
|
||||
"error.chain.status": "Status: {{status}}",
|
||||
"error.chain.retryable": "Dapat dicoba ulang: {{retryable}}",
|
||||
"error.chain.responseBody": "Isi respons:\n{{body}}",
|
||||
"error.chain.didYouMean": "Maksud Anda: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Model tidak ditemukan: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Periksa nama penyedia/model di konfigurasi Anda (opencode.json)",
|
||||
"error.chain.mcpFailed": 'Server MCP "{{name}}" gagal. Catatan: OpenCode belum mendukung autentikasi MCP.',
|
||||
"error.chain.providerAuthFailed": "Autentikasi penyedia gagal ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Gagal menginisialisasi penyedia "{{provider}}". Periksa kredensial dan konfigurasi.',
|
||||
"error.chain.configJsonInvalid": "Berkas konfigurasi di {{path}} bukan JSON(C) yang valid",
|
||||
"error.chain.configJsonInvalidWithMessage": "Berkas konfigurasi di {{path}} bukan JSON(C) yang valid: {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'Direktori "{{dir}}" di {{path}} tidak valid. Ganti nama direktori menjadi "{{suggestion}}" atau hapus. Ini adalah kesalahan ketik yang umum.',
|
||||
"error.chain.configFrontmatterError": "Gagal mengurai frontmatter di {{path}}:\n{{message}}",
|
||||
"error.chain.configInvalid": "Berkas konfigurasi di {{path}} tidak valid",
|
||||
"error.chain.configInvalidWithMessage": "Berkas konfigurasi di {{path}} tidak valid: {{message}}",
|
||||
|
||||
"notification.permission.title": "Izin diperlukan",
|
||||
"notification.permission.description": "{{sessionTitle}} di {{projectName}} memerlukan izin",
|
||||
"notification.question.title": "Pertanyaan",
|
||||
"notification.question.description": "{{sessionTitle}} di {{projectName}} memiliki pertanyaan",
|
||||
"notification.action.goToSession": "Pergi ke sesi",
|
||||
|
||||
"notification.session.responseReady.title": "Respons siap",
|
||||
"notification.session.error.title": "Kesalahan sesi",
|
||||
"notification.session.error.fallbackDescription": "Terjadi kesalahan",
|
||||
|
||||
"home.recentProjects": "Proyek terbaru",
|
||||
"home.empty.title": "Tidak ada proyek terbaru",
|
||||
"home.empty.description": "Mulai dengan membuka proyek lokal",
|
||||
"home.title": "Beranda",
|
||||
"home.projects": "Proyek",
|
||||
"home.project.add": "Tambah proyek",
|
||||
"home.recentlyClosed": "Baru saja ditutup",
|
||||
"home.server.collapse": "Ciutkan proyek server",
|
||||
"home.server.expand": "Bentangkan proyek server",
|
||||
"home.sessions.search.placeholder": "Cari sesi",
|
||||
"home.sessions.search.placeholder.scoped": "Cari sesi di {{scope}}",
|
||||
"home.sessions.search.sessions": "Sesi",
|
||||
"home.sessions.search.noResults": "Tidak ada sesi ditemukan untuk {{query}}",
|
||||
"home.sessions.empty": "Belum ada apa pun di sini",
|
||||
"home.sessions.empty.description": "Buat sesi untuk memulai",
|
||||
"home.sessions.group.today": "Hari ini",
|
||||
"home.sessions.group.yesterday": "Kemarin",
|
||||
"home.sessions.group.older": "Lebih lama",
|
||||
"home.providerTip":
|
||||
"Hubungkan ke 75+ penyedia untuk menggunakan model lain, termasuk Claude, GPT, Gemini, dan lainnya",
|
||||
|
||||
"session.tab.session": "Sesi",
|
||||
"session.tab.review": "Tinjauan",
|
||||
"session.tab.context": "Konteks",
|
||||
"session.tab.unknown": "Sesi Tidak Dikenal",
|
||||
"session.panel.reviewAndFiles": "Tinjauan dan berkas",
|
||||
"session.error.notFound": "Sesi ini tidak dapat ditemukan",
|
||||
"session.error.notFound.description": "Tab ini mengarah ke sesi yang sudah tidak ada di server ini.",
|
||||
"session.error.notFound.closeTab": "Tutup Tab",
|
||||
"session.error.serverConnection": "Tidak dapat terhubung ke server ini",
|
||||
"session.review.filesChanged": "{{count}} Berkas Berubah",
|
||||
"session.review.change.one": "Perubahan",
|
||||
"session.review.change.other": "Perubahan",
|
||||
"session.review.loadingChanges": "Memuat perubahan...",
|
||||
"session.review.empty": "Belum ada perubahan di sesi ini",
|
||||
"session.review.noVcs": "Tidak ada sistem kontrol versi Git yang terdeteksi, perubahan tidak ditampilkan",
|
||||
"session.review.noVcs.createGit.title": "Buat repositori Git",
|
||||
"session.review.noVcs.createGit.description": "Lacak, tinjau, dan urungkan perubahan di proyek ini",
|
||||
"session.review.noVcs.createGit.actionLoading": "Membuat repositori Git...",
|
||||
"session.review.noVcs.createGit.action": "Buat repositori Git",
|
||||
"session.review.noSnapshot":
|
||||
"Pelacakan snapshot dinonaktifkan di konfigurasi, sehingga perubahan sesi tidak tersedia",
|
||||
"session.review.noChanges": "Tidak ada perubahan",
|
||||
"session.review.noUncommittedChanges": "Belum ada perubahan yang belum dikomit",
|
||||
"session.review.noBranchChanges": "Belum ada perubahan cabang",
|
||||
|
||||
"session.files.selectToOpen": "Pilih berkas untuk dibuka",
|
||||
"session.files.all": "Semua berkas",
|
||||
"session.files.empty": "Tidak ada berkas",
|
||||
"session.files.binaryContent": "Berkas biner (konten tidak dapat ditampilkan)",
|
||||
|
||||
"session.messages.renderEarlier": "Tampilkan pesan sebelumnya",
|
||||
"session.messages.loadingEarlier": "Memuat pesan sebelumnya...",
|
||||
"session.messages.loadEarlier": "Muat pesan sebelumnya",
|
||||
"session.messages.loading": "Memuat pesan...",
|
||||
"session.messages.jumpToLatest": "Lompat ke pesan terbaru",
|
||||
|
||||
"session.context.addToContext": "Tambahkan {{selection}} ke konteks",
|
||||
"session.todo.title": "Tugas",
|
||||
"session.todo.collapse": "Ciutkan",
|
||||
"session.todo.expand": "Bentangkan",
|
||||
"session.todo.progress": "{{done}} dari {{total}} tugas selesai",
|
||||
"session.question.progress": "{{current}} dari {{total}} pertanyaan",
|
||||
"session.question.minimize": "Minimalkan pertanyaan",
|
||||
"session.question.restore": "Pulihkan pertanyaan",
|
||||
"session.question.pending.one": "{{count}} pertanyaan tertunda",
|
||||
"session.question.pending.other": "{{count}} pertanyaan tertunda",
|
||||
"session.followupDock.summary.one": "{{count}} pesan dalam antrean",
|
||||
"session.followupDock.summary.other": "{{count}} pesan dalam antrean",
|
||||
"session.followupDock.sendNow": "Kirim sekarang",
|
||||
"session.followupDock.edit": "Sunting",
|
||||
"session.followupDock.collapse": "Ciutkan pesan dalam antrean",
|
||||
"session.followupDock.expand": "Bentangkan pesan dalam antrean",
|
||||
"session.revertDock.summary.one": "{{count}} pesan diurungkan",
|
||||
"session.revertDock.summary.other": "{{count}} pesan diurungkan",
|
||||
"session.revertDock.collapse": "Ciutkan pesan yang diurungkan",
|
||||
"session.revertDock.expand": "Bentangkan pesan yang diurungkan",
|
||||
"session.revertDock.restore": "Pulihkan pesan",
|
||||
|
||||
"session.new.title": "Buat apa saja",
|
||||
"session.new.project.new": "Proyek baru",
|
||||
"session.new.project.search": "Cari proyek",
|
||||
"session.new.project.add": "Tambah proyek",
|
||||
"session.new.worktree.main": "Cabang utama",
|
||||
"session.new.worktree.mainWithBranch": "Cabang utama ({{branch}})",
|
||||
"session.new.worktree.create": "Buat worktree baru",
|
||||
"session.new.workspace.runIn": "Jalankan sesi dalam",
|
||||
"session.new.workspace.triggerLocal": "Lokal",
|
||||
"session.new.workspace.local": "Repositori lokal",
|
||||
"session.new.workspace.existing": "Ruang kerja…",
|
||||
"session.new.git.none": "Tanpa Git",
|
||||
"session.new.lastModified": "Terakhir diubah",
|
||||
|
||||
"session.header.search.placeholder": "Cari {{project}}",
|
||||
"session.header.searchFiles": "Cari berkas",
|
||||
"session.header.openIn": "Buka di",
|
||||
"session.header.open.action": "Buka {{app}}",
|
||||
"session.header.open.ariaLabel": "Buka di {{app}}",
|
||||
"session.header.open.menu": "Opsi buka",
|
||||
"session.header.open.copyPath": "Salin jalur",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.open.fileManager": "File Manager",
|
||||
"session.header.reveal.finder": "Tampilkan di Finder",
|
||||
"session.header.reveal.fileExplorer": "Tampilkan di File Explorer",
|
||||
"session.header.reveal.containingFolder": "Buka folder yang memuatnya",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminal",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
|
||||
"status.popover.trigger": "Status",
|
||||
"status.popover.ariaLabel": "Konfigurasi server",
|
||||
"status.popover.tab.servers": "Server",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Plugin",
|
||||
"status.popover.action.manageServers": "Kelola server",
|
||||
|
||||
"session.share.popover.title": "Publikasikan di web",
|
||||
"session.share.popover.description.shared": "Sesi ini publik di web. Siapa pun dengan tautan dapat mengaksesnya.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Bagikan sesi secara publik di web. Siapa pun dengan tautan dapat mengaksesnya.",
|
||||
"session.share.action.share": "Bagikan",
|
||||
"session.share.action.publish": "Publikasikan",
|
||||
"session.share.action.publishing": "Mempublikasikan...",
|
||||
"session.share.action.unpublish": "Batalkan publikasi",
|
||||
"session.share.action.unpublishing": "Membatalkan publikasi...",
|
||||
"session.share.action.view": "Lihat",
|
||||
"session.share.copy.copied": "Tersalin",
|
||||
"session.share.copy.copyLink": "Salin tautan",
|
||||
|
||||
"lsp.tooltip.none": "Tidak ada server LSP",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
|
||||
"prompt.loading": "Memuat prompt...",
|
||||
"terminal.loading": "Memuat terminal...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Tutup terminal",
|
||||
"terminal.connectionLost.title": "Koneksi Terputus",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket ditutup secara tidak normal: {{code}}",
|
||||
"terminal.connectionLost.description": "Koneksi terminal terputus. Ini bisa terjadi saat server dimulai ulang.",
|
||||
|
||||
"common.closeTab": "Tutup tab",
|
||||
"common.dismiss": "Tutup",
|
||||
"common.moreCountSuffix": " (+{{count}} lainnya)",
|
||||
"common.requestFailed": "Permintaan gagal",
|
||||
"common.moreOptions": "Opsi lainnya",
|
||||
"common.learnMore": "Pelajari lebih lanjut",
|
||||
"common.rename": "Ganti nama",
|
||||
"common.reset": "Atur ulang",
|
||||
"common.archive": "Arsipkan",
|
||||
"common.delete": "Hapus",
|
||||
"common.close": "Tutup",
|
||||
"common.edit": "Sunting",
|
||||
"common.loadMore": "Muat lebih banyak",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Spasi",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "tidak diketahui",
|
||||
|
||||
"common.time.justNow": "Baru saja",
|
||||
"common.time.minutesAgo.short": "{{count}}m lalu",
|
||||
"common.time.hoursAgo.short": "{{count}}j lalu",
|
||||
"common.time.daysAgo.short": "{{count}}h lalu",
|
||||
|
||||
"sidebar.menu.toggle": "Alihkan menu",
|
||||
"sidebar.nav.projectsAndSessions": "Proyek dan sesi",
|
||||
"sidebar.settings": "Pengaturan",
|
||||
"sidebar.help": "Bantuan",
|
||||
"sidebar.workspaces.enable": "Aktifkan ruang kerja",
|
||||
"sidebar.workspaces.disable": "Nonaktifkan ruang kerja",
|
||||
"sidebar.gettingStarted.title": "Memulai",
|
||||
"sidebar.gettingStarted.line1": "OpenCode menyertakan model gratis sehingga Anda dapat memulai dengan segera.",
|
||||
"sidebar.gettingStarted.line2":
|
||||
"Hubungkan penyedia mana pun untuk menggunakan model, termasuk Claude, GPT, Gemini, dll.",
|
||||
"sidebar.project.recentSessions": "Sesi terbaru",
|
||||
"sidebar.project.viewAllSessions": "Lihat semua sesi",
|
||||
"sidebar.project.clearNotifications": "Hapus notifikasi",
|
||||
"sidebar.empty.title": "Tidak ada proyek terbuka",
|
||||
"sidebar.empty.description": "Buka proyek untuk memulai",
|
||||
|
||||
"debugBar.ariaLabel": "Diagnostik kinerja pengembangan",
|
||||
"debugBar.na": "n/a",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Transisi rute terakhir yang mencapai halaman sesi, diukur sejak perute dimulai hingga render pertama setelah stabil.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Frame per detik yang dihitung secara bergulir selama 5 detik terakhir.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Waktu frame terburuk selama 5 detik terakhir.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Frame di atas 32ms dalam 5 detik terakhir.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Waktu terblokir dan jumlah tugas panjang dalam 5 detik terakhir. Tugas maks: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Penundaan masukan terburuk yang diamati dalam 5 detik terakhir.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip": "Perkiraan durasi interaksi selama 5 detik terakhir. Ini mirip INP, bukan INP Web Vitals resmi.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Pergeseran tata letak kumulatif untuk masa pakai aplikasi saat ini.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Heap JS terpakai vs batas heap. Khusus Chromium.",
|
||||
"debugBar.mem.tip": "Heap JS terpakai vs batas heap. {{used}} dari {{limit}}.",
|
||||
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
|
||||
"settings.section.desktop": "Desktop",
|
||||
"settings.section.server": "Server",
|
||||
"settings.tab.general": "Umum",
|
||||
"settings.tab.shortcuts": "Pintasan",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "Integrasi WSL",
|
||||
"settings.desktop.wsl.description": "Jalankan server OpenCode di dalam WSL di Windows.",
|
||||
|
||||
"settings.general.section.appearance": "Tampilan",
|
||||
"settings.general.section.advanced": "Lanjutan",
|
||||
"settings.general.section.notifications": "Notifikasi sistem",
|
||||
"settings.general.section.updates": "Pembaruan",
|
||||
"settings.general.section.sounds": "Efek suara",
|
||||
"settings.general.section.feed": "Umpan",
|
||||
"settings.general.section.display": "Tampilan",
|
||||
|
||||
"settings.general.row.language.title": "Bahasa",
|
||||
"settings.general.row.language.description": "Ubah bahasa tampilan untuk OpenCode",
|
||||
"settings.general.row.shell.title": "Shell terminal",
|
||||
"settings.general.row.shell.description": "Shell yang digunakan oleh terminal dan alat agen",
|
||||
"settings.general.row.shell.autoDefault": "Otomatis (Bawaan)",
|
||||
"settings.general.row.shell.terminalOnly": "hanya terminal",
|
||||
"settings.general.row.appearance.title": "Tampilan",
|
||||
"settings.general.row.appearance.description": "Sesuaikan tampilan OpenCode di perangkat Anda",
|
||||
"settings.general.row.colorScheme.title": "Skema warna",
|
||||
"settings.general.row.colorScheme.description": "Pilih apakah OpenCode mengikuti tema sistem, terang, atau gelap",
|
||||
"settings.general.row.theme.title": "Tema",
|
||||
"settings.general.row.theme.description": "Sesuaikan tema OpenCode.",
|
||||
"settings.general.row.font.title": "Font kode",
|
||||
"settings.general.row.font.description": "Sesuaikan font yang digunakan di blok kode",
|
||||
"settings.general.row.terminalFont.title": "Font terminal",
|
||||
"settings.general.row.terminalFont.description": "Sesuaikan font yang digunakan di terminal",
|
||||
"settings.general.row.uiFont.title": "Font UI",
|
||||
"settings.general.row.uiFont.description": "Sesuaikan font yang digunakan di seluruh antarmuka",
|
||||
"settings.general.row.followup.title": "Perilaku lanjutan",
|
||||
"settings.general.row.followup.description":
|
||||
"Pilih apakah prompt lanjutan segera mengarahkan atau menunggu dalam antrean",
|
||||
"settings.general.row.followup.option.queue": "Antrean",
|
||||
"settings.general.row.followup.option.steer": "Arahkan",
|
||||
"settings.general.row.showFileTree.title": "Pohon berkas",
|
||||
"settings.general.row.showFileTree.description": "Tampilkan panel pohon berkas di sesi",
|
||||
"settings.general.row.showNavigation.title": "Kontrol navigasi",
|
||||
"settings.general.row.showNavigation.description": "Tampilkan tombol mundur dan maju di bilah judul desktop",
|
||||
"settings.general.row.showSearch.title": "Palet perintah",
|
||||
"settings.general.row.showSearch.description": "Tampilkan tombol pencarian dan palet perintah di bilah judul",
|
||||
"settings.general.row.showTerminal.title": "Terminal",
|
||||
"settings.general.row.showTerminal.description": "Tampilkan tombol terminal di bilah judul desktop",
|
||||
"settings.general.row.showStatus.title": "Status server",
|
||||
"settings.general.row.showStatus.description": "Tampilkan tombol status server di bilah judul",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigasi bawah",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Tempatkan bilah judul dan tab sesi di bagian bawah layar pada perangkat seluler",
|
||||
"settings.general.row.showCustomAgents.title": "Tampilkan agen",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Beralih antaragen di penyusun. Saat disembunyikan, Agen Build digunakan sebagai bawaan.",
|
||||
"settings.general.row.reasoningSummaries.title": "Tampilkan ringkasan penalaran",
|
||||
"settings.general.row.reasoningSummaries.description": "Tampilkan ringkasan penalaran model di linimasa",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Bentangkan bagian alat shell",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Tampilkan bagian alat shell yang dibentangkan secara bawaan di linimasa",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Bentangkan bagian alat edit",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Tampilkan bagian alat edit, tulis, dan patch yang dibentangkan secara bawaan di linimasa",
|
||||
"settings.general.row.newInterface.title": "Tata letak baru",
|
||||
"settings.general.row.newInterface.badge": "Baru",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Gunakan tab dan tata letak beranda baru. Beralihlah antartata letak untuk waktu terbatas.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Anda sekarang menggunakan tata letak baru",
|
||||
"settings.general.row.newInterfaceNotice.description": "Tata letak sebelumnya sudah tidak tersedia",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Tutup",
|
||||
"settings.general.row.pinchZoom.title": "Cubit untuk zum",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Izinkan gerakan cubit pada trackpad dan Ctrl-gulir untuk melakukan zum",
|
||||
|
||||
"settings.general.row.wayland.title": "Gunakan Wayland asli",
|
||||
"settings.general.row.wayland.description": "Nonaktifkan sistem cadangan X11 di Wayland. Memerlukan mulai ulang.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Di Linux dengan monitor berlaju penyegaran berbeda, Wayland asli bisa lebih stabil.",
|
||||
|
||||
"settings.general.row.releaseNotes.title": "Catatan rilis",
|
||||
"settings.general.row.releaseNotes.description": "Tampilkan pop-up Apa yang Baru setelah pembaruan",
|
||||
|
||||
"settings.updates.row.startup.title": "Periksa pembaruan saat dimulai",
|
||||
"settings.updates.row.startup.description": "Secara otomatis memeriksa pembaruan saat OpenCode diluncurkan",
|
||||
"settings.updates.row.check.title": "Periksa pembaruan",
|
||||
"settings.updates.row.check.description": "Periksa pembaruan secara manual dan instal jika tersedia",
|
||||
"settings.updates.action.checkNow": "Periksa sekarang",
|
||||
"settings.updates.action.checking": "Memeriksa...",
|
||||
"settings.updates.action.downloading": "Mengunduh...",
|
||||
"settings.updates.action.installing": "Menginstal...",
|
||||
"settings.updates.toast.latest.title": "Versi Anda sudah terbaru",
|
||||
"settings.updates.toast.latest.description": "Anda menjalankan versi terbaru OpenCode.",
|
||||
"sound.option.none": "Tidak ada",
|
||||
"sound.option.alert01": "Peringatan 01",
|
||||
"sound.option.alert02": "Peringatan 02",
|
||||
"sound.option.alert03": "Peringatan 03",
|
||||
"sound.option.alert04": "Peringatan 04",
|
||||
"sound.option.alert05": "Peringatan 05",
|
||||
"sound.option.alert06": "Peringatan 06",
|
||||
"sound.option.alert07": "Peringatan 07",
|
||||
"sound.option.alert08": "Peringatan 08",
|
||||
"sound.option.alert09": "Peringatan 09",
|
||||
"sound.option.alert10": "Peringatan 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
|
||||
"settings.general.notifications.agent.title": "Agen",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Tampilkan notifikasi sistem saat agen selesai atau memerlukan perhatian",
|
||||
"settings.general.notifications.permissions.title": "Izin",
|
||||
"settings.general.notifications.permissions.description": "Tampilkan notifikasi sistem saat izin diperlukan",
|
||||
"settings.general.notifications.errors.title": "Kesalahan",
|
||||
"settings.general.notifications.errors.description": "Tampilkan notifikasi sistem saat terjadi kesalahan",
|
||||
|
||||
"settings.general.sounds.agent.title": "Agen",
|
||||
"settings.general.sounds.agent.description": "Mainkan suara saat agen selesai atau memerlukan perhatian",
|
||||
"settings.general.sounds.permissions.title": "Izin",
|
||||
"settings.general.sounds.permissions.description": "Mainkan suara saat izin diperlukan",
|
||||
"settings.general.sounds.errors.title": "Kesalahan",
|
||||
"settings.general.sounds.errors.description": "Mainkan suara saat terjadi kesalahan",
|
||||
|
||||
"settings.shortcuts.title": "Pintasan keyboard",
|
||||
"settings.shortcuts.reset.button": "Atur ulang ke bawaan",
|
||||
"settings.shortcuts.reset.toast.title": "Pintasan diatur ulang",
|
||||
"settings.shortcuts.reset.toast.description": "Pintasan keyboard telah diatur ulang ke bawaan.",
|
||||
"settings.shortcuts.conflict.title": "Pintasan sudah digunakan",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} sudah ditetapkan ke {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Belum ditetapkan",
|
||||
"settings.shortcuts.pressKeys": "Tekan tombol",
|
||||
"settings.shortcuts.search.placeholder": "Cari pintasan",
|
||||
"settings.shortcuts.search.empty": "Tidak ada pintasan ditemukan",
|
||||
|
||||
"settings.shortcuts.group.general": "Umum",
|
||||
"settings.shortcuts.group.session": "Sesi",
|
||||
"settings.shortcuts.group.navigation": "Navigasi",
|
||||
"settings.shortcuts.group.modelAndAgent": "Model dan agen",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "Prompt",
|
||||
|
||||
"settings.providers.title": "Penyedia",
|
||||
"settings.providers.description": "Pengaturan penyedia akan dapat dikonfigurasi di sini.",
|
||||
"settings.providers.section.connected": "Penyedia terhubung",
|
||||
"settings.providers.connected.empty": "Tidak ada penyedia terhubung",
|
||||
"settings.providers.connected.environmentDescription": "Terhubung dari variabel lingkungan Anda",
|
||||
"settings.providers.section.popular": "Penyedia populer",
|
||||
"settings.providers.custom.description": "Tambahkan penyedia yang kompatibel dengan OpenAI berdasarkan URL dasar.",
|
||||
"settings.providers.tag.environment": "Lingkungan",
|
||||
"settings.providers.tag.config": "Konfigurasi",
|
||||
"settings.providers.tag.custom": "Kustom",
|
||||
"settings.providers.tag.other": "Lainnya",
|
||||
"settings.models.title": "Model",
|
||||
"settings.models.description": "Pengaturan model akan dapat dikonfigurasi di sini.",
|
||||
"settings.agents.title": "Agen",
|
||||
"settings.agents.description": "Pengaturan agen akan dapat dikonfigurasi di sini.",
|
||||
"settings.commands.title": "Perintah",
|
||||
"settings.commands.description": "Pengaturan perintah akan dapat dikonfigurasi di sini.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "Pengaturan MCP akan dapat dikonfigurasi di sini.",
|
||||
|
||||
"settings.permissions.title": "Izin",
|
||||
"settings.permissions.description": "Kontrol alat apa yang dapat digunakan server secara bawaan.",
|
||||
"settings.permissions.section.tools": "Alat",
|
||||
"settings.permissions.toast.updateFailed.title": "Gagal memperbarui izin",
|
||||
|
||||
"settings.permissions.action.allow": "Izinkan",
|
||||
"settings.permissions.action.ask": "Tanya",
|
||||
"settings.permissions.action.deny": "Tolak",
|
||||
|
||||
"settings.permissions.tool.read.title": "Baca",
|
||||
"settings.permissions.tool.read.description": "Membaca berkas (mencocokkan jalur berkas)",
|
||||
"settings.permissions.tool.edit.title": "Sunting",
|
||||
"settings.permissions.tool.edit.description": "Memodifikasi berkas, termasuk suntingan, tulisan, dan patch",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Cocokkan berkas menggunakan pola glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Cari konten berkas menggunakan ekspresi reguler",
|
||||
"settings.permissions.tool.list.title": "Daftar",
|
||||
"settings.permissions.tool.list.description": "Daftarkan berkas dalam direktori",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Jalankan perintah shell",
|
||||
"settings.permissions.tool.task.title": "Tugas",
|
||||
"settings.permissions.tool.task.description": "Luncurkan sub-agen",
|
||||
"settings.permissions.tool.skill.title": "Keahlian",
|
||||
"settings.permissions.tool.skill.description": "Muat keahlian berdasarkan nama",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Jalankan kueri server bahasa",
|
||||
"settings.permissions.tool.todowrite.title": "Tulis Tugas",
|
||||
"settings.permissions.tool.todowrite.description": "Perbarui daftar tugas",
|
||||
"settings.permissions.tool.webfetch.title": "Web Fetch",
|
||||
"settings.permissions.tool.webfetch.description": "Ambil konten dari URL",
|
||||
"settings.permissions.tool.websearch.title": "Pencarian Web",
|
||||
"settings.permissions.tool.websearch.description": "Cari di web",
|
||||
"settings.permissions.tool.external_directory.title": "Direktori Eksternal",
|
||||
"settings.permissions.tool.external_directory.description": "Akses berkas di luar direktori proyek",
|
||||
"settings.permissions.tool.doom_loop.title": "Doom Loop",
|
||||
"settings.permissions.tool.doom_loop.description": "Deteksi panggilan alat berulang dengan masukan yang identik",
|
||||
|
||||
"session.delete.failed.title": "Gagal menghapus sesi",
|
||||
"session.delete.title": "Hapus sesi",
|
||||
"session.delete.confirm": 'Hapus sesi "{{name}}"?',
|
||||
"session.delete.button": "Hapus sesi",
|
||||
|
||||
"workspace.new": "Ruang kerja baru",
|
||||
"workspace.type.local": "lokal",
|
||||
"workspace.type.sandbox": "sandbox",
|
||||
"workspace.create.failed.title": "Gagal membuat ruang kerja",
|
||||
"workspace.delete.failed.title": "Gagal menghapus ruang kerja",
|
||||
"workspace.resetting.title": "Mengatur ulang ruang kerja",
|
||||
"workspace.resetting.description": "Ini mungkin memakan waktu sebentar.",
|
||||
"workspace.reset.failed.title": "Gagal mengatur ulang ruang kerja",
|
||||
"workspace.reset.success.title": "Ruang kerja diatur ulang",
|
||||
"workspace.reset.success.description": "Ruang kerja sekarang cocok dengan cabang bawaan.",
|
||||
"workspace.error.stillPreparing": "Ruang kerja masih disiapkan",
|
||||
"workspace.status.checking": "Memeriksa perubahan yang belum digabung...",
|
||||
"workspace.status.error": "Tidak dapat memverifikasi status Git.",
|
||||
"workspace.status.clean": "Tidak terdeteksi perubahan yang belum digabung.",
|
||||
"workspace.status.dirty": "Terdeteksi perubahan yang belum digabung di ruang kerja ini.",
|
||||
"workspace.delete.title": "Hapus ruang kerja",
|
||||
"workspace.delete.confirm": 'Hapus ruang kerja "{{name}}"?',
|
||||
"workspace.delete.button": "Hapus ruang kerja",
|
||||
"workspace.reset.title": "Atur ulang ruang kerja",
|
||||
"workspace.reset.confirm": 'Atur ulang ruang kerja "{{name}}"?',
|
||||
"workspace.reset.button": "Atur ulang ruang kerja",
|
||||
"workspace.reset.archived.none": "Tidak ada sesi aktif yang akan diarsipkan.",
|
||||
"workspace.reset.archived.one": "1 sesi akan diarsipkan.",
|
||||
"workspace.reset.archived.many": "{{count}} sesi akan diarsipkan.",
|
||||
"workspace.reset.note": "Ini akan mengatur ulang ruang kerja agar cocok dengan cabang bawaan.",
|
||||
}
|
||||
@@ -1,1038 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Suggeriti",
|
||||
"command.category.view": "Visualizzazione",
|
||||
"command.category.project": "Progetto",
|
||||
"command.category.provider": "Provider",
|
||||
"command.category.server": "Server",
|
||||
"command.category.session": "Sessione",
|
||||
"command.category.theme": "Tema",
|
||||
"command.category.language": "Lingua",
|
||||
"command.category.file": "File",
|
||||
"command.category.context": "Contesto",
|
||||
"command.category.terminal": "Terminale",
|
||||
"command.category.model": "Modello",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Agente",
|
||||
"command.category.permissions": "Autorizzazioni",
|
||||
"command.category.workspace": "Area di lavoro",
|
||||
"command.category.settings": "Impostazioni",
|
||||
"theme.scheme.system": "Sistema",
|
||||
"theme.scheme.light": "Chiaro",
|
||||
"theme.scheme.dark": "Scuro",
|
||||
"command.sidebar.toggle": "Mostra o nascondi la barra laterale",
|
||||
"command.project.open": "Apri progetto",
|
||||
"command.project.previous": "Progetto precedente",
|
||||
"command.project.next": "Progetto successivo",
|
||||
"command.project.index": "Passa al progetto {{index}}",
|
||||
"command.provider.connect": "Connetti provider",
|
||||
"command.server.switch": "Cambia server",
|
||||
"command.settings.open": "Apri le impostazioni",
|
||||
"command.session.previous": "Sessione precedente",
|
||||
"command.session.next": "Sessione successiva",
|
||||
"command.session.previous.unseen": "Sessione precedente non letta",
|
||||
"command.session.next.unseen": "Sessione successiva non letta",
|
||||
"command.session.archive": "Archivia sessione",
|
||||
"command.palette": "Palette dei comandi",
|
||||
"command.theme.cycle": "Cambia tema",
|
||||
"command.theme.set": "Usa tema: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Cambia combinazione di colori",
|
||||
"command.theme.scheme.set": "Usa combinazione di colori: {{scheme}}",
|
||||
"command.language.cycle": "Cambia lingua",
|
||||
"command.language.set": "Usa la lingua: {{language}}",
|
||||
"command.session.new": "Nuova sessione",
|
||||
"command.file.open": "Apri file",
|
||||
"command.tab.close": "Chiudi scheda",
|
||||
"command.tab.reopenClosed": "Riapri la scheda chiusa",
|
||||
"command.context.addSelection": "Aggiungi la selezione al contesto",
|
||||
"command.context.addSelection.description": "Aggiungi le righe selezionate dal file corrente",
|
||||
"command.input.focus": "Attiva il campo di inserimento",
|
||||
"command.terminal.toggle": "Mostra o nascondi il terminale",
|
||||
"command.fileTree.toggle": "Mostra o nascondi l'albero dei file",
|
||||
"command.review.toggle": "Mostra o nascondi la revisione",
|
||||
"command.terminal.new": "Nuovo terminale",
|
||||
"command.terminal.new.description": "Crea una nuova scheda terminale",
|
||||
"command.steps.toggle": "Mostra o nascondi i passaggi",
|
||||
"command.steps.toggle.description": "Mostra o nascondi i passaggi per il messaggio corrente",
|
||||
"command.message.previous": "Messaggio precedente",
|
||||
"command.message.previous.description": "Vai al messaggio utente precedente",
|
||||
"command.message.next": "Messaggio successivo",
|
||||
"command.message.next.description": "Vai al messaggio utente successivo",
|
||||
"command.model.choose": "Scegli il modello",
|
||||
"command.model.choose.description": "Seleziona un modello diverso",
|
||||
"command.mcp.toggle": "Attiva o disattiva gli MCP",
|
||||
"command.mcp.toggle.description": "Attiva o disattiva gli MCP",
|
||||
"command.agent.cycle": "Cambia agente",
|
||||
"command.agent.cycle.description": "Passa all'agente successivo",
|
||||
"command.agent.cycle.reverse": "Cambia agente all'indietro",
|
||||
"command.agent.cycle.reverse.description": "Passa all'agente precedente",
|
||||
"command.model.variant.cycle": "Cambia livello di ragionamento",
|
||||
"command.model.variant.cycle.description": "Passa al livello di ragionamento successivo",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "Accetta automaticamente le autorizzazioni",
|
||||
"command.permissions.autoaccept.disable": "Interrompi l'accettazione automatica delle autorizzazioni",
|
||||
"command.workspace.toggle": "Attiva o disattiva le aree di lavoro",
|
||||
"command.workspace.toggle.description": "Abilita o disabilita più aree di lavoro nella barra laterale",
|
||||
"command.session.undo": "Annulla",
|
||||
"command.session.undo.description": "Annulla l'ultimo messaggio",
|
||||
"command.session.redo": "Ripeti",
|
||||
"command.session.redo.description": "Ripristina l'ultimo messaggio annullato",
|
||||
"command.session.compact": "Compatta sessione",
|
||||
"command.session.compact.description": "Riepiloga la sessione per ridurre le dimensioni del contesto",
|
||||
"command.session.fork": "Crea sessione dal messaggio",
|
||||
"command.session.fork.description": "Crea una nuova sessione da un messaggio precedente",
|
||||
"command.session.share": "Condividi sessione",
|
||||
"command.session.share.description": "Condividi questa sessione e copia l'URL negli appunti",
|
||||
"command.session.unshare": "Annulla condivisione sessione",
|
||||
"command.session.unshare.description": "Interrompi la condivisione di questa sessione",
|
||||
"palette.search.placeholder": "Cerca file, comandi e sessioni",
|
||||
"palette.search.placeholder.home": "Cerca comandi e sessioni",
|
||||
"palette.empty": "Nessun risultato trovato",
|
||||
"palette.group.commands": "Comandi",
|
||||
"palette.group.files": "File",
|
||||
"dialog.provider.search.placeholder": "Cerca provider",
|
||||
"dialog.provider.empty": "Nessun provider trovato",
|
||||
"dialog.provider.group.popular": "Popolari",
|
||||
"dialog.provider.group.other": "Altro",
|
||||
"dialog.provider.custom.label": "Provider personalizzato compatibile con OpenAI",
|
||||
"dialog.provider.tag.recommended": "Consigliato",
|
||||
"dialog.provider.opencode.note": "Modelli selezionati tra cui Claude, GPT, Gemini e altri",
|
||||
"dialog.provider.opencode.tagline": "Modelli affidabili e ottimizzati",
|
||||
"dialog.provider.opencodeGo.tagline": "Abbonamento economico per tutti",
|
||||
"dialog.provider.anthropic.note": "Accesso diretto ai modelli Claude, inclusi Pro e Max",
|
||||
"dialog.provider.copilot.note": "Modelli di IA per assistere nella programmazione tramite GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Modelli GPT veloci e potenti per attività generiche di IA",
|
||||
"dialog.provider.google.note": "Modelli Gemini per risposte rapide e strutturate",
|
||||
"dialog.provider.openrouter.note": "Accedi a tutti i modelli supportati da un unico provider",
|
||||
"dialog.provider.vercel.note": "Accesso unificato ai modelli di IA con instradamento intelligente",
|
||||
"dialog.model.select.title": "Seleziona modello",
|
||||
"dialog.model.search.placeholder": "Cerca modelli",
|
||||
"dialog.model.empty": "Nessun modello trovato",
|
||||
"dialog.model.manage": "Gestisci modelli",
|
||||
"dialog.model.manage.description": "Personalizza quali modelli appaiono nel selettore del modello.",
|
||||
"dialog.model.manage.provider.toggle": "Attiva o disattiva tutti i modelli {{provider}}",
|
||||
"dialog.model.unpaid.freeModels.title": "Modelli gratuiti forniti da OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Aggiungi altri modelli dai provider più diffusi",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Scopri oltre 70 provider",
|
||||
"dialog.provider.viewAll": "Mostra altri provider",
|
||||
"provider.connect.title": "Connetti {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Accedi con Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Seleziona il metodo di accesso per {{provider}}.",
|
||||
"provider.connect.method.apiKey": "Chiave API",
|
||||
"provider.connect.status.inProgress": "Autorizzazione in corso...",
|
||||
"provider.connect.status.waiting": "In attesa di autorizzazione...",
|
||||
"provider.connect.status.failed": "Autorizzazione fallita: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Inserisci la chiave API di {{provider}} per connettere il tuo account e utilizzare i modelli {{provider}} in OpenCode.",
|
||||
"provider.connect.apiKey.label": "Chiave API di {{provider}}",
|
||||
"provider.connect.apiKey.placeholder": "Chiave API",
|
||||
"provider.connect.apiKey.required": "È richiesta la chiave API",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen offre l'accesso a una selezione di modelli affidabili e ottimizzati per gli agenti di programmazione.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Con una sola chiave API avrai accesso a modelli come Claude, GPT, Gemini, GLM e altri.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Visita ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " per ottenere la tua chiave API.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Visita ",
|
||||
"provider.connect.oauth.code.visit.link": "questo collegamento",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" per ottenere il codice di autorizzazione, connettere il tuo account e usare i modelli {{provider}} in OpenCode.",
|
||||
"provider.connect.oauth.code.label": "Codice di autorizzazione {{method}}",
|
||||
"provider.connect.oauth.code.placeholder": "Codice di autorizzazione",
|
||||
"provider.connect.oauth.code.required": "È richiesto il codice di autorizzazione",
|
||||
"provider.connect.oauth.code.invalid": "Codice di autorizzazione non valido",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Visita ",
|
||||
"provider.connect.oauth.auto.visit.link": "questo collegamento",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" e inserisci il codice qui sotto per connettere il tuo account e usare i modelli {{provider}} in OpenCode.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Codice di conferma",
|
||||
"provider.connect.toast.connected.title": "{{provider}} connesso",
|
||||
"provider.connect.toast.connected.description": "I modelli {{provider}} sono ora disponibili per l'uso.",
|
||||
"provider.custom.title": "Provider personalizzato",
|
||||
"provider.custom.description.prefix": "Configura un provider compatibile con OpenAI. Consulta la ",
|
||||
"provider.custom.description.link": "documentazione sulla configurazione dei provider",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "ID provider",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Lettere minuscole, numeri, trattini o trattini bassi",
|
||||
"provider.custom.field.name.label": "Nome da visualizzare",
|
||||
"provider.custom.field.name.placeholder": "Il mio provider IA",
|
||||
"provider.custom.field.baseURL.label": "URL di base",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Chiave API",
|
||||
"provider.custom.field.apiKey.placeholder": "Chiave API",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"Opzionale. Lascia vuoto se gestisci l'autenticazione tramite intestazioni.",
|
||||
"provider.custom.models.label": "Modelli",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "Nome",
|
||||
"provider.custom.models.name.placeholder": "Nome da visualizzare",
|
||||
"provider.custom.models.remove": "Rimuovi il modello",
|
||||
"provider.custom.models.add": "Aggiungi modello",
|
||||
"provider.custom.headers.label": "Intestazioni (facoltative)",
|
||||
"provider.custom.headers.key.label": "Intestazione",
|
||||
"provider.custom.headers.key.placeholder": "Header-Name",
|
||||
"provider.custom.headers.value.label": "Valore",
|
||||
"provider.custom.headers.value.placeholder": "valore",
|
||||
"provider.custom.headers.remove": "Rimuovi intestazione",
|
||||
"provider.custom.headers.add": "Aggiungi intestazione",
|
||||
"provider.custom.error.providerID.required": "L'ID provider è obbligatorio",
|
||||
"provider.custom.error.providerID.format": "Utilizza lettere minuscole, numeri, trattini o trattini bassi",
|
||||
"provider.custom.error.providerID.exists": "Questo ID provider esiste già",
|
||||
"provider.custom.error.name.required": "Il nome visualizzato è obbligatorio",
|
||||
"provider.custom.error.baseURL.required": "L'URL di base è obbligatorio",
|
||||
"provider.custom.error.baseURL.format": "Deve iniziare con http:// o https://",
|
||||
"provider.custom.error.required": "Necessario",
|
||||
"provider.custom.error.duplicate": "Duplicato",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} disconnesso",
|
||||
"provider.disconnect.toast.disconnected.description": "I modelli {{provider}} non sono più disponibili.",
|
||||
"model.tag.free": "Gratuito",
|
||||
"model.tag.latest": "Più recente",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "testo",
|
||||
"model.input.image": "immagine",
|
||||
"model.input.audio": "audio",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Supporta: {{inputs}}",
|
||||
"model.tooltip.context.label": "Contesto",
|
||||
"model.tooltip.inputs": "Input",
|
||||
"model.tooltip.model": "Modello",
|
||||
"model.tooltip.provider": "Provider",
|
||||
"model.tooltip.reasoning": "Ragionamento",
|
||||
"model.tooltip.reasoning.allowed": "Supporta il ragionamento",
|
||||
"model.tooltip.reasoning.none": "Nessun ragionamento",
|
||||
"model.tooltip.context": "Limite del contesto: {{limit}}",
|
||||
"common.search.placeholder": "Cerca",
|
||||
"common.goBack": "Torna indietro",
|
||||
"common.goForward": "Vai avanti",
|
||||
"common.loading": "Caricamento",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Annulla",
|
||||
"common.clear": "Cancella",
|
||||
"common.open": "Apri",
|
||||
"common.connect": "Connetti",
|
||||
"common.disconnect": "Disconnetti",
|
||||
"common.continue": "Continua",
|
||||
"common.submit": "Invia",
|
||||
"common.save": "Salva",
|
||||
"common.saving": "Salvataggio...",
|
||||
"common.default": "Predefinito",
|
||||
"common.attachment": "allegato",
|
||||
"prompt.placeholder.shell": "Inserisci il comando shell... {{example}}",
|
||||
"prompt.placeholder.normal": 'Chiedi qualsiasi cosa... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Chiedi qualsiasi cosa...",
|
||||
"prompt.placeholder.summarizeComments": "Riepiloga i commenti...",
|
||||
"prompt.placeholder.summarizeComment": "Riepiloga il commento...",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "esc per uscire",
|
||||
"session.child.promptDisabled": "Non è possibile inviare prompt alle sessioni dei subagenti.",
|
||||
"session.child.backToParent": "Torna alla sessione principale.",
|
||||
"prompt.example.1": "Correggi un TODO nel codice sorgente",
|
||||
"prompt.example.2": "Qual è lo stack tecnologico di questo progetto?",
|
||||
"prompt.example.3": "Correggi i test non funzionanti",
|
||||
"prompt.example.4": "Spiega come funziona l'autenticazione",
|
||||
"prompt.example.5": "Trova e correggi le vulnerabilità di sicurezza",
|
||||
"prompt.example.6": "Aggiungi test unitari per il servizio utente",
|
||||
"prompt.example.7": "Rifattorizza questa funzione per renderla più leggibile",
|
||||
"prompt.example.8": "Cosa significa questo errore?",
|
||||
"prompt.example.9": "Aiutami a eseguire il debug di questo problema",
|
||||
"prompt.example.10": "Genera documentazione API",
|
||||
"prompt.example.11": "Ottimizza le query del database",
|
||||
"prompt.example.12": "Aggiungi la convalida dell'input",
|
||||
"prompt.example.13": "Crea un nuovo componente per...",
|
||||
"prompt.example.14": "Come distribuisco questo progetto?",
|
||||
"prompt.example.15": "Esamina il mio codice verificando che rispetti le buone pratiche",
|
||||
"prompt.example.16": "Aggiungi la gestione degli errori a questa funzione",
|
||||
"prompt.example.17": "Spiega questa espressione regolare",
|
||||
"prompt.example.18": "Convertilo in TypeScript",
|
||||
"prompt.example.19": "Aggiungi log in tutto il codice sorgente",
|
||||
"prompt.example.20": "Quali dipendenze sono obsolete?",
|
||||
"prompt.example.21": "Aiutami a scrivere uno script di migrazione",
|
||||
"prompt.example.22": "Implementa la cache per questo endpoint",
|
||||
"prompt.example.23": "Aggiungi la paginazione a questo elenco",
|
||||
"prompt.example.24": "Crea un comando CLI per...",
|
||||
"prompt.example.25": "Come funzionano le variabili d'ambiente qui?",
|
||||
"prompt.popover.emptyResults": "Nessun risultato corrispondente",
|
||||
"prompt.popover.emptyCommands": "Nessun comando corrispondente",
|
||||
"prompt.dropzone.label": "Trascina qui immagini, PDF o file di testo",
|
||||
"prompt.dropzone.file.label": "Trascina per menzionare il file con @",
|
||||
"prompt.slash.badge.custom": "personalizzato",
|
||||
"prompt.slash.badge.skill": "skill",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "attivo",
|
||||
"prompt.context.includeActiveFile": "Includi file attivo",
|
||||
"prompt.context.removeActiveFile": "Rimuovi il file attivo dal contesto",
|
||||
"prompt.context.removeFile": "Rimuovi il file dal contesto",
|
||||
"prompt.action.attachFile": "Aggiungi file",
|
||||
"prompt.menu.addImagesAndFiles": "Aggiungi file e altro ancora",
|
||||
"prompt.menu.imagesAndFiles": "Immagini e file",
|
||||
"prompt.menu.commands": "Comandi",
|
||||
"prompt.menu.context": "Contesto",
|
||||
"prompt.menu.shellCommand": "Comando della shell",
|
||||
"prompt.attachment.remove": "Rimuovi l'allegato",
|
||||
"prompt.action.send": "Invia",
|
||||
"prompt.action.stop": "Interrompi",
|
||||
"prompt.toast.pasteUnsupported.title": "Allegato non supportato",
|
||||
"prompt.toast.pasteUnsupported.description": "Qui è possibile allegare solo immagini, PDF o file di testo.",
|
||||
"prompt.toast.attachmentDuplicate.title": "Questo file è già stato caricato",
|
||||
"prompt.toast.modelAgentRequired.title": "Seleziona un agente e un modello",
|
||||
"prompt.toast.modelAgentRequired.description": "Scegli un agente e un modello prima di inviare un prompt.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Impossibile creare il worktree",
|
||||
"prompt.toast.sessionCreateFailed.title": "Impossibile creare la sessione",
|
||||
"prompt.toast.shellSendFailed.title": "Impossibile inviare il comando shell",
|
||||
"prompt.toast.commandSendFailed.title": "Impossibile inviare il comando",
|
||||
"prompt.toast.promptSendFailed.title": "Impossibile inviare il prompt",
|
||||
"prompt.toast.promptSendFailed.description": "Impossibile recuperare la sessione",
|
||||
"dialog.mcp.title": "MCP",
|
||||
"dialog.mcp.description": "{{enabled}} di {{total}} abilitati",
|
||||
"dialog.mcp.empty": "Nessun MCP configurato",
|
||||
"dialog.lsp.empty": "LSP rilevati automaticamente in base ai tipi di file",
|
||||
"dialog.plugins.empty": "Plugin configurati in opencode.json",
|
||||
"mcp.status.connected": "collegato",
|
||||
"mcp.status.failed": "fallito",
|
||||
"mcp.status.needs_auth": "richiede l'autenticazione",
|
||||
"mcp.status.disabled": "disabilitato",
|
||||
"mcp.auth.clickToAuthenticate": "Fai clic per autenticarti",
|
||||
"dialog.fork.empty": "Nessun messaggio da cui effettuare il fork",
|
||||
"dialog.directory.search.placeholder": "Cerca cartelle",
|
||||
"dialog.directory.empty": "Nessuna cartella trovata",
|
||||
"dialog.directory.action.selectFile": "Seleziona file",
|
||||
"dialog.directory.action.selectFolder": "Seleziona la cartella",
|
||||
"dialog.directory.root": "Radice",
|
||||
"dialog.directory.parent": "Cartella superiore",
|
||||
"dialog.directory.readError": "Impossibile leggere questa cartella",
|
||||
"app.server.unreachable": "Impossibile raggiungere {{server}}",
|
||||
"app.server.retrying": "Nuovo tentativo automatico...",
|
||||
"app.server.otherServers": "Altri server",
|
||||
"dialog.server.title": "Server",
|
||||
"dialog.server.description": "Cambia il server OpenCode a cui si connette l'app.",
|
||||
"dialog.server.search.placeholder": "Cerca server",
|
||||
"dialog.server.empty": "Ancora nessun server",
|
||||
"dialog.server.add.title": "Aggiungi server",
|
||||
"dialog.server.add.url": "Indirizzo del server",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Impossibile connettersi al server",
|
||||
"dialog.server.add.checking": "Controllo...",
|
||||
"dialog.server.add.button": "Aggiungi server",
|
||||
"dialog.server.add.name": "Nome del server (facoltativo)",
|
||||
"dialog.server.add.namePlaceholder": "Host locale",
|
||||
"dialog.server.add.username": "Nome utente (facoltativo)",
|
||||
"dialog.server.add.usernamePlaceholder": "nomeutente",
|
||||
"dialog.server.add.password": "Password (facoltativa)",
|
||||
"dialog.server.add.passwordPlaceholder": "password",
|
||||
"dialog.server.edit.title": "Modifica server",
|
||||
"dialog.server.default.title": "Server predefinito",
|
||||
"dialog.server.default.description":
|
||||
"Connettiti a questo server all'avvio dell'app invece di avviare un server locale. Richiede il riavvio.",
|
||||
"dialog.server.default.none": "Nessun server selezionato",
|
||||
"dialog.server.default.set": "Imposta il server corrente come predefinito",
|
||||
"dialog.server.default.clear": "Cancella",
|
||||
"dialog.server.action.remove": "Rimuovi server",
|
||||
"dialog.server.menu.edit": "Modifica",
|
||||
"dialog.server.menu.default": "Imposta come predefinito",
|
||||
"dialog.server.menu.defaultRemove": "Rimuovi predefinito",
|
||||
"dialog.server.menu.delete": "Elimina",
|
||||
"dialog.server.current": "Server corrente",
|
||||
"dialog.server.status.default": "Predefinito",
|
||||
"wsl.server.add": "Aggiungi il server WSL",
|
||||
"wsl.server.addShort": "Aggiungi WSL",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "Server WSL",
|
||||
"wsl.server.retryStart": "Riprova l'avvio",
|
||||
"wsl.server.updating": "Aggiornamento...",
|
||||
"wsl.onboarding.step.distro": "Scegli la distribuzione",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "Controllo WSL...",
|
||||
"wsl.onboarding.restartRequired": "Windows deve essere riavviato per completare l'installazione di WSL.",
|
||||
"wsl.onboarding.ready": "WSL è pronto.",
|
||||
"wsl.onboarding.required": "WSL è necessario per continuare.",
|
||||
"wsl.onboarding.checkingDistros": "Controllo delle distribuzioni...",
|
||||
"wsl.onboarding.installingDistro": "Installazione di {{distro}}...",
|
||||
"wsl.onboarding.checkingDistro": "Controllo {{distro}}...",
|
||||
"wsl.onboarding.listingDistros": "Elenco delle distribuzioni...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} è pronto.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} non è ancora installato.",
|
||||
"wsl.onboarding.openDistroOnce": "Apri {{distro}} una volta per completare la configurazione.",
|
||||
"wsl.onboarding.finishingDistro": "Completamento della configurazione di {{distro}}.",
|
||||
"wsl.onboarding.pickDistro": "Scegli una distribuzione o installane una qui sotto.",
|
||||
"wsl.onboarding.checkingOpencode": "Controllo OpenCode...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "Controllo OpenCode in {{distro}}...",
|
||||
"wsl.onboarding.updatingOpencode": "Aggiornamento OpenCode...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "Aggiornamento OpenCode in {{distro}}...",
|
||||
"wsl.onboarding.updateOpencodeIn": "Aggiorna OpenCode in {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "Aggiorna OpenCode",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode è pronto in {{distro}}.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode è pronto.",
|
||||
"wsl.onboarding.installOpencodeIn": "Installa OpenCode in {{distro}}.",
|
||||
"wsl.onboarding.installOpencode": "Installa OpenCode",
|
||||
"wsl.onboarding.chooseDistroFirst": "Scegli prima una distribuzione.",
|
||||
"wsl.onboarding.loadFailed": "Impossibile caricare lo stato WSL.",
|
||||
"wsl.onboarding.loading": "Caricamento...",
|
||||
"wsl.onboarding.installedDistros": "Distribuzioni installate",
|
||||
"wsl.onboarding.checkAgain": "Controlla di nuovo",
|
||||
"wsl.onboarding.distroStatus.ready": "Pronto",
|
||||
"wsl.onboarding.distroStatus.checking": "Controllo...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode non installato",
|
||||
"wsl.onboarding.distroStatus.missingTools": "bash e curl non disponibili",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Non supportato · Utilizza WSL 2",
|
||||
"wsl.onboarding.needAnotherDistro": "Hai bisogno di un'altra distribuzione?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "Installa una distribuzione Linux dal catalogo WSL",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL non installato",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"WSL (Sottosistema Windows per Linux) è necessario prima che OpenCode possa aggiungere un server WSL",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL non disponibile",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode non ha potuto verificare WSL su questa macchina.",
|
||||
"wsl.onboarding.installWsl": "Installa WSL",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"Riavvia Windows per completare l'installazione WSL, quindi riapri OpenCode.",
|
||||
"wsl.onboarding.next": "Avanti",
|
||||
"wsl.onboarding.refresh": "Aggiorna",
|
||||
"wsl.onboarding.allDistrosAdded": "Tutte le distribuzioni installate sono già aggiunte.",
|
||||
"wsl.onboarding.noDistros": "Nessuna distribuzione ancora rilevata.",
|
||||
"wsl.onboarding.install": "Installa",
|
||||
"wsl.onboarding.installing": "Installazione...",
|
||||
"wsl.onboarding.installDistro": "Installa la distribuzione",
|
||||
"wsl.onboarding.searchDistros": "Cerca distribuzioni",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 è obbligatorio.",
|
||||
"wsl.onboarding.toolsRequired": "Questa distribuzione richiede bash e curl.",
|
||||
"wsl.onboarding.openTerminal": "Apri terminale",
|
||||
"wsl.onboarding.path": "Percorso: {{path}}",
|
||||
"wsl.onboarding.notFound": "non trovato",
|
||||
"wsl.onboarding.version": "Versione: {{version}}",
|
||||
"wsl.onboarding.unknown": "sconosciuto",
|
||||
"wsl.onboarding.desktopVersion": "desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "La versione installata non corrisponde alla versione dell'app desktop.",
|
||||
"wsl.onboarding.adding": "Aggiunta...",
|
||||
"server.row.noUsername": "nessun nome utente",
|
||||
"dialog.project.edit.title": "Modifica progetto",
|
||||
"dialog.project.edit.name": "Nome",
|
||||
"dialog.project.edit.icon": "Icona",
|
||||
"dialog.project.edit.icon.alt": "Icona del progetto",
|
||||
"dialog.project.edit.icon.hint": "Fai clic o trascina un'immagine",
|
||||
"dialog.project.edit.icon.recommended": "Consigliato: 128x128px",
|
||||
"dialog.project.edit.color": "Colore",
|
||||
"dialog.project.edit.color.select": "Seleziona il colore {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Script di avvio dell'area di lavoro",
|
||||
"dialog.project.edit.worktree.startup.description":
|
||||
"Viene eseguito dopo la creazione di una nuova area di lavoro (worktree).",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "es. bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "Inizia",
|
||||
"dialog.releaseNotes.action.next": "Avanti",
|
||||
"dialog.releaseNotes.action.hideFuture": "Non mostrarli in futuro",
|
||||
"dialog.releaseNotes.media.alt": "Anteprima delle novità",
|
||||
"context.breakdown.title": "Ripartizione del contesto",
|
||||
"context.breakdown.note":
|
||||
'Ripartizione approssimativa dei token di input. "Altro" include le definizioni degli strumenti e i dati aggiuntivi.',
|
||||
"context.breakdown.system": "Sistema",
|
||||
"context.breakdown.user": "Utente",
|
||||
"context.breakdown.assistant": "Assistente",
|
||||
"context.breakdown.tool": "Chiamate agli strumenti",
|
||||
"context.breakdown.other": "Altro",
|
||||
"context.systemPrompt.title": "Prompt di sistema",
|
||||
"context.rawMessages.title": "Messaggi non elaborati",
|
||||
"context.stats.session": "Sessione",
|
||||
"context.stats.messages": "Messaggi",
|
||||
"context.stats.provider": "Provider",
|
||||
"context.stats.model": "Modello",
|
||||
"context.stats.limit": "Limite del contesto",
|
||||
"context.stats.totalTokens": "Token totali",
|
||||
"context.stats.usage": "Utilizzo",
|
||||
"context.stats.inputTokens": "Token di input",
|
||||
"context.stats.outputTokens": "Token di output",
|
||||
"context.stats.reasoningTokens": "Token di ragionamento",
|
||||
"context.stats.cacheTokens": "Token cache (lettura/scrittura)",
|
||||
"context.stats.userMessages": "Messaggi utente",
|
||||
"context.stats.assistantMessages": "Messaggi dell'assistente",
|
||||
"context.stats.totalCost": "Costo totale",
|
||||
"context.stats.sessionCreated": "Sessione creata",
|
||||
"context.stats.lastActivity": "Ultima attività",
|
||||
"context.usage.tokens": "Token",
|
||||
"context.usage.usage": "Utilizzo",
|
||||
"context.usage.cost": "Costo",
|
||||
"context.usage.clickToView": "Fai clic per visualizzare il contesto",
|
||||
"context.usage.view": "Visualizza l'utilizzo del contesto",
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Lingua",
|
||||
"toast.language.description": "Lingua impostata su {{language}}",
|
||||
"toast.theme.title": "Tema cambiato",
|
||||
"toast.scheme.title": "Combinazione di colori",
|
||||
"toast.workspace.enabled.title": "Aree di lavoro abilitate",
|
||||
"toast.workspace.enabled.description": "Nella barra laterale vengono ora visualizzati più worktree",
|
||||
"toast.workspace.disabled.title": "Aree di lavoro disabilitate",
|
||||
"toast.workspace.disabled.description": "Nella barra laterale viene mostrato solo il worktree principale",
|
||||
"toast.permissions.autoaccept.on.title": "Accettazione automatica delle autorizzazioni",
|
||||
"toast.permissions.autoaccept.on.description": "Le richieste di autorizzazione verranno approvate automaticamente",
|
||||
"toast.permissions.autoaccept.off.title": "Accettazione automatica delle autorizzazioni disattivata",
|
||||
"toast.permissions.autoaccept.off.description": "Le richieste di autorizzazione richiederanno l'approvazione",
|
||||
"toast.model.none.title": "Nessun modello selezionato",
|
||||
"toast.model.none.description": "Connetti un provider per riepilogare questa sessione",
|
||||
"toast.file.loadFailed.title": "Impossibile caricare il file",
|
||||
"toast.file.listFailed.title": "Impossibile elencare i file",
|
||||
"toast.context.noLineSelection.title": "Nessuna riga selezionata",
|
||||
"toast.context.noLineSelection.description": "Selezionare prima un intervallo di righe nella scheda di un file.",
|
||||
"toast.session.share.copyFailed.title": "Impossibile copiare l'URL negli appunti",
|
||||
"toast.session.share.success.title": "Sessione condivisa",
|
||||
"toast.session.share.success.description": "URL di condivisione copiato negli appunti",
|
||||
"toast.session.share.failed.title": "Impossibile condividere la sessione",
|
||||
"toast.session.share.failed.description": "Si è verificato un errore durante la condivisione della sessione",
|
||||
"toast.session.unshare.success.title": "Sessione non condivisa",
|
||||
"toast.session.unshare.success.description": "Condivisione della sessione annullata!",
|
||||
"toast.session.unshare.failed.title": "Impossibile annullare la condivisione della sessione",
|
||||
"toast.session.unshare.failed.description":
|
||||
"Si è verificato un errore durante l'annullamento della condivisione della sessione",
|
||||
"toast.session.listFailed.title": "Impossibile caricare le sessioni per {{project}}",
|
||||
"toast.project.reloadFailed.title": "Impossibile ricaricare {{project}}",
|
||||
"toast.update.title": "Aggiornamento disponibile",
|
||||
"toast.update.description": "Una nuova versione di OpenCode ({{version}}) è ora disponibile per l'installazione.",
|
||||
"toast.update.action.installRestart": "Installa e riavvia",
|
||||
"toast.update.action.notYet": "Non ancora",
|
||||
"error.page.title": "Qualcosa è andato storto",
|
||||
"error.page.description": "Si è verificato un errore durante il caricamento dell'applicazione.",
|
||||
"error.page.description.localServerStartup": "Si è verificato un errore durante l'avvio del server locale.",
|
||||
"error.page.details.label": "Dettagli errore",
|
||||
"error.page.action.restart": "Riavvia",
|
||||
"error.page.action.report": "Segnala errore",
|
||||
"error.page.action.reported": "Errore segnalato",
|
||||
"error.page.action.exportLogs": "Esporta log",
|
||||
"error.page.action.checking": "Controllo...",
|
||||
"error.page.action.checkUpdates": "Controlla gli aggiornamenti",
|
||||
"error.page.action.updateTo": "Aggiorna a {{version}}",
|
||||
"error.page.circular": "[Circular]",
|
||||
"error.page.report.prefix": "Segnala questo errore al team OpenCode",
|
||||
"error.page.report.discord": "su Discord",
|
||||
"error.page.version": "Versione: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"Elemento radice non trovato. Hai dimenticato di aggiungerlo al tuo index.html? O forse l'attributo id è stato scritto in modo errato?",
|
||||
"error.serverSync.connectFailed": "Impossibile connettersi al server. C'è un server in esecuzione a `{{url}}`?",
|
||||
"error.serverSDK.noServerAvailable": "Nessun server disponibile",
|
||||
"error.serverSDK.serverNotAvailable": "Server non disponibile",
|
||||
"error.childStore.persistedCacheCreateFailed": "Impossibile creare la cache persistente",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Impossibile creare metadati di progetto persistenti",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Impossibile creare l'icona del progetto persistente",
|
||||
"error.childStore.storeCreateFailed": "Impossibile creare lo store",
|
||||
"directory.error.invalidUrl": "Cartella non valida nell'URL.",
|
||||
"error.chain.unknown": "Errore sconosciuto",
|
||||
"error.server.invalidConfiguration": "Configurazione non valida",
|
||||
"error.chain.causedBy": "Causato da:",
|
||||
"error.chain.apiError": "Errore API",
|
||||
"error.chain.status": "Stato: {{status}}",
|
||||
"error.chain.retryable": "Nuovo tentativo possibile: {{retryable}}",
|
||||
"error.chain.responseBody": "Corpo della risposta:\n{{body}}",
|
||||
"error.chain.didYouMean": "Forse intendi: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Modello non trovato: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Controlla i nomi di provider e modelli nella configurazione (opencode.json)",
|
||||
"error.chain.mcpFailed":
|
||||
'Il server MCP "{{name}}" non ha funzionato. Nota: OpenCode non supporta ancora l\'autenticazione MCP.',
|
||||
"error.chain.providerAuthFailed": "Autenticazione del provider non riuscita ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Impossibile inizializzare il provider "{{provider}}". Controlla credenziali e configurazione.',
|
||||
"error.chain.configJsonInvalid": "Il file di configurazione in {{path}} non è valido JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage": "Il file di configurazione in {{path}} non è valido JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'La directory "{{dir}}" in {{path}} non è valida. Rinominare la directory in "{{suggestion}}" o rimuoverla. Questo è un errore di battitura comune.',
|
||||
"error.chain.configFrontmatterError": "Impossibile analizzare il frontmatter in {{path}}:\n{{message}}",
|
||||
"error.chain.configInvalid": "Il file di configurazione in {{path}} non è valido",
|
||||
"error.chain.configInvalidWithMessage": "Il file di configurazione in {{path}} non è valido: {{message}}",
|
||||
"notification.permission.title": "Autorizzazione richiesta",
|
||||
"notification.permission.description": "{{sessionTitle}} in {{projectName}} necessita dell'autorizzazione",
|
||||
"notification.question.title": "Domanda",
|
||||
"notification.question.description": "{{sessionTitle}} in {{projectName}} ha una domanda",
|
||||
"notification.action.goToSession": "Vai alla sessione",
|
||||
"notification.session.responseReady.title": "Risposta pronta",
|
||||
"notification.session.error.title": "Errore di sessione",
|
||||
"notification.session.error.fallbackDescription": "Si è verificato un errore",
|
||||
"home.recentProjects": "Progetti recenti",
|
||||
"home.empty.title": "Nessun progetto recente",
|
||||
"home.empty.description": "Inizia aprendo un progetto locale",
|
||||
"home.title": "Home",
|
||||
"home.projects": "Progetti",
|
||||
"home.project.add": "Aggiungi progetto",
|
||||
"home.recentlyClosed": "Chiusi di recente",
|
||||
"home.server.collapse": "Comprimi progetti server",
|
||||
"home.server.expand": "Espandi i progetti server",
|
||||
"home.sessions.search.placeholder": "Cerca sessioni",
|
||||
"home.sessions.search.placeholder.scoped": "Cerca sessioni in {{scope}}",
|
||||
"home.sessions.search.sessions": "Sessioni",
|
||||
"home.sessions.search.noResults": "Nessuna sessione trovata per {{query}}",
|
||||
"home.sessions.empty": "Ancora nessun elemento",
|
||||
"home.sessions.empty.description": "Crea una sessione per iniziare",
|
||||
"home.sessions.group.today": "Oggi",
|
||||
"home.sessions.group.yesterday": "Ieri",
|
||||
"home.sessions.group.older": "Meno recenti",
|
||||
"home.providerTip": "Connettiti a oltre 75 provider per utilizzare altri modelli, inclusi Claude, GPT, Gemini, ecc.",
|
||||
"session.tab.session": "Sessione",
|
||||
"session.tab.review": "Revisione",
|
||||
"session.tab.context": "Contesto",
|
||||
"session.tab.unknown": "Sessione sconosciuta",
|
||||
"session.panel.reviewAndFiles": "Revisione e file",
|
||||
"session.error.notFound": "Impossibile trovare questa sessione",
|
||||
"session.error.notFound.description": "Questa scheda punta a una sessione che non esiste più su questo server.",
|
||||
"session.error.notFound.closeTab": "Chiudi scheda",
|
||||
"session.error.serverConnection": "Impossibile connettersi a questo server",
|
||||
"session.review.filesChanged": "{{count}} file modificati",
|
||||
"session.review.change.one": "Modifica",
|
||||
"session.review.change.other": "Modifiche",
|
||||
"session.review.loadingChanges": "Caricamento modifiche...",
|
||||
"session.review.empty": "Nessuna modifica ancora in questa sessione",
|
||||
"session.review.noVcs": "Nessun sistema di controllo della versione Git rilevato, modifiche non visualizzate",
|
||||
"session.review.noVcs.createGit.title": "Crea un repository Git",
|
||||
"session.review.noVcs.createGit.description": "Tieni traccia, rivedi e annulla le modifiche in questo progetto",
|
||||
"session.review.noVcs.createGit.actionLoading": "Creazione del repository Git in corso...",
|
||||
"session.review.noVcs.createGit.action": "Crea un repository Git",
|
||||
"session.review.noSnapshot":
|
||||
"Il tracciamento degli snapshot è disabilitato nella configurazione, quindi le modifiche della sessione non sono disponibili",
|
||||
"session.review.noChanges": "Nessuna modifica",
|
||||
"session.review.noUncommittedChanges": "Ancora nessuna modifica senza commit",
|
||||
"session.review.noBranchChanges": "Ancora nessuna modifica del branch",
|
||||
"session.files.selectToOpen": "Seleziona un file da aprire",
|
||||
"session.files.all": "Tutti i file",
|
||||
"session.files.empty": "Nessun file",
|
||||
"session.files.binaryContent": "File binario (il contenuto non può essere visualizzato)",
|
||||
"session.messages.renderEarlier": "Visualizza i messaggi precedenti",
|
||||
"session.messages.loadingEarlier": "Caricamento dei messaggi precedenti...",
|
||||
"session.messages.loadEarlier": "Carica i messaggi precedenti",
|
||||
"session.messages.loading": "Caricamento messaggi...",
|
||||
"session.messages.jumpToLatest": "Vai all'ultimo",
|
||||
"session.context.addToContext": "Aggiungi {{selection}} al contesto",
|
||||
"session.todo.title": "Attività",
|
||||
"session.todo.collapse": "Comprimi",
|
||||
"session.todo.expand": "Espandi",
|
||||
"session.todo.progress": "{{done}} di {{total}} attività completate",
|
||||
"session.question.progress": "{{current}} di {{total}} domande",
|
||||
"session.question.minimize": "Riduci la domanda",
|
||||
"session.question.restore": "Ripristina la domanda",
|
||||
"session.question.pending.one": "{{count}} domanda in sospeso",
|
||||
"session.question.pending.many": "{{count}} di domande in sospeso",
|
||||
"session.question.pending.other": "{{count}} domande in sospeso",
|
||||
"session.followupDock.summary.one": "{{count}} messaggio in coda",
|
||||
"session.followupDock.summary.many": "{{count}} di messaggi in coda",
|
||||
"session.followupDock.summary.other": "{{count}} messaggi in coda",
|
||||
"session.followupDock.sendNow": "Invia ora",
|
||||
"session.followupDock.edit": "Modifica",
|
||||
"session.followupDock.collapse": "Comprimi i messaggi in coda",
|
||||
"session.followupDock.expand": "Espandi i messaggi in coda",
|
||||
"session.revertDock.summary.one": "{{count}} messaggio annullato",
|
||||
"session.revertDock.summary.many": "{{count}} di messaggi annullati",
|
||||
"session.revertDock.summary.other": "{{count}} messaggi annullati",
|
||||
"session.revertDock.collapse": "Comprimi i messaggi annullati",
|
||||
"session.revertDock.expand": "Espandi i messaggi annullati",
|
||||
"session.revertDock.restore": "Ripristina il messaggio",
|
||||
"session.new.title": "Crea qualsiasi cosa",
|
||||
"session.new.project.new": "Nuovo progetto",
|
||||
"session.new.project.search": "Cerca progetti",
|
||||
"session.new.project.add": "Aggiungi progetto",
|
||||
"session.new.worktree.main": "Branch principale",
|
||||
"session.new.worktree.mainWithBranch": "Branch principale ({{branch}})",
|
||||
"session.new.worktree.create": "Crea un nuovo worktree",
|
||||
"session.new.workspace.runIn": "Esegui la sessione in",
|
||||
"session.new.workspace.triggerLocal": "Locale",
|
||||
"session.new.workspace.local": "Repository locale",
|
||||
"session.new.workspace.existing": "Area di lavoro...",
|
||||
"session.new.git.none": "Senza Git",
|
||||
"session.new.lastModified": "Ultima modifica",
|
||||
"session.header.search.placeholder": "Cerca {{project}}",
|
||||
"session.header.searchFiles": "Cerca file",
|
||||
"session.header.openIn": "Apri in",
|
||||
"session.header.open.action": "Apri {{app}}",
|
||||
"session.header.open.ariaLabel": "Apri in {{app}}",
|
||||
"session.header.open.menu": "Opzioni di apertura",
|
||||
"session.header.open.copyPath": "Copia percorso",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Esplora file",
|
||||
"session.header.open.fileManager": "Gestore file",
|
||||
"session.header.reveal.finder": "Mostra nel Finder",
|
||||
"session.header.reveal.fileExplorer": "Mostra in Esplora file",
|
||||
"session.header.reveal.containingFolder": "Apri la cartella contenente",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminale",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "Stato",
|
||||
"status.popover.ariaLabel": "Configurazioni del server",
|
||||
"status.popover.tab.servers": "Server",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Plugin",
|
||||
"status.popover.action.manageServers": "Gestisci server",
|
||||
"session.share.popover.title": "Pubblica sul web",
|
||||
"session.share.popover.description.shared":
|
||||
"Questa sessione è pubblica sul web. È accessibile a chiunque abbia il collegamento.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Condividi la sessione pubblicamente sul web. Sarà accessibile a chiunque abbia il collegamento.",
|
||||
"session.share.action.share": "Condividi",
|
||||
"session.share.action.publish": "Pubblica",
|
||||
"session.share.action.publishing": "Pubblicazione...",
|
||||
"session.share.action.unpublish": "Annulla pubblicazione",
|
||||
"session.share.action.unpublishing": "Annullamento della pubblicazione...",
|
||||
"session.share.action.view": "Visualizza",
|
||||
"session.share.copy.copied": "Copiato",
|
||||
"session.share.copy.copyLink": "Copia collegamento",
|
||||
"lsp.tooltip.none": "Nessun server LSP",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Caricamento del prompt...",
|
||||
"terminal.loading": "Caricamento terminale...",
|
||||
"terminal.title": "Terminale",
|
||||
"terminal.title.numbered": "Terminale {{number}}",
|
||||
"terminal.close": "Chiudi il terminale",
|
||||
"terminal.connectionLost.title": "Connessione persa",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket chiuso in modo anomalo: {{code}}",
|
||||
"terminal.connectionLost.description":
|
||||
"La connessione del terminale è stata interrotta. Ciò può verificarsi al riavvio del server.",
|
||||
"common.closeTab": "Chiudi scheda",
|
||||
"common.dismiss": "Ignora",
|
||||
"common.moreCountSuffix": " (+ altri {{count}})",
|
||||
"common.requestFailed": "Richiesta non riuscita",
|
||||
"common.moreOptions": "Altre opzioni",
|
||||
"common.learnMore": "Saperne di più",
|
||||
"common.rename": "Rinomina",
|
||||
"common.reset": "Ripristina",
|
||||
"common.archive": "Archivia",
|
||||
"common.delete": "Elimina",
|
||||
"common.close": "Chiudi",
|
||||
"common.edit": "Modifica",
|
||||
"common.loadMore": "Carica altri elementi",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Maiusc",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Spazio",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Invio",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Canc",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "Fine",
|
||||
"common.key.pageUp": "Pag su",
|
||||
"common.key.pageDown": "Pag giù",
|
||||
"common.key.insert": "Ins",
|
||||
"common.unknown": "sconosciuto",
|
||||
"common.time.justNow": "Adesso",
|
||||
"common.time.minutesAgo.short": "{{count}}m fa",
|
||||
"common.time.hoursAgo.short": "{{count}}h fa",
|
||||
"common.time.daysAgo.short": "{{count}}d fa",
|
||||
"sidebar.menu.toggle": "Mostra o nascondi il menu",
|
||||
"sidebar.nav.projectsAndSessions": "Progetti e sessioni",
|
||||
"sidebar.settings": "Impostazioni",
|
||||
"sidebar.help": "Aiuto",
|
||||
"sidebar.workspaces.enable": "Abilita aree di lavoro",
|
||||
"sidebar.workspaces.disable": "Disabilita aree di lavoro",
|
||||
"sidebar.gettingStarted.title": "Introduzione",
|
||||
"sidebar.gettingStarted.line1": "OpenCode include modelli gratuiti così puoi iniziare immediatamente.",
|
||||
"sidebar.gettingStarted.line2": "Connetti un provider per usare altri modelli, tra cui Claude, GPT, Gemini e altri.",
|
||||
"sidebar.project.recentSessions": "Sessioni recenti",
|
||||
"sidebar.project.viewAllSessions": "Visualizza tutte le sessioni",
|
||||
"sidebar.project.clearNotifications": "Cancella notifiche",
|
||||
"sidebar.empty.title": "Nessun progetto aperto",
|
||||
"sidebar.empty.description": "Apri un progetto per iniziare",
|
||||
"debugBar.ariaLabel": "Diagnostica delle prestazioni di sviluppo",
|
||||
"debugBar.na": "n/d",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Ultima transizione completata relativa a una pagina di sessione, misurata dall'avvio del router fino al primo rendering dopo la stabilizzazione.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Media mobile dei fotogrammi al secondo negli ultimi 5 secondi.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Tempo di rendering del fotogramma peggiore negli ultimi 5 secondi.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Fotogrammi con durata superiore a 32 ms negli ultimi 5 secondi.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip":
|
||||
"Tempo bloccato e numero di attività lunghe negli ultimi 5 secondi. Attività più lunga: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Peggiore ritardo di risposta all'input osservato negli ultimi 5 secondi.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Durata approssimativa dell'interazione negli ultimi 5 secondi. È una misura simile a INP, non l'INP ufficiale di Web Vitals.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Spostamento cumulativo del layout per la durata corrente dell'app.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Heap JS utilizzato rispetto al limite dell'heap. Solo Chromium.",
|
||||
"debugBar.mem.tip": "Heap JS utilizzato rispetto al limite dell'heap. {{used}} di {{limit}}.",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Desktop",
|
||||
"settings.section.server": "Server",
|
||||
"settings.tab.general": "Generale",
|
||||
"settings.tab.shortcuts": "Scorciatoie",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "Integrazione WSL",
|
||||
"settings.desktop.wsl.description": "Esegui il server OpenCode all'interno di WSL su Windows.",
|
||||
"settings.general.section.appearance": "Aspetto",
|
||||
"settings.general.section.advanced": "Avanzato",
|
||||
"settings.general.section.notifications": "Notifiche di sistema",
|
||||
"settings.general.section.updates": "Aggiornamenti",
|
||||
"settings.general.section.sounds": "Effetti sonori",
|
||||
"settings.general.section.feed": "Feed",
|
||||
"settings.general.section.display": "Visualizzazione",
|
||||
"settings.general.row.language.title": "Lingua",
|
||||
"settings.general.row.language.description": "Cambia la lingua di visualizzazione per OpenCode",
|
||||
"settings.general.row.shell.title": "Shell del terminale",
|
||||
"settings.general.row.shell.description": "Shell utilizzata dal terminale e dagli strumenti dell'agente",
|
||||
"settings.general.row.shell.autoDefault": "Automatico (predefinito)",
|
||||
"settings.general.row.shell.terminalOnly": "solo terminale",
|
||||
"settings.general.row.appearance.title": "Aspetto",
|
||||
"settings.general.row.appearance.description": "Personalizza l'aspetto di OpenCode sul tuo dispositivo",
|
||||
"settings.general.row.colorScheme.title": "Combinazione di colori",
|
||||
"settings.general.row.colorScheme.description": "Scegli se OpenCode segue il tema di sistema, chiaro o scuro",
|
||||
"settings.general.row.theme.title": "Tema",
|
||||
"settings.general.row.theme.description": "Personalizza il tema di OpenCode.",
|
||||
"settings.general.row.font.title": "Carattere del codice",
|
||||
"settings.general.row.font.description": "Personalizza il carattere utilizzato nei blocchi di codice",
|
||||
"settings.general.row.terminalFont.title": "Carattere terminale",
|
||||
"settings.general.row.terminalFont.description": "Personalizza il carattere utilizzato nel terminale",
|
||||
"settings.general.row.uiFont.title": "Carattere dell'interfaccia utente",
|
||||
"settings.general.row.uiFont.description": "Personalizza il carattere utilizzato nell'interfaccia",
|
||||
"settings.general.row.followup.title": "Gestione dei prompt successivi",
|
||||
"settings.general.row.followup.description": "Scegli se i prompt successivi intervengono subito o attendono in coda",
|
||||
"settings.general.row.followup.option.queue": "Coda",
|
||||
"settings.general.row.followup.option.steer": "Intervieni subito",
|
||||
"settings.general.row.showFileTree.title": "Albero dei file",
|
||||
"settings.general.row.showFileTree.description": "Mostra il pannello dell'albero dei file nelle sessioni",
|
||||
"settings.general.row.showNavigation.title": "Controlli di navigazione",
|
||||
"settings.general.row.showNavigation.description":
|
||||
"Mostra i pulsanti Avanti e Indietro nella barra del titolo del desktop",
|
||||
"settings.general.row.showSearch.title": "Palette dei comandi",
|
||||
"settings.general.row.showSearch.description":
|
||||
"Mostra il pulsante di ricerca e della palette dei comandi nella barra del titolo",
|
||||
"settings.general.row.showTerminal.title": "Terminale",
|
||||
"settings.general.row.showTerminal.description":
|
||||
"Mostra il pulsante del terminale nella barra del titolo del desktop",
|
||||
"settings.general.row.showStatus.title": "Stato del server",
|
||||
"settings.general.row.showStatus.description": "Mostra il pulsante di stato del server nella barra del titolo",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigazione in basso",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Posiziona la barra del titolo e le schede della sessione nella parte inferiore dello schermo sul dispositivo mobile",
|
||||
"settings.general.row.showCustomAgents.title": "Mostra agente",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Passa da un agente all'altro nel campo di composizione. Se nascosto, viene usato l'agente Build.",
|
||||
"settings.general.row.reasoningSummaries.title": "Mostra riassunti del ragionamento",
|
||||
"settings.general.row.reasoningSummaries.description":
|
||||
"Visualizza i riepiloghi del ragionamento del modello nella sequenza temporale",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Espandi le parti dello strumento Shell",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Mostra le parti dello strumento Shell espanse per impostazione predefinita nella sequenza temporale",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Espandi le parti dello strumento di modifica",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Mostra le parti degli strumenti di modifica, scrittura e patch espanse per impostazione predefinita nella sequenza temporale",
|
||||
"settings.general.row.newInterface.title": "Nuova disposizione",
|
||||
"settings.general.row.newInterface.badge": "Nuovo",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Utilizza le nuove schede e il layout della home page. Passa da un layout all'altro per un periodo limitato.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Ora stai utilizzando il nuovo layout",
|
||||
"settings.general.row.newInterfaceNotice.description": "Il layout precedente non è più disponibile",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Ignora",
|
||||
"settings.general.row.pinchZoom.title": "Pizzica per ingrandire",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Consenti i gesti di pizzicamento del trackpad e di scorrimento Ctrl per eseguire lo zoom",
|
||||
"settings.general.row.wayland.title": "Usa Wayland nativo",
|
||||
"settings.general.row.wayland.description": "Disabilita il fallback X11 su Wayland. Richiede il riavvio.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Su Linux con monitor dalle diverse frequenze di aggiornamento, Wayland nativo può essere più stabile.",
|
||||
"settings.general.row.releaseNotes.title": "Note sulla versione",
|
||||
"settings.general.row.releaseNotes.description": "Mostra i popup Novità dopo gli aggiornamenti",
|
||||
"settings.updates.row.startup.title": "Controlla gli aggiornamenti all'avvio",
|
||||
"settings.updates.row.startup.description": "Controlla automaticamente gli aggiornamenti all'avvio di OpenCode",
|
||||
"settings.updates.row.check.title": "Controlla gli aggiornamenti",
|
||||
"settings.updates.row.check.description": "Controlla manualmente gli aggiornamenti e installali se disponibili",
|
||||
"settings.updates.action.checkNow": "Controlla ora",
|
||||
"settings.updates.action.checking": "Controllo...",
|
||||
"settings.updates.action.downloading": "Download in corso...",
|
||||
"settings.updates.action.installing": "Installazione...",
|
||||
"settings.updates.toast.latest.title": "OpenCode è aggiornato",
|
||||
"settings.updates.toast.latest.description": "Stai utilizzando l'ultima versione di OpenCode.",
|
||||
"sound.option.none": "Nessuno",
|
||||
"sound.option.alert01": "Avviso 01",
|
||||
"sound.option.alert02": "Avviso 02",
|
||||
"sound.option.alert03": "Avviso 03",
|
||||
"sound.option.alert04": "Avviso 04",
|
||||
"sound.option.alert05": "Avviso 05",
|
||||
"sound.option.alert06": "Avviso 06",
|
||||
"sound.option.alert07": "Avviso 07",
|
||||
"sound.option.alert08": "Avviso 08",
|
||||
"sound.option.alert09": "Avviso 09",
|
||||
"sound.option.alert10": "Avviso 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "No 01",
|
||||
"sound.option.nope02": "No 02",
|
||||
"sound.option.nope03": "No 03",
|
||||
"sound.option.nope04": "No 04",
|
||||
"sound.option.nope05": "No 05",
|
||||
"sound.option.nope06": "No 06",
|
||||
"sound.option.nope07": "No 07",
|
||||
"sound.option.nope08": "No 08",
|
||||
"sound.option.nope09": "No 09",
|
||||
"sound.option.nope10": "No 10",
|
||||
"sound.option.nope11": "No 11",
|
||||
"sound.option.nope12": "No 12",
|
||||
"sound.option.yup01": "Sì 01",
|
||||
"sound.option.yup02": "Sì 02",
|
||||
"sound.option.yup03": "Sì 03",
|
||||
"sound.option.yup04": "Sì 04",
|
||||
"sound.option.yup05": "Sì 05",
|
||||
"sound.option.yup06": "Sì 06",
|
||||
"settings.general.notifications.agent.title": "Agente",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Mostra una notifica di sistema quando l'agente ha terminato o richiede attenzione",
|
||||
"settings.general.notifications.permissions.title": "Autorizzazioni",
|
||||
"settings.general.notifications.permissions.description":
|
||||
"Mostra la notifica di sistema quando è richiesta un'autorizzazione",
|
||||
"settings.general.notifications.errors.title": "Errori",
|
||||
"settings.general.notifications.errors.description": "Mostra la notifica di sistema quando si verifica un errore",
|
||||
"settings.general.sounds.agent.title": "Agente",
|
||||
"settings.general.sounds.agent.description": "Riproduci un suono quando l'agente ha terminato o richiede attenzione",
|
||||
"settings.general.sounds.permissions.title": "Autorizzazioni",
|
||||
"settings.general.sounds.permissions.description": "Riproduci l'audio quando è richiesta un'autorizzazione",
|
||||
"settings.general.sounds.errors.title": "Errori",
|
||||
"settings.general.sounds.errors.description": "Riproduci un suono quando si verifica un errore",
|
||||
"settings.shortcuts.title": "Scorciatoie da tastiera",
|
||||
"settings.shortcuts.reset.button": "Ripristina le impostazioni predefinite",
|
||||
"settings.shortcuts.reset.toast.title": "Scorciatoie ripristinate",
|
||||
"settings.shortcuts.reset.toast.description":
|
||||
"Le scorciatoie da tastiera sono state ripristinate ai valori predefiniti.",
|
||||
"settings.shortcuts.conflict.title": "Scorciatoia già in uso",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} è già assegnato a {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Non assegnato",
|
||||
"settings.shortcuts.pressKeys": "Premi i tasti",
|
||||
"settings.shortcuts.search.placeholder": "Cerca scorciatoie",
|
||||
"settings.shortcuts.search.empty": "Nessuna scorciatoia trovata",
|
||||
"settings.shortcuts.group.general": "Generale",
|
||||
"settings.shortcuts.group.session": "Sessione",
|
||||
"settings.shortcuts.group.navigation": "Navigazione",
|
||||
"settings.shortcuts.group.modelAndAgent": "Modello e agente",
|
||||
"settings.shortcuts.group.terminal": "Terminale",
|
||||
"settings.shortcuts.group.prompt": "Prompt",
|
||||
"settings.providers.title": "Provider",
|
||||
"settings.providers.description": "Le impostazioni dei provider saranno configurabili qui.",
|
||||
"settings.providers.section.connected": "Provider connessi",
|
||||
"settings.providers.connected.empty": "Nessun provider connesso",
|
||||
"settings.providers.connected.environmentDescription": "Connesso tramite le variabili di ambiente",
|
||||
"settings.providers.section.popular": "Provider più diffusi",
|
||||
"settings.providers.custom.description": "Aggiungi un provider compatibile con OpenAI tramite l'URL di base.",
|
||||
"settings.providers.tag.environment": "Ambiente",
|
||||
"settings.providers.tag.config": "Configurazione",
|
||||
"settings.providers.tag.custom": "Personalizzato",
|
||||
"settings.providers.tag.other": "Altro",
|
||||
"settings.models.title": "Modelli",
|
||||
"settings.models.description": "Le impostazioni del modello saranno configurabili qui.",
|
||||
"settings.agents.title": "Agenti",
|
||||
"settings.agents.description": "Le impostazioni dell'agente saranno configurabili qui.",
|
||||
"settings.commands.title": "Comandi",
|
||||
"settings.commands.description": "Le impostazioni dei comandi saranno configurabili qui.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "Le impostazioni MCP saranno configurabili qui.",
|
||||
"settings.permissions.title": "Autorizzazioni",
|
||||
"settings.permissions.description":
|
||||
"Controlla quali strumenti può utilizzare il server per impostazione predefinita.",
|
||||
"settings.permissions.section.tools": "Strumenti",
|
||||
"settings.permissions.toast.updateFailed.title": "Impossibile aggiornare le autorizzazioni",
|
||||
"settings.permissions.action.allow": "Consenti",
|
||||
"settings.permissions.action.ask": "Chiedi",
|
||||
"settings.permissions.action.deny": "Nega",
|
||||
"settings.permissions.tool.read.title": "Lettura",
|
||||
"settings.permissions.tool.read.description": "Lettura di un file (corrisponde al percorso del file)",
|
||||
"settings.permissions.tool.edit.title": "Modifica",
|
||||
"settings.permissions.tool.edit.description": "Modifica file, incluse modifiche, scritture e patch",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Trova corrispondenze tra file usando pattern glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Cerca il contenuto del file utilizzando le espressioni regolari",
|
||||
"settings.permissions.tool.list.title": "Elenco",
|
||||
"settings.permissions.tool.list.description": "Elenca i file all'interno di una directory",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Esegui i comandi della shell",
|
||||
"settings.permissions.tool.task.title": "Attività",
|
||||
"settings.permissions.tool.task.description": "Avvia subagenti",
|
||||
"settings.permissions.tool.skill.title": "Skill",
|
||||
"settings.permissions.tool.skill.description": "Carica una skill in base al nome",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Esegui query sul server di linguaggio",
|
||||
"settings.permissions.tool.todowrite.title": "Scrittura attività",
|
||||
"settings.permissions.tool.todowrite.description": "Aggiorna l'elenco delle attività",
|
||||
"settings.permissions.tool.webfetch.title": "Recupero dal web",
|
||||
"settings.permissions.tool.webfetch.description": "Recupera contenuto da un URL",
|
||||
"settings.permissions.tool.websearch.title": "Ricerca sul web",
|
||||
"settings.permissions.tool.websearch.description": "Cerca sul web",
|
||||
"settings.permissions.tool.external_directory.title": "Directory esterna",
|
||||
"settings.permissions.tool.external_directory.description": "Accedi ai file all'esterno della directory del progetto",
|
||||
"settings.permissions.tool.doom_loop.title": "Ciclo ripetitivo",
|
||||
"settings.permissions.tool.doom_loop.description": "Rileva chiamate ripetute di strumenti con input identico",
|
||||
"session.delete.failed.title": "Impossibile eliminare la sessione",
|
||||
"session.delete.title": "Elimina sessione",
|
||||
"session.delete.confirm": 'Eliminare la sessione "{{name}}"?',
|
||||
"session.delete.button": "Elimina sessione",
|
||||
"workspace.new": "Nuova area di lavoro",
|
||||
"workspace.type.local": "locale",
|
||||
"workspace.type.sandbox": "sandbox",
|
||||
"workspace.create.failed.title": "Impossibile creare l'area di lavoro",
|
||||
"workspace.delete.failed.title": "Impossibile eliminare l'area di lavoro",
|
||||
"workspace.resetting.title": "Reimpostazione dell'area di lavoro",
|
||||
"workspace.resetting.description": "L'operazione potrebbe richiedere un minuto.",
|
||||
"workspace.reset.failed.title": "Impossibile reimpostare l'area di lavoro",
|
||||
"workspace.reset.success.title": "Area di lavoro reimpostata",
|
||||
"workspace.reset.success.description": "L'area di lavoro ora corrisponde al branch predefinito.",
|
||||
"workspace.error.stillPreparing": "L'area di lavoro è ancora in preparazione",
|
||||
"workspace.status.checking": "Verifica delle modifiche non integrate in corso...",
|
||||
"workspace.status.error": "Impossibile verificare lo stato di Git.",
|
||||
"workspace.status.clean": "Nessuna modifica non integrata rilevata.",
|
||||
"workspace.status.dirty": "Modifiche non integrate rilevate in quest'area di lavoro.",
|
||||
"workspace.delete.title": "Elimina l'area di lavoro",
|
||||
"workspace.delete.confirm": 'Eliminare l\'area di lavoro "{{name}}"?',
|
||||
"workspace.delete.button": "Elimina l'area di lavoro",
|
||||
"workspace.reset.title": "Reimposta l'area di lavoro",
|
||||
"workspace.reset.confirm": 'Reimpostare l\'area di lavoro "{{name}}"?',
|
||||
"workspace.reset.button": "Reimposta l'area di lavoro",
|
||||
"workspace.reset.archived.none": "Nessuna sessione attiva verrà archiviata.",
|
||||
"workspace.reset.archived.one": "1 sessione verrà archiviata.",
|
||||
"workspace.reset.archived.many": "Verranno archiviate {{count}} sessioni.",
|
||||
"workspace.reset.note": "L'area di lavoro verrà reimpostata in modo che corrisponda al branch predefinito.",
|
||||
}
|
||||
+17
-25
@@ -94,14 +94,13 @@ export const dict = {
|
||||
"dialog.provider.empty": "プロバイダーが見つかりません",
|
||||
"dialog.provider.group.popular": "人気",
|
||||
"dialog.provider.group.other": "その他",
|
||||
"dialog.provider.custom.label": "OpenAI互換のカスタムプロバイダー",
|
||||
"dialog.provider.tag.recommended": "推奨",
|
||||
"dialog.provider.opencode.note": "Claude, GPT, Geminiなどを含む厳選されたモデル",
|
||||
"dialog.provider.opencode.tagline": "信頼性の高い最適化モデル",
|
||||
"dialog.provider.opencodeGo.tagline": "すべての人に低価格のサブスクリプション",
|
||||
"dialog.provider.anthropic.note": "ProやMaxを含むClaudeモデルに直接アクセス",
|
||||
"dialog.provider.copilot.note": "GitHub Copilotを通じてコーディングを支援するAIモデル",
|
||||
"dialog.provider.openai.note": "高速で高性能な汎用AIタスク向けのGPTモデル",
|
||||
"dialog.provider.anthropic.note": "Claude Pro/MaxまたはAPIキーで接続",
|
||||
"dialog.provider.copilot.note": "CopilotまたはAPIキーで接続",
|
||||
"dialog.provider.openai.note": "ChatGPT Pro/PlusまたはAPIキーで接続",
|
||||
"dialog.provider.google.note": "高速で構造化された応答のためのGeminiモデル",
|
||||
"dialog.provider.openrouter.note": "1つのプロバイダーからすべてのサポートされているモデルにアクセス",
|
||||
"dialog.provider.vercel.note": "スマートルーターによるAIモデルへの統合アクセス",
|
||||
@@ -113,7 +112,6 @@ export const dict = {
|
||||
"dialog.model.manage.provider.toggle": "すべての{{provider}}モデルを切り替え",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCodeが提供する無料モデル",
|
||||
"dialog.model.unpaid.addMore.title": "人気のプロバイダーからモデルを追加",
|
||||
"dialog.model.unpaid.viewMoreProviders": "その他70以上のプロバイダーを見る",
|
||||
"dialog.provider.viewAll": "さらにプロバイダーを表示",
|
||||
"provider.connect.title": "{{provider}}を接続",
|
||||
"provider.connect.title.anthropicProMax": "Claude Pro/Maxでログイン",
|
||||
@@ -197,7 +195,7 @@ export const dict = {
|
||||
"model.input.image": "画像",
|
||||
"model.input.audio": "音声",
|
||||
"model.input.video": "動画",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "対応: {{inputs}}",
|
||||
"model.tooltip.context.label": "コンテキスト",
|
||||
"model.tooltip.inputs": "入力",
|
||||
@@ -216,7 +214,7 @@ export const dict = {
|
||||
"common.clear": "クリア",
|
||||
"common.connect": "接続",
|
||||
"common.disconnect": "切断",
|
||||
"common.continue": "続行",
|
||||
"common.continue": "送信",
|
||||
"common.submit": "送信",
|
||||
"common.save": "保存",
|
||||
"common.saving": "保存中...",
|
||||
@@ -260,7 +258,7 @@ export const dict = {
|
||||
"prompt.popover.emptyResults": "一致する結果がありません",
|
||||
"prompt.popover.emptyCommands": "一致するコマンドがありません",
|
||||
"prompt.dropzone.label": "画像、PDF、またはテキストファイルをここにドロップしてください",
|
||||
"prompt.dropzone.file.label": "ドロップしてファイルを@メンション",
|
||||
"prompt.dropzone.file.label": "ドロップして@メンションファイルを追加",
|
||||
"prompt.slash.badge.custom": "カスタム",
|
||||
"prompt.slash.badge.skill": "スキル",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
@@ -278,7 +276,6 @@ export const dict = {
|
||||
"prompt.action.send": "送信",
|
||||
"prompt.action.stop": "停止",
|
||||
"prompt.toast.pasteUnsupported.title": "サポートされていない添付ファイル",
|
||||
"prompt.toast.attachmentDuplicate.title": "このファイルはすでにアップロードされています",
|
||||
"prompt.toast.pasteUnsupported.description": "画像、PDF、またはテキストファイルのみ添付できます。",
|
||||
"prompt.toast.modelAgentRequired.title": "エージェントとモデルを選択",
|
||||
"prompt.toast.modelAgentRequired.description": "プロンプトを送信する前にエージェントとモデルを選択してください。",
|
||||
@@ -569,7 +566,7 @@ export const dict = {
|
||||
"session.error.notFound.description": "このタブが参照するセッションは、このサーバーには存在しません。",
|
||||
"session.error.notFound.closeTab": "タブを閉じる",
|
||||
"session.error.serverConnection": "このサーバーに接続できません",
|
||||
"session.review.filesChanged": "変更されたファイル: {{count}}件",
|
||||
"session.review.filesChanged": "{{count}} ファイル変更",
|
||||
"session.review.change.one": "変更",
|
||||
"session.review.change.other": "変更",
|
||||
"session.review.loadingChanges": "変更を読み込み中...",
|
||||
@@ -659,10 +656,10 @@ export const dict = {
|
||||
"ターミナルの接続が中断されました。これはサーバーが再起動したときに発生することがあります。",
|
||||
"common.closeTab": "タブを閉じる",
|
||||
"common.dismiss": "閉じる",
|
||||
"common.requestFailed": "リクエストに失敗しました",
|
||||
"common.requestFailed": "リクエスト失敗",
|
||||
"common.moreOptions": "その他のオプション",
|
||||
"common.learnMore": "詳細",
|
||||
"common.rename": "名前を変更",
|
||||
"common.rename": "名前変更",
|
||||
"common.reset": "リセット",
|
||||
"common.archive": "アーカイブ",
|
||||
"common.delete": "削除",
|
||||
@@ -736,9 +733,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "下部ナビゲーション",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"モバイルではタイトルバーとセッションタブを画面下部に配置します",
|
||||
"settings.general.row.showCustomAgents.title": "エージェントを表示",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"コンポーザーでエージェントを切り替えます。非表示の場合は、デフォルトでBuildエージェントが使用されます。",
|
||||
"settings.general.row.showCustomAgents.title": "カスタムエージェント",
|
||||
"settings.general.row.showCustomAgents.description": "コンポーザーにエージェント選択を表示します",
|
||||
"settings.general.row.reasoningSummaries.title": "推論の要約を表示",
|
||||
"settings.general.row.reasoningSummaries.description": "タイムラインにモデルの推論の要約を表示します",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "shell ツールパーツを展開",
|
||||
@@ -849,7 +845,7 @@ export const dict = {
|
||||
"settings.shortcuts.group.terminal": "ターミナル",
|
||||
"settings.shortcuts.group.prompt": "プロンプト",
|
||||
"settings.providers.title": "プロバイダー",
|
||||
"settings.providers.description": "プロバイダー設定は今後ここで構成できるようになります。",
|
||||
"settings.providers.description": "プロバイダー設定はここで構成できます。",
|
||||
"settings.providers.section.connected": "接続済みプロバイダー",
|
||||
"settings.providers.connected.empty": "接続済みプロバイダーはありません",
|
||||
"settings.providers.section.popular": "人気のプロバイダー",
|
||||
@@ -858,13 +854,13 @@ export const dict = {
|
||||
"settings.providers.tag.custom": "カスタム",
|
||||
"settings.providers.tag.other": "その他",
|
||||
"settings.models.title": "モデル",
|
||||
"settings.models.description": "モデル設定は今後ここで構成できるようになります。",
|
||||
"settings.models.description": "モデル設定はここで構成できます。",
|
||||
"settings.agents.title": "エージェント",
|
||||
"settings.agents.description": "エージェント設定は今後ここで構成できるようになります。",
|
||||
"settings.agents.description": "エージェント設定はここで構成できます。",
|
||||
"settings.commands.title": "コマンド",
|
||||
"settings.commands.description": "コマンド設定は今後ここで構成できるようになります。",
|
||||
"settings.commands.description": "コマンド設定はここで構成できます。",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP設定は今後ここで構成できるようになります。",
|
||||
"settings.mcp.description": "MCP設定はここで構成できます。",
|
||||
"settings.permissions.title": "権限",
|
||||
"settings.permissions.description": "サーバーがデフォルトで使用できるツールを制御します。",
|
||||
"settings.permissions.section.tools": "ツール",
|
||||
@@ -958,9 +954,6 @@ export const dict = {
|
||||
"session.question.progress": "{{total}} 問中 {{current}} 問",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "エクスプローラー",
|
||||
"session.header.reveal.finder": "Finderで表示",
|
||||
"session.header.reveal.fileExplorer": "エクスプローラーで表示",
|
||||
"session.header.reveal.containingFolder": "親フォルダーを開く",
|
||||
"session.header.open.fileManager": "ファイルマネージャー",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -978,8 +971,7 @@ export const dict = {
|
||||
"debugBar.ariaLabel": "開発パフォーマンス診断",
|
||||
"debugBar.na": "n/a",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"セッションページに関係する最後に完了したルート遷移。ルーターの開始から処理完了後の最初の描画までを測定。",
|
||||
"debugBar.nav.tip": "セッションページに触れる最後に完了したルート遷移。ルーター開始から安定後の最初の描画まで測定。",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "過去5秒間のローリングフレーム/秒。",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
|
||||
+23
-30
@@ -19,7 +19,7 @@ export const dict = {
|
||||
"theme.scheme.system": "시스템",
|
||||
"theme.scheme.light": "라이트",
|
||||
"theme.scheme.dark": "다크",
|
||||
"command.sidebar.toggle": "사이드바 표시/숨기기",
|
||||
"command.sidebar.toggle": "사이드바 토글",
|
||||
"command.project.open": "프로젝트 열기",
|
||||
"command.provider.connect": "공급자 연결",
|
||||
"command.server.switch": "서버 전환",
|
||||
@@ -42,12 +42,12 @@ export const dict = {
|
||||
"command.context.addSelection": "선택 영역을 컨텍스트에 추가",
|
||||
"command.context.addSelection.description": "현재 파일에서 선택한 줄을 추가",
|
||||
"command.input.focus": "입력창 포커스",
|
||||
"command.terminal.toggle": "터미널 표시/숨기기",
|
||||
"command.fileTree.toggle": "파일 트리 표시/숨기기",
|
||||
"command.review.toggle": "검토 표시/숨기기",
|
||||
"command.terminal.toggle": "터미널 토글",
|
||||
"command.fileTree.toggle": "파일 트리 토글",
|
||||
"command.review.toggle": "검토 토글",
|
||||
"command.terminal.new": "새 터미널",
|
||||
"command.terminal.new.description": "새 터미널 탭 생성",
|
||||
"command.steps.toggle": "단계 표시/숨기기",
|
||||
"command.steps.toggle": "단계 토글",
|
||||
"command.steps.toggle.description": "현재 메시지의 단계 표시/숨기기",
|
||||
"command.message.previous": "이전 메시지",
|
||||
"command.message.previous.description": "이전 사용자 메시지로 이동",
|
||||
@@ -55,8 +55,8 @@ export const dict = {
|
||||
"command.message.next.description": "다음 사용자 메시지로 이동",
|
||||
"command.model.choose": "모델 선택",
|
||||
"command.model.choose.description": "다른 모델 선택",
|
||||
"command.mcp.toggle": "MCP 전환",
|
||||
"command.mcp.toggle.description": "MCP 전환",
|
||||
"command.mcp.toggle": "MCP 토글",
|
||||
"command.mcp.toggle.description": "MCP 토글",
|
||||
"command.agent.cycle": "에이전트 순환",
|
||||
"command.agent.cycle.description": "다음 에이전트로 전환",
|
||||
"command.agent.cycle.reverse": "에이전트 역순환",
|
||||
@@ -90,14 +90,13 @@ export const dict = {
|
||||
"dialog.provider.empty": "공급자 없음",
|
||||
"dialog.provider.group.popular": "인기",
|
||||
"dialog.provider.group.other": "기타",
|
||||
"dialog.provider.custom.label": "OpenAI 호환 사용자 지정 공급자",
|
||||
"dialog.provider.tag.recommended": "추천",
|
||||
"dialog.provider.opencode.note": "Claude, GPT, Gemini 등을 포함한 엄선된 모델",
|
||||
"dialog.provider.opencode.tagline": "신뢰할 수 있는 최적화 모델",
|
||||
"dialog.provider.opencodeGo.tagline": "모두를 위한 저렴한 구독",
|
||||
"dialog.provider.anthropic.note": "Pro 및 Max를 포함한 Claude 모델에 직접 액세스",
|
||||
"dialog.provider.copilot.note": "GitHub Copilot을 통한 코딩 지원용 AI 모델",
|
||||
"dialog.provider.openai.note": "빠르고 강력한 범용 AI 작업을 위한 GPT 모델",
|
||||
"dialog.provider.anthropic.note": "Claude Pro/Max 또는 API 키로 연결",
|
||||
"dialog.provider.copilot.note": "Copilot 또는 API 키로 연결",
|
||||
"dialog.provider.openai.note": "ChatGPT Pro/Plus 또는 API 키로 연결",
|
||||
"dialog.provider.google.note": "빠르고 구조화된 응답을 위한 Gemini 모델",
|
||||
"dialog.provider.openrouter.note": "모든 지원 모델을 단일 공급자에서 액세스",
|
||||
"dialog.provider.vercel.note": "스마트 라우팅을 통한 AI 모델 통합 액세스",
|
||||
@@ -109,7 +108,6 @@ export const dict = {
|
||||
"dialog.model.manage.provider.toggle": "모든 {{provider}} 모델 토글",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode에서 제공하는 무료 모델",
|
||||
"dialog.model.unpaid.addMore.title": "인기 공급자의 모델 추가",
|
||||
"dialog.model.unpaid.viewMoreProviders": "70개 이상의 공급자 더 보기",
|
||||
"dialog.provider.viewAll": "더 많은 공급자 보기",
|
||||
"provider.connect.title": "{{provider}} 연결",
|
||||
"provider.connect.title.anthropicProMax": "Claude Pro/Max로 로그인",
|
||||
@@ -193,7 +191,7 @@ export const dict = {
|
||||
"model.input.image": "이미지",
|
||||
"model.input.audio": "오디오",
|
||||
"model.input.video": "비디오",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "지원: {{inputs}}",
|
||||
"model.tooltip.reasoning.allowed": "추론 허용",
|
||||
"model.tooltip.reasoning.none": "추론 없음",
|
||||
@@ -206,7 +204,7 @@ export const dict = {
|
||||
"common.cancel": "취소",
|
||||
"common.connect": "연결",
|
||||
"common.disconnect": "연결 해제",
|
||||
"common.continue": "계속",
|
||||
"common.continue": "제출",
|
||||
"common.submit": "제출",
|
||||
"common.save": "저장",
|
||||
"common.saving": "저장 중...",
|
||||
@@ -256,7 +254,7 @@ export const dict = {
|
||||
"prompt.context.includeActiveFile": "활성 파일 포함",
|
||||
"prompt.context.removeActiveFile": "컨텍스트에서 활성 파일 제거",
|
||||
"prompt.context.removeFile": "컨텍스트에서 파일 제거",
|
||||
"prompt.action.attachFile": "파일 추가",
|
||||
"prompt.action.attachFile": "파일 첨부",
|
||||
"prompt.menu.addImagesAndFiles": "파일 및 기타 항목 추가",
|
||||
"prompt.menu.imagesAndFiles": "이미지 및 파일",
|
||||
"prompt.menu.commands": "명령어",
|
||||
@@ -266,7 +264,6 @@ export const dict = {
|
||||
"prompt.action.send": "전송",
|
||||
"prompt.action.stop": "중지",
|
||||
"prompt.toast.pasteUnsupported.title": "지원되지 않는 첨부 파일",
|
||||
"prompt.toast.attachmentDuplicate.title": "이 파일은 이미 업로드되었습니다",
|
||||
"prompt.toast.pasteUnsupported.description": "이미지, PDF 또는 텍스트 파일만 첨부할 수 있습니다.",
|
||||
"prompt.toast.modelAgentRequired.title": "에이전트 및 모델 선택",
|
||||
"prompt.toast.modelAgentRequired.description": "프롬프트를 보내기 전에 에이전트와 모델을 선택하세요.",
|
||||
@@ -591,15 +588,15 @@ export const dict = {
|
||||
"settings.general.row.followup.title": "후속 조치 동작",
|
||||
"settings.general.row.followup.description": "후속 프롬프트를 즉시 실행할지 대기열에 넣을지 선택하세요",
|
||||
"settings.general.row.followup.option.queue": "대기열",
|
||||
"settings.general.row.followup.option.steer": "즉시 반영",
|
||||
"settings.general.row.followup.option.steer": "조종",
|
||||
"settings.general.row.reasoningSummaries.title": "추론 요약 표시",
|
||||
"settings.general.row.reasoningSummaries.description": "타임라인에 모델 추론 요약 표시",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "shell 도구 항목 펼치기",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "shell 도구 파트 펼치기",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"타임라인에서 기본적으로 shell 도구 항목을 펼친 상태로 표시합니다",
|
||||
"settings.general.row.editToolPartsExpanded.title": "edit 도구 항목 펼치기",
|
||||
"타임라인에서 기본적으로 shell 도구 파트를 펼친 상태로 표시합니다",
|
||||
"settings.general.row.editToolPartsExpanded.title": "edit 도구 파트 펼치기",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"타임라인에서 기본적으로 edit, write, patch 도구 항목을 펼친 상태로 표시합니다",
|
||||
"타임라인에서 기본적으로 edit, write, patch 도구 파트를 펼친 상태로 표시합니다",
|
||||
"settings.general.row.wayland.title": "네이티브 Wayland 사용",
|
||||
"settings.general.row.wayland.description": "Wayland에서 X11 폴백을 비활성화합니다. 다시 시작해야 합니다.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
@@ -726,8 +723,8 @@ export const dict = {
|
||||
"settings.permissions.tool.bash.description": "셸 명령어 실행",
|
||||
"settings.permissions.tool.task.title": "작업",
|
||||
"settings.permissions.tool.task.description": "하위 에이전트 실행",
|
||||
"settings.permissions.tool.skill.title": "스킬",
|
||||
"settings.permissions.tool.skill.description": "이름으로 스킬 불러오기",
|
||||
"settings.permissions.tool.skill.title": "기술",
|
||||
"settings.permissions.tool.skill.description": "이름으로 기술 로드",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "언어 서버 쿼리 실행",
|
||||
"settings.permissions.tool.todowrite.title": "할 일 쓰기",
|
||||
@@ -798,9 +795,6 @@ export const dict = {
|
||||
"session.question.progress": "{{total}}개의 질문 중 {{current}}개",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "파일 탐색기",
|
||||
"session.header.reveal.finder": "Finder에서 보기",
|
||||
"session.header.reveal.fileExplorer": "파일 탐색기에서 보기",
|
||||
"session.header.reveal.containingFolder": "이 항목이 있는 폴더 열기",
|
||||
"session.header.open.fileManager": "파일 관리자",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -962,7 +956,7 @@ export const dict = {
|
||||
"home.sessions.group.today": "오늘",
|
||||
"home.sessions.group.yesterday": "어제",
|
||||
"home.sessions.group.older": "이전",
|
||||
"home.providerTip": "75개 이상의 공급자에 연결하여 Claude, GPT, Gemini 등의 다른 모델을 사용하세요",
|
||||
"home.providerTip": "75개 이상의 제공업체에 연결하여 Claude, GPT, Gemini 등의 다른 모델을 사용하세요",
|
||||
|
||||
"session.tab.unknown": "알 수 없는 세션",
|
||||
"session.error.notFound": "이 세션을 찾을 수 없습니다",
|
||||
@@ -1005,9 +999,8 @@ export const dict = {
|
||||
"settings.general.row.showStatus.description": "제목 표시줄에 서버 상태 버튼 표시",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "하단 탐색",
|
||||
"settings.general.row.mobileTitlebarBottom.description": "모바일에서 제목 표시줄과 세션 탭을 화면 하단에 배치",
|
||||
"settings.general.row.showCustomAgents.title": "에이전트 표시",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"입력창에서 에이전트를 전환합니다. 숨기면 기본적으로 Build 에이전트를 사용합니다.",
|
||||
"settings.general.row.showCustomAgents.title": "사용자 지정 에이전트",
|
||||
"settings.general.row.showCustomAgents.description": "입력창에 에이전트 선택기 표시",
|
||||
"settings.general.row.newInterface.title": "새 레이아웃",
|
||||
"settings.general.row.newInterface.badge": "신규",
|
||||
"settings.general.row.newInterface.description":
|
||||
|
||||
@@ -1,1034 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Voorgesteld",
|
||||
"command.category.view": "Weergave",
|
||||
"command.category.project": "Project",
|
||||
"command.category.provider": "Aanbieder",
|
||||
"command.category.server": "Server",
|
||||
"command.category.session": "Sessie",
|
||||
"command.category.theme": "Thema",
|
||||
"command.category.language": "Taal",
|
||||
"command.category.file": "Bestand",
|
||||
"command.category.context": "Context",
|
||||
"command.category.terminal": "Terminal",
|
||||
"command.category.model": "Model",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Agent",
|
||||
"command.category.permissions": "Machtigingen",
|
||||
"command.category.workspace": "Werkruimte",
|
||||
"command.category.settings": "Instellingen",
|
||||
"theme.scheme.system": "Systeem",
|
||||
"theme.scheme.light": "Licht",
|
||||
"theme.scheme.dark": "Donker",
|
||||
"command.sidebar.toggle": "Zijbalk tonen of verbergen",
|
||||
"command.project.open": "Project openen",
|
||||
"command.project.previous": "Vorig project",
|
||||
"command.project.next": "Volgende project",
|
||||
"command.project.index": "Ga naar project {{index}}",
|
||||
"command.provider.connect": "Verbinding maken met aanbieder",
|
||||
"command.server.switch": "Van server wisselen",
|
||||
"command.settings.open": "Instellingen openen",
|
||||
"command.session.previous": "Vorige sessie",
|
||||
"command.session.next": "Volgende sessie",
|
||||
"command.session.previous.unseen": "Vorige ongelezen sessie",
|
||||
"command.session.next.unseen": "Volgende ongelezen sessie",
|
||||
"command.session.archive": "Sessie archiveren",
|
||||
"command.palette": "Commandopalet",
|
||||
"command.theme.cycle": "Volgend thema",
|
||||
"command.theme.set": "Gebruik thema: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Volgend kleurenschema",
|
||||
"command.theme.scheme.set": "Gebruik kleurenschema: {{scheme}}",
|
||||
"command.language.cycle": "Volgende taal",
|
||||
"command.language.set": "Gebruik taal: {{language}}",
|
||||
"command.session.new": "Nieuwe sessie",
|
||||
"command.file.open": "Bestand openen",
|
||||
"command.tab.close": "Tabblad sluiten",
|
||||
"command.tab.reopenClosed": "Gesloten tabblad opnieuw openen",
|
||||
"command.context.addSelection": "Voeg selectie toe aan context",
|
||||
"command.context.addSelection.description": "Voeg geselecteerde regels uit het huidige bestand toe",
|
||||
"command.input.focus": "Invoerveld activeren",
|
||||
"command.terminal.toggle": "Terminal tonen of verbergen",
|
||||
"command.fileTree.toggle": "Bestandsstructuur tonen of verbergen",
|
||||
"command.review.toggle": "Beoordeling tonen of verbergen",
|
||||
"command.terminal.new": "Nieuwe terminal",
|
||||
"command.terminal.new.description": "Maak een nieuw terminaltabblad",
|
||||
"command.steps.toggle": "Stappen tonen of verbergen",
|
||||
"command.steps.toggle.description": "Toon of verberg stappen voor het huidige bericht",
|
||||
"command.message.previous": "Vorig bericht",
|
||||
"command.message.previous.description": "Ga naar het vorige gebruikersbericht",
|
||||
"command.message.next": "Volgend bericht",
|
||||
"command.message.next.description": "Ga naar het volgende gebruikersbericht",
|
||||
"command.model.choose": "Kies model",
|
||||
"command.model.choose.description": "Selecteer een ander model",
|
||||
"command.mcp.toggle": "MCP's in- of uitschakelen",
|
||||
"command.mcp.toggle.description": "MCP's in- of uitschakelen",
|
||||
"command.agent.cycle": "Volgende agent",
|
||||
"command.agent.cycle.description": "Schakel over naar de volgende agent",
|
||||
"command.agent.cycle.reverse": "Vorige agent",
|
||||
"command.agent.cycle.reverse.description": "Schakel over naar de vorige agent",
|
||||
"command.model.variant.cycle": "Volgend denkniveau",
|
||||
"command.model.variant.cycle.description": "Ga naar het volgende inspanningsniveau",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "Machtigingen automatisch accepteren",
|
||||
"command.permissions.autoaccept.disable": "Stop met het automatisch accepteren van machtigingen",
|
||||
"command.workspace.toggle": "Werkruimten in- of uitschakelen",
|
||||
"command.workspace.toggle.description": "Schakel meerdere werkruimten in de zijbalk in of uit",
|
||||
"command.session.undo": "Ongedaan maken",
|
||||
"command.session.undo.description": "Maak het laatste bericht ongedaan",
|
||||
"command.session.redo": "Opnieuw uitvoeren",
|
||||
"command.session.redo.description": "Voer het laatste ongedaan gemaakte bericht opnieuw uit",
|
||||
"command.session.compact": "Sessie comprimeren",
|
||||
"command.session.compact.description": "Vat de sessie samen om de contextgrootte te verkleinen",
|
||||
"command.session.fork": "Afsplitsen vanaf bericht",
|
||||
"command.session.fork.description": "Maak een nieuwe sessie op basis van een eerder bericht",
|
||||
"command.session.share": "Sessie delen",
|
||||
"command.session.share.description": "Deel deze sessie en kopieer de URL naar het klembord",
|
||||
"command.session.unshare": "Sessie niet meer delen",
|
||||
"command.session.unshare.description": "Stop met het delen van deze sessie",
|
||||
"palette.search.placeholder": "Zoek naar bestanden, opdrachten en sessies",
|
||||
"palette.search.placeholder.home": "Opdrachten en sessies zoeken",
|
||||
"palette.empty": "Geen resultaten gevonden",
|
||||
"palette.group.commands": "Commando's",
|
||||
"palette.group.files": "Bestanden",
|
||||
"dialog.provider.search.placeholder": "Aanbieders zoeken",
|
||||
"dialog.provider.empty": "Geen aanbieders gevonden",
|
||||
"dialog.provider.group.popular": "Populair",
|
||||
"dialog.provider.group.other": "Anders",
|
||||
"dialog.provider.custom.label": "Aangepaste OpenAI-compatibele aanbieder",
|
||||
"dialog.provider.tag.recommended": "Aanbevolen",
|
||||
"dialog.provider.opencode.note": "Samengestelde modellen, waaronder Claude, GPT, Gemini en meer",
|
||||
"dialog.provider.opencode.tagline": "Betrouwbare geoptimaliseerde modellen",
|
||||
"dialog.provider.opencodeGo.tagline": "Goedkoop abonnement voor iedereen",
|
||||
"dialog.provider.anthropic.note": "Directe toegang tot Claude-modellen, inclusief Pro en Max",
|
||||
"dialog.provider.copilot.note": "AI-modellen voor codeerondersteuning via GitHub Copilot",
|
||||
"dialog.provider.openai.note": "GPT-modellen voor snelle, capabele algemene AI-taken",
|
||||
"dialog.provider.google.note": "Gemini-modellen voor snelle, gestructureerde reacties",
|
||||
"dialog.provider.openrouter.note": "Toegang tot alle ondersteunde modellen via één aanbieder",
|
||||
"dialog.provider.vercel.note": "Uniforme toegang tot AI-modellen met slimme routering",
|
||||
"dialog.model.select.title": "Selecteer model",
|
||||
"dialog.model.search.placeholder": "Zoek modellen",
|
||||
"dialog.model.empty": "Geen modelresultaten",
|
||||
"dialog.model.manage": "Beheer modellen",
|
||||
"dialog.model.manage.description": "Pas aan welke modellen in de modelkiezer verschijnen.",
|
||||
"dialog.model.manage.provider.toggle": "Alle {{provider}}-modellen in- of uitschakelen",
|
||||
"dialog.model.unpaid.freeModels.title": "Gratis modellen geleverd door OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Voeg meer modellen toe van populaire aanbieders",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Bekijk nog 70+ aanbieders",
|
||||
"dialog.provider.viewAll": "Toon meer aanbieders",
|
||||
"provider.connect.title": "Verbinding maken met {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Inloggen met Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Selecteer de aanmeldingsmethode voor {{provider}}.",
|
||||
"provider.connect.method.apiKey": "API-sleutel",
|
||||
"provider.connect.status.inProgress": "Autorisatie in behandeling...",
|
||||
"provider.connect.status.waiting": "Wachten op autorisatie...",
|
||||
"provider.connect.status.failed": "Autorisatie mislukt: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Voer je {{provider}}-API-sleutel in om je account te koppelen en {{provider}}-modellen in OpenCode te gebruiken.",
|
||||
"provider.connect.apiKey.label": "{{provider}}-API-sleutel",
|
||||
"provider.connect.apiKey.placeholder": "API-sleutel",
|
||||
"provider.connect.apiKey.required": "API-sleutel is vereist",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen geeft je toegang tot een samengestelde set betrouwbare, geoptimaliseerde modellen voor codeeragenten.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Met één API-sleutel krijg je toegang tot modellen zoals Claude, GPT, Gemini, GLM en meer.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Ga naar ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " om je API-sleutel op te halen.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Ga naar ",
|
||||
"provider.connect.oauth.code.visit.link": "deze link",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" om je autorisatiecode op te halen, je account te koppelen en {{provider}}-modellen in OpenCode te gebruiken.",
|
||||
"provider.connect.oauth.code.label": "{{method}}-autorisatiecode",
|
||||
"provider.connect.oauth.code.placeholder": "Autorisatiecode",
|
||||
"provider.connect.oauth.code.required": "Autorisatiecode is vereist",
|
||||
"provider.connect.oauth.code.invalid": "Ongeldige autorisatiecode",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Ga naar ",
|
||||
"provider.connect.oauth.auto.visit.link": "deze link",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" en voer de onderstaande code in om je account te koppelen en {{provider}}-modellen in OpenCode te gebruiken.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Bevestigingscode",
|
||||
"provider.connect.toast.connected.title": "Verbonden met {{provider}}",
|
||||
"provider.connect.toast.connected.description": "{{provider}}-modellen zijn nu beschikbaar voor gebruik.",
|
||||
"provider.custom.title": "Aangepaste aanbieder",
|
||||
"provider.custom.description.prefix": "Configureer een OpenAI-compatibele aanbieder. Bekijk de ",
|
||||
"provider.custom.description.link": "documentatie over aanbiedersconfiguratie",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "Aanbieder-ID",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Kleine letters, cijfers, koppeltekens of onderstrepingstekens",
|
||||
"provider.custom.field.name.label": "Weergavenaam",
|
||||
"provider.custom.field.name.placeholder": "Mijn AI-aanbieder",
|
||||
"provider.custom.field.baseURL.label": "Basis-URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API-sleutel",
|
||||
"provider.custom.field.apiKey.placeholder": "API-sleutel",
|
||||
"provider.custom.field.apiKey.description": "Optioneel. Laat leeg als je de authenticatie via headers beheert.",
|
||||
"provider.custom.models.label": "Modellen",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "Naam",
|
||||
"provider.custom.models.name.placeholder": "Weergavenaam",
|
||||
"provider.custom.models.remove": "Model verwijderen",
|
||||
"provider.custom.models.add": "Voeg model toe",
|
||||
"provider.custom.headers.label": "Headers (optioneel)",
|
||||
"provider.custom.headers.key.label": "Header",
|
||||
"provider.custom.headers.key.placeholder": "Header-Naam",
|
||||
"provider.custom.headers.value.label": "Waarde",
|
||||
"provider.custom.headers.value.placeholder": "waarde",
|
||||
"provider.custom.headers.remove": "Header verwijderen",
|
||||
"provider.custom.headers.add": "Header toevoegen",
|
||||
"provider.custom.error.providerID.required": "Aanbieder-ID is vereist",
|
||||
"provider.custom.error.providerID.format": "Gebruik kleine letters, cijfers, koppeltekens of onderstrepingstekens",
|
||||
"provider.custom.error.providerID.exists": "Die aanbieder-ID bestaat al",
|
||||
"provider.custom.error.name.required": "Weergavenaam is vereist",
|
||||
"provider.custom.error.baseURL.required": "Basis-URL is vereist",
|
||||
"provider.custom.error.baseURL.format": "Moet beginnen met http:// of https://",
|
||||
"provider.custom.error.required": "Vereist",
|
||||
"provider.custom.error.duplicate": "Duplicaat",
|
||||
"provider.disconnect.toast.disconnected.title": "Verbinding met {{provider}} verbroken",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}}-modellen zijn niet langer beschikbaar.",
|
||||
"model.tag.free": "Gratis",
|
||||
"model.tag.latest": "Nieuwste",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "tekst",
|
||||
"model.input.image": "afbeelding",
|
||||
"model.input.audio": "audio",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Staat toe: {{inputs}}",
|
||||
"model.tooltip.context.label": "Context",
|
||||
"model.tooltip.inputs": "Invoer",
|
||||
"model.tooltip.model": "Model",
|
||||
"model.tooltip.provider": "Aanbieder",
|
||||
"model.tooltip.reasoning": "Redenering",
|
||||
"model.tooltip.reasoning.allowed": "Maakt redeneren mogelijk",
|
||||
"model.tooltip.reasoning.none": "Geen redenering",
|
||||
"model.tooltip.context": "Contextlimiet {{limit}}",
|
||||
"common.search.placeholder": "Zoeken",
|
||||
"common.goBack": "Terug navigeren",
|
||||
"common.goForward": "Vooruit navigeren",
|
||||
"common.loading": "Laden",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Annuleer",
|
||||
"common.clear": "Wissen",
|
||||
"common.open": "Openen",
|
||||
"common.connect": "Verbinden",
|
||||
"common.disconnect": "Verbinding verbreken",
|
||||
"common.continue": "Doorgaan",
|
||||
"common.submit": "Verzenden",
|
||||
"common.save": "Opslaan",
|
||||
"common.saving": "Opslaan...",
|
||||
"common.default": "Standaard",
|
||||
"common.attachment": "bijlage",
|
||||
"prompt.placeholder.shell": "Voer de shell-opdracht in... {{example}}",
|
||||
"prompt.placeholder.normal": 'Vraag wat je wilt... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Vraag wat je wilt...",
|
||||
"prompt.placeholder.summarizeComments": "Opmerkingen samenvatten…",
|
||||
"prompt.placeholder.summarizeComment": "Opmerking samenvatten…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "esc om af te sluiten",
|
||||
"session.child.promptDisabled": "Je kunt geen prompts naar subagentsessies sturen.",
|
||||
"session.child.backToParent": "Terug naar de hoofdsessie.",
|
||||
"prompt.example.1": "Repareer een TODO in de codebase",
|
||||
"prompt.example.2": "Wat is de tech-stack van dit project?",
|
||||
"prompt.example.3": "Herstel kapotte tests",
|
||||
"prompt.example.4": "Leg uit hoe authenticatie werkt",
|
||||
"prompt.example.5": "Vind en repareer beveiligingsproblemen",
|
||||
"prompt.example.6": "Voeg eenheidstests toe voor de gebruikersservice",
|
||||
"prompt.example.7": "Refactoreer deze functie om beter leesbaar te zijn",
|
||||
"prompt.example.8": "Wat betekent deze fout?",
|
||||
"prompt.example.9": "Help me dit probleem te debuggen",
|
||||
"prompt.example.10": "Genereer API-documentatie",
|
||||
"prompt.example.11": "Optimaliseer databasequery's",
|
||||
"prompt.example.12": "Voeg invoervalidatie toe",
|
||||
"prompt.example.13": "Maak een nieuwe component voor...",
|
||||
"prompt.example.14": "Hoe deploy ik dit project?",
|
||||
"prompt.example.15": "Controleer mijn code op best practices",
|
||||
"prompt.example.16": "Voeg foutafhandeling toe aan deze functie",
|
||||
"prompt.example.17": "Leg dit regex-patroon uit",
|
||||
"prompt.example.18": "Converteer dit naar TypeScript",
|
||||
"prompt.example.19": "Voeg logboekregistratie toe aan de hele codebase",
|
||||
"prompt.example.20": "Welke afhankelijkheden zijn verouderd?",
|
||||
"prompt.example.21": "Help me een migratiescript te schrijven",
|
||||
"prompt.example.22": "Implementeer caching voor dit eindpunt",
|
||||
"prompt.example.23": "Voeg paginering toe aan deze lijst",
|
||||
"prompt.example.24": "Maak een CLI-opdracht voor...",
|
||||
"prompt.example.25": "Hoe werken omgevingsvariabelen hier?",
|
||||
"prompt.popover.emptyResults": "Geen overeenkomende resultaten",
|
||||
"prompt.popover.emptyCommands": "Geen overeenkomende opdrachten",
|
||||
"prompt.dropzone.label": "Zet hier afbeeldingen, pdf's of tekstbestanden neer",
|
||||
"prompt.dropzone.file.label": "Zet neer om het bestand met @ te vermelden",
|
||||
"prompt.slash.badge.custom": "aangepast",
|
||||
"prompt.slash.badge.skill": "vaardigheid",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "actief",
|
||||
"prompt.context.includeActiveFile": "Actief bestand opnemen",
|
||||
"prompt.context.removeActiveFile": "Verwijder actief bestand uit context",
|
||||
"prompt.context.removeFile": "Bestand uit context verwijderen",
|
||||
"prompt.action.attachFile": "Bestanden toevoegen",
|
||||
"prompt.menu.addImagesAndFiles": "Voeg bestanden toe en meer",
|
||||
"prompt.menu.imagesAndFiles": "Afbeeldingen en bestanden",
|
||||
"prompt.menu.commands": "Commando's",
|
||||
"prompt.menu.context": "Context",
|
||||
"prompt.menu.shellCommand": "Shell-commando",
|
||||
"prompt.attachment.remove": "Bijlage verwijderen",
|
||||
"prompt.action.send": "Verzenden",
|
||||
"prompt.action.stop": "Stop",
|
||||
"prompt.toast.pasteUnsupported.title": "Niet-ondersteunde bijlage",
|
||||
"prompt.toast.pasteUnsupported.description":
|
||||
"Hier kunnen alleen afbeeldingen, pdf's of tekstbestanden worden bijgevoegd.",
|
||||
"prompt.toast.attachmentDuplicate.title": "Dit bestand is al geüpload",
|
||||
"prompt.toast.modelAgentRequired.title": "Selecteer een agent en model",
|
||||
"prompt.toast.modelAgentRequired.description": "Kies een agent en model voordat je een prompt verzendt.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Kan worktree niet maken",
|
||||
"prompt.toast.sessionCreateFailed.title": "Kan sessie niet maken",
|
||||
"prompt.toast.shellSendFailed.title": "Kan shell-opdracht niet verzenden",
|
||||
"prompt.toast.commandSendFailed.title": "Kan opdracht niet verzenden",
|
||||
"prompt.toast.promptSendFailed.title": "Kan de prompt niet verzenden",
|
||||
"prompt.toast.promptSendFailed.description": "Kan sessie niet ophalen",
|
||||
"dialog.mcp.title": "MCP's",
|
||||
"dialog.mcp.description": "{{enabled}} of {{total}} ingeschakeld",
|
||||
"dialog.mcp.empty": "Geen MCP's geconfigureerd",
|
||||
"dialog.lsp.empty": "LSP's worden automatisch gedetecteerd uit bestandstypen",
|
||||
"dialog.plugins.empty": "Plug-ins geconfigureerd in opencode.json",
|
||||
"mcp.status.connected": "verbonden",
|
||||
"mcp.status.failed": "mislukt",
|
||||
"mcp.status.needs_auth": "heeft autorisatie nodig",
|
||||
"mcp.status.disabled": "uitgeschakeld",
|
||||
"mcp.auth.clickToAuthenticate": "Klik om te authenticeren",
|
||||
"dialog.fork.empty": "Geen berichten om van af te splitsen",
|
||||
"dialog.directory.search.placeholder": "Zoek in mappen",
|
||||
"dialog.directory.empty": "Geen mappen gevonden",
|
||||
"dialog.directory.action.selectFile": "Selecteer bestand",
|
||||
"dialog.directory.action.selectFolder": "Selecteer map",
|
||||
"dialog.directory.root": "Hoofdmap",
|
||||
"dialog.directory.parent": "Bovenliggende map",
|
||||
"dialog.directory.readError": "Kan deze map niet lezen",
|
||||
"app.server.unreachable": "Kan {{server}} niet bereiken",
|
||||
"app.server.retrying": "Automatisch opnieuw proberen...",
|
||||
"app.server.otherServers": "Andere servers",
|
||||
"dialog.server.title": "Servers",
|
||||
"dialog.server.description": "Wijzig met welke OpenCode-server deze app verbinding maakt.",
|
||||
"dialog.server.search.placeholder": "Servers zoeken",
|
||||
"dialog.server.empty": "Nog geen servers",
|
||||
"dialog.server.add.title": "Server toevoegen",
|
||||
"dialog.server.add.url": "Serveradres",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Kan geen verbinding maken met de server",
|
||||
"dialog.server.add.checking": "Controleren...",
|
||||
"dialog.server.add.button": "Server toevoegen",
|
||||
"dialog.server.add.name": "Servernaam (optioneel)",
|
||||
"dialog.server.add.namePlaceholder": "Lokale host",
|
||||
"dialog.server.add.username": "Gebruikersnaam (optioneel)",
|
||||
"dialog.server.add.usernamePlaceholder": "gebruikersnaam",
|
||||
"dialog.server.add.password": "Wachtwoord (optioneel)",
|
||||
"dialog.server.add.passwordPlaceholder": "wachtwoord",
|
||||
"dialog.server.edit.title": "Server bewerken",
|
||||
"dialog.server.default.title": "Standaardserver",
|
||||
"dialog.server.default.description":
|
||||
"Maak verbinding met deze server bij het starten van de app in plaats van een lokale server te starten. Vereist opnieuw opstarten.",
|
||||
"dialog.server.default.none": "Geen server geselecteerd",
|
||||
"dialog.server.default.set": "Stel de huidige server in als standaard",
|
||||
"dialog.server.default.clear": "Wissen",
|
||||
"dialog.server.action.remove": "Server verwijderen",
|
||||
"dialog.server.menu.edit": "Bewerken",
|
||||
"dialog.server.menu.default": "Als standaard instellen",
|
||||
"dialog.server.menu.defaultRemove": "Standaard verwijderen",
|
||||
"dialog.server.menu.delete": "Verwijderen",
|
||||
"dialog.server.current": "Huidige server",
|
||||
"dialog.server.status.default": "Standaard",
|
||||
"wsl.server.add": "WSL-server toevoegen",
|
||||
"wsl.server.addShort": "WSL toevoegen",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL-server",
|
||||
"wsl.server.retryStart": "Opnieuw proberen te starten",
|
||||
"wsl.server.updating": "Updaten...",
|
||||
"wsl.onboarding.step.distro": "Kies distro",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "WSL controleren...",
|
||||
"wsl.onboarding.restartRequired": "Windows moet opnieuw worden opgestart om de installatie van WSL te voltooien.",
|
||||
"wsl.onboarding.ready": "WSL is klaar.",
|
||||
"wsl.onboarding.required": "WSL is vereist om door te gaan.",
|
||||
"wsl.onboarding.checkingDistros": "Distributies controleren...",
|
||||
"wsl.onboarding.installingDistro": "{{distro}} installeren...",
|
||||
"wsl.onboarding.checkingDistro": "{{distro}} controleren...",
|
||||
"wsl.onboarding.listingDistros": "Lijst met distributies ophalen...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} is klaar.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} is nog niet geïnstalleerd.",
|
||||
"wsl.onboarding.openDistroOnce": "Open {{distro}} één keer om de installatie te voltooien.",
|
||||
"wsl.onboarding.finishingDistro": "Installatie van {{distro}} voltooien.",
|
||||
"wsl.onboarding.pickDistro": "Kies een distributie of installeer er hieronder een.",
|
||||
"wsl.onboarding.checkingOpencode": "OpenCode controleren...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "OpenCode controleren in {{distro}}...",
|
||||
"wsl.onboarding.updatingOpencode": "OpenCode bijwerken...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "OpenCode bijwerken in {{distro}}...",
|
||||
"wsl.onboarding.updateOpencodeIn": "Werk OpenCode bij in {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "OpenCode bijwerken",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode is gereed in {{distro}}.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode is klaar.",
|
||||
"wsl.onboarding.installOpencodeIn": "Installeer OpenCode in {{distro}}.",
|
||||
"wsl.onboarding.installOpencode": "Installeer OpenCode",
|
||||
"wsl.onboarding.chooseDistroFirst": "Kies eerst een distributie.",
|
||||
"wsl.onboarding.loadFailed": "Kan de WSL-status niet laden.",
|
||||
"wsl.onboarding.loading": "Laden...",
|
||||
"wsl.onboarding.installedDistros": "Geïnstalleerde distributies",
|
||||
"wsl.onboarding.checkAgain": "Controleer opnieuw",
|
||||
"wsl.onboarding.distroStatus.ready": "Klaar",
|
||||
"wsl.onboarding.distroStatus.checking": "Controleren...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode niet geïnstalleerd",
|
||||
"wsl.onboarding.distroStatus.missingTools": "bash en curl ontbreken",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Niet ondersteund · Gebruik WSL 2",
|
||||
"wsl.onboarding.needAnotherDistro": "Nog een distro nodig?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "Installeer een Linux-distributie uit de WSL-catalogus",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL niet geïnstalleerd",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"WSL (Windows-subsysteem voor Linux) is vereist voordat OpenCode een WSL-server kan toevoegen",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL niet beschikbaar",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode kan WSL niet verifiëren op deze machine.",
|
||||
"wsl.onboarding.installWsl": "Installeer WSL",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"Start Windows opnieuw om de installatie van WSL te voltooien en open vervolgens OpenCode opnieuw.",
|
||||
"wsl.onboarding.next": "Volgende",
|
||||
"wsl.onboarding.refresh": "Vernieuwen",
|
||||
"wsl.onboarding.allDistrosAdded": "Alle geïnstalleerde distributies zijn al toegevoegd.",
|
||||
"wsl.onboarding.noDistros": "Nog geen distributies gedetecteerd.",
|
||||
"wsl.onboarding.install": "Installeren",
|
||||
"wsl.onboarding.installing": "Installeren...",
|
||||
"wsl.onboarding.installDistro": "Distro installeren",
|
||||
"wsl.onboarding.searchDistros": "Zoek distributies",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 is vereist.",
|
||||
"wsl.onboarding.toolsRequired": "Deze distro heeft bash en curl nodig.",
|
||||
"wsl.onboarding.openTerminal": "Terminal openen",
|
||||
"wsl.onboarding.path": "Pad: {{path}}",
|
||||
"wsl.onboarding.notFound": "niet gevonden",
|
||||
"wsl.onboarding.version": "Versie: {{version}}",
|
||||
"wsl.onboarding.unknown": "onbekend",
|
||||
"wsl.onboarding.desktopVersion": "desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "De geïnstalleerde versie komt niet overeen met de versie van de desktop-app.",
|
||||
"wsl.onboarding.adding": "Toevoegen...",
|
||||
"server.row.noUsername": "geen gebruikersnaam",
|
||||
"dialog.project.edit.title": "Project bewerken",
|
||||
"dialog.project.edit.name": "Naam",
|
||||
"dialog.project.edit.icon": "Pictogram",
|
||||
"dialog.project.edit.icon.alt": "Projectpictogram",
|
||||
"dialog.project.edit.icon.hint": "Klik of sleep een afbeelding",
|
||||
"dialog.project.edit.icon.recommended": "Aanbevolen: 128x128px",
|
||||
"dialog.project.edit.color": "Kleur",
|
||||
"dialog.project.edit.color.select": "Kleur {{color}} selecteren",
|
||||
"dialog.project.edit.worktree.startup": "Opstartscript voor werkruimte",
|
||||
"dialog.project.edit.worktree.startup.description":
|
||||
"Wordt uitgevoerd nadat een nieuwe werkruimte (worktree) is aangemaakt.",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "bijv. bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "Ga aan de slag",
|
||||
"dialog.releaseNotes.action.next": "Volgende",
|
||||
"dialog.releaseNotes.action.hideFuture": "Laat deze in de toekomst niet zien",
|
||||
"dialog.releaseNotes.media.alt": "Releasevoorbeeld",
|
||||
"context.breakdown.title": "Contextanalyse",
|
||||
"context.breakdown.note":
|
||||
'Geschatte uitsplitsing van invoertokens. "Overig" omvat gereedschapsdefinities en overhead.',
|
||||
"context.breakdown.system": "Systeem",
|
||||
"context.breakdown.user": "Gebruiker",
|
||||
"context.breakdown.assistant": "Assistent",
|
||||
"context.breakdown.tool": "Toolaanroepen",
|
||||
"context.breakdown.other": "Overig",
|
||||
"context.systemPrompt.title": "Systeemprompt",
|
||||
"context.rawMessages.title": "Ruwe berichten",
|
||||
"context.stats.session": "Sessie",
|
||||
"context.stats.messages": "Berichten",
|
||||
"context.stats.provider": "Aanbieder",
|
||||
"context.stats.model": "Model",
|
||||
"context.stats.limit": "Contextlimiet",
|
||||
"context.stats.totalTokens": "Totaal tokens",
|
||||
"context.stats.usage": "Gebruik",
|
||||
"context.stats.inputTokens": "Invoertokens",
|
||||
"context.stats.outputTokens": "Uitvoertokens",
|
||||
"context.stats.reasoningTokens": "Redeneringstokens",
|
||||
"context.stats.cacheTokens": "Cachetokens (lezen/schrijven)",
|
||||
"context.stats.userMessages": "Gebruikersberichten",
|
||||
"context.stats.assistantMessages": "Assistentberichten",
|
||||
"context.stats.totalCost": "Totale kosten",
|
||||
"context.stats.sessionCreated": "Sessie gemaakt",
|
||||
"context.stats.lastActivity": "Laatste activiteit",
|
||||
"context.usage.tokens": "Tokens",
|
||||
"context.usage.usage": "Gebruik",
|
||||
"context.usage.cost": "Kosten",
|
||||
"context.usage.clickToView": "Klik om de context te bekijken",
|
||||
"context.usage.view": "Bekijk contextgebruik",
|
||||
"language.en": "Engels",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Duits",
|
||||
"language.es": "Spaans",
|
||||
"language.fr": "Frans",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Portugees (Brazilië)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Taal",
|
||||
"toast.language.description": "Overgeschakeld naar {{language}}",
|
||||
"toast.theme.title": "Thema gewijzigd",
|
||||
"toast.scheme.title": "Kleurenschema",
|
||||
"toast.workspace.enabled.title": "Werkruimten ingeschakeld",
|
||||
"toast.workspace.enabled.description": "Er worden nu meerdere worktrees weergegeven in de zijbalk",
|
||||
"toast.workspace.disabled.title": "Werkruimten uitgeschakeld",
|
||||
"toast.workspace.disabled.description": "Alleen de hoofdworktree wordt weergegeven in de zijbalk",
|
||||
"toast.permissions.autoaccept.on.title": "Machtigingen automatisch accepteren",
|
||||
"toast.permissions.autoaccept.on.description": "Toestemmingsverzoeken worden automatisch goedgekeurd",
|
||||
"toast.permissions.autoaccept.off.title": "Machtigingen niet meer automatisch accepteren",
|
||||
"toast.permissions.autoaccept.off.description": "Machtigingsverzoeken moeten worden goedgekeurd",
|
||||
"toast.model.none.title": "Geen model geselecteerd",
|
||||
"toast.model.none.description": "Maak verbinding met een aanbieder om deze sessie samen te vatten",
|
||||
"toast.file.loadFailed.title": "Kan bestand niet laden",
|
||||
"toast.file.listFailed.title": "Kan bestanden niet weergeven",
|
||||
"toast.context.noLineSelection.title": "Geen regels geselecteerd",
|
||||
"toast.context.noLineSelection.description": "Selecteer eerst een reeks regels in een bestandstabblad.",
|
||||
"toast.session.share.copyFailed.title": "Kan de URL niet naar het klembord kopiëren",
|
||||
"toast.session.share.success.title": "Sessie gedeeld",
|
||||
"toast.session.share.success.description": "Deel-URL gekopieerd naar klembord!",
|
||||
"toast.session.share.failed.title": "Kan sessie niet delen",
|
||||
"toast.session.share.failed.description": "Er is een fout opgetreden tijdens het delen van de sessie",
|
||||
"toast.session.unshare.success.title": "Sessie niet gedeeld",
|
||||
"toast.session.unshare.success.description": "Sessie is niet meer gedeeld!",
|
||||
"toast.session.unshare.failed.title": "Kan het delen van de sessie niet ongedaan maken",
|
||||
"toast.session.unshare.failed.description":
|
||||
"Er is een fout opgetreden bij het ongedaan maken van het delen van de sessie",
|
||||
"toast.session.listFailed.title": "Kan sessies voor {{project}} niet laden",
|
||||
"toast.project.reloadFailed.title": "Kan {{project}} niet opnieuw laden",
|
||||
"toast.update.title": "Update beschikbaar",
|
||||
"toast.update.description": "Er is nu een nieuwe versie van OpenCode ({{version}}) beschikbaar om te installeren.",
|
||||
"toast.update.action.installRestart": "Installeren en opnieuw opstarten",
|
||||
"toast.update.action.notYet": "Nog niet",
|
||||
"error.page.title": "Er is iets misgegaan",
|
||||
"error.page.description": "Er is een fout opgetreden tijdens het laden van de applicatie.",
|
||||
"error.page.description.localServerStartup": "Er is een fout opgetreden bij het starten van de lokale server.",
|
||||
"error.page.details.label": "Foutdetails",
|
||||
"error.page.action.restart": "Opnieuw opstarten",
|
||||
"error.page.action.report": "Rapporteer fout",
|
||||
"error.page.action.reported": "Fout gerapporteerd",
|
||||
"error.page.action.exportLogs": "Logboeken exporteren",
|
||||
"error.page.action.checking": "Controleren...",
|
||||
"error.page.action.checkUpdates": "Controleer op updates",
|
||||
"error.page.action.updateTo": "Update naar {{version}}",
|
||||
"error.page.circular": "[Circulair]",
|
||||
"error.page.report.prefix": "Rapporteer deze fout aan het OpenCode-team",
|
||||
"error.page.report.discord": "op Discord",
|
||||
"error.page.version": "Versie: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"Root-element niet gevonden. Ben je vergeten het toe te voegen aan je index.html? Of is het id-attribuut misschien verkeerd gespeld?",
|
||||
"error.serverSync.connectFailed": "Kan geen verbinding maken met de server. Draait er een server op `{{url}}`?",
|
||||
"error.serverSDK.noServerAvailable": "Geen server beschikbaar",
|
||||
"error.serverSDK.serverNotAvailable": "Server niet beschikbaar",
|
||||
"error.childStore.persistedCacheCreateFailed": "Kan persistente cache niet maken",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Kan de persistente projectmetagegevens niet maken",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Kan het opgeslagen projectpictogram niet maken",
|
||||
"error.childStore.storeCreateFailed": "Kan opslag niet maken",
|
||||
"directory.error.invalidUrl": "Ongeldige map in URL.",
|
||||
"error.chain.unknown": "Onbekende fout",
|
||||
"error.server.invalidConfiguration": "Ongeldige configuratie",
|
||||
"error.chain.causedBy": "Veroorzaakt door:",
|
||||
"error.chain.apiError": "API-fout",
|
||||
"error.chain.status": "Status: {{status}}",
|
||||
"error.chain.retryable": "Opnieuw proberen mogelijk: {{retryable}}",
|
||||
"error.chain.responseBody": "Antwoordtekst:\n{{body}}",
|
||||
"error.chain.didYouMean": "Bedoelde je: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Model niet gevonden: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Controleer de provider- en modelnamen in je configuratie (opencode.json)",
|
||||
"error.chain.mcpFailed": 'MCP-server "{{name}}" is mislukt. Let op: OpenCode ondersteunt nog geen MCP-authenticatie.',
|
||||
"error.chain.providerAuthFailed": "Authenticatie bij aanbieder mislukt ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Kan provider "{{provider}}" niet initialiseren. Controleer de inloggegevens en configuratie.',
|
||||
"error.chain.configJsonInvalid": "Configuratiebestand op {{path}} is niet geldig JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage": "Configuratiebestand op {{path}} is niet geldig JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'De map "{{dir}}" in {{path}} is ongeldig. Hernoem de map naar "{{suggestion}}" of verwijder deze. Dit is een veelvoorkomende typefout.',
|
||||
"error.chain.configFrontmatterError": "Kan frontmatter in {{path}} niet parseren:\n{{message}}",
|
||||
"error.chain.configInvalid": "Configuratiebestand op {{path}} is ongeldig",
|
||||
"error.chain.configInvalidWithMessage": "Configuratiebestand op {{path}} is ongeldig: {{message}}",
|
||||
"notification.permission.title": "Toestemming vereist",
|
||||
"notification.permission.description": "{{sessionTitle}} in {{projectName}} heeft toestemming nodig",
|
||||
"notification.question.title": "Vraag",
|
||||
"notification.question.description": "{{sessionTitle}} in {{projectName}} heeft een vraag",
|
||||
"notification.action.goToSession": "Ga naar sessie",
|
||||
"notification.session.responseReady.title": "Reactie klaar",
|
||||
"notification.session.error.title": "Sessiefout",
|
||||
"notification.session.error.fallbackDescription": "Er is een fout opgetreden",
|
||||
"home.recentProjects": "Recente projecten",
|
||||
"home.empty.title": "Geen recente projecten",
|
||||
"home.empty.description": "Ga aan de slag door een lokaal project te openen",
|
||||
"home.title": "Start",
|
||||
"home.projects": "Projecten",
|
||||
"home.project.add": "Project toevoegen",
|
||||
"home.recentlyClosed": "Onlangs gesloten",
|
||||
"home.server.collapse": "Serverprojecten samenvouwen",
|
||||
"home.server.expand": "Serverprojecten uitvouwen",
|
||||
"home.sessions.search.placeholder": "Zoek sessies",
|
||||
"home.sessions.search.placeholder.scoped": "Sessies zoeken in {{scope}}",
|
||||
"home.sessions.search.sessions": "Sessies",
|
||||
"home.sessions.search.noResults": "Geen sessies gevonden voor {{query}}",
|
||||
"home.sessions.empty": "Hier nog niets",
|
||||
"home.sessions.empty.description": "Maak een sessie aan om aan de slag te gaan",
|
||||
"home.sessions.group.today": "Vandaag",
|
||||
"home.sessions.group.yesterday": "Gisteren",
|
||||
"home.sessions.group.older": "Ouder",
|
||||
"home.providerTip":
|
||||
"Maak verbinding met meer dan 75 providers om andere modellen te gebruiken, waaronder Claude, GPT, Gemini, enz.",
|
||||
"session.tab.session": "Sessie",
|
||||
"session.tab.review": "Beoordeling",
|
||||
"session.tab.context": "Context",
|
||||
"session.tab.unknown": "Onbekende sessie",
|
||||
"session.panel.reviewAndFiles": "Beoordeling en bestanden",
|
||||
"session.error.notFound": "Deze sessie kan niet worden gevonden",
|
||||
"session.error.notFound.description": "Dit tabblad verwijst naar een sessie die niet meer bestaat op deze server.",
|
||||
"session.error.notFound.closeTab": "Tabblad sluiten",
|
||||
"session.error.serverConnection": "Kan geen verbinding maken met deze server",
|
||||
"session.review.filesChanged": "Gewijzigde bestanden: {{count}}",
|
||||
"session.review.change.one": "Wijziging",
|
||||
"session.review.change.other": "Wijzigingen",
|
||||
"session.review.loadingChanges": "Wijzigingen laden...",
|
||||
"session.review.empty": "Er zijn nog geen wijzigingen in deze sessie",
|
||||
"session.review.noVcs": "Geen Git-versiecontrolesysteem gedetecteerd, wijzigingen niet weergegeven",
|
||||
"session.review.noVcs.createGit.title": "Maak een Git-repository",
|
||||
"session.review.noVcs.createGit.description": "Wijzigingen in dit project bijhouden, beoordelen en ongedaan maken",
|
||||
"session.review.noVcs.createGit.actionLoading": "Git-repository maken...",
|
||||
"session.review.noVcs.createGit.action": "Maak een Git-repository",
|
||||
"session.review.noSnapshot":
|
||||
"Het bijhouden van momentopnamen is uitgeschakeld in de configuratie, dus sessiewijzigingen zijn niet beschikbaar",
|
||||
"session.review.noChanges": "Geen wijzigingen",
|
||||
"session.review.noUncommittedChanges": "Er zijn nog geen niet-gecommitteerde wijzigingen",
|
||||
"session.review.noBranchChanges": "Er zijn nog geen branchwijzigingen",
|
||||
"session.files.selectToOpen": "Selecteer een bestand om te openen",
|
||||
"session.files.all": "Alle bestanden",
|
||||
"session.files.empty": "Geen bestanden",
|
||||
"session.files.binaryContent": "Binair bestand (inhoud kan niet worden weergegeven)",
|
||||
"session.messages.renderEarlier": "Geef eerdere berichten weer",
|
||||
"session.messages.loadingEarlier": "Eerdere berichten laden...",
|
||||
"session.messages.loadEarlier": "Laad eerdere berichten",
|
||||
"session.messages.loading": "Berichten laden...",
|
||||
"session.messages.jumpToLatest": "Ga naar de laatste",
|
||||
"session.context.addToContext": "Voeg {{selection}} toe aan de context",
|
||||
"session.todo.title": "Taken",
|
||||
"session.todo.collapse": "Samenvouwen",
|
||||
"session.todo.expand": "Uitvouwen",
|
||||
"session.todo.progress": "{{done}} van {{total}} taken voltooid",
|
||||
"session.question.progress": "{{current}} van {{total}} vragen",
|
||||
"session.question.minimize": "Minimaliseer de vraag",
|
||||
"session.question.restore": "Vraag herstellen",
|
||||
"session.question.pending.one": "{{count}} openstaande vraag",
|
||||
"session.question.pending.other": "{{count}} openstaande vragen",
|
||||
"session.followupDock.summary.one": "{{count}} bericht in de wachtrij",
|
||||
"session.followupDock.summary.other": "{{count}} berichten in de wachtrij",
|
||||
"session.followupDock.sendNow": "Verstuur nu",
|
||||
"session.followupDock.edit": "Bewerken",
|
||||
"session.followupDock.collapse": "In de wachtrij geplaatste berichten samenvouwen",
|
||||
"session.followupDock.expand": "Berichten in de wachtrij uitvouwen",
|
||||
"session.revertDock.summary.one": "{{count}} teruggedraaid bericht",
|
||||
"session.revertDock.summary.other": "{{count}} teruggedraaide berichten",
|
||||
"session.revertDock.collapse": "Teruggedraaide berichten samenvouwen",
|
||||
"session.revertDock.expand": "Teruggedraaide berichten uitvouwen",
|
||||
"session.revertDock.restore": "Bericht herstellen",
|
||||
"session.new.title": "Bouw wat je wilt",
|
||||
"session.new.project.new": "Nieuw project",
|
||||
"session.new.project.search": "Zoek projecten",
|
||||
"session.new.project.add": "Project toevoegen",
|
||||
"session.new.worktree.main": "Hoofdbranch",
|
||||
"session.new.worktree.mainWithBranch": "Hoofdbranch ({{branch}})",
|
||||
"session.new.worktree.create": "Nieuwe worktree maken",
|
||||
"session.new.workspace.runIn": "Sessie uitvoeren in",
|
||||
"session.new.workspace.triggerLocal": "Lokaal",
|
||||
"session.new.workspace.local": "Lokale repository",
|
||||
"session.new.workspace.existing": "Werkruimte…",
|
||||
"session.new.git.none": "Geen Git",
|
||||
"session.new.lastModified": "Laatst gewijzigd",
|
||||
"session.header.search.placeholder": "Zoek {{project}}",
|
||||
"session.header.searchFiles": "Zoek bestanden",
|
||||
"session.header.openIn": "Openen in",
|
||||
"session.header.open.action": "Open {{app}}",
|
||||
"session.header.open.ariaLabel": "Openen in {{app}}",
|
||||
"session.header.open.menu": "Opties openen",
|
||||
"session.header.open.copyPath": "Kopieer pad",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Bestandsverkenner",
|
||||
"session.header.open.fileManager": "Bestandsbeheer",
|
||||
"session.header.reveal.finder": "Tonen in Finder",
|
||||
"session.header.reveal.fileExplorer": "Weergeven in Verkenner",
|
||||
"session.header.reveal.containingFolder": "Bijbehorende map openen",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminal",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "Status",
|
||||
"status.popover.ariaLabel": "Serverconfiguraties",
|
||||
"status.popover.tab.servers": "Servers",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Plug-ins",
|
||||
"status.popover.action.manageServers": "Beheer servers",
|
||||
"session.share.popover.title": "Publiceer op internet",
|
||||
"session.share.popover.description.shared":
|
||||
"Deze sessie is openbaar op internet. Iedereen met de link heeft toegang.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Deel de sessie openbaar op internet. Iedereen met de link krijgt toegang.",
|
||||
"session.share.action.share": "Deel",
|
||||
"session.share.action.publish": "Publiceren",
|
||||
"session.share.action.publishing": "Publiceren...",
|
||||
"session.share.action.unpublish": "Publicatie ongedaan maken",
|
||||
"session.share.action.unpublishing": "Publicatie ongedaan maken...",
|
||||
"session.share.action.view": "Bekijk",
|
||||
"session.share.copy.copied": "Gekopieerd",
|
||||
"session.share.copy.copyLink": "Kopieer link",
|
||||
"lsp.tooltip.none": "Geen LSP-servers",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Prompt laden...",
|
||||
"terminal.loading": "Terminal laden...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Terminal sluiten",
|
||||
"terminal.connectionLost.title": "Verbinding verloren",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket abnormaal gesloten: {{code}}",
|
||||
"terminal.connectionLost.description":
|
||||
"De terminalverbinding is onderbroken. Dit kan gebeuren wanneer de server opnieuw wordt opgestart.",
|
||||
"common.closeTab": "Tabblad sluiten",
|
||||
"common.dismiss": "Negeren",
|
||||
"common.moreCountSuffix": " (+{{count}} meer)",
|
||||
"common.requestFailed": "Verzoek mislukt",
|
||||
"common.moreOptions": "Meer opties",
|
||||
"common.learnMore": "Meer informatie",
|
||||
"common.rename": "Hernoemen",
|
||||
"common.reset": "Opnieuw instellen",
|
||||
"common.archive": "Archiveren",
|
||||
"common.delete": "Verwijderen",
|
||||
"common.close": "Sluiten",
|
||||
"common.edit": "Bewerken",
|
||||
"common.loadMore": "Meer laden",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Spatie",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Verwijderen",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "Einde",
|
||||
"common.key.pageUp": "Pagina omhoog",
|
||||
"common.key.pageDown": "Pagina omlaag",
|
||||
"common.key.insert": "Invoegen",
|
||||
"common.unknown": "onbekend",
|
||||
"common.time.justNow": "Zojuist",
|
||||
"common.time.minutesAgo.short": "{{count}}m geleden",
|
||||
"common.time.hoursAgo.short": "{{count}}h geleden",
|
||||
"common.time.daysAgo.short": "{{count}}d geleden",
|
||||
"sidebar.menu.toggle": "Menu tonen of verbergen",
|
||||
"sidebar.nav.projectsAndSessions": "Projecten en sessies",
|
||||
"sidebar.settings": "Instellingen",
|
||||
"sidebar.help": "Hulp",
|
||||
"sidebar.workspaces.enable": "Schakel werkruimten in",
|
||||
"sidebar.workspaces.disable": "Schakel werkruimten uit",
|
||||
"sidebar.gettingStarted.title": "Aan de slag",
|
||||
"sidebar.gettingStarted.line1": "OpenCode bevat gratis modellen, zodat je direct aan de slag kunt.",
|
||||
"sidebar.gettingStarted.line2":
|
||||
"Maak verbinding met een aanbieder om modellen te gebruiken, waaronder Claude, GPT en Gemini.",
|
||||
"sidebar.project.recentSessions": "Recente sessies",
|
||||
"sidebar.project.viewAllSessions": "Bekijk alle sessies",
|
||||
"sidebar.project.clearNotifications": "Meldingen wissen",
|
||||
"sidebar.empty.title": "Geen projecten geopend",
|
||||
"sidebar.empty.description": "Open een project om aan de slag te gaan",
|
||||
"debugBar.ariaLabel": "Diagnostiek voor ontwikkelprestaties",
|
||||
"debugBar.na": "n.v.t.",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Laatst voltooide routenavigatie naar of binnen een sessiepagina, gemeten vanaf het starten van de router tot de eerste render nadat de navigatie is voltooid.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Voortschrijdend aantal frames per seconde over de afgelopen 5 seconden.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Slechtste frametijd van de afgelopen 5 seconden.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Frames van meer dan 32 ms in de afgelopen 5 seconden.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Geblokkeerde tijd en aantal lange taken in de afgelopen 5 seconden. Maximale taak: {{max}}.",
|
||||
"debugBar.delay.label": "VERTRAGING",
|
||||
"debugBar.delay.tip": "Slechtst waargenomen invoervertraging in de afgelopen 5 seconden.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Geschatte interactieduur gedurende de afgelopen 5 seconden. Dit is INP-achtig, niet de officiële Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Cumulatieve lay-outverschuiving sinds de app is gestart.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Gebruikte JS-heap versus heap-limiet. Alleen Chromium.",
|
||||
"debugBar.mem.tip": "Gebruikte JS-heap versus heaplimiet. {{used}} van {{limit}}.",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Desktop",
|
||||
"settings.section.server": "Server",
|
||||
"settings.tab.general": "Algemeen",
|
||||
"settings.tab.shortcuts": "Snelkoppelingen",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL-integratie",
|
||||
"settings.desktop.wsl.description": "Voer de OpenCode-server uit in WSL op Windows.",
|
||||
"settings.general.section.appearance": "Uiterlijk",
|
||||
"settings.general.section.advanced": "Geavanceerd",
|
||||
"settings.general.section.notifications": "Systeemmeldingen",
|
||||
"settings.general.section.updates": "Updates",
|
||||
"settings.general.section.sounds": "Geluidseffecten",
|
||||
"settings.general.section.feed": "Feed",
|
||||
"settings.general.section.display": "Weergave",
|
||||
"settings.general.row.language.title": "Taal",
|
||||
"settings.general.row.language.description": "Wijzig de weergavetaal voor OpenCode",
|
||||
"settings.general.row.shell.title": "Terminalshell",
|
||||
"settings.general.row.shell.description": "Shell gebruikt door de terminal- en agenttools",
|
||||
"settings.general.row.shell.autoDefault": "Automatisch (standaard)",
|
||||
"settings.general.row.shell.terminalOnly": "alleen terminal",
|
||||
"settings.general.row.appearance.title": "Uiterlijk",
|
||||
"settings.general.row.appearance.description": "Pas aan hoe OpenCode eruitziet op je apparaat",
|
||||
"settings.general.row.colorScheme.title": "Kleurenschema",
|
||||
"settings.general.row.colorScheme.description":
|
||||
"Kies of OpenCode het systeemthema, het lichte thema of het donkere thema gebruikt",
|
||||
"settings.general.row.theme.title": "Thema",
|
||||
"settings.general.row.theme.description": "Pas het thema van OpenCode aan.",
|
||||
"settings.general.row.font.title": "Codelettertype",
|
||||
"settings.general.row.font.description": "Pas het lettertype aan dat in codeblokken wordt gebruikt",
|
||||
"settings.general.row.terminalFont.title": "Terminal-lettertype",
|
||||
"settings.general.row.terminalFont.description": "Pas het lettertype aan dat in de terminal wordt gebruikt",
|
||||
"settings.general.row.uiFont.title": "UI-lettertype",
|
||||
"settings.general.row.uiFont.description": "Pas het lettertype aan dat in de hele interface wordt gebruikt",
|
||||
"settings.general.row.followup.title": "Vervolggedrag",
|
||||
"settings.general.row.followup.description":
|
||||
"Kies of vervolgprompts de sessie direct bijsturen of in een wachtrij wachten",
|
||||
"settings.general.row.followup.option.queue": "Wachtrij",
|
||||
"settings.general.row.followup.option.steer": "Sturen",
|
||||
"settings.general.row.showFileTree.title": "Bestandsstructuur",
|
||||
"settings.general.row.showFileTree.description": "Toon het paneel met de bestandsstructuur in sessies",
|
||||
"settings.general.row.showNavigation.title": "Navigatiebediening",
|
||||
"settings.general.row.showNavigation.description":
|
||||
"Toon de knoppen Vorige en Volgende in de titelbalk van de desktop-app",
|
||||
"settings.general.row.showSearch.title": "Commandopalet",
|
||||
"settings.general.row.showSearch.description": "Toon de knop voor zoeken en het commandopalet in de titelbalk",
|
||||
"settings.general.row.showTerminal.title": "Terminal",
|
||||
"settings.general.row.showTerminal.description": "Toon de terminalknop in de titelbalk van de desktop-app",
|
||||
"settings.general.row.showStatus.title": "Serverstatus",
|
||||
"settings.general.row.showStatus.description": "Toon de serverstatusknop in de titelbalk",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigatie onderaan",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Plaats de titelbalk en sessietabbladen onderaan het scherm op mobiel",
|
||||
"settings.general.row.showCustomAgents.title": "Toon agent",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Schakel tussen agenten in het invoerveld. Indien verborgen wordt standaard de Build-agent gebruikt.",
|
||||
"settings.general.row.reasoningSummaries.title": "Toon redeneeroverzichten",
|
||||
"settings.general.row.reasoningSummaries.description":
|
||||
"Geef samenvattingen van modelredeneringen weer in de tijdlijn",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Shelltoolonderdelen uitvouwen",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Toon shelltoolonderdelen standaard uitgevouwen in de tijdlijn",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Bewerkingstoolonderdelen uitvouwen",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Toon bewerkings-, schrijf- en patchtoolonderdelen standaard uitgevouwen in de tijdlijn",
|
||||
"settings.general.row.newInterface.title": "Nieuwe lay-out",
|
||||
"settings.general.row.newInterface.badge": "Nieuw",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Gebruik de nieuwe tabbladen en home-indeling. Wissel gedurende een beperkte tijd tussen lay-outs.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Je gebruikt nu de nieuwe lay-out",
|
||||
"settings.general.row.newInterfaceNotice.description": "De vorige lay-out is niet meer beschikbaar",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Negeren",
|
||||
"settings.general.row.pinchZoom.title": "Knijp om te zoomen",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Sta knijp- en Ctrl-scroll-bewegingen op het trackpad toe om in te zoomen",
|
||||
"settings.general.row.wayland.title": "Native Wayland gebruiken",
|
||||
"settings.general.row.wayland.description": "Schakel X11-fallback uit op Wayland. Vereist opnieuw opstarten.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Op Linux met monitoren met verschillende vernieuwingsfrequenties kan native Wayland stabieler zijn.",
|
||||
"settings.general.row.releaseNotes.title": "Versienotities",
|
||||
"settings.general.row.releaseNotes.description": "Pop-ups met nieuwe functies na updates tonen",
|
||||
"settings.updates.row.startup.title": "Controleer op updates bij het opstarten",
|
||||
"settings.updates.row.startup.description": "Controleer automatisch op updates wanneer OpenCode wordt gestart",
|
||||
"settings.updates.row.check.title": "Controleer op updates",
|
||||
"settings.updates.row.check.description": "Controleer handmatig op updates en installeer deze indien beschikbaar",
|
||||
"settings.updates.action.checkNow": "Controleer nu",
|
||||
"settings.updates.action.checking": "Controleren...",
|
||||
"settings.updates.action.downloading": "Downloaden...",
|
||||
"settings.updates.action.installing": "Installeren...",
|
||||
"settings.updates.toast.latest.title": "OpenCode is bijgewerkt",
|
||||
"settings.updates.toast.latest.description": "Je gebruikt de nieuwste versie van OpenCode.",
|
||||
"sound.option.none": "Geen",
|
||||
"sound.option.alert01": "Waarschuwing 01",
|
||||
"sound.option.alert02": "Waarschuwing 02",
|
||||
"sound.option.alert03": "Waarschuwing 03",
|
||||
"sound.option.alert04": "Waarschuwing 04",
|
||||
"sound.option.alert05": "Waarschuwing 05",
|
||||
"sound.option.alert06": "Waarschuwing 06",
|
||||
"sound.option.alert07": "Waarschuwing 07",
|
||||
"sound.option.alert08": "Waarschuwing 08",
|
||||
"sound.option.alert09": "Waarschuwing 09",
|
||||
"sound.option.alert10": "Waarschuwing 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nee 01",
|
||||
"sound.option.nope02": "Nee 02",
|
||||
"sound.option.nope03": "Nee 03",
|
||||
"sound.option.nope04": "Nee 04",
|
||||
"sound.option.nope05": "Nee 05",
|
||||
"sound.option.nope06": "Nee 06",
|
||||
"sound.option.nope07": "Nee 07",
|
||||
"sound.option.nope08": "Nee 08",
|
||||
"sound.option.nope09": "Nee 09",
|
||||
"sound.option.nope10": "Nee 10",
|
||||
"sound.option.nope11": "Nee 11",
|
||||
"sound.option.nope12": "Nee 12",
|
||||
"sound.option.yup01": "Ja 01",
|
||||
"sound.option.yup02": "Ja 02",
|
||||
"sound.option.yup03": "Ja 03",
|
||||
"sound.option.yup04": "Ja 04",
|
||||
"sound.option.yup05": "Ja 05",
|
||||
"sound.option.yup06": "Ja 06",
|
||||
"settings.general.notifications.agent.title": "Agent",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Toon systeemmelding wanneer de agent klaar is of aandacht nodig heeft",
|
||||
"settings.general.notifications.permissions.title": "Machtigingen",
|
||||
"settings.general.notifications.permissions.description": "Systeemmelding weergeven wanneer toestemming vereist is",
|
||||
"settings.general.notifications.errors.title": "Fouten",
|
||||
"settings.general.notifications.errors.description": "Systeemmelding weergeven wanneer er een fout optreedt",
|
||||
"settings.general.sounds.agent.title": "Agent",
|
||||
"settings.general.sounds.agent.description": "Speel geluid af wanneer de agent klaar is of aandacht nodig heeft",
|
||||
"settings.general.sounds.permissions.title": "Machtigingen",
|
||||
"settings.general.sounds.permissions.description": "Speel geluid af wanneer toestemming vereist is",
|
||||
"settings.general.sounds.errors.title": "Fouten",
|
||||
"settings.general.sounds.errors.description": "Speel geluid af wanneer er een fout optreedt",
|
||||
"settings.shortcuts.title": "Sneltoetsen",
|
||||
"settings.shortcuts.reset.button": "Resetten naar standaardwaarden",
|
||||
"settings.shortcuts.reset.toast.title": "Snelkoppelingen opnieuw ingesteld",
|
||||
"settings.shortcuts.reset.toast.description": "Sneltoetsen zijn teruggezet naar de standaardwaarden.",
|
||||
"settings.shortcuts.conflict.title": "Snelkoppeling al in gebruik",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} is al toegewezen aan {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Niet toegewezen",
|
||||
"settings.shortcuts.pressKeys": "Druk op toetsen",
|
||||
"settings.shortcuts.search.placeholder": "Zoek snelkoppelingen",
|
||||
"settings.shortcuts.search.empty": "Geen snelkoppelingen gevonden",
|
||||
"settings.shortcuts.group.general": "Algemeen",
|
||||
"settings.shortcuts.group.session": "Sessie",
|
||||
"settings.shortcuts.group.navigation": "Navigatie",
|
||||
"settings.shortcuts.group.modelAndAgent": "Model en agent",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "Prompt",
|
||||
"settings.providers.title": "Aanbieders",
|
||||
"settings.providers.description": "Aanbiederinstellingen kunnen hier worden geconfigureerd.",
|
||||
"settings.providers.section.connected": "Verbonden aanbieders",
|
||||
"settings.providers.connected.empty": "Geen verbonden aanbieders",
|
||||
"settings.providers.connected.environmentDescription": "Verbonden via je omgevingsvariabelen",
|
||||
"settings.providers.section.popular": "Populaire aanbieders",
|
||||
"settings.providers.custom.description": "Voeg een OpenAI-compatibele aanbieder toe via de basis-URL.",
|
||||
"settings.providers.tag.environment": "Omgeving",
|
||||
"settings.providers.tag.config": "Configuratie",
|
||||
"settings.providers.tag.custom": "Aangepast",
|
||||
"settings.providers.tag.other": "Anders",
|
||||
"settings.models.title": "Modellen",
|
||||
"settings.models.description": "Modelinstellingen kunnen hier worden geconfigureerd.",
|
||||
"settings.agents.title": "Agenten",
|
||||
"settings.agents.description": "Agentinstellingen kunnen hier worden geconfigureerd.",
|
||||
"settings.commands.title": "Commando's",
|
||||
"settings.commands.description": "Commando-instellingen kunnen hier worden geconfigureerd.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP-instellingen kunnen hier worden geconfigureerd.",
|
||||
"settings.permissions.title": "Machtigingen",
|
||||
"settings.permissions.description": "Bepaal welke tools de server standaard kan gebruiken.",
|
||||
"settings.permissions.section.tools": "Tools",
|
||||
"settings.permissions.toast.updateFailed.title": "Kan machtigingen niet bijwerken",
|
||||
"settings.permissions.action.allow": "Toestaan",
|
||||
"settings.permissions.action.ask": "Vragen",
|
||||
"settings.permissions.action.deny": "Weigeren",
|
||||
"settings.permissions.tool.read.title": "Lees",
|
||||
"settings.permissions.tool.read.description": "Een bestand lezen (komt overeen met het bestandspad)",
|
||||
"settings.permissions.tool.edit.title": "Bewerken",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Wijzig bestanden, inclusief bewerkingen, schrijfbewerkingen en patches",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Bestanden zoeken met globpatronen",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Zoek bestandsinhoud met behulp van reguliere expressies",
|
||||
"settings.permissions.tool.list.title": "Lijst",
|
||||
"settings.permissions.tool.list.description": "Geef bestanden in een map weer",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Voer shell-opdrachten uit",
|
||||
"settings.permissions.tool.task.title": "Taak",
|
||||
"settings.permissions.tool.task.description": "Start subagenten",
|
||||
"settings.permissions.tool.skill.title": "Vaardigheid",
|
||||
"settings.permissions.tool.skill.description": "Laad een vaardigheid op naam",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Voer taalserverquery's uit",
|
||||
"settings.permissions.tool.todowrite.title": "Taken schrijven",
|
||||
"settings.permissions.tool.todowrite.description": "Werk de takenlijst bij",
|
||||
"settings.permissions.tool.webfetch.title": "Web ophalen",
|
||||
"settings.permissions.tool.webfetch.description": "Haal inhoud op van een URL",
|
||||
"settings.permissions.tool.websearch.title": "Zoeken op internet",
|
||||
"settings.permissions.tool.websearch.description": "Zoek op internet",
|
||||
"settings.permissions.tool.external_directory.title": "Externe map",
|
||||
"settings.permissions.tool.external_directory.description": "Toegang tot bestanden buiten de projectmap",
|
||||
"settings.permissions.tool.doom_loop.title": "Doom-lus",
|
||||
"settings.permissions.tool.doom_loop.description": "Herhaalde toolaanroepen met identieke invoer detecteren",
|
||||
"session.delete.failed.title": "Kan sessie niet verwijderen",
|
||||
"session.delete.title": "Sessie verwijderen",
|
||||
"session.delete.confirm": 'Sessie "{{name}}" verwijderen?',
|
||||
"session.delete.button": "Sessie verwijderen",
|
||||
"workspace.new": "Nieuwe werkruimte",
|
||||
"workspace.type.local": "lokaal",
|
||||
"workspace.type.sandbox": "sandbox",
|
||||
"workspace.create.failed.title": "Kan werkruimte niet maken",
|
||||
"workspace.delete.failed.title": "Kan werkruimte niet verwijderen",
|
||||
"workspace.resetting.title": "Werkruimte opnieuw instellen",
|
||||
"workspace.resetting.description": "Dit kan een minuut duren.",
|
||||
"workspace.reset.failed.title": "Kan de werkruimte niet opnieuw instellen",
|
||||
"workspace.reset.success.title": "Werkruimte opnieuw ingesteld",
|
||||
"workspace.reset.success.description": "De werkruimte komt nu overeen met de standaardbranch.",
|
||||
"workspace.error.stillPreparing": "Werkruimte is nog in voorbereiding",
|
||||
"workspace.status.checking": "Controleren op niet-samengevoegde wijzigingen...",
|
||||
"workspace.status.error": "Kan de git-status niet verifiëren.",
|
||||
"workspace.status.clean": "Er zijn geen niet-samengevoegde wijzigingen gedetecteerd.",
|
||||
"workspace.status.dirty": "Niet-samengevoegde wijzigingen gedetecteerd in deze werkruimte.",
|
||||
"workspace.delete.title": "Werkruimte verwijderen",
|
||||
"workspace.delete.confirm": 'Werkruimte "{{name}}" verwijderen?',
|
||||
"workspace.delete.button": "Werkruimte verwijderen",
|
||||
"workspace.reset.title": "Werkruimte opnieuw instellen",
|
||||
"workspace.reset.confirm": 'Werkruimte "{{name}}" opnieuw instellen?',
|
||||
"workspace.reset.button": "Werkruimte opnieuw instellen",
|
||||
"workspace.reset.archived.none": "Er worden geen actieve sessies gearchiveerd.",
|
||||
"workspace.reset.archived.one": "Er wordt 1 sessie gearchiveerd.",
|
||||
"workspace.reset.archived.many": "{{count}} sessies worden gearchiveerd.",
|
||||
"workspace.reset.note":
|
||||
"Hierdoor wordt de werkruimte opnieuw ingesteld zodat deze overeenkomt met de standaardbranch.",
|
||||
}
|
||||
+55
-65
@@ -31,8 +31,8 @@ export const dict = {
|
||||
"command.settings.open": "Åpne innstillinger",
|
||||
"command.session.previous": "Forrige sesjon",
|
||||
"command.session.next": "Neste sesjon",
|
||||
"command.session.previous.unseen": "Forrige uleste sesjon",
|
||||
"command.session.next.unseen": "Neste uleste sesjon",
|
||||
"command.session.previous.unseen": "Forrige uleste økt",
|
||||
"command.session.next.unseen": "Neste uleste økt",
|
||||
"command.session.archive": "Arkiver sesjon",
|
||||
|
||||
"command.palette": "Kommandopalett",
|
||||
@@ -101,7 +101,6 @@ export const dict = {
|
||||
"dialog.provider.empty": "Ingen leverandører funnet",
|
||||
"dialog.provider.group.popular": "Populære",
|
||||
"dialog.provider.group.other": "Andre",
|
||||
"dialog.provider.custom.label": "Egendefinert OpenAI-kompatibel leverandør",
|
||||
"dialog.provider.tag.recommended": "Anbefalt",
|
||||
"dialog.provider.opencode.note": "Utvalgte modeller inkludert Claude, GPT, Gemini og mer",
|
||||
"dialog.provider.opencode.tagline": "Pålitelige, optimaliserte modeller",
|
||||
@@ -122,7 +121,6 @@ export const dict = {
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Gratis modeller levert av OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Legg til flere modeller fra populære leverandører",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Se over 70 flere leverandører",
|
||||
|
||||
"dialog.provider.viewAll": "Vis flere leverandører",
|
||||
|
||||
@@ -134,8 +132,8 @@ export const dict = {
|
||||
"provider.connect.status.waiting": "Venter på autorisering...",
|
||||
"provider.connect.status.failed": "Autorisering mislyktes: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Skriv inn API-nøkkelen din for {{provider}} for å koble til kontoen din og bruke {{provider}}-modeller i OpenCode.",
|
||||
"provider.connect.apiKey.label": "{{provider}}-API-nøkkel",
|
||||
"Skriv inn din {{provider}} API-nøkkel for å koble til kontoen din og bruke {{provider}}-modeller i OpenCode.",
|
||||
"provider.connect.apiKey.label": "{{provider}} API-nøkkel",
|
||||
"provider.connect.apiKey.placeholder": "API-nøkkel",
|
||||
"provider.connect.apiKey.required": "API-nøkkel er påkrevd",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
@@ -149,7 +147,7 @@ export const dict = {
|
||||
"provider.connect.oauth.code.visit.link": "denne lenken",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" for å hente autorisasjonskoden din for å koble til kontoen din og bruke {{provider}}-modeller i OpenCode.",
|
||||
"provider.connect.oauth.code.label": "{{method}}-autorisasjonskode",
|
||||
"provider.connect.oauth.code.label": "{{method}} autorisasjonskode",
|
||||
"provider.connect.oauth.code.placeholder": "Autorisasjonskode",
|
||||
"provider.connect.oauth.code.required": "Autorisasjonskode er påkrevd",
|
||||
"provider.connect.oauth.code.invalid": "Ugyldig autorisasjonskode",
|
||||
@@ -170,12 +168,11 @@ export const dict = {
|
||||
"provider.custom.field.providerID.description": "Små bokstaver, tall, bindestreker eller understreker",
|
||||
"provider.custom.field.name.label": "Visningsnavn",
|
||||
"provider.custom.field.name.placeholder": "Min AI-leverandør",
|
||||
"provider.custom.field.baseURL.label": "Basis-URL",
|
||||
"provider.custom.field.baseURL.label": "Base-URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API-nøkkel",
|
||||
"provider.custom.field.apiKey.placeholder": "API-nøkkel",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"Valgfritt. La stå tomt hvis du administrerer autentisering via HTTP-hoder.",
|
||||
"provider.custom.field.apiKey.description": "Valgfritt. La stå tomt hvis du administrerer autentisering via headers.",
|
||||
"provider.custom.models.label": "Modeller",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "modell-id",
|
||||
@@ -183,18 +180,18 @@ export const dict = {
|
||||
"provider.custom.models.name.placeholder": "Visningsnavn",
|
||||
"provider.custom.models.remove": "Fjern modell",
|
||||
"provider.custom.models.add": "Legg til modell",
|
||||
"provider.custom.headers.label": "HTTP-hoder (valgfritt)",
|
||||
"provider.custom.headers.key.label": "HTTP-hode",
|
||||
"provider.custom.headers.key.placeholder": "Navn på HTTP-hode",
|
||||
"provider.custom.headers.label": "Headers (valgfritt)",
|
||||
"provider.custom.headers.key.label": "Header",
|
||||
"provider.custom.headers.key.placeholder": "Header-Navn",
|
||||
"provider.custom.headers.value.label": "Verdi",
|
||||
"provider.custom.headers.value.placeholder": "verdi",
|
||||
"provider.custom.headers.remove": "Fjern HTTP-hode",
|
||||
"provider.custom.headers.add": "Legg til HTTP-hode",
|
||||
"provider.custom.headers.remove": "Fjern header",
|
||||
"provider.custom.headers.add": "Legg til header",
|
||||
"provider.custom.error.providerID.required": "Leverandør-ID er påkrevd",
|
||||
"provider.custom.error.providerID.format": "Bruk små bokstaver, tall, bindestreker eller understreker",
|
||||
"provider.custom.error.providerID.exists": "Denne leverandør-ID-en finnes allerede",
|
||||
"provider.custom.error.providerID.exists": "Den leverandør-IDen finnes allerede",
|
||||
"provider.custom.error.name.required": "Visningsnavn er påkrevd",
|
||||
"provider.custom.error.baseURL.required": "Basis-URL er påkrevd",
|
||||
"provider.custom.error.baseURL.required": "Base-URL er påkrevd",
|
||||
"provider.custom.error.baseURL.format": "Må starte med http:// eller https://",
|
||||
"provider.custom.error.required": "Påkrevd",
|
||||
"provider.custom.error.duplicate": "Duplikat",
|
||||
@@ -227,7 +224,7 @@ export const dict = {
|
||||
"common.cancel": "Avbryt",
|
||||
"common.connect": "Koble til",
|
||||
"common.disconnect": "Koble fra",
|
||||
"common.continue": "Fortsett",
|
||||
"common.continue": "Send inn",
|
||||
"common.submit": "Send inn",
|
||||
"common.save": "Lagre",
|
||||
"common.saving": "Lagrer...",
|
||||
@@ -248,13 +245,13 @@ export const dict = {
|
||||
"prompt.example.3": "Fiks ødelagte tester",
|
||||
"prompt.example.4": "Forklar hvordan autentisering fungerer",
|
||||
"prompt.example.5": "Finn og fiks sikkerhetssårbarheter",
|
||||
"prompt.example.6": "Legg til enhetstester for brukertjenesten",
|
||||
"prompt.example.6": "Legg til enhetstester for brukerservicen",
|
||||
"prompt.example.7": "Refaktorer denne funksjonen for bedre lesbarhet",
|
||||
"prompt.example.8": "Hva betyr denne feilen?",
|
||||
"prompt.example.9": "Hjelp meg med å feilsøke dette problemet",
|
||||
"prompt.example.10": "Generer API-dokumentasjon",
|
||||
"prompt.example.11": "Optimaliser databasespørringer",
|
||||
"prompt.example.12": "Legg til inndatavalidering",
|
||||
"prompt.example.12": "Legg til inputvalidering",
|
||||
"prompt.example.13": "Lag en ny komponent for...",
|
||||
"prompt.example.14": "Hvordan deployer jeg dette prosjektet?",
|
||||
"prompt.example.15": "Gjennomgå koden min for beste praksis",
|
||||
@@ -264,7 +261,7 @@ export const dict = {
|
||||
"prompt.example.19": "Legg til logging i hele kodebasen",
|
||||
"prompt.example.20": "Hvilke avhengigheter er utdaterte?",
|
||||
"prompt.example.21": "Hjelp meg med å skrive et migreringsskript",
|
||||
"prompt.example.22": "Implementer hurtigbufring for dette endepunktet",
|
||||
"prompt.example.22": "Implementer caching for dette endepunktet",
|
||||
"prompt.example.23": "Legg til paginering i denne listen",
|
||||
"prompt.example.24": "Lag en CLI-kommando for...",
|
||||
"prompt.example.25": "Hvordan fungerer miljøvariabler her?",
|
||||
@@ -274,7 +271,7 @@ export const dict = {
|
||||
"prompt.dropzone.label": "Slipp bilder, PDF-er eller tekstfiler her",
|
||||
"prompt.dropzone.file.label": "Slipp for å @nevne fil",
|
||||
"prompt.slash.badge.custom": "egendefinert",
|
||||
"prompt.slash.badge.skill": "ferdighet",
|
||||
"prompt.slash.badge.skill": "skill",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "aktiv",
|
||||
"prompt.context.includeActiveFile": "Inkluder aktiv fil",
|
||||
@@ -291,7 +288,6 @@ export const dict = {
|
||||
"prompt.action.stop": "Stopp",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Ikke støttet vedlegg",
|
||||
"prompt.toast.attachmentDuplicate.title": "Denne filen er allerede lastet opp",
|
||||
"prompt.toast.pasteUnsupported.description": "Kun bilder, PDF-er eller tekstfiler kan legges ved her.",
|
||||
"prompt.toast.modelAgentRequired.title": "Velg en agent og modell",
|
||||
"prompt.toast.modelAgentRequired.description": "Velg en agent og modell før du sender en forespørsel.",
|
||||
@@ -300,14 +296,14 @@ export const dict = {
|
||||
"prompt.toast.shellSendFailed.title": "Kunne ikke sende shell-kommando",
|
||||
"prompt.toast.commandSendFailed.title": "Kunne ikke sende kommando",
|
||||
"prompt.toast.promptSendFailed.title": "Kunne ikke sende forespørsel",
|
||||
"prompt.toast.promptSendFailed.description": "Kunne ikke hente sesjon",
|
||||
"prompt.toast.promptSendFailed.description": "Kunne ikke hente økt",
|
||||
|
||||
"dialog.mcp.title": "MCP-er",
|
||||
"dialog.mcp.description": "{{enabled}} av {{total}} aktivert",
|
||||
"dialog.mcp.empty": "Ingen MCP-er konfigurert",
|
||||
|
||||
"dialog.lsp.empty": "LSP-er automatisk oppdaget fra filtyper",
|
||||
"dialog.plugins.empty": "Programtillegg konfigurert i opencode.json",
|
||||
"dialog.plugins.empty": "Plugins konfigurert i opencode.json",
|
||||
|
||||
"mcp.status.connected": "tilkoblet",
|
||||
"mcp.status.failed": "mislyktes",
|
||||
@@ -368,8 +364,7 @@ export const dict = {
|
||||
"dialog.project.edit.worktree.startup.placeholder": "f.eks. bun install",
|
||||
|
||||
"context.breakdown.title": "Kontekstfordeling",
|
||||
"context.breakdown.note":
|
||||
'Omtrentlig fordeling av inndatatokener. "Annet" inkluderer verktøydefinisjoner og overhead.',
|
||||
"context.breakdown.note": 'Omtrentlig fordeling av input-tokens. "Annet" inkluderer verktøydefinisjoner og overhead.',
|
||||
"context.breakdown.system": "System",
|
||||
"context.breakdown.user": "Bruker",
|
||||
"context.breakdown.assistant": "Assistent",
|
||||
@@ -384,19 +379,19 @@ export const dict = {
|
||||
"context.stats.provider": "Leverandør",
|
||||
"context.stats.model": "Modell",
|
||||
"context.stats.limit": "Kontekstgrense",
|
||||
"context.stats.totalTokens": "Totalt antall tokener",
|
||||
"context.stats.totalTokens": "Totalt antall tokens",
|
||||
"context.stats.usage": "Forbruk",
|
||||
"context.stats.inputTokens": "Inndatatokener",
|
||||
"context.stats.outputTokens": "Utdatatokener",
|
||||
"context.stats.reasoningTokens": "Resonneringstokener",
|
||||
"context.stats.cacheTokens": "Hurtigbuffertokener (les/skriv)",
|
||||
"context.stats.inputTokens": "Input-tokens",
|
||||
"context.stats.outputTokens": "Output-tokens",
|
||||
"context.stats.reasoningTokens": "Resonnerings-tokens",
|
||||
"context.stats.cacheTokens": "Cache-tokens (les/skriv)",
|
||||
"context.stats.userMessages": "Brukermeldinger",
|
||||
"context.stats.assistantMessages": "Assistentmeldinger",
|
||||
"context.stats.totalCost": "Total kostnad",
|
||||
"context.stats.sessionCreated": "Sesjon opprettet",
|
||||
"context.stats.lastActivity": "Siste aktivitet",
|
||||
|
||||
"context.usage.tokens": "Tokener",
|
||||
"context.usage.tokens": "Tokens",
|
||||
"context.usage.usage": "Forbruk",
|
||||
"context.usage.cost": "Kostnad",
|
||||
"context.usage.clickToView": "Klikk for å se kontekst",
|
||||
@@ -427,9 +422,9 @@ export const dict = {
|
||||
"toast.scheme.title": "Fargevalg",
|
||||
|
||||
"toast.workspace.enabled.title": "Arbeidsområder aktivert",
|
||||
"toast.workspace.enabled.description": "Flere arbeidsområder vises nå i sidefeltet",
|
||||
"toast.workspace.enabled.description": "Flere worktrees vises nå i sidefeltet",
|
||||
"toast.workspace.disabled.title": "Arbeidsområder deaktivert",
|
||||
"toast.workspace.disabled.description": "Kun hovedarbeidsområdet vises i sidefeltet",
|
||||
"toast.workspace.disabled.description": "Kun hoved-worktree vises i sidefeltet",
|
||||
|
||||
"toast.permissions.autoaccept.on.title": "Aksepterer tillatelser automatisk",
|
||||
"toast.permissions.autoaccept.on.description": "Forespørsler om tillatelse vil bli godkjent automatisk",
|
||||
@@ -477,7 +472,7 @@ export const dict = {
|
||||
"error.page.version": "Versjon: {{version}}",
|
||||
|
||||
"error.dev.rootNotFound":
|
||||
"Rotelement ikke funnet. Glemte du å legge det til i index.html? Eller kanskje id-attributtet er feilstavet?",
|
||||
"Rotelement ikke funnet. Glemte du å legge det til i index.html? Eller kanskje id-attributten er feilstavet?",
|
||||
|
||||
"error.serverSync.connectFailed": "Kunne ikke koble til server. Kjører det en server på `{{url}}`?",
|
||||
"directory.error.invalidUrl": "Ugyldig mappe i URL-en.",
|
||||
@@ -577,7 +572,7 @@ export const dict = {
|
||||
"status.popover.tab.servers": "Servere",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Programtillegg",
|
||||
"status.popover.tab.plugins": "Plugins",
|
||||
"status.popover.action.manageServers": "Administrer servere",
|
||||
|
||||
"session.share.popover.title": "Publiser på nett",
|
||||
@@ -617,7 +612,7 @@ export const dict = {
|
||||
"common.delete": "Slett",
|
||||
"common.close": "Lukk",
|
||||
"common.edit": "Rediger",
|
||||
"common.loadMore": "Last inn flere",
|
||||
"common.loadMore": "Last flere",
|
||||
"common.key.esc": "ESC",
|
||||
|
||||
"sidebar.menu.toggle": "Veksle meny",
|
||||
@@ -655,17 +650,16 @@ export const dict = {
|
||||
"settings.general.row.appearance.title": "Utseende",
|
||||
"settings.general.row.appearance.description": "Tilpass hvordan OpenCode ser ut på enheten din",
|
||||
"settings.general.row.colorScheme.title": "Fargevalg",
|
||||
"settings.general.row.colorScheme.description":
|
||||
"Velg om OpenCode skal følge systeminnstillingen eller bruke lyst eller mørkt tema",
|
||||
"settings.general.row.colorScheme.description": "Velg om OpenCode skal følge systemets, lyst eller mørkt tema",
|
||||
"settings.general.row.theme.title": "Tema",
|
||||
"settings.general.row.theme.description": "Tilpass temaet i OpenCode.",
|
||||
"settings.general.row.theme.description": "Tilpass hvordan OpenCode er tematisert.",
|
||||
"settings.general.row.font.title": "Kodefont",
|
||||
"settings.general.row.font.description": "Tilpass skrifttypen som brukes i kodeblokker",
|
||||
"settings.general.row.terminalFont.title": "Terminalskrift",
|
||||
"settings.general.row.terminalFont.description": "Tilpass skrifttypen som brukes i terminalen",
|
||||
"settings.general.row.uiFont.title": "UI-skrift",
|
||||
"settings.general.row.uiFont.description": "Tilpass skrifttypen som brukes i hele grensesnittet",
|
||||
"settings.general.row.followup.title": "Oppfølgingsatferd",
|
||||
"settings.general.row.followup.title": "Oppfølgingsadferd",
|
||||
"settings.general.row.followup.description": "Velg om oppfølgingsspørsmål skal kjøres umiddelbart eller vente i kø",
|
||||
"settings.general.row.followup.option.queue": "Kø",
|
||||
"settings.general.row.followup.option.steer": "Styr",
|
||||
@@ -676,10 +670,10 @@ export const dict = {
|
||||
"settings.general.row.editToolPartsExpanded.title": "Utvid edit-verktøydeler",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Vis edit-, write- og patch-verktøydeler utvidet som standard i tidslinjen",
|
||||
"settings.general.row.wayland.title": "Bruk Wayland direkte",
|
||||
"settings.general.row.wayland.description": "Deaktiver X11-reserveløsningen på Wayland. Krever omstart.",
|
||||
"settings.general.row.wayland.title": "Bruk innebygd Wayland",
|
||||
"settings.general.row.wayland.description": "Deaktiver X11-fallback på Wayland. Krever omstart.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"På Linux med skjermer med blandet oppdateringsfrekvens kan direkte Wayland-støtte være mer stabilt.",
|
||||
"På Linux med skjermer med blandet oppdateringsfrekvens kan innebygd Wayland være mer stabilt.",
|
||||
|
||||
"settings.general.row.releaseNotes.title": "Utgivelsesnotater",
|
||||
"settings.general.row.releaseNotes.description": 'Vis "Hva er nytt"-vinduer etter oppdateringer',
|
||||
@@ -690,7 +684,7 @@ export const dict = {
|
||||
"settings.updates.row.check.description": "Se etter oppdateringer manuelt og installer hvis tilgjengelig",
|
||||
"settings.updates.action.checkNow": "Sjekk nå",
|
||||
"settings.updates.action.checking": "Sjekker...",
|
||||
"settings.updates.toast.latest.title": "OpenCode er oppdatert",
|
||||
"settings.updates.toast.latest.title": "Du er oppdatert",
|
||||
"settings.updates.toast.latest.description": "Du bruker den nyeste versjonen av OpenCode.",
|
||||
"sound.option.none": "Ingen",
|
||||
"sound.option.alert01": "Varsel 01",
|
||||
@@ -759,7 +753,7 @@ export const dict = {
|
||||
"settings.shortcuts.reset.toast.title": "Snarveier tilbakestilt",
|
||||
"settings.shortcuts.reset.toast.description": "Tastatursnarveier er tilbakestilt til standard.",
|
||||
"settings.shortcuts.conflict.title": "Snarvei allerede i bruk",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} er allerede tilordnet {{titles}}.",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} er allerede tilordnet til {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Ikke tilordnet",
|
||||
"settings.shortcuts.pressKeys": "Trykk taster",
|
||||
"settings.shortcuts.search.placeholder": "Søk etter snarveier",
|
||||
@@ -809,7 +803,7 @@ export const dict = {
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Søk i filinnhold ved hjelp av regulære uttrykk",
|
||||
"settings.permissions.tool.list.title": "Liste",
|
||||
"settings.permissions.tool.list.description": "List opp filer i en mappe",
|
||||
"settings.permissions.tool.list.description": "List filer i en mappe",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Kjør shell-kommandoer",
|
||||
"settings.permissions.tool.task.title": "Oppgave",
|
||||
@@ -827,7 +821,7 @@ export const dict = {
|
||||
"settings.permissions.tool.external_directory.title": "Ekstern mappe",
|
||||
"settings.permissions.tool.external_directory.description": "Få tilgang til filer utenfor prosjektmappen",
|
||||
"settings.permissions.tool.doom_loop.title": "Doom Loop",
|
||||
"settings.permissions.tool.doom_loop.description": "Oppdager gjentatte verktøykall med identiske inndata",
|
||||
"settings.permissions.tool.doom_loop.description": "Oppdager gjentatte verktøykall med identisk input",
|
||||
|
||||
"session.delete.failed.title": "Kunne ikke slette sesjon",
|
||||
"session.delete.title": "Slett sesjon",
|
||||
@@ -872,14 +866,14 @@ export const dict = {
|
||||
"common.time.hoursAgo.short": "{{count}} t siden",
|
||||
"common.time.daysAgo.short": "{{count}} d siden",
|
||||
"settings.providers.connected.environmentDescription": "Koblet til fra miljøvariablene dine",
|
||||
"settings.providers.custom.description": "Legg til en OpenAI-kompatibel leverandør via en basis-URL.",
|
||||
"settings.providers.custom.description": "Legg til en OpenAI-kompatibel leverandør via basis-URL.",
|
||||
|
||||
"app.server.unreachable": "Kunne ikke nå {{server}}",
|
||||
"app.server.retrying": "Prøver på nytt automatisk...",
|
||||
"app.server.otherServers": "Andre servere",
|
||||
"dialog.server.add.usernamePlaceholder": "brukernavn",
|
||||
"dialog.server.add.passwordPlaceholder": "passord",
|
||||
"server.row.noUsername": "ikke noe brukernavn",
|
||||
"server.row.noUsername": "inget brukernavn",
|
||||
"session.review.noVcs.createGit.title": "Opprett et Git-depot",
|
||||
"session.review.noVcs.createGit.description": "Spor, gjennomgå og angre endringer i dette prosjektet",
|
||||
"session.review.noVcs.createGit.actionLoading": "Oppretter Git-depot...",
|
||||
@@ -888,9 +882,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}} av {{total}} spørsmål",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Filutforsker",
|
||||
"session.header.reveal.finder": "Vis i Finder",
|
||||
"session.header.reveal.fileExplorer": "Vis i Filutforsker",
|
||||
"session.header.reveal.containingFolder": "Åpne mappen som inneholder dette elementet",
|
||||
"session.header.open.fileManager": "Filbehandler",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -909,25 +900,25 @@ export const dict = {
|
||||
"debugBar.na": "i/t",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Siste fullførte ruteovergang som berører en sesjonsside, målt fra ruterstart til første gjengivelse etter at den har roet seg.",
|
||||
"Siste fullførte ruteovergang som berører en sesjonsside, målt fra ruterstart til første opptegning etter at den har roet seg.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Rullende bilder per sekund over de siste 5 sekundene.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Lengste bildetid over de siste 5 sekundene.",
|
||||
"debugBar.frame.tip": "Verste bildetid over de siste 5 sekundene.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Bilder som tar over 32 ms i de siste 5 sekundene.",
|
||||
"debugBar.jank.tip": "Bilder over 32ms i de siste 5 sekundene.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Blokkert tid og antall lange oppgaver i de siste 5 sekundene. Lengste oppgave: {{max}}.",
|
||||
"debugBar.long.tip": "Blokkert tid og antall lange oppgaver i de siste 5 sekundene. Maks oppgave: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Lengste observerte inndataforsinkelse i de siste 5 sekundene.",
|
||||
"debugBar.delay.tip": "Verste observerte inndataforsinkelse i de siste 5 sekundene.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Omtrentlig interaksjonsvarighet over de siste 5 sekundene. Dette er INP-lignende, ikke den offisielle Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Kumulativ layoutforskyvning for gjeldende app-levetid.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Brukt JS-heap kontra heap-grense. Kun Chromium.",
|
||||
"debugBar.mem.tip": "Brukt JS-heap kontra heap-grense. {{used}} av {{limit}}.",
|
||||
"debugBar.mem.tipUnavailable": "Brukt JS-heap vs heap-grense. Kun Chromium.",
|
||||
"debugBar.mem.tip": "Brukt JS-heap vs heap-grense. {{used}} av {{limit}}.",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
@@ -1066,7 +1057,7 @@ export const dict = {
|
||||
"session.error.notFound.description": "Denne fanen peker til en sesjon som ikke lenger finnes på denne serveren.",
|
||||
"session.error.notFound.closeTab": "Lukk fane",
|
||||
"session.error.serverConnection": "Kan ikke koble til denne serveren",
|
||||
"session.review.noUncommittedChanges": "Ingen endringer som ikke er sjekket inn ennå",
|
||||
"session.review.noUncommittedChanges": "Ingen ucommittede endringer ennå",
|
||||
"session.review.noBranchChanges": "Ingen grenendringer ennå",
|
||||
"session.question.minimize": "Minimer spørsmål",
|
||||
"session.question.restore": "Gjenopprett spørsmål",
|
||||
@@ -1104,9 +1095,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Navigasjon nederst",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Plasser tittellinjen og sesjonsfanene nederst på mobilskjermen",
|
||||
"settings.general.row.showCustomAgents.title": "Vis agent",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Bytt mellom agenter i skrivefeltet. Når velgeren er skjult, brukes Build-agenten som standard.",
|
||||
"settings.general.row.showCustomAgents.title": "Egendefinerte agenter",
|
||||
"settings.general.row.showCustomAgents.description": "Vis agentvelgeren i skrivefeltet",
|
||||
"settings.general.row.newInterface.title": "Nytt oppsett",
|
||||
"settings.general.row.newInterface.badge": "Ny",
|
||||
"settings.general.row.newInterface.description":
|
||||
|
||||
@@ -1,1019 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "تجویز کیتا گیا",
|
||||
"command.category.view": "نظارہ",
|
||||
"command.category.project": "پروجیکٹ",
|
||||
"command.category.provider": "پرووائیڈر",
|
||||
"command.category.server": "سرور",
|
||||
"command.category.session": "سیشن",
|
||||
"command.category.theme": "تھیم",
|
||||
"command.category.language": "بولی",
|
||||
"command.category.file": "فائل",
|
||||
"command.category.context": "تناظر",
|
||||
"command.category.terminal": "Terminal",
|
||||
"command.category.model": "ماڈل",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Agent",
|
||||
"command.category.permissions": "اجازتاں",
|
||||
"command.category.workspace": "ورک سپیس",
|
||||
"command.category.settings": "ترتیبات",
|
||||
"theme.scheme.system": "نظام",
|
||||
"theme.scheme.light": "ہلکا",
|
||||
"theme.scheme.dark": "گہرا",
|
||||
"command.sidebar.toggle": "سائڈبار نوں ٹوگل کرو",
|
||||
"command.project.open": "پروجیکٹ کھولو",
|
||||
"command.project.previous": "پچھلا پروجیکٹ",
|
||||
"command.project.next": "اگلا پروجیکٹ",
|
||||
"command.project.index": "پروجیکٹ {{index}} تے سوئچ کرو",
|
||||
"command.provider.connect": "پرووائیڈر نال جڑو",
|
||||
"command.server.switch": "سرور سوئچ کرو",
|
||||
"command.settings.open": "ترتیبات کھولو",
|
||||
"command.session.previous": "پچھلا سیشن",
|
||||
"command.session.next": "اگلا سیشن",
|
||||
"command.session.previous.unseen": "پچھلا ان پڑھیا سیشن",
|
||||
"command.session.next.unseen": "اگلا ان پڑھیا سیشن",
|
||||
"command.session.archive": "آرکائیو سیشن",
|
||||
"command.palette": "کمانڈ پیلیٹ",
|
||||
"command.theme.cycle": "اگلا تھیم ورتو",
|
||||
"command.theme.set": "تھیم ورتو: {{theme}}",
|
||||
"command.theme.scheme.cycle": "اگلی رنگ سکیم ورتو",
|
||||
"command.theme.scheme.set": "رنگ سکیم ورتو: {{scheme}}",
|
||||
"command.language.cycle": "اگلی بولی ورتو",
|
||||
"command.language.set": "بولی ورتو: {{language}}",
|
||||
"command.session.new": "نواں سیشن",
|
||||
"command.file.open": "فائل کھولو",
|
||||
"command.tab.close": "ٹیب بند کرو",
|
||||
"command.tab.reopenClosed": "بند ٹیب دوبارہ کھولو",
|
||||
"command.context.addSelection": "سیاق و سباق وچ انتخاب شامل کرو",
|
||||
"command.context.addSelection.description": "موجودہ فائل چوں منتخب کردہ لائناں شامل کرو",
|
||||
"command.input.focus": "ان پٹ تے فوکس کرو",
|
||||
"command.terminal.toggle": "ٹرمینل نوں ٹوگل کرو",
|
||||
"command.fileTree.toggle": "فائل ٹری نوں ٹوگل کرو",
|
||||
"command.review.toggle": "جائزہ ٹوگل کرو",
|
||||
"command.terminal.new": "نواں ٹرمینل",
|
||||
"command.terminal.new.description": "اک نواں ٹرمینل ٹیب بناؤ",
|
||||
"command.steps.toggle": "قدم ٹوگل کرو",
|
||||
"command.steps.toggle.description": "موجودہ پیغام لئی اقدامات وکھاؤ یا لُکا دیو",
|
||||
"command.message.previous": "پچھلا سنیہا",
|
||||
"command.message.previous.description": "پچھلے صارف دے سنیہے تے جاؤ",
|
||||
"command.message.next": "اگلا سنیہا",
|
||||
"command.message.next.description": "اگلے ورتن آلے دے سنیہے تے جاؤ",
|
||||
"command.model.choose": "ماڈل دا انتخاب کرو",
|
||||
"command.model.choose.description": "اک وکھرا ماڈل چنو",
|
||||
"command.mcp.toggle": "MCPs نوں ٹوگل کرو",
|
||||
"command.mcp.toggle.description": "MCPs نوں ٹوگل کرو",
|
||||
"command.agent.cycle": "اگلا ایجنٹ ورتو",
|
||||
"command.agent.cycle.description": "اگلے ایجنٹ تے سوئچ کرو",
|
||||
"command.agent.cycle.reverse": "پچھلا ایجنٹ ورتو",
|
||||
"command.agent.cycle.reverse.description": "پچھلے ایجنٹ تے سوئچ کرو",
|
||||
"command.model.variant.cycle": "سوچن دی محنت بدلو",
|
||||
"command.model.variant.cycle.description": "محنت دی اگلی سطح تے جاؤ",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "پرامپٹ",
|
||||
"command.permissions.autoaccept.enable": "خودکار اجازتاں قبول کرو",
|
||||
"command.permissions.autoaccept.disable": "خودکار اجازتاں قبول کرنا بند کرو",
|
||||
"command.workspace.toggle": "ورک سپیس ٹوگل کرو",
|
||||
"command.workspace.toggle.description": "سائڈبار وچ متعدد ورک اسپیسز نو فعال یا غیر فعال کرو",
|
||||
"command.session.undo": "کالعدم کرو",
|
||||
"command.session.undo.description": "آخری سنیہا کالعدم کرو",
|
||||
"command.session.redo": "دوبارہ کرو",
|
||||
"command.session.redo.description": "آخری انڈون سنیہا دوبارہ کرو",
|
||||
"command.session.compact": "سیشن مختصر کرو",
|
||||
"command.session.compact.description": "سیاق و سباق دا سائز گھٹ کرن لئی سیشن دا خلاصہ کرو",
|
||||
"command.session.fork": "سنیہا توں فورک",
|
||||
"command.session.fork.description": "پچھلے سنیہے توں اک نواں سیشن بناؤ",
|
||||
"command.session.share": "سیشن شیئر کرو",
|
||||
"command.session.share.description": "اس سیشن نو شیئر کرو تے URL نو کلپ بورڈ تے کاپی کرو",
|
||||
"command.session.unshare": "سیشن شیئر کرنا بند کرو",
|
||||
"command.session.unshare.description": "اس سیشن نو شیئر کرنا بند کرو",
|
||||
"palette.search.placeholder": "فائلاں، کمانڈز، تے سیشنز تلاش کرو",
|
||||
"palette.search.placeholder.home": "سرچ کمانڈز تے سیشنز",
|
||||
"palette.empty": "کوئی نتیجہ نئیں ملیا",
|
||||
"palette.group.commands": "کمانڈز",
|
||||
"palette.group.files": "فائلاں",
|
||||
"dialog.provider.search.placeholder": "پرووائیڈراں نوں لبھو",
|
||||
"dialog.provider.empty": "کوئی پرووائیڈر نئیں لبھیا",
|
||||
"dialog.provider.group.popular": "مشہور",
|
||||
"dialog.provider.group.other": "ہور",
|
||||
"dialog.provider.custom.label": "من پسند OpenAI نال رلدا پرووائیڈر",
|
||||
"dialog.provider.tag.recommended": "سفارش کیتی",
|
||||
"dialog.provider.opencode.note": "Claude، GPT، Gemini تے ہور سمیت کیوریٹڈ ماڈل",
|
||||
"dialog.provider.opencode.tagline": "قابل اعتماد اصلاح شدہ ماڈل",
|
||||
"dialog.provider.opencodeGo.tagline": "ہر اک لئی گھٹ قیمت دی رکنیت",
|
||||
"dialog.provider.anthropic.note": "پرو تے میکس سمیت Claude ماڈل تک براہ راست رسائی",
|
||||
"dialog.provider.copilot.note": "GitHub Copilot دے ذریعے کوڈنگ دی مدد لئی اے آئی ماڈل",
|
||||
"dialog.provider.openai.note": "تیز تے صلاحیت والے عام AI کماں لئی GPT ماڈل",
|
||||
"dialog.provider.google.note": "تیز تے منظم جواباں لئی Gemini ماڈل",
|
||||
"dialog.provider.openrouter.note": "اک پرووائیڈر توں سارے سپورٹڈ ماڈلاں تک رسائی لوو",
|
||||
"dialog.provider.vercel.note": "سمارٹ روٹنگ دے نال اے آئی ماڈل تک متحدہ رسائی",
|
||||
"dialog.model.select.title": "ماڈل چنو",
|
||||
"dialog.model.search.placeholder": "ماڈل لبھو",
|
||||
"dialog.model.empty": "کوئی ماڈل نئیں لبھیا",
|
||||
"dialog.model.manage": "ماڈل دا انتظام کرو",
|
||||
"dialog.model.manage.description": "ماڈل سلیکٹر وچ کیہڑے ماڈل دکھائی دیندے نیں، اپنی مرضی دے مطابق بناؤ۔",
|
||||
"dialog.model.manage.provider.toggle": "{{provider}} دے سارے ماڈل ٹوگل کرو",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode دے ذریعہ فراہم کردہ مفت ماڈل",
|
||||
"dialog.model.unpaid.addMore.title": "مقبول پرووائیڈراں توں ہور ماڈل شامل کرو",
|
||||
"dialog.model.unpaid.viewMoreProviders": "70+ ہور پرووائیڈر ویکھو",
|
||||
"dialog.provider.viewAll": "ہور پرووائیڈر وکھاؤ",
|
||||
"provider.connect.title": "{{provider}} نال جڑو",
|
||||
"provider.connect.title.anthropicProMax": "Claude پرو/میکس دے نال لاگ ان کرو",
|
||||
"provider.connect.selectMethod": "{{provider}} لئی لاگ ان دا طریقہ منتخب کرو۔",
|
||||
"provider.connect.method.apiKey": "API کلید",
|
||||
"provider.connect.status.inProgress": "اختیار دیندے پئے آں...",
|
||||
"provider.connect.status.waiting": "اختیار ملن دی اڈیک اے...",
|
||||
"provider.connect.status.failed": "اختیار نئیں مل سکیا: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"اپنے اکاؤنٹ نوں جوڑن لئی اپنی {{provider}} API کلید درج کرو تے OpenCode وچ {{provider}} ماڈل ورتو۔",
|
||||
"provider.connect.apiKey.label": "{{provider}} API کلید",
|
||||
"provider.connect.apiKey.placeholder": "API کلید",
|
||||
"provider.connect.apiKey.required": "API کلید دی لوڑ اے",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"زین تہانوں کوڈنگ ایجنٹاں لئی قابل اعتماد مرضی دے ماڈلاں دے اک کیوریٹڈ سیٹ تک رسائی فراہم کردا اے۔",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"اک API کلید دے نال تہانوں Claude، GPT، Gemini، GLM تے ہور ماڈلاں تک رسائی ملے گی۔",
|
||||
"provider.connect.opencodeZen.visit.prefix": "ویکھو ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " اپنی API کلید حاصل کرن لئی۔",
|
||||
"provider.connect.oauth.code.visit.prefix": "ویکھو ",
|
||||
"provider.connect.oauth.code.visit.link": "ایہہ لنک",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" اپنے اکاؤنٹ نوں جوڑن تے OpenCode وچ {{provider}} ماڈل ورتن لئی اپنا اجازت کوڈ حاصل کرن لئی۔",
|
||||
"provider.connect.oauth.code.label": "{{method}} اجازت دا کوڈ",
|
||||
"provider.connect.oauth.code.placeholder": "اجازتی کوڈ",
|
||||
"provider.connect.oauth.code.required": "اجازتی کوڈ دی لوڑ اے",
|
||||
"provider.connect.oauth.code.invalid": "غلط اجازتی کوڈ",
|
||||
"provider.connect.oauth.auto.visit.prefix": "ویکھو ",
|
||||
"provider.connect.oauth.auto.visit.link": "ایہہ لنک",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" تے اپنے اکاؤنٹ نوں جوڑن تے OpenCode وچ {{provider}} ماڈل ورتن لئی تھلے دتا کوڈ درج کرو۔",
|
||||
"provider.connect.oauth.auto.confirmationCode": "تصدیقی کوڈ",
|
||||
"provider.connect.toast.connected.title": "{{provider}} جڑیا ہویا",
|
||||
"provider.connect.toast.connected.description": "{{provider}} ماڈل ہن ورتن لئی دستیاب ہن۔",
|
||||
"provider.custom.title": "من پسند پرووائیڈر",
|
||||
"provider.custom.description.prefix": "OpenAI نال رلدا پرووائیڈر سیٹ کرو۔ ویکھو ",
|
||||
"provider.custom.description.link": "پرووائیڈر کنفگ دے دستاویز",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "پرووائیڈر ID",
|
||||
"provider.custom.field.providerID.placeholder": "میرا پرووائیڈر",
|
||||
"provider.custom.field.providerID.description": "نکے اکھر، نمبر، ہائفن، یا انڈر سکور",
|
||||
"provider.custom.field.name.label": "ڈسپلے دا ناں",
|
||||
"provider.custom.field.name.placeholder": "میرا اے آئی فراہم کرن آلا",
|
||||
"provider.custom.field.baseURL.label": "بیس URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API کلید",
|
||||
"provider.custom.field.apiKey.placeholder": "API کلید",
|
||||
"provider.custom.field.apiKey.description": "اختیاری۔ جے تسی ہیڈرز دے ذریعے تصدیق دا انتظام کردے او تے خالی چھڈ دیو۔",
|
||||
"provider.custom.models.label": "ماڈل",
|
||||
"provider.custom.models.id.label": "آئی ڈی",
|
||||
"provider.custom.models.id.placeholder": "ماڈل آئی ڈی",
|
||||
"provider.custom.models.name.label": "ناں",
|
||||
"provider.custom.models.name.placeholder": "ڈسپلے دا ناں",
|
||||
"provider.custom.models.remove": "ماڈل ہٹا دیو",
|
||||
"provider.custom.models.add": "ماڈل شامل کرو",
|
||||
"provider.custom.headers.label": "ہیڈرز (اختیاری)",
|
||||
"provider.custom.headers.key.label": "ہیڈر",
|
||||
"provider.custom.headers.key.placeholder": "ہیڈر دا ناں",
|
||||
"provider.custom.headers.value.label": "قدر",
|
||||
"provider.custom.headers.value.placeholder": "قدر",
|
||||
"provider.custom.headers.remove": "ہیڈر ہٹا دیو",
|
||||
"provider.custom.headers.add": "ہیڈر شامل کرو",
|
||||
"provider.custom.error.providerID.required": "پروائیڈر آئی ڈی دی لوڑ اے",
|
||||
"provider.custom.error.providerID.format": "نکے اکھر، نمبر، ہائفن، یا انڈر سکور ورتو",
|
||||
"provider.custom.error.providerID.exists": "اوہ پرووائیڈر ID پہلے توں موجود اے",
|
||||
"provider.custom.error.name.required": "ڈسپلے ناں دی لوڑ اے",
|
||||
"provider.custom.error.baseURL.required": "بیس URL دی لوڑ اے",
|
||||
"provider.custom.error.baseURL.format": "http:// یا https:// توں شروع کرنا ضروری اے۔",
|
||||
"provider.custom.error.required": "لازمی اے",
|
||||
"provider.custom.error.duplicate": "دُہرا",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} منقطع",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}} ماڈل ہن دستیاب نئیں ہن۔",
|
||||
"model.tag.free": "مفت",
|
||||
"model.tag.latest": "تازہ ترین",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "متن",
|
||||
"model.input.image": "تصویر",
|
||||
"model.input.audio": "آڈیو",
|
||||
"model.input.video": "ویڈيو",
|
||||
"model.input.pdf": "پی ڈی ایف",
|
||||
"model.tooltip.allows": "اجازت دیندا اے: {{inputs}}",
|
||||
"model.tooltip.context.label": "تناظر",
|
||||
"model.tooltip.inputs": "ان پٹ",
|
||||
"model.tooltip.model": "ماڈل",
|
||||
"model.tooltip.provider": "پرووائیڈر",
|
||||
"model.tooltip.reasoning": "استدلال",
|
||||
"model.tooltip.reasoning.allowed": "استدلال دی اجازت دیندا اے",
|
||||
"model.tooltip.reasoning.none": "سوچن دی سہولت نئیں",
|
||||
"model.tooltip.context": "سیاق و سباق دی حد {{limit}}",
|
||||
"common.search.placeholder": "لبھنا",
|
||||
"common.goBack": "واپس جاؤ",
|
||||
"common.goForward": "اگے ودھو",
|
||||
"common.loading": "لوڈ ہو رہیا اے",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "منسوخ کرو",
|
||||
"common.clear": "صاف",
|
||||
"common.open": "کھولو",
|
||||
"common.connect": "منسلک کرو",
|
||||
"common.disconnect": "منقطع کرو",
|
||||
"common.continue": "جاری رکھو",
|
||||
"common.submit": "جمع کراؤ",
|
||||
"common.save": "محفوظ کرو",
|
||||
"common.saving": "محفوظ ہو رہیا اے...",
|
||||
"common.default": "طے شدہ",
|
||||
"common.attachment": "منسلکہ",
|
||||
"prompt.placeholder.shell": "شیل کمانڈ درج کرو... {{example}}",
|
||||
"prompt.placeholder.normal": 'کجھ وی پچھ... "{{example}}"',
|
||||
"prompt.placeholder.simple": "کجھ وی پچھ...",
|
||||
"prompt.placeholder.summarizeComments": "تبصریاں دا خلاصہ کرو...",
|
||||
"prompt.placeholder.summarizeComment": "تبصرے دا خلاصہ...",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "پرامپٹ",
|
||||
"prompt.mode.shell.exit": "باہر نکلن لئی ایس سی",
|
||||
"session.child.promptDisabled": "ذیلی ایجنٹ سیشناں نو اشارہ نئیں کیتا جا سکدا۔",
|
||||
"session.child.backToParent": "مین سیشن تے واپس جاؤ۔",
|
||||
"prompt.example.1": "کوڈ بیس چ اک TODO ٹھیک کرو",
|
||||
"prompt.example.2": "اس پروجیکٹ دا ٹیک سٹیک کی اے؟",
|
||||
"prompt.example.3": "ٹٹے ہوئے ٹیسٹ ٹھیک کرو",
|
||||
"prompt.example.4": "وضاحت کرو کہ تصدیق کس طرح کم کردی اے",
|
||||
"prompt.example.5": "حفاظتی کمزوریاں نوں لبھو تے ٹھیک کرو",
|
||||
"prompt.example.6": "صارف دی خدمت لئی یونٹ ٹیسٹ شامل کرو",
|
||||
"prompt.example.7": "اس فنکشن نو زیادہ پڑھن دے قابل بنان دے لی ریفیکٹر کرو",
|
||||
"prompt.example.8": "ایس غلطی دا کیہ مطلب اے؟",
|
||||
"prompt.example.9": "اس مسئلے نو ٹھیک کرن چ میری مدد کرو",
|
||||
"prompt.example.10": "API دستاویزات تیار کرو",
|
||||
"prompt.example.11": "ڈیٹا بیس دے سوالاں نو بہتر بناؤ",
|
||||
"prompt.example.12": "ان پٹ دی توثیق شامل کرو",
|
||||
"prompt.example.13": "...لئی اک نواں کمپونینٹ بناؤ",
|
||||
"prompt.example.14": "میں اس پروجیکٹ نوں کیویں ڈیپلائے کراں؟",
|
||||
"prompt.example.15": "بہترین طریقاں لئی میرے کوڈ دا جائزہ لوو",
|
||||
"prompt.example.16": "اس فنکشن وچ ایرر ہینڈلنگ شامل کرو",
|
||||
"prompt.example.17": "اس ریجیکس پیٹرن دی وضاحت کرو",
|
||||
"prompt.example.18": "اس نوں TypeScript وچ بدلو",
|
||||
"prompt.example.19": "پورے کوڈ بیس چ لاگنگ شامل کرو",
|
||||
"prompt.example.20": "کیہڑے انحصار پرانے ہو چکے نیں؟",
|
||||
"prompt.example.21": "ہجرت دی سکرپٹ لکھن چ میری مدد کرو",
|
||||
"prompt.example.22": "اس اینڈ پوائنٹ لئی کیشنگ لاگو کرو",
|
||||
"prompt.example.23": "اس فہرست چ صفحات شامل کرو",
|
||||
"prompt.example.24": "...لئی اک CLI کمانڈ بناؤ",
|
||||
"prompt.example.25": "ماحولیاتی متغیر ایتھے کیویں کم کردے نیں؟",
|
||||
"prompt.popover.emptyResults": "کوئی ملاپ دا نتیجہ نئیں نکلیا",
|
||||
"prompt.popover.emptyCommands": "کوئی مماثل کمانڈ نئیں",
|
||||
"prompt.dropzone.label": "تصویراں، پی ڈی ایف، یا ٹیکسٹ فائلاں ایتھے چھڈو",
|
||||
"prompt.dropzone.file.label": "@mention فائل تے ڈراپ کرو",
|
||||
"prompt.slash.badge.custom": "مخصوص",
|
||||
"prompt.slash.badge.skill": "مہارت",
|
||||
"prompt.slash.badge.mcp": "ایم سی پی",
|
||||
"prompt.context.active": "چالو",
|
||||
"prompt.context.includeActiveFile": "فعال فائل شامل کرو",
|
||||
"prompt.context.removeActiveFile": "فعال فائل نو سیاق و سباق توں ہٹا دیو",
|
||||
"prompt.context.removeFile": "سیاق و سباق توں فائل ہٹا دیو",
|
||||
"prompt.action.attachFile": "فائلاں شامل کرو",
|
||||
"prompt.menu.addImagesAndFiles": "فائلاں تے ہور شامل کرو",
|
||||
"prompt.menu.imagesAndFiles": "تصویراں تے فائلاں",
|
||||
"prompt.menu.commands": "کمانڈز",
|
||||
"prompt.menu.context": "تناظر",
|
||||
"prompt.menu.shellCommand": "Shell کمانڈ",
|
||||
"prompt.attachment.remove": "منسلکہ ہٹا دیو",
|
||||
"prompt.action.send": "گھلو",
|
||||
"prompt.action.stop": "روکو",
|
||||
"prompt.toast.pasteUnsupported.title": "غیر تعاون یافتہ منسلکہ",
|
||||
"prompt.toast.pasteUnsupported.description":
|
||||
"ایتھے صرف تصویراں، پی ڈی ایف، یا ٹیکسٹ فائلاں منسلک کیتیاں جا سکدیاں نیں۔",
|
||||
"prompt.toast.attachmentDuplicate.title": "ایہہ فائل پہلے ای اپ لوڈ ہو چکی اے",
|
||||
"prompt.toast.modelAgentRequired.title": "اک ایجنٹ تے ماڈل چنو",
|
||||
"prompt.toast.modelAgentRequired.description": "پرامپٹ بھیجن توں پہلاں اک ایجنٹ تے ماڈل دا انتخاب کرو۔",
|
||||
"prompt.toast.worktreeCreateFailed.title": "ورک ٹری بنان چ ناکامی ہوئی",
|
||||
"prompt.toast.sessionCreateFailed.title": "سیشن بنان چ ناکامی ہوئی",
|
||||
"prompt.toast.shellSendFailed.title": "شیل کمانڈ بھیجن چ ناکام رہیا",
|
||||
"prompt.toast.commandSendFailed.title": "کمانڈ بھیجن چ ناکام رہیا",
|
||||
"prompt.toast.promptSendFailed.title": "پرامپٹ بھیجن چ ناکام رہیا",
|
||||
"prompt.toast.promptSendFailed.description": "سیشن بازیافت کرن توں قاصر",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "{{total}} وچوں {{enabled}} چالو",
|
||||
"dialog.mcp.empty": "کوئی MCP سیٹ نئیں کیتا گیا",
|
||||
"dialog.lsp.empty": "LSPs فائل دی اقسام توں خودکار طور تے پتہ چلدا اے",
|
||||
"dialog.plugins.empty": "opencode.json وچ سیٹ کیتے پلگ اِن",
|
||||
"mcp.status.connected": "جڑیا ہویا",
|
||||
"mcp.status.failed": "ناکام ہویا",
|
||||
"mcp.status.needs_auth": "تصدیق دی لوڑ اے",
|
||||
"mcp.status.disabled": "بند",
|
||||
"mcp.auth.clickToAuthenticate": "تصدیق کرن لئی کلک کرو",
|
||||
"dialog.fork.empty": "فورک کرن لئی کوئی پیغام نئیں",
|
||||
"dialog.directory.search.placeholder": "فولڈراں نوں لبھو",
|
||||
"dialog.directory.empty": "کوئی فولڈر نئیں لبیا",
|
||||
"dialog.directory.action.selectFile": "فائل چنو",
|
||||
"dialog.directory.action.selectFolder": "فولڈر چنو",
|
||||
"dialog.directory.root": "Root",
|
||||
"dialog.directory.parent": "اُتلا فولڈر",
|
||||
"dialog.directory.readError": "اس فولڈر نوں پڑھن توں قاصر",
|
||||
"app.server.unreachable": "{{server}} تک نئیں اپڑ سکیا",
|
||||
"app.server.retrying": "خود بخود دوبارہ کوشش کر رئے آں...",
|
||||
"app.server.otherServers": "ہور سرور",
|
||||
"dialog.server.title": "سرورز",
|
||||
"dialog.server.description": "ایہہ ایپ کس OpenCode سرور نال جڑدی اے، اس نوں سوئچ کرو۔",
|
||||
"dialog.server.search.placeholder": "سرچ سرورز",
|
||||
"dialog.server.empty": "ہلے تک کوئی سرور نئیں",
|
||||
"dialog.server.add.title": "سرور شامل کرو",
|
||||
"dialog.server.add.url": "سرور دا پتہ",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "سرور نال جڑیا نئیں جا سکیا",
|
||||
"dialog.server.add.checking": "چیک کر رہیا واں...",
|
||||
"dialog.server.add.button": "سرور شامل کرو",
|
||||
"dialog.server.add.name": "سرور دا ناں (اختیاری)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "ورتن آلا ناں (اختیاری)",
|
||||
"dialog.server.add.usernamePlaceholder": "ورتن آلا ناں",
|
||||
"dialog.server.add.password": "پاس ورڈ (اختیاری)",
|
||||
"dialog.server.add.passwordPlaceholder": "پاس ورڈ",
|
||||
"dialog.server.edit.title": "سرور وچ ترمیم کرو",
|
||||
"dialog.server.default.title": "ڈیفالٹ سرور",
|
||||
"dialog.server.default.description":
|
||||
"مقامی سرور شروع کرن دی بجائے ایپ لانچ تے اس سرور نال جڑو۔ دوبارہ شروع کرن دی لوڑ اے۔",
|
||||
"dialog.server.default.none": "کوئی سرور نئیں چنیا گیا",
|
||||
"dialog.server.default.set": "موجودہ سرور نو ڈیفالٹ دے طور تے سیٹ کرو",
|
||||
"dialog.server.default.clear": "صاف",
|
||||
"dialog.server.action.remove": "سرور ہٹا دیو",
|
||||
"dialog.server.menu.edit": "ترمیم کرو",
|
||||
"dialog.server.menu.default": "ڈیفالٹ دے طور تے سیٹ کرو",
|
||||
"dialog.server.menu.defaultRemove": "ڈیفالٹ ہٹاؤ",
|
||||
"dialog.server.menu.delete": "مکاؤ",
|
||||
"dialog.server.current": "موجودہ سرور",
|
||||
"dialog.server.status.default": "طے شدہ",
|
||||
"wsl.server.add": "WSL سرور شامل کرو",
|
||||
"wsl.server.addShort": "WSL شامل کرو",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL سرور",
|
||||
"wsl.server.retryStart": "دوبارہ شروع کرن دی کوشش کرو",
|
||||
"wsl.server.updating": "اپ ڈیٹ...",
|
||||
"wsl.onboarding.step.distro": "ڈسٹرو دا انتخاب کرو",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "WSL چیک کر رئے آں...",
|
||||
"wsl.onboarding.restartRequired": "WSL دی تنصیب پوری کرن لئی Windows نوں دوبارہ شروع کرنا پئے گا۔",
|
||||
"wsl.onboarding.ready": "WSL تیار اے۔",
|
||||
"wsl.onboarding.required": "جاری رکھن لئی WSL دی لوڑ اے۔",
|
||||
"wsl.onboarding.checkingDistros": "ڈسٹرو چیک کر ریا واں...",
|
||||
"wsl.onboarding.installingDistro": "{{distro}} انسٹال کر رئے آں...",
|
||||
"wsl.onboarding.checkingDistro": "{{distro}} چیک کر رئے آں...",
|
||||
"wsl.onboarding.listingDistros": "ڈسٹرو دی فہرست...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} تیار اے۔",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} اجے تک انسٹال نئیں ہویا۔",
|
||||
"wsl.onboarding.openDistroOnce": "سیٹ اپ ختم کرن لئی {{distro}} نوں اک واری کھولو۔",
|
||||
"wsl.onboarding.finishingDistro": "{{distro}} دا سیٹ اپ پورا ہو رہیا اے۔",
|
||||
"wsl.onboarding.pickDistro": "اک ڈسٹرو چنو یا تھلے دتی گئی اک انسٹال کرو۔",
|
||||
"wsl.onboarding.checkingOpencode": "OpenCode چیک کر رئے آں...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "{{distro}} چ OpenCode دی جانچ پڑتال...",
|
||||
"wsl.onboarding.updatingOpencode": "OpenCode نو اپ ڈیٹ کر رئے آں...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "{{distro}} وچ OpenCode نو اپ ڈیٹ کر رئے آں...",
|
||||
"wsl.onboarding.updateOpencodeIn": "{{distro}} وچ OpenCode نو اپ ڈیٹ کرو۔",
|
||||
"wsl.onboarding.updateOpencode": "OpenCode اپ ڈیٹ کرو",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode {{distro}} چ تیار اے۔",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode تیار اے۔",
|
||||
"wsl.onboarding.installOpencodeIn": "{{distro}} وچ OpenCode انسٹال کرو۔",
|
||||
"wsl.onboarding.installOpencode": "OpenCode انسٹال کرو",
|
||||
"wsl.onboarding.chooseDistroFirst": "پہلے اک ڈسٹرو دا انتخاب کرو۔",
|
||||
"wsl.onboarding.loadFailed": "WSL حالت لوڈ کرن چ ناکام رہیا۔",
|
||||
"wsl.onboarding.loading": "لوڈ ہو رہیا اے...",
|
||||
"wsl.onboarding.installedDistros": "ڈسٹرو انسٹال کیتے گئے",
|
||||
"wsl.onboarding.checkAgain": "دوبارہ چیک کرو",
|
||||
"wsl.onboarding.distroStatus.ready": "تیار",
|
||||
"wsl.onboarding.distroStatus.checking": "چیک کر رہیا واں...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode انسٹال نئیں کیتا گیا",
|
||||
"wsl.onboarding.distroStatus.missingTools": "bash تے curl نئیں ملے",
|
||||
"wsl.onboarding.distroStatus.unsupported": "غیر تعاون یافتہ · WSL 2 استعمال کرو",
|
||||
"wsl.onboarding.needAnotherDistro": "تہانوں اک ہور ڈسٹرو دی لوڑ اے؟",
|
||||
"wsl.onboarding.needAnotherDistroHint": "WSL کیٹلاگ توں Linux ڈسٹری بیوشن انسٹال کرو",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL انسٹال نئیں کیتا گیا",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"OpenCode دے WSL سرور شامل کرن توں پہلاں WSL (Windows Subsystem for Linux) دی لوڑ اے",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL دستیاب نئیں",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode ایس مشین تے WSL دی تصدیق نئیں کر سکیا۔",
|
||||
"wsl.onboarding.installWsl": "WSL انسٹال کرو",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"WSL دی تنصیب پوری کرن لئی Windows نوں دوبارہ شروع کرو، فیر OpenCode دوبارہ کھولو۔",
|
||||
"wsl.onboarding.next": "اگلا",
|
||||
"wsl.onboarding.refresh": "تازہ کرو",
|
||||
"wsl.onboarding.allDistrosAdded": "سارے انسٹال شدہ ڈسٹرو پہلے ای شامل کر دتے گئے ہن۔",
|
||||
"wsl.onboarding.noDistros": "ہلے تیکر کوئی ڈسٹرو نئیں لبھیا۔",
|
||||
"wsl.onboarding.install": "انسٹال کرو",
|
||||
"wsl.onboarding.installing": "انسٹال کر رہیا اے...",
|
||||
"wsl.onboarding.installDistro": "ڈسٹرو انسٹال کرو",
|
||||
"wsl.onboarding.searchDistros": "ڈسٹرو تلاش کرو",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 دی لوڑ اے۔",
|
||||
"wsl.onboarding.toolsRequired": "اس ڈسٹرو نوں bash تے curl دی لوڑ اے۔",
|
||||
"wsl.onboarding.openTerminal": "ٹرمینل کھولو",
|
||||
"wsl.onboarding.path": "راہ: {{path}}",
|
||||
"wsl.onboarding.notFound": "نئیں لبھا",
|
||||
"wsl.onboarding.version": "ورژن: {{version}}",
|
||||
"wsl.onboarding.unknown": "نامعلوم",
|
||||
"wsl.onboarding.desktopVersion": "ڈیسک ٹاپ {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "انسٹال کیتا گیا ورژن ڈیسک ٹاپ ایپ ورژن نال میل نئیں کھاندا۔",
|
||||
"wsl.onboarding.adding": "شامل کر رہیا واں...",
|
||||
"server.row.noUsername": "کوئی ورتن آلا ناں نئیں",
|
||||
"dialog.project.edit.title": "پروجیکٹ وچ ترمیم کرو",
|
||||
"dialog.project.edit.name": "ناں",
|
||||
"dialog.project.edit.icon": "آئکن",
|
||||
"dialog.project.edit.icon.alt": "پروجیکٹ آئیکن",
|
||||
"dialog.project.edit.icon.hint": "تصویر تے کلک کرو یا گھسیٹو",
|
||||
"dialog.project.edit.icon.recommended": "تجویز کردہ: 128x128px",
|
||||
"dialog.project.edit.color": "رنگ",
|
||||
"dialog.project.edit.color.select": "{{color}} رنگ چنو",
|
||||
"dialog.project.edit.worktree.startup": "ورک اسپیس اسٹارٹ اپ سکرپٹ",
|
||||
"dialog.project.edit.worktree.startup.description": "اک نویں ورک سپیس (ورک ٹری) بنان دے بعد چلدا اے۔",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "مثلاً بن انسٹال کرو",
|
||||
"dialog.releaseNotes.action.getStarted": "شروع کرو",
|
||||
"dialog.releaseNotes.action.next": "اگلا",
|
||||
"dialog.releaseNotes.action.hideFuture": "ایہہ اگوں نہ وکھاؤ",
|
||||
"dialog.releaseNotes.media.alt": "ریلیز پیش نظارہ",
|
||||
"context.breakdown.title": "کانٹیکسٹ دی ونڈ",
|
||||
"context.breakdown.note": 'ان پٹ ٹوکناں دی لگ بھگ ونڈ۔ "ہور" وچ ٹول دیاں تعریفاں تے وادھو خرچ شامل نیں۔',
|
||||
"context.breakdown.system": "نظام",
|
||||
"context.breakdown.user": "ورتن آلا",
|
||||
"context.breakdown.assistant": "اسسٹنٹ",
|
||||
"context.breakdown.tool": "ٹول کالز",
|
||||
"context.breakdown.other": "ہور",
|
||||
"context.systemPrompt.title": "سسٹم پرامپٹ",
|
||||
"context.rawMessages.title": "خام سنیہے",
|
||||
"context.stats.session": "سیشن",
|
||||
"context.stats.messages": "سنیہے",
|
||||
"context.stats.provider": "پرووائیڈر",
|
||||
"context.stats.model": "ماڈل",
|
||||
"context.stats.limit": "سیاق و سباق دی حد",
|
||||
"context.stats.totalTokens": "کل ٹوکن",
|
||||
"context.stats.usage": "ورتن",
|
||||
"context.stats.inputTokens": "ان پٹ ٹوکن",
|
||||
"context.stats.outputTokens": "آؤٹ پٹ ٹوکن",
|
||||
"context.stats.reasoningTokens": "استدلال ٹوکن",
|
||||
"context.stats.cacheTokens": "کیش ٹوکن (پڑھنا/لکھنا)",
|
||||
"context.stats.userMessages": "ورتن آلے دے سنیہے",
|
||||
"context.stats.assistantMessages": "اسسٹنٹ میسجز",
|
||||
"context.stats.totalCost": "کل لاگت",
|
||||
"context.stats.sessionCreated": "سیشن بنن دا ویلا",
|
||||
"context.stats.lastActivity": "آخری سرگرمی",
|
||||
"context.usage.tokens": "ٹوکن",
|
||||
"context.usage.usage": "ورتن",
|
||||
"context.usage.cost": "لاگت",
|
||||
"context.usage.clickToView": "سیاق و سباق ویکھن لئی کلک کرو",
|
||||
"context.usage.view": "سیاق و سباق دا استعمال ویکھو",
|
||||
"language.en": "انگریجی",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "بولی",
|
||||
"toast.language.description": "{{language}} تے سوئچ کیتا گیا",
|
||||
"toast.theme.title": "تھیم سوئچ ہو گیا",
|
||||
"toast.scheme.title": "رنگ سکیم",
|
||||
"toast.workspace.enabled.title": "ورک اسپیسز اینبلڈ نیں",
|
||||
"toast.workspace.enabled.description": "اک توں ودھ ورک ٹری ہن سائڈبار وچ دکھائے گئے نیں",
|
||||
"toast.workspace.disabled.title": "ورک سپیس بند نیں",
|
||||
"toast.workspace.disabled.description": "سائڈبار چ صرف مین ورک ٹری وکھایا گیا اے۔",
|
||||
"toast.permissions.autoaccept.on.title": "اجازتاں نوں خودکار قبول کرنا",
|
||||
"toast.permissions.autoaccept.on.description": "اجازت دی درخواستاں خود بخود منظور ہو جان گیاں",
|
||||
"toast.permissions.autoaccept.off.title": "اجازتاں نوں خودکار قبول کرنا بند کر دتا گیا",
|
||||
"toast.permissions.autoaccept.off.description": "اجازت دی درخواستاں لئی منظوری دی لوڑ ہووے گی",
|
||||
"toast.model.none.title": "کوئی ماڈل نئیں چنیا گیا",
|
||||
"toast.model.none.description": "اس سیشن دا خلاصہ کرن لئی کسے پرووائیڈر نال جڑو",
|
||||
"toast.file.loadFailed.title": "فائل لوڈ کرن چ ناکامی ہوئی",
|
||||
"toast.file.listFailed.title": "فائلاں دی فہرست بنان چ ناکام رہیا",
|
||||
"toast.context.noLineSelection.title": "کوئی لائن سلیکشن نئیں",
|
||||
"toast.context.noLineSelection.description": "پہلے فائل ٹیب چ اک لائن رینج منتخب کرو۔",
|
||||
"toast.session.share.copyFailed.title": "کلپ بورڈ تے URL کاپی کرن چ ناکام رہیا",
|
||||
"toast.session.share.success.title": "سیشن سانجھا کیتا گیا",
|
||||
"toast.session.share.success.description": "شیئر URL کلپ بورڈ تے کاپی ہو گیا!",
|
||||
"toast.session.share.failed.title": "سیشن شیئر کرن چ ناکام رہیا",
|
||||
"toast.session.share.failed.description": "سیشن شیئر کردے ویلے کوئی غلطی ہو گئی",
|
||||
"toast.session.unshare.success.title": "سیشن شیئر کرنا بند ہو گیا",
|
||||
"toast.session.unshare.success.description": "سیشن دا شیئر کامیابی نال بند ہو گیا!",
|
||||
"toast.session.unshare.failed.title": "سیشن ان شیئر کرن چ ناکام رہیا",
|
||||
"toast.session.unshare.failed.description": "سیشن ان شیئر کردے ویلے کوئی غلطی ہو گئی",
|
||||
"toast.session.listFailed.title": "{{project}} لئی سیشن لوڈ کرن چ ناکام رہیا",
|
||||
"toast.project.reloadFailed.title": "{{project}} دوبارہ لوڈ نئیں ہو سکیا",
|
||||
"toast.update.title": "اپ ڈیٹ دستیاب اے",
|
||||
"toast.update.description": "OpenCode ({{version}}) دا اک نواں ورژن ہن انسٹال کرن لئی دستیاب اے۔",
|
||||
"toast.update.action.installRestart": "انسٹال کرو تے دوبارہ شروع کرو",
|
||||
"toast.update.action.notYet": "اجے نئیں",
|
||||
"error.page.title": "کجھ غلط ہو گیا",
|
||||
"error.page.description": "ایپلیکیشن لوڈ کردے ویلے غلطی ہوئی۔",
|
||||
"error.page.description.localServerStartup": "لوکل سرور شروع کردے ویلے غلطی ہوئی۔",
|
||||
"error.page.details.label": "غلطی دی تفصیلات",
|
||||
"error.page.action.restart": "دوبارہ شروع کرو",
|
||||
"error.page.action.report": "غلطی دی رپورٹ کرو",
|
||||
"error.page.action.reported": "غلطی رپورٹ ہو گئی",
|
||||
"error.page.action.exportLogs": "لاگ برآمد کرو",
|
||||
"error.page.action.checking": "چیک کر رہیا واں...",
|
||||
"error.page.action.checkUpdates": "اپ ڈیٹس لئی چیک کرو",
|
||||
"error.page.action.updateTo": "{{version}} تے اپ ڈیٹ کرو",
|
||||
"error.page.circular": "[چکری]",
|
||||
"error.page.report.prefix": "مہربانی کر کے اس غلطی دی اطلاع OpenCode ٹیم نوں دیو",
|
||||
"error.page.report.discord": "Discord تے",
|
||||
"error.page.version": "ورژن: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"عنصر نئیں لبیا۔ کی تسی ایہنوں اپنے index.html چ شامل کرنا بھل گئے او؟ یا شاید id وصف غلط ہجے ہو گیا اے؟",
|
||||
"error.serverSync.connectFailed": "سرور نال نئیں جڑ سکیا۔ کی `{{url}}` تے کوئی سرور چل رہیا اے؟",
|
||||
"error.serverSDK.noServerAvailable": "کوئی سرور دستیاب نئیں",
|
||||
"error.serverSDK.serverNotAvailable": "سرور دستیاب نئیں",
|
||||
"error.childStore.persistedCacheCreateFailed": "پکا کیش نئیں بن سکیا",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "مستقل پروجیکٹ میٹا ڈیٹا بنان چ ناکام رہیا",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "پرسٹڈ پروجیکٹ آئیکن بنان چ ناکام رہیا",
|
||||
"error.childStore.storeCreateFailed": "سٹور بنان چ ناکامی ہوئی",
|
||||
"directory.error.invalidUrl": "URL وچ غلط ڈائریکٹری اے۔",
|
||||
"error.chain.unknown": "نامعلوم غلطی",
|
||||
"error.server.invalidConfiguration": "غلط ترتیب",
|
||||
"error.chain.causedBy": "ایس دی وجہ توں:",
|
||||
"error.chain.apiError": "API غلطی",
|
||||
"error.chain.status": "حیثیت: {{status}}",
|
||||
"error.chain.retryable": "دوبارہ آزمان دے قابل: {{retryable}}",
|
||||
"error.chain.responseBody": "جواب دا متن:\n{{body}}",
|
||||
"error.chain.didYouMean": "کی تہاڈا مطلب سی: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "ماڈل نئیں لبیا: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "اپنی کنفگ (opencode.json) وچ پرووائیڈر/ماڈل دے ناں چیک کرو",
|
||||
"error.chain.mcpFailed": 'MCP سرور "{{name}}" ناکام ہو گیا۔ نوٹ، OpenCode ہلے تک MCP تصدیق دی حمایت نئیں کردا۔',
|
||||
"error.chain.providerAuthFailed": "فراہم کرن آلے دی تصدیق ناکام ہو گئی ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed": 'پرووائیڈر "{{provider}}" شروع نئیں ہو سکیا۔ اسناد تے کنفگ چیک کرو۔',
|
||||
"error.chain.configJsonInvalid": "{{path}} تے کنفیگ فائل درست نئیں اے JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage": "{{path}} تے کنفیگ فائل درست نئیں اے JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'{{path}} وچ "{{dir}}" ڈائریکٹری درست نئیں اے۔ ڈائریکٹری دا ناں "{{suggestion}}" رکھو یا اینوں ہٹا دیو۔ ایہہ اک عام ٹائپنگ دی غلطی اے۔',
|
||||
"error.chain.configFrontmatterError": "{{path}} وچ فرنٹ میٹر دی تجزیہ کرن وچ ناکام رہیا:\n{{message}}",
|
||||
"error.chain.configInvalid": "{{path}} تے کنفیگ فائل غلط اے",
|
||||
"error.chain.configInvalidWithMessage": "{{path}} تے کنفیگ فائل غلط اے: {{message}}",
|
||||
"notification.permission.title": "اجازت دی لوڑ اے",
|
||||
"notification.permission.description": "{{sessionTitle}} {{projectName}} وچ اجازت دی لوڑ اے",
|
||||
"notification.question.title": "سوال",
|
||||
"notification.question.description": "{{sessionTitle}} {{projectName}} وچ اک سوال اے",
|
||||
"notification.action.goToSession": "سیشن تے جاؤ",
|
||||
"notification.session.responseReady.title": "جواب تیار اے",
|
||||
"notification.session.error.title": "سیشن دی غلطی",
|
||||
"notification.session.error.fallbackDescription": "اک غلطی ہو گئی",
|
||||
"home.recentProjects": "حال دے پروجیکٹ",
|
||||
"home.empty.title": "حال دا کوئی پروجیکٹ نئیں",
|
||||
"home.empty.description": "اک مقامی پروجیکٹ کھول کے شروع کرو",
|
||||
"home.title": "گھر",
|
||||
"home.projects": "پروجیکٹ",
|
||||
"home.project.add": "پروجیکٹ شامل کرو",
|
||||
"home.recentlyClosed": "حال ای چ بند کیتا گیا",
|
||||
"home.server.collapse": "سرور دے پروجیکٹ سمیٹو",
|
||||
"home.server.expand": "سرور دے پروجیکٹ کھولو",
|
||||
"home.sessions.search.placeholder": "سرچ سیشن",
|
||||
"home.sessions.search.placeholder.scoped": "{{scope}} وچ سیشناں دی تلاش کرو",
|
||||
"home.sessions.search.sessions": "سیشن",
|
||||
"home.sessions.search.noResults": "{{query}} لئی کوئی سیشن نئیں لبھیا",
|
||||
"home.sessions.empty": "ایتھے ہلے کجھ نئیں",
|
||||
"home.sessions.empty.description": "شروع کرن لئی اک سیشن بناؤ",
|
||||
"home.sessions.group.today": "آج",
|
||||
"home.sessions.group.yesterday": "کل",
|
||||
"home.sessions.group.older": "پرانا",
|
||||
"home.providerTip":
|
||||
"دوجے ماڈل استعمال کرن لئی 75+ فراہم کرن آلیاں نال جڑو، جنہاں چ Claude، GPT، Gemini، وغیرہ شامل نیں",
|
||||
"session.tab.session": "سیشن",
|
||||
"session.tab.review": "جائزہ",
|
||||
"session.tab.context": "تناظر",
|
||||
"session.tab.unknown": "نامعلوم سیشن",
|
||||
"session.panel.reviewAndFiles": "جائزہ تے فائلاں",
|
||||
"session.error.notFound": "ایہہ سیشن نئیں لبیا جا سکدا",
|
||||
"session.error.notFound.description": "ایہ ٹیب اک سیشن ول اشارہ کردا اے جہڑا ہن اس سرور تے موجود نئیں اے۔",
|
||||
"session.error.notFound.closeTab": "ٹیب بند کرو",
|
||||
"session.error.serverConnection": "اس سرور نال جڑ نئیں سکدے",
|
||||
"session.review.filesChanged": "بدلیاں فائلاں {{count}}",
|
||||
"session.review.change.one": "تبدیلی",
|
||||
"session.review.change.other": "تبدیلیاں",
|
||||
"session.review.loadingChanges": "تبدیلیاں لوڈ ہو رہیاں نیں...",
|
||||
"session.review.empty": "اس سیشن وچ حالے تک کوئی تبدیلی نئیں",
|
||||
"session.review.noVcs": "کوئی Git ورژن کنٹرول سسٹم نئیں لبھیا، تبدیلیاں نئیں وکھائیاں گئیاں",
|
||||
"session.review.noVcs.createGit.title": "اک Git ریپازٹری بناؤ",
|
||||
"session.review.noVcs.createGit.description": "اس منصوبے چ تبدیلیاں نو ٹریک کرو، جائزہ لوو تے کالعدم کرو",
|
||||
"session.review.noVcs.createGit.actionLoading": "Git ریپازٹری بنانا...",
|
||||
"session.review.noVcs.createGit.action": "Git ریپازٹری بناؤ",
|
||||
"session.review.noSnapshot": "ترتیب وچ سنیپ شاٹ ٹریکنگ غیر فعال اے، اس لیی سیشن تبدیلیاں دستیاب نئیں نیں",
|
||||
"session.review.noChanges": "کوئی تبدیلی نئیں",
|
||||
"session.review.noUncommittedChanges": "ہلے کوئی ان کمٹڈ تبدیلی نئیں",
|
||||
"session.review.noBranchChanges": "ہلے تیکر کوئی برانچ نئیں بدلی",
|
||||
"session.files.selectToOpen": "کھولن لئی کوئی فائل چنو",
|
||||
"session.files.all": "ساریاں فائلاں",
|
||||
"session.files.empty": "کوئی فائل نئیں",
|
||||
"session.files.binaryContent": "بائنری فائل (مواد وکھایا نئیں جا سکدا)",
|
||||
"session.messages.renderEarlier": "پہلے سنیہے رینڈر کرو",
|
||||
"session.messages.loadingEarlier": "پہلے دے سنیہے لوڈ کر رئے آں...",
|
||||
"session.messages.loadEarlier": "پہلے سنیہے لوڈ کرو",
|
||||
"session.messages.loading": "سنیہے لوڈ ہو رۓ...",
|
||||
"session.messages.jumpToLatest": "تازہ ترین تے جاؤ",
|
||||
"session.context.addToContext": "سیاق و سباق چ {{selection}} شامل کرو",
|
||||
"session.todo.title": "ٹوڈوس",
|
||||
"session.todo.collapse": "سمیٹو",
|
||||
"session.todo.expand": "کھولو",
|
||||
"session.todo.progress": "{{done}} دے {{total}} کم مکمل ہو گئے",
|
||||
"session.question.progress": "{{total}} سوالاں وچوں {{current}}",
|
||||
"session.question.minimize": "سوال نوں چھوٹا کرو",
|
||||
"session.question.restore": "سوال بحال کرو",
|
||||
"session.question.pending.one": "{{count}} زیر التوا سوال",
|
||||
"session.question.pending.other": "{{count}} زیر التوا سوال",
|
||||
"session.followupDock.summary.one": "{{count}} قطار چ لگیا ہویا پیغام",
|
||||
"session.followupDock.summary.other": "{{count}} قطار وچ لگے سنیہے",
|
||||
"session.followupDock.sendNow": "ہن بھیجو",
|
||||
"session.followupDock.edit": "ترمیم کرو",
|
||||
"session.followupDock.collapse": "قطار والے سنیہے سمیٹو",
|
||||
"session.followupDock.expand": "قطار وچ لگے سنیہے ودھاؤ",
|
||||
"session.revertDock.summary.one": "{{count}} رول بیک میسج",
|
||||
"session.revertDock.summary.other": "{{count}} رول بیک پیغامات",
|
||||
"session.revertDock.collapse": "واپس موڑے سنیہے سمیٹو",
|
||||
"session.revertDock.expand": "رول بیک پیغامات نو ودھاؤ",
|
||||
"session.revertDock.restore": "سنیہا بحال کرو",
|
||||
"session.new.title": "کجھ وی بناؤ",
|
||||
"session.new.project.new": "نواں منصوبہ",
|
||||
"session.new.project.search": "منصوبیاں دی تلاش کرو",
|
||||
"session.new.project.add": "پروجیکٹ شامل کرو",
|
||||
"session.new.worktree.main": "مین برانچ",
|
||||
"session.new.worktree.mainWithBranch": "مین برانچ ({{branch}})",
|
||||
"session.new.worktree.create": "نواں ورک ٹری بناؤ",
|
||||
"session.new.workspace.runIn": "وچ سیشن چلاؤ",
|
||||
"session.new.workspace.triggerLocal": "مقامی",
|
||||
"session.new.workspace.local": "مقامی مخزن",
|
||||
"session.new.workspace.existing": "کم دی تھاں...",
|
||||
"session.new.git.none": "Git نئیں",
|
||||
"session.new.lastModified": "آخری ترمیم",
|
||||
"session.header.search.placeholder": "{{project}} لبھو",
|
||||
"session.header.searchFiles": "فائلاں لبھو",
|
||||
"session.header.openIn": "وچ کھولو",
|
||||
"session.header.open.action": "کھولو {{app}}",
|
||||
"session.header.open.ariaLabel": "{{app}} وچ کھولو",
|
||||
"session.header.open.menu": "اختیارات کھولو",
|
||||
"session.header.open.copyPath": "راہ کاپی کرو",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.open.fileManager": "File Manager",
|
||||
"session.header.reveal.finder": "Finder وچ ظاہر کرو",
|
||||
"session.header.reveal.fileExplorer": "File Explorer وچ ظاہر کرو",
|
||||
"session.header.reveal.containingFolder": "فائل والا فولڈر کھولو",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminal",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "حالت",
|
||||
"status.popover.ariaLabel": "سرور ترتیبات",
|
||||
"status.popover.tab.servers": "سرورز",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "پلگ انز",
|
||||
"status.popover.action.manageServers": "سرورز دا انتظام کرو",
|
||||
"session.share.popover.title": "ویب تے شائع کرو",
|
||||
"session.share.popover.description.shared": "ایہ سیشن ویب تے عوامی اے۔ ایہ لنک آلے ہر بندے لئی رسائی حاصل اے۔",
|
||||
"session.share.popover.description.unshared":
|
||||
"ویب تے عوامی طور تے سیشن شیئر کرو۔ ایہ لنک آلے ہر بندے لئی رسائی حاصل ہووے گی۔",
|
||||
"session.share.action.share": "شیئر کرو",
|
||||
"session.share.action.publish": "شائع کرو",
|
||||
"session.share.action.publishing": "شائع ہو رہیا اے...",
|
||||
"session.share.action.unpublish": "شائع نہ کرو",
|
||||
"session.share.action.unpublishing": "اشاعت ہٹ رہی اے...",
|
||||
"session.share.action.view": "ویکھو",
|
||||
"session.share.copy.copied": "کاپی کیتا گیا",
|
||||
"session.share.copy.copyLink": "لنک کاپی کرو",
|
||||
"lsp.tooltip.none": "کوئی LSP سرور نئیں",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "لوڈنگ پرامپٹ...",
|
||||
"terminal.loading": "ٹرمینل لوڈ ہو رہیا اے...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "ٹرمینل بند کرو",
|
||||
"terminal.connectionLost.title": "کنکشن گواچ گیا",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket غیر معمولی طور تے بند کیتا گیا: {{code}}",
|
||||
"terminal.connectionLost.description":
|
||||
"ٹرمینل کنکشن وچ رکاوٹ پے گئی۔ ایہ اودوں ہو سکدا اے جدوں سرور دوبارہ شروع ہوندا اے۔",
|
||||
"common.closeTab": "ٹیب بند کرو",
|
||||
"common.dismiss": "برخاست کرو",
|
||||
"common.moreCountSuffix": " (+{{count}} ہور)",
|
||||
"common.requestFailed": "درخواست ناکام ہو گئی",
|
||||
"common.moreOptions": "ہور اختیارات",
|
||||
"common.learnMore": "ہور جانو",
|
||||
"common.rename": "ناں بدلو",
|
||||
"common.reset": "ری سیٹ کرو",
|
||||
"common.archive": "آرکائیو کرو",
|
||||
"common.delete": "مکاؤ",
|
||||
"common.close": "بند کرو",
|
||||
"common.edit": "ترمیم کرو",
|
||||
"common.loadMore": "ہور لوڈ کرو",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Space",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "نامعلوم",
|
||||
"common.time.justNow": "ہنے ہنے",
|
||||
"common.time.minutesAgo.short": "{{count}}m پہلاں",
|
||||
"common.time.hoursAgo.short": "{{count}}h پہلاں",
|
||||
"common.time.daysAgo.short": "{{count}}d پہلاں",
|
||||
"sidebar.menu.toggle": "مینو ٹوگل کرو",
|
||||
"sidebar.nav.projectsAndSessions": "پروجیکٹ تے سیشن",
|
||||
"sidebar.settings": "ترتیبات",
|
||||
"sidebar.help": "مدد",
|
||||
"sidebar.workspaces.enable": "ورک سپیس چالو کرو",
|
||||
"sidebar.workspaces.disable": "ورک اسپیسز نو غیر فعال کرو",
|
||||
"sidebar.gettingStarted.title": "شروع کرنا",
|
||||
"sidebar.gettingStarted.line1": "OpenCode چ مفت ماڈل شامل نیں تاکہ تسی فوری طور تے شروع کر سکو۔",
|
||||
"sidebar.gettingStarted.line2": "Claude، GPT، Gemini وغیرہ ماڈل ورتن لئی کوئی وی پرووائیڈر جوڑو۔",
|
||||
"sidebar.project.recentSessions": "حالیہ سیشن",
|
||||
"sidebar.project.viewAllSessions": "سارے سیشن ویکھو",
|
||||
"sidebar.project.clearNotifications": "نوٹیفکیشن صاف کرو",
|
||||
"sidebar.empty.title": "کوئی پروجیکٹ نئیں کھلیا",
|
||||
"sidebar.empty.description": "شروع کرن لئی کوئی پروجیکٹ کھولو",
|
||||
"debugBar.ariaLabel": "ترقی دی کارکردگی دی تشخیص",
|
||||
"debugBar.na": "لاگو نئیں",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"سیشن دے صفحے نو چھون آلے آخری مکمل روٹ ٹرانزیشن، روٹر دے آغاز توں لے کے اس دے ٹک جان دے بعد پہلے پینٹ تک ماپیا جاندا اے۔",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "پچھلے 5 سیکنڈاں چ فی سیکنڈ فریم رولنگ۔",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "پچھلے 5 سیکنڈاں چ بدترین فریم ٹائم۔",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "پچھلے 5 سیکنڈ چ 32 ایم ایس توں ودھ فریم۔",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "پچھلے 5 سیکنڈاں چ بلاک کیتا گیا ویلہ تے لمے کماں دی گنتی۔ زیادہ توں زیادہ کم: {{max}}۔",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "پچھلے 5 سیکنڈاں چ بدترین ان پٹ دی تاخیر ویکھی گئی۔",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip": "پچھلے 5 سیکنڈاں چ تقریباً تعامل دی مدت۔ ایہ INP ورگا اے، سرکاری Web Vitals INP نئیں۔",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "موجودہ ایپ دی زندگی لئی مجموعی ترتیب دی تبدیلی۔",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "جے ایس ہیپ بمقابلہ ہیپ لیمٹ استعمال کیتا گیا۔ صرف Chromium۔",
|
||||
"debugBar.mem.tip": "ورتیا JS ہیپ تے ہیپ دی حد۔ {{limit}} وچوں {{used}}۔",
|
||||
"app.name.desktop": "OpenCode ڈیسک ٹاپ",
|
||||
"settings.section.desktop": "ڈیسک ٹاپ",
|
||||
"settings.section.server": "سرور",
|
||||
"settings.tab.general": "عمومی",
|
||||
"settings.tab.shortcuts": "شارٹ کٹ",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL نال جوڑ",
|
||||
"settings.desktop.wsl.description": "Windows تے WSL دے اندر OpenCode سرور چلاؤ۔",
|
||||
"settings.general.section.appearance": "دِکھ",
|
||||
"settings.general.section.advanced": "اَڈوانسڈ",
|
||||
"settings.general.section.notifications": "سسٹم نوٹیفکیشنز",
|
||||
"settings.general.section.updates": "اپ ڈیٹس",
|
||||
"settings.general.section.sounds": "آواز دے اثرات",
|
||||
"settings.general.section.feed": "فیڈ",
|
||||
"settings.general.section.display": "ڈسپلے",
|
||||
"settings.general.row.language.title": "بولی",
|
||||
"settings.general.row.language.description": "OpenCode لئی ڈسپلے دی بولی بدلو",
|
||||
"settings.general.row.shell.title": "شیل",
|
||||
"settings.general.row.shell.description": "Shell ٹرمینل تے ایجنٹ ٹولز دے ذریعہ استعمال کیتا جاندا اے",
|
||||
"settings.general.row.shell.autoDefault": "آٹو (پہلے توں طے شدہ)",
|
||||
"settings.general.row.shell.terminalOnly": "صرف ٹرمینل",
|
||||
"settings.general.row.appearance.title": "دِکھ",
|
||||
"settings.general.row.appearance.description": "اپنے آلے تے OpenCode کیویں لگدا اے، اپنی مرضی دے مطابق بناؤ",
|
||||
"settings.general.row.colorScheme.title": "رنگ سکیم",
|
||||
"settings.general.row.colorScheme.description": "چنو کہ آیا OpenCode سسٹم، لائٹ، یا ڈارک تھیم دی پیروی کردا اے",
|
||||
"settings.general.row.theme.title": "تھیم",
|
||||
"settings.general.row.theme.description": "OpenCode نوں کس طرح تھیم کیتا گیا اے، اپنی مرضی دے مطابق بناؤ۔",
|
||||
"settings.general.row.font.title": "کوڈ فونٹ",
|
||||
"settings.general.row.font.description": "کوڈ بلاکس وچ استعمال ہون آلے فونٹ نو اپنی مرضی دے مطابق بناؤ",
|
||||
"settings.general.row.terminalFont.title": "Terminal فونٹ",
|
||||
"settings.general.row.terminalFont.description": "ٹرمینل وچ استعمال ہون آلے فونٹ نو اپنی مرضی دے مطابق بناؤ",
|
||||
"settings.general.row.uiFont.title": "یو آئی فونٹ",
|
||||
"settings.general.row.uiFont.description": "پورے انٹرفیس تے استعمال ہون آلے فونٹ نو اپنی مرضی دے مطابق بناؤ",
|
||||
"settings.general.row.followup.title": "فالو اپ رویہ",
|
||||
"settings.general.row.followup.description": "چنو کہ فالو اپ اشارے فوری طور تے چلدے نیں یا قطار چ انتظار کردے نیں",
|
||||
"settings.general.row.followup.option.queue": "قطار",
|
||||
"settings.general.row.followup.option.steer": "سٹیئر",
|
||||
"settings.general.row.showFileTree.title": "فائل ٹری",
|
||||
"settings.general.row.showFileTree.description": "سیشنز چ فائل ٹری پینل وکھاؤ",
|
||||
"settings.general.row.showNavigation.title": "نیوی گیشن کنٹرولز",
|
||||
"settings.general.row.showNavigation.description": "ڈیسک ٹاپ ٹائٹل بار وچ پچھے تے اگے دے بٹن وکھاؤ",
|
||||
"settings.general.row.showSearch.title": "کمانڈ پیلیٹ",
|
||||
"settings.general.row.showSearch.description": "ٹائٹل بار وچ سرچ تے کمانڈ پیلیٹ بٹن وکھاؤ",
|
||||
"settings.general.row.showTerminal.title": "Terminal",
|
||||
"settings.general.row.showTerminal.description": "ڈیسک ٹاپ ٹائٹل بار وچ ٹرمینل بٹن وکھاؤ",
|
||||
"settings.general.row.showStatus.title": "سرور دی حیثیت",
|
||||
"settings.general.row.showStatus.description": "ٹائٹل بار وچ سرور دی حیثیت دا بٹن وکھاؤ",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "تھلویں نیوی گیشن",
|
||||
"settings.general.row.mobileTitlebarBottom.description": "موبائل تے سکرین دے تھلے ٹائٹل بار تے سیشن ٹیب رکھو",
|
||||
"settings.general.row.showCustomAgents.title": "ایجنٹ وکھاؤ",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"کمپوزر چ ایجنٹاں دے وچکار سوئچ کرو۔ جدوں لُکیا ہوندا اے، تے بلڈ ایجنٹ تے ڈیفالٹ ہوندا اے۔",
|
||||
"settings.general.row.reasoningSummaries.title": "استدلال دے خلاصے وکھاؤ",
|
||||
"settings.general.row.reasoningSummaries.description": "ٹائم لائن وچ ماڈل دی استدلال دے خلاصے وکھاؤ",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "شیل ٹول دے حصیاں نو ودھاؤ",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"ٹائم لائن وچ ڈیفالٹ دے طور تے ودھائے گئے شیل ٹول دے حصے وکھاؤ",
|
||||
"settings.general.row.editToolPartsExpanded.title": "ترمیم دے آلے دے حصیاں نو ودھاؤ",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"ٹائم لائن وچ ڈیفالٹ دے طور تے ودھائے گئے ترمیم، لکھن تے پیچ ٹول دے حصے وکھاؤ",
|
||||
"settings.general.row.newInterface.title": "نواں لے آؤٹ",
|
||||
"settings.general.row.newInterface.badge": "نواں",
|
||||
"settings.general.row.newInterface.description":
|
||||
"نویں ٹیبز تے ہوم لے آؤٹ ورتو۔ اک محدود ویلے لئی ترتیب دے وچکار سوئچ کرو۔",
|
||||
"settings.general.row.newInterfaceNotice.title": "تسی ہن نواں لے آؤٹ ورت رہے او",
|
||||
"settings.general.row.newInterfaceNotice.description": "پچھلا لے آؤٹ ہن دستیاب نئیں",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "برخاست کرو",
|
||||
"settings.general.row.pinchZoom.title": "زوم کرن لئی چٹکی مارو",
|
||||
"settings.general.row.pinchZoom.description": "ٹریک پیڈ پنچ تے کنٹرول سکرول اشارے نو زوم کرن دی اجازت دیو",
|
||||
"settings.general.row.wayland.title": "مقامی Wayland ورتو",
|
||||
"settings.general.row.wayland.description": "Wayland تے X11 فال بیک نو غیر فعال کرو۔ دوبارہ شروع کرن دی لوڑ اے۔",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"مخلوط ریفریش ریٹ مانیٹراں دے نال Linux تے، مقامی Wayland زیادہ مستحکم ہو سکدا اے۔",
|
||||
"settings.general.row.releaseNotes.title": "ریلیز نوٹ",
|
||||
"settings.general.row.releaseNotes.description": "اپ ڈیٹ پچھوں 'نواں کی اے' پاپ اپ وکھاؤ",
|
||||
"settings.updates.row.startup.title": "شروع ہون تے اپ ڈیٹاں دی پڑتال کرو",
|
||||
"settings.updates.row.startup.description": "جدوں OpenCode لانچ ہوندا اے تے خودبخود اپ ڈیٹس چیک کرو",
|
||||
"settings.updates.row.check.title": "اپ ڈیٹس لئی چیک کرو",
|
||||
"settings.updates.row.check.description": "اپ ڈیٹس لئی دستی طور تے چیک کرو تے جے دستیاب ہووے تے انسٹال کرو",
|
||||
"settings.updates.action.checkNow": "ہن چیک کرو",
|
||||
"settings.updates.action.checking": "چیک کر رہیا واں...",
|
||||
"settings.updates.action.downloading": "ڈاؤن لوڈ کر رہیا اے...",
|
||||
"settings.updates.action.installing": "انسٹال کر رہیا اے...",
|
||||
"settings.updates.toast.latest.title": "تسی تازہ ترین او",
|
||||
"settings.updates.toast.latest.description": "تسی OpenCode دا تازہ ترین ورژن چلا رئے او۔",
|
||||
"sound.option.none": "کوئی نئیں",
|
||||
"sound.option.alert01": "Alert 01",
|
||||
"sound.option.alert02": "Alert 02",
|
||||
"sound.option.alert03": "Alert 03",
|
||||
"sound.option.alert04": "Alert 04",
|
||||
"sound.option.alert05": "Alert 05",
|
||||
"sound.option.alert06": "Alert 06",
|
||||
"sound.option.alert07": "Alert 07",
|
||||
"sound.option.alert08": "Alert 08",
|
||||
"sound.option.alert09": "Alert 09",
|
||||
"sound.option.alert10": "Alert 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"settings.general.notifications.agent.title": "Agent",
|
||||
"settings.general.notifications.agent.description":
|
||||
"جدوں ایجنٹ مکمل ہو جائے یا توجہ دی لوڑ ہووے تے سسٹم نوٹیفکیشن وکھاؤ",
|
||||
"settings.general.notifications.permissions.title": "اجازتاں",
|
||||
"settings.general.notifications.permissions.description": "جدوں اجازت دی لوڑ ہووے تے سسٹم نوٹیفکیشن وکھاؤ",
|
||||
"settings.general.notifications.errors.title": "غلطیاں",
|
||||
"settings.general.notifications.errors.description": "جدوں کوئی غلطی ہوندی اے تے سسٹم نوٹیفکیشن وکھاؤ",
|
||||
"settings.general.sounds.agent.title": "Agent",
|
||||
"settings.general.sounds.agent.description": "جدوں ایجنٹ مکمل ہو جائے یا توجہ دی لوڑ ہووے تے آواز چلاؤ",
|
||||
"settings.general.sounds.permissions.title": "اجازتاں",
|
||||
"settings.general.sounds.permissions.description": "جدوں اجازت دی لوڑ ہووے تے آواز چلاؤ",
|
||||
"settings.general.sounds.errors.title": "غلطیاں",
|
||||
"settings.general.sounds.errors.description": "جدوں کوئی غلطی ہوندی اے تے آواز چلاؤ",
|
||||
"settings.shortcuts.title": "کی بورڈ شارٹ کٹ",
|
||||
"settings.shortcuts.reset.button": "ڈیفالٹ تے ری سیٹ کرو",
|
||||
"settings.shortcuts.reset.toast.title": "شارٹ کٹس ری سیٹ ہو گئے",
|
||||
"settings.shortcuts.reset.toast.description": "کی بورڈ دے شارٹ کٹس نو ڈیفالٹ تے ری سیٹ کر دتا گیا اے۔",
|
||||
"settings.shortcuts.conflict.title": "شارٹ کٹ پہلے ای استعمال چ اے",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} پہلے ای {{titles}} نوں تفویض کیتا گیا اے۔",
|
||||
"settings.shortcuts.unassigned": "غیر تفویض شدہ",
|
||||
"settings.shortcuts.pressKeys": "کنجیاں دباؤ",
|
||||
"settings.shortcuts.search.placeholder": "شارٹ کٹ لبھو",
|
||||
"settings.shortcuts.search.empty": "کوئی شارٹ کٹ نئیں ملیا",
|
||||
"settings.shortcuts.group.general": "عمومی",
|
||||
"settings.shortcuts.group.session": "سیشن",
|
||||
"settings.shortcuts.group.navigation": "نیوی گیشن",
|
||||
"settings.shortcuts.group.modelAndAgent": "ماڈل تے ایجنٹ",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "پرامپٹ",
|
||||
"settings.providers.title": "پرووائیڈر",
|
||||
"settings.providers.description": "پرووائیڈر دیاں سیٹنگاں ایتھے بدلیاں جا سکدیاں نیں۔",
|
||||
"settings.providers.section.connected": "جڑے ہوئے پرووائیڈر",
|
||||
"settings.providers.connected.empty": "کوئی پرووائیڈر نئیں جڑیا",
|
||||
"settings.providers.connected.environmentDescription": "تہاڈے ماحول دے متغیراں توں جڑیا ہویا اے",
|
||||
"settings.providers.section.popular": "مقبول پرووائیڈر",
|
||||
"settings.providers.custom.description": "بیس URL نال OpenAI دے نال رلدا پرووائیڈر شامل کرو۔",
|
||||
"settings.providers.tag.environment": "ماحول",
|
||||
"settings.providers.tag.config": "ترتیب",
|
||||
"settings.providers.tag.custom": "مخصوص",
|
||||
"settings.providers.tag.other": "ہور",
|
||||
"settings.models.title": "ماڈل",
|
||||
"settings.models.description": "ماڈل دی ترتیبات ایتھے ترتیب دے قابل ہون گیاں۔",
|
||||
"settings.agents.title": "ایجنٹاں",
|
||||
"settings.agents.description": "Agent ترتیبات ایتھے ترتیب دے قابل ہون گیاں۔",
|
||||
"settings.commands.title": "کمانڈز",
|
||||
"settings.commands.description": "کمانڈ دی ترتیبات ایتھے ترتیب دے قابل ہون گیاں۔",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP ترتیبات ایتھے ترتیب دے قابل ہون گیاں۔",
|
||||
"settings.permissions.title": "اجازتاں",
|
||||
"settings.permissions.description": "کنٹرول کرو کہ سرور پہلے توں طے شدہ طور تے کیہڑے اوزار استعمال کر سکدا اے۔",
|
||||
"settings.permissions.section.tools": "ٹول",
|
||||
"settings.permissions.toast.updateFailed.title": "اجازتاں نو اپ ڈیٹ کرن اچ ناکام رہیا",
|
||||
"settings.permissions.action.allow": "اجازت دیو",
|
||||
"settings.permissions.action.ask": "پُچھو",
|
||||
"settings.permissions.action.deny": "منع کرو",
|
||||
"settings.permissions.tool.read.title": "پڑھو",
|
||||
"settings.permissions.tool.read.description": "فائل پڑھنا (فائل دے راہ نال میل کھاندا اے)",
|
||||
"settings.permissions.tool.edit.title": "ترمیم",
|
||||
"settings.permissions.tool.edit.description": "فائلاں وچ ترمیم کرو، بشمول ترمیماں، لکھتاں تے پیچاں",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "glob پیٹرناں نال فائلاں دا میل کرو",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "ریگولر ایکسپریشنز دا استعمال کردے ہوئے فائل دے مواد نو تلاش کرو",
|
||||
"settings.permissions.tool.list.title": "فہرست",
|
||||
"settings.permissions.tool.list.description": "ڈائریکٹری دے اندر فائلاں دی فہرست بناؤ",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "شیل کمانڈز چلاؤ",
|
||||
"settings.permissions.tool.task.title": "کم",
|
||||
"settings.permissions.tool.task.description": "ذیلی ایجنٹ شروع کرو",
|
||||
"settings.permissions.tool.skill.title": "Skill",
|
||||
"settings.permissions.tool.skill.description": "ناں نال اک مہارت لوڈ کرو",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "بولی دے سرور دے سوالاں نوں چلاؤ",
|
||||
"settings.permissions.tool.todowrite.title": "ٹوڈو لکھنا",
|
||||
"settings.permissions.tool.todowrite.description": "ٹوڈو لسٹ نوں اپ ڈیٹ کرو",
|
||||
"settings.permissions.tool.webfetch.title": "ویب فیچ",
|
||||
"settings.permissions.tool.webfetch.description": "URL توں مواد لیاو",
|
||||
"settings.permissions.tool.websearch.title": "Web Search",
|
||||
"settings.permissions.tool.websearch.description": "ویب تے سرچ کرو",
|
||||
"settings.permissions.tool.external_directory.title": "باہرلی ڈائریکٹری",
|
||||
"settings.permissions.tool.external_directory.description":
|
||||
"پروجیکٹ ڈائریکٹری توں باہر دیاں فائلاں تک رسائی حاصل کرو",
|
||||
"settings.permissions.tool.doom_loop.title": "ڈوم لوپ",
|
||||
"settings.permissions.tool.doom_loop.description": "اکو جئے ان پٹ دے نال بار بار ٹول کالاں دا پتہ لاو",
|
||||
"session.delete.failed.title": "سیشن نو مٹان اچ ناکام رہیا",
|
||||
"session.delete.title": "سیشن مٹاؤ",
|
||||
"session.delete.confirm": 'سیشن "{{name}}" نوں مٹا دیو؟',
|
||||
"session.delete.button": "سیشن مٹاؤ",
|
||||
"workspace.new": "نویں ورک سپیس",
|
||||
"workspace.type.local": "مقامی",
|
||||
"workspace.type.sandbox": "سینڈ باکس",
|
||||
"workspace.create.failed.title": "ورک سپیس بنان چ ناکامی ہوئی",
|
||||
"workspace.delete.failed.title": "ورک اسپیس نو مٹان اچ ناکام رہیا",
|
||||
"workspace.resetting.title": "ورک اسپیس نوں ری سیٹ کرنا",
|
||||
"workspace.resetting.description": "اس چ اک منٹ لگ سکدا اے۔",
|
||||
"workspace.reset.failed.title": "ورک سپیس نوں ری سیٹ کرن چ ناکامی ہوئی",
|
||||
"workspace.reset.success.title": "ورک اسپیس ری سیٹ",
|
||||
"workspace.reset.success.description": "ورک سپیس ہن ڈیفالٹ برانچ نال میل کھاندا اے۔",
|
||||
"workspace.error.stillPreparing": "ورک اسپیس ہلے وی تیاری کر رئی اے",
|
||||
"workspace.status.checking": "غیر ضم شدہ تبدیلیاں دی جانچ پڑتال...",
|
||||
"workspace.status.error": "Git دی حالت دی پڑتال نئیں ہو سکی۔",
|
||||
"workspace.status.clean": "کوئی غیر ضم شدہ تبدیلی نئیں لبھی۔",
|
||||
"workspace.status.dirty": "اس ورک اسپیس وچ غیر ضم شدہ تبدیلیاں دا پتہ چلیا اے۔",
|
||||
"workspace.delete.title": "ورک اسپیس نو مٹا دیو",
|
||||
"workspace.delete.confirm": 'ورک اسپیس "{{name}}" نو مٹا دیو؟',
|
||||
"workspace.delete.button": "ورک اسپیس نو مٹا دیو",
|
||||
"workspace.reset.title": "ورک اسپیس ری سیٹ کرو",
|
||||
"workspace.reset.confirm": 'ورک اسپیس "{{name}}" نوں ری سیٹ کرو؟',
|
||||
"workspace.reset.button": "ورک اسپیس ری سیٹ کرو",
|
||||
"workspace.reset.archived.none": "کوئی فعال سیشن آرکائیو نئیں کیتا جائے گا۔",
|
||||
"workspace.reset.archived.one": "1 سیشن آرکائیو کیتا جائے گا۔",
|
||||
"workspace.reset.archived.many": "{{count}} سیشن آرکائیو کیتے جان گے۔",
|
||||
"workspace.reset.note": "ایہ ورک اسپیس نو ڈیفالٹ برانچ نال ملاون لئی ری سیٹ کرے گا۔",
|
||||
}
|
||||
@@ -18,29 +18,8 @@ const appLocales = [
|
||||
"tr",
|
||||
"zh",
|
||||
"zht",
|
||||
"hi",
|
||||
"nl",
|
||||
"id",
|
||||
"vi",
|
||||
"it",
|
||||
"ur",
|
||||
"pa",
|
||||
"az",
|
||||
"fi",
|
||||
"sv",
|
||||
] as const
|
||||
const desktopLocales = appLocales
|
||||
const pluralCategories: Partial<Record<(typeof appLocales)[number], readonly string[]>> = {
|
||||
ar: ["zero", "two", "few", "many"],
|
||||
br: ["many"],
|
||||
bs: ["few"],
|
||||
es: ["many"],
|
||||
fr: ["many"],
|
||||
it: ["many"],
|
||||
pl: ["few", "many"],
|
||||
ru: ["few", "many"],
|
||||
uk: ["few", "many"],
|
||||
}
|
||||
const desktopLocales = appLocales.filter((locale) => locale !== "th" && locale !== "tr")
|
||||
|
||||
const domains = [
|
||||
{
|
||||
@@ -64,23 +43,18 @@ const domains = [
|
||||
] as const
|
||||
|
||||
describe.skipIf(!!process.env.CI)("i18n parity", () => {
|
||||
test("non-English locales have every English key and required plural variants", async () => {
|
||||
test("non-English locales have every English key", async () => {
|
||||
for (const domain of domains) {
|
||||
const source = await dictionary(domain.source)
|
||||
for (const locale of domain.locales) {
|
||||
const target = await dictionary(domain.target(locale))
|
||||
const missing = Object.keys(source).filter((key) => !Object.hasOwn(target, key))
|
||||
const extra = Object.keys(target)
|
||||
.filter((key) => !Object.hasOwn(source, key))
|
||||
.sort()
|
||||
const expected = pluralFamilies(source)
|
||||
.flatMap((key) => (pluralCategories[locale] ?? []).map((category) => `${key}.${category}`))
|
||||
.sort()
|
||||
const extra = Object.keys(target).filter((key) => !Object.hasOwn(source, key))
|
||||
expect({ domain: domain.name, locale, missing, extra }).toEqual({
|
||||
domain: domain.name,
|
||||
locale,
|
||||
missing: [],
|
||||
extra: expected,
|
||||
extra: [],
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -94,17 +68,7 @@ describe.skipIf(!!process.env.CI)("i18n parity", () => {
|
||||
const mismatched = Object.keys(source).filter(
|
||||
(key) => Object.hasOwn(target, key) && placeholders(source[key]).join() !== placeholders(target[key]).join(),
|
||||
)
|
||||
const pluralMismatched = pluralFamilies(source).flatMap((key) =>
|
||||
(pluralCategories[locale] ?? [])
|
||||
.map((category) => `${key}.${category}`)
|
||||
.filter((variant) => placeholders(source[`${key}.other`]).join() !== placeholders(target[variant]).join()),
|
||||
)
|
||||
expect({ domain: domain.name, locale, mismatched, pluralMismatched }).toEqual({
|
||||
domain: domain.name,
|
||||
locale,
|
||||
mismatched: [],
|
||||
pluralMismatched: [],
|
||||
})
|
||||
expect({ domain: domain.name, locale, mismatched }).toEqual({ domain: domain.name, locale, mismatched: [] })
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -136,38 +100,6 @@ describe.skipIf(!!process.env.CI)("i18n parity", () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe("i18n plural parity", () => {
|
||||
test("locale-specific categories exist and preserve count placeholders", async () => {
|
||||
for (const domain of domains.slice(0, 2)) {
|
||||
const source = await dictionary(domain.source)
|
||||
const families = pluralFamilies(source)
|
||||
for (const locale of domain.locales) {
|
||||
const target = await dictionary(domain.target(locale))
|
||||
const missing = families.flatMap((key) =>
|
||||
(pluralCategories[locale] ?? [])
|
||||
.map((category) => `${key}.${category}`)
|
||||
.filter((variant) => !Object.hasOwn(target, variant)),
|
||||
)
|
||||
const mismatched = families.flatMap((key) =>
|
||||
(pluralCategories[locale] ?? [])
|
||||
.map((category) => `${key}.${category}`)
|
||||
.filter(
|
||||
(variant) =>
|
||||
Object.hasOwn(target, variant) &&
|
||||
placeholders(source[`${key}.other`]).join() !== placeholders(target[variant]).join(),
|
||||
),
|
||||
)
|
||||
expect({ domain: domain.name, locale, missing, mismatched }).toEqual({
|
||||
domain: domain.name,
|
||||
locale,
|
||||
missing: [],
|
||||
mismatched: [],
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
async function dictionary(file: string) {
|
||||
const module: unknown = await import(file)
|
||||
if (typeof module !== "object" || module === null || !("dict" in module) || !isDictionary(module.dict)) {
|
||||
@@ -184,14 +116,3 @@ function isDictionary(value: unknown): value is Record<string, string> {
|
||||
function placeholders(value: string) {
|
||||
return Array.from(value.matchAll(/{{\s*([^}]+?)\s*}}/g), (match) => match[1]).sort()
|
||||
}
|
||||
|
||||
function pluralFamilies(dictionary: Record<string, string>) {
|
||||
return Object.keys(dictionary)
|
||||
.filter(
|
||||
(key) =>
|
||||
key.endsWith(".one") &&
|
||||
dictionary[key].includes("{{count}}") &&
|
||||
dictionary[`${key.slice(0, -4)}.other`]?.includes("{{count}}"),
|
||||
)
|
||||
.map((key) => key.slice(0, -4))
|
||||
}
|
||||
|
||||
+60
-75
@@ -45,7 +45,7 @@ export const dict = {
|
||||
"command.tab.reopenClosed": "Otwórz ponownie zamkniętą kartę",
|
||||
"command.context.addSelection": "Dodaj zaznaczenie do kontekstu",
|
||||
"command.context.addSelection.description": "Dodaj zaznaczone linie z bieżącego pliku",
|
||||
"command.input.focus": "Przejdź do pola wprowadzania",
|
||||
"command.input.focus": "Fokus na pole wejściowe",
|
||||
"command.terminal.toggle": "Przełącz terminal",
|
||||
"command.fileTree.toggle": "Przełącz drzewo plików",
|
||||
"command.review.toggle": "Przełącz przegląd",
|
||||
@@ -82,7 +82,7 @@ export const dict = {
|
||||
"command.session.fork": "Rozwidlij od wiadomości",
|
||||
"command.session.fork.description": "Utwórz nową sesję od poprzedniej wiadomości",
|
||||
"command.session.share": "Udostępnij sesję",
|
||||
"command.session.share.description": "Udostępnij tę sesję i skopiuj adres URL do schowka",
|
||||
"command.session.share.description": "Udostępnij tę sesję i skopiuj URL do schowka",
|
||||
"command.session.unshare": "Przestań udostępniać sesję",
|
||||
"command.session.unshare.description": "Zatrzymaj udostępnianie tej sesji",
|
||||
"palette.search.placeholder": "Szukaj plików, poleceń i sesji",
|
||||
@@ -94,11 +94,10 @@ export const dict = {
|
||||
"dialog.provider.empty": "Nie znaleziono dostawców",
|
||||
"dialog.provider.group.popular": "Popularne",
|
||||
"dialog.provider.group.other": "Inne",
|
||||
"dialog.provider.custom.label": "Niestandardowy dostawca zgodny z OpenAI",
|
||||
"dialog.provider.tag.recommended": "Zalecane",
|
||||
"dialog.provider.opencode.note": "Starannie dobrane modele, w tym Claude, GPT, Gemini i inne",
|
||||
"dialog.provider.opencode.note": "Wyselekcjonowane modele, w tym Claude, GPT, Gemini i inne",
|
||||
"dialog.provider.opencode.tagline": "Niezawodne, zoptymalizowane modele",
|
||||
"dialog.provider.opencodeGo.tagline": "Niedroga subskrypcja dla każdego",
|
||||
"dialog.provider.opencodeGo.tagline": "Tania subskrypcja dla każdego",
|
||||
"dialog.provider.anthropic.note": "Bezpośredni dostęp do modeli Claude, w tym Pro i Max",
|
||||
"dialog.provider.copilot.note": "Modele AI do pomocy w kodowaniu przez GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Modele GPT do szybkich i wszechstronnych zadań AI",
|
||||
@@ -107,16 +106,15 @@ export const dict = {
|
||||
"dialog.provider.vercel.note": "Ujednolicony dostęp do modeli AI z inteligentnym routingiem",
|
||||
"dialog.model.select.title": "Wybierz model",
|
||||
"dialog.model.search.placeholder": "Szukaj modeli",
|
||||
"dialog.model.empty": "Nie znaleziono modeli",
|
||||
"dialog.model.empty": "Brak wyników modelu",
|
||||
"dialog.model.manage": "Zarządzaj modelami",
|
||||
"dialog.model.manage.description": "Dostosuj, które modele pojawiają się w wyborze modelu.",
|
||||
"dialog.model.manage.provider.toggle": "Przełącz wszystkie modele {{provider}}",
|
||||
"dialog.model.unpaid.freeModels.title": "Darmowe modele dostarczane przez OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Dodaj więcej modeli od popularnych dostawców",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Zobacz ponad 70 innych dostawców",
|
||||
"dialog.provider.viewAll": "Zobacz więcej dostawców",
|
||||
"provider.connect.title": "Połącz {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Zaloguj się za pomocą konta Claude Pro/Max",
|
||||
"provider.connect.title.anthropicProMax": "Zaloguj się z Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Wybierz metodę logowania dla {{provider}}.",
|
||||
"provider.connect.method.apiKey": "Klucz API",
|
||||
"provider.connect.status.inProgress": "Autoryzacja w toku...",
|
||||
@@ -128,9 +126,9 @@ export const dict = {
|
||||
"provider.connect.apiKey.placeholder": "Klucz API",
|
||||
"provider.connect.apiKey.required": "Klucz API jest wymagany",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen daje dostęp do wybranego zestawu niezawodnych, zoptymalizowanych modeli dla agentów programistycznych.",
|
||||
"OpenCode Zen daje dostęp do wybranego zestawu niezawodnych, zoptymalizowanych modeli dla agentów kodujących.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Za pomocą jednego klucza API uzyskasz dostęp do modeli takich jak Claude, GPT, Gemini i GLM, a także wielu innych.",
|
||||
"Z jednym kluczem API uzyskasz dostęp do modeli takich jak Claude, GPT, Gemini, GLM i więcej.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Odwiedź ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": ", aby odebrać swój klucz API.",
|
||||
@@ -158,7 +156,7 @@ export const dict = {
|
||||
"provider.custom.field.providerID.description": "Małe litery, cyfry, łączniki lub podkreślenia",
|
||||
"provider.custom.field.name.label": "Nazwa wyświetlana",
|
||||
"provider.custom.field.name.placeholder": "Mój Dostawca AI",
|
||||
"provider.custom.field.baseURL.label": "Bazowy adres URL",
|
||||
"provider.custom.field.baseURL.label": "Bazowy URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.mojdostawca.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Klucz API",
|
||||
"provider.custom.field.apiKey.placeholder": "Klucz API",
|
||||
@@ -182,7 +180,7 @@ export const dict = {
|
||||
"provider.custom.error.providerID.format": "Używaj małych liter, cyfr, łączników lub podkreśleń",
|
||||
"provider.custom.error.providerID.exists": "To ID dostawcy już istnieje",
|
||||
"provider.custom.error.name.required": "Nazwa wyświetlana jest wymagana",
|
||||
"provider.custom.error.baseURL.required": "Bazowy adres URL jest wymagany",
|
||||
"provider.custom.error.baseURL.required": "Bazowy URL jest wymagany",
|
||||
"provider.custom.error.baseURL.format": "Musi zaczynać się od http:// lub https://",
|
||||
"provider.custom.error.required": "Wymagane",
|
||||
"provider.custom.error.duplicate": "Duplikat",
|
||||
@@ -218,7 +216,7 @@ export const dict = {
|
||||
"common.clear": "Wyczyść",
|
||||
"common.connect": "Połącz",
|
||||
"common.disconnect": "Rozłącz",
|
||||
"common.continue": "Kontynuuj",
|
||||
"common.continue": "Prześlij",
|
||||
"common.submit": "Prześlij",
|
||||
"common.save": "Zapisz",
|
||||
"common.saving": "Zapisywanie...",
|
||||
@@ -231,46 +229,46 @@ export const dict = {
|
||||
"prompt.placeholder.summarizeComment": "Podsumuj komentarz…",
|
||||
"prompt.mode.shell": "Terminal",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "Naciśnij Esc, aby wyjść",
|
||||
"prompt.mode.shell.exit": "esc aby wyjść",
|
||||
"session.child.promptDisabled": "Nie można wysyłać promptów w sesjach podagentów.",
|
||||
"session.child.backToParent": "Wróć do głównej sesji.",
|
||||
"prompt.example.1": "Napraw TODO w bazie kodu",
|
||||
"prompt.example.2": "Jaki jest stos technologiczny tego projektu?",
|
||||
"prompt.example.3": "Napraw zepsute testy",
|
||||
"prompt.example.4": "Wyjaśnij, jak działa uwierzytelnianie",
|
||||
"prompt.example.4": "Wyjaśnij jak działa uwierzytelnianie",
|
||||
"prompt.example.5": "Znajdź i napraw luki w zabezpieczeniach",
|
||||
"prompt.example.6": "Dodaj testy jednostkowe dla serwisu użytkownika",
|
||||
"prompt.example.7": "Zrefaktoryzuj tę funkcję, aby była bardziej czytelna",
|
||||
"prompt.example.8": "Co oznacza ten błąd?",
|
||||
"prompt.example.9": "Pomóż mi zdiagnozować ten problem",
|
||||
"prompt.example.9": "Pomóż mi zdebugować ten problem",
|
||||
"prompt.example.10": "Wygeneruj dokumentację API",
|
||||
"prompt.example.11": "Zoptymalizuj zapytania do bazy danych",
|
||||
"prompt.example.12": "Dodaj walidację danych wejściowych",
|
||||
"prompt.example.13": "Utwórz nowy komponent dla...",
|
||||
"prompt.example.14": "Jak wdrożyć ten projekt?",
|
||||
"prompt.example.15": "Sprawdź mój kod pod kątem najlepszych praktyk",
|
||||
"prompt.example.16": "Dodaj obsługę błędów do tej funkcji",
|
||||
"prompt.example.16": "Dodaj obsługę błędów do tej funkcję",
|
||||
"prompt.example.17": "Wyjaśnij ten wzorzec regex",
|
||||
"prompt.example.18": "Przekonwertuj to na TypeScript",
|
||||
"prompt.example.19": "Dodaj logowanie w całej bazie kodu",
|
||||
"prompt.example.20": "Które zależności są przestarzałe?",
|
||||
"prompt.example.21": "Pomóż mi napisać skrypt migracyjny",
|
||||
"prompt.example.22": "Zaimplementuj buforowanie dla tego punktu końcowego",
|
||||
"prompt.example.22": "Zaimplementuj cachowanie dla tego punktu końcowego",
|
||||
"prompt.example.23": "Dodaj stronicowanie do tej listy",
|
||||
"prompt.example.24": "Utwórz polecenie CLI dla...",
|
||||
"prompt.example.25": "Jak działają tutaj zmienne środowiskowe?",
|
||||
"prompt.popover.emptyResults": "Brak pasujących wyników",
|
||||
"prompt.popover.emptyCommands": "Brak pasujących poleceń",
|
||||
"prompt.dropzone.label": "Upuść tutaj obrazy, pliki PDF lub pliki tekstowe",
|
||||
"prompt.dropzone.file.label": "Upuść, aby oznaczyć plik za pomocą @",
|
||||
"prompt.dropzone.file.label": "Upuść, aby @wspomnieć plik",
|
||||
"prompt.slash.badge.custom": "własne",
|
||||
"prompt.slash.badge.skill": "umiejętność",
|
||||
"prompt.slash.badge.skill": "skill",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "aktywny",
|
||||
"prompt.context.includeActiveFile": "Dołącz aktywny plik",
|
||||
"prompt.context.removeActiveFile": "Usuń aktywny plik z kontekstu",
|
||||
"prompt.context.removeFile": "Usuń plik z kontekstu",
|
||||
"prompt.action.attachFile": "Dodaj pliki",
|
||||
"prompt.action.attachFile": "Załącz plik",
|
||||
"prompt.menu.addImagesAndFiles": "Dodaj pliki i inne elementy",
|
||||
"prompt.menu.imagesAndFiles": "Obrazy i pliki",
|
||||
"prompt.menu.commands": "Polecenia",
|
||||
@@ -280,7 +278,6 @@ export const dict = {
|
||||
"prompt.action.send": "Wyślij",
|
||||
"prompt.action.stop": "Zatrzymaj",
|
||||
"prompt.toast.pasteUnsupported.title": "Nieobsługiwany załącznik",
|
||||
"prompt.toast.attachmentDuplicate.title": "Ten plik został już przesłany",
|
||||
"prompt.toast.pasteUnsupported.description": "Można tutaj załączać tylko obrazy, pliki PDF lub pliki tekstowe.",
|
||||
"prompt.toast.modelAgentRequired.title": "Wybierz agenta i model",
|
||||
"prompt.toast.modelAgentRequired.description": "Wybierz agenta i model przed wysłaniem zapytania.",
|
||||
@@ -291,12 +288,12 @@ export const dict = {
|
||||
"prompt.toast.promptSendFailed.title": "Nie udało się wysłać zapytania",
|
||||
"prompt.toast.promptSendFailed.description": "Nie udało się pobrać sesji",
|
||||
"dialog.mcp.title": "MCP",
|
||||
"dialog.mcp.description": "Włączone: {{enabled}} z {{total}}",
|
||||
"dialog.mcp.description": "{{enabled}} z {{total}} włączone",
|
||||
"dialog.mcp.empty": "Brak skonfigurowanych MCP",
|
||||
"dialog.lsp.empty": "Serwery LSP są wykrywane automatycznie na podstawie typów plików",
|
||||
"dialog.plugins.empty": "Wtyczki są skonfigurowane w pliku opencode.json",
|
||||
"dialog.lsp.empty": "LSP wykryte automatycznie na podstawie typów plików",
|
||||
"dialog.plugins.empty": "Wtyczki skonfigurowane w opencode.json",
|
||||
"mcp.status.connected": "połączono",
|
||||
"mcp.status.failed": "błąd",
|
||||
"mcp.status.failed": "niepowodzenie",
|
||||
"mcp.status.needs_auth": "wymaga autoryzacji",
|
||||
"mcp.auth.clickToAuthenticate": "Kliknij, aby się uwierzytelnić",
|
||||
"mcp.status.disabled": "wyłączone",
|
||||
@@ -306,14 +303,14 @@ export const dict = {
|
||||
"dialog.directory.action.selectFile": "Wybierz plik",
|
||||
"dialog.directory.action.selectFolder": "Wybierz folder",
|
||||
"dialog.directory.root": "Katalog główny",
|
||||
"dialog.directory.parent": "Folder nadrzędny",
|
||||
"dialog.directory.parent": "Nadrzędny",
|
||||
"dialog.directory.readError": "Nie można odczytać tego folderu",
|
||||
"dialog.server.title": "Serwery",
|
||||
"dialog.server.description": "Przełącz serwer OpenCode, z którym łączy się ta aplikacja.",
|
||||
"dialog.server.search.placeholder": "Szukaj serwerów",
|
||||
"dialog.server.empty": "Brak serwerów",
|
||||
"dialog.server.add.title": "Dodaj serwer",
|
||||
"dialog.server.add.url": "Adres URL serwera",
|
||||
"dialog.server.add.url": "URL serwera",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Nie można połączyć się z serwerem",
|
||||
"dialog.server.add.checking": "Sprawdzanie...",
|
||||
@@ -325,7 +322,7 @@ export const dict = {
|
||||
"dialog.server.edit.title": "Edytuj serwer",
|
||||
"dialog.server.default.title": "Domyślny serwer",
|
||||
"dialog.server.default.description":
|
||||
"Łącz się z tym serwerem przy uruchamianiu aplikacji zamiast uruchamiać serwer lokalny. Wymaga ponownego uruchomienia.",
|
||||
"Połącz z tym serwerem przy uruchomieniu aplikacji zamiast uruchamiać lokalny serwer. Wymaga restartu.",
|
||||
"dialog.server.default.none": "Nie wybrano serwera",
|
||||
"dialog.server.default.set": "Ustaw bieżący serwer jako domyślny",
|
||||
"dialog.server.default.clear": "Wyczyść",
|
||||
@@ -334,7 +331,7 @@ export const dict = {
|
||||
"dialog.server.menu.default": "Ustaw jako domyślny",
|
||||
"dialog.server.menu.defaultRemove": "Usuń domyślny",
|
||||
"dialog.server.menu.delete": "Usuń",
|
||||
"dialog.server.current": "Bieżący serwer",
|
||||
"dialog.server.current": "Obecny serwer",
|
||||
"dialog.server.status.default": "Domyślny",
|
||||
"wsl.server.add": "Dodaj serwer WSL",
|
||||
"wsl.server.addShort": "Dodaj WSL",
|
||||
@@ -375,7 +372,7 @@ export const dict = {
|
||||
"wsl.onboarding.distroStatus.ready": "Gotowa",
|
||||
"wsl.onboarding.distroStatus.checking": "Sprawdzanie...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode nie jest zainstalowany",
|
||||
"wsl.onboarding.distroStatus.missingTools": "Brak narzędzi bash i curl",
|
||||
"wsl.onboarding.distroStatus.missingTools": "Brak bash i curl",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Nieobsługiwana · Użyj WSL 2",
|
||||
"wsl.onboarding.needAnotherDistro": "Potrzebujesz innej dystrybucji?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "Zainstaluj dystrybucję systemu Linux z katalogu WSL",
|
||||
@@ -396,7 +393,7 @@ export const dict = {
|
||||
"wsl.onboarding.installDistro": "Zainstaluj dystrybucję",
|
||||
"wsl.onboarding.searchDistros": "Szukaj dystrybucji",
|
||||
"wsl.onboarding.wsl2Required": "Wymagany jest WSL 2.",
|
||||
"wsl.onboarding.toolsRequired": "Ta dystrybucja wymaga narzędzi bash i curl.",
|
||||
"wsl.onboarding.toolsRequired": "Ta dystrybucja wymaga bash i curl.",
|
||||
"wsl.onboarding.openTerminal": "Otwórz terminal",
|
||||
"wsl.onboarding.path": "Ścieżka: {{path}}",
|
||||
"wsl.onboarding.notFound": "nie znaleziono",
|
||||
@@ -409,8 +406,8 @@ export const dict = {
|
||||
"dialog.project.edit.name": "Nazwa",
|
||||
"dialog.project.edit.icon": "Ikona",
|
||||
"dialog.project.edit.icon.alt": "Ikona projektu",
|
||||
"dialog.project.edit.icon.hint": "Kliknij, aby wybrać obraz, lub przeciągnij go tutaj",
|
||||
"dialog.project.edit.icon.recommended": "Zalecane: 128 × 128 px",
|
||||
"dialog.project.edit.icon.hint": "Kliknij lub przeciągnij obraz",
|
||||
"dialog.project.edit.icon.recommended": "Zalecane: 128x128px",
|
||||
"dialog.project.edit.color": "Kolor",
|
||||
"dialog.project.edit.color.select": "Wybierz kolor {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Skrypt uruchamiania przestrzeni roboczej",
|
||||
@@ -470,9 +467,9 @@ export const dict = {
|
||||
"toast.theme.title": "Przełączono motyw",
|
||||
"toast.scheme.title": "Schemat kolorów",
|
||||
"toast.workspace.enabled.title": "Przestrzenie robocze włączone",
|
||||
"toast.workspace.enabled.description": "Kilka drzew roboczych jest teraz wyświetlanych na pasku bocznym",
|
||||
"toast.workspace.enabled.description": "Kilka worktree jest teraz wyświetlanych na pasku bocznym",
|
||||
"toast.workspace.disabled.title": "Przestrzenie robocze wyłączone",
|
||||
"toast.workspace.disabled.description": "Tylko główne drzewo robocze jest wyświetlane na pasku bocznym",
|
||||
"toast.workspace.disabled.description": "Tylko główny worktree jest wyświetlany na pasku bocznym",
|
||||
"toast.permissions.autoaccept.on.title": "Automatyczne akceptowanie uprawnień",
|
||||
"toast.permissions.autoaccept.on.description": "Żądania uprawnień będą automatycznie zatwierdzane",
|
||||
"toast.permissions.autoaccept.off.title": "Zatrzymano automatyczne akceptowanie uprawnień",
|
||||
@@ -483,9 +480,9 @@ export const dict = {
|
||||
"toast.file.listFailed.title": "Nie udało się wyświetlić listy plików",
|
||||
"toast.context.noLineSelection.title": "Brak zaznaczenia linii",
|
||||
"toast.context.noLineSelection.description": "Najpierw wybierz zakres linii w zakładce pliku.",
|
||||
"toast.session.share.copyFailed.title": "Nie udało się skopiować adresu URL do schowka",
|
||||
"toast.session.share.copyFailed.title": "Nie udało się skopiować URL do schowka",
|
||||
"toast.session.share.success.title": "Sesja udostępniona",
|
||||
"toast.session.share.success.description": "Adres URL udostępnionej sesji skopiowano do schowka!",
|
||||
"toast.session.share.success.description": "Link udostępniania skopiowany do schowka!",
|
||||
"toast.session.share.failed.title": "Nie udało się udostępnić sesji",
|
||||
"toast.session.share.failed.description": "Wystąpił błąd podczas udostępniania sesji",
|
||||
"toast.session.unshare.success.title": "Zatrzymano udostępnianie sesji",
|
||||
@@ -495,13 +492,13 @@ export const dict = {
|
||||
"toast.session.listFailed.title": "Nie udało się załadować sesji dla {{project}}",
|
||||
"toast.update.title": "Dostępna aktualizacja",
|
||||
"toast.update.description": "Nowa wersja OpenCode ({{version}}) jest teraz dostępna do instalacji.",
|
||||
"toast.update.action.installRestart": "Zainstaluj i uruchom ponownie",
|
||||
"toast.update.action.installRestart": "Zainstaluj i zrestartuj",
|
||||
"toast.update.action.notYet": "Jeszcze nie",
|
||||
"error.page.title": "Coś poszło nie tak",
|
||||
"error.page.description": "Wystąpił błąd podczas ładowania aplikacji.",
|
||||
"error.page.description.localServerStartup": "Wystąpił błąd podczas uruchamiania serwera lokalnego.",
|
||||
"error.page.details.label": "Szczegóły błędu",
|
||||
"error.page.action.restart": "Uruchom ponownie",
|
||||
"error.page.action.restart": "Restartuj",
|
||||
"error.page.action.report": "Zgłoś błąd",
|
||||
"error.page.action.reported": "Błąd zgłoszony",
|
||||
"error.page.action.exportLogs": "Eksportuj dzienniki",
|
||||
@@ -514,7 +511,7 @@ export const dict = {
|
||||
"error.dev.rootNotFound":
|
||||
"Nie znaleziono elementu głównego. Czy zapomniałeś dodać go do swojego index.html? A może atrybut id został błędnie wpisany?",
|
||||
"error.serverSync.connectFailed": "Nie można połączyć się z serwerem. Czy serwer działa pod adresem `{{url}}`?",
|
||||
"directory.error.invalidUrl": "Nieprawidłowy katalog w adresie URL.",
|
||||
"directory.error.invalidUrl": "Nieprawidłowy katalog w URL.",
|
||||
"error.chain.unknown": "Nieznany błąd",
|
||||
"error.chain.causedBy": "Spowodowany przez:",
|
||||
"error.chain.apiError": "Błąd API",
|
||||
@@ -523,7 +520,7 @@ export const dict = {
|
||||
"error.chain.responseBody": "Treść odpowiedzi:\n{{body}}",
|
||||
"error.chain.didYouMean": "Czy miałeś na myśli: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Model nie znaleziony: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Sprawdź nazwy dostawców i modeli w konfiguracji (opencode.json)",
|
||||
"error.chain.checkConfig": "Sprawdź swoją konfigurację (opencode.json) nazwy dostawców/modeli",
|
||||
"error.chain.mcpFailed":
|
||||
"Serwer MCP „{{name}}” nie uruchomił się. Uwaga: OpenCode nie obsługuje jeszcze uwierzytelniania MCP.",
|
||||
"error.chain.providerAuthFailed": "Uwierzytelnianie dostawcy nie powiodło się ({{provider}}): {{message}}",
|
||||
@@ -578,7 +575,7 @@ export const dict = {
|
||||
"session.review.change.other": "Zmiany",
|
||||
"session.review.loadingChanges": "Ładowanie zmian...",
|
||||
"session.review.empty": "Brak zmian w tej sesji",
|
||||
"session.review.noVcs": "Nie wykryto systemu kontroli wersji Git, dlatego zmiany nie są wyświetlane",
|
||||
"session.review.noVcs": "Nie wykryto systemu kontroli wersji Git, zmiany nie są wyświetlane",
|
||||
"session.review.noSnapshot": "Śledzenie migawek jest wyłączone w konfiguracji, więc zmiany w sesji są niedostępne",
|
||||
"session.review.noChanges": "Brak zmian",
|
||||
"session.review.noUncommittedChanges": "Brak jeszcze niezatwierdzonych zmian",
|
||||
@@ -599,20 +596,14 @@ export const dict = {
|
||||
"session.question.minimize": "Zminimalizuj pytanie",
|
||||
"session.question.restore": "Przywróć pytanie",
|
||||
"session.question.pending.one": "{{count}} oczekujące pytanie",
|
||||
"session.question.pending.few": "{{count}} oczekujące pytania",
|
||||
"session.question.pending.many": "{{count}} oczekujących pytań",
|
||||
"session.question.pending.other": "Pytania oczekujące: {{count}}",
|
||||
"session.followupDock.summary.one": "{{count}} wiadomość w kolejce",
|
||||
"session.followupDock.summary.few": "{{count}} wiadomości w kolejce",
|
||||
"session.followupDock.summary.many": "{{count}} wiadomości w kolejce",
|
||||
"session.followupDock.summary.other": "{{count}} wiadomości w kolejce",
|
||||
"session.followupDock.sendNow": "Wyślij teraz",
|
||||
"session.followupDock.edit": "Edytuj",
|
||||
"session.followupDock.collapse": "Zwiń wiadomości w kolejce",
|
||||
"session.followupDock.expand": "Rozwiń wiadomości w kolejce",
|
||||
"session.revertDock.summary.one": "{{count}} cofnięta wiadomość",
|
||||
"session.revertDock.summary.few": "{{count}} cofnięte wiadomości",
|
||||
"session.revertDock.summary.many": "{{count}} cofniętych wiadomości",
|
||||
"session.revertDock.summary.other": "{{count}} cofnięte wiadomości",
|
||||
"session.revertDock.collapse": "Zwiń cofnięte wiadomości",
|
||||
"session.revertDock.expand": "Rozwiń cofnięte wiadomości",
|
||||
@@ -654,7 +645,7 @@ export const dict = {
|
||||
"session.share.action.publishing": "Publikowanie...",
|
||||
"session.share.action.unpublish": "Cofnij publikację",
|
||||
"session.share.action.unpublishing": "Cofanie publikacji...",
|
||||
"session.share.action.view": "Wyświetl",
|
||||
"session.share.action.view": "Widok",
|
||||
"session.share.copy.copied": "Skopiowano",
|
||||
"session.share.copy.copyLink": "Kopiuj link",
|
||||
"lsp.tooltip.none": "Brak serwerów LSP",
|
||||
@@ -666,7 +657,7 @@ export const dict = {
|
||||
"terminal.close": "Zamknij terminal",
|
||||
"terminal.connectionLost.title": "Utracono połączenie",
|
||||
"terminal.connectionLost.description":
|
||||
"Połączenie z terminalem zostało przerwane. Może się to zdarzyć podczas ponownego uruchamiania serwera.",
|
||||
"Połączenie z terminalem zostało przerwane. Może się to zdarzyć przy restarcie serwera.",
|
||||
"common.closeTab": "Zamknij kartę",
|
||||
"common.dismiss": "Odrzuć",
|
||||
"common.requestFailed": "Żądanie nie powiodło się",
|
||||
@@ -695,7 +686,7 @@ export const dict = {
|
||||
"sidebar.empty.title": "Brak otwartych projektów",
|
||||
"sidebar.empty.description": "Otwórz projekt, aby rozpocząć",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Aplikacja komputerowa",
|
||||
"settings.section.desktop": "Pulpit",
|
||||
"settings.section.server": "Serwer",
|
||||
"settings.tab.general": "Ogólne",
|
||||
"settings.tab.shortcuts": "Skróty",
|
||||
@@ -747,9 +738,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Dolna nawigacja",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Umieść pasek tytułu i karty sesji u dołu ekranu na urządzeniach mobilnych",
|
||||
"settings.general.row.showCustomAgents.title": "Wybór agenta",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Umożliwiaj przełączanie agentów w edytorze wiadomości. Po ukryciu domyślnie używany jest agent Build.",
|
||||
"settings.general.row.showCustomAgents.title": "Agenci niestandardowi",
|
||||
"settings.general.row.showCustomAgents.description": "Pokaż wybór agenta w edytorze wiadomości",
|
||||
"settings.general.row.reasoningSummaries.title": "Pokaż podsumowania wnioskowania",
|
||||
"settings.general.row.reasoningSummaries.description": "Wyświetlaj podsumowania wnioskowania modelu na osi czasu",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Rozwijaj elementy narzędzia shell",
|
||||
@@ -767,14 +757,13 @@ export const dict = {
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Odrzuć",
|
||||
"settings.general.row.pinchZoom.title": "Powiększanie gestem szczypania",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Zezwalaj na powiększanie gestem szczypania na gładziku lub przez przewijanie z wciśniętym klawiszem Ctrl",
|
||||
"settings.general.row.wayland.title": "Użyj natywnego protokołu Wayland",
|
||||
"settings.general.row.wayland.description":
|
||||
"Wyłącz awaryjne korzystanie z X11 w środowisku Wayland. Wymaga ponownego uruchomienia.",
|
||||
"Zezwalaj na powiększanie gestem szczypania na gładziku i przewijaniem z klawiszem Ctrl",
|
||||
"settings.general.row.wayland.title": "Użyj natywnego Wayland",
|
||||
"settings.general.row.wayland.description": "Wyłącz fallback X11 na Wayland. Wymaga restartu.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"W systemie Linux z monitorami o różnej częstotliwości odświeżania natywny protokół Wayland może być stabilniejszy.",
|
||||
"Na Linuxie z monitorami o różnym odświeżaniu, natywny Wayland może być bardziej stabilny.",
|
||||
"settings.general.row.releaseNotes.title": "Informacje o wydaniu",
|
||||
"settings.general.row.releaseNotes.description": "Pokazuj wyskakujące okna „Co nowego” po aktualizacjach",
|
||||
"settings.general.row.releaseNotes.description": 'Pokazuj wyskakujące okna "Co nowego" po aktualizacjach',
|
||||
"settings.updates.row.startup.title": "Sprawdzaj aktualizacje przy uruchomieniu",
|
||||
"settings.updates.row.startup.description": "Automatycznie sprawdzaj aktualizacje podczas uruchamiania OpenCode",
|
||||
"settings.updates.row.check.title": "Sprawdź aktualizacje",
|
||||
@@ -888,8 +877,7 @@ export const dict = {
|
||||
"settings.permissions.tool.read.title": "Odczyt",
|
||||
"settings.permissions.tool.read.description": "Odczyt pliku (pasuje do ścieżki pliku)",
|
||||
"settings.permissions.tool.edit.title": "Edycja",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Modyfikowanie plików, w tym edytowanie, zapisywanie, stosowanie łatek i edytowanie wielu plików",
|
||||
"settings.permissions.tool.edit.description": "Modyfikacja plików, w tym edycje, zapisy, łatki i multi-edycje",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Dopasowywanie plików za pomocą wzorców glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
@@ -899,7 +887,7 @@ export const dict = {
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Uruchamianie poleceń powłoki",
|
||||
"settings.permissions.tool.task.title": "Zadanie",
|
||||
"settings.permissions.tool.task.description": "Uruchamianie podagentów",
|
||||
"settings.permissions.tool.task.description": "Uruchamianie pod-agentów",
|
||||
"settings.permissions.tool.skill.title": "Umiejętność",
|
||||
"settings.permissions.tool.skill.description": "Ładowanie umiejętności według nazwy",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
@@ -930,7 +918,7 @@ export const dict = {
|
||||
"workspace.reset.success.description": "Przestrzeń robocza odpowiada teraz domyślnej gałęzi.",
|
||||
"workspace.error.stillPreparing": "Przestrzeń robocza jest wciąż przygotowywana",
|
||||
"workspace.status.checking": "Sprawdzanie niezscalonych zmian...",
|
||||
"workspace.status.error": "Nie można zweryfikować statusu Git.",
|
||||
"workspace.status.error": "Nie można zweryfikować statusu git.",
|
||||
"workspace.status.clean": "Nie wykryto niezscalonych zmian.",
|
||||
"workspace.status.dirty": "Wykryto niezscalone zmiany w tej przestrzeni roboczej.",
|
||||
"workspace.delete.title": "Usuń przestrzeń roboczą",
|
||||
@@ -956,7 +944,7 @@ export const dict = {
|
||||
"common.time.hoursAgo.short": "{{count}} godz. temu",
|
||||
"common.time.daysAgo.short": "{{count}} dni temu",
|
||||
"settings.providers.connected.environmentDescription": "Połączono ze zmiennymi środowiskowymi",
|
||||
"settings.providers.custom.description": "Dodaj dostawcę zgodnego z OpenAI za pomocą bazowego adresu URL.",
|
||||
"settings.providers.custom.description": "Dodaj dostawcę zgodnego z OpenAI poprzez podstawowy URL.",
|
||||
|
||||
"app.server.unreachable": "Nie można połączyć z {{server}}",
|
||||
"app.server.retrying": "Ponawianie automatycznie...",
|
||||
@@ -972,9 +960,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}} z {{total}} pytań",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Eksplorator plików",
|
||||
"session.header.reveal.finder": "Pokaż w Finderze",
|
||||
"session.header.reveal.fileExplorer": "Pokaż w Eksploratorze plików",
|
||||
"session.header.reveal.containingFolder": "Otwórz folder zawierający",
|
||||
"session.header.open.fileManager": "Menedżer plików",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -989,17 +974,17 @@ export const dict = {
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"debugBar.ariaLabel": "Diagnostyka wydajności w środowisku deweloperskim",
|
||||
"debugBar.ariaLabel": "Diagnostyka wydajności deweloperskiej",
|
||||
"debugBar.na": "n.d.",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Ostatnie zakończone przejście między trasami obejmujące stronę sesji, mierzone od uruchomienia routera do pierwszego odrysowania po ustabilizowaniu widoku.",
|
||||
"Ostatnie zakończone przejście trasy dotykające strony sesji, mierzone od startu routera do pierwszego odrysowania po ustaleniu.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Średnia liczba klatek na sekundę w ciągu ostatnich 5 sekund.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Najgorszy czas klatki w ciągu ostatnich 5 sekund.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Klatki powyżej 32 ms w ciągu ostatnich 5 sekund.",
|
||||
"debugBar.jank.tip": "Klatki powyżej 32ms w ciągu ostatnich 5 sekund.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip":
|
||||
"Zablokowany czas i liczba długich zadań w ciągu ostatnich 5 sekund. Maksymalne zadanie: {{max}}.",
|
||||
@@ -1009,10 +994,10 @@ export const dict = {
|
||||
"debugBar.inp.tip":
|
||||
"Przybliżony czas trwania interakcji w ciągu ostatnich 5 sekund. Jest to podobne do INP, a nie oficjalne Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Skumulowane przesunięcie układu od bieżącego uruchomienia aplikacji.",
|
||||
"debugBar.cls.tip": "Skumulowane przesunięcie układu dla bieżącego czasu życia aplikacji.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Wykorzystana pamięć sterty JS względem jej limitu. Tylko Chromium.",
|
||||
"debugBar.mem.tip": "Wykorzystana pamięć sterty JS względem jej limitu: {{used}} z {{limit}}.",
|
||||
"debugBar.mem.tipUnavailable": "Użyta sterta JS vs limit sterty. Tylko Chromium.",
|
||||
"debugBar.mem.tip": "Użyta sterta JS vs limit sterty. {{used}} z {{limit}}.",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
|
||||
+81
-94
@@ -37,12 +37,12 @@ export const dict = {
|
||||
|
||||
"command.palette": "Палитра команд",
|
||||
|
||||
"command.theme.cycle": "Переключить тему",
|
||||
"command.theme.cycle": "Цикл тем",
|
||||
"command.theme.set": "Использовать тему: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Переключить цветовую схему",
|
||||
"command.theme.scheme.cycle": "Цикл цветовой схемы",
|
||||
"command.theme.scheme.set": "Использовать цветовую схему: {{scheme}}",
|
||||
|
||||
"command.language.cycle": "Переключить язык",
|
||||
"command.language.cycle": "Цикл языков",
|
||||
"command.language.set": "Использовать язык: {{language}}",
|
||||
|
||||
"command.session.new": "Новая сессия",
|
||||
@@ -51,7 +51,7 @@ export const dict = {
|
||||
"command.tab.reopenClosed": "Повторно открыть закрытую вкладку",
|
||||
"command.context.addSelection": "Добавить выделение в контекст",
|
||||
"command.context.addSelection.description": "Добавить выбранные строки из текущего файла",
|
||||
"command.input.focus": "Перейти к полю ввода",
|
||||
"command.input.focus": "Фокус на поле ввода",
|
||||
"command.terminal.toggle": "Переключить терминал",
|
||||
"command.fileTree.toggle": "Переключить дерево файлов",
|
||||
"command.review.toggle": "Переключить обзор",
|
||||
@@ -67,11 +67,11 @@ export const dict = {
|
||||
"command.model.choose.description": "Выбрать другую модель",
|
||||
"command.mcp.toggle": "Переключить MCP",
|
||||
"command.mcp.toggle.description": "Переключить MCP",
|
||||
"command.agent.cycle": "Следующий агент",
|
||||
"command.agent.cycle": "Цикл агентов",
|
||||
"command.agent.cycle.description": "Переключиться к следующему агенту",
|
||||
"command.agent.cycle.reverse": "Предыдущий агент",
|
||||
"command.agent.cycle.reverse": "Цикл агентов назад",
|
||||
"command.agent.cycle.reverse.description": "Переключиться к предыдущему агенту",
|
||||
"command.model.variant.cycle": "Переключить уровень усилий",
|
||||
"command.model.variant.cycle": "Цикл режимов мышления",
|
||||
"command.model.variant.cycle.description": "Переключиться к следующему уровню усилий",
|
||||
"command.prompt.mode.shell": "Оболочка",
|
||||
"command.prompt.mode.normal": "Промпт",
|
||||
@@ -102,10 +102,9 @@ export const dict = {
|
||||
"dialog.provider.empty": "Провайдеры не найдены",
|
||||
"dialog.provider.group.popular": "Популярные",
|
||||
"dialog.provider.group.other": "Другие",
|
||||
"dialog.provider.custom.label": "Пользовательский провайдер, совместимый с OpenAI",
|
||||
"dialog.provider.tag.recommended": "Рекомендуемые",
|
||||
"dialog.provider.opencode.note": "Отобранные модели, включая Claude, GPT, Gemini и другие",
|
||||
"dialog.provider.opencode.tagline": "Надёжные оптимизированные модели",
|
||||
"dialog.provider.opencode.tagline": "Надежные оптимизированные модели",
|
||||
"dialog.provider.opencodeGo.tagline": "Доступная подписка для всех",
|
||||
"dialog.provider.anthropic.note": "Прямой доступ к моделям Claude, включая Pro и Max",
|
||||
"dialog.provider.copilot.note": "ИИ-модели для помощи в кодировании через GitHub Copilot",
|
||||
@@ -118,34 +117,33 @@ export const dict = {
|
||||
"dialog.model.search.placeholder": "Поиск моделей",
|
||||
"dialog.model.empty": "Модели не найдены",
|
||||
"dialog.model.manage": "Управление моделями",
|
||||
"dialog.model.manage.description": "Настройте, какие модели отображаются при выборе модели",
|
||||
"dialog.model.manage.description": "Настройте какие модели появляются в выборе модели",
|
||||
"dialog.model.manage.provider.toggle": "Переключить все модели {{provider}}",
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Бесплатные модели от OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Добавьте больше моделей от популярных провайдеров",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Посмотреть ещё более 70 провайдеров",
|
||||
|
||||
"dialog.provider.viewAll": "Показать больше провайдеров",
|
||||
|
||||
"provider.connect.title": "Подключить {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Войти с помощью Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Выберите способ входа для {{provider}}.",
|
||||
"provider.connect.method.apiKey": "Ключ API",
|
||||
"provider.connect.method.apiKey": "API ключ",
|
||||
"provider.connect.status.inProgress": "Авторизация...",
|
||||
"provider.connect.status.waiting": "Ожидание авторизации...",
|
||||
"provider.connect.status.failed": "Ошибка авторизации: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Введите ключ API {{provider}}, чтобы подключить аккаунт и использовать модели {{provider}} в OpenCode.",
|
||||
"provider.connect.apiKey.label": "Ключ API {{provider}}",
|
||||
"provider.connect.apiKey.placeholder": "Ключ API",
|
||||
"provider.connect.apiKey.required": "Требуется ключ API",
|
||||
"Введите ваш API ключ {{provider}} для подключения аккаунта и использования моделей {{provider}} в OpenCode.",
|
||||
"provider.connect.apiKey.label": "{{provider}} API ключ",
|
||||
"provider.connect.apiKey.placeholder": "API ключ",
|
||||
"provider.connect.apiKey.required": "API ключ обязателен",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen даёт вам доступ к отобранным надёжным оптимизированным моделям для агентов программирования.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"С одним ключом API вы получите доступ к таким моделям, как Claude, GPT, Gemini, GLM и другие.",
|
||||
"С одним API ключом вы получите доступ к таким моделям как Claude, GPT, Gemini, GLM и другим.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Посетите ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": ", чтобы получить ключ API.",
|
||||
"provider.connect.opencodeZen.visit.suffix": " чтобы получить ваш API ключ.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Посетите ",
|
||||
"provider.connect.oauth.code.visit.link": "эту ссылку",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
@@ -163,18 +161,18 @@ export const dict = {
|
||||
"provider.connect.toast.connected.description": "Модели {{provider}} теперь доступны.",
|
||||
|
||||
"provider.custom.title": "Пользовательский провайдер",
|
||||
"provider.custom.description.prefix": "Настройте провайдера, совместимого с OpenAI. См. ",
|
||||
"provider.custom.description.prefix": "Настройте OpenAI-совместимого провайдера. См. ",
|
||||
"provider.custom.description.link": "документацию по настройке провайдера",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "ID провайдера",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Строчные буквы, цифры, дефисы или подчёркивания",
|
||||
"provider.custom.field.name.label": "Отображаемое имя",
|
||||
"provider.custom.field.name.placeholder": "Мой ИИ-провайдер",
|
||||
"provider.custom.field.name.placeholder": "Мой AI провайдер",
|
||||
"provider.custom.field.baseURL.label": "Базовый URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Ключ API",
|
||||
"provider.custom.field.apiKey.placeholder": "Ключ API",
|
||||
"provider.custom.field.apiKey.label": "API ключ",
|
||||
"provider.custom.field.apiKey.placeholder": "API ключ",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"Необязательно. Оставьте пустым, если управляете авторизацией через заголовки.",
|
||||
"provider.custom.models.label": "Модели",
|
||||
@@ -213,15 +211,15 @@ export const dict = {
|
||||
"model.input.image": "изображение",
|
||||
"model.input.audio": "аудио",
|
||||
"model.input.video": "видео",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.tooltip.allows": "Поддерживает: {{inputs}}",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Разрешено: {{inputs}}",
|
||||
"model.tooltip.context.label": "Контекст",
|
||||
"model.tooltip.inputs": "Входные данные",
|
||||
"model.tooltip.model": "Модель",
|
||||
"model.tooltip.provider": "Провайдер",
|
||||
"model.tooltip.reasoning": "Рассуждение",
|
||||
"model.tooltip.reasoning.allowed": "Поддерживает рассуждения",
|
||||
"model.tooltip.reasoning.none": "Без рассуждений",
|
||||
"model.tooltip.reasoning.allowed": "Разрешает рассуждение",
|
||||
"model.tooltip.reasoning.none": "Без рассуждения",
|
||||
"model.tooltip.context": "Лимит контекста {{limit}}",
|
||||
|
||||
"common.search.placeholder": "Поиск",
|
||||
@@ -233,7 +231,7 @@ export const dict = {
|
||||
"common.clear": "Очистить",
|
||||
"common.connect": "Подключить",
|
||||
"common.disconnect": "Отключить",
|
||||
"common.continue": "Продолжить",
|
||||
"common.continue": "Отправить",
|
||||
"common.submit": "Отправить",
|
||||
"common.save": "Сохранить",
|
||||
"common.saving": "Сохранение...",
|
||||
@@ -243,8 +241,8 @@ export const dict = {
|
||||
"prompt.placeholder.shell": "Введите команду оболочки... {{example}}",
|
||||
"prompt.placeholder.normal": 'Спросите что угодно... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Спросите что угодно...",
|
||||
"prompt.placeholder.summarizeComments": "Обобщить комментарии…",
|
||||
"prompt.placeholder.summarizeComment": "Обобщить комментарий…",
|
||||
"prompt.placeholder.summarizeComments": "Суммировать комментарии…",
|
||||
"prompt.placeholder.summarizeComment": "Суммировать комментарий…",
|
||||
"prompt.mode.shell": "Оболочка",
|
||||
"prompt.mode.normal": "Промпт",
|
||||
"prompt.mode.shell.exit": "esc для выхода",
|
||||
@@ -254,33 +252,33 @@ export const dict = {
|
||||
"prompt.example.1": "Исправить TODO в коде",
|
||||
"prompt.example.2": "Какой технологический стек этого проекта?",
|
||||
"prompt.example.3": "Исправить сломанные тесты",
|
||||
"prompt.example.4": "Объясни, как работает аутентификация",
|
||||
"prompt.example.4": "Объясни как работает аутентификация",
|
||||
"prompt.example.5": "Найти и исправить уязвимости безопасности",
|
||||
"prompt.example.6": "Добавить модульные тесты для службы пользователей",
|
||||
"prompt.example.6": "Добавить юнит-тесты для сервиса пользователя",
|
||||
"prompt.example.7": "Рефакторить эту функцию для лучшей читаемости",
|
||||
"prompt.example.8": "Что означает эта ошибка?",
|
||||
"prompt.example.9": "Помоги мне отладить эту проблему",
|
||||
"prompt.example.10": "Сгенерировать документацию API",
|
||||
"prompt.example.11": "Оптимизировать запросы к базе данных",
|
||||
"prompt.example.12": "Добавить проверку входных данных",
|
||||
"prompt.example.12": "Добавить валидацию ввода",
|
||||
"prompt.example.13": "Создать новый компонент для...",
|
||||
"prompt.example.14": "Как развернуть этот проект?",
|
||||
"prompt.example.15": "Проверь, соответствует ли мой код рекомендациям",
|
||||
"prompt.example.15": "Проверь мой код на лучшие практики",
|
||||
"prompt.example.16": "Добавить обработку ошибок в эту функцию",
|
||||
"prompt.example.17": "Объясни это регулярное выражение",
|
||||
"prompt.example.18": "Преобразовать это в TypeScript",
|
||||
"prompt.example.17": "Объясни этот паттерн regex",
|
||||
"prompt.example.18": "Конвертировать это в TypeScript",
|
||||
"prompt.example.19": "Добавить логирование по всему проекту",
|
||||
"prompt.example.20": "Какие зависимости устарели?",
|
||||
"prompt.example.21": "Помоги написать скрипт миграции",
|
||||
"prompt.example.22": "Реализовать кеширование для этой конечной точки",
|
||||
"prompt.example.22": "Реализовать кэширование для этой конечной точки",
|
||||
"prompt.example.23": "Добавить пагинацию в этот список",
|
||||
"prompt.example.24": "Создать CLI-команду для...",
|
||||
"prompt.example.25": "Как здесь работают переменные окружения?",
|
||||
"prompt.example.24": "Создать CLI команду для...",
|
||||
"prompt.example.25": "Как работают переменные окружения здесь?",
|
||||
|
||||
"prompt.popover.emptyResults": "Нет совпадений",
|
||||
"prompt.popover.emptyCommands": "Нет совпадающих команд",
|
||||
"prompt.dropzone.label": "Перетащите сюда изображения, PDF или текстовые файлы",
|
||||
"prompt.dropzone.file.label": "Отпустите, чтобы упомянуть файл через @",
|
||||
"prompt.dropzone.file.label": "Отпустите для @упоминания файла",
|
||||
"prompt.slash.badge.custom": "своё",
|
||||
"prompt.slash.badge.skill": "навык",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
@@ -299,7 +297,6 @@ export const dict = {
|
||||
"prompt.action.stop": "Остановить",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Неподдерживаемое вложение",
|
||||
"prompt.toast.attachmentDuplicate.title": "Этот файл уже загружен",
|
||||
"prompt.toast.pasteUnsupported.description": "Здесь можно прикрепить только изображения, PDF или текстовые файлы.",
|
||||
"prompt.toast.modelAgentRequired.title": "Выберите агента и модель",
|
||||
"prompt.toast.modelAgentRequired.description": "Выберите агента и модель перед отправкой запроса.",
|
||||
@@ -334,7 +331,7 @@ export const dict = {
|
||||
"dialog.directory.readError": "Не удалось прочитать эту папку",
|
||||
|
||||
"dialog.server.title": "Серверы",
|
||||
"dialog.server.description": "Выберите сервер OpenCode, к которому подключается приложение.",
|
||||
"dialog.server.description": "Переключите сервер OpenCode к которому подключается приложение.",
|
||||
"dialog.server.search.placeholder": "Поиск серверов",
|
||||
"dialog.server.empty": "Серверов пока нет",
|
||||
"dialog.server.add.title": "Добавить сервер",
|
||||
@@ -358,7 +355,7 @@ export const dict = {
|
||||
|
||||
"dialog.server.menu.edit": "Редактировать",
|
||||
"dialog.server.menu.default": "Сделать по умолчанию",
|
||||
"dialog.server.menu.defaultRemove": "Отменить выбор по умолчанию",
|
||||
"dialog.server.menu.defaultRemove": "Удалить по умолчанию",
|
||||
"dialog.server.menu.delete": "Удалить",
|
||||
"dialog.server.current": "Текущий сервер",
|
||||
"dialog.server.status.default": "По умолч.",
|
||||
@@ -407,7 +404,7 @@ export const dict = {
|
||||
"wsl.onboarding.needAnotherDistroHint": "Установите дистрибутив Linux из каталога WSL",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL не установлена",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"Для добавления сервера WSL в OpenCode требуется WSL (Подсистема Windows для Linux)",
|
||||
"Для добавления сервера WSL в OpenCode требуется WSL (Windows Subsystem for Linux)",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL недоступна",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode не смог проверить WSL на этом компьютере.",
|
||||
"wsl.onboarding.installWsl": "Установить WSL",
|
||||
@@ -434,10 +431,10 @@ export const dict = {
|
||||
|
||||
"dialog.project.edit.title": "Редактировать проект",
|
||||
"dialog.project.edit.name": "Название",
|
||||
"dialog.project.edit.icon": "Значок",
|
||||
"dialog.project.edit.icon.alt": "Значок проекта",
|
||||
"dialog.project.edit.icon": "Иконка",
|
||||
"dialog.project.edit.icon.alt": "Иконка проекта",
|
||||
"dialog.project.edit.icon.hint": "Нажмите или перетащите изображение",
|
||||
"dialog.project.edit.icon.recommended": "Рекомендуется: 128 x 128 пикселей",
|
||||
"dialog.project.edit.icon.recommended": "Рекомендуется: 128x128px",
|
||||
"dialog.project.edit.color": "Цвет",
|
||||
"dialog.project.edit.color.select": "Выбрать цвет {{color}}",
|
||||
|
||||
@@ -467,7 +464,7 @@ export const dict = {
|
||||
"context.stats.inputTokens": "Входные токены",
|
||||
"context.stats.outputTokens": "Выходные токены",
|
||||
"context.stats.reasoningTokens": "Токены рассуждения",
|
||||
"context.stats.cacheTokens": "Токены кеша (чтение/запись)",
|
||||
"context.stats.cacheTokens": "Токены кэша (чтение/запись)",
|
||||
"context.stats.userMessages": "Сообщения пользователя",
|
||||
"context.stats.assistantMessages": "Сообщения ассистента",
|
||||
"context.stats.totalCost": "Общая стоимость",
|
||||
@@ -566,27 +563,27 @@ export const dict = {
|
||||
"error.chain.causedBy": "Причина:",
|
||||
"error.chain.apiError": "Ошибка API",
|
||||
"error.chain.status": "Статус: {{status}}",
|
||||
"error.chain.retryable": "Можно повторить: {{retryable}}",
|
||||
"error.chain.retryable": "Повторная попытка: {{retryable}}",
|
||||
"error.chain.responseBody": "Тело ответа:\n{{body}}",
|
||||
"error.chain.didYouMean": "Возможно, вы имели в виду: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Модель не найдена: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Проверьте названия провайдера и модели в конфигурации (opencode.json)",
|
||||
"error.chain.checkConfig": "Проверьте названия провайдера/модели в конфиге (opencode.json)",
|
||||
"error.chain.mcpFailed":
|
||||
'MCP-сервер "{{name}}" завершился с ошибкой. Обратите внимание: OpenCode пока не поддерживает MCP-авторизацию.',
|
||||
'MCP сервер "{{name}}" завершился с ошибкой. Обратите внимание, что OpenCode пока не поддерживает MCP авторизацию.',
|
||||
"error.chain.providerAuthFailed": "Ошибка аутентификации провайдера ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Не удалось инициализировать провайдера "{{provider}}". Проверьте учётные данные и конфигурацию.',
|
||||
"error.chain.configJsonInvalid": "Конфигурационный файл по адресу {{path}} содержит некорректный JSON(C)",
|
||||
"error.chain.configJsonInvalid": "Конфигурационный файл по адресу {{path}} не является валидным JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage":
|
||||
"Конфигурационный файл по адресу {{path}} содержит некорректный JSON(C): {{message}}",
|
||||
"Конфигурационный файл по адресу {{path}} не является валидным JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'Папка "{{dir}}" в {{path}} недопустима. Переименуйте папку в "{{suggestion}}" или удалите её. Это распространённая опечатка.',
|
||||
'Папка "{{dir}}" в {{path}} невалидна. Переименуйте папку в "{{suggestion}}" или удалите её. Это распространённая опечатка.',
|
||||
"error.chain.configFrontmatterError": "Не удалось разобрать frontmatter в {{path}}:\n{{message}}",
|
||||
"error.chain.configInvalid": "Недопустимый конфигурационный файл по адресу {{path}}",
|
||||
"error.chain.configInvalidWithMessage": "Недопустимый конфигурационный файл по адресу {{path}}: {{message}}",
|
||||
"error.chain.configInvalid": "Конфигурационный файл по адресу {{path}} невалиден",
|
||||
"error.chain.configInvalidWithMessage": "Конфигурационный файл по адресу {{path}} невалиден: {{message}}",
|
||||
|
||||
"notification.permission.title": "Требуется разрешение",
|
||||
"notification.permission.description": "Для {{sessionTitle}} в {{projectName}} требуется разрешение",
|
||||
"notification.permission.description": "{{sessionTitle}} в {{projectName}} требуется разрешение",
|
||||
"notification.question.title": "Вопрос",
|
||||
"notification.question.description": "У {{sessionTitle}} в {{projectName}} есть вопрос",
|
||||
"notification.action.goToSession": "Перейти к сессии",
|
||||
@@ -625,7 +622,7 @@ export const dict = {
|
||||
"session.error.notFound.description": "Эта вкладка указывает на сессию, которой больше нет на этом сервере.",
|
||||
"session.error.notFound.closeTab": "Закрыть вкладку",
|
||||
"session.error.serverConnection": "Не удаётся подключиться к этому серверу",
|
||||
"session.review.filesChanged": "Изменено файлов: {{count}}",
|
||||
"session.review.filesChanged": "{{count}} файлов изменено",
|
||||
"session.review.change.one": "Изменение",
|
||||
"session.review.change.other": "Изменения",
|
||||
"session.review.loadingChanges": "Загрузка изменений...",
|
||||
@@ -652,21 +649,15 @@ export const dict = {
|
||||
"session.question.minimize": "Свернуть вопрос",
|
||||
"session.question.restore": "Восстановить вопрос",
|
||||
"session.question.pending.one": "{{count}} вопрос без ответа",
|
||||
"session.question.pending.few": "{{count}} вопроса без ответа",
|
||||
"session.question.pending.many": "{{count}} вопросов без ответа",
|
||||
"session.question.pending.other": "Вопросы без ответа: {{count}}",
|
||||
"session.followupDock.summary.one": "{{count}} сообщение в очереди",
|
||||
"session.followupDock.summary.few": "{{count}} сообщения в очереди",
|
||||
"session.followupDock.summary.many": "{{count}} сообщений в очереди",
|
||||
"session.followupDock.summary.other": "Сообщений в очереди: {{count}}",
|
||||
"session.followupDock.summary.other": "{{count}} сообщений в очереди",
|
||||
"session.followupDock.sendNow": "Отправить сейчас",
|
||||
"session.followupDock.edit": "Редактировать",
|
||||
"session.followupDock.collapse": "Свернуть сообщения в очереди",
|
||||
"session.followupDock.expand": "Развернуть сообщения в очереди",
|
||||
"session.revertDock.summary.one": "{{count}} сообщение возвращено",
|
||||
"session.revertDock.summary.few": "{{count}} сообщения возвращены",
|
||||
"session.revertDock.summary.many": "{{count}} сообщений возвращено",
|
||||
"session.revertDock.summary.other": "Возвращено сообщений: {{count}}",
|
||||
"session.revertDock.summary.other": "{{count}} сообщений возвращено",
|
||||
"session.revertDock.collapse": "Свернуть возвращённые сообщения",
|
||||
"session.revertDock.expand": "Развернуть возвращённые сообщения",
|
||||
"session.revertDock.restore": "Восстановить сообщение",
|
||||
@@ -715,7 +706,7 @@ export const dict = {
|
||||
"session.share.copy.copied": "Скопировано",
|
||||
"session.share.copy.copyLink": "Копировать ссылку",
|
||||
|
||||
"lsp.tooltip.none": "Нет LSP-серверов",
|
||||
"lsp.tooltip.none": "Нет LSP серверов",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
|
||||
"prompt.loading": "Загрузка запроса...",
|
||||
@@ -772,7 +763,7 @@ export const dict = {
|
||||
"settings.general.section.updates": "Обновления",
|
||||
"settings.general.section.sounds": "Звуковые эффекты",
|
||||
"settings.general.section.feed": "Лента",
|
||||
"settings.general.section.display": "Экран",
|
||||
"settings.general.section.display": "Дисплей",
|
||||
|
||||
"settings.general.row.language.title": "Язык",
|
||||
"settings.general.row.language.description": "Изменить язык отображения OpenCode",
|
||||
@@ -782,7 +773,7 @@ export const dict = {
|
||||
"settings.general.row.shell.autoDefault": "Авто (по умолчанию)",
|
||||
"settings.general.row.shell.terminalOnly": "только терминал",
|
||||
"settings.general.row.appearance.title": "Внешний вид",
|
||||
"settings.general.row.appearance.description": "Настройте внешний вид OpenCode на вашем устройстве",
|
||||
"settings.general.row.appearance.description": "Настройте как OpenCode выглядит на вашем устройстве",
|
||||
"settings.general.row.colorScheme.title": "Цветовая схема",
|
||||
"settings.general.row.colorScheme.description": "Выберите, следует ли OpenCode системной, светлой или тёмной теме",
|
||||
"settings.general.row.theme.title": "Тема",
|
||||
@@ -792,7 +783,7 @@ export const dict = {
|
||||
"settings.general.row.terminalFont.title": "Шрифт терминала",
|
||||
"settings.general.row.terminalFont.description": "Настройте шрифт, используемый в терминале",
|
||||
"settings.general.row.uiFont.title": "Шрифт интерфейса",
|
||||
"settings.general.row.uiFont.description": "Настройте шрифт, используемый во всём интерфейсе",
|
||||
"settings.general.row.uiFont.description": "Настройте шрифт, используемый во всем интерфейсе",
|
||||
"settings.general.row.followup.title": "Поведение уточняющих вопросов",
|
||||
"settings.general.row.followup.description":
|
||||
"Выберите, отправлять ли уточняющие вопросы сразу или помещать их в очередь",
|
||||
@@ -812,9 +803,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Нижняя навигация",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"На мобильных устройствах размещать строку заголовка и вкладки сессии внизу экрана",
|
||||
"settings.general.row.showCustomAgents.title": "Выбор агента",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Показывать переключатель агентов в редакторе запросов. Если он скрыт, по умолчанию используется агент Build.",
|
||||
"settings.general.row.showCustomAgents.title": "Пользовательские агенты",
|
||||
"settings.general.row.showCustomAgents.description": "Показывать выбор агента в редакторе запросов",
|
||||
"settings.general.row.reasoningSummaries.title": "Показывать сводки рассуждений",
|
||||
"settings.general.row.reasoningSummaries.description": "Отображать сводки рассуждений модели в ленте",
|
||||
|
||||
@@ -831,11 +821,11 @@ export const dict = {
|
||||
"settings.general.row.newInterfaceNotice.title": "Теперь вы используете новую компоновку",
|
||||
"settings.general.row.newInterfaceNotice.description": "Прежняя компоновка больше недоступна",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Закрыть",
|
||||
"settings.general.row.pinchZoom.title": "Масштабирование сведением пальцев",
|
||||
"settings.general.row.pinchZoom.title": "Масштабирование щипком",
|
||||
"settings.general.row.pinchZoom.description":
|
||||
"Разрешить масштабирование сведением пальцев на трекпаде и прокруткой с нажатой клавишей Ctrl",
|
||||
"Разрешить масштабирование жестом щипка на трекпаде и прокруткой с Ctrl",
|
||||
"settings.general.row.wayland.title": "Использовать нативный Wayland",
|
||||
"settings.general.row.wayland.description": "Отключить резервный режим X11 в Wayland. Требуется перезапуск.",
|
||||
"settings.general.row.wayland.description": "Отключить X11 fallback на Wayland. Требуется перезапуск.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"На Linux с мониторами разной частоты обновления нативный Wayland может быть стабильнее.",
|
||||
|
||||
@@ -901,22 +891,22 @@ export const dict = {
|
||||
|
||||
"settings.general.notifications.agent.title": "Агент",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Показывать системное уведомление, когда агент завершил работу или требует внимания",
|
||||
"Показывать системное уведомление когда агент завершён или требует внимания",
|
||||
"settings.general.notifications.permissions.title": "Разрешения",
|
||||
"settings.general.notifications.permissions.description":
|
||||
"Показывать системное уведомление, когда требуется разрешение",
|
||||
"Показывать системное уведомление когда требуется разрешение",
|
||||
"settings.general.notifications.errors.title": "Ошибки",
|
||||
"settings.general.notifications.errors.description": "Показывать системное уведомление, когда происходит ошибка",
|
||||
"settings.general.notifications.errors.description": "Показывать системное уведомление когда происходит ошибка",
|
||||
|
||||
"settings.general.sounds.agent.title": "Агент",
|
||||
"settings.general.sounds.agent.description": "Воспроизводить звук, когда агент завершил работу или требует внимания",
|
||||
"settings.general.sounds.agent.description": "Воспроизводить звук когда агент завершён или требует внимания",
|
||||
"settings.general.sounds.permissions.title": "Разрешения",
|
||||
"settings.general.sounds.permissions.description": "Воспроизводить звук, когда требуется разрешение",
|
||||
"settings.general.sounds.permissions.description": "Воспроизводить звук когда требуется разрешение",
|
||||
"settings.general.sounds.errors.title": "Ошибки",
|
||||
"settings.general.sounds.errors.description": "Воспроизводить звук, когда происходит ошибка",
|
||||
"settings.general.sounds.errors.description": "Воспроизводить звук когда происходит ошибка",
|
||||
|
||||
"settings.shortcuts.title": "Горячие клавиши",
|
||||
"settings.shortcuts.reset.button": "Восстановить настройки по умолчанию",
|
||||
"settings.shortcuts.reset.button": "Сбросить к умолчаниям",
|
||||
"settings.shortcuts.reset.toast.title": "Горячие клавиши сброшены",
|
||||
"settings.shortcuts.reset.toast.description": "Горячие клавиши были сброшены к значениям по умолчанию.",
|
||||
"settings.shortcuts.conflict.title": "Сочетание уже используется",
|
||||
@@ -952,7 +942,7 @@ export const dict = {
|
||||
"settings.mcp.description": "Настройки MCP будут доступны здесь.",
|
||||
|
||||
"settings.permissions.title": "Разрешения",
|
||||
"settings.permissions.description": "Укажите, какие инструменты сервер может использовать по умолчанию.",
|
||||
"settings.permissions.description": "Контролируйте какие инструменты сервер может использовать по умолчанию.",
|
||||
"settings.permissions.section.tools": "Инструменты",
|
||||
"settings.permissions.toast.updateFailed.title": "Не удалось обновить разрешения",
|
||||
|
||||
@@ -964,7 +954,7 @@ export const dict = {
|
||||
"settings.permissions.tool.read.description": "Чтение файла (по совпадению пути)",
|
||||
"settings.permissions.tool.edit.title": "Редактирование",
|
||||
"settings.permissions.tool.edit.description":
|
||||
"Изменение файлов, включая редактирование, запись, патчи и множественное редактирование",
|
||||
"Изменение файлов, включая редактирование, запись, патчи и мульти-редактирование",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Сопоставление файлов по паттернам glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
@@ -974,7 +964,7 @@ export const dict = {
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Запуск команд оболочки",
|
||||
"settings.permissions.tool.task.title": "Task",
|
||||
"settings.permissions.tool.task.description": "Запуск субагентов",
|
||||
"settings.permissions.tool.task.description": "Запуск подагентов",
|
||||
"settings.permissions.tool.skill.title": "Skill",
|
||||
"settings.permissions.tool.skill.description": "Загрузка навыка по имени",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
@@ -1008,7 +998,7 @@ export const dict = {
|
||||
"workspace.reset.success.description": "Рабочее пространство теперь соответствует ветке по умолчанию.",
|
||||
"workspace.error.stillPreparing": "Рабочее пространство всё ещё подготавливается",
|
||||
"workspace.status.checking": "Проверка незафиксированных изменений...",
|
||||
"workspace.status.error": "Не удалось проверить состояние Git.",
|
||||
"workspace.status.error": "Не удалось проверить статус git.",
|
||||
"workspace.status.clean": "Незафиксированных изменений не обнаружено.",
|
||||
"workspace.status.dirty": "В этом рабочем пространстве обнаружены незафиксированные изменения.",
|
||||
"workspace.delete.title": "Удалить рабочее пространство",
|
||||
@@ -1019,13 +1009,13 @@ export const dict = {
|
||||
"workspace.reset.button": "Сбросить рабочее пространство",
|
||||
"workspace.reset.archived.none": "Активные сессии не будут архивированы.",
|
||||
"workspace.reset.archived.one": "1 сессия будет архивирована.",
|
||||
"workspace.reset.archived.many": "Будут архивированы сессии: {{count}}.",
|
||||
"workspace.reset.archived.many": "{{count}} сессий будет архивировано.",
|
||||
"workspace.reset.note": "Это сбросит рабочее пространство до соответствия ветке по умолчанию.",
|
||||
"common.open": "Открыть",
|
||||
"dialog.releaseNotes.action.getStarted": "Начать",
|
||||
"dialog.releaseNotes.action.next": "Далее",
|
||||
"dialog.releaseNotes.action.hideFuture": "Больше не показывать",
|
||||
"dialog.releaseNotes.media.alt": "Предварительный просмотр выпуска",
|
||||
"dialog.releaseNotes.media.alt": "Превью релиза",
|
||||
"toast.project.reloadFailed.title": "Не удалось перезагрузить {{project}}",
|
||||
"error.server.invalidConfiguration": "Недопустимая конфигурация",
|
||||
"common.moreCountSuffix": " (ещё {{count}})",
|
||||
@@ -1050,9 +1040,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}} из {{total}} вопросов",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Проводник",
|
||||
"session.header.reveal.finder": "Показать в Finder",
|
||||
"session.header.reveal.fileExplorer": "Показать в Проводнике",
|
||||
"session.header.reveal.containingFolder": "Открыть папку расположения",
|
||||
"session.header.open.fileManager": "Файловый менеджер",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -1071,7 +1058,7 @@ export const dict = {
|
||||
"debugBar.na": "н/д",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Последний завершённый переход по маршруту, затрагивающий страницу сессии: от запуска маршрутизатора до первой отрисовки после стабилизации.",
|
||||
"Последний завершенный переход маршрута, затрагивающий страницу сеанса, измеренный от запуска маршрутизатора до первой отрисовки после стабилизации.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Скользящая частота кадров в секунду за последние 5 секунд.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
@@ -1086,7 +1073,7 @@ export const dict = {
|
||||
"debugBar.inp.tip":
|
||||
"Приблизительная продолжительность взаимодействия за последние 5 секунд. Это похоже на INP, а не официальный Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Совокупное смещение макета за время работы приложения.",
|
||||
"debugBar.cls.tip": "Кумулятивный сдвиг макета за текущее время жизни приложения.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Используемая куча JS по сравнению с лимитом кучи. Только Chromium.",
|
||||
"debugBar.mem.tip": "Используемая куча JS по сравнению с лимитом кучи. {{used}} из {{limit}}.",
|
||||
@@ -1108,7 +1095,7 @@ export const dict = {
|
||||
"error.page.circular": "[Циклично]",
|
||||
"error.serverSDK.noServerAvailable": "Нет доступного сервера",
|
||||
"error.serverSDK.serverNotAvailable": "Сервер недоступен",
|
||||
"error.childStore.persistedCacheCreateFailed": "Не удалось создать постоянный кеш",
|
||||
"error.childStore.persistedCacheCreateFailed": "Не удалось создать постоянный кэш",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Не удалось создать постоянные метаданные проекта",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Не удалось создать постоянный значок проекта",
|
||||
"error.childStore.storeCreateFailed": "Не удалось создать хранилище",
|
||||
|
||||
@@ -1,1022 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Föreslagna",
|
||||
"command.category.view": "Visa",
|
||||
"command.category.project": "Projekt",
|
||||
"command.category.provider": "Leverantör",
|
||||
"command.category.server": "Server",
|
||||
"command.category.session": "Session",
|
||||
"command.category.theme": "Tema",
|
||||
"command.category.language": "Språk",
|
||||
"command.category.file": "Fil",
|
||||
"command.category.context": "Kontext",
|
||||
"command.category.terminal": "Terminal",
|
||||
"command.category.model": "Modell",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Agent",
|
||||
"command.category.permissions": "Behörigheter",
|
||||
"command.category.workspace": "Arbetsyta",
|
||||
"command.category.settings": "Inställningar",
|
||||
"theme.scheme.system": "System",
|
||||
"theme.scheme.light": "Ljus",
|
||||
"theme.scheme.dark": "Mörk",
|
||||
"command.sidebar.toggle": "Växla sidofältet",
|
||||
"command.project.open": "Öppna projekt",
|
||||
"command.project.previous": "Föregående projekt",
|
||||
"command.project.next": "Nästa projekt",
|
||||
"command.project.index": "Byt till projekt {{index}}",
|
||||
"command.provider.connect": "Anslut leverantör",
|
||||
"command.server.switch": "Byt server",
|
||||
"command.settings.open": "Öppna inställningar",
|
||||
"command.session.previous": "Föregående session",
|
||||
"command.session.next": "Nästa session",
|
||||
"command.session.previous.unseen": "Föregående oläst session",
|
||||
"command.session.next.unseen": "Nästa olästa session",
|
||||
"command.session.archive": "Arkivera session",
|
||||
"command.palette": "Kommandopalett",
|
||||
"command.theme.cycle": "Växla tema",
|
||||
"command.theme.set": "Använd tema: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Växla färgschema",
|
||||
"command.theme.scheme.set": "Använd färgschema: {{scheme}}",
|
||||
"command.language.cycle": "Växla språk",
|
||||
"command.language.set": "Använd språk: {{language}}",
|
||||
"command.session.new": "Ny session",
|
||||
"command.file.open": "Öppna filen",
|
||||
"command.tab.close": "Stäng fliken",
|
||||
"command.tab.reopenClosed": "Öppna stängd flik igen",
|
||||
"command.context.addSelection": "Lägg till markering i kontexten",
|
||||
"command.context.addSelection.description": "Lägg till markerade rader från den aktuella filen",
|
||||
"command.input.focus": "Fokusera inmatningsfältet",
|
||||
"command.terminal.toggle": "Växla terminal",
|
||||
"command.fileTree.toggle": "Växla filträdet",
|
||||
"command.review.toggle": "Växla granskning",
|
||||
"command.terminal.new": "Ny terminal",
|
||||
"command.terminal.new.description": "Skapa en ny terminalflik",
|
||||
"command.steps.toggle": "Växla steg",
|
||||
"command.steps.toggle.description": "Visa eller dölj steg för det aktuella meddelandet",
|
||||
"command.message.previous": "Föregående meddelande",
|
||||
"command.message.previous.description": "Gå till föregående användarmeddelande",
|
||||
"command.message.next": "Nästa meddelande",
|
||||
"command.message.next.description": "Gå till nästa användarmeddelande",
|
||||
"command.model.choose": "Välj modell",
|
||||
"command.model.choose.description": "Välj en annan modell",
|
||||
"command.mcp.toggle": "Växla MCP:er",
|
||||
"command.mcp.toggle.description": "Växla MCP:er",
|
||||
"command.agent.cycle": "Växla agent",
|
||||
"command.agent.cycle.description": "Byt till nästa agent",
|
||||
"command.agent.cycle.reverse": "Växla agent bakåt",
|
||||
"command.agent.cycle.reverse.description": "Byt till föregående agent",
|
||||
"command.model.variant.cycle": "Växla resonemangsnivå",
|
||||
"command.model.variant.cycle.description": "Växla till nästa resonemangsnivå",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
"command.permissions.autoaccept.enable": "Autoacceptera behörigheter",
|
||||
"command.permissions.autoaccept.disable": "Sluta att automatiskt acceptera behörigheter",
|
||||
"command.workspace.toggle": "Växla arbetsytor",
|
||||
"command.workspace.toggle.description": "Aktivera eller inaktivera flera arbetsytor i sidofältet",
|
||||
"command.session.undo": "Ångra",
|
||||
"command.session.undo.description": "Ångra det senaste meddelandet",
|
||||
"command.session.redo": "Gör om",
|
||||
"command.session.redo.description": "Gör om det senaste ångrade meddelandet",
|
||||
"command.session.compact": "Komprimera session",
|
||||
"command.session.compact.description": "Sammanfatta sessionen för att minska kontextstorleken",
|
||||
"command.session.fork": "Förgrena från meddelande",
|
||||
"command.session.fork.description": "Skapa en ny session från ett tidigare meddelande",
|
||||
"command.session.share": "Dela session",
|
||||
"command.session.share.description": "Dela den här sessionen och kopiera URL:en till urklipp",
|
||||
"command.session.unshare": "Sluta dela session",
|
||||
"command.session.unshare.description": "Sluta dela den här sessionen",
|
||||
"palette.search.placeholder": "Sök efter filer, kommandon och sessioner",
|
||||
"palette.search.placeholder.home": "Sök bland kommandon och sessioner",
|
||||
"palette.empty": "Inga resultat hittades",
|
||||
"palette.group.commands": "Kommandon",
|
||||
"palette.group.files": "Filer",
|
||||
"dialog.provider.search.placeholder": "Sök leverantörer",
|
||||
"dialog.provider.empty": "Inga leverantörer hittades",
|
||||
"dialog.provider.group.popular": "Populära",
|
||||
"dialog.provider.group.other": "Andra",
|
||||
"dialog.provider.custom.label": "Anpassad OpenAI-kompatibel leverantör",
|
||||
"dialog.provider.tag.recommended": "Rekommenderad",
|
||||
"dialog.provider.opencode.note": "Kurerade modeller inklusive Claude, GPT, Gemini och mer",
|
||||
"dialog.provider.opencode.tagline": "Pålitliga optimerade modeller",
|
||||
"dialog.provider.opencodeGo.tagline": "Lågprisprenumeration för alla",
|
||||
"dialog.provider.anthropic.note": "Direkt tillgång till Claude-modeller, inklusive Pro och Max",
|
||||
"dialog.provider.copilot.note": "AI-modeller för kodningshjälp via GitHub Copilot",
|
||||
"dialog.provider.openai.note": "GPT-modeller för snabba, kapabla allmänna AI-uppgifter",
|
||||
"dialog.provider.google.note": "Gemini-modeller för snabba, strukturerade svar",
|
||||
"dialog.provider.openrouter.note": "Få tillgång till alla modeller som stöds från en leverantör",
|
||||
"dialog.provider.vercel.note": "Enhetlig tillgång till AI-modeller med smart routing",
|
||||
"dialog.model.select.title": "Välj modell",
|
||||
"dialog.model.search.placeholder": "Sök efter modeller",
|
||||
"dialog.model.empty": "Inga modellresultat",
|
||||
"dialog.model.manage": "Hantera modeller",
|
||||
"dialog.model.manage.description": "Anpassa vilka modeller som visas i modellväljaren.",
|
||||
"dialog.model.manage.provider.toggle": "Växla alla {{provider}}-modeller",
|
||||
"dialog.model.unpaid.freeModels.title": "Gratis modeller tillhandahålls av OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Lägg till fler modeller från populära leverantörer",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Se fler än 70 leverantörer",
|
||||
"dialog.provider.viewAll": "Visa fler leverantörer",
|
||||
"provider.connect.title": "Anslut {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Logga in med Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Välj inloggningsmetod för {{provider}}.",
|
||||
"provider.connect.method.apiKey": "API-nyckel",
|
||||
"provider.connect.status.inProgress": "Auktorisering pågår...",
|
||||
"provider.connect.status.waiting": "Väntar på auktorisering...",
|
||||
"provider.connect.status.failed": "Auktorisering misslyckades: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Ange din {{provider}}-API-nyckel för att ansluta ditt konto och använda {{provider}}-modeller i OpenCode.",
|
||||
"provider.connect.apiKey.label": "{{provider}}-API-nyckel",
|
||||
"provider.connect.apiKey.placeholder": "API-nyckel",
|
||||
"provider.connect.apiKey.required": "API-nyckel krävs",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen ger dig tillgång till en utvald uppsättning pålitliga optimerade modeller för kodningsagenter.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Med en enda API-nyckel får du tillgång till modeller som Claude, GPT, Gemini, GLM och mer.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Besök ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " för att hämta din API-nyckel.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Besök ",
|
||||
"provider.connect.oauth.code.visit.link": "denna länk",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" för att hämta auktoriseringskoden som ansluter ditt konto och låter dig använda {{provider}}-modeller i OpenCode.",
|
||||
"provider.connect.oauth.code.label": "Auktoriseringskod för {{method}}",
|
||||
"provider.connect.oauth.code.placeholder": "Auktoriseringskod",
|
||||
"provider.connect.oauth.code.required": "Auktoriseringskod krävs",
|
||||
"provider.connect.oauth.code.invalid": "Ogiltig auktoriseringskod",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Besök ",
|
||||
"provider.connect.oauth.auto.visit.link": "denna länk",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" och ange koden nedan för att ansluta ditt konto och använda {{provider}}-modeller i OpenCode.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Bekräftelsekod",
|
||||
"provider.connect.toast.connected.title": "{{provider}} ansluten",
|
||||
"provider.connect.toast.connected.description": "{{provider}}-modeller är nu tillgängliga.",
|
||||
"provider.custom.title": "Anpassad leverantör",
|
||||
"provider.custom.description.prefix": "Konfigurera en OpenAI-kompatibel leverantör. Se ",
|
||||
"provider.custom.description.link": "dokumentationen om leverantörskonfiguration",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "Leverantörs-ID",
|
||||
"provider.custom.field.providerID.placeholder": "minleverantor",
|
||||
"provider.custom.field.providerID.description": "Små bokstäver, siffror, bindestreck eller understreck",
|
||||
"provider.custom.field.name.label": "Visningsnamn",
|
||||
"provider.custom.field.name.placeholder": "Min AI-leverantör",
|
||||
"provider.custom.field.baseURL.label": "Bas-URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API-nyckel",
|
||||
"provider.custom.field.apiKey.placeholder": "API-nyckel",
|
||||
"provider.custom.field.apiKey.description": "Valfritt. Lämna tomt om du hanterar autentisering via HTTP-huvuden.",
|
||||
"provider.custom.models.label": "Modeller",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "modell-id",
|
||||
"provider.custom.models.name.label": "Namn",
|
||||
"provider.custom.models.name.placeholder": "Visningsnamn",
|
||||
"provider.custom.models.remove": "Ta bort modellen",
|
||||
"provider.custom.models.add": "Lägg till modell",
|
||||
"provider.custom.headers.label": "HTTP-huvuden (valfritt)",
|
||||
"provider.custom.headers.key.label": "HTTP-huvud",
|
||||
"provider.custom.headers.key.placeholder": "Namn på HTTP-huvud",
|
||||
"provider.custom.headers.value.label": "Värde",
|
||||
"provider.custom.headers.value.placeholder": "värde",
|
||||
"provider.custom.headers.remove": "Ta bort HTTP-huvud",
|
||||
"provider.custom.headers.add": "Lägg till HTTP-huvud",
|
||||
"provider.custom.error.providerID.required": "Leverantörs-ID krävs",
|
||||
"provider.custom.error.providerID.format": "Använd små bokstäver, siffror, bindestreck eller understreck",
|
||||
"provider.custom.error.providerID.exists": "Det leverantörs-ID:t finns redan",
|
||||
"provider.custom.error.name.required": "Visningsnamn krävs",
|
||||
"provider.custom.error.baseURL.required": "Bas-URL krävs",
|
||||
"provider.custom.error.baseURL.format": "Måste börja med http:// eller https://",
|
||||
"provider.custom.error.required": "Obligatoriskt",
|
||||
"provider.custom.error.duplicate": "Dubblett",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} frånkopplad",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}}-modeller är inte längre tillgängliga.",
|
||||
"model.tag.free": "Gratis",
|
||||
"model.tag.latest": "Senaste",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "text",
|
||||
"model.input.image": "bild",
|
||||
"model.input.audio": "ljud",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Tillåter: {{inputs}}",
|
||||
"model.tooltip.context.label": "Kontext",
|
||||
"model.tooltip.inputs": "Indata",
|
||||
"model.tooltip.model": "Modell",
|
||||
"model.tooltip.provider": "Leverantör",
|
||||
"model.tooltip.reasoning": "Resonemang",
|
||||
"model.tooltip.reasoning.allowed": "Tillåter resonemang",
|
||||
"model.tooltip.reasoning.none": "Inget resonemang",
|
||||
"model.tooltip.context": "Kontextgräns {{limit}}",
|
||||
"common.search.placeholder": "Sök",
|
||||
"common.goBack": "Navigera tillbaka",
|
||||
"common.goForward": "Navigera framåt",
|
||||
"common.loading": "Laddar",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Avbryt",
|
||||
"common.clear": "Rensa",
|
||||
"common.open": "Öppna",
|
||||
"common.connect": "Anslut",
|
||||
"common.disconnect": "Koppla från",
|
||||
"common.continue": "Fortsätt",
|
||||
"common.submit": "Skicka",
|
||||
"common.save": "Spara",
|
||||
"common.saving": "Sparar...",
|
||||
"common.default": "Standard",
|
||||
"common.attachment": "bilaga",
|
||||
"prompt.placeholder.shell": "Ange skalkommando... {{example}}",
|
||||
"prompt.placeholder.normal": 'Fråga vad som helst... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Fråga vad som helst...",
|
||||
"prompt.placeholder.summarizeComments": "Sammanfatta kommentarer...",
|
||||
"prompt.placeholder.summarizeComment": "Sammanfatta kommentar...",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "esc för att avsluta",
|
||||
"session.child.promptDisabled": "Det går inte att skicka promptar till underagentsessioner.",
|
||||
"session.child.backToParent": "Tillbaka till huvudsessionen.",
|
||||
"prompt.example.1": "Fixa en TODO i kodbasen",
|
||||
"prompt.example.2": "Vad är den tekniska stacken i det här projektet?",
|
||||
"prompt.example.3": "Åtgärda trasiga tester",
|
||||
"prompt.example.4": "Förklara hur autentisering fungerar",
|
||||
"prompt.example.5": "Hitta och åtgärda säkerhetsbrister",
|
||||
"prompt.example.6": "Lägg till enhetstester för användartjänsten",
|
||||
"prompt.example.7": "Refaktorera denna funktion för att bli mer läsbar",
|
||||
"prompt.example.8": "Vad betyder detta fel?",
|
||||
"prompt.example.9": "Hjälp mig att felsöka det här problemet",
|
||||
"prompt.example.10": "Skapa API-dokumentation",
|
||||
"prompt.example.11": "Optimera databasfrågor",
|
||||
"prompt.example.12": "Lägg till indatavalidering",
|
||||
"prompt.example.13": "Skapa en ny komponent för...",
|
||||
"prompt.example.14": "Hur distribuerar jag det här projektet?",
|
||||
"prompt.example.15": "Granska min kod för bästa praxis",
|
||||
"prompt.example.16": "Lägg till felhantering till denna funktion",
|
||||
"prompt.example.17": "Förklara detta regexmönster",
|
||||
"prompt.example.18": "Konvertera detta till TypeScript",
|
||||
"prompt.example.19": "Lägg till loggning i hela kodbasen",
|
||||
"prompt.example.20": "Vilka beroenden är föråldrade?",
|
||||
"prompt.example.21": "Hjälp mig att skriva ett migreringsskript",
|
||||
"prompt.example.22": "Implementera cachning för denna slutpunkt",
|
||||
"prompt.example.23": "Lägg till paginering till den här listan",
|
||||
"prompt.example.24": "Skapa ett CLI-kommando för...",
|
||||
"prompt.example.25": "Hur fungerar miljövariabler här?",
|
||||
"prompt.popover.emptyResults": "Inga matchande resultat",
|
||||
"prompt.popover.emptyCommands": "Inga matchande kommandon",
|
||||
"prompt.dropzone.label": "Släpp bilder, PDF-filer eller textfiler här",
|
||||
"prompt.dropzone.file.label": "Släpp för att @-omnämna filen",
|
||||
"prompt.slash.badge.custom": "anpassad",
|
||||
"prompt.slash.badge.skill": "färdighet",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "aktiv",
|
||||
"prompt.context.includeActiveFile": "Inkludera aktiv fil",
|
||||
"prompt.context.removeActiveFile": "Ta bort aktiv fil från kontexten",
|
||||
"prompt.context.removeFile": "Ta bort filen från kontexten",
|
||||
"prompt.action.attachFile": "Lägg till filer",
|
||||
"prompt.menu.addImagesAndFiles": "Lägg till filer och mer",
|
||||
"prompt.menu.imagesAndFiles": "Bilder och filer",
|
||||
"prompt.menu.commands": "Kommandon",
|
||||
"prompt.menu.context": "Kontext",
|
||||
"prompt.menu.shellCommand": "Skalkommando",
|
||||
"prompt.attachment.remove": "Ta bort bilagan",
|
||||
"prompt.action.send": "Skicka",
|
||||
"prompt.action.stop": "Stoppa",
|
||||
"prompt.toast.pasteUnsupported.title": "Bilaga som inte stöds",
|
||||
"prompt.toast.pasteUnsupported.description": "Endast bilder, PDF-filer eller textfiler kan bifogas här.",
|
||||
"prompt.toast.attachmentDuplicate.title": "Den här filen har redan laddats upp",
|
||||
"prompt.toast.modelAgentRequired.title": "Välj en agent och modell",
|
||||
"prompt.toast.modelAgentRequired.description": "Välj en agent och modell innan du skickar en prompt.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Det gick inte att skapa worktree",
|
||||
"prompt.toast.sessionCreateFailed.title": "Det gick inte att skapa session",
|
||||
"prompt.toast.shellSendFailed.title": "Det gick inte att skicka skalkommandot",
|
||||
"prompt.toast.commandSendFailed.title": "Det gick inte att skicka kommandot",
|
||||
"prompt.toast.promptSendFailed.title": "Det gick inte att skicka meddelandet",
|
||||
"prompt.toast.promptSendFailed.description": "Det gick inte att hämta sessionen",
|
||||
"dialog.mcp.title": "MCP:er",
|
||||
"dialog.mcp.description": "{{enabled}} av {{total}} aktiverade",
|
||||
"dialog.mcp.empty": "Inga MCP:er konfigurerade",
|
||||
"dialog.lsp.empty": "LSP:er detekteras automatiskt från filtyper",
|
||||
"dialog.plugins.empty": "Insticksprogram konfigurerade i opencode.json",
|
||||
"mcp.status.connected": "ansluten",
|
||||
"mcp.status.failed": "misslyckades",
|
||||
"mcp.status.needs_auth": "behöver autentisering",
|
||||
"mcp.status.disabled": "inaktiverad",
|
||||
"mcp.auth.clickToAuthenticate": "Klicka för att autentisera",
|
||||
"dialog.fork.empty": "Inga meddelanden att förgrena från",
|
||||
"dialog.directory.search.placeholder": "Sök i mappar",
|
||||
"dialog.directory.empty": "Inga mappar hittades",
|
||||
"dialog.directory.action.selectFile": "Välj fil",
|
||||
"dialog.directory.action.selectFolder": "Välj mapp",
|
||||
"dialog.directory.root": "Rotmapp",
|
||||
"dialog.directory.parent": "Överordnad mapp",
|
||||
"dialog.directory.readError": "Det går inte att läsa den här mappen",
|
||||
"app.server.unreachable": "Kunde inte nå {{server}}",
|
||||
"app.server.retrying": "Försöker igen automatiskt...",
|
||||
"app.server.otherServers": "Andra servrar",
|
||||
"dialog.server.title": "Servrar",
|
||||
"dialog.server.description": "Växla vilken OpenCode-server som denna app ansluter till.",
|
||||
"dialog.server.search.placeholder": "Sök servrar",
|
||||
"dialog.server.empty": "Inga servrar ännu",
|
||||
"dialog.server.add.title": "Lägg till server",
|
||||
"dialog.server.add.url": "Serveradress",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Kunde inte ansluta till servern",
|
||||
"dialog.server.add.checking": "Kontrollerar...",
|
||||
"dialog.server.add.button": "Lägg till server",
|
||||
"dialog.server.add.name": "Servernamn (valfritt)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "Användarnamn (valfritt)",
|
||||
"dialog.server.add.usernamePlaceholder": "användarnamn",
|
||||
"dialog.server.add.password": "Lösenord (valfritt)",
|
||||
"dialog.server.add.passwordPlaceholder": "lösenord",
|
||||
"dialog.server.edit.title": "Redigera server",
|
||||
"dialog.server.default.title": "Standardserver",
|
||||
"dialog.server.default.description":
|
||||
"Anslut till den här servern vid appstart istället för att starta en lokal server. Kräver omstart.",
|
||||
"dialog.server.default.none": "Ingen server vald",
|
||||
"dialog.server.default.set": "Ställ in aktuell server som standard",
|
||||
"dialog.server.default.clear": "Rensa",
|
||||
"dialog.server.action.remove": "Ta bort servern",
|
||||
"dialog.server.menu.edit": "Redigera",
|
||||
"dialog.server.menu.default": "Ställ in som standard",
|
||||
"dialog.server.menu.defaultRemove": "Ta bort standard",
|
||||
"dialog.server.menu.delete": "Radera",
|
||||
"dialog.server.current": "Aktuell server",
|
||||
"dialog.server.status.default": "Standard",
|
||||
"wsl.server.add": "Lägg till WSL-server",
|
||||
"wsl.server.addShort": "Lägg till WSL",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL-server",
|
||||
"wsl.server.retryStart": "Försök att starta igen",
|
||||
"wsl.server.updating": "Uppdaterar...",
|
||||
"wsl.onboarding.step.distro": "Välj distro",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "Kontrollerar WSL...",
|
||||
"wsl.onboarding.restartRequired": "Windows behöver en omstart för att slutföra installationen av WSL.",
|
||||
"wsl.onboarding.ready": "WSL är redo.",
|
||||
"wsl.onboarding.required": "WSL krävs för att fortsätta.",
|
||||
"wsl.onboarding.checkingDistros": "Kontrollerar distributioner...",
|
||||
"wsl.onboarding.installingDistro": "Installerar {{distro}}...",
|
||||
"wsl.onboarding.checkingDistro": "Kontrollerar {{distro}}...",
|
||||
"wsl.onboarding.listingDistros": "Listar distributioner...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} är klar.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} är inte installerad än.",
|
||||
"wsl.onboarding.openDistroOnce": "Öppna {{distro}} en gång för att avsluta installationen.",
|
||||
"wsl.onboarding.finishingDistro": "Slutför installationen för {{distro}}.",
|
||||
"wsl.onboarding.pickDistro": "Välj en distro eller installera en nedan.",
|
||||
"wsl.onboarding.checkingOpencode": "Kontrollerar OpenCode...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "Kontrollerar OpenCode i {{distro}}...",
|
||||
"wsl.onboarding.updatingOpencode": "Uppdaterar OpenCode...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "Uppdaterar OpenCode i {{distro}}...",
|
||||
"wsl.onboarding.updateOpencodeIn": "Uppdatera OpenCode i {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "Uppdatera OpenCode",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode är redo i {{distro}}.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode är redo.",
|
||||
"wsl.onboarding.installOpencodeIn": "Installera OpenCode i {{distro}}.",
|
||||
"wsl.onboarding.installOpencode": "Installera OpenCode",
|
||||
"wsl.onboarding.chooseDistroFirst": "Välj en distro först.",
|
||||
"wsl.onboarding.loadFailed": "Det gick inte att ladda WSL-tillståndet.",
|
||||
"wsl.onboarding.loading": "Laddar...",
|
||||
"wsl.onboarding.installedDistros": "Installerade distros",
|
||||
"wsl.onboarding.checkAgain": "Kontrollera igen",
|
||||
"wsl.onboarding.distroStatus.ready": "Redo",
|
||||
"wsl.onboarding.distroStatus.checking": "Kontrollerar...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode är inte installerat",
|
||||
"wsl.onboarding.distroStatus.missingTools": "Saknar bash, curl",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Stöds inte · Använd WSL 2",
|
||||
"wsl.onboarding.needAnotherDistro": "Behöver du en annan distro?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "Installera en Linux-distribution från WSL-katalogen",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL är inte installerat",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"WSL (Windows Subsystem for Linux) krävs innan OpenCode kan lägga till en WSL-server",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL är inte tillgängligt",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode kunde inte verifiera WSL på den här maskinen.",
|
||||
"wsl.onboarding.installWsl": "Installera WSL",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"Starta om Windows för att slutföra installationen av WSL och öppna sedan OpenCode igen.",
|
||||
"wsl.onboarding.next": "Nästa",
|
||||
"wsl.onboarding.refresh": "Uppdatera",
|
||||
"wsl.onboarding.allDistrosAdded": "Alla installerade distros har redan lagts till.",
|
||||
"wsl.onboarding.noDistros": "Inga distros har upptäckts ännu.",
|
||||
"wsl.onboarding.install": "Installera",
|
||||
"wsl.onboarding.installing": "Installerar...",
|
||||
"wsl.onboarding.installDistro": "Installera distro",
|
||||
"wsl.onboarding.searchDistros": "Sök efter distributioner",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 krävs.",
|
||||
"wsl.onboarding.toolsRequired": "Denna distro behöver bash och curl.",
|
||||
"wsl.onboarding.openTerminal": "Öppna terminalen",
|
||||
"wsl.onboarding.path": "Sökväg: {{path}}",
|
||||
"wsl.onboarding.notFound": "hittades inte",
|
||||
"wsl.onboarding.version": "Version: {{version}}",
|
||||
"wsl.onboarding.unknown": "okänd",
|
||||
"wsl.onboarding.desktopVersion": "desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "Den installerade versionen matchar inte versionen av skrivbordsappen.",
|
||||
"wsl.onboarding.adding": "Lägger till...",
|
||||
"server.row.noUsername": "inget användarnamn",
|
||||
"dialog.project.edit.title": "Redigera projekt",
|
||||
"dialog.project.edit.name": "Namn",
|
||||
"dialog.project.edit.icon": "Ikon",
|
||||
"dialog.project.edit.icon.alt": "Projektikonen",
|
||||
"dialog.project.edit.icon.hint": "Klicka eller dra en bild",
|
||||
"dialog.project.edit.icon.recommended": "Rekommenderat: 128x128px",
|
||||
"dialog.project.edit.color": "Färg",
|
||||
"dialog.project.edit.color.select": "Välj färgen {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Startskript för arbetsyta",
|
||||
"dialog.project.edit.worktree.startup.description": "Körs efter att en ny arbetsyta (worktree) har skapats.",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "t.ex. bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "Kom igång",
|
||||
"dialog.releaseNotes.action.next": "Nästa",
|
||||
"dialog.releaseNotes.action.hideFuture": "Visa inte dessa i framtiden",
|
||||
"dialog.releaseNotes.media.alt": "Förhandsvisning av version",
|
||||
"context.breakdown.title": "Kontextfördelning",
|
||||
"context.breakdown.note":
|
||||
'Ungefärlig uppdelning av inmatningstokens. "Övrigt" inkluderar verktygsdefinitioner och overhead.',
|
||||
"context.breakdown.system": "System",
|
||||
"context.breakdown.user": "Användare",
|
||||
"context.breakdown.assistant": "Assistent",
|
||||
"context.breakdown.tool": "Verktygsanrop",
|
||||
"context.breakdown.other": "Övrigt",
|
||||
"context.systemPrompt.title": "Systemprompt",
|
||||
"context.rawMessages.title": "Råmeddelanden",
|
||||
"context.stats.session": "Session",
|
||||
"context.stats.messages": "Meddelanden",
|
||||
"context.stats.provider": "Leverantör",
|
||||
"context.stats.model": "Modell",
|
||||
"context.stats.limit": "Kontextgräns",
|
||||
"context.stats.totalTokens": "Totala tokens",
|
||||
"context.stats.usage": "Användning",
|
||||
"context.stats.inputTokens": "Indatatokens",
|
||||
"context.stats.outputTokens": "Utdatatokens",
|
||||
"context.stats.reasoningTokens": "Resonemangstokens",
|
||||
"context.stats.cacheTokens": "Cache-tokens (läs/skriv)",
|
||||
"context.stats.userMessages": "Användarmeddelanden",
|
||||
"context.stats.assistantMessages": "Assistentmeddelanden",
|
||||
"context.stats.totalCost": "Total kostnad",
|
||||
"context.stats.sessionCreated": "Session skapades",
|
||||
"context.stats.lastActivity": "Senaste aktivitet",
|
||||
"context.usage.tokens": "Tokens",
|
||||
"context.usage.usage": "Användning",
|
||||
"context.usage.cost": "Kostnad",
|
||||
"context.usage.clickToView": "Klicka för att visa kontexten",
|
||||
"context.usage.view": "Visa kontextanvändning",
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Språk",
|
||||
"toast.language.description": "Bytte språk till {{language}}",
|
||||
"toast.theme.title": "Tema har bytts",
|
||||
"toast.scheme.title": "Färgschema",
|
||||
"toast.workspace.enabled.title": "Arbetsytor aktiverade",
|
||||
"toast.workspace.enabled.description": "Flera worktrees visas nu i sidofältet",
|
||||
"toast.workspace.disabled.title": "Arbetsytor inaktiverade",
|
||||
"toast.workspace.disabled.description": "Endast huvudworktreen visas i sidofältet",
|
||||
"toast.permissions.autoaccept.on.title": "Autoaccepterar behörigheter",
|
||||
"toast.permissions.autoaccept.on.description": "Behörighetsförfrågningar kommer att godkännas automatiskt",
|
||||
"toast.permissions.autoaccept.off.title": "Slutade att automatiskt acceptera behörigheter",
|
||||
"toast.permissions.autoaccept.off.description": "Behörighetsförfrågningar kommer att kräva godkännande",
|
||||
"toast.model.none.title": "Ingen modell har valts",
|
||||
"toast.model.none.description": "Anslut en leverantör för att sammanfatta denna session",
|
||||
"toast.file.loadFailed.title": "Det gick inte att ladda filen",
|
||||
"toast.file.listFailed.title": "Det gick inte att lista filer",
|
||||
"toast.context.noLineSelection.title": "Inget radval",
|
||||
"toast.context.noLineSelection.description": "Välj ett radintervall på en filflik först.",
|
||||
"toast.session.share.copyFailed.title": "Det gick inte att kopiera URL till urklipp",
|
||||
"toast.session.share.success.title": "Sessionen har delats",
|
||||
"toast.session.share.success.description": "Delningsadressen har kopierats till urklipp!",
|
||||
"toast.session.share.failed.title": "Det gick inte att dela sessionen",
|
||||
"toast.session.share.failed.description": "Ett fel uppstod när sessionen delades",
|
||||
"toast.session.unshare.success.title": "Sessionen delas inte längre",
|
||||
"toast.session.unshare.success.description": "Delningen av sessionen har avslutats!",
|
||||
"toast.session.unshare.failed.title": "Det gick inte att avsluta delningen",
|
||||
"toast.session.unshare.failed.description": "Ett fel uppstod när delningen skulle avslutas",
|
||||
"toast.session.listFailed.title": "Det gick inte att läsa in sessioner för {{project}}",
|
||||
"toast.project.reloadFailed.title": "Det gick inte att ladda om {{project}}",
|
||||
"toast.update.title": "Uppdatering tillgänglig",
|
||||
"toast.update.description": "En ny version av OpenCode ({{version}}) är nu tillgänglig att installera.",
|
||||
"toast.update.action.installRestart": "Installera och starta om",
|
||||
"toast.update.action.notYet": "Inte än",
|
||||
"error.page.title": "Något gick fel",
|
||||
"error.page.description": "Ett fel uppstod när programmet laddades.",
|
||||
"error.page.description.localServerStartup": "Ett fel uppstod vid start av den lokala servern.",
|
||||
"error.page.details.label": "Feldetaljer",
|
||||
"error.page.action.restart": "Starta om",
|
||||
"error.page.action.report": "Rapportera fel",
|
||||
"error.page.action.reported": "Fel rapporterat",
|
||||
"error.page.action.exportLogs": "Exportera loggar",
|
||||
"error.page.action.checking": "Kontrollerar...",
|
||||
"error.page.action.checkUpdates": "Sök efter uppdateringar",
|
||||
"error.page.action.updateTo": "Uppdatera till {{version}}",
|
||||
"error.page.circular": "[Circular]",
|
||||
"error.page.report.prefix": "Rapportera det här felet till OpenCode-teamet",
|
||||
"error.page.report.discord": "på Discord",
|
||||
"error.page.version": "Version: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"Rotelementet hittades inte. Har du glömt att lägga till det i din index.html? Eller kanske id-attributet är felstavat?",
|
||||
"error.serverSync.connectFailed": "Kunde inte ansluta till servern. Körs det en server på `{{url}}`?",
|
||||
"error.serverSDK.noServerAvailable": "Ingen server tillgänglig",
|
||||
"error.serverSDK.serverNotAvailable": "Servern är inte tillgänglig",
|
||||
"error.childStore.persistedCacheCreateFailed": "Det gick inte att skapa beständig cache",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Det gick inte att skapa beständig projektmetadata",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Det gick inte att skapa en beständig projektikon",
|
||||
"error.childStore.storeCreateFailed": "Det gick inte att skapa lagring",
|
||||
"directory.error.invalidUrl": "Ogiltig katalog i URL.",
|
||||
"error.chain.unknown": "Okänt fel",
|
||||
"error.server.invalidConfiguration": "Ogiltig konfiguration",
|
||||
"error.chain.causedBy": "Orsakas av:",
|
||||
"error.chain.apiError": "API-fel",
|
||||
"error.chain.status": "Status: {{status}}",
|
||||
"error.chain.retryable": "Kan försökas igen: {{retryable}}",
|
||||
"error.chain.responseBody": "Svarstext:\n{{body}}",
|
||||
"error.chain.didYouMean": "Menade du: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Modellen hittades inte: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Kontrollera leverantörs- och modellnamnen i konfigurationen (opencode.json)",
|
||||
"error.chain.mcpFailed": 'MCP-servern "{{name}}" misslyckades. Obs, OpenCode stöder inte MCP-autentisering ännu.',
|
||||
"error.chain.providerAuthFailed": "Leverantörsautentisering misslyckades ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Det gick inte att initiera leverantören "{{provider}}". Kontrollera autentiseringsuppgifter och konfiguration.',
|
||||
"error.chain.configJsonInvalid": "Konfigurationsfilen på {{path}} är inte giltig JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage": "Konfigurationsfilen på {{path}} är inte giltig JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'Katalogen "{{dir}}" i {{path}} är inte giltig. Byt namn på katalogen till "{{suggestion}}" eller ta bort den. Detta är ett vanligt stavfel.',
|
||||
"error.chain.configFrontmatterError": "Det gick inte att analysera frontmatter i {{path}}:\n{{message}}",
|
||||
"error.chain.configInvalid": "Konfigurationsfilen på {{path}} är ogiltig",
|
||||
"error.chain.configInvalidWithMessage": "Konfigurationsfilen på {{path}} är ogiltig: {{message}}",
|
||||
"notification.permission.title": "Behörighet krävs",
|
||||
"notification.permission.description": "{{sessionTitle}} i {{projectName}} behöver behörighet",
|
||||
"notification.question.title": "Fråga",
|
||||
"notification.question.description": "{{sessionTitle}} i {{projectName}} har en fråga",
|
||||
"notification.action.goToSession": "Gå till session",
|
||||
"notification.session.responseReady.title": "Svar redo",
|
||||
"notification.session.error.title": "Sessionsfel",
|
||||
"notification.session.error.fallbackDescription": "Ett fel uppstod",
|
||||
"home.recentProjects": "Senaste projekten",
|
||||
"home.empty.title": "Inga senaste projekt",
|
||||
"home.empty.description": "Kom igång genom att öppna ett lokalt projekt",
|
||||
"home.title": "Hem",
|
||||
"home.projects": "Projekt",
|
||||
"home.project.add": "Lägg till projekt",
|
||||
"home.recentlyClosed": "Nyligen stängda",
|
||||
"home.server.collapse": "Fäll ihop serverprojekt",
|
||||
"home.server.expand": "Fäll ut serverprojekt",
|
||||
"home.sessions.search.placeholder": "Sök sessioner",
|
||||
"home.sessions.search.placeholder.scoped": "Sök sessioner i {{scope}}",
|
||||
"home.sessions.search.sessions": "Sessioner",
|
||||
"home.sessions.search.noResults": "Inga sessioner hittades för {{query}}",
|
||||
"home.sessions.empty": "Inget här ännu",
|
||||
"home.sessions.empty.description": "Skapa en session för att komma igång",
|
||||
"home.sessions.group.today": "I dag",
|
||||
"home.sessions.group.yesterday": "I går",
|
||||
"home.sessions.group.older": "Äldre",
|
||||
"home.providerTip": "Anslut till 75+ leverantörer för att använda andra modeller, inklusive Claude, GPT, Gemini, etc",
|
||||
"session.tab.session": "Session",
|
||||
"session.tab.review": "Granskning",
|
||||
"session.tab.context": "Kontext",
|
||||
"session.tab.unknown": "Okänd session",
|
||||
"session.panel.reviewAndFiles": "Granskning och filer",
|
||||
"session.error.notFound": "Denna session kan inte hittas",
|
||||
"session.error.notFound.description": "Den här fliken pekar på en session som inte längre finns på den här servern.",
|
||||
"session.error.notFound.closeTab": "Stäng flik",
|
||||
"session.error.serverConnection": "Det går inte att ansluta till den här servern",
|
||||
"session.review.filesChanged": "Ändrade filer: {{count}}",
|
||||
"session.review.change.one": "Ändring",
|
||||
"session.review.change.other": "Ändringar",
|
||||
"session.review.loadingChanges": "Läser in ändringar...",
|
||||
"session.review.empty": "Inga ändringar i denna session ännu",
|
||||
"session.review.noVcs": "Inget Git-versionskontrollsystem upptäcktes, ändringar visas inte",
|
||||
"session.review.noVcs.createGit.title": "Skapa ett Git-arkiv",
|
||||
"session.review.noVcs.createGit.description": "Spåra, granska och ångra ändringar i det här projektet",
|
||||
"session.review.noVcs.createGit.actionLoading": "Skapar Git-arkiv...",
|
||||
"session.review.noVcs.createGit.action": "Skapa Git-arkiv",
|
||||
"session.review.noSnapshot":
|
||||
"Spårning av ögonblicksbilder är inaktiverad i konfigurationen, så sessionsändringar är inte tillgängliga",
|
||||
"session.review.noChanges": "Inga ändringar",
|
||||
"session.review.noUncommittedChanges": "Inga ändringar som inte har checkats in ännu",
|
||||
"session.review.noBranchChanges": "Inga grenändringar ännu",
|
||||
"session.files.selectToOpen": "Välj en fil att öppna",
|
||||
"session.files.all": "Alla filer",
|
||||
"session.files.empty": "Inga filer",
|
||||
"session.files.binaryContent": "Binär fil (innehåll kan inte visas)",
|
||||
"session.messages.renderEarlier": "Återge tidigare meddelanden",
|
||||
"session.messages.loadingEarlier": "Läser in tidigare meddelanden...",
|
||||
"session.messages.loadEarlier": "Ladda tidigare meddelanden",
|
||||
"session.messages.loading": "Läser in meddelanden...",
|
||||
"session.messages.jumpToLatest": "Hoppa till senaste",
|
||||
"session.context.addToContext": "Lägg till {{selection}} i kontexten",
|
||||
"session.todo.title": "Att göra",
|
||||
"session.todo.collapse": "Fäll ihop",
|
||||
"session.todo.expand": "Fäll ut",
|
||||
"session.todo.progress": "{{done}} av {{total}} uppgifter slutförda",
|
||||
"session.question.progress": "{{current}} av {{total}} frågor",
|
||||
"session.question.minimize": "Minimera frågan",
|
||||
"session.question.restore": "Återställ fråga",
|
||||
"session.question.pending.one": "{{count}} väntande fråga",
|
||||
"session.question.pending.other": "{{count}} väntande frågor",
|
||||
"session.followupDock.summary.one": "{{count}} meddelande i kö",
|
||||
"session.followupDock.summary.other": "{{count}} meddelanden i kö",
|
||||
"session.followupDock.sendNow": "Skicka nu",
|
||||
"session.followupDock.edit": "Redigera",
|
||||
"session.followupDock.collapse": "Fäll ihop köade meddelanden",
|
||||
"session.followupDock.expand": "Fäll ut köade meddelanden",
|
||||
"session.revertDock.summary.one": "{{count}} återställt meddelande",
|
||||
"session.revertDock.summary.other": "{{count}} återställda meddelanden",
|
||||
"session.revertDock.collapse": "Fäll ihop återställda meddelanden",
|
||||
"session.revertDock.expand": "Fäll ut återställda meddelanden",
|
||||
"session.revertDock.restore": "Återställ meddelande",
|
||||
"session.new.title": "Bygg vad som helst",
|
||||
"session.new.project.new": "Nytt projekt",
|
||||
"session.new.project.search": "Sök efter projekt",
|
||||
"session.new.project.add": "Lägg till projekt",
|
||||
"session.new.worktree.main": "Huvudgren",
|
||||
"session.new.worktree.mainWithBranch": "Huvudgren ({{branch}})",
|
||||
"session.new.worktree.create": "Skapa ny worktree",
|
||||
"session.new.workspace.runIn": "Kör sessionen i",
|
||||
"session.new.workspace.triggerLocal": "Lokal",
|
||||
"session.new.workspace.local": "Lokalt arkiv",
|
||||
"session.new.workspace.existing": "Arbetsyta...",
|
||||
"session.new.git.none": "Ingen Git",
|
||||
"session.new.lastModified": "Senast ändrad",
|
||||
"session.header.search.placeholder": "Sök {{project}}",
|
||||
"session.header.searchFiles": "Sök filer",
|
||||
"session.header.openIn": "Öppna i",
|
||||
"session.header.open.action": "Öppna {{app}}",
|
||||
"session.header.open.ariaLabel": "Öppna i {{app}}",
|
||||
"session.header.open.menu": "Öppna alternativ",
|
||||
"session.header.open.copyPath": "Kopiera sökväg",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Filutforskaren",
|
||||
"session.header.open.fileManager": "Filhanteraren",
|
||||
"session.header.reveal.finder": "Visa i Finder",
|
||||
"session.header.reveal.fileExplorer": "Visa i Utforskaren",
|
||||
"session.header.reveal.containingFolder": "Öppna överordnad mapp",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminal",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "Status",
|
||||
"status.popover.ariaLabel": "Serverkonfigurationer",
|
||||
"status.popover.tab.servers": "Servrar",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Insticksprogram",
|
||||
"status.popover.action.manageServers": "Hantera servrar",
|
||||
"session.share.popover.title": "Publicera på webben",
|
||||
"session.share.popover.description.shared":
|
||||
"Denna session är offentlig på webben. Den är tillgänglig för alla med länken.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Dela sessionen offentligt på webben. Den kommer att vara tillgänglig för alla med länken.",
|
||||
"session.share.action.share": "Dela",
|
||||
"session.share.action.publish": "Publicera",
|
||||
"session.share.action.publishing": "Publicerar...",
|
||||
"session.share.action.unpublish": "Avpublicera",
|
||||
"session.share.action.unpublishing": "Avpublicerar...",
|
||||
"session.share.action.view": "Visa",
|
||||
"session.share.copy.copied": "Kopierad",
|
||||
"session.share.copy.copyLink": "Kopiera länk",
|
||||
"lsp.tooltip.none": "Inga LSP-servrar",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Laddar prompt...",
|
||||
"terminal.loading": "Laddar terminal...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Stäng terminalen",
|
||||
"terminal.connectionLost.title": "Anslutning förlorad",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket stängdes onormalt: {{code}}",
|
||||
"terminal.connectionLost.description": "Terminalanslutningen avbröts. Detta kan hända när servern startar om.",
|
||||
"common.closeTab": "Stäng fliken",
|
||||
"common.dismiss": "Avfärda",
|
||||
"common.moreCountSuffix": " (+{{count}} till)",
|
||||
"common.requestFailed": "Begäran misslyckades",
|
||||
"common.moreOptions": "Fler alternativ",
|
||||
"common.learnMore": "Läs mer",
|
||||
"common.rename": "Byt namn",
|
||||
"common.reset": "Återställ",
|
||||
"common.archive": "Arkivera",
|
||||
"common.delete": "Radera",
|
||||
"common.close": "Stäng",
|
||||
"common.edit": "Redigera",
|
||||
"common.loadMore": "Ladda mer",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Mellanslag",
|
||||
"common.key.backspace": "Backsteg",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "okänd",
|
||||
"common.time.justNow": "Just nu",
|
||||
"common.time.minutesAgo.short": "{{count}}m sedan",
|
||||
"common.time.hoursAgo.short": "{{count}}h sedan",
|
||||
"common.time.daysAgo.short": "{{count}}d sedan",
|
||||
"sidebar.menu.toggle": "Växla meny",
|
||||
"sidebar.nav.projectsAndSessions": "Projekt och sessioner",
|
||||
"sidebar.settings": "Inställningar",
|
||||
"sidebar.help": "Hjälp",
|
||||
"sidebar.workspaces.enable": "Aktivera arbetsytor",
|
||||
"sidebar.workspaces.disable": "Inaktivera arbetsytor",
|
||||
"sidebar.gettingStarted.title": "Kom igång",
|
||||
"sidebar.gettingStarted.line1": "OpenCode innehåller gratis modeller så att du kan börja direkt.",
|
||||
"sidebar.gettingStarted.line2": "Anslut valfri leverantör för att använda modeller, inkl. Claude, GPT, Gemini etc.",
|
||||
"sidebar.project.recentSessions": "Senaste sessioner",
|
||||
"sidebar.project.viewAllSessions": "Se alla sessioner",
|
||||
"sidebar.project.clearNotifications": "Rensa aviseringar",
|
||||
"sidebar.empty.title": "Inga projekt öppna",
|
||||
"sidebar.empty.description": "Öppna ett projekt för att komma igång",
|
||||
"debugBar.ariaLabel": "Utvecklingsprestandadiagnostik",
|
||||
"debugBar.na": "n/a",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Senast slutförda ruttövergång som berör en sessionssida, mätt från routerns start till första bildrutans rendering efter att övergången har slutförts.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Rullande bilder per sekund under de senaste 5 sekunderna.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Sämsta bildtid under de senaste 5 sekunderna.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Bildrutor över 32 ms under de senaste 5 sekunderna.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip":
|
||||
"Blockerad tid och antal långa uppgifter under de senaste 5 sekunderna. Längsta uppgift: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Längsta observerade inmatningsfördröjning under de senaste 5 sekunderna.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Ungefärlig interaktionslängd under de senaste 5 sekunderna. Detta är INP-liknande, inte den officiella Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Kumulativ layoutförskjutning för den aktuella appens livslängd.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Använd JS-heap jämfört med heapgränsen. Endast Chromium.",
|
||||
"debugBar.mem.tip": "Använd JS-heap jämfört med heapgränsen. {{used}} av {{limit}}.",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Skrivbord",
|
||||
"settings.section.server": "Server",
|
||||
"settings.tab.general": "Allmänt",
|
||||
"settings.tab.shortcuts": "Kortkommandon",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL-integration",
|
||||
"settings.desktop.wsl.description": "Kör OpenCode-servern inuti WSL på Windows.",
|
||||
"settings.general.section.appearance": "Utseende",
|
||||
"settings.general.section.advanced": "Avancerat",
|
||||
"settings.general.section.notifications": "Systemaviseringar",
|
||||
"settings.general.section.updates": "Uppdateringar",
|
||||
"settings.general.section.sounds": "Ljudeffekter",
|
||||
"settings.general.section.feed": "Flöde",
|
||||
"settings.general.section.display": "Visning",
|
||||
"settings.general.row.language.title": "Språk",
|
||||
"settings.general.row.language.description": "Ändra visningsspråket för OpenCode",
|
||||
"settings.general.row.shell.title": "Terminalskal",
|
||||
"settings.general.row.shell.description": "Skal som används av terminalen och agentverktygen",
|
||||
"settings.general.row.shell.autoDefault": "Auto (standard)",
|
||||
"settings.general.row.shell.terminalOnly": "endast terminal",
|
||||
"settings.general.row.appearance.title": "Utseende",
|
||||
"settings.general.row.appearance.description": "Anpassa hur OpenCode ser ut på din enhet",
|
||||
"settings.general.row.colorScheme.title": "Färgschema",
|
||||
"settings.general.row.colorScheme.description": "Välj om OpenCode följer system-, ljus- eller mörktemat",
|
||||
"settings.general.row.theme.title": "Tema",
|
||||
"settings.general.row.theme.description": "Anpassa OpenCodes tema.",
|
||||
"settings.general.row.font.title": "Kodtypsnitt",
|
||||
"settings.general.row.font.description": "Anpassa teckensnittet som används i kodblock",
|
||||
"settings.general.row.terminalFont.title": "Terminaltypsnitt",
|
||||
"settings.general.row.terminalFont.description": "Anpassa teckensnittet som används i terminalen",
|
||||
"settings.general.row.uiFont.title": "UI-teckensnitt",
|
||||
"settings.general.row.uiFont.description": "Anpassa typsnittet som används i hela gränssnittet",
|
||||
"settings.general.row.followup.title": "Uppföljningsbeteende",
|
||||
"settings.general.row.followup.description": "Välj om uppföljningsmeddelanden ska styra direkt eller vänta i kö",
|
||||
"settings.general.row.followup.option.queue": "Kö",
|
||||
"settings.general.row.followup.option.steer": "Styr",
|
||||
"settings.general.row.showFileTree.title": "Filträd",
|
||||
"settings.general.row.showFileTree.description": "Visa filträdspanelen i sessioner",
|
||||
"settings.general.row.showNavigation.title": "Navigationskontroller",
|
||||
"settings.general.row.showNavigation.description": "Visa bakåt- och framåtknapparna i skrivbordets namnlist",
|
||||
"settings.general.row.showSearch.title": "Kommandopalett",
|
||||
"settings.general.row.showSearch.description": "Visa sök- och kommandopalettens knapp i namnlisten",
|
||||
"settings.general.row.showTerminal.title": "Terminal",
|
||||
"settings.general.row.showTerminal.description": "Visa terminalknappen i skrivbordets namnlist",
|
||||
"settings.general.row.showStatus.title": "Serverstatus",
|
||||
"settings.general.row.showStatus.description": "Visa serverstatusknappen i namnlisten",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Bottennavigering",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Placera titelfältet och sessionsflikarna längst ned på skärmen på mobilen",
|
||||
"settings.general.row.showCustomAgents.title": "Visa agent",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Växla mellan agenter i inmatningsfältet. När alternativet är dolt används agenten Bygg som standard.",
|
||||
"settings.general.row.reasoningSummaries.title": "Visa resonemangssammanfattningar",
|
||||
"settings.general.row.reasoningSummaries.description": "Visa modellresonemangssammanfattningar i tidslinjen",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Expandera skalverktygsdelar",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Visa skalverktygsdelar expanderade som standard på tidslinjen",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Fäll ut delar för redigeringsverktyg",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Visa delar för redigerings-, skriv- och patchverktyg utfällda som standard i tidslinjen",
|
||||
"settings.general.row.newInterface.title": "Ny layout",
|
||||
"settings.general.row.newInterface.badge": "Ny",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Använd de nya flikarna och hemlayouten. Växla mellan layouter under en begränsad tid.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Du använder nu ny layout",
|
||||
"settings.general.row.newInterfaceNotice.description": "Den tidigare layouten är inte längre tillgänglig",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Avfärda",
|
||||
"settings.general.row.pinchZoom.title": "Nyp för att zooma",
|
||||
"settings.general.row.pinchZoom.description": "Tillåt nypgester på styrplattan och Ctrl-rullning för att zooma",
|
||||
"settings.general.row.wayland.title": "Använd inbyggt Wayland-stöd",
|
||||
"settings.general.row.wayland.description": "Inaktivera X11-reservläget på Wayland. Kräver omstart.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"På Linux med skärmar som har olika uppdateringsfrekvens kan inbyggt Wayland-stöd vara stabilare.",
|
||||
"settings.general.row.releaseNotes.title": "Versionsinformation",
|
||||
"settings.general.row.releaseNotes.description": "Visa popup-fönster för vad som är nytt efter uppdateringar",
|
||||
"settings.updates.row.startup.title": "Sök efter uppdateringar vid start",
|
||||
"settings.updates.row.startup.description": "Sök automatiskt efter uppdateringar när OpenCode startas",
|
||||
"settings.updates.row.check.title": "Sök efter uppdateringar",
|
||||
"settings.updates.row.check.description": "Sök manuellt efter uppdateringar och installera dem om de är tillgängliga",
|
||||
"settings.updates.action.checkNow": "Kontrollera nu",
|
||||
"settings.updates.action.checking": "Kontrollerar...",
|
||||
"settings.updates.action.downloading": "Laddar ned...",
|
||||
"settings.updates.action.installing": "Installerar...",
|
||||
"settings.updates.toast.latest.title": "Du är uppdaterad",
|
||||
"settings.updates.toast.latest.description": "Du kör den senaste versionen av OpenCode.",
|
||||
"sound.option.none": "Inget",
|
||||
"sound.option.alert01": "Varning 01",
|
||||
"sound.option.alert02": "Varning 02",
|
||||
"sound.option.alert03": "Varning 03",
|
||||
"sound.option.alert04": "Varning 04",
|
||||
"sound.option.alert05": "Varning 05",
|
||||
"sound.option.alert06": "Varning 06",
|
||||
"sound.option.alert07": "Alarm 07",
|
||||
"sound.option.alert08": "Alarm 08",
|
||||
"sound.option.alert09": "Alarm 09",
|
||||
"sound.option.alert10": "Varning 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nej 01",
|
||||
"sound.option.nope02": "Nej 02",
|
||||
"sound.option.nope03": "Nej 03",
|
||||
"sound.option.nope04": "Nej 04",
|
||||
"sound.option.nope05": "Nej 05",
|
||||
"sound.option.nope06": "Nej 06",
|
||||
"sound.option.nope07": "Nej 07",
|
||||
"sound.option.nope08": "Nej 08",
|
||||
"sound.option.nope09": "Nej 09",
|
||||
"sound.option.nope10": "Nej 10",
|
||||
"sound.option.nope11": "Nej 11",
|
||||
"sound.option.nope12": "Nej 12",
|
||||
"sound.option.yup01": "Japp 01",
|
||||
"sound.option.yup02": "Japp 02",
|
||||
"sound.option.yup03": "Japp 03",
|
||||
"sound.option.yup04": "Japp 04",
|
||||
"sound.option.yup05": "Japp 05",
|
||||
"sound.option.yup06": "Japp 06",
|
||||
"settings.general.notifications.agent.title": "Agent",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Visa en systemavisering när agenten är klar eller behöver uppmärksamhet",
|
||||
"settings.general.notifications.permissions.title": "Behörigheter",
|
||||
"settings.general.notifications.permissions.description": "Visa systemavisering när en behörighet krävs",
|
||||
"settings.general.notifications.errors.title": "Fel",
|
||||
"settings.general.notifications.errors.description": "Visa systemavisering när ett fel uppstår",
|
||||
"settings.general.sounds.agent.title": "Agent",
|
||||
"settings.general.sounds.agent.description": "Spela upp ett ljud när agenten är klar eller behöver uppmärksamhet",
|
||||
"settings.general.sounds.permissions.title": "Behörigheter",
|
||||
"settings.general.sounds.permissions.description": "Spela upp ett ljud när en behörighet krävs",
|
||||
"settings.general.sounds.errors.title": "Fel",
|
||||
"settings.general.sounds.errors.description": "Spela upp ljud när ett fel uppstår",
|
||||
"settings.shortcuts.title": "Kortkommandon",
|
||||
"settings.shortcuts.reset.button": "Återställ till standardinställningar",
|
||||
"settings.shortcuts.reset.toast.title": "Kortkommandon återställda",
|
||||
"settings.shortcuts.reset.toast.description": "Kortkommandon har återställts till standardinställningarna.",
|
||||
"settings.shortcuts.conflict.title": "Kortkommandot används redan",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} är redan tilldelat till {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Otilldelad",
|
||||
"settings.shortcuts.pressKeys": "Tryck på tangenter",
|
||||
"settings.shortcuts.search.placeholder": "Sök kortkommandon",
|
||||
"settings.shortcuts.search.empty": "Inga kortkommandon hittades",
|
||||
"settings.shortcuts.group.general": "Allmänt",
|
||||
"settings.shortcuts.group.session": "Session",
|
||||
"settings.shortcuts.group.navigation": "Navigering",
|
||||
"settings.shortcuts.group.modelAndAgent": "Modell och agent",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "Prompt",
|
||||
"settings.providers.title": "Leverantörer",
|
||||
"settings.providers.description": "Leverantörsinställningar kommer att kunna konfigureras här.",
|
||||
"settings.providers.section.connected": "Anslutna leverantörer",
|
||||
"settings.providers.connected.empty": "Inga anslutna leverantörer",
|
||||
"settings.providers.connected.environmentDescription": "Anslutna via dina miljövariabler",
|
||||
"settings.providers.section.popular": "Populära leverantörer",
|
||||
"settings.providers.custom.description": "Lägg till en OpenAI-kompatibel leverantör genom bas-URL.",
|
||||
"settings.providers.tag.environment": "Miljö",
|
||||
"settings.providers.tag.config": "Konfiguration",
|
||||
"settings.providers.tag.custom": "Anpassad",
|
||||
"settings.providers.tag.other": "Övrigt",
|
||||
"settings.models.title": "Modeller",
|
||||
"settings.models.description": "Modellinställningar kommer att kunna konfigureras här.",
|
||||
"settings.agents.title": "Agenter",
|
||||
"settings.agents.description": "Agentinställningar kommer att kunna konfigureras här.",
|
||||
"settings.commands.title": "Kommandon",
|
||||
"settings.commands.description": "Kommandoinställningarna kommer att kunna konfigureras här.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP-inställningar kommer att kunna konfigureras här.",
|
||||
"settings.permissions.title": "Behörigheter",
|
||||
"settings.permissions.description": "Kontrollera vilka verktyg servern kan använda som standard.",
|
||||
"settings.permissions.section.tools": "Verktyg",
|
||||
"settings.permissions.toast.updateFailed.title": "Det gick inte att uppdatera behörigheter",
|
||||
"settings.permissions.action.allow": "Tillåt",
|
||||
"settings.permissions.action.ask": "Fråga",
|
||||
"settings.permissions.action.deny": "Neka",
|
||||
"settings.permissions.tool.read.title": "Läs",
|
||||
"settings.permissions.tool.read.description": "Läsa en fil (matchar filsökvägen)",
|
||||
"settings.permissions.tool.edit.title": "Redigera",
|
||||
"settings.permissions.tool.edit.description": "Ändra filer, inklusive redigeringar, skrivningar och patchar",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Matcha filer med globmönster",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Sök filinnehåll med hjälp av reguljära uttryck",
|
||||
"settings.permissions.tool.list.title": "Lista",
|
||||
"settings.permissions.tool.list.description": "Lista filer i en katalog",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Kör skalkommandon",
|
||||
"settings.permissions.tool.task.title": "Uppgift",
|
||||
"settings.permissions.tool.task.description": "Starta underagenter",
|
||||
"settings.permissions.tool.skill.title": "Färdighet",
|
||||
"settings.permissions.tool.skill.description": "Ladda en färdighet efter namn",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Kör språkserverfrågor",
|
||||
"settings.permissions.tool.todowrite.title": "Skriv att göra-lista",
|
||||
"settings.permissions.tool.todowrite.description": "Uppdatera att göra-listan",
|
||||
"settings.permissions.tool.webfetch.title": "Webbhämtning",
|
||||
"settings.permissions.tool.webfetch.description": "Hämta innehåll från en URL",
|
||||
"settings.permissions.tool.websearch.title": "Webbsökning",
|
||||
"settings.permissions.tool.websearch.description": "Sök på webben",
|
||||
"settings.permissions.tool.external_directory.title": "Extern katalog",
|
||||
"settings.permissions.tool.external_directory.description": "Få åtkomst till filer utanför projektkatalogen",
|
||||
"settings.permissions.tool.doom_loop.title": "Doom Loop",
|
||||
"settings.permissions.tool.doom_loop.description": "Upptäck upprepade verktygsanrop med identiska indata",
|
||||
"session.delete.failed.title": "Det gick inte att ta bort sessionen",
|
||||
"session.delete.title": "Ta bort session",
|
||||
"session.delete.confirm": 'Ta bort session "{{name}}"?',
|
||||
"session.delete.button": "Ta bort session",
|
||||
"workspace.new": "Ny arbetsyta",
|
||||
"workspace.type.local": "lokal",
|
||||
"workspace.type.sandbox": "sandlåda",
|
||||
"workspace.create.failed.title": "Det gick inte att skapa arbetsyta",
|
||||
"workspace.delete.failed.title": "Det gick inte att ta bort arbetsytan",
|
||||
"workspace.resetting.title": "Återställer arbetsytan",
|
||||
"workspace.resetting.description": "Detta kan ta en minut.",
|
||||
"workspace.reset.failed.title": "Det gick inte att återställa arbetsytan",
|
||||
"workspace.reset.success.title": "Arbetsytan har återställts",
|
||||
"workspace.reset.success.description": "Arbetsytan matchar nu standardgrenen.",
|
||||
"workspace.error.stillPreparing": "Arbetsytan förbereds fortfarande",
|
||||
"workspace.status.checking": "Söker efter osammanslagna ändringar...",
|
||||
"workspace.status.error": "Det gick inte att verifiera git-status.",
|
||||
"workspace.status.clean": "Inga osammanslagna ändringar upptäcktes.",
|
||||
"workspace.status.dirty": "Osammanslagna ändringar upptäcktes i den här arbetsytan.",
|
||||
"workspace.delete.title": "Ta bort arbetsyta",
|
||||
"workspace.delete.confirm": 'Ta bort arbetsytan "{{name}}"?',
|
||||
"workspace.delete.button": "Ta bort arbetsyta",
|
||||
"workspace.reset.title": "Återställ arbetsytan",
|
||||
"workspace.reset.confirm": 'Återställa arbetsytan "{{name}}"?',
|
||||
"workspace.reset.button": "Återställ arbetsytan",
|
||||
"workspace.reset.archived.none": "Inga aktiva sessioner kommer att arkiveras.",
|
||||
"workspace.reset.archived.one": "1 session kommer att arkiveras.",
|
||||
"workspace.reset.archived.many": "{{count}} sessioner kommer att arkiveras.",
|
||||
"workspace.reset.note": "Detta kommer att återställa arbetsytan så att den matchar standardgrenen.",
|
||||
}
|
||||
+65
-72
@@ -53,7 +53,7 @@ export const dict = {
|
||||
"command.context.addSelection.description": "เพิ่มบรรทัดที่เลือกจากไฟล์ปัจจุบัน",
|
||||
"command.input.focus": "โฟกัสช่องป้อนข้อมูล",
|
||||
"command.terminal.toggle": "สลับเทอร์มินัล",
|
||||
"command.fileTree.toggle": "สลับแผนผังไฟล์",
|
||||
"command.fileTree.toggle": "สลับต้นไม้ไฟล์",
|
||||
"command.review.toggle": "สลับการตรวจสอบ",
|
||||
"command.terminal.new": "เทอร์มินัลใหม่",
|
||||
"command.terminal.new.description": "สร้างแท็บเทอร์มินัลใหม่",
|
||||
@@ -79,8 +79,8 @@ export const dict = {
|
||||
"command.permissions.autoaccept.disable": "หยุดยอมรับสิทธิ์โดยอัตโนมัติ",
|
||||
"command.workspace.toggle": "สลับพื้นที่ทำงาน",
|
||||
"command.workspace.toggle.description": "เปิดหรือปิดใช้งานพื้นที่ทำงานหลายรายการในแถบด้านข้าง",
|
||||
"command.session.undo": "เลิกทำ",
|
||||
"command.session.undo.description": "เลิกทำข้อความล่าสุด",
|
||||
"command.session.undo": "ยกเลิก",
|
||||
"command.session.undo.description": "ยกเลิกข้อความล่าสุด",
|
||||
"command.session.redo": "ทำซ้ำ",
|
||||
"command.session.redo.description": "ทำซ้ำข้อความที่ถูกยกเลิกล่าสุด",
|
||||
"command.session.compact": "บีบอัดเซสชัน",
|
||||
@@ -102,7 +102,6 @@ export const dict = {
|
||||
"dialog.provider.empty": "ไม่พบผู้ให้บริการ",
|
||||
"dialog.provider.group.popular": "ยอดนิยม",
|
||||
"dialog.provider.group.other": "อื่น ๆ",
|
||||
"dialog.provider.custom.label": "ผู้ให้บริการแบบกำหนดเองที่เข้ากันได้กับ OpenAI",
|
||||
"dialog.provider.tag.recommended": "แนะนำ",
|
||||
"dialog.provider.opencode.note": "โมเดลที่คัดสรร รวมถึง Claude, GPT, Gemini และอื่น ๆ",
|
||||
"dialog.provider.opencode.tagline": "โมเดลที่เชื่อถือได้และปรับให้เหมาะสม",
|
||||
@@ -123,7 +122,6 @@ export const dict = {
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "โมเดลฟรีที่จัดหาให้โดย OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "เพิ่มโมเดลเพิ่มเติมจากผู้ให้บริการยอดนิยม",
|
||||
"dialog.model.unpaid.viewMoreProviders": "ดูผู้ให้บริการเพิ่มเติมกว่า 70 ราย",
|
||||
|
||||
"dialog.provider.viewAll": "แสดงผู้ให้บริการเพิ่มเติม",
|
||||
|
||||
@@ -145,11 +143,11 @@ export const dict = {
|
||||
"ด้วยคีย์ API เดียวคุณจะได้รับการเข้าถึงโมเดล เช่น Claude, GPT, Gemini, GLM และอื่น ๆ",
|
||||
"provider.connect.opencodeZen.visit.prefix": "เยี่ยมชม ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " เพื่อรับคีย์ API ของคุณ",
|
||||
"provider.connect.opencodeZen.visit.suffix": " เพื่อรวบรวมคีย์ API ของคุณ",
|
||||
"provider.connect.oauth.code.visit.prefix": "เยี่ยมชม ",
|
||||
"provider.connect.oauth.code.visit.link": "ลิงก์นี้",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" เพื่อรับรหัสการอนุญาตสำหรับเชื่อมต่อบัญชีและใช้โมเดล {{provider}} ใน OpenCode",
|
||||
" เพื่อรวบรวมรหัสการอนุญาตของคุณเพื่อเชื่อมต่อบัญชีและใช้โมเดล {{provider}} ใน OpenCode",
|
||||
"provider.connect.oauth.code.label": "รหัสการอนุญาต {{method}}",
|
||||
"provider.connect.oauth.code.placeholder": "รหัสการอนุญาต",
|
||||
"provider.connect.oauth.code.required": "ต้องใช้รหัสการอนุญาต",
|
||||
@@ -159,13 +157,13 @@ export const dict = {
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" และป้อนรหัสด้านล่างเพื่อเชื่อมต่อบัญชีและใช้โมเดล {{provider}} ใน OpenCode",
|
||||
"provider.connect.oauth.auto.confirmationCode": "รหัสยืนยัน",
|
||||
"provider.connect.toast.connected.title": "เชื่อมต่อ {{provider}} แล้ว",
|
||||
"provider.connect.toast.connected.title": "{{provider}} ที่เชื่อมต่อแล้ว",
|
||||
"provider.connect.toast.connected.description": "โมเดล {{provider}} พร้อมใช้งานแล้ว",
|
||||
|
||||
"provider.custom.title": "ผู้ให้บริการที่กำหนดเอง",
|
||||
"provider.custom.description.prefix": "กำหนดค่าผู้ให้บริการที่เข้ากันได้กับ OpenAI ดู ",
|
||||
"provider.custom.description.link": "เอกสารการกำหนดค่าผู้ให้บริการ",
|
||||
"provider.custom.description.suffix": "",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "รหัสผู้ให้บริการ",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "ตัวอักษรพิมพ์เล็ก ตัวเลข ยัติภังค์ หรือขีดล่าง",
|
||||
@@ -199,7 +197,7 @@ export const dict = {
|
||||
"provider.custom.error.required": "จำเป็น",
|
||||
"provider.custom.error.duplicate": "ซ้ำ",
|
||||
|
||||
"provider.disconnect.toast.disconnected.title": "ยกเลิกการเชื่อมต่อ {{provider}} แล้ว",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} ที่ยกเลิกการเชื่อมต่อแล้ว",
|
||||
"provider.disconnect.toast.disconnected.description": "โมเดล {{provider}} ไม่พร้อมใช้งานอีกต่อไป",
|
||||
|
||||
"model.tag.free": "ฟรี",
|
||||
@@ -214,7 +212,7 @@ export const dict = {
|
||||
"model.input.audio": "เสียง",
|
||||
"model.input.video": "วิดีโอ",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.tooltip.allows": "รองรับ: {{inputs}}",
|
||||
"model.tooltip.allows": "อนุญาต: {{inputs}}",
|
||||
"model.tooltip.context.label": "บริบท",
|
||||
"model.tooltip.inputs": "ข้อมูลนำเข้า",
|
||||
"model.tooltip.model": "โมเดล",
|
||||
@@ -226,14 +224,14 @@ export const dict = {
|
||||
|
||||
"common.search.placeholder": "ค้นหา",
|
||||
"common.goBack": "ย้อนกลับ",
|
||||
"common.goForward": "ไปข้างหน้า",
|
||||
"common.goForward": "นำทางไปข้างหน้า",
|
||||
"common.loading": "กำลังโหลด",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "ยกเลิก",
|
||||
"common.clear": "ล้าง",
|
||||
"common.connect": "เชื่อมต่อ",
|
||||
"common.disconnect": "ยกเลิกการเชื่อมต่อ",
|
||||
"common.continue": "ดำเนินการต่อ",
|
||||
"common.continue": "ส่ง",
|
||||
"common.submit": "ส่ง",
|
||||
"common.save": "บันทึก",
|
||||
"common.saving": "กำลังบันทึก...",
|
||||
@@ -248,8 +246,8 @@ export const dict = {
|
||||
"prompt.mode.shell": "เชลล์",
|
||||
"prompt.mode.normal": "พรอมต์",
|
||||
"prompt.mode.shell.exit": "กด esc เพื่อออก",
|
||||
"session.child.promptDisabled": "ไม่สามารถส่งพรอมต์ในเซสชันเอเจนต์ย่อยได้",
|
||||
"session.child.backToParent": "กลับไปยังเซสชันหลัก",
|
||||
"session.child.promptDisabled": "ไม่สามารถส่งพรอมต์ในเซสชันเอเจนต์ย่อยได้.",
|
||||
"session.child.backToParent": "กลับไปยังเซสชันหลัก.",
|
||||
|
||||
"prompt.example.1": "แก้ไข TODO ในโค้ดเบส",
|
||||
"prompt.example.2": "เทคโนโลยีของโปรเจกต์นี้คืออะไร?",
|
||||
@@ -264,7 +262,7 @@ export const dict = {
|
||||
"prompt.example.11": "ปรับปรุงการสืบค้นฐานข้อมูล",
|
||||
"prompt.example.12": "เพิ่มการตรวจสอบข้อมูลนำเข้า",
|
||||
"prompt.example.13": "สร้างคอมโพเนนต์ใหม่สำหรับ...",
|
||||
"prompt.example.14": "ฉันจะนำโปรเจกต์นี้ไปใช้งานได้อย่างไร?",
|
||||
"prompt.example.14": "ฉันจะทำให้โปรเจกต์นี้ทำงานได้อย่างไร?",
|
||||
"prompt.example.15": "ตรวจสอบโค้ดของฉันเพื่อแนวทางปฏิบัติที่ดีที่สุด",
|
||||
"prompt.example.16": "เพิ่มการจัดการข้อผิดพลาดในฟังก์ชันนี้",
|
||||
"prompt.example.17": "อธิบายรูปแบบ regex นี้",
|
||||
@@ -272,15 +270,15 @@ export const dict = {
|
||||
"prompt.example.19": "เพิ่มการบันทึกทั่วทั้งโค้ดเบส",
|
||||
"prompt.example.20": "มีการพึ่งพาอะไรที่ล้าสมัยอยู่?",
|
||||
"prompt.example.21": "ช่วยฉันเขียนสคริปต์การย้ายข้อมูล",
|
||||
"prompt.example.22": "ใช้แคชสำหรับเอนด์พอยต์นี้",
|
||||
"prompt.example.22": "ใช้งานแคชสำหรับจุดสิ้นสุดนี้",
|
||||
"prompt.example.23": "เพิ่มการแบ่งหน้าในรายการนี้",
|
||||
"prompt.example.24": "สร้างคำสั่ง CLI สำหรับ...",
|
||||
"prompt.example.25": "ตัวแปรสภาพแวดล้อมทำงานอย่างไรที่นี่?",
|
||||
|
||||
"prompt.popover.emptyResults": "ไม่พบผลลัพธ์ที่ตรงกัน",
|
||||
"prompt.popover.emptyCommands": "ไม่พบคำสั่งที่ตรงกัน",
|
||||
"prompt.dropzone.label": "ลากรูปภาพ PDF หรือไฟล์ข้อความมาวางที่นี่",
|
||||
"prompt.dropzone.file.label": "วางเพื่ออ้างถึงไฟล์ด้วย @",
|
||||
"prompt.dropzone.label": "ลากรูปภาพ, PDF หรือไฟล์ข้อความมาวางที่นี่",
|
||||
"prompt.dropzone.file.label": "วางเพื่อ @กล่าวถึงไฟล์",
|
||||
"prompt.slash.badge.custom": "กำหนดเอง",
|
||||
"prompt.slash.badge.skill": "ทักษะ",
|
||||
"prompt.slash.badge.mcp": "MCP",
|
||||
@@ -299,15 +297,14 @@ export const dict = {
|
||||
"prompt.action.stop": "หยุด",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "ไฟล์แนบที่ไม่รองรับ",
|
||||
"prompt.toast.attachmentDuplicate.title": "ไฟล์นี้ถูกอัปโหลดแล้ว",
|
||||
"prompt.toast.pasteUnsupported.description": "แนบได้เฉพาะรูปภาพ PDF หรือไฟล์ข้อความเท่านั้น",
|
||||
"prompt.toast.pasteUnsupported.description": "แนบได้เฉพาะรูปภาพ, PDF หรือไฟล์ข้อความเท่านั้น",
|
||||
"prompt.toast.modelAgentRequired.title": "เลือกเอเจนต์และโมเดล",
|
||||
"prompt.toast.modelAgentRequired.description": "เลือกเอเจนต์และโมเดลก่อนส่งพรอมต์",
|
||||
"prompt.toast.modelAgentRequired.description": "เลือกเอเจนต์และโมเดลก่อนส่งพร้อมท์",
|
||||
"prompt.toast.worktreeCreateFailed.title": "ไม่สามารถสร้าง worktree",
|
||||
"prompt.toast.sessionCreateFailed.title": "ไม่สามารถสร้างเซสชัน",
|
||||
"prompt.toast.shellSendFailed.title": "ไม่สามารถส่งคำสั่งเชลล์",
|
||||
"prompt.toast.commandSendFailed.title": "ไม่สามารถส่งคำสั่ง",
|
||||
"prompt.toast.promptSendFailed.title": "ไม่สามารถส่งพรอมต์",
|
||||
"prompt.toast.promptSendFailed.title": "ไม่สามารถส่งพร้อมท์",
|
||||
"prompt.toast.promptSendFailed.description": "ไม่สามารถดึงเซสชันได้",
|
||||
|
||||
"dialog.mcp.title": "MCPs",
|
||||
@@ -319,7 +316,7 @@ export const dict = {
|
||||
|
||||
"mcp.status.connected": "เชื่อมต่อแล้ว",
|
||||
"mcp.status.failed": "ล้มเหลว",
|
||||
"mcp.status.needs_auth": "ต้องยืนยันตัวตน",
|
||||
"mcp.status.needs_auth": "ต้องการการตรวจสอบสิทธิ์",
|
||||
"mcp.auth.clickToAuthenticate": "คลิกเพื่อยืนยันตัวตน",
|
||||
"mcp.status.disabled": "ปิดใช้งาน",
|
||||
|
||||
@@ -329,7 +326,7 @@ export const dict = {
|
||||
"dialog.directory.empty": "ไม่พบโฟลเดอร์",
|
||||
"dialog.directory.action.selectFile": "เลือกไฟล์",
|
||||
"dialog.directory.action.selectFolder": "เลือกโฟลเดอร์",
|
||||
"dialog.directory.root": "โฟลเดอร์ราก",
|
||||
"dialog.directory.root": "ราก",
|
||||
"dialog.directory.parent": "โฟลเดอร์หลัก",
|
||||
"dialog.directory.readError": "ไม่สามารถอ่านโฟลเดอร์นี้ได้",
|
||||
|
||||
@@ -371,30 +368,30 @@ export const dict = {
|
||||
"wsl.onboarding.step.distro": "เลือกดิสโทร",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "กำลังตรวจสอบ WSL...",
|
||||
"wsl.onboarding.restartRequired": "ต้องรีสตาร์ท Windows เพื่อให้การติดตั้ง WSL เสร็จสมบูรณ์",
|
||||
"wsl.onboarding.ready": "WSL พร้อมใช้งานแล้ว",
|
||||
"wsl.onboarding.required": "ต้องมี WSL เพื่อดำเนินการต่อ",
|
||||
"wsl.onboarding.restartRequired": "ต้องรีสตาร์ท Windows เพื่อให้การติดตั้ง WSL เสร็จสมบูรณ์.",
|
||||
"wsl.onboarding.ready": "WSL พร้อมใช้งานแล้ว.",
|
||||
"wsl.onboarding.required": "ต้องมี WSL เพื่อดำเนินการต่อ.",
|
||||
"wsl.onboarding.checkingDistros": "กำลังตรวจสอบดิสโทร...",
|
||||
"wsl.onboarding.installingDistro": "กำลังติดตั้ง {{distro}}...",
|
||||
"wsl.onboarding.checkingDistro": "กำลังตรวจสอบ {{distro}}...",
|
||||
"wsl.onboarding.listingDistros": "กำลังแสดงรายการดิสโทร...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} พร้อมใช้งานแล้ว",
|
||||
"wsl.onboarding.distroNotInstalled": "ยังไม่ได้ติดตั้ง {{distro}}",
|
||||
"wsl.onboarding.openDistroOnce": "เปิด {{distro}} หนึ่งครั้งเพื่อให้การตั้งค่าเสร็จสมบูรณ์",
|
||||
"wsl.onboarding.finishingDistro": "กำลังตั้งค่า {{distro}} ให้เสร็จสมบูรณ์",
|
||||
"wsl.onboarding.pickDistro": "เลือกดิสโทรหรือติดตั้งจากรายการด้านล่าง",
|
||||
"wsl.onboarding.distroReady": "{{distro}} พร้อมใช้งานแล้ว.",
|
||||
"wsl.onboarding.distroNotInstalled": "ยังไม่ได้ติดตั้ง {{distro}}.",
|
||||
"wsl.onboarding.openDistroOnce": "เปิด {{distro}} หนึ่งครั้งเพื่อให้การตั้งค่าเสร็จสมบูรณ์.",
|
||||
"wsl.onboarding.finishingDistro": "กำลังตั้งค่า {{distro}} ให้เสร็จสมบูรณ์.",
|
||||
"wsl.onboarding.pickDistro": "เลือกดิสโทรหรือติดตั้งจากรายการด้านล่าง.",
|
||||
"wsl.onboarding.checkingOpencode": "กำลังตรวจสอบ OpenCode...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "กำลังตรวจสอบ OpenCode ใน {{distro}}...",
|
||||
"wsl.onboarding.updatingOpencode": "กำลังอัปเดต OpenCode...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "กำลังอัปเดต OpenCode ใน {{distro}}...",
|
||||
"wsl.onboarding.updateOpencodeIn": "อัปเดต OpenCode ใน {{distro}}",
|
||||
"wsl.onboarding.updateOpencodeIn": "อัปเดต OpenCode ใน {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "อัปเดต OpenCode",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode พร้อมใช้งานใน {{distro}} แล้ว",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode พร้อมใช้งานแล้ว",
|
||||
"wsl.onboarding.installOpencodeIn": "ติดตั้ง OpenCode ใน {{distro}}",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode พร้อมใช้งานใน {{distro}} แล้ว.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode พร้อมใช้งานแล้ว.",
|
||||
"wsl.onboarding.installOpencodeIn": "ติดตั้ง OpenCode ใน {{distro}}.",
|
||||
"wsl.onboarding.installOpencode": "ติดตั้ง OpenCode",
|
||||
"wsl.onboarding.chooseDistroFirst": "เลือกดิสโทรก่อน",
|
||||
"wsl.onboarding.loadFailed": "ไม่สามารถโหลดสถานะ WSL ได้",
|
||||
"wsl.onboarding.chooseDistroFirst": "เลือกดิสโทรก่อน.",
|
||||
"wsl.onboarding.loadFailed": "ไม่สามารถโหลดสถานะ WSL ได้.",
|
||||
"wsl.onboarding.loading": "กำลังโหลด...",
|
||||
"wsl.onboarding.installedDistros": "ดิสโทรที่ติดตั้งแล้ว",
|
||||
"wsl.onboarding.checkAgain": "ตรวจสอบอีกครั้ง",
|
||||
@@ -409,27 +406,27 @@ export const dict = {
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"ต้องมี WSL (Windows Subsystem for Linux) ก่อนที่ OpenCode จะเพิ่มเซิร์ฟเวอร์ WSL ได้",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL ไม่พร้อมใช้งาน",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode ไม่สามารถตรวจสอบ WSL บนเครื่องนี้ได้",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode ไม่สามารถตรวจสอบ WSL บนเครื่องนี้ได้.",
|
||||
"wsl.onboarding.installWsl": "ติดตั้ง WSL",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"รีสตาร์ท Windows เพื่อให้การติดตั้ง WSL เสร็จสมบูรณ์ แล้วเปิด OpenCode อีกครั้ง",
|
||||
"รีสตาร์ท Windows เพื่อให้การติดตั้ง WSL เสร็จสมบูรณ์ แล้วเปิด OpenCode อีกครั้ง.",
|
||||
"wsl.onboarding.next": "ถัดไป",
|
||||
"wsl.onboarding.refresh": "รีเฟรช",
|
||||
"wsl.onboarding.allDistrosAdded": "เพิ่มดิสโทรที่ติดตั้งไว้ทั้งหมดแล้ว",
|
||||
"wsl.onboarding.noDistros": "ยังไม่พบดิสโทร",
|
||||
"wsl.onboarding.allDistrosAdded": "เพิ่มดิสโทรที่ติดตั้งไว้ทั้งหมดแล้ว.",
|
||||
"wsl.onboarding.noDistros": "ยังไม่พบดิสโทร.",
|
||||
"wsl.onboarding.install": "ติดตั้ง",
|
||||
"wsl.onboarding.installing": "กำลังติดตั้ง...",
|
||||
"wsl.onboarding.installDistro": "ติดตั้งดิสโทร",
|
||||
"wsl.onboarding.searchDistros": "ค้นหาดิสโทร",
|
||||
"wsl.onboarding.wsl2Required": "ต้องใช้ WSL 2",
|
||||
"wsl.onboarding.toolsRequired": "ดิสโทรนี้ต้องมี bash และ curl",
|
||||
"wsl.onboarding.wsl2Required": "ต้องใช้ WSL 2.",
|
||||
"wsl.onboarding.toolsRequired": "ดิสโทรนี้ต้องมี bash และ curl.",
|
||||
"wsl.onboarding.openTerminal": "เปิดเทอร์มินัล",
|
||||
"wsl.onboarding.path": "เส้นทาง: {{path}}",
|
||||
"wsl.onboarding.notFound": "ไม่พบ",
|
||||
"wsl.onboarding.version": "เวอร์ชัน: {{version}}",
|
||||
"wsl.onboarding.unknown": "ไม่ทราบ",
|
||||
"wsl.onboarding.desktopVersion": "เดสก์ท็อป {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "เวอร์ชันที่ติดตั้งไม่ตรงกับเวอร์ชันของแอปเดสก์ท็อป",
|
||||
"wsl.onboarding.versionMismatch": "เวอร์ชันที่ติดตั้งไม่ตรงกับเวอร์ชันของแอปเดสก์ท็อป.",
|
||||
"wsl.onboarding.adding": "กำลังเพิ่ม...",
|
||||
|
||||
"dialog.project.edit.title": "แก้ไขโปรเจกต์",
|
||||
@@ -452,7 +449,7 @@ export const dict = {
|
||||
"context.breakdown.tool": "การเรียกเครื่องมือ",
|
||||
"context.breakdown.other": "อื่น ๆ",
|
||||
|
||||
"context.systemPrompt.title": "พรอมต์ระบบ",
|
||||
"context.systemPrompt.title": "พร้อมท์ระบบ",
|
||||
"context.rawMessages.title": "ข้อความดิบ",
|
||||
|
||||
"context.stats.session": "เซสชัน",
|
||||
@@ -542,7 +539,7 @@ export const dict = {
|
||||
|
||||
"error.page.title": "เกิดข้อผิดพลาด",
|
||||
"error.page.description": "เกิดข้อผิดพลาดระหว่างการโหลดแอปพลิเคชัน",
|
||||
"error.page.description.localServerStartup": "เกิดข้อผิดพลาดขณะเริ่มเซิร์ฟเวอร์ในเครื่อง",
|
||||
"error.page.description.localServerStartup": "เกิดข้อผิดพลาดขณะเริ่มเซิร์ฟเวอร์ในเครื่อง.",
|
||||
"error.page.details.label": "รายละเอียดข้อผิดพลาด",
|
||||
"error.page.action.restart": "รีสตาร์ท",
|
||||
"error.page.action.report": "รายงานข้อผิดพลาด",
|
||||
@@ -586,7 +583,7 @@ export const dict = {
|
||||
"notification.question.description": "{{sessionTitle}} ใน {{projectName}} มีคำถาม",
|
||||
"notification.action.goToSession": "ไปที่เซสชัน",
|
||||
|
||||
"notification.session.responseReady.title": "คำตอบพร้อมแล้ว",
|
||||
"notification.session.responseReady.title": "การตอบสนองพร้อม",
|
||||
"notification.session.error.title": "ข้อผิดพลาดเซสชัน",
|
||||
"notification.session.error.fallbackDescription": "เกิดข้อผิดพลาด",
|
||||
|
||||
@@ -608,7 +605,7 @@ export const dict = {
|
||||
"home.sessions.group.today": "วันนี้",
|
||||
"home.sessions.group.yesterday": "เมื่อวาน",
|
||||
"home.sessions.group.older": "ก่อนหน้านี้",
|
||||
"home.providerTip": "เชื่อมต่อกับผู้ให้บริการกว่า 75 รายเพื่อใช้โมเดลอื่น ๆ รวมถึง Claude, GPT, Gemini และอีกมากมาย",
|
||||
"home.providerTip": "เชื่อมต่อกับผู้ให้บริการกว่า 75 รายเพื่อใช้โมเดลอื่นๆ รวมถึง Claude, GPT, Gemini และอีกมากมาย",
|
||||
|
||||
"session.tab.session": "เซสชัน",
|
||||
"session.tab.review": "ตรวจสอบ",
|
||||
@@ -616,7 +613,7 @@ export const dict = {
|
||||
"session.tab.unknown": "เซสชันที่ไม่รู้จัก",
|
||||
"session.panel.reviewAndFiles": "ตรวจสอบและไฟล์",
|
||||
"session.error.notFound": "ไม่พบเซสชันนี้",
|
||||
"session.error.notFound.description": "แท็บนี้อ้างถึงเซสชันที่ไม่มีอยู่บนเซิร์ฟเวอร์นี้แล้ว",
|
||||
"session.error.notFound.description": "แท็บนี้อ้างถึงเซสชันที่ไม่มีอยู่บนเซิร์ฟเวอร์นี้แล้ว.",
|
||||
"session.error.notFound.closeTab": "ปิดแท็บ",
|
||||
"session.error.serverConnection": "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์นี้",
|
||||
"session.review.filesChanged": "{{count}} ไฟล์ที่เปลี่ยนแปลง",
|
||||
@@ -706,7 +703,7 @@ export const dict = {
|
||||
"lsp.tooltip.none": "ไม่มีเซิร์ฟเวอร์ LSP",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
|
||||
"prompt.loading": "กำลังโหลดพรอมต์...",
|
||||
"prompt.loading": "กำลังโหลดพร้อมท์...",
|
||||
"terminal.loading": "กำลังโหลดเทอร์มินัล...",
|
||||
"terminal.title": "เทอร์มินัล",
|
||||
"terminal.title.numbered": "เทอร์มินัล {{number}}",
|
||||
@@ -769,23 +766,23 @@ export const dict = {
|
||||
"settings.general.row.shell.autoDefault": "อัตโนมัติ (ค่าเริ่มต้น)",
|
||||
"settings.general.row.shell.terminalOnly": "เทอร์มินัลเท่านั้น",
|
||||
"settings.general.row.appearance.title": "รูปลักษณ์",
|
||||
"settings.general.row.appearance.description": "ปรับแต่งรูปลักษณ์ของ OpenCode บนอุปกรณ์ของคุณ",
|
||||
"settings.general.row.appearance.description": "ปรับแต่งวิธีการที่ OpenCode มีลักษณะบนอุปกรณ์ของคุณ",
|
||||
"settings.general.row.colorScheme.title": "โทนสี",
|
||||
"settings.general.row.colorScheme.description": "เลือกว่าจะให้ OpenCode ใช้ธีมตามระบบ สว่าง หรือมืด",
|
||||
"settings.general.row.theme.title": "ธีม",
|
||||
"settings.general.row.theme.description": "ปรับแต่งธีมของ OpenCode",
|
||||
"settings.general.row.font.title": "แบบอักษรโค้ด",
|
||||
"settings.general.row.font.description": "ปรับแต่งแบบอักษรที่ใช้ในบล็อกโค้ด",
|
||||
"settings.general.row.terminalFont.title": "แบบอักษรเทอร์มินัล",
|
||||
"settings.general.row.terminalFont.description": "ปรับแต่งแบบอักษรที่ใช้ในเทอร์มินัล",
|
||||
"settings.general.row.uiFont.title": "แบบอักษร UI",
|
||||
"settings.general.row.uiFont.description": "ปรับแต่งแบบอักษรที่ใช้ทั่วทั้งอินเทอร์เฟซ",
|
||||
"settings.general.row.theme.description": "ปรับแต่งวิธีการที่ OpenCode มีธีม",
|
||||
"settings.general.row.font.title": "ฟอนต์โค้ด",
|
||||
"settings.general.row.font.description": "ปรับแต่งฟอนต์ที่ใช้ในบล็อกโค้ด",
|
||||
"settings.general.row.terminalFont.title": "ฟอนต์เทอร์มินัล",
|
||||
"settings.general.row.terminalFont.description": "ปรับแต่งฟอนต์ที่ใช้ในเทอร์มินัล",
|
||||
"settings.general.row.uiFont.title": "ฟอนต์ UI",
|
||||
"settings.general.row.uiFont.description": "ปรับแต่งฟอนต์ที่ใช้ทั่วทั้งอินเทอร์เฟซ",
|
||||
"settings.general.row.followup.title": "พฤติกรรมการติดตามผล",
|
||||
"settings.general.row.followup.description": "เลือกว่าจะให้พรอมต์ติดตามผลทำงานทันทีหรือรอในคิว",
|
||||
"settings.general.row.followup.description": "เลือกว่าจะให้พร้อมท์ติดตามผลทำงานทันทีหรือรอในคิว",
|
||||
"settings.general.row.followup.option.queue": "คิว",
|
||||
"settings.general.row.followup.option.steer": "นำทาง",
|
||||
"settings.general.row.showFileTree.title": "แผนผังไฟล์",
|
||||
"settings.general.row.showFileTree.description": "แสดงแผงแผนผังไฟล์ในเซสชัน",
|
||||
"settings.general.row.showFileTree.title": "ต้นไม้ไฟล์",
|
||||
"settings.general.row.showFileTree.description": "แสดงแผงต้นไม้ไฟล์ในเซสชัน",
|
||||
"settings.general.row.showNavigation.title": "ตัวควบคุมการนำทาง",
|
||||
"settings.general.row.showNavigation.description": "แสดงปุ่มย้อนกลับและไปข้างหน้าในแถบชื่อเรื่องเดสก์ท็อป",
|
||||
"settings.general.row.showSearch.title": "ชุดคำสั่ง",
|
||||
@@ -797,9 +794,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "การนำทางด้านล่าง",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"วางแถบชื่อเรื่องและแท็บเซสชันไว้ด้านล่างของหน้าจอบนอุปกรณ์เคลื่อนที่",
|
||||
"settings.general.row.showCustomAgents.title": "แสดงเอเจนต์",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"สลับระหว่างเอเจนต์ในช่องเขียนข้อความ เมื่อซ่อน ระบบจะใช้เอเจนต์ Build เป็นค่าเริ่มต้น",
|
||||
"settings.general.row.showCustomAgents.title": "เอเจนต์ที่กำหนดเอง",
|
||||
"settings.general.row.showCustomAgents.description": "แสดงตัวเลือกเอเจนต์ในช่องเขียนข้อความ",
|
||||
"settings.general.row.reasoningSummaries.title": "แสดงสรุปการใช้เหตุผล",
|
||||
"settings.general.row.reasoningSummaries.description": "แสดงสรุปการใช้เหตุผลของโมเดลในไทม์ไลน์",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "ขยายส่วนเครื่องมือ shell",
|
||||
@@ -911,7 +907,7 @@ export const dict = {
|
||||
"settings.shortcuts.group.navigation": "การนำทาง",
|
||||
"settings.shortcuts.group.modelAndAgent": "โมเดลและเอเจนต์",
|
||||
"settings.shortcuts.group.terminal": "เทอร์มินัล",
|
||||
"settings.shortcuts.group.prompt": "พรอมต์",
|
||||
"settings.shortcuts.group.prompt": "พร้อมท์",
|
||||
|
||||
"settings.providers.title": "ผู้ให้บริการ",
|
||||
"settings.providers.description": "การตั้งค่าผู้ให้บริการจะสามารถกำหนดค่าได้ที่นี่",
|
||||
@@ -948,7 +944,7 @@ export const dict = {
|
||||
"settings.permissions.tool.glob.description": "จับคู่ไฟล์โดยใช้รูปแบบ glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "ค้นหาเนื้อหาไฟล์โดยใช้นิพจน์ทั่วไป",
|
||||
"settings.permissions.tool.list.title": "แสดงรายการ",
|
||||
"settings.permissions.tool.list.title": "รายการ",
|
||||
"settings.permissions.tool.list.description": "แสดงรายการไฟล์ภายในไดเรกทอรี",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "เรียกใช้คำสั่งเชลล์",
|
||||
@@ -1021,16 +1017,13 @@ export const dict = {
|
||||
"dialog.server.add.passwordPlaceholder": "รหัสผ่าน",
|
||||
"server.row.noUsername": "ไม่มีชื่อผู้ใช้",
|
||||
"session.review.noVcs.createGit.title": "สร้าง Git รีโพซิทอรี",
|
||||
"session.review.noVcs.createGit.description": "ติดตาม ตรวจสอบ และเลิกทำการเปลี่ยนแปลงในโปรเจกต์นี้",
|
||||
"session.review.noVcs.createGit.description": "ติดตาม ตรวจสอบ และเลิกทำสิ่งเปลี่ยนแปลงในโปรเจกต์นี้",
|
||||
"session.review.noVcs.createGit.actionLoading": "กำลังสร้าง Git รีโพซิทอรี...",
|
||||
"session.review.noVcs.createGit.action": "สร้าง Git รีโพซิทอรี",
|
||||
"session.todo.progress": "เสร็จสิ้น {{done}} จาก {{total}} รายการ",
|
||||
"session.question.progress": "{{current}} จาก {{total}} คำถาม",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.reveal.finder": "แสดงใน Finder",
|
||||
"session.header.reveal.fileExplorer": "แสดงใน File Explorer",
|
||||
"session.header.reveal.containingFolder": "เปิดโฟลเดอร์ที่มีรายการนี้",
|
||||
"session.header.open.fileManager": "File Manager",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
|
||||
+61
-68
@@ -78,9 +78,9 @@ export const dict = {
|
||||
"command.model.variant.cycle": "Düşünme eforu değiştir",
|
||||
"command.model.variant.cycle.description": "Sonraki efor seviyesine geç",
|
||||
"command.prompt.mode.shell": "Kabuk",
|
||||
"command.prompt.mode.normal": "İstem",
|
||||
"command.permissions.autoaccept.enable": "İzinleri otomatik kabul et",
|
||||
"command.permissions.autoaccept.disable": "İzinleri otomatik kabul etmeyi durdur",
|
||||
"command.prompt.mode.normal": "Komut",
|
||||
"command.permissions.autoaccept.enable": "Düzenlemeleri otomatik kabul et",
|
||||
"command.permissions.autoaccept.disable": "Otomatik kabulü durdur",
|
||||
"command.workspace.toggle": "Çalışma alanlarını aç/kapat",
|
||||
"command.workspace.toggle.description": "Kenar çubuğunda birden fazla çalışma alanını göster veya gizle",
|
||||
"command.session.undo": "Geri al",
|
||||
@@ -106,10 +106,9 @@ export const dict = {
|
||||
"dialog.provider.empty": "Sağlayıcı bulunamadı",
|
||||
"dialog.provider.group.popular": "Popüler",
|
||||
"dialog.provider.group.other": "Diğer",
|
||||
"dialog.provider.custom.label": "Özel OpenAI uyumlu sağlayıcı",
|
||||
"dialog.provider.tag.recommended": "Önerilen",
|
||||
"dialog.provider.opencode.note": "Claude, GPT, Gemini ve daha fazlasını içeren seçilmiş modeller",
|
||||
"dialog.provider.opencode.tagline": "Güvenilir, optimize edilmiş modeller",
|
||||
"dialog.provider.opencode.tagline": "Güvenilir optimize edilmiş modeller",
|
||||
"dialog.provider.opencodeGo.tagline": "Herkes için düşük maliyetli abonelik",
|
||||
"dialog.provider.anthropic.note": "Pro ve Max dahil Claude modellerine doğrudan erişim",
|
||||
"dialog.provider.copilot.note": "GitHub Copilot üzerinden kodlama yardımı için yapay zekâ modelleri",
|
||||
@@ -127,7 +126,6 @@ export const dict = {
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode tarafından sunulan ücretsiz modeller",
|
||||
"dialog.model.unpaid.addMore.title": "Popüler sağlayıcılardan daha fazla model ekleyin",
|
||||
"dialog.model.unpaid.viewMoreProviders": "70'ten fazla sağlayıcı daha görüntüle",
|
||||
|
||||
"dialog.provider.viewAll": "Daha fazla sağlayıcı göster",
|
||||
|
||||
@@ -168,9 +166,9 @@ export const dict = {
|
||||
|
||||
"provider.custom.title": "Özel sağlayıcı",
|
||||
"provider.custom.description.prefix": "OpenAI uyumlu bir sağlayıcı yapılandırın. ",
|
||||
"provider.custom.description.link": "sağlayıcı yapılandırma dokümanları",
|
||||
"provider.custom.description.link": "Sağlayıcı yapılandırma dökümanları",
|
||||
"provider.custom.description.suffix": " sayfasına bakın.",
|
||||
"provider.custom.field.providerID.label": "Sağlayıcı kimliği",
|
||||
"provider.custom.field.providerID.label": "Sağlayıcı kimlik",
|
||||
"provider.custom.field.providerID.placeholder": "saglayicim",
|
||||
"provider.custom.field.providerID.description": "Küçük harfler, rakamlar, tire veya alt çizgi",
|
||||
"provider.custom.field.name.label": "Görünen ad",
|
||||
@@ -180,7 +178,7 @@ export const dict = {
|
||||
"provider.custom.field.apiKey.label": "API anahtarı",
|
||||
"provider.custom.field.apiKey.placeholder": "API anahtarı",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"İsteğe bağlı. Kimlik doğrulamayı başlıklarla yönetiyorsanız boş bırakın.",
|
||||
"İsteğe bağlı. Kimlik doğrulamayı başlıklar ile yönetiyorsanız boş bırakın.",
|
||||
"provider.custom.models.label": "Modeller",
|
||||
"provider.custom.models.id.label": "Kimlik",
|
||||
"provider.custom.models.id.placeholder": "model-kimlik",
|
||||
@@ -195,9 +193,9 @@ export const dict = {
|
||||
"provider.custom.headers.value.placeholder": "değer",
|
||||
"provider.custom.headers.remove": "Başlığı kaldır",
|
||||
"provider.custom.headers.add": "Başlık ekle",
|
||||
"provider.custom.error.providerID.required": "Sağlayıcı kimliği gerekli",
|
||||
"provider.custom.error.providerID.required": "Sağlayıcı kimlik gerekli",
|
||||
"provider.custom.error.providerID.format": "Küçük harf, rakam, tire veya alt çizgi kullanın",
|
||||
"provider.custom.error.providerID.exists": "Bu sağlayıcı kimliği zaten mevcut",
|
||||
"provider.custom.error.providerID.exists": "Bu sağlayıcı kimlik zaten mevcut",
|
||||
"provider.custom.error.name.required": "Görünen ad gerekli",
|
||||
"provider.custom.error.baseURL.required": "Temel URL gerekli",
|
||||
"provider.custom.error.baseURL.format": "http:// veya https:// ile başlamalı",
|
||||
@@ -205,7 +203,7 @@ export const dict = {
|
||||
"provider.custom.error.duplicate": "Tekrar",
|
||||
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} bağlantısı kesildi",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}} modelleri artık kullanılamıyor.",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}} modelleri artık kullanılabilir değil.",
|
||||
|
||||
"model.tag.free": "Ücretsiz",
|
||||
"model.tag.latest": "En yeni",
|
||||
@@ -225,9 +223,9 @@ export const dict = {
|
||||
"model.tooltip.model": "Model",
|
||||
"model.tooltip.provider": "Sağlayıcı",
|
||||
"model.tooltip.reasoning": "Akıl yürütme",
|
||||
"model.tooltip.reasoning.allowed": "Akıl yürütmeyi destekler",
|
||||
"model.tooltip.reasoning.allowed": "Akıl yürütme destekler",
|
||||
"model.tooltip.reasoning.none": "Akıl yürütme yok",
|
||||
"model.tooltip.context": "Bağlam sınırı {{limit}}",
|
||||
"model.tooltip.context": "Bağlam limiti {{limit}}",
|
||||
|
||||
"common.search.placeholder": "Ara",
|
||||
"common.goBack": "Geri git",
|
||||
@@ -237,8 +235,8 @@ export const dict = {
|
||||
"common.cancel": "İptal",
|
||||
"common.clear": "Temizle",
|
||||
"common.connect": "Bağlan",
|
||||
"common.disconnect": "Bağlantıyı kes",
|
||||
"common.continue": "Devam et",
|
||||
"common.disconnect": "Bağlantı Kes",
|
||||
"common.continue": "Gönder",
|
||||
"common.submit": "Gönder",
|
||||
"common.save": "Kaydet",
|
||||
"common.saving": "Kaydediliyor...",
|
||||
@@ -251,7 +249,7 @@ export const dict = {
|
||||
"prompt.placeholder.summarizeComments": "Yorumları özetle…",
|
||||
"prompt.placeholder.summarizeComment": "Yorumu özetle…",
|
||||
"prompt.mode.shell": "Kabuk",
|
||||
"prompt.mode.normal": "İstem",
|
||||
"prompt.mode.normal": "Komut",
|
||||
"prompt.mode.shell.exit": "çıkmak için esc",
|
||||
"session.child.promptDisabled": "Alt ajan oturumlarına istem gönderilemez.",
|
||||
"session.child.backToParent": "Ana oturuma dön.",
|
||||
@@ -268,30 +266,30 @@ export const dict = {
|
||||
"prompt.example.10": "API dokümantasyonu oluştur",
|
||||
"prompt.example.11": "Veritabanı sorgularını optimize et",
|
||||
"prompt.example.12": "Girdi doğrulama ekle",
|
||||
"prompt.example.13": "... için yeni bir bileşen oluştur",
|
||||
"prompt.example.13": "İçin yeni bir bileşen oluştur...",
|
||||
"prompt.example.14": "Bu projeyi nasıl dağıtabilirim?",
|
||||
"prompt.example.15": "Kodumu en iyi uygulamalar için incele",
|
||||
"prompt.example.16": "Bu fonksiyona hata yönetimi ekle",
|
||||
"prompt.example.17": "Bu regex kalıbını açıkla",
|
||||
"prompt.example.18": "Bunu TypeScript'e dönüştür",
|
||||
"prompt.example.19": "Kod tabanının tamamına günlük kaydı ekle",
|
||||
"prompt.example.19": "Kod tabanı boyunca loglama ekle",
|
||||
"prompt.example.20": "Hangi bağımlılıklar güncellenmemiş?",
|
||||
"prompt.example.21": "Bir geçiş betiği yazmama yardım et",
|
||||
"prompt.example.21": "Bir göç betiği yazmama yardım et",
|
||||
"prompt.example.22": "Bu uç nokta için önbellekleme uygula",
|
||||
"prompt.example.23": "Bu listeye sayfalama ekle",
|
||||
"prompt.example.24": "... için bir CLI komutu oluştur",
|
||||
"prompt.example.24": "İçin bir CLI komutu oluştur...",
|
||||
"prompt.example.25": "Ortam değişkenleri burada nasıl çalışıyor?",
|
||||
|
||||
"prompt.popover.emptyResults": "Eşleşen sonuç yok",
|
||||
"prompt.popover.emptyCommands": "Eşleşen komut yok",
|
||||
"prompt.dropzone.label": "Resimleri, PDF'leri veya metin dosyalarını buraya bırakın",
|
||||
"prompt.dropzone.file.label": "Dosyayı @ ile belirtmek için buraya bırakın",
|
||||
"prompt.dropzone.file.label": "@bahsetmek için dosyayı bırakın",
|
||||
"prompt.slash.badge.custom": "özel",
|
||||
"prompt.slash.badge.skill": "beceri",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "etkin",
|
||||
"prompt.context.includeActiveFile": "Etkin dosyayı dahil et",
|
||||
"prompt.context.removeActiveFile": "Etkin dosyayı bağlamdan çıkar",
|
||||
"prompt.context.active": "aktif",
|
||||
"prompt.context.includeActiveFile": "Aktif dosyayı dahil et",
|
||||
"prompt.context.removeActiveFile": "Aktif dosyayı bağlamdan çıkar",
|
||||
"prompt.context.removeFile": "Dosyayı bağlamdan çıkar",
|
||||
"prompt.action.attachFile": "Dosya ekle",
|
||||
"prompt.menu.addImagesAndFiles": "Dosya ve daha fazlasını ekle",
|
||||
@@ -304,19 +302,18 @@ export const dict = {
|
||||
"prompt.action.stop": "Durdur",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Desteklenmeyen ek",
|
||||
"prompt.toast.attachmentDuplicate.title": "Bu dosya zaten yüklendi",
|
||||
"prompt.toast.pasteUnsupported.description": "Buraya yalnızca resimler, PDF'ler veya metin dosyaları eklenebilir.",
|
||||
"prompt.toast.modelAgentRequired.title": "Bir ajan ve model seçin",
|
||||
"prompt.toast.modelAgentRequired.description": "İstem göndermeden önce bir ajan ve model seçin.",
|
||||
"prompt.toast.modelAgentRequired.description": "Komut göndermeden önce bir ajan ve model seçin.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Çalışma ağacı oluşturulamadı",
|
||||
"prompt.toast.sessionCreateFailed.title": "Oturum oluşturulamadı",
|
||||
"prompt.toast.shellSendFailed.title": "Kabuk komutu gönderilemedi",
|
||||
"prompt.toast.commandSendFailed.title": "Komut gönderilemedi",
|
||||
"prompt.toast.promptSendFailed.title": "İstem gönderilemedi",
|
||||
"prompt.toast.promptSendFailed.title": "Komut gönderilemedi",
|
||||
"prompt.toast.promptSendFailed.description": "Oturum alınamadı",
|
||||
|
||||
"dialog.mcp.title": "MCP'ler",
|
||||
"dialog.mcp.description": "Toplam {{total}} öğeden {{enabled}} tanesi etkin",
|
||||
"dialog.mcp.description": "{{total}} içerisinden {{enabled}} etkin",
|
||||
"dialog.mcp.empty": "Yapılandırılmış MCP yok",
|
||||
|
||||
"dialog.lsp.empty": "LSP'ler dosya türlerinden otomatik algılanır",
|
||||
@@ -351,7 +348,7 @@ export const dict = {
|
||||
"dialog.server.add.name": "Sunucu adı (isteğe bağlı)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "Kullanıcı adı (isteğe bağlı)",
|
||||
"dialog.server.add.password": "Parola (isteğe bağlı)",
|
||||
"dialog.server.add.password": "Şifre (isteğe bağlı)",
|
||||
"dialog.server.edit.title": "Sunucuyu düzenle",
|
||||
"dialog.server.default.title": "Varsayılan sunucu",
|
||||
"dialog.server.default.description":
|
||||
@@ -457,14 +454,14 @@ export const dict = {
|
||||
"context.breakdown.tool": "Araç Çağrıları",
|
||||
"context.breakdown.other": "Diğer",
|
||||
|
||||
"context.systemPrompt.title": "Sistem İstemi",
|
||||
"context.systemPrompt.title": "Sistem Komutu",
|
||||
"context.rawMessages.title": "Ham mesajlar",
|
||||
|
||||
"context.stats.session": "Oturum",
|
||||
"context.stats.messages": "Mesajlar",
|
||||
"context.stats.provider": "Sağlayıcı",
|
||||
"context.stats.model": "Model",
|
||||
"context.stats.limit": "Bağlam Sınırı",
|
||||
"context.stats.limit": "Bağlam Limiti",
|
||||
"context.stats.totalTokens": "Toplam Token",
|
||||
"context.stats.usage": "Kullanım",
|
||||
"context.stats.inputTokens": "Girdi Tokenleri",
|
||||
@@ -474,7 +471,7 @@ export const dict = {
|
||||
"context.stats.userMessages": "Kullanıcı Mesajları",
|
||||
"context.stats.assistantMessages": "Asistan Mesajları",
|
||||
"context.stats.totalCost": "Toplam Maliyet",
|
||||
"context.stats.sessionCreated": "Oturum Oluşturma",
|
||||
"context.stats.sessionCreated": "Oturum Oluşturulma",
|
||||
"context.stats.lastActivity": "Son Etkinlik",
|
||||
|
||||
"context.usage.tokens": "Tokenler",
|
||||
@@ -513,10 +510,10 @@ export const dict = {
|
||||
"toast.workspace.disabled.title": "Çalışma alanları devre dışı bırakıldı",
|
||||
"toast.workspace.disabled.description": "Kenar çubuğunda yalnızca ana çalışma ağacı gösterilecek",
|
||||
|
||||
"toast.permissions.autoaccept.on.title": "İzinler otomatik kabul ediliyor",
|
||||
"toast.permissions.autoaccept.on.description": "İzin istekleri otomatik olarak onaylanacak",
|
||||
"toast.permissions.autoaccept.off.title": "İzinleri otomatik kabul etme durduruldu",
|
||||
"toast.permissions.autoaccept.off.description": "İzin istekleri onay gerektirecek",
|
||||
"toast.permissions.autoaccept.on.title": "Düzenlemeler otomatik kabul ediliyor",
|
||||
"toast.permissions.autoaccept.on.description": "Düzenleme ve yazma izinleri otomatik olarak onaylanacak",
|
||||
"toast.permissions.autoaccept.off.title": "Otomatik kabul durduruldu",
|
||||
"toast.permissions.autoaccept.off.description": "Düzenleme ve yazma izinleri onay gerektirecek",
|
||||
|
||||
"toast.model.none.title": "Model seçilmedi",
|
||||
"toast.model.none.description": "Bu oturumu özetlemek için bir sağlayıcı bağlayın",
|
||||
@@ -556,8 +553,8 @@ export const dict = {
|
||||
"error.page.action.checking": "Kontrol ediliyor...",
|
||||
"error.page.action.checkUpdates": "Güncellemeleri kontrol et",
|
||||
"error.page.action.updateTo": "{{version}} sürümüne güncelle",
|
||||
"error.page.report.prefix": "Lütfen bu hatayı OpenCode ekibine",
|
||||
"error.page.report.discord": "Discord üzerinden bildirin",
|
||||
"error.page.report.prefix": "Lütfen bu hatayı OpenCode ekibine bildirin",
|
||||
"error.page.report.discord": "Discord üzerinden",
|
||||
"error.page.version": "Sürüm: {{version}}",
|
||||
|
||||
"error.dev.rootNotFound":
|
||||
@@ -574,9 +571,9 @@ export const dict = {
|
||||
"error.chain.responseBody": "Yanıt gövdesi:\n{{body}}",
|
||||
"error.chain.didYouMean": "Bunu mu demek istediniz: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Model bulunamadı: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Yapılandırma dosyanızdaki (opencode.json) sağlayıcı/model adlarını kontrol edin",
|
||||
"error.chain.checkConfig": "Yapılandırma dosyanızı (opencode.json) sağlayıcı/model adlarını kontrol edin",
|
||||
"error.chain.mcpFailed":
|
||||
'MCP sunucusu "{{name}}" çalıştırılamadı. Not: OpenCode henüz MCP kimlik doğrulamasını desteklemiyor.',
|
||||
'MCP sunucusu "{{name}}" başarısız oldu. Not: OpenCode henüz MCP kimlik doğrulamasını desteklemiyor.',
|
||||
"error.chain.providerAuthFailed": "Sağlayıcı kimlik doğrulaması başarısız ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'"{{provider}}" sağlayıcısı başlatılamadı. Kimlik bilgilerini ve yapılandırmayı kontrol edin.',
|
||||
@@ -626,9 +623,9 @@ export const dict = {
|
||||
"session.panel.reviewAndFiles": "İnceleme ve dosyalar",
|
||||
"session.error.notFound": "Bu oturum bulunamıyor",
|
||||
"session.error.notFound.description": "Bu sekme, artık bu sunucuda bulunmayan bir oturuma yönlendiriyor.",
|
||||
"session.error.notFound.closeTab": "Sekmeyi kapat",
|
||||
"session.error.notFound.closeTab": "Sekmeyi Kapat",
|
||||
"session.error.serverConnection": "Bu sunucuya bağlanılamıyor",
|
||||
"session.review.filesChanged": "{{count}} dosya değişti",
|
||||
"session.review.filesChanged": "{{count}} Dosya Değişti",
|
||||
"session.review.change.one": "Değişiklik",
|
||||
"session.review.change.other": "Değişiklik",
|
||||
"session.review.loadingChanges": "Değişiklikler yükleniyor...",
|
||||
@@ -637,7 +634,7 @@ export const dict = {
|
||||
"session.review.noSnapshot":
|
||||
"Yapılandırmada anlık görüntü takibi devre dışı bırakıldı, bu nedenle oturum değişiklikleri kullanılamıyor",
|
||||
"session.review.noChanges": "Değişiklik yok",
|
||||
"session.review.noUncommittedChanges": "Henüz işlenmemiş değişiklik yok",
|
||||
"session.review.noUncommittedChanges": "Henüz commit edilmemiş değişiklik yok",
|
||||
"session.review.noBranchChanges": "Henüz dal değişikliği yok",
|
||||
|
||||
"session.files.selectToOpen": "Açmak için bir dosya seçin",
|
||||
@@ -671,7 +668,7 @@ export const dict = {
|
||||
"session.revertDock.expand": "Geri alınan mesajları genişlet",
|
||||
"session.revertDock.restore": "Mesajı geri yükle",
|
||||
|
||||
"session.new.title": "Her şeyi geliştirin",
|
||||
"session.new.title": "İstediğini yap",
|
||||
"session.new.project.new": "Yeni proje",
|
||||
"session.new.project.search": "Proje ara",
|
||||
"session.new.project.add": "Proje ekle",
|
||||
@@ -692,9 +689,6 @@ export const dict = {
|
||||
"session.header.open.ariaLabel": "{{app}} ile aç",
|
||||
"session.header.open.menu": "Açma seçenekleri",
|
||||
"session.header.open.copyPath": "Yolu kopyala",
|
||||
"session.header.reveal.finder": "Finder'da göster",
|
||||
"session.header.reveal.fileExplorer": "Dosya Gezgini'nde göster",
|
||||
"session.header.reveal.containingFolder": "İçeren klasörü aç",
|
||||
|
||||
"status.popover.trigger": "Durum",
|
||||
"status.popover.ariaLabel": "Sunucu yapılandırmaları",
|
||||
@@ -715,17 +709,17 @@ export const dict = {
|
||||
"session.share.action.unpublishing": "Yayından kaldırılıyor...",
|
||||
"session.share.action.view": "Görüntüle",
|
||||
"session.share.copy.copied": "Kopyalandı",
|
||||
"session.share.copy.copyLink": "Bağlantıyı kopyala",
|
||||
"session.share.copy.copyLink": "Bağlantı kopyala",
|
||||
|
||||
"lsp.tooltip.none": "LSP sunucusu yok",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
|
||||
"prompt.loading": "İstem yükleniyor...",
|
||||
"prompt.loading": "Komut yükleniyor...",
|
||||
"terminal.loading": "Terminal yükleniyor...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Terminali kapat",
|
||||
"terminal.connectionLost.title": "Bağlantı kesildi",
|
||||
"terminal.connectionLost.title": "Bağlantı Kesildi",
|
||||
"terminal.connectionLost.description":
|
||||
"Terminal bağlantısı kesildi. Bu durum sunucu yeniden başladığında oluşabilir.",
|
||||
|
||||
@@ -790,15 +784,15 @@ export const dict = {
|
||||
"OpenCode'un sistem, açık veya koyu temayı takip etip etmeyeceğini seçin",
|
||||
"settings.general.row.theme.title": "Tema",
|
||||
"settings.general.row.theme.description": "OpenCode'un temasını özelleştirin.",
|
||||
"settings.general.row.font.title": "Kod yazı tipi",
|
||||
"settings.general.row.font.title": "Kod Yazı Tipi",
|
||||
"settings.general.row.font.description": "Kod bloklarında kullanılan yazı tipini özelleştirin",
|
||||
"settings.general.row.terminalFont.title": "Terminal yazı tipi",
|
||||
"settings.general.row.terminalFont.description": "Terminalde kullanılan yazı tipini özelleştirin",
|
||||
"settings.general.row.uiFont.title": "Arayüz yazı tipi",
|
||||
"settings.general.row.uiFont.title": "Arayüz Yazı Tipi",
|
||||
"settings.general.row.uiFont.description": "Arayüz genelinde kullanılan yazı tipini özelleştirin",
|
||||
"settings.general.row.followup.title": "Takip davranışı",
|
||||
"settings.general.row.followup.description":
|
||||
"Takip istemlerinin hemen yönlendirilmesini mi yoksa sırada beklemesini mi istediğinizi seçin",
|
||||
"Takip komutlarının hemen yönlendirilmesini mi yoksa sırada beklemesini mi istediğinizi seçin",
|
||||
"settings.general.row.followup.option.queue": "Sıra",
|
||||
"settings.general.row.followup.option.steer": "Yönlendir",
|
||||
"settings.general.row.showFileTree.title": "Dosya ağacı",
|
||||
@@ -814,9 +808,8 @@ export const dict = {
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Alt gezinme",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Mobil cihazlarda başlık çubuğunu ve oturum sekmelerini ekranın altına yerleştir",
|
||||
"settings.general.row.showCustomAgents.title": "Ajanı göster",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Düzenleyicide ajanlar arasında geçiş yapın. Gizlendiğinde varsayılan olarak Build ajanı kullanılır.",
|
||||
"settings.general.row.showCustomAgents.title": "Özel ajanlar",
|
||||
"settings.general.row.showCustomAgents.description": "Yazma alanında ajan seçiciyi göster",
|
||||
"settings.general.row.reasoningSummaries.title": "Akıl yürütme özetlerini göster",
|
||||
"settings.general.row.reasoningSummaries.description": "Zaman çizelgesinde model akıl yürütme özetlerini görüntüle",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Kabuk araç bileşenlerini genişlet",
|
||||
@@ -840,7 +833,7 @@ export const dict = {
|
||||
"settings.general.row.wayland.description":
|
||||
"Wayland'da X11 geri dönüşünü devre dışı bırak. Yeniden başlatma gerektirir.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Farklı yenileme hızlarına sahip monitörlerin kullanıldığı Linux sistemlerinde yerel Wayland daha kararlı olabilir.",
|
||||
"Karışık yenileme hızlı monitörlere sahip Linux'ta yerel Wayland daha kararlı olabilir.",
|
||||
|
||||
"settings.general.row.releaseNotes.title": "Sürüm notları",
|
||||
"settings.general.row.releaseNotes.description": "Güncellemelerden sonra Yenilikler bildirimlerini göster",
|
||||
@@ -934,7 +927,7 @@ export const dict = {
|
||||
"settings.shortcuts.group.navigation": "Gezinme",
|
||||
"settings.shortcuts.group.modelAndAgent": "Model ve ajan",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "İstem",
|
||||
"settings.shortcuts.group.prompt": "Komut",
|
||||
|
||||
"settings.providers.title": "Sağlayıcılar",
|
||||
"settings.providers.description": "Sağlayıcı ayarları burada yapılandırılabilecek.",
|
||||
@@ -959,7 +952,7 @@ export const dict = {
|
||||
"settings.permissions.section.tools": "Araçlar",
|
||||
"settings.permissions.toast.updateFailed.title": "İzinler güncellenemedi",
|
||||
|
||||
"settings.permissions.action.allow": "İzin ver",
|
||||
"settings.permissions.action.allow": "İzin Ver",
|
||||
"settings.permissions.action.ask": "Sor",
|
||||
"settings.permissions.action.deny": "Reddet",
|
||||
|
||||
@@ -999,7 +992,7 @@ export const dict = {
|
||||
|
||||
"workspace.new": "Yeni çalışma alanı",
|
||||
"workspace.type.local": "yerel",
|
||||
"workspace.type.sandbox": "korumalı alan",
|
||||
"workspace.type.sandbox": "sandbox",
|
||||
"workspace.create.failed.title": "Çalışma alanı oluşturulamadı",
|
||||
"workspace.delete.failed.title": "Çalışma alanı silinemedi",
|
||||
"workspace.resetting.title": "Çalışma alanı sıfırlanıyor",
|
||||
@@ -1031,9 +1024,9 @@ export const dict = {
|
||||
"error.server.invalidConfiguration": "Geçersiz yapılandırma",
|
||||
"common.moreCountSuffix": " (+{{count}} daha)",
|
||||
"common.time.justNow": "Şimdi",
|
||||
"common.time.minutesAgo.short": "{{count}} dk önce",
|
||||
"common.time.hoursAgo.short": "{{count}} sa önce",
|
||||
"common.time.daysAgo.short": "{{count}} gün önce",
|
||||
"common.time.minutesAgo.short": "{{count}}dk önce",
|
||||
"common.time.hoursAgo.short": "{{count}}sa önce",
|
||||
"common.time.daysAgo.short": "{{count}}g önce",
|
||||
"settings.providers.connected.environmentDescription": "Ortam değişkenlerinizden bağlandı",
|
||||
"settings.providers.custom.description": "Temel URL üzerinden OpenAI uyumlu bir sağlayıcı ekleyin.",
|
||||
|
||||
@@ -1071,7 +1064,7 @@ export const dict = {
|
||||
"debugBar.nav.tip":
|
||||
"Yönlendirici başlangıcından yerleşme sonrası ilk boyamaya kadar ölçülen, bir oturum sayfasına dokunan son tamamlanmış rota geçişi.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Son 5 saniyedeki hareketli saniye başına kare ortalaması.",
|
||||
"debugBar.fps.tip": "Son 5 saniyedeki kayan saniye başına kare sayısı.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Son 5 saniyedeki en kötü kare süresi.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
@@ -1085,14 +1078,14 @@ export const dict = {
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Mevcut uygulama ömrü için kümülatif düzen kayması.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Kullanılan JS yığınının yığın sınırına oranı. Yalnızca Chromium.",
|
||||
"debugBar.mem.tip": "Kullanılan JS yığınının yığın sınırına oranı: {{used}} / {{limit}}.",
|
||||
"debugBar.mem.tipUnavailable": "Kullanılan JS yığını vs yığın sınırı. Yalnızca Chromium.",
|
||||
"debugBar.mem.tip": "Kullanılan JS yığını vs yığın sınırı. {{limit}} içinde {{used}}.",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Boşluk",
|
||||
"common.key.backspace": "Geri Al",
|
||||
"common.key.backspace": "Geri",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
|
||||
+34
-49
@@ -102,28 +102,26 @@ export const dict = {
|
||||
"dialog.provider.empty": "Провайдерів не знайдено",
|
||||
"dialog.provider.group.popular": "Популярні",
|
||||
"dialog.provider.group.other": "Інші",
|
||||
"dialog.provider.custom.label": "Користувацький провайдер, сумісний з OpenAI",
|
||||
"dialog.provider.tag.recommended": "Рекомендовані",
|
||||
"dialog.provider.opencode.note": "Відібрані моделі, включаючи Claude, GPT, Gemini та інші",
|
||||
"dialog.provider.opencode.tagline": "Надійні оптимізовані моделі",
|
||||
"dialog.provider.opencodeGo.tagline": "Недорога підписка для всіх",
|
||||
"dialog.provider.anthropic.note": "Прямий доступ до моделей Claude, включаючи Pro та Max",
|
||||
"dialog.provider.copilot.note": "Моделі ШІ для допомоги в кодуванні через GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Моделі GPT для швидких і універсальних завдань ШІ",
|
||||
"dialog.provider.copilot.note": "Моделі AI для допомоги в кодуванні через GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Моделі GPT для швидких і універсальних завдань AI",
|
||||
"dialog.provider.google.note": "Моделі Gemini для швидких структурованих відповідей",
|
||||
"dialog.provider.openrouter.note": "Доступ до всіх підтримуваних моделей від одного провайдера",
|
||||
"dialog.provider.vercel.note": "Уніфікований доступ до моделей ШІ з інтелектуальною маршрутизацією",
|
||||
"dialog.provider.vercel.note": "Уніфікований доступ до моделей AI з інтелектуальною маршрутизацією",
|
||||
|
||||
"dialog.model.select.title": "Вибрати модель",
|
||||
"dialog.model.search.placeholder": "Пошук моделей",
|
||||
"dialog.model.empty": "Моделей не знайдено",
|
||||
"dialog.model.empty": "Немає результатів моделей",
|
||||
"dialog.model.manage": "Керувати моделями",
|
||||
"dialog.model.manage.description": "Налаштуйте, які моделі відображатимуться у виборі моделей.",
|
||||
"dialog.model.manage.provider.toggle": "Перемкнути всі моделі {{provider}}",
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Безкоштовні моделі від OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Додати більше моделей від популярних провайдерів",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Переглянути ще понад 70 провайдерів",
|
||||
|
||||
"dialog.provider.viewAll": "Показати більше провайдерів",
|
||||
|
||||
@@ -170,7 +168,7 @@ export const dict = {
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Малі літери, цифри, дефіси або підкреслення",
|
||||
"provider.custom.field.name.label": "Відображувана назва",
|
||||
"provider.custom.field.name.placeholder": "Мій провайдер ШІ",
|
||||
"provider.custom.field.name.placeholder": "Мій AI Провайдер",
|
||||
"provider.custom.field.baseURL.label": "Базовий URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Ключ API",
|
||||
@@ -191,7 +189,7 @@ export const dict = {
|
||||
"provider.custom.headers.value.placeholder": "значення",
|
||||
"provider.custom.headers.remove": "Видалити заголовок",
|
||||
"provider.custom.headers.add": "Додати заголовок",
|
||||
"provider.custom.error.providerID.required": "ID провайдера обов'язковий",
|
||||
"provider.custom.error.providerID.required": "ID провайдера обов'язкове",
|
||||
"provider.custom.error.providerID.format": "Використовуйте малі літери, цифри, дефіси або підкреслення",
|
||||
"provider.custom.error.providerID.exists": "ID провайдера вже існує",
|
||||
"provider.custom.error.name.required": "Відображувана назва обов'язкова",
|
||||
@@ -301,7 +299,6 @@ export const dict = {
|
||||
"prompt.action.stop": "Зупинити",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Непідтримуване вкладення",
|
||||
"prompt.toast.attachmentDuplicate.title": "Цей файл уже завантажено",
|
||||
"prompt.toast.pasteUnsupported.description": "Сюди можна прикріплювати лише зображення, PDF або текстові файли.",
|
||||
"prompt.toast.modelAgentRequired.title": "Виберіть агента та модель",
|
||||
"prompt.toast.modelAgentRequired.description": "Виберіть агента та модель перед надсиланням запиту.",
|
||||
@@ -316,7 +313,7 @@ export const dict = {
|
||||
"dialog.mcp.description": "{{enabled}} з {{total}} увімкнено",
|
||||
"dialog.mcp.empty": "MCP не налаштовано",
|
||||
|
||||
"dialog.lsp.empty": "Сервери LSP автоматично виявляються за типами файлів",
|
||||
"dialog.lsp.empty": "LSP автоматично виявлені за типами файлів",
|
||||
"dialog.plugins.empty": "Плагіни налаштовані в opencode.json",
|
||||
|
||||
"mcp.status.connected": "підключено",
|
||||
@@ -335,8 +332,8 @@ export const dict = {
|
||||
"dialog.directory.parent": "Батьківська папка",
|
||||
"dialog.directory.readError": "Не вдалося прочитати цю папку",
|
||||
|
||||
"app.server.unreachable": "Не вдалося зв'язатися із {{server}}",
|
||||
"app.server.retrying": "Автоматична повторна спроба...",
|
||||
"app.server.unreachable": "Не вдалося досягти {{server}}",
|
||||
"app.server.retrying": "Автоматичне повторення...",
|
||||
"app.server.otherServers": "Інші сервери",
|
||||
|
||||
"dialog.server.title": "Сервери",
|
||||
@@ -366,7 +363,7 @@ export const dict = {
|
||||
|
||||
"dialog.server.menu.edit": "Редагувати",
|
||||
"dialog.server.menu.default": "Встановити за замовчуванням",
|
||||
"dialog.server.menu.defaultRemove": "Скасувати використання за замовчуванням",
|
||||
"dialog.server.menu.defaultRemove": "Видалити за замовчуванням",
|
||||
"dialog.server.menu.delete": "Видалити",
|
||||
"dialog.server.current": "Поточний сервер",
|
||||
"dialog.server.status.default": "За замовчуванням",
|
||||
@@ -468,7 +465,7 @@ export const dict = {
|
||||
"context.breakdown.other": "Інше",
|
||||
|
||||
"context.systemPrompt.title": "Системний запит",
|
||||
"context.rawMessages.title": "Необроблені повідомлення",
|
||||
"context.rawMessages.title": "Сировинні повідомлення",
|
||||
|
||||
"context.stats.session": "Сесія",
|
||||
"context.stats.messages": "Повідомлення",
|
||||
@@ -562,14 +559,14 @@ export const dict = {
|
||||
"error.page.details.label": "Деталі помилки",
|
||||
"error.page.action.restart": "Перезапустити",
|
||||
"error.page.action.report": "Повідомити про помилку",
|
||||
"error.page.action.reported": "Про помилку повідомлено",
|
||||
"error.page.action.reported": "Помилку повідомлено",
|
||||
"error.page.action.exportLogs": "Експортувати журнали",
|
||||
"error.page.action.checking": "Перевірка...",
|
||||
"error.page.action.checkUpdates": "Перевірити оновлення",
|
||||
"error.page.action.updateTo": "Оновити до {{version}}",
|
||||
"error.page.circular": "[Циклічне]",
|
||||
"error.page.report.prefix": "Будь ласка, повідомте про цю помилку команді OpenCode",
|
||||
"error.page.report.discord": "у Discord",
|
||||
"error.page.report.discord": "на Discord",
|
||||
"error.page.version": "Версія: {{version}}",
|
||||
|
||||
"error.dev.rootNotFound":
|
||||
@@ -589,7 +586,7 @@ export const dict = {
|
||||
"error.chain.causedBy": "Причина:",
|
||||
"error.chain.apiError": "Помилка API",
|
||||
"error.chain.status": "Статус: {{status}}",
|
||||
"error.chain.retryable": "Можна повторити: {{retryable}}",
|
||||
"error.chain.retryable": "Повторювано: {{retryable}}",
|
||||
"error.chain.responseBody": "Тіло відповіді:\n{{body}}",
|
||||
"error.chain.didYouMean": "Можливо, ви мали на увазі: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Модель не знайдено: {{provider}}/{{model}}",
|
||||
@@ -665,7 +662,7 @@ export const dict = {
|
||||
"session.files.selectToOpen": "Виберіть файл для відкриття",
|
||||
"session.files.all": "Усі файли",
|
||||
"session.files.empty": "Немає файлів",
|
||||
"session.files.binaryContent": "Двійковий файл (вміст неможливо відобразити)",
|
||||
"session.files.binaryContent": "Бінарний файл (вміст не може бути відображено)",
|
||||
|
||||
"session.messages.renderEarlier": "Відобразити раніші повідомлення",
|
||||
"session.messages.loadingEarlier": "Завантаження раніших повідомлень...",
|
||||
@@ -682,20 +679,14 @@ export const dict = {
|
||||
"session.question.minimize": "Згорнути запитання",
|
||||
"session.question.restore": "Відновити запитання",
|
||||
"session.question.pending.one": "{{count}} запитання очікує відповіді",
|
||||
"session.question.pending.few": "{{count}} запитання очікують відповіді",
|
||||
"session.question.pending.many": "{{count}} запитань очікують відповіді",
|
||||
"session.question.pending.other": "Запитання, що очікують відповіді: {{count}}",
|
||||
"session.followupDock.summary.one": "{{count}} повідомлення в черзі",
|
||||
"session.followupDock.summary.few": "{{count}} повідомлення в черзі",
|
||||
"session.followupDock.summary.many": "{{count}} повідомлень у черзі",
|
||||
"session.followupDock.summary.other": "{{count}} повідомлень у черзі",
|
||||
"session.followupDock.sendNow": "Надіслати зараз",
|
||||
"session.followupDock.edit": "Редагувати",
|
||||
"session.followupDock.collapse": "Згорнути повідомлення в черзі",
|
||||
"session.followupDock.expand": "Розгорнути повідомлення в черзі",
|
||||
"session.revertDock.summary.one": "{{count}} скасоване повідомлення",
|
||||
"session.revertDock.summary.few": "{{count}} скасовані повідомлення",
|
||||
"session.revertDock.summary.many": "{{count}} скасованих повідомлень",
|
||||
"session.revertDock.summary.other": "{{count}} скасованих повідомлень",
|
||||
"session.revertDock.collapse": "Згорнути скасовані повідомлення",
|
||||
"session.revertDock.expand": "Розгорнути скасовані повідомлення",
|
||||
@@ -723,10 +714,7 @@ export const dict = {
|
||||
"session.header.open.menu": "Параметри відкриття",
|
||||
"session.header.open.copyPath": "Копіювати шлях",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Файловий провідник",
|
||||
"session.header.reveal.finder": "Показати у Finder",
|
||||
"session.header.reveal.fileExplorer": "Показати у Файловому провіднику",
|
||||
"session.header.reveal.containingFolder": "Відкрити папку розташування",
|
||||
"session.header.open.fileExplorer": "Провідник файлів",
|
||||
"session.header.open.fileManager": "Файловий менеджер",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -781,7 +769,7 @@ export const dict = {
|
||||
"common.dismiss": "Відхилити",
|
||||
"common.moreCountSuffix": " (ще {{count}})",
|
||||
"common.requestFailed": "Запит не виконано",
|
||||
"common.moreOptions": "Більше параметрів",
|
||||
"common.moreOptions": "Більше опцій",
|
||||
"common.learnMore": "Дізнатися більше",
|
||||
"common.rename": "Перейменувати",
|
||||
"common.reset": "Скинути",
|
||||
@@ -854,10 +842,10 @@ export const dict = {
|
||||
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
|
||||
"settings.section.desktop": "Десктопний застосунок",
|
||||
"settings.section.desktop": "Робочий стіл",
|
||||
"settings.section.server": "Сервер",
|
||||
"settings.tab.general": "Загальні",
|
||||
"settings.tab.shortcuts": "Клавіатурні скорочення",
|
||||
"settings.tab.shortcuts": "Скорочення",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "Інтеграція WSL",
|
||||
"settings.desktop.wsl.description": "Запускати сервер OpenCode всередині WSL на Windows.",
|
||||
@@ -875,7 +863,7 @@ export const dict = {
|
||||
"settings.general.row.shell.title": "Командна оболонка термінала",
|
||||
"settings.general.row.shell.description":
|
||||
"Виберіть оболонку для термінала. Сумісні оболонки також використовуються для викликів інструментів агента.",
|
||||
"settings.general.row.shell.autoDefault": "Автоматично (за замовчуванням)",
|
||||
"settings.general.row.shell.autoDefault": "Авто (за замовчуванням)",
|
||||
"settings.general.row.shell.terminalOnly": "тільки термінал",
|
||||
"settings.general.row.appearance.title": "Зовнішній вигляд",
|
||||
"settings.general.row.appearance.description": "Налаштуйте вигляд OpenCode на вашому пристрої",
|
||||
@@ -896,21 +884,18 @@ export const dict = {
|
||||
"settings.general.row.showFileTree.title": "Дерево файлів",
|
||||
"settings.general.row.showFileTree.description": "Показувати панель дерева файлів у сесіях",
|
||||
"settings.general.row.showNavigation.title": "Елементи навігації",
|
||||
"settings.general.row.showNavigation.description":
|
||||
"Показувати кнопки назад і вперед на панелі заголовка десктопного застосунку",
|
||||
"settings.general.row.showNavigation.description": "Показувати кнопки назад і вперед у заголовку робочого столу",
|
||||
"settings.general.row.showSearch.title": "Палітра команд",
|
||||
"settings.general.row.showSearch.description": "Показувати кнопку пошуку та палітри команд на панелі заголовка",
|
||||
"settings.general.row.showSearch.description": "Показувати кнопку пошуку та палітри команд у заголовку",
|
||||
"settings.general.row.showTerminal.title": "Термінал",
|
||||
"settings.general.row.showTerminal.description":
|
||||
"Показувати кнопку термінала на панелі заголовка десктопного застосунку",
|
||||
"settings.general.row.showTerminal.description": "Показувати кнопку термінала в заголовку робочого столу",
|
||||
"settings.general.row.showStatus.title": "Статус сервера",
|
||||
"settings.general.row.showStatus.description": "Показувати кнопку стану сервера на панелі заголовка",
|
||||
"settings.general.row.showStatus.description": "Показувати кнопку статусу сервера в заголовку",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Нижня навігація",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Розмістити панель заголовка та вкладки сесії внизу екрана на мобільних пристроях",
|
||||
"settings.general.row.showCustomAgents.title": "Показувати агента",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Перемикатися між агентами в редакторі запиту. Якщо приховано, типовим є агент Build.",
|
||||
"Розмістити заголовок і вкладки сесії внизу екрана на мобільних пристроях",
|
||||
"settings.general.row.showCustomAgents.title": "Користувацькі агенти",
|
||||
"settings.general.row.showCustomAgents.description": "Показувати вибір агента в редакторі запиту",
|
||||
"settings.general.row.reasoningSummaries.title": "Показувати підсумки мислення",
|
||||
"settings.general.row.reasoningSummaries.description": "Відображати підсумки мислення моделі на часовій шкалі",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Розгортати частини інструменту оболонки",
|
||||
@@ -1010,16 +995,16 @@ export const dict = {
|
||||
"settings.general.sounds.errors.title": "Помилки",
|
||||
"settings.general.sounds.errors.description": "Відтворювати звук, коли виникає помилка",
|
||||
|
||||
"settings.shortcuts.title": "Клавіатурні скорочення",
|
||||
"settings.shortcuts.reset.button": "Відновити стандартні",
|
||||
"settings.shortcuts.reset.toast.title": "Клавіатурні скорочення відновлено",
|
||||
"settings.shortcuts.reset.toast.description": "Стандартні клавіатурні скорочення відновлено.",
|
||||
"settings.shortcuts.conflict.title": "Клавіатурне скорочення вже використовується",
|
||||
"settings.shortcuts.title": "Скорочення клавіш",
|
||||
"settings.shortcuts.reset.button": "Скинути до стандартних",
|
||||
"settings.shortcuts.reset.toast.title": "Скорочення скинуто",
|
||||
"settings.shortcuts.reset.toast.description": "Скорочення клавіш були скинуті до стандартних.",
|
||||
"settings.shortcuts.conflict.title": "Скорочення вже використовується",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} вже призначено для {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Не призначено",
|
||||
"settings.shortcuts.pressKeys": "Натисніть клавіші",
|
||||
"settings.shortcuts.search.placeholder": "Пошук клавіатурних скорочень",
|
||||
"settings.shortcuts.search.empty": "Клавіатурних скорочень не знайдено",
|
||||
"settings.shortcuts.search.placeholder": "Пошук скорочень",
|
||||
"settings.shortcuts.search.empty": "Скорочень не знайдено",
|
||||
|
||||
"settings.shortcuts.group.general": "Загальні",
|
||||
"settings.shortcuts.group.session": "Сесія",
|
||||
|
||||
@@ -1,1019 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "تجویز کردہ",
|
||||
"command.category.view": "دیکھیں",
|
||||
"command.category.project": "پروجیکٹ",
|
||||
"command.category.provider": "فراہم کنندہ",
|
||||
"command.category.server": "سرور",
|
||||
"command.category.session": "سیشن",
|
||||
"command.category.theme": "تھیم",
|
||||
"command.category.language": "زبان",
|
||||
"command.category.file": "فائل",
|
||||
"command.category.context": "سیاق و سباق",
|
||||
"command.category.terminal": "ٹرمینل",
|
||||
"command.category.model": "ماڈل",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "ایجنٹ",
|
||||
"command.category.permissions": "اجازتیں",
|
||||
"command.category.workspace": "کام کی جگہ",
|
||||
"command.category.settings": "ترتیبات",
|
||||
"theme.scheme.system": "سسٹم",
|
||||
"theme.scheme.light": "روشن",
|
||||
"theme.scheme.dark": "تاریک",
|
||||
"command.sidebar.toggle": "سائیڈ بار دکھائیں یا چھپائیں",
|
||||
"command.project.open": "پروجیکٹ کھولیں۔",
|
||||
"command.project.previous": "پچھلا پروجیکٹ",
|
||||
"command.project.next": "اگلا پروجیکٹ",
|
||||
"command.project.index": "پروجیکٹ {{index}} پر سوئچ کریں۔",
|
||||
"command.provider.connect": "فراہم کنندہ منسلک کریں",
|
||||
"command.server.switch": "سرور تبدیل کریں",
|
||||
"command.settings.open": "ترتیبات کھولیں۔",
|
||||
"command.session.previous": "پچھلا سیشن",
|
||||
"command.session.next": "اگلا سیشن",
|
||||
"command.session.previous.unseen": "پچھلا بغیر پڑھا ہوا سیشن",
|
||||
"command.session.next.unseen": "اگلا بغیر پڑھا ہوا سیشن",
|
||||
"command.session.archive": "سیشن آرکائیو کریں",
|
||||
"command.palette": "کمانڈ پیلیٹ",
|
||||
"command.theme.cycle": "اگلی تھیم منتخب کریں",
|
||||
"command.theme.set": "تھیم استعمال کریں: {{theme}}",
|
||||
"command.theme.scheme.cycle": "اگلی رنگ سکیم منتخب کریں",
|
||||
"command.theme.scheme.set": "رنگ سکیم استعمال کریں: {{scheme}}",
|
||||
"command.language.cycle": "اگلی زبان منتخب کریں",
|
||||
"command.language.set": "زبان استعمال کریں: {{language}}",
|
||||
"command.session.new": "نیا سیشن",
|
||||
"command.file.open": "فائل کھولیں۔",
|
||||
"command.tab.close": "ٹیب بند کریں۔",
|
||||
"command.tab.reopenClosed": "بند ٹیب کو دوبارہ کھولیں۔",
|
||||
"command.context.addSelection": "سیاق و سباق میں انتخاب شامل کریں۔",
|
||||
"command.context.addSelection.description": "موجودہ فائل سے منتخب لائنیں شامل کریں۔",
|
||||
"command.input.focus": "ان پٹ پر توجہ دیں",
|
||||
"command.terminal.toggle": "ٹرمینل دکھائیں یا چھپائیں",
|
||||
"command.fileTree.toggle": "فائل ٹری دکھائیں یا چھپائیں",
|
||||
"command.review.toggle": "جائزہ دکھائیں یا چھپائیں",
|
||||
"command.terminal.new": "نیا ٹرمینل",
|
||||
"command.terminal.new.description": "ایک نیا ٹرمینل ٹیب بنائیں",
|
||||
"command.steps.toggle": "اقدامات دکھائیں یا چھپائیں",
|
||||
"command.steps.toggle.description": "موجودہ پیغام کے لیے اقدامات دکھائیں یا چھپائیں۔",
|
||||
"command.message.previous": "پچھلا پیغام",
|
||||
"command.message.previous.description": "صارف کے پچھلے پیغام پر جائیں",
|
||||
"command.message.next": "اگلا پیغام",
|
||||
"command.message.next.description": "صارف کے اگلے پیغام پر جائیں",
|
||||
"command.model.choose": "ماڈل منتخب کریں۔",
|
||||
"command.model.choose.description": "ایک مختلف ماڈل منتخب کریں۔",
|
||||
"command.mcp.toggle": "MCPs فعال یا غیر فعال کریں",
|
||||
"command.mcp.toggle.description": "MCPs فعال یا غیر فعال کریں",
|
||||
"command.agent.cycle": "اگلا ایجنٹ منتخب کریں",
|
||||
"command.agent.cycle.description": "اگلے ایجنٹ پر جائیں۔",
|
||||
"command.agent.cycle.reverse": "پچھلا ایجنٹ منتخب کریں",
|
||||
"command.agent.cycle.reverse.description": "پچھلے ایجنٹ پر جائیں۔",
|
||||
"command.model.variant.cycle": "سوچنے کی محنت کی سطح تبدیل کریں",
|
||||
"command.model.variant.cycle.description": "محنت کی اگلی سطح پر جائیں۔",
|
||||
"command.prompt.mode.shell": "شیل",
|
||||
"command.prompt.mode.normal": "پرامپٹ",
|
||||
"command.permissions.autoaccept.enable": "اجازتیں خود بخود قبول کریں۔",
|
||||
"command.permissions.autoaccept.disable": "اجازتوں کو خودکار طور پر قبول کرنا بند کریں۔",
|
||||
"command.workspace.toggle": "ورک اسپیسز فعال یا غیر فعال کریں",
|
||||
"command.workspace.toggle.description": "سائڈبار میں متعدد ورک اسپیس کو فعال یا غیر فعال کریں۔",
|
||||
"command.session.undo": "کالعدم",
|
||||
"command.session.undo.description": "آخری پیغام کو کالعدم کریں۔",
|
||||
"command.session.redo": "دوبارہ کریں۔",
|
||||
"command.session.redo.description": "آخری کالعدم پیغام کو دوبارہ کریں۔",
|
||||
"command.session.compact": "سیشن مختصر کریں",
|
||||
"command.session.compact.description": "سیاق و سباق کے سائز کو کم کرنے کے لیے سیشن کا خلاصہ کریں۔",
|
||||
"command.session.fork": "پیغام سے نئی شاخ بنائیں",
|
||||
"command.session.fork.description": "پچھلے پیغام سے ایک نیا سیشن بنائیں",
|
||||
"command.session.share": "سیشن شیئر کریں۔",
|
||||
"command.session.share.description": "اس سیشن کا اشتراک کریں اور URL کو کلپ بورڈ میں کاپی کریں۔",
|
||||
"command.session.unshare": "سیشن کا اشتراک ختم کریں۔",
|
||||
"command.session.unshare.description": "اس سیشن کا اشتراک کرنا بند کریں۔",
|
||||
"palette.search.placeholder": "فائلیں، کمانڈز اور سیشنز تلاش کریں۔",
|
||||
"palette.search.placeholder.home": "کمانڈز اور سیشن تلاش کریں۔",
|
||||
"palette.empty": "کوئی نتیجہ نہیں ملا",
|
||||
"palette.group.commands": "کمانڈز",
|
||||
"palette.group.files": "فائلیں",
|
||||
"dialog.provider.search.placeholder": "فراہم کنندگان کو تلاش کریں۔",
|
||||
"dialog.provider.empty": "کوئی فراہم کنندہ نہیں ملا",
|
||||
"dialog.provider.group.popular": "مقبول",
|
||||
"dialog.provider.group.other": "دیگر",
|
||||
"dialog.provider.custom.label": "حسب ضرورت OpenAI سے ہم آہنگ فراہم کنندہ",
|
||||
"dialog.provider.tag.recommended": "تجویز کردہ",
|
||||
"dialog.provider.opencode.note": "کیوریٹ شدہ ماڈلز بشمول Claude، GPT، Gemini اور مزید",
|
||||
"dialog.provider.opencode.tagline": "قابل اعتماد آپٹمائزڈ ماڈلز",
|
||||
"dialog.provider.opencodeGo.tagline": "سب کے لیے کم لاگت کی رکنیت",
|
||||
"dialog.provider.anthropic.note": "پرو اور میکس سمیت Claude ماڈلز تک براہ راست رسائی",
|
||||
"dialog.provider.copilot.note": "GitHub Copilot کے ذریعے کوڈنگ امداد کے لیے AI ماڈلز",
|
||||
"dialog.provider.openai.note": "تیز رفتار اور مؤثر عمومی AI کاموں کے لیے GPT ماڈلز",
|
||||
"dialog.provider.google.note": "تیز، منظم جوابات کے لیے Gemini ماڈل",
|
||||
"dialog.provider.openrouter.note": "ایک فراہم کنندہ سے تمام تعاون یافتہ ماڈلز تک رسائی حاصل کریں۔",
|
||||
"dialog.provider.vercel.note": "سمارٹ روٹنگ کے ساتھ AI ماڈلز تک متحد رسائی",
|
||||
"dialog.model.select.title": "ماڈل منتخب کریں۔",
|
||||
"dialog.model.search.placeholder": "ماڈلز تلاش کریں۔",
|
||||
"dialog.model.empty": "کوئی ماڈل نہیں ملا",
|
||||
"dialog.model.manage": "ماڈلز کا نظم کریں۔",
|
||||
"dialog.model.manage.description": "اپنی مرضی کے مطابق بنائیں کہ کون سے ماڈل ماڈل سلیکٹر میں نظر آتے ہیں۔",
|
||||
"dialog.model.manage.provider.toggle": "تمام {{provider}} ماڈلز کو ٹوگل کریں۔",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode کے ذریعہ فراہم کردہ مفت ماڈلز",
|
||||
"dialog.model.unpaid.addMore.title": "مشہور فراہم کنندگان سے مزید ماڈلز شامل کریں۔",
|
||||
"dialog.model.unpaid.viewMoreProviders": "مزید 70 فراہم کنندگان دیکھیں",
|
||||
"dialog.provider.viewAll": "مزید فراہم کنندگان دکھائیں۔",
|
||||
"provider.connect.title": "{{provider}} سے منسلک ہوں",
|
||||
"provider.connect.title.anthropicProMax": "Claude Pro/Max کے ساتھ لاگ ان کریں۔",
|
||||
"provider.connect.selectMethod": "{{provider}} کے لیے لاگ ان کا طریقہ منتخب کریں۔",
|
||||
"provider.connect.method.apiKey": "API کلید",
|
||||
"provider.connect.status.inProgress": "اجازت حاصل کی جا رہی ہے...",
|
||||
"provider.connect.status.waiting": "اجازت کا انتظار ہے...",
|
||||
"provider.connect.status.failed": "اجازت حاصل نہیں ہو سکی: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"اپنا اکاؤنٹ منسلک کرنے اور OpenCode میں {{provider}} ماڈلز استعمال کرنے کے لیے اپنی {{provider}} API کلید درج کریں۔",
|
||||
"provider.connect.apiKey.label": "{{provider}} API کلید",
|
||||
"provider.connect.apiKey.placeholder": "API کلید",
|
||||
"provider.connect.apiKey.required": "API کلید درکار ہے۔",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen آپ کو کوڈنگ ایجنٹوں کے لیے قابل اعتماد اصلاح شدہ ماڈلز کے کیوریٹڈ سیٹ تک رسائی فراہم کرتا ہے۔",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"ایک واحد API کلید کے ساتھ آپ Claude، GPT، Gemini، GLM اور مزید ماڈلز تک رسائی حاصل کریں گے۔",
|
||||
"provider.connect.opencodeZen.visit.prefix": "ملاحظہ کریں ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " اور اپنی API کلید حاصل کریں۔",
|
||||
"provider.connect.oauth.code.visit.prefix": "ملاحظہ کریں ",
|
||||
"provider.connect.oauth.code.visit.link": "یہ لنک",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
"، اپنا اجازت نامہ حاصل کریں، اکاؤنٹ منسلک کریں اور OpenCode میں {{provider}} ماڈلز استعمال کریں۔",
|
||||
"provider.connect.oauth.code.label": "{{method}} اجازت کا کوڈ",
|
||||
"provider.connect.oauth.code.placeholder": "اجازت کا کوڈ",
|
||||
"provider.connect.oauth.code.required": "اجازت کا کوڈ درکار ہے۔",
|
||||
"provider.connect.oauth.code.invalid": "غلط اجازت کا کوڈ",
|
||||
"provider.connect.oauth.auto.visit.prefix": "ملاحظہ کریں ",
|
||||
"provider.connect.oauth.auto.visit.link": "یہ لنک",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" اور نیچے دیا گیا کوڈ درج کرکے اپنا اکاؤنٹ منسلک کریں اور OpenCode میں {{provider}} ماڈلز استعمال کریں۔",
|
||||
"provider.connect.oauth.auto.confirmationCode": "تصدیقی کوڈ",
|
||||
"provider.connect.toast.connected.title": "{{provider}} منسلک ہے۔",
|
||||
"provider.connect.toast.connected.description": "{{provider}} ماڈل اب استعمال کے لیے دستیاب ہیں۔",
|
||||
"provider.custom.title": "اپنی مرضی کے مطابق فراہم کنندہ",
|
||||
"provider.custom.description.prefix": "OpenAI سے ہم آہنگ فراہم کنندہ ترتیب دیں۔ دیکھیے ",
|
||||
"provider.custom.description.link": "فراہم کنندہ کی تشکیل کی دستاویزات",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "فراہم کنندہ کی شناخت",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "چھوٹے حروف، نمبر، ہائفن، یا انڈر سکور",
|
||||
"provider.custom.field.name.label": "ڈسپلے کا نام",
|
||||
"provider.custom.field.name.placeholder": "میرا AI فراہم کنندہ",
|
||||
"provider.custom.field.baseURL.label": "بیس URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API کلید",
|
||||
"provider.custom.field.apiKey.placeholder": "API کلید",
|
||||
"provider.custom.field.apiKey.description":
|
||||
"اختیاری۔ اگر آپ ہیڈرز کے ذریعے توثیق کا انتظام کرتے ہیں تو اسے خالی چھوڑ دیں۔",
|
||||
"provider.custom.models.label": "ماڈلز",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "نام",
|
||||
"provider.custom.models.name.placeholder": "ڈسپلے کا نام",
|
||||
"provider.custom.models.remove": "ماڈل کو ہٹا دیں۔",
|
||||
"provider.custom.models.add": "ماڈل شامل کریں۔",
|
||||
"provider.custom.headers.label": "ہیڈرز (اختیاری)",
|
||||
"provider.custom.headers.key.label": "ہیڈر",
|
||||
"provider.custom.headers.key.placeholder": "Header-Name",
|
||||
"provider.custom.headers.value.label": "قدر",
|
||||
"provider.custom.headers.value.placeholder": "قدر",
|
||||
"provider.custom.headers.remove": "ہیڈر کو ہٹا دیں۔",
|
||||
"provider.custom.headers.add": "ہیڈر شامل کریں۔",
|
||||
"provider.custom.error.providerID.required": "فراہم کنندہ کی شناخت درکار ہے۔",
|
||||
"provider.custom.error.providerID.format": "چھوٹے حروف، اعداد، ہائفنز، یا انڈر سکور استعمال کریں۔",
|
||||
"provider.custom.error.providerID.exists": "وہ فراہم کنندہ ID پہلے سے موجود ہے۔",
|
||||
"provider.custom.error.name.required": "ڈسپلے نام درکار ہے۔",
|
||||
"provider.custom.error.baseURL.required": "بیس URL درکار ہے۔",
|
||||
"provider.custom.error.baseURL.format": "http:// یا https:// سے شروع ہونا چاہیے",
|
||||
"provider.custom.error.required": "درکار ہے۔",
|
||||
"provider.custom.error.duplicate": "مکرر",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} منقطع ہو گیا۔",
|
||||
"provider.disconnect.toast.disconnected.description": "{{provider}} ماڈلز اب دستیاب نہیں ہیں۔",
|
||||
"model.tag.free": "مفت",
|
||||
"model.tag.latest": "تازہ ترین",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "متن",
|
||||
"model.input.image": "تصویر",
|
||||
"model.input.audio": "آڈیو",
|
||||
"model.input.video": "ویڈیو",
|
||||
"model.input.pdf": "پی ڈی ایف",
|
||||
"model.tooltip.allows": "اجازت دیتا ہے: {{inputs}}",
|
||||
"model.tooltip.context.label": "سیاق و سباق",
|
||||
"model.tooltip.inputs": "ان پٹ",
|
||||
"model.tooltip.model": "ماڈل",
|
||||
"model.tooltip.provider": "فراہم کنندہ",
|
||||
"model.tooltip.reasoning": "استدلال",
|
||||
"model.tooltip.reasoning.allowed": "استدلال کی اجازت دیتا ہے۔",
|
||||
"model.tooltip.reasoning.none": "کوئی استدلال نہیں۔",
|
||||
"model.tooltip.context": "سیاق و سباق کی حد {{limit}}",
|
||||
"common.search.placeholder": "تلاش کریں۔",
|
||||
"common.goBack": "پیچھے جائیں",
|
||||
"common.goForward": "آگے جائیں",
|
||||
"common.loading": "لوڈ ہو رہا ہے۔",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "منسوخ کریں۔",
|
||||
"common.clear": "صاف",
|
||||
"common.open": "کھولیں۔",
|
||||
"common.connect": "جڑیں۔",
|
||||
"common.disconnect": "منقطع کریں",
|
||||
"common.continue": "جاری رکھیں",
|
||||
"common.submit": "جمع کروائیں۔",
|
||||
"common.save": "محفوظ کریں۔",
|
||||
"common.saving": "محفوظ کر رہا ہے...",
|
||||
"common.default": "طے شدہ",
|
||||
"common.attachment": "منسلکہ",
|
||||
"prompt.placeholder.shell": "شیل کمانڈ درج کریں... {{example}}",
|
||||
"prompt.placeholder.normal": 'کچھ بھی پوچھیں... "{{example}}"',
|
||||
"prompt.placeholder.simple": "کچھ بھی پوچھیں...",
|
||||
"prompt.placeholder.summarizeComments": "تبصروں کا خلاصہ کریں…",
|
||||
"prompt.placeholder.summarizeComment": "تبصرہ کا خلاصہ کریں…",
|
||||
"prompt.mode.shell": "شیل",
|
||||
"prompt.mode.normal": "پرامپٹ",
|
||||
"prompt.mode.shell.exit": "باہر نکلنے کے لیے esc",
|
||||
"session.child.promptDisabled": "ذیلی ایجنٹ کے سیشنز میں پرامپٹ نہیں دیا جا سکتا۔",
|
||||
"session.child.backToParent": "مرکزی سیشن پر واپس جائیں۔",
|
||||
"prompt.example.1": "کوڈ بیس میں TODO کو درست کریں۔",
|
||||
"prompt.example.2": "اس پروجیکٹ کا ٹیک اسٹیک کیا ہے؟",
|
||||
"prompt.example.3": "ٹوٹے ہوئے ٹیسٹوں کو درست کریں۔",
|
||||
"prompt.example.4": "وضاحت کریں کہ تصدیق کیسے کام کرتی ہے۔",
|
||||
"prompt.example.5": "سیکیورٹی کی کمزوریوں کو تلاش کریں اور ٹھیک کریں۔",
|
||||
"prompt.example.6": "صارف کی خدمت کے لیے یونٹ ٹیسٹ شامل کریں۔",
|
||||
"prompt.example.7": "مزید پڑھنے کے قابل ہونے کے لیے اس فنکشن کو ریفیکٹر کریں۔",
|
||||
"prompt.example.8": "اس غلطی کا کیا مطلب ہے؟",
|
||||
"prompt.example.9": "اس مسئلے کو ٹھیک کرنے میں میری مدد کریں۔",
|
||||
"prompt.example.10": "API دستاویزات بنائیں",
|
||||
"prompt.example.11": "ڈیٹا بیس کے سوالات کو بہتر بنائیں",
|
||||
"prompt.example.12": "ان پٹ کی توثیق شامل کریں۔",
|
||||
"prompt.example.13": "اس کے لیے ایک نیا جزو بنائیں...",
|
||||
"prompt.example.14": "میں اس پروجیکٹ کو کیسے تعینات کروں؟",
|
||||
"prompt.example.15": "بہترین طریقوں کے لیے میرے کوڈ کا جائزہ لیں۔",
|
||||
"prompt.example.16": "اس فنکشن میں ایرر ہینڈلنگ شامل کریں۔",
|
||||
"prompt.example.17": "اس ریجیکس پیٹرن کی وضاحت کریں۔",
|
||||
"prompt.example.18": "اسے TypeScript میں تبدیل کریں۔",
|
||||
"prompt.example.19": "پورے کوڈ بیس میں لاگنگ شامل کریں۔",
|
||||
"prompt.example.20": "کون سے انحصار پرانے ہیں؟",
|
||||
"prompt.example.21": "مائیگریشن اسکرپٹ لکھنے میں میری مدد کریں۔",
|
||||
"prompt.example.22": "اس اینڈ پوائنٹ کے لیے کیشنگ نافذ کریں۔",
|
||||
"prompt.example.23": "اس فہرست میں صفحہ بندی شامل کریں۔",
|
||||
"prompt.example.24": "اس کے لیے CLI کمانڈ بنائیں...",
|
||||
"prompt.example.25": "ماحولیاتی متغیرات یہاں کیسے کام کرتے ہیں؟",
|
||||
"prompt.popover.emptyResults": "کوئی مماثل نتائج نہیں ہیں۔",
|
||||
"prompt.popover.emptyCommands": "کوئی مماثل حکم نہیں ہے۔",
|
||||
"prompt.dropzone.label": "تصاویر، PDFs، یا ٹیکسٹ فائلیں یہاں ڈراپ کریں۔",
|
||||
"prompt.dropzone.file.label": "فائل کو @mention کرنے کے لیے یہاں ڈراپ کریں",
|
||||
"prompt.slash.badge.custom": "اپنی مرضی کے مطابق",
|
||||
"prompt.slash.badge.skill": "مہارت",
|
||||
"prompt.slash.badge.mcp": "ایم سی پی",
|
||||
"prompt.context.active": "فعال",
|
||||
"prompt.context.includeActiveFile": "فعال فائل شامل کریں۔",
|
||||
"prompt.context.removeActiveFile": "سیاق و سباق سے فعال فائل کو ہٹا دیں۔",
|
||||
"prompt.context.removeFile": "سیاق و سباق سے فائل کو ہٹا دیں۔",
|
||||
"prompt.action.attachFile": "فائلیں شامل کریں۔",
|
||||
"prompt.menu.addImagesAndFiles": "فائلیں اور مزید شامل کریں۔",
|
||||
"prompt.menu.imagesAndFiles": "تصاویر اور فائلیں۔",
|
||||
"prompt.menu.commands": "کمانڈز",
|
||||
"prompt.menu.context": "سیاق و سباق",
|
||||
"prompt.menu.shellCommand": "شیل کمانڈ",
|
||||
"prompt.attachment.remove": "منسلکہ کو ہٹا دیں۔",
|
||||
"prompt.action.send": "بھیجیں۔",
|
||||
"prompt.action.stop": "روکیں",
|
||||
"prompt.toast.pasteUnsupported.title": "غیر تعاون یافتہ منسلکہ",
|
||||
"prompt.toast.pasteUnsupported.description": "یہاں صرف تصاویر، PDFs، یا ٹیکسٹ فائلیں منسلک کی جا سکتی ہیں۔",
|
||||
"prompt.toast.attachmentDuplicate.title": "یہ فائل پہلے ہی اپ لوڈ ہو چکی ہے",
|
||||
"prompt.toast.modelAgentRequired.title": "ایک ایجنٹ اور ماڈل منتخب کریں۔",
|
||||
"prompt.toast.modelAgentRequired.description": "پرامپٹ بھیجنے سے پہلے ایک ایجنٹ اور ماڈل کا انتخاب کریں۔",
|
||||
"prompt.toast.worktreeCreateFailed.title": "ورک ٹری بنانے میں ناکام",
|
||||
"prompt.toast.sessionCreateFailed.title": "سیشن بنانے میں ناکام",
|
||||
"prompt.toast.shellSendFailed.title": "شیل کمانڈ بھیجنے میں ناکام",
|
||||
"prompt.toast.commandSendFailed.title": "کمانڈ بھیجنے میں ناکام",
|
||||
"prompt.toast.promptSendFailed.title": "پرامپٹ بھیجنے میں ناکام",
|
||||
"prompt.toast.promptSendFailed.description": "سیشن بازیافت کرنے سے قاصر",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "{{total}} میں سے {{enabled}} فعال",
|
||||
"dialog.mcp.empty": "کوئی MCPs کنفیگر نہیں ہے۔",
|
||||
"dialog.lsp.empty": "فائل کی اقسام سے خودکار طور پر شناخت کیے گئے LSPs",
|
||||
"dialog.plugins.empty": "opencode.json میں کنفیگر کردہ پلگ انز",
|
||||
"mcp.status.connected": "منسلک",
|
||||
"mcp.status.failed": "ناکام",
|
||||
"mcp.status.needs_auth": "توثیق درکار ہے",
|
||||
"mcp.status.disabled": "غیر فعال",
|
||||
"mcp.auth.clickToAuthenticate": "تصدیق کرنے کے لیے کلک کریں۔",
|
||||
"dialog.fork.empty": "کوئی پیغامات نہیں ہیں جن سے فورک کیا جائے۔",
|
||||
"dialog.directory.search.placeholder": "فولڈرز تلاش کریں۔",
|
||||
"dialog.directory.empty": "کوئی فولڈر نہیں ملا",
|
||||
"dialog.directory.action.selectFile": "فائل منتخب کریں۔",
|
||||
"dialog.directory.action.selectFolder": "فولڈر منتخب کریں۔",
|
||||
"dialog.directory.root": "بنیادی فولڈر",
|
||||
"dialog.directory.parent": "بالائی فولڈر",
|
||||
"dialog.directory.readError": "یہ فولڈر پڑھا نہیں جا سکا",
|
||||
"app.server.unreachable": "{{server}} تک نہیں پہنچ سکا",
|
||||
"app.server.retrying": "خودکار طور پر دوبارہ کوشش کر رہا ہے...",
|
||||
"app.server.otherServers": "دوسرے سرورز",
|
||||
"dialog.server.title": "سرورز",
|
||||
"dialog.server.description": "سوئچ کریں کہ یہ ایپ کس OpenCode سرور سے منسلک ہے۔",
|
||||
"dialog.server.search.placeholder": "سرورز تلاش کریں۔",
|
||||
"dialog.server.empty": "ابھی تک کوئی سرور نہیں ہے۔",
|
||||
"dialog.server.add.title": "سرور شامل کریں۔",
|
||||
"dialog.server.add.url": "سرور کا پتہ",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "سرور سے منسلک نہیں ہو سکا",
|
||||
"dialog.server.add.checking": "چیک کر رہا ہے...",
|
||||
"dialog.server.add.button": "سرور شامل کریں۔",
|
||||
"dialog.server.add.name": "سرور کا نام (اختیاری)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "صارف نام (اختیاری)",
|
||||
"dialog.server.add.usernamePlaceholder": "صارف نام",
|
||||
"dialog.server.add.password": "پاس ورڈ (اختیاری)",
|
||||
"dialog.server.add.passwordPlaceholder": "پاس ورڈ",
|
||||
"dialog.server.edit.title": "سرور میں ترمیم کریں۔",
|
||||
"dialog.server.default.title": "ڈیفالٹ سرور",
|
||||
"dialog.server.default.description":
|
||||
"مقامی سرور شروع کرنے کے بجائے ایپ لانچ پر اس سرور سے جڑیں۔ دوبارہ شروع کرنے کی ضرورت ہے۔",
|
||||
"dialog.server.default.none": "کوئی سرور منتخب نہیں کیا گیا۔",
|
||||
"dialog.server.default.set": "موجودہ سرور کو بطور ڈیفالٹ سیٹ کریں۔",
|
||||
"dialog.server.default.clear": "صاف کریں",
|
||||
"dialog.server.action.remove": "سرور کو ہٹا دیں۔",
|
||||
"dialog.server.menu.edit": "ترمیم کریں۔",
|
||||
"dialog.server.menu.default": "بطور ڈیفالٹ سیٹ کریں۔",
|
||||
"dialog.server.menu.defaultRemove": "ڈیفالٹ کو ہٹا دیں۔",
|
||||
"dialog.server.menu.delete": "حذف کریں۔",
|
||||
"dialog.server.current": "موجودہ سرور",
|
||||
"dialog.server.status.default": "طے شدہ",
|
||||
"wsl.server.add": "WSL سرور شامل کریں۔",
|
||||
"wsl.server.addShort": "WSL شامل کریں۔",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "WSL سرور",
|
||||
"wsl.server.retryStart": "دوبارہ شروع کرنے کی کوشش کریں۔",
|
||||
"wsl.server.updating": "اپ ڈیٹ ہو رہا ہے...",
|
||||
"wsl.onboarding.step.distro": "ڈسٹرو کا انتخاب کریں۔",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "WSL چیک کیا جا رہا ہے...",
|
||||
"wsl.onboarding.restartRequired": "Windows کو WSL انسٹال کرنا مکمل کرنے کے لیے دوبارہ شروع کرنے کی ضرورت ہے۔",
|
||||
"wsl.onboarding.ready": "WSL تیار ہے۔",
|
||||
"wsl.onboarding.required": "جاری رکھنے کے لیے WSL درکار ہے۔",
|
||||
"wsl.onboarding.checkingDistros": "ڈسٹری بیوشنز کی جانچ ہو رہی ہے...",
|
||||
"wsl.onboarding.installingDistro": "{{distro}} انسٹال ہو رہا ہے...",
|
||||
"wsl.onboarding.checkingDistro": "{{distro}} چیک کیا جا رہا ہے...",
|
||||
"wsl.onboarding.listingDistros": "ڈسٹری بیوشنز کی فہرست بن رہی ہے...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} تیار ہے۔",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} ابھی تک انسٹال نہیں ہوا ہے۔",
|
||||
"wsl.onboarding.openDistroOnce": "سیٹ اپ مکمل کرنے کے لیے ایک بار {{distro}} کھولیں۔",
|
||||
"wsl.onboarding.finishingDistro": "{{distro}} کے لیے سیٹ اپ مکمل ہو رہا ہے۔",
|
||||
"wsl.onboarding.pickDistro": "ایک ڈسٹرو چنیں یا نیچے انسٹال کریں۔",
|
||||
"wsl.onboarding.checkingOpencode": "OpenCode چیک کیا جا رہا ہے...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "{{distro}} میں OpenCode چیک کیا جا رہا ہے...",
|
||||
"wsl.onboarding.updatingOpencode": "OpenCode کو اپ ڈیٹ کیا جا رہا ہے...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "{{distro}} میں OpenCode کو اپ ڈیٹ کیا جا رہا ہے...",
|
||||
"wsl.onboarding.updateOpencodeIn": "{{distro}} میں OpenCode کو اپ ڈیٹ کریں۔",
|
||||
"wsl.onboarding.updateOpencode": "OpenCode کو اپ ڈیٹ کریں۔",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode {{distro}} میں تیار ہے۔",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode تیار ہے۔",
|
||||
"wsl.onboarding.installOpencodeIn": "{{distro}} میں OpenCode انسٹال کریں۔",
|
||||
"wsl.onboarding.installOpencode": "OpenCode انسٹال کریں۔",
|
||||
"wsl.onboarding.chooseDistroFirst": "پہلے ایک ڈسٹرو کا انتخاب کریں۔",
|
||||
"wsl.onboarding.loadFailed": "WSL حالت لوڈ کرنے میں ناکام۔",
|
||||
"wsl.onboarding.loading": "لوڈ ہو رہا ہے...",
|
||||
"wsl.onboarding.installedDistros": "انسٹال شدہ ڈسٹرو",
|
||||
"wsl.onboarding.checkAgain": "دوبارہ چیک کریں۔",
|
||||
"wsl.onboarding.distroStatus.ready": "تیار",
|
||||
"wsl.onboarding.distroStatus.checking": "چیک کر رہا ہے...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode انسٹال نہیں ہے۔",
|
||||
"wsl.onboarding.distroStatus.missingTools": "غائب bash, curl",
|
||||
"wsl.onboarding.distroStatus.unsupported": "غیر تعاون یافتہ · WSL 2 استعمال کریں۔",
|
||||
"wsl.onboarding.needAnotherDistro": "ایک اور ڈسٹرو کی ضرورت ہے؟",
|
||||
"wsl.onboarding.needAnotherDistroHint": "WSL کیٹلاگ سے Linux ڈسٹری بیوشن انسٹال کریں۔",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL انسٹال نہیں ہے۔",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"WSL (Windows سب سسٹم برائے Linux) کی ضرورت ہے اس سے پہلے کہ OpenCode WSL سرور شامل کر سکے۔",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL دستیاب نہیں ہے۔",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode اس مشین پر WSL کی تصدیق نہیں کر سکا۔",
|
||||
"wsl.onboarding.installWsl": "WSL انسٹال کریں۔",
|
||||
"wsl.onboarding.windowsRestartRequired":
|
||||
"WSL انسٹال کرنے کے لیے Windows کو دوبارہ شروع کریں، پھر OpenCode کو دوبارہ کھولیں۔",
|
||||
"wsl.onboarding.next": "اگلا",
|
||||
"wsl.onboarding.refresh": "ریفریش کریں۔",
|
||||
"wsl.onboarding.allDistrosAdded": "تمام انسٹال شدہ ڈسٹرو پہلے ہی شامل کر دیے گئے ہیں۔",
|
||||
"wsl.onboarding.noDistros": "ابھی تک کسی ڈسٹرو کا پتہ نہیں چلا۔",
|
||||
"wsl.onboarding.install": "انسٹال کریں۔",
|
||||
"wsl.onboarding.installing": "انسٹال ہو رہا ہے...",
|
||||
"wsl.onboarding.installDistro": "ڈسٹرو انسٹال کریں۔",
|
||||
"wsl.onboarding.searchDistros": "ڈسٹری بیوشنز تلاش کریں",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 درکار ہے۔",
|
||||
"wsl.onboarding.toolsRequired": "اس ڈسٹرو کو bash اور curl کی ضرورت ہے۔",
|
||||
"wsl.onboarding.openTerminal": "ٹرمینل کھولیں۔",
|
||||
"wsl.onboarding.path": "راستہ: {{path}}",
|
||||
"wsl.onboarding.notFound": "نہیں ملا",
|
||||
"wsl.onboarding.version": "ورژن: {{version}}",
|
||||
"wsl.onboarding.unknown": "نامعلوم",
|
||||
"wsl.onboarding.desktopVersion": "ڈیسک ٹاپ {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "انسٹال کردہ ورژن ڈیسک ٹاپ ایپ ورژن سے مماثل نہیں ہے۔",
|
||||
"wsl.onboarding.adding": "شامل کیا جا رہا ہے...",
|
||||
"server.row.noUsername": "کوئی صارف نام نہیں",
|
||||
"dialog.project.edit.title": "پروجیکٹ میں ترمیم کریں۔",
|
||||
"dialog.project.edit.name": "نام",
|
||||
"dialog.project.edit.icon": "آئیکن",
|
||||
"dialog.project.edit.icon.alt": "پروجیکٹ کا آئیکن",
|
||||
"dialog.project.edit.icon.hint": "تصویر پر کلک کریں یا گھسیٹیں۔",
|
||||
"dialog.project.edit.icon.recommended": "تجویز کردہ: 128x128px",
|
||||
"dialog.project.edit.color": "رنگ",
|
||||
"dialog.project.edit.color.select": "{{color}} رنگ منتخب کریں۔",
|
||||
"dialog.project.edit.worktree.startup": "ورک اسپیس اسٹارٹ اپ اسکرپٹ",
|
||||
"dialog.project.edit.worktree.startup.description": "ایک نئی ورک اسپیس (ورکٹری) بنانے کے بعد چلتا ہے۔",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "جیسے bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "شروع کرو",
|
||||
"dialog.releaseNotes.action.next": "اگلا",
|
||||
"dialog.releaseNotes.action.hideFuture": "مستقبل میں یہ نہ دکھائیں۔",
|
||||
"dialog.releaseNotes.media.alt": "ریلیز کا پیش منظر",
|
||||
"context.breakdown.title": "سیاق و سباق کی تفصیل",
|
||||
"context.breakdown.note": 'ان پٹ ٹوکنز کی تخمینی تقسیم۔ "دیگر" میں ٹول کی تعریفیں اور اضافی بوجھ شامل ہیں۔',
|
||||
"context.breakdown.system": "سسٹم",
|
||||
"context.breakdown.user": "صارف",
|
||||
"context.breakdown.assistant": "اسسٹنٹ",
|
||||
"context.breakdown.tool": "ٹول کالز",
|
||||
"context.breakdown.other": "دیگر",
|
||||
"context.systemPrompt.title": "سسٹم پرامپٹ",
|
||||
"context.rawMessages.title": "خام پیغامات",
|
||||
"context.stats.session": "سیشن",
|
||||
"context.stats.messages": "پیغامات",
|
||||
"context.stats.provider": "فراہم کنندہ",
|
||||
"context.stats.model": "ماڈل",
|
||||
"context.stats.limit": "سیاق و سباق کی حد",
|
||||
"context.stats.totalTokens": "کل ٹوکن",
|
||||
"context.stats.usage": "استعمال",
|
||||
"context.stats.inputTokens": "ان پٹ ٹوکنز",
|
||||
"context.stats.outputTokens": "آؤٹ پٹ ٹوکنز",
|
||||
"context.stats.reasoningTokens": "ریزننگ ٹوکنز",
|
||||
"context.stats.cacheTokens": "کیشے ٹوکنز (پڑھنا/لکھنا)",
|
||||
"context.stats.userMessages": "صارف کے پیغامات",
|
||||
"context.stats.assistantMessages": "معاون پیغامات",
|
||||
"context.stats.totalCost": "کل لاگت",
|
||||
"context.stats.sessionCreated": "سیشن بنایا گیا۔",
|
||||
"context.stats.lastActivity": "آخری سرگرمی",
|
||||
"context.usage.tokens": "ٹوکنز",
|
||||
"context.usage.usage": "استعمال",
|
||||
"context.usage.cost": "لاگت",
|
||||
"context.usage.clickToView": "سیاق و سباق دیکھنے کے لیے کلک کریں۔",
|
||||
"context.usage.view": "سیاق و سباق کا استعمال دیکھیں",
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "زبان",
|
||||
"toast.language.description": "{{language}} پر تبدیل ہو گیا۔",
|
||||
"toast.theme.title": "تھیم تبدیل ہو گئی۔",
|
||||
"toast.scheme.title": "رنگ سکیم",
|
||||
"toast.workspace.enabled.title": "ورک اسپیسز فعال ہیں۔",
|
||||
"toast.workspace.enabled.description": "متعدد ورک ٹری اب سائڈبار میں دکھائے گئے ہیں۔",
|
||||
"toast.workspace.disabled.title": "کام کی جگہیں غیر فعال ہیں۔",
|
||||
"toast.workspace.disabled.description": "سائڈبار میں صرف مین ورک ٹری کو دکھایا گیا ہے۔",
|
||||
"toast.permissions.autoaccept.on.title": "خودکار طور پر قبول کرنے کی اجازتیں۔",
|
||||
"toast.permissions.autoaccept.on.description": "اجازت کی درخواستیں خود بخود منظور ہو جائیں گی۔",
|
||||
"toast.permissions.autoaccept.off.title": "اجازتوں کو خودکار طور پر قبول کرنا بند کر دیا گیا۔",
|
||||
"toast.permissions.autoaccept.off.description": "اجازت کی درخواستوں کو منظوری درکار ہوگی۔",
|
||||
"toast.model.none.title": "کوئی ماڈل منتخب نہیں کیا گیا۔",
|
||||
"toast.model.none.description": "اس سیشن کا خلاصہ کرنے کے لیے فراہم کنندہ سے رابطہ کریں۔",
|
||||
"toast.file.loadFailed.title": "فائل لوڈ کرنے میں ناکام",
|
||||
"toast.file.listFailed.title": "فائلوں کی فہرست بنانے میں ناکام",
|
||||
"toast.context.noLineSelection.title": "لائن کا کوئی انتخاب نہیں۔",
|
||||
"toast.context.noLineSelection.description": "پہلے فائل ٹیب میں لائن رینج منتخب کریں۔",
|
||||
"toast.session.share.copyFailed.title": "URL کو کلپ بورڈ پر کاپی کرنے میں ناکام",
|
||||
"toast.session.share.success.title": "سیشن کا اشتراک کیا گیا۔",
|
||||
"toast.session.share.success.description": "اشتراک کا URL کلپ بورڈ پر کاپی ہو گیا!",
|
||||
"toast.session.share.failed.title": "سیشن کا اشتراک کرنے میں ناکام",
|
||||
"toast.session.share.failed.description": "سیشن کا اشتراک کرتے وقت ایک خرابی پیش آگئی",
|
||||
"toast.session.unshare.success.title": "سیشن کا اشتراک ختم کر دیا گیا۔",
|
||||
"toast.session.unshare.success.description": "سیشن کا اشتراک کامیابی سے ختم ہو گیا!",
|
||||
"toast.session.unshare.failed.title": "سیشن کا اشتراک ختم کرنے میں ناکام",
|
||||
"toast.session.unshare.failed.description": "سیشن کا اشتراک ختم کرتے وقت ایک خرابی پیش آگئی",
|
||||
"toast.session.listFailed.title": "{{project}} کے لیے سیشن لوڈ کرنے میں ناکام",
|
||||
"toast.project.reloadFailed.title": "{{project}} کو دوبارہ لوڈ کرنے میں ناکام",
|
||||
"toast.update.title": "اپ ڈیٹ دستیاب ہے۔",
|
||||
"toast.update.description": "OpenCode ({{version}}) کا ایک نیا ورژن اب انسٹال کرنے کے لیے دستیاب ہے۔",
|
||||
"toast.update.action.installRestart": "انسٹال کریں اور دوبارہ شروع کریں۔",
|
||||
"toast.update.action.notYet": "ابھی تک نہیں۔",
|
||||
"error.page.title": "کچھ غلط ہو گیا۔",
|
||||
"error.page.description": "ایپلیکیشن لوڈ کرتے وقت ایک خرابی پیش آگئی۔",
|
||||
"error.page.description.localServerStartup": "مقامی سرور شروع کرتے وقت ایک خرابی پیش آگئی۔",
|
||||
"error.page.details.label": "خرابی کی تفصیلات",
|
||||
"error.page.action.restart": "دوبارہ شروع کریں۔",
|
||||
"error.page.action.report": "خرابی کی اطلاع دیں",
|
||||
"error.page.action.reported": "خرابی کی اطلاع دی گئی۔",
|
||||
"error.page.action.exportLogs": "لاگز برآمد کریں۔",
|
||||
"error.page.action.checking": "چیک کر رہا ہے...",
|
||||
"error.page.action.checkUpdates": "اپ ڈیٹس کے لیے چیک کریں۔",
|
||||
"error.page.action.updateTo": "{{version}} میں اپ ڈیٹ کریں۔",
|
||||
"error.page.circular": "[سرکلر]",
|
||||
"error.page.report.prefix": "براہ کرم OpenCode ٹیم کو اس غلطی کی اطلاع دیں۔",
|
||||
"error.page.report.discord": "Discord پر",
|
||||
"error.page.version": "ورژن: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"روٹ عنصر نہیں ملا۔ کیا آپ اسے اپنے index.html میں شامل کرنا بھول گئے؟ یا ہو سکتا ہے کہ آئی ڈی وصف کی ہجے غلط ہو گئی ہو؟",
|
||||
"error.serverSync.connectFailed": "سرور سے منسلک نہیں ہو سکا۔ کیا `{{url}}` پر کوئی سرور چل رہا ہے؟",
|
||||
"error.serverSDK.noServerAvailable": "کوئی سرور دستیاب نہیں ہے۔",
|
||||
"error.serverSDK.serverNotAvailable": "سرور دستیاب نہیں ہے۔",
|
||||
"error.childStore.persistedCacheCreateFailed": "مستقل کیشے بنانے میں ناکام",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "مستقل پروجیکٹ میٹا ڈیٹا بنانے میں ناکام",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "مستقل پروجیکٹ آئیکن بنانے میں ناکام",
|
||||
"error.childStore.storeCreateFailed": "اسٹور بنانے میں ناکام",
|
||||
"directory.error.invalidUrl": "URL میں غلط ڈائریکٹری۔",
|
||||
"error.chain.unknown": "نامعلوم خرابی۔",
|
||||
"error.server.invalidConfiguration": "غلط کنفیگریشن",
|
||||
"error.chain.causedBy": "کی وجہ سے:",
|
||||
"error.chain.apiError": "API غلطی",
|
||||
"error.chain.status": "حیثیت: {{status}}",
|
||||
"error.chain.retryable": "دوبارہ کوشش کے قابل: {{retryable}}",
|
||||
"error.chain.responseBody": "جواب کا متن:\n{{body}}",
|
||||
"error.chain.didYouMean": "کیا آپ کا مطلب ہے: {{suggestions}}؟",
|
||||
"error.chain.modelNotFound": "ماڈل نہیں ملا: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "اپنی تشکیل (opencode.json) فراہم کنندہ/ماڈل کے نام چیک کریں۔",
|
||||
"error.chain.mcpFailed": 'MCP سرور "{{name}}" ناکام ہو گیا۔ نوٹ، OpenCode ابھی تک MCP تصدیق کو سپورٹ نہیں کرتا ہے۔',
|
||||
"error.chain.providerAuthFailed": "فراہم کنندہ کی توثیق ناکام ہوگئی ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed": 'فراہم کنندہ "{{provider}}" کو شروع کرنے میں ناکام۔ اسناد اور کنفیگریشن چیک کریں۔',
|
||||
"error.chain.configJsonInvalid": "{{path}} پر کنفگ فائل درست نہیں ہے JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage": "{{path}} پر کنفگ فائل درست نہیں ہے JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'{{path}} میں ڈائریکٹری "{{dir}}" درست نہیں ہے۔ ڈائریکٹری کا نام "{{suggestion}}" رکھیں یا اسے ہٹا دیں۔ یہ املا کی ایک عام غلطی ہے۔',
|
||||
"error.chain.configFrontmatterError": "{{path}} میں فرنٹ میٹر کو پارس کرنے میں ناکام:\n{{message}}",
|
||||
"error.chain.configInvalid": "{{path}} پر کنفگ فائل غلط ہے۔",
|
||||
"error.chain.configInvalidWithMessage": "{{path}} پر کنفگ فائل غلط ہے: {{message}}",
|
||||
"notification.permission.title": "اجازت درکار ہے۔",
|
||||
"notification.permission.description": "{{projectName}} میں {{sessionTitle}} کو اجازت درکار ہے۔",
|
||||
"notification.question.title": "سوال",
|
||||
"notification.question.description": "{{projectName}} میں {{sessionTitle}} کی جانب سے ایک سوال ہے۔",
|
||||
"notification.action.goToSession": "سیشن پر جائیں",
|
||||
"notification.session.responseReady.title": "جواب تیار ہے۔",
|
||||
"notification.session.error.title": "سیشن کی خرابی",
|
||||
"notification.session.error.fallbackDescription": "ایک خرابی پیش آ گئی۔",
|
||||
"home.recentProjects": "حالیہ منصوبے",
|
||||
"home.empty.title": "کوئی حالیہ پروجیکٹ نہیں۔",
|
||||
"home.empty.description": "ایک مقامی پروجیکٹ کھول کر شروع کریں۔",
|
||||
"home.title": "ہوم",
|
||||
"home.projects": "پروجیکٹس",
|
||||
"home.project.add": "پروجیکٹ شامل کریں۔",
|
||||
"home.recentlyClosed": "حال ہی میں بند",
|
||||
"home.server.collapse": "سرور کے پروجیکٹس سمیٹیں",
|
||||
"home.server.expand": "سرور پروجیکٹس کو وسعت دیں۔",
|
||||
"home.sessions.search.placeholder": "سیشن تلاش کریں۔",
|
||||
"home.sessions.search.placeholder.scoped": "{{scope}} میں سیشن تلاش کریں۔",
|
||||
"home.sessions.search.sessions": "سیشنز",
|
||||
"home.sessions.search.noResults": "{{query}} کے لیے کوئی سیشن نہیں ملا",
|
||||
"home.sessions.empty": "ابھی تک یہاں کچھ نہیں ہے۔",
|
||||
"home.sessions.empty.description": "شروع کرنے کے لیے ایک سیشن بنائیں",
|
||||
"home.sessions.group.today": "آج",
|
||||
"home.sessions.group.yesterday": "کل",
|
||||
"home.sessions.group.older": "پرانا",
|
||||
"home.providerTip": "Claude، GPT، Gemini، وغیرہ سمیت دیگر ماڈلز استعمال کرنے کے لیے 75+ فراہم کنندگان سے جڑیں",
|
||||
"session.tab.session": "سیشن",
|
||||
"session.tab.review": "جائزہ لیں",
|
||||
"session.tab.context": "سیاق و سباق",
|
||||
"session.tab.unknown": "نامعلوم سیشن",
|
||||
"session.panel.reviewAndFiles": "جائزہ اور فائلیں۔",
|
||||
"session.error.notFound": "یہ سیشن نہیں مل سکتا",
|
||||
"session.error.notFound.description": "یہ ٹیب ایک سیشن کی طرف اشارہ کرتا ہے جو اس سرور پر اب موجود نہیں ہے۔",
|
||||
"session.error.notFound.closeTab": "ٹیب بند کریں",
|
||||
"session.error.serverConnection": "اس سرور سے منسلک نہیں ہو سکتا",
|
||||
"session.review.filesChanged": "تبدیل شدہ فائلیں: {{count}}",
|
||||
"session.review.change.one": "تبدیلی",
|
||||
"session.review.change.other": "تبدیلیاں",
|
||||
"session.review.loadingChanges": "تبدیلیاں لوڈ ہو رہی ہیں...",
|
||||
"session.review.empty": "اس سیشن میں ابھی تک کوئی تبدیلی نہیں آئی",
|
||||
"session.review.noVcs": "Git ورژن کنٹرول سسٹم کا پتہ نہیں چلا، تبدیلیاں ظاہر نہیں کی گئیں۔",
|
||||
"session.review.noVcs.createGit.title": "ایک Git ذخیرہ بنائیں",
|
||||
"session.review.noVcs.createGit.description":
|
||||
"اس پروجیکٹ میں تبدیلیوں کو ٹریک کریں، ان کا جائزہ لیں اور ان کو کالعدم کریں۔",
|
||||
"session.review.noVcs.createGit.actionLoading": "Git ذخیرہ تخلیق کیا جا رہا ہے...",
|
||||
"session.review.noVcs.createGit.action": "Git ذخیرہ تخلیق کریں۔",
|
||||
"session.review.noSnapshot":
|
||||
"اسنیپ شاٹ سے باخبر رہنے کی ترتیب کو غیر فعال کر دیا گیا ہے، لہذا سیشن کی تبدیلیاں دستیاب نہیں ہیں۔",
|
||||
"session.review.noChanges": "کوئی تبدیلی نہیں۔",
|
||||
"session.review.noUncommittedChanges": "ابھی تک کوئی غیر ارتکاب تبدیلیاں نہیں ہیں۔",
|
||||
"session.review.noBranchChanges": "ابھی تک برانچ میں کوئی تبدیلی نہیں ہے۔",
|
||||
"session.files.selectToOpen": "کھولنے کے لیے ایک فائل منتخب کریں۔",
|
||||
"session.files.all": "تمام فائلیں۔",
|
||||
"session.files.empty": "کوئی فائل نہیں ہے۔",
|
||||
"session.files.binaryContent": "بائنری فائل (مواد ظاہر نہیں کیا جا سکتا)",
|
||||
"session.messages.renderEarlier": "پرانے پیغامات دکھائیں",
|
||||
"session.messages.loadingEarlier": "پہلے کے پیغامات لوڈ ہو رہے ہیں...",
|
||||
"session.messages.loadEarlier": "پہلے کے پیغامات لوڈ کریں۔",
|
||||
"session.messages.loading": "پیغامات لوڈ ہو رہے ہیں...",
|
||||
"session.messages.jumpToLatest": "تازہ ترین پر جائیں",
|
||||
"session.context.addToContext": "{{selection}} کو سیاق و سباق میں شامل کریں۔",
|
||||
"session.todo.title": "زیر التوا کام",
|
||||
"session.todo.collapse": "سمیٹیں",
|
||||
"session.todo.expand": "پھیلائیں۔",
|
||||
"session.todo.progress": "{{total}} میں سے {{done}} کام مکمل ہو گئے",
|
||||
"session.question.progress": "{{total}} میں سے سوال {{current}}",
|
||||
"session.question.minimize": "سوال کو کم سے کم کریں۔",
|
||||
"session.question.restore": "سوال بحال کریں۔",
|
||||
"session.question.pending.one": "{{count}} زیر التواء سوال",
|
||||
"session.question.pending.other": "{{count}} زیر التواء سوالات",
|
||||
"session.followupDock.summary.one": "{{count}} قطار میں شامل پیغام",
|
||||
"session.followupDock.summary.other": "{{count}} قطار میں لگے پیغامات",
|
||||
"session.followupDock.sendNow": "ابھی بھیجیں۔",
|
||||
"session.followupDock.edit": "ترمیم کریں۔",
|
||||
"session.followupDock.collapse": "قطار میں لگے پیغامات کو سکیڑیں۔",
|
||||
"session.followupDock.expand": "قطار میں لگے پیغامات کو پھیلائیں۔",
|
||||
"session.revertDock.summary.one": "{{count}} واپس لیا گیا پیغام",
|
||||
"session.revertDock.summary.other": "{{count}} واپس لیے گئے پیغامات",
|
||||
"session.revertDock.collapse": "واپس لیے گئے پیغامات سمیٹیں",
|
||||
"session.revertDock.expand": "واپس لیے گئے پیغامات پھیلائیں",
|
||||
"session.revertDock.restore": "پیغام کو بحال کریں۔",
|
||||
"session.new.title": "کچھ بھی بنائیں",
|
||||
"session.new.project.new": "نیا پروجیکٹ",
|
||||
"session.new.project.search": "پروجیکٹس تلاش کریں۔",
|
||||
"session.new.project.add": "پروجیکٹ شامل کریں۔",
|
||||
"session.new.worktree.main": "مین برانچ",
|
||||
"session.new.worktree.mainWithBranch": "مین برانچ ({{branch}})",
|
||||
"session.new.worktree.create": "نئی ورک ٹری بنائیں",
|
||||
"session.new.workspace.runIn": "سیشن یہاں چلائیں",
|
||||
"session.new.workspace.triggerLocal": "مقامی",
|
||||
"session.new.workspace.local": "مقامی ذخیرہ",
|
||||
"session.new.workspace.existing": "ورک اسپیس…",
|
||||
"session.new.git.none": "کوئی Git نہیں۔",
|
||||
"session.new.lastModified": "آخری بار ترمیم کی گئی۔",
|
||||
"session.header.search.placeholder": "{{project}} تلاش کریں۔",
|
||||
"session.header.searchFiles": "فائلیں تلاش کریں۔",
|
||||
"session.header.openIn": "اس میں کھولیں",
|
||||
"session.header.open.action": "{{app}} کھولیں۔",
|
||||
"session.header.open.ariaLabel": "{{app}} میں کھولیں۔",
|
||||
"session.header.open.menu": "اختیارات کھولیں۔",
|
||||
"session.header.open.copyPath": "راستہ کاپی کریں۔",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.open.fileManager": "File Manager",
|
||||
"session.header.reveal.finder": "Finder میں ظاہر کریں۔",
|
||||
"session.header.reveal.fileExplorer": "File Explorer میں ظاہر کریں۔",
|
||||
"session.header.reveal.containingFolder": "متعلقہ فولڈر کھولیں",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminal",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "حیثیت",
|
||||
"status.popover.ariaLabel": "سرور کنفیگریشنز",
|
||||
"status.popover.tab.servers": "سرورز",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "پلگ انز",
|
||||
"status.popover.action.manageServers": "سرورز کا نظم کریں۔",
|
||||
"session.share.popover.title": "ویب پر شائع کریں۔",
|
||||
"session.share.popover.description.shared": "یہ سیشن ویب پر عوامی ہے۔ یہ لنک کے ساتھ ہر کسی کے لیے قابل رسائی ہے۔",
|
||||
"session.share.popover.description.unshared":
|
||||
"ویب پر عوامی طور پر سیشن کا اشتراک کریں۔ یہ لنک کے ساتھ ہر کسی کے لیے قابل رسائی ہو گا۔",
|
||||
"session.share.action.share": "شیئر کریں۔",
|
||||
"session.share.action.publish": "شائع کریں۔",
|
||||
"session.share.action.publishing": "شائع ہو رہا ہے...",
|
||||
"session.share.action.unpublish": "غیر شائع کریں۔",
|
||||
"session.share.action.unpublishing": "اشاعت ختم کی جا رہی ہے...",
|
||||
"session.share.action.view": "دیکھیں",
|
||||
"session.share.copy.copied": "کاپی",
|
||||
"session.share.copy.copyLink": "لنک کاپی کریں۔",
|
||||
"lsp.tooltip.none": "LSP سرورز نہیں ہیں۔",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "پرامپٹ لوڈ ہو رہا ہے...",
|
||||
"terminal.loading": "ٹرمینل لوڈ ہو رہا ہے...",
|
||||
"terminal.title": "ٹرمینل",
|
||||
"terminal.title.numbered": "ٹرمینل {{number}}",
|
||||
"terminal.close": "ٹرمینل بند کریں۔",
|
||||
"terminal.connectionLost.title": "کنکشن ختم ہو گیا۔",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket غیر معمولی طور پر بند ہوا: {{code}}",
|
||||
"terminal.connectionLost.description": "ٹرمینل کنکشن میں خلل پڑا۔ یہ سرور کے دوبارہ شروع ہونے پر ہوسکتا ہے۔",
|
||||
"common.closeTab": "ٹیب بند کریں۔",
|
||||
"common.dismiss": "نظر انداز کریں",
|
||||
"common.moreCountSuffix": " (+{{count}} مزید)",
|
||||
"common.requestFailed": "درخواست ناکام ہوگئی",
|
||||
"common.moreOptions": "مزید اختیارات",
|
||||
"common.learnMore": "مزید جانیں",
|
||||
"common.rename": "نام تبدیل کریں۔",
|
||||
"common.reset": "دوبارہ ترتیب دیں۔",
|
||||
"common.archive": "آرکائیو کریں",
|
||||
"common.delete": "حذف کریں۔",
|
||||
"common.close": "بند",
|
||||
"common.edit": "ترمیم کریں۔",
|
||||
"common.loadMore": "مزید لوڈ کریں۔",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Space",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "نامعلوم",
|
||||
"common.time.justNow": "ابھی ابھی",
|
||||
"common.time.minutesAgo.short": "{{count}}m پہلے",
|
||||
"common.time.hoursAgo.short": "{{count}}h پہلے",
|
||||
"common.time.daysAgo.short": "{{count}}d پہلے",
|
||||
"sidebar.menu.toggle": "مینو دکھائیں یا چھپائیں",
|
||||
"sidebar.nav.projectsAndSessions": "پروجیکٹس اور سیشنز",
|
||||
"sidebar.settings": "ترتیبات",
|
||||
"sidebar.help": "مدد",
|
||||
"sidebar.workspaces.enable": "ورک اسپیسز کو فعال کریں۔",
|
||||
"sidebar.workspaces.disable": "ورک اسپیس کو غیر فعال کریں۔",
|
||||
"sidebar.gettingStarted.title": "شروع کرنا",
|
||||
"sidebar.gettingStarted.line1": "OpenCode میں مفت ماڈل شامل ہیں لہذا آپ فوری طور پر شروع کر سکتے ہیں۔",
|
||||
"sidebar.gettingStarted.line2": "ماڈلز استعمال کرنے کے لیے کسی بھی فراہم کنندہ کو جوڑیں۔ Claude، GPT، Gemini وغیرہ",
|
||||
"sidebar.project.recentSessions": "حالیہ سیشنز",
|
||||
"sidebar.project.viewAllSessions": "تمام سیشنز دیکھیں",
|
||||
"sidebar.project.clearNotifications": "اطلاعات کو صاف کریں۔",
|
||||
"sidebar.empty.title": "کوئی پروجیکٹ نہیں کھلا۔",
|
||||
"sidebar.empty.description": "شروع کرنے کے لیے ایک پروجیکٹ کھولیں۔",
|
||||
"debugBar.ariaLabel": "ترقیاتی کارکردگی کی تشخیص",
|
||||
"debugBar.na": "n/a",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"سیشن صفحے سے متعلق آخری مکمل روٹ منتقلی، جسے روٹر کے آغاز سے منتقلی مکمل ہونے کے بعد پہلی بار اسکرین بننے تک ناپا گیا ہے۔",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "آخری 5 سیکنڈز میں فریم فی سیکنڈ رولنگ۔",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "آخری 5 سیکنڈز میں سب سے خراب فریم ٹائم۔",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "آخری 5 سیکنڈ میں 32ms سے زیادہ کے فریم۔",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "آخری 5 سیکنڈ میں مسدود وقت اور طویل کام کی گنتی۔ زیادہ سے زیادہ کام: {{max}}۔",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "آخری 5 سیکنڈ میں سب سے زیادہ مشاہدہ کردہ ان پٹ تاخیر۔",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip": "آخری 5 سیکنڈ میں تعامل کا تخمینی دورانیہ۔ یہ INP جیسا ہے، سرکاری Web Vitals INP نہیں۔",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "موجودہ ایپ کی زندگی بھر کے لیے مجموعی لے آؤٹ شفٹ۔",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "استعمال شدہ JS ہیپ بمقابلہ ہیپ کی حد۔ صرف Chromium۔",
|
||||
"debugBar.mem.tip": "استعمال شدہ JS ہیپ بمقابلہ ہیپ کی حد۔ {{limit}} میں سے {{used}}۔",
|
||||
"app.name.desktop": "OpenCode ڈیسک ٹاپ",
|
||||
"settings.section.desktop": "ڈیسک ٹاپ",
|
||||
"settings.section.server": "سرور",
|
||||
"settings.tab.general": "عمومی",
|
||||
"settings.tab.shortcuts": "شارٹ کٹس",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL انضمام",
|
||||
"settings.desktop.wsl.description": "Windows پر WSL کے اندر OpenCode سرور چلائیں۔",
|
||||
"settings.general.section.appearance": "ظاہری شکل",
|
||||
"settings.general.section.advanced": "اعلیٰ ترتیبات",
|
||||
"settings.general.section.notifications": "سسٹم کی اطلاعات",
|
||||
"settings.general.section.updates": "اپڈیٹس",
|
||||
"settings.general.section.sounds": "صوتی اثرات",
|
||||
"settings.general.section.feed": "فیڈ",
|
||||
"settings.general.section.display": "ڈسپلے",
|
||||
"settings.general.row.language.title": "زبان",
|
||||
"settings.general.row.language.description": "OpenCode کے لیے ڈسپلے کی زبان تبدیل کریں۔",
|
||||
"settings.general.row.shell.title": "ٹرمینل شیل",
|
||||
"settings.general.row.shell.description": "ٹرمینل اور ایجنٹ ٹولز کے ذریعے استعمال ہونے والا شیل",
|
||||
"settings.general.row.shell.autoDefault": "خودکار (پہلے سے طے شدہ)",
|
||||
"settings.general.row.shell.terminalOnly": "صرف ٹرمینل",
|
||||
"settings.general.row.appearance.title": "ظاہری شکل",
|
||||
"settings.general.row.appearance.description": "اپنی مرضی کے مطابق بنائیں کہ آپ کے آلے پر OpenCode کیسا لگتا ہے۔",
|
||||
"settings.general.row.colorScheme.title": "رنگ سکیم",
|
||||
"settings.general.row.colorScheme.description":
|
||||
"منتخب کریں کہ آیا OpenCode سسٹم، لائٹ یا ڈارک تھیم کی پیروی کرتا ہے۔",
|
||||
"settings.general.row.theme.title": "تھیم",
|
||||
"settings.general.row.theme.description": "OpenCode کی تھیم حسب ضرورت بنائیں۔",
|
||||
"settings.general.row.font.title": "کوڈ فونٹ",
|
||||
"settings.general.row.font.description": "کوڈ بلاکس میں استعمال ہونے والے فونٹ کو حسب ضرورت بنائیں",
|
||||
"settings.general.row.terminalFont.title": "ٹرمینل فونٹ",
|
||||
"settings.general.row.terminalFont.description": "ٹرمینل میں استعمال ہونے والے فونٹ کو حسب ضرورت بنائیں",
|
||||
"settings.general.row.uiFont.title": "UI فونٹ",
|
||||
"settings.general.row.uiFont.description": "پورے انٹرفیس میں استعمال ہونے والے فونٹ کو حسب ضرورت بنائیں",
|
||||
"settings.general.row.followup.title": "فالو اپ کا طرز عمل",
|
||||
"settings.general.row.followup.description":
|
||||
"منتخب کریں کہ آیا فالو اپ فوری طور پر آگے بڑھتا ہے یا قطار میں انتظار کرتا ہے۔",
|
||||
"settings.general.row.followup.option.queue": "قطار",
|
||||
"settings.general.row.followup.option.steer": "فوری رہنمائی",
|
||||
"settings.general.row.showFileTree.title": "فائل ٹری",
|
||||
"settings.general.row.showFileTree.description": "سیشن میں فائل ٹری پینل دکھائیں۔",
|
||||
"settings.general.row.showNavigation.title": "نیویگیشن کنٹرولز",
|
||||
"settings.general.row.showNavigation.description": "ڈیسک ٹاپ ٹائٹل بار میں پیچھے اور آگے کے بٹن دکھائیں۔",
|
||||
"settings.general.row.showSearch.title": "کمانڈ پیلیٹ",
|
||||
"settings.general.row.showSearch.description": "ٹائٹل بار میں سرچ اور کمانڈ پیلیٹ بٹن دکھائیں۔",
|
||||
"settings.general.row.showTerminal.title": "ٹرمینل",
|
||||
"settings.general.row.showTerminal.description": "ڈیسک ٹاپ ٹائٹل بار میں ٹرمینل بٹن دکھائیں۔",
|
||||
"settings.general.row.showStatus.title": "سرور کی حیثیت",
|
||||
"settings.general.row.showStatus.description": "ٹائٹل بار میں سرور اسٹیٹس بٹن دکھائیں۔",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "نیچے نیویگیشن",
|
||||
"settings.general.row.mobileTitlebarBottom.description": "موبائل پر اسکرین کے نیچے ٹائٹل بار اور سیشن ٹیبز رکھیں",
|
||||
"settings.general.row.showCustomAgents.title": "ایجنٹ دکھائیں۔",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"کمپوزر میں ایجنٹس تبدیل کریں۔ چھپانے پر Build ایجنٹ بطور طے شدہ استعمال ہوگا۔",
|
||||
"settings.general.row.reasoningSummaries.title": "استدلال کے خلاصے دکھائیں۔",
|
||||
"settings.general.row.reasoningSummaries.description": "ٹائم لائن میں ماڈل استدلال کے خلاصے ڈسپلے کریں۔",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "شیل ٹول کے حصے پھیلائیں",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"ٹائم لائن میں شیل ٹول کے حصے بطور طے شدہ پھیلے ہوئے دکھائیں۔",
|
||||
"settings.general.row.editToolPartsExpanded.title": "ترمیمی ٹول کے حصے پھیلائیں",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"ٹائم لائن میں ترمیم، تحریر اور پیچ ٹول کے حصے بطور طے شدہ پھیلے ہوئے دکھائیں۔",
|
||||
"settings.general.row.newInterface.title": "نیا لے آؤٹ",
|
||||
"settings.general.row.newInterface.badge": "نیا",
|
||||
"settings.general.row.newInterface.description":
|
||||
"نئے ٹیبز اور ہوم لے آؤٹ استعمال کریں۔ ایک محدود وقت کے لیے لے آؤٹ کے درمیان سوئچ کریں۔",
|
||||
"settings.general.row.newInterfaceNotice.title": "اب آپ نیا لے آؤٹ استعمال کر رہے ہیں۔",
|
||||
"settings.general.row.newInterfaceNotice.description": "پچھلا لے آؤٹ اب دستیاب نہیں ہے۔",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "نظر انداز کریں",
|
||||
"settings.general.row.pinchZoom.title": "زوم کرنے کے لیے چوٹکی لگائیں۔",
|
||||
"settings.general.row.pinchZoom.description": "ٹریک پیڈ پنچ اور Ctrl-اسکرول اشاروں کو زوم کرنے دیں۔",
|
||||
"settings.general.row.wayland.title": "مقامی Wayland استعمال کریں۔",
|
||||
"settings.general.row.wayland.description": "Wayland پر X11 فال بیک کو غیر فعال کریں۔ دوبارہ شروع کرنے کی ضرورت ہے۔",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"مخلوط ریفریش ریٹ مانیٹر کے ساتھ Linux پر، مقامی Wayland زیادہ مستحکم ہو سکتا ہے۔",
|
||||
"settings.general.row.releaseNotes.title": "ریلیز نوٹس",
|
||||
"settings.general.row.releaseNotes.description": "اپ ڈیٹس کے بعد نیا کیا ہے پاپ اپ دکھائیں۔",
|
||||
"settings.updates.row.startup.title": "سٹارٹ اپ پر اپ ڈیٹس چیک کریں۔",
|
||||
"settings.updates.row.startup.description": "OpenCode لانچ ہونے پر اپ ڈیٹس کے لیے خودکار طور پر چیک کریں۔",
|
||||
"settings.updates.row.check.title": "اپ ڈیٹس کے لیے چیک کریں۔",
|
||||
"settings.updates.row.check.description": "اپ ڈیٹس کے لیے دستی طور پر چیک کریں اور اگر دستیاب ہو تو انسٹال کریں۔",
|
||||
"settings.updates.action.checkNow": "ابھی چیک کریں۔",
|
||||
"settings.updates.action.checking": "چیک کر رہا ہے...",
|
||||
"settings.updates.action.downloading": "ڈاؤن لوڈ ہو رہا ہے...",
|
||||
"settings.updates.action.installing": "انسٹال ہو رہا ہے...",
|
||||
"settings.updates.toast.latest.title": "آپ اپ ٹو ڈیٹ ہیں۔",
|
||||
"settings.updates.toast.latest.description": "آپ OpenCode کا تازہ ترین ورژن چلا رہے ہیں۔",
|
||||
"sound.option.none": "کوئی نہیں۔",
|
||||
"sound.option.alert01": "Alert 01",
|
||||
"sound.option.alert02": "Alert 02",
|
||||
"sound.option.alert03": "Alert 03",
|
||||
"sound.option.alert04": "Alert 04",
|
||||
"sound.option.alert05": "Alert 05",
|
||||
"sound.option.alert06": "Alert 06",
|
||||
"sound.option.alert07": "Alert 07",
|
||||
"sound.option.alert08": "Alert 08",
|
||||
"sound.option.alert09": "Alert 09",
|
||||
"sound.option.alert10": "Alert 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"settings.general.notifications.agent.title": "ایجنٹ",
|
||||
"settings.general.notifications.agent.description": "جب ایجنٹ مکمل ہو یا توجہ کی ضرورت ہو تو سسٹم کی اطلاع دکھائیں۔",
|
||||
"settings.general.notifications.permissions.title": "اجازتیں",
|
||||
"settings.general.notifications.permissions.description": "جب اجازت درکار ہو تو سسٹم کی اطلاع دکھائیں۔",
|
||||
"settings.general.notifications.errors.title": "غلطیاں",
|
||||
"settings.general.notifications.errors.description": "جب کوئی خرابی ہوتی ہے تو سسٹم کی اطلاع دکھائیں۔",
|
||||
"settings.general.sounds.agent.title": "ایجنٹ",
|
||||
"settings.general.sounds.agent.description": "جب ایجنٹ مکمل ہو جائے یا توجہ کی ضرورت ہو تو آواز چلائیں۔",
|
||||
"settings.general.sounds.permissions.title": "اجازتیں",
|
||||
"settings.general.sounds.permissions.description": "جب اجازت درکار ہو تو آواز چلائیں۔",
|
||||
"settings.general.sounds.errors.title": "غلطیاں",
|
||||
"settings.general.sounds.errors.description": "غلطی ہونے پر آواز چلائیں۔",
|
||||
"settings.shortcuts.title": "کی بورڈ شارٹ کٹس",
|
||||
"settings.shortcuts.reset.button": "ڈیفالٹس پر ری سیٹ کریں۔",
|
||||
"settings.shortcuts.reset.toast.title": "شارٹ کٹس ری سیٹ",
|
||||
"settings.shortcuts.reset.toast.description": "کی بورڈ شارٹ کٹس کو ڈیفالٹس پر ری سیٹ کر دیا گیا ہے۔",
|
||||
"settings.shortcuts.conflict.title": "شارٹ کٹ پہلے سے استعمال میں ہے۔",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} پہلے ہی {{titles}} کو تفویض کیا گیا ہے۔",
|
||||
"settings.shortcuts.unassigned": "غیر تفویض کردہ",
|
||||
"settings.shortcuts.pressKeys": "چابیاں دبائیں",
|
||||
"settings.shortcuts.search.placeholder": "شارٹ کٹ تلاش کریں۔",
|
||||
"settings.shortcuts.search.empty": "کوئی شارٹ کٹ نہیں ملا",
|
||||
"settings.shortcuts.group.general": "عمومی",
|
||||
"settings.shortcuts.group.session": "سیشن",
|
||||
"settings.shortcuts.group.navigation": "نیویگیشن",
|
||||
"settings.shortcuts.group.modelAndAgent": "ماڈل اور ایجنٹ",
|
||||
"settings.shortcuts.group.terminal": "ٹرمینل",
|
||||
"settings.shortcuts.group.prompt": "پرامپٹ",
|
||||
"settings.providers.title": "فراہم کرنے والے",
|
||||
"settings.providers.description": "فراہم کنندہ کی ترتیبات یہاں قابل ترتیب ہوں گی۔",
|
||||
"settings.providers.section.connected": "منسلک فراہم کنندگان",
|
||||
"settings.providers.connected.empty": "کوئی منسلک فراہم کنندہ نہیں۔",
|
||||
"settings.providers.connected.environmentDescription": "آپ کے ماحول کے متغیرات سے جڑا ہوا ہے۔",
|
||||
"settings.providers.section.popular": "مقبول فراہم کنندگان",
|
||||
"settings.providers.custom.description": "بیس URL کے ذریعے ایک OpenAI-مطابق فراہم کنندہ شامل کریں۔",
|
||||
"settings.providers.tag.environment": "ماحول",
|
||||
"settings.providers.tag.config": "ترتیب",
|
||||
"settings.providers.tag.custom": "حسب ضرورت",
|
||||
"settings.providers.tag.other": "دیگر",
|
||||
"settings.models.title": "ماڈلز",
|
||||
"settings.models.description": "ماڈل کی ترتیبات یہاں قابل ترتیب ہوں گی۔",
|
||||
"settings.agents.title": "ایجنٹس",
|
||||
"settings.agents.description": "ایجنٹ کی ترتیبات یہاں قابل ترتیب ہوں گی۔",
|
||||
"settings.commands.title": "کمانڈز",
|
||||
"settings.commands.description": "کمانڈ کی ترتیبات یہاں قابل ترتیب ہوں گی۔",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "MCP ترتیبات یہاں قابل ترتیب ہوں گی۔",
|
||||
"settings.permissions.title": "اجازتیں",
|
||||
"settings.permissions.description": "کنٹرول کریں کہ سرور کن ٹولز کو بطور ڈیفالٹ استعمال کر سکتا ہے۔",
|
||||
"settings.permissions.section.tools": "اوزار",
|
||||
"settings.permissions.toast.updateFailed.title": "اجازتوں کو اپ ڈیٹ کرنے میں ناکام",
|
||||
"settings.permissions.action.allow": "اجازت دیں۔",
|
||||
"settings.permissions.action.ask": "پوچھیں",
|
||||
"settings.permissions.action.deny": "انکار کریں",
|
||||
"settings.permissions.tool.read.title": "پڑھیں",
|
||||
"settings.permissions.tool.read.description": "فائل پڑھنا (فائل کے راستے سے میل کھاتا ہے)",
|
||||
"settings.permissions.tool.edit.title": "ترمیم کریں۔",
|
||||
"settings.permissions.tool.edit.description": "فائلوں میں ترمیم کریں، بشمول ترامیم، تحریریں اور پیچ",
|
||||
"settings.permissions.tool.glob.title": "گلوب",
|
||||
"settings.permissions.tool.glob.description": "گلوب پیٹرن کا استعمال کرتے ہوئے فائلوں کو میچ کریں۔",
|
||||
"settings.permissions.tool.grep.title": "گریپ",
|
||||
"settings.permissions.tool.grep.description": "ریگولر ایکسپریشنز کا استعمال کرتے ہوئے فائل کا مواد تلاش کریں۔",
|
||||
"settings.permissions.tool.list.title": "فہرست",
|
||||
"settings.permissions.tool.list.description": "ڈائریکٹری میں فائلوں کی فہرست بنائیں",
|
||||
"settings.permissions.tool.bash.title": "باش",
|
||||
"settings.permissions.tool.bash.description": "شیل کمانڈز چلائیں۔",
|
||||
"settings.permissions.tool.task.title": "کام",
|
||||
"settings.permissions.tool.task.description": "ذیلی ایجنٹس چلائیں۔",
|
||||
"settings.permissions.tool.skill.title": "ہنر",
|
||||
"settings.permissions.tool.skill.description": "نام سے ایک مہارت لوڈ کریں۔",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "زبان کے سرور کے سوالات چلائیں۔",
|
||||
"settings.permissions.tool.todowrite.title": "ٹوڈو لکھیں۔",
|
||||
"settings.permissions.tool.todowrite.description": "ٹوڈو لسٹ کو اپ ڈیٹ کریں۔",
|
||||
"settings.permissions.tool.webfetch.title": "ویب بازیافت",
|
||||
"settings.permissions.tool.webfetch.description": "URL سے مواد حاصل کریں۔",
|
||||
"settings.permissions.tool.websearch.title": "ویب تلاش",
|
||||
"settings.permissions.tool.websearch.description": "ویب پر تلاش کریں۔",
|
||||
"settings.permissions.tool.external_directory.title": "بیرونی ڈائریکٹری",
|
||||
"settings.permissions.tool.external_directory.description": "پروجیکٹ ڈائرکٹری سے باہر فائلوں تک رسائی حاصل کریں۔",
|
||||
"settings.permissions.tool.doom_loop.title": "ڈوم لوپ",
|
||||
"settings.permissions.tool.doom_loop.description": "ایک جیسی ان پٹ کے ساتھ بار بار ٹول کالز کا پتہ لگائیں۔",
|
||||
"session.delete.failed.title": "سیشن کو حذف کرنے میں ناکام",
|
||||
"session.delete.title": "سیشن کو حذف کریں۔",
|
||||
"session.delete.confirm": 'سیشن "{{name}}" کو حذف کریں؟',
|
||||
"session.delete.button": "سیشن کو حذف کریں۔",
|
||||
"workspace.new": "نئی ورک اسپیس",
|
||||
"workspace.type.local": "مقامی",
|
||||
"workspace.type.sandbox": "سینڈ باکس",
|
||||
"workspace.create.failed.title": "ورک اسپیس بنانے میں ناکام",
|
||||
"workspace.delete.failed.title": "ورک اسپیس کو حذف کرنے میں ناکام",
|
||||
"workspace.resetting.title": "ورک اسپیس ری سیٹ کی جا رہی ہے",
|
||||
"workspace.resetting.description": "اس میں ایک منٹ لگ سکتا ہے۔",
|
||||
"workspace.reset.failed.title": "ورک اسپیس کو ری سیٹ کرنے میں ناکام",
|
||||
"workspace.reset.success.title": "ورک اسپیس ری سیٹ",
|
||||
"workspace.reset.success.description": "ورک اسپیس اب ڈیفالٹ برانچ سے میل کھاتا ہے۔",
|
||||
"workspace.error.stillPreparing": "ورک اسپیس ابھی بھی تیار ہو رہی ہے۔",
|
||||
"workspace.status.checking": "غیر ضم شدہ تبدیلیوں کی جانچ ہو رہی ہے...",
|
||||
"workspace.status.error": "گٹ کی حیثیت کی تصدیق کرنے سے قاصر۔",
|
||||
"workspace.status.clean": "کوئی غیر ضم شدہ تبدیلی نہیں ملی۔",
|
||||
"workspace.status.dirty": "اس ورک اسپیس میں غیر ضم شدہ تبدیلیاں ملی ہیں۔",
|
||||
"workspace.delete.title": "ورک اسپیس کو حذف کریں۔",
|
||||
"workspace.delete.confirm": 'ورک اسپیس "{{name}}" کو حذف کریں؟',
|
||||
"workspace.delete.button": "ورک اسپیس کو حذف کریں۔",
|
||||
"workspace.reset.title": "ورک اسپیس کو ری سیٹ کریں۔",
|
||||
"workspace.reset.confirm": 'ورک اسپیس "{{name}}" کو ری سیٹ کریں؟',
|
||||
"workspace.reset.button": "ورک اسپیس کو ری سیٹ کریں۔",
|
||||
"workspace.reset.archived.none": "کوئی فعال سیشن آرکائیو نہیں کیا جائے گا۔",
|
||||
"workspace.reset.archived.one": "1 سیشن آرکائیو کیا جائے گا۔",
|
||||
"workspace.reset.archived.many": "{{count}} سیشنز آرکائیو کیے جائیں گے۔",
|
||||
"workspace.reset.note": "یہ ڈیفالٹ برانچ سے ملنے کے لیے ورک اسپیس کو دوبارہ ترتیب دے گا۔",
|
||||
}
|
||||
@@ -1,1025 +0,0 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Đề xuất",
|
||||
"command.category.view": "Xem",
|
||||
"command.category.project": "Dự án",
|
||||
"command.category.provider": "Nhà cung cấp",
|
||||
"command.category.server": "Máy chủ",
|
||||
"command.category.session": "Phiên",
|
||||
"command.category.theme": "Chủ đề",
|
||||
"command.category.language": "Ngôn ngữ",
|
||||
"command.category.file": "Tệp",
|
||||
"command.category.context": "Ngữ cảnh",
|
||||
"command.category.terminal": "Terminal",
|
||||
"command.category.model": "Mô hình",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Tác nhân",
|
||||
"command.category.permissions": "Quyền",
|
||||
"command.category.workspace": "Không gian làm việc",
|
||||
"command.category.settings": "Cài đặt",
|
||||
"theme.scheme.system": "Hệ thống",
|
||||
"theme.scheme.light": "Sáng",
|
||||
"theme.scheme.dark": "Tối",
|
||||
"command.sidebar.toggle": "Bật/tắt thanh bên",
|
||||
"command.project.open": "Mở dự án",
|
||||
"command.project.previous": "Dự án trước đó",
|
||||
"command.project.next": "Dự án tiếp theo",
|
||||
"command.project.index": "Chuyển sang dự án {{index}}",
|
||||
"command.provider.connect": "Kết nối nhà cung cấp",
|
||||
"command.server.switch": "Chuyển máy chủ",
|
||||
"command.settings.open": "Mở cài đặt",
|
||||
"command.session.previous": "Phiên trước",
|
||||
"command.session.next": "Phiên tiếp theo",
|
||||
"command.session.previous.unseen": "Phiên chưa đọc trước đó",
|
||||
"command.session.next.unseen": "Phiên chưa đọc tiếp theo",
|
||||
"command.session.archive": "Lưu trữ phiên",
|
||||
"command.palette": "Bảng lệnh",
|
||||
"command.theme.cycle": "Chuyển chủ đề",
|
||||
"command.theme.set": "Sử dụng chủ đề: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Chuyển chế độ màu",
|
||||
"command.theme.scheme.set": "Sử dụng bảng màu: {{scheme}}",
|
||||
"command.language.cycle": "Chuyển ngôn ngữ",
|
||||
"command.language.set": "Sử dụng ngôn ngữ: {{language}}",
|
||||
"command.session.new": "Phiên mới",
|
||||
"command.file.open": "Mở tệp",
|
||||
"command.tab.close": "Đóng tab",
|
||||
"command.tab.reopenClosed": "Mở lại tab đã đóng",
|
||||
"command.context.addSelection": "Thêm lựa chọn vào ngữ cảnh",
|
||||
"command.context.addSelection.description": "Thêm các dòng đã chọn từ tệp hiện tại",
|
||||
"command.input.focus": "Tập trung vào ô nhập",
|
||||
"command.terminal.toggle": "Bật/tắt terminal",
|
||||
"command.fileTree.toggle": "Bật/tắt cây tệp",
|
||||
"command.review.toggle": "Bật/tắt phần xem lại",
|
||||
"command.terminal.new": "Terminal mới",
|
||||
"command.terminal.new.description": "Tạo một tab terminal mới",
|
||||
"command.steps.toggle": "Bật/tắt các bước",
|
||||
"command.steps.toggle.description": "Hiển thị hoặc ẩn các bước cho tin nhắn hiện tại",
|
||||
"command.message.previous": "Tin nhắn trước đó",
|
||||
"command.message.previous.description": "Đi tới tin nhắn người dùng trước đó",
|
||||
"command.message.next": "Tin nhắn tiếp theo",
|
||||
"command.message.next.description": "Chuyển tới tin nhắn người dùng tiếp theo",
|
||||
"command.model.choose": "Chọn mô hình",
|
||||
"command.model.choose.description": "Chọn một mô hình khác",
|
||||
"command.mcp.toggle": "Bật/tắt MCP",
|
||||
"command.mcp.toggle.description": "Bật hoặc tắt MCP",
|
||||
"command.agent.cycle": "Chuyển tác nhân",
|
||||
"command.agent.cycle.description": "Chuyển sang tác nhân tiếp theo",
|
||||
"command.agent.cycle.reverse": "Chuyển tác nhân theo chiều ngược",
|
||||
"command.agent.cycle.reverse.description": "Chuyển sang tác nhân trước đó",
|
||||
"command.model.variant.cycle": "Chuyển mức độ suy luận",
|
||||
"command.model.variant.cycle.description": "Chuyển sang mức nỗ lực tiếp theo",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Lời nhắc",
|
||||
"command.permissions.autoaccept.enable": "Tự động chấp nhận quyền",
|
||||
"command.permissions.autoaccept.disable": "Dừng tự động chấp nhận quyền",
|
||||
"command.workspace.toggle": "Bật/tắt không gian làm việc",
|
||||
"command.workspace.toggle.description": "Bật hoặc tắt nhiều không gian làm việc trong thanh bên",
|
||||
"command.session.undo": "Hoàn tác",
|
||||
"command.session.undo.description": "Hoàn tác tin nhắn cuối cùng",
|
||||
"command.session.redo": "Làm lại",
|
||||
"command.session.redo.description": "Làm lại tin nhắn đã hoàn tác gần đây nhất",
|
||||
"command.session.compact": "Nén phiên",
|
||||
"command.session.compact.description": "Tóm tắt phiên để giảm kích thước ngữ cảnh",
|
||||
"command.session.fork": "Tách nhánh từ tin nhắn",
|
||||
"command.session.fork.description": "Tạo phiên mới từ tin nhắn trước đó",
|
||||
"command.session.share": "Chia sẻ phiên",
|
||||
"command.session.share.description": "Chia sẻ phiên này và sao chép URL vào bảng tạm",
|
||||
"command.session.unshare": "Ngừng chia sẻ phiên",
|
||||
"command.session.unshare.description": "Dừng chia sẻ phiên này",
|
||||
"palette.search.placeholder": "Tìm kiếm tệp, lệnh và phiên",
|
||||
"palette.search.placeholder.home": "Tìm kiếm lệnh và phiên",
|
||||
"palette.empty": "Không tìm thấy kết quả nào",
|
||||
"palette.group.commands": "Lệnh",
|
||||
"palette.group.files": "Tệp",
|
||||
"dialog.provider.search.placeholder": "Tìm kiếm nhà cung cấp",
|
||||
"dialog.provider.empty": "Không tìm thấy nhà cung cấp nào",
|
||||
"dialog.provider.group.popular": "Phổ biến",
|
||||
"dialog.provider.group.other": "Khác",
|
||||
"dialog.provider.custom.label": "Nhà cung cấp tương thích OpenAI tùy chỉnh",
|
||||
"dialog.provider.tag.recommended": "Đề xuất",
|
||||
"dialog.provider.opencode.note": "Các mô hình được tuyển chọn, gồm Claude, GPT, Gemini và nhiều mô hình khác",
|
||||
"dialog.provider.opencode.tagline": "Các mô hình tối ưu hóa đáng tin cậy",
|
||||
"dialog.provider.opencodeGo.tagline": "Đăng ký chi phí thấp cho mọi người",
|
||||
"dialog.provider.anthropic.note": "Truy cập trực tiếp các mô hình Claude, bao gồm Pro và Max",
|
||||
"dialog.provider.copilot.note": "Các mô hình AI hỗ trợ lập trình qua GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Các mô hình GPT nhanh và mạnh mẽ cho tác vụ AI đa dụng",
|
||||
"dialog.provider.google.note": "Các mô hình Gemini cho phản hồi nhanh, có cấu trúc",
|
||||
"dialog.provider.openrouter.note": "Truy cập tất cả các mô hình được hỗ trợ từ một nhà cung cấp",
|
||||
"dialog.provider.vercel.note": "Truy cập thống nhất vào các mô hình AI với tính năng định tuyến thông minh",
|
||||
"dialog.model.select.title": "Chọn mô hình",
|
||||
"dialog.model.search.placeholder": "Tìm kiếm mô hình",
|
||||
"dialog.model.empty": "Không có kết quả mô hình",
|
||||
"dialog.model.manage": "Quản lý mô hình",
|
||||
"dialog.model.manage.description": "Tùy chỉnh mô hình nào xuất hiện trong bộ chọn mô hình.",
|
||||
"dialog.model.manage.provider.toggle": "Bật/tắt tất cả mô hình {{provider}}",
|
||||
"dialog.model.unpaid.freeModels.title": "Các mô hình miễn phí do OpenCode cung cấp",
|
||||
"dialog.model.unpaid.addMore.title": "Thêm nhiều mô hình từ các nhà cung cấp phổ biến",
|
||||
"dialog.model.unpaid.viewMoreProviders": "Xem hơn 70 nhà cung cấp khác",
|
||||
"dialog.provider.viewAll": "Hiển thị thêm nhà cung cấp",
|
||||
"provider.connect.title": "Kết nối {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Đăng nhập bằng Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Chọn phương thức đăng nhập cho {{provider}}.",
|
||||
"provider.connect.method.apiKey": "Khóa API",
|
||||
"provider.connect.status.inProgress": "Đang ủy quyền...",
|
||||
"provider.connect.status.waiting": "Đang chờ ủy quyền...",
|
||||
"provider.connect.status.failed": "Ủy quyền thất bại: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Nhập khóa API {{provider}} để kết nối tài khoản và sử dụng các mô hình {{provider}} trong OpenCode.",
|
||||
"provider.connect.apiKey.label": "Khóa API {{provider}}",
|
||||
"provider.connect.apiKey.placeholder": "khóa API",
|
||||
"provider.connect.apiKey.required": "Cần có khóa API",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen cho phép bạn truy cập một bộ mô hình được tuyển chọn, tối ưu hóa và đáng tin cậy dành cho tác nhân lập trình.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"Chỉ với một khóa API, bạn sẽ có quyền truy cập vào các mô hình như Claude, GPT, Gemini, GLM và hơn thế nữa.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Truy cập ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": " để lấy khóa API của bạn.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Truy cập ",
|
||||
"provider.connect.oauth.code.visit.link": "liên kết này",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
" để lấy mã ủy quyền, kết nối tài khoản và sử dụng các mô hình {{provider}} trong OpenCode.",
|
||||
"provider.connect.oauth.code.label": "Mã ủy quyền {{method}}",
|
||||
"provider.connect.oauth.code.placeholder": "Mã ủy quyền",
|
||||
"provider.connect.oauth.code.required": "Cần có mã ủy quyền",
|
||||
"provider.connect.oauth.code.invalid": "Mã ủy quyền không hợp lệ",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Truy cập ",
|
||||
"provider.connect.oauth.auto.visit.link": "liên kết này",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" và nhập mã bên dưới để kết nối tài khoản của bạn và sử dụng các mô hình {{provider}} trong OpenCode.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Mã xác nhận",
|
||||
"provider.connect.toast.connected.title": "{{provider}} đã kết nối",
|
||||
"provider.connect.toast.connected.description": "Các mô hình {{provider}} hiện đã sẵn sàng để sử dụng.",
|
||||
"provider.custom.title": "Nhà cung cấp tùy chỉnh",
|
||||
"provider.custom.description.prefix": "Định cấu hình nhà cung cấp tương thích OpenAI. Xem ",
|
||||
"provider.custom.description.link": "tài liệu cấu hình nhà cung cấp",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "ID nhà cung cấp",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Chữ thường, số, dấu gạch nối hoặc dấu gạch dưới",
|
||||
"provider.custom.field.name.label": "Tên hiển thị",
|
||||
"provider.custom.field.name.placeholder": "Nhà cung cấp AI của tôi",
|
||||
"provider.custom.field.baseURL.label": "URL cơ sở",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Khóa API",
|
||||
"provider.custom.field.apiKey.placeholder": "khóa API",
|
||||
"provider.custom.field.apiKey.description": "Không bắt buộc. Để trống nếu bạn quản lý xác thực thông qua tiêu đề.",
|
||||
"provider.custom.models.label": "Mô hình",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "Tên",
|
||||
"provider.custom.models.name.placeholder": "Tên hiển thị",
|
||||
"provider.custom.models.remove": "Xóa mô hình",
|
||||
"provider.custom.models.add": "Thêm mô hình",
|
||||
"provider.custom.headers.label": "Header (tùy chọn)",
|
||||
"provider.custom.headers.key.label": "Header",
|
||||
"provider.custom.headers.key.placeholder": "Header-Name",
|
||||
"provider.custom.headers.value.label": "Giá trị",
|
||||
"provider.custom.headers.value.placeholder": "giá trị",
|
||||
"provider.custom.headers.remove": "Xóa header",
|
||||
"provider.custom.headers.add": "Thêm header",
|
||||
"provider.custom.error.providerID.required": "Bắt buộc phải có ID nhà cung cấp",
|
||||
"provider.custom.error.providerID.format": "Sử dụng chữ cái viết thường, số, dấu gạch nối hoặc dấu gạch dưới",
|
||||
"provider.custom.error.providerID.exists": "ID nhà cung cấp này đã tồn tại",
|
||||
"provider.custom.error.name.required": "Tên hiển thị là bắt buộc",
|
||||
"provider.custom.error.baseURL.required": "Bắt buộc phải có URL cơ sở",
|
||||
"provider.custom.error.baseURL.format": "Phải bắt đầu bằng http:// hoặc https://",
|
||||
"provider.custom.error.required": "Bắt buộc",
|
||||
"provider.custom.error.duplicate": "Trùng lặp",
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} bị ngắt kết nối",
|
||||
"provider.disconnect.toast.disconnected.description": "Các mô hình {{provider}} không còn khả dụng.",
|
||||
"model.tag.free": "Miễn phí",
|
||||
"model.tag.latest": "Mới nhất",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "văn bản",
|
||||
"model.input.image": "hình ảnh",
|
||||
"model.input.audio": "âm thanh",
|
||||
"model.input.video": "video",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Cho phép: {{inputs}}",
|
||||
"model.tooltip.context.label": "Ngữ cảnh",
|
||||
"model.tooltip.inputs": "Đầu vào",
|
||||
"model.tooltip.model": "Mô hình",
|
||||
"model.tooltip.provider": "Nhà cung cấp",
|
||||
"model.tooltip.reasoning": "Lý luận",
|
||||
"model.tooltip.reasoning.allowed": "Cho phép suy luận",
|
||||
"model.tooltip.reasoning.none": "Không hỗ trợ suy luận",
|
||||
"model.tooltip.context": "Giới hạn ngữ cảnh {{limit}}",
|
||||
"common.search.placeholder": "Tìm kiếm",
|
||||
"common.goBack": "Quay lại",
|
||||
"common.goForward": "Tiến tới",
|
||||
"common.loading": "Đang tải",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Hủy",
|
||||
"common.clear": "Xóa",
|
||||
"common.open": "Mở",
|
||||
"common.connect": "Kết nối",
|
||||
"common.disconnect": "Ngắt kết nối",
|
||||
"common.continue": "Tiếp tục",
|
||||
"common.submit": "Gửi",
|
||||
"common.save": "Lưu",
|
||||
"common.saving": "Đang lưu...",
|
||||
"common.default": "Mặc định",
|
||||
"common.attachment": "tệp đính kèm",
|
||||
"prompt.placeholder.shell": "Nhập lệnh shell... {{example}}",
|
||||
"prompt.placeholder.normal": 'Hỏi bất cứ điều gì... "{{example}}"',
|
||||
"prompt.placeholder.simple": "Hỏi bất cứ điều gì...",
|
||||
"prompt.placeholder.summarizeComments": "Tóm tắt các bình luận…",
|
||||
"prompt.placeholder.summarizeComment": "Tóm tắt bình luận…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Lời nhắc",
|
||||
"prompt.mode.shell.exit": "esc để thoát",
|
||||
"session.child.promptDisabled": "Không thể gửi lời nhắc trong phiên tác nhân phụ.",
|
||||
"session.child.backToParent": "Quay lại phiên chính.",
|
||||
"prompt.example.1": "Sửa TODO trong cơ sở mã",
|
||||
"prompt.example.2": "Ngăn xếp công nghệ của dự án này là gì?",
|
||||
"prompt.example.3": "Sửa các bài kiểm tra bị hỏng",
|
||||
"prompt.example.4": "Giải thích cách xác thực hoạt động",
|
||||
"prompt.example.5": "Tìm và sửa các lỗ hổng bảo mật",
|
||||
"prompt.example.6": "Thêm bài kiểm tra đơn vị cho dịch vụ người dùng",
|
||||
"prompt.example.7": "Tái cấu trúc hàm này để dễ đọc hơn",
|
||||
"prompt.example.8": "Lỗi này có nghĩa là gì?",
|
||||
"prompt.example.9": "Giúp tôi gỡ lỗi vấn đề này",
|
||||
"prompt.example.10": "Tạo tài liệu API",
|
||||
"prompt.example.11": "Tối ưu hóa truy vấn cơ sở dữ liệu",
|
||||
"prompt.example.12": "Thêm xác thực đầu vào",
|
||||
"prompt.example.13": "Tạo một thành phần mới cho...",
|
||||
"prompt.example.14": "Làm cách nào để triển khai dự án này?",
|
||||
"prompt.example.15": "Xem lại mã của tôi để biết các phương pháp hay nhất",
|
||||
"prompt.example.16": "Thêm xử lý lỗi vào hàm này",
|
||||
"prompt.example.17": "Giải thích mẫu biểu thức chính quy này",
|
||||
"prompt.example.18": "Chuyển đổi cái này thành TypeScript",
|
||||
"prompt.example.19": "Thêm ghi nhật ký trong toàn bộ cơ sở mã",
|
||||
"prompt.example.20": "Những phụ thuộc nào đã lỗi thời?",
|
||||
"prompt.example.21": "Giúp tôi viết kịch bản di chuyển",
|
||||
"prompt.example.22": "Triển khai bộ nhớ đệm cho điểm cuối này",
|
||||
"prompt.example.23": "Thêm phân trang vào danh sách này",
|
||||
"prompt.example.24": "Tạo lệnh CLI cho...",
|
||||
"prompt.example.25": "Các biến môi trường hoạt động như thế nào ở đây?",
|
||||
"prompt.popover.emptyResults": "Không có kết quả phù hợp",
|
||||
"prompt.popover.emptyCommands": "Không có lệnh phù hợp",
|
||||
"prompt.dropzone.label": "Thả hình ảnh, tệp PDF hoặc tệp văn bản vào đây",
|
||||
"prompt.dropzone.file.label": "Thả để @mention tệp",
|
||||
"prompt.slash.badge.custom": "tùy chỉnh",
|
||||
"prompt.slash.badge.skill": "kỹ năng",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "hiện hoạt",
|
||||
"prompt.context.includeActiveFile": "Bao gồm tệp hiện hoạt",
|
||||
"prompt.context.removeActiveFile": "Xóa tệp hiện hoạt khỏi ngữ cảnh",
|
||||
"prompt.context.removeFile": "Xóa tệp khỏi ngữ cảnh",
|
||||
"prompt.action.attachFile": "Thêm tệp",
|
||||
"prompt.menu.addImagesAndFiles": "Thêm tệp và nội dung khác",
|
||||
"prompt.menu.imagesAndFiles": "Hình ảnh và tệp",
|
||||
"prompt.menu.commands": "Lệnh",
|
||||
"prompt.menu.context": "Ngữ cảnh",
|
||||
"prompt.menu.shellCommand": "Lệnh shell",
|
||||
"prompt.attachment.remove": "Xóa tệp đính kèm",
|
||||
"prompt.action.send": "Gửi",
|
||||
"prompt.action.stop": "Dừng",
|
||||
"prompt.toast.pasteUnsupported.title": "Tệp đính kèm không được hỗ trợ",
|
||||
"prompt.toast.pasteUnsupported.description": "Chỉ có thể đính kèm hình ảnh, tệp PDF hoặc tệp văn bản ở đây.",
|
||||
"prompt.toast.attachmentDuplicate.title": "Tệp này đã được tải lên",
|
||||
"prompt.toast.modelAgentRequired.title": "Chọn tác nhân và mô hình",
|
||||
"prompt.toast.modelAgentRequired.description": "Chọn một tác nhân và mô hình trước khi gửi lời nhắc.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Không tạo được worktree",
|
||||
"prompt.toast.sessionCreateFailed.title": "Không tạo được phiên",
|
||||
"prompt.toast.shellSendFailed.title": "Không gửi được lệnh shell",
|
||||
"prompt.toast.commandSendFailed.title": "Không gửi được lệnh",
|
||||
"prompt.toast.promptSendFailed.title": "Không gửi được lời nhắc",
|
||||
"prompt.toast.promptSendFailed.description": "Không thể truy xuất phiên",
|
||||
"dialog.mcp.title": "MCP",
|
||||
"dialog.mcp.description": "{{enabled}} trong số {{total}} đã bật",
|
||||
"dialog.mcp.empty": "Không có MCP nào được định cấu hình",
|
||||
"dialog.lsp.empty": "LSP được tự động phát hiện từ các loại tệp",
|
||||
"dialog.plugins.empty": "Các plugin được định cấu hình trong opencode.json",
|
||||
"mcp.status.connected": "đã kết nối",
|
||||
"mcp.status.failed": "thất bại",
|
||||
"mcp.status.needs_auth": "cần xác thực",
|
||||
"mcp.status.disabled": "đã tắt",
|
||||
"mcp.auth.clickToAuthenticate": "Bấm để xác thực",
|
||||
"dialog.fork.empty": "Không có tin nhắn nào để phân nhánh",
|
||||
"dialog.directory.search.placeholder": "Tìm kiếm thư mục",
|
||||
"dialog.directory.empty": "Không tìm thấy thư mục nào",
|
||||
"dialog.directory.action.selectFile": "Chọn tệp",
|
||||
"dialog.directory.action.selectFolder": "Chọn thư mục",
|
||||
"dialog.directory.root": "Gốc",
|
||||
"dialog.directory.parent": "Thư mục mẹ",
|
||||
"dialog.directory.readError": "Không thể đọc thư mục này",
|
||||
"app.server.unreachable": "Không thể đạt tới {{server}}",
|
||||
"app.server.retrying": "Đang tự động thử lại...",
|
||||
"app.server.otherServers": "Máy chủ khác",
|
||||
"dialog.server.title": "Máy chủ",
|
||||
"dialog.server.description": "Chuyển máy chủ OpenCode mà ứng dụng này kết nối tới.",
|
||||
"dialog.server.search.placeholder": "Tìm kiếm máy chủ",
|
||||
"dialog.server.empty": "Chưa có máy chủ",
|
||||
"dialog.server.add.title": "Thêm máy chủ",
|
||||
"dialog.server.add.url": "Địa chỉ máy chủ",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Không thể kết nối với máy chủ",
|
||||
"dialog.server.add.checking": "Đang kiểm tra...",
|
||||
"dialog.server.add.button": "Thêm máy chủ",
|
||||
"dialog.server.add.name": "Tên máy chủ (tùy chọn)",
|
||||
"dialog.server.add.namePlaceholder": "Máy chủ cục bộ",
|
||||
"dialog.server.add.username": "Tên người dùng (tùy chọn)",
|
||||
"dialog.server.add.usernamePlaceholder": "tên người dùng",
|
||||
"dialog.server.add.password": "Mật khẩu (tùy chọn)",
|
||||
"dialog.server.add.passwordPlaceholder": "mật khẩu",
|
||||
"dialog.server.edit.title": "Chỉnh sửa máy chủ",
|
||||
"dialog.server.default.title": "Máy chủ mặc định",
|
||||
"dialog.server.default.description":
|
||||
"Kết nối với máy chủ này khi khởi chạy ứng dụng thay vì khởi động máy chủ cục bộ. Yêu cầu khởi động lại.",
|
||||
"dialog.server.default.none": "Không có máy chủ nào được chọn",
|
||||
"dialog.server.default.set": "Đặt máy chủ hiện tại làm mặc định",
|
||||
"dialog.server.default.clear": "Xóa",
|
||||
"dialog.server.action.remove": "Xóa máy chủ",
|
||||
"dialog.server.menu.edit": "Chỉnh sửa",
|
||||
"dialog.server.menu.default": "Đặt làm mặc định",
|
||||
"dialog.server.menu.defaultRemove": "Xóa mặc định",
|
||||
"dialog.server.menu.delete": "Xóa",
|
||||
"dialog.server.current": "Máy chủ hiện tại",
|
||||
"dialog.server.status.default": "Mặc định",
|
||||
"wsl.server.add": "Thêm máy chủ WSL",
|
||||
"wsl.server.addShort": "Thêm WSL",
|
||||
"wsl.server.label": "WSL",
|
||||
"wsl.server.menu.label": "Máy chủ WSL",
|
||||
"wsl.server.retryStart": "Thử khởi động lại",
|
||||
"wsl.server.updating": "Đang cập nhật...",
|
||||
"wsl.onboarding.step.distro": "Chọn bản phân phối",
|
||||
"wsl.onboarding.step.opencode": "OpenCode",
|
||||
"wsl.onboarding.checkingRuntime": "Đang kiểm tra WSL...",
|
||||
"wsl.onboarding.restartRequired": "Windows cần khởi động lại để hoàn tất cài đặt WSL.",
|
||||
"wsl.onboarding.ready": "WSL đã sẵn sàng.",
|
||||
"wsl.onboarding.required": "WSL là bắt buộc để tiếp tục.",
|
||||
"wsl.onboarding.checkingDistros": "Đang kiểm tra các bản phân phối...",
|
||||
"wsl.onboarding.installingDistro": "Đang cài đặt {{distro}}...",
|
||||
"wsl.onboarding.checkingDistro": "Đang kiểm tra {{distro}}...",
|
||||
"wsl.onboarding.listingDistros": "Liệt kê các bản phân phối...",
|
||||
"wsl.onboarding.distroReady": "{{distro}} đã sẵn sàng.",
|
||||
"wsl.onboarding.distroNotInstalled": "{{distro}} chưa được cài đặt.",
|
||||
"wsl.onboarding.openDistroOnce": "Mở {{distro}} một lần để hoàn tất thiết lập.",
|
||||
"wsl.onboarding.finishingDistro": "Đang hoàn tất thiết lập cho {{distro}}.",
|
||||
"wsl.onboarding.pickDistro": "Chọn một bản phân phối hoặc cài đặt một bản dưới đây.",
|
||||
"wsl.onboarding.checkingOpencode": "Đang kiểm tra OpenCode...",
|
||||
"wsl.onboarding.checkingOpencodeIn": "Đang kiểm tra OpenCode trong {{distro}}...",
|
||||
"wsl.onboarding.updatingOpencode": "Đang cập nhật OpenCode...",
|
||||
"wsl.onboarding.updatingOpencodeIn": "Đang cập nhật OpenCode trong {{distro}}...",
|
||||
"wsl.onboarding.updateOpencodeIn": "Cập nhật OpenCode trong {{distro}}.",
|
||||
"wsl.onboarding.updateOpencode": "Cập nhật OpenCode",
|
||||
"wsl.onboarding.opencodeReadyIn": "OpenCode đã sẵn sàng trong {{distro}}.",
|
||||
"wsl.onboarding.opencodeReady": "OpenCode đã sẵn sàng.",
|
||||
"wsl.onboarding.installOpencodeIn": "Cài đặt OpenCode trong {{distro}}.",
|
||||
"wsl.onboarding.installOpencode": "Cài đặt OpenCode",
|
||||
"wsl.onboarding.chooseDistroFirst": "Chọn một bản phân phối đầu tiên.",
|
||||
"wsl.onboarding.loadFailed": "Không tải được trạng thái WSL.",
|
||||
"wsl.onboarding.loading": "Đang tải...",
|
||||
"wsl.onboarding.installedDistros": "Các bản phân phối đã cài đặt",
|
||||
"wsl.onboarding.checkAgain": "Kiểm tra lại",
|
||||
"wsl.onboarding.distroStatus.ready": "Sẵn sàng",
|
||||
"wsl.onboarding.distroStatus.checking": "Đang kiểm tra...",
|
||||
"wsl.onboarding.distroStatus.opencodeMissing": "OpenCode chưa được cài đặt",
|
||||
"wsl.onboarding.distroStatus.missingTools": "Thiếu bash, curl",
|
||||
"wsl.onboarding.distroStatus.unsupported": "Không được hỗ trợ · Sử dụng WSL 2",
|
||||
"wsl.onboarding.needAnotherDistro": "Cần một bản phân phối khác?",
|
||||
"wsl.onboarding.needAnotherDistroHint": "Cài đặt bản phân phối Linux từ danh mục WSL",
|
||||
"wsl.onboarding.wslNotInstalled.title": "WSL chưa được cài đặt",
|
||||
"wsl.onboarding.wslNotInstalled.description":
|
||||
"Cần có WSL (Hệ thống con Windows dành cho Linux) trước khi OpenCode có thể thêm máy chủ WSL",
|
||||
"wsl.onboarding.wslUnavailable.title": "WSL không có sẵn",
|
||||
"wsl.onboarding.wslUnavailable.description": "OpenCode không thể xác minh WSL trên máy này.",
|
||||
"wsl.onboarding.installWsl": "Cài đặt WSL",
|
||||
"wsl.onboarding.windowsRestartRequired": "Khởi động lại Windows để hoàn tất cài đặt WSL, sau đó mở lại OpenCode.",
|
||||
"wsl.onboarding.next": "Tiếp theo",
|
||||
"wsl.onboarding.refresh": "Làm mới",
|
||||
"wsl.onboarding.allDistrosAdded": "Tất cả các bản phân phối đã cài đặt đều đã được thêm vào.",
|
||||
"wsl.onboarding.noDistros": "Chưa phát hiện thấy bản phân phối nào.",
|
||||
"wsl.onboarding.install": "Cài đặt",
|
||||
"wsl.onboarding.installing": "Đang cài đặt...",
|
||||
"wsl.onboarding.installDistro": "Cài đặt bản phân phối",
|
||||
"wsl.onboarding.searchDistros": "Tìm kiếm bản phân phối",
|
||||
"wsl.onboarding.wsl2Required": "WSL 2 là bắt buộc.",
|
||||
"wsl.onboarding.toolsRequired": "Bản phân phối này cần bash và curl.",
|
||||
"wsl.onboarding.openTerminal": "Mở terminal",
|
||||
"wsl.onboarding.path": "Đường dẫn: {{path}}",
|
||||
"wsl.onboarding.notFound": "không tìm thấy",
|
||||
"wsl.onboarding.version": "Phiên bản: {{version}}",
|
||||
"wsl.onboarding.unknown": "không rõ",
|
||||
"wsl.onboarding.desktopVersion": "Desktop {{version}}",
|
||||
"wsl.onboarding.versionMismatch": "Phiên bản đã cài đặt không khớp với phiên bản ứng dụng desktop.",
|
||||
"wsl.onboarding.adding": "Đang thêm...",
|
||||
"server.row.noUsername": "không có tên người dùng",
|
||||
"dialog.project.edit.title": "Chỉnh sửa dự án",
|
||||
"dialog.project.edit.name": "Tên",
|
||||
"dialog.project.edit.icon": "Biểu tượng",
|
||||
"dialog.project.edit.icon.alt": "Biểu tượng dự án",
|
||||
"dialog.project.edit.icon.hint": "Nhấp hoặc kéo hình ảnh",
|
||||
"dialog.project.edit.icon.recommended": "Khuyến nghị: 128x128px",
|
||||
"dialog.project.edit.color": "Màu sắc",
|
||||
"dialog.project.edit.color.select": "Chọn màu {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Tập lệnh khởi động không gian làm việc",
|
||||
"dialog.project.edit.worktree.startup.description": "Chạy sau khi tạo không gian làm việc mới (worktree).",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "ví dụ: bun install",
|
||||
"dialog.releaseNotes.action.getStarted": "Bắt đầu",
|
||||
"dialog.releaseNotes.action.next": "Tiếp theo",
|
||||
"dialog.releaseNotes.action.hideFuture": "Không hiển thị lại",
|
||||
"dialog.releaseNotes.media.alt": "Xem trước bản phát hành",
|
||||
"context.breakdown.title": "Phân tích ngữ cảnh",
|
||||
"context.breakdown.note":
|
||||
'Phân tích gần đúng của token đầu vào. "Khác" bao gồm các định nghĩa công cụ và chi phí chung.',
|
||||
"context.breakdown.system": "Hệ thống",
|
||||
"context.breakdown.user": "Người dùng",
|
||||
"context.breakdown.assistant": "Trợ lý",
|
||||
"context.breakdown.tool": "Lệnh gọi công cụ",
|
||||
"context.breakdown.other": "Khác",
|
||||
"context.systemPrompt.title": "Lời nhắc hệ thống",
|
||||
"context.rawMessages.title": "Tin nhắn thô",
|
||||
"context.stats.session": "Phiên",
|
||||
"context.stats.messages": "Tin nhắn",
|
||||
"context.stats.provider": "Nhà cung cấp",
|
||||
"context.stats.model": "Mô hình",
|
||||
"context.stats.limit": "Giới hạn ngữ cảnh",
|
||||
"context.stats.totalTokens": "Tổng số token",
|
||||
"context.stats.usage": "Mức sử dụng",
|
||||
"context.stats.inputTokens": "Token đầu vào",
|
||||
"context.stats.outputTokens": "Token đầu ra",
|
||||
"context.stats.reasoningTokens": "Token lý luận",
|
||||
"context.stats.cacheTokens": "Token bộ đệm (đọc/ghi)",
|
||||
"context.stats.userMessages": "Tin nhắn của người dùng",
|
||||
"context.stats.assistantMessages": "Tin nhắn trợ lý",
|
||||
"context.stats.totalCost": "Tổng chi phí",
|
||||
"context.stats.sessionCreated": "Đã tạo phiên",
|
||||
"context.stats.lastActivity": "Hoạt động cuối cùng",
|
||||
"context.usage.tokens": "Token",
|
||||
"context.usage.usage": "Mức sử dụng",
|
||||
"context.usage.cost": "Chi phí",
|
||||
"context.usage.clickToView": "Nhấn vào đây để xem ngữ cảnh",
|
||||
"context.usage.view": "Xem cách sử dụng ngữ cảnh",
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
"toast.language.title": "Ngôn ngữ",
|
||||
"toast.language.description": "Đã chuyển sang {{language}}",
|
||||
"toast.theme.title": "Đã chuyển chủ đề",
|
||||
"toast.scheme.title": "Cách phối màu",
|
||||
"toast.workspace.enabled.title": "Đã bật không gian làm việc",
|
||||
"toast.workspace.enabled.description": "Nhiều worktree hiện được hiển thị trên thanh bên",
|
||||
"toast.workspace.disabled.title": "Đã tắt không gian làm việc",
|
||||
"toast.workspace.disabled.description": "Chỉ worktree chính được hiển thị trong thanh bên",
|
||||
"toast.permissions.autoaccept.on.title": "Tự động chấp nhận quyền",
|
||||
"toast.permissions.autoaccept.on.description": "Yêu cầu quyền sẽ được tự động phê duyệt",
|
||||
"toast.permissions.autoaccept.off.title": "Đã dừng quyền tự động chấp nhận",
|
||||
"toast.permissions.autoaccept.off.description": "Yêu cầu quyền sẽ cần được phê duyệt",
|
||||
"toast.model.none.title": "Không có mô hình nào được chọn",
|
||||
"toast.model.none.description": "Kết nối nhà cung cấp để tóm tắt phiên này",
|
||||
"toast.file.loadFailed.title": "Không tải được tệp",
|
||||
"toast.file.listFailed.title": "Không thể liệt kê các tệp",
|
||||
"toast.context.noLineSelection.title": "Không có lựa chọn dòng",
|
||||
"toast.context.noLineSelection.description": "Trước tiên, hãy chọn một phạm vi dòng trong tab tệp.",
|
||||
"toast.session.share.copyFailed.title": "Không sao chép được URL vào bảng tạm",
|
||||
"toast.session.share.success.title": "Đã chia sẻ phiên",
|
||||
"toast.session.share.success.description": "Đã sao chép URL chia sẻ vào bảng tạm!",
|
||||
"toast.session.share.failed.title": "Không thể chia sẻ phiên",
|
||||
"toast.session.share.failed.description": "Đã xảy ra lỗi khi chia sẻ phiên",
|
||||
"toast.session.unshare.success.title": "Đã ngừng chia sẻ phiên",
|
||||
"toast.session.unshare.success.description": "Đã hủy chia sẻ phiên thành công!",
|
||||
"toast.session.unshare.failed.title": "Không hủy chia sẻ được phiên",
|
||||
"toast.session.unshare.failed.description": "Đã xảy ra lỗi khi hủy chia sẻ phiên",
|
||||
"toast.session.listFailed.title": "Không thể tải phiên cho {{project}}",
|
||||
"toast.project.reloadFailed.title": "Không thể tải lại {{project}}",
|
||||
"toast.update.title": "Đã có bản cập nhật",
|
||||
"toast.update.description": "Hiện đã có phiên bản mới của OpenCode ({{version}}) để cài đặt.",
|
||||
"toast.update.action.installRestart": "Cài đặt và khởi động lại",
|
||||
"toast.update.action.notYet": "Chưa",
|
||||
"error.page.title": "Đã xảy ra lỗi",
|
||||
"error.page.description": "Đã xảy ra lỗi khi tải ứng dụng.",
|
||||
"error.page.description.localServerStartup": "Đã xảy ra lỗi khi khởi động máy chủ cục bộ.",
|
||||
"error.page.details.label": "Chi tiết lỗi",
|
||||
"error.page.action.restart": "Khởi động lại",
|
||||
"error.page.action.report": "Báo cáo lỗi",
|
||||
"error.page.action.reported": "Đã báo lỗi",
|
||||
"error.page.action.exportLogs": "Xuất nhật ký",
|
||||
"error.page.action.checking": "Đang kiểm tra...",
|
||||
"error.page.action.checkUpdates": "Kiểm tra các bản cập nhật",
|
||||
"error.page.action.updateTo": "Cập nhật lên {{version}}",
|
||||
"error.page.circular": "[Vòng lặp]",
|
||||
"error.page.report.prefix": "Vui lòng báo cáo lỗi này cho nhóm OpenCode",
|
||||
"error.page.report.discord": "trên Discord",
|
||||
"error.page.version": "Phiên bản: {{version}}",
|
||||
"error.dev.rootNotFound":
|
||||
"Không tìm thấy phần tử gốc. Bạn đã quên thêm nó vào index.html của mình? Hoặc có thể thuộc tính id bị sai chính tả?",
|
||||
"error.serverSync.connectFailed": "Không thể kết nối với máy chủ. Có máy chủ nào đang chạy ở `{{url}}` không?",
|
||||
"error.serverSDK.noServerAvailable": "Không có máy chủ nào",
|
||||
"error.serverSDK.serverNotAvailable": "Máy chủ không có sẵn",
|
||||
"error.childStore.persistedCacheCreateFailed": "Không tạo được bộ nhớ đệm bền vững",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Không thể tạo siêu dữ liệu dự án bền vững",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Không thể tạo biểu tượng dự án bền vững",
|
||||
"error.childStore.storeCreateFailed": "Không tạo được kho lưu trữ",
|
||||
"directory.error.invalidUrl": "Thư mục không hợp lệ trong URL.",
|
||||
"error.chain.unknown": "Lỗi không xác định",
|
||||
"error.server.invalidConfiguration": "Cấu hình không hợp lệ",
|
||||
"error.chain.causedBy": "Gây ra bởi:",
|
||||
"error.chain.apiError": "Lỗi API",
|
||||
"error.chain.status": "Trạng thái: {{status}}",
|
||||
"error.chain.retryable": "Có thể thử lại: {{retryable}}",
|
||||
"error.chain.responseBody": "Nội dung phản hồi:\n{{body}}",
|
||||
"error.chain.didYouMean": "Có phải ý bạn là: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Không tìm thấy mô hình: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Kiểm tra tên nhà cung cấp/mô hình cấu hình (opencode.json) của bạn",
|
||||
"error.chain.mcpFailed": 'Máy chủ MCP "{{name}}" gặp lỗi. Lưu ý: OpenCode chưa hỗ trợ xác thực MCP.',
|
||||
"error.chain.providerAuthFailed": "Không xác thực được nhà cung cấp ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
'Không khởi tạo được nhà cung cấp "{{provider}}". Kiểm tra thông tin xác thực và cấu hình.',
|
||||
"error.chain.configJsonInvalid": "Tệp cấu hình tại {{path}} không phải là JSON(C) hợp lệ",
|
||||
"error.chain.configJsonInvalidWithMessage": "Tệp cấu hình tại {{path}} không phải là JSON(C) hợp lệ: {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
'Thư mục "{{dir}}" trong {{path}} không hợp lệ. Đổi tên thư mục thành "{{suggestion}}" hoặc xóa nó. Đây là một lỗi đánh máy phổ biến.',
|
||||
"error.chain.configFrontmatterError": "Không thể phân tích cú pháp frontmatter trong {{path}}:\n{{message}}",
|
||||
"error.chain.configInvalid": "Tệp cấu hình tại {{path}} không hợp lệ",
|
||||
"error.chain.configInvalidWithMessage": "Tệp cấu hình tại {{path}} không hợp lệ: {{message}}",
|
||||
"notification.permission.title": "Cần có sự cho phép",
|
||||
"notification.permission.description": "{{sessionTitle}} trong {{projectName}} cần có sự cho phép",
|
||||
"notification.question.title": "Câu hỏi",
|
||||
"notification.question.description": "{{sessionTitle}} trong {{projectName}} có câu hỏi",
|
||||
"notification.action.goToSession": "Đi đến phiên",
|
||||
"notification.session.responseReady.title": "Đã sẵn sàng phản hồi",
|
||||
"notification.session.error.title": "Lỗi phiên",
|
||||
"notification.session.error.fallbackDescription": "Đã xảy ra lỗi",
|
||||
"home.recentProjects": "dự án gần đây",
|
||||
"home.empty.title": "Không có dự án gần đây",
|
||||
"home.empty.description": "Bắt đầu bằng cách mở một dự án cục bộ",
|
||||
"home.title": "Trang chủ",
|
||||
"home.projects": "Dự án",
|
||||
"home.project.add": "Thêm dự án",
|
||||
"home.recentlyClosed": "Đã đóng gần đây",
|
||||
"home.server.collapse": "Thu gọn các dự án máy chủ",
|
||||
"home.server.expand": "Mở rộng dự án máy chủ",
|
||||
"home.sessions.search.placeholder": "Tìm kiếm phiên",
|
||||
"home.sessions.search.placeholder.scoped": "Tìm kiếm phiên trong {{scope}}",
|
||||
"home.sessions.search.sessions": "Phiên",
|
||||
"home.sessions.search.noResults": "Không tìm thấy phiên nào cho {{query}}",
|
||||
"home.sessions.empty": "Chưa có gì ở đây",
|
||||
"home.sessions.empty.description": "Tạo một phiên để bắt đầu",
|
||||
"home.sessions.group.today": "Hôm nay",
|
||||
"home.sessions.group.yesterday": "Hôm qua",
|
||||
"home.sessions.group.older": "Cũ hơn",
|
||||
"home.providerTip": "Kết nối với hơn 75 nhà cung cấp để sử dụng các mô hình khác, bao gồm Claude, GPT, Gemini, v.v.",
|
||||
"session.tab.session": "Phiên",
|
||||
"session.tab.review": "Xem lại",
|
||||
"session.tab.context": "Ngữ cảnh",
|
||||
"session.tab.unknown": "Phiên không xác định",
|
||||
"session.panel.reviewAndFiles": "Xem lại và tệp",
|
||||
"session.error.notFound": "Không thể tìm thấy phiên này",
|
||||
"session.error.notFound.description": "Tab này trỏ đến một phiên không còn tồn tại trên máy chủ này.",
|
||||
"session.error.notFound.closeTab": "Đóng tab",
|
||||
"session.error.serverConnection": "Không thể kết nối với máy chủ này",
|
||||
"session.review.filesChanged": "Số tệp đã thay đổi: {{count}}",
|
||||
"session.review.change.one": "Thay đổi",
|
||||
"session.review.change.other": "Thay đổi",
|
||||
"session.review.loadingChanges": "Đang tải các thay đổi...",
|
||||
"session.review.empty": "Chưa có thay đổi nào trong phiên này",
|
||||
"session.review.noVcs": "Không phát hiện hệ thống quản lý phiên bản Git nên không thể hiển thị thay đổi",
|
||||
"session.review.noVcs.createGit.title": "Tạo kho lưu trữ Git",
|
||||
"session.review.noVcs.createGit.description": "Theo dõi, xem xét và hoàn tác các thay đổi trong dự án này",
|
||||
"session.review.noVcs.createGit.actionLoading": "Đang tạo kho lưu trữ Git...",
|
||||
"session.review.noVcs.createGit.action": "Tạo kho lưu trữ Git",
|
||||
"session.review.noSnapshot":
|
||||
"Theo dõi ảnh chụp nhanh bị tắt trong cấu hình, do đó các thay đổi về phiên không khả dụng",
|
||||
"session.review.noChanges": "Không có thay đổi",
|
||||
"session.review.noUncommittedChanges": "Chưa có thay đổi nào chưa commit",
|
||||
"session.review.noBranchChanges": "Chưa có thay đổi nhánh",
|
||||
"session.files.selectToOpen": "Chọn một tệp để mở",
|
||||
"session.files.all": "Tất cả tệp",
|
||||
"session.files.empty": "Không có tệp",
|
||||
"session.files.binaryContent": "Tệp nhị phân (không thể hiển thị nội dung)",
|
||||
"session.messages.renderEarlier": "Hiển thị tin nhắn trước đó",
|
||||
"session.messages.loadingEarlier": "Đang tải tin nhắn trước đó...",
|
||||
"session.messages.loadEarlier": "Tải tin nhắn trước đó",
|
||||
"session.messages.loading": "Đang tải tin nhắn...",
|
||||
"session.messages.jumpToLatest": "Chuyển đến mới nhất",
|
||||
"session.context.addToContext": "Thêm {{selection}} vào ngữ cảnh",
|
||||
"session.todo.title": "việc cần làm",
|
||||
"session.todo.collapse": "Thu gọn",
|
||||
"session.todo.expand": "Mở rộng",
|
||||
"session.todo.progress": "{{done}} trong số {{total}} việc cần làm đã hoàn thành",
|
||||
"session.question.progress": "{{current}} trong số {{total}} câu hỏi",
|
||||
"session.question.minimize": "Giảm thiểu câu hỏi",
|
||||
"session.question.restore": "Khôi phục câu hỏi",
|
||||
"session.question.pending.one": "{{count}} câu hỏi đang chờ xử lý",
|
||||
"session.question.pending.other": "{{count}} câu hỏi đang chờ xử lý",
|
||||
"session.followupDock.summary.one": "{{count}} tin nhắn đang chờ",
|
||||
"session.followupDock.summary.other": "{{count}} tin nhắn đang chờ",
|
||||
"session.followupDock.sendNow": "Gửi ngay bây giờ",
|
||||
"session.followupDock.edit": "Chỉnh sửa",
|
||||
"session.followupDock.collapse": "Thu gọn tin nhắn đang chờ",
|
||||
"session.followupDock.expand": "Mở rộng tin nhắn đang chờ",
|
||||
"session.revertDock.summary.one": "{{count}} tin nhắn đã hoàn tác",
|
||||
"session.revertDock.summary.other": "{{count}} tin nhắn đã hoàn tác",
|
||||
"session.revertDock.collapse": "Thu gọn tin nhắn đã hoàn tác",
|
||||
"session.revertDock.expand": "Mở rộng tin nhắn đã hoàn tác",
|
||||
"session.revertDock.restore": "Khôi phục tin nhắn",
|
||||
"session.new.title": "Xây dựng bất cứ thứ gì",
|
||||
"session.new.project.new": "Dự án mới",
|
||||
"session.new.project.search": "Tìm kiếm dự án",
|
||||
"session.new.project.add": "Thêm dự án",
|
||||
"session.new.worktree.main": "Nhánh chính",
|
||||
"session.new.worktree.mainWithBranch": "Nhánh chính ({{branch}})",
|
||||
"session.new.worktree.create": "Tạo mới worktree",
|
||||
"session.new.workspace.runIn": "Chạy phiên trong",
|
||||
"session.new.workspace.triggerLocal": "Cục bộ",
|
||||
"session.new.workspace.local": "Kho lưu trữ cục bộ",
|
||||
"session.new.workspace.existing": "Không gian làm việc…",
|
||||
"session.new.git.none": "Không dùng Git",
|
||||
"session.new.lastModified": "Sửa đổi lần cuối",
|
||||
"session.header.search.placeholder": "Tìm kiếm {{project}}",
|
||||
"session.header.searchFiles": "Tìm kiếm tệp",
|
||||
"session.header.openIn": "Mở trong",
|
||||
"session.header.open.action": "Mở {{app}}",
|
||||
"session.header.open.ariaLabel": "Mở trong {{app}}",
|
||||
"session.header.open.menu": "Tùy chọn mở",
|
||||
"session.header.open.copyPath": "Sao chép đường dẫn",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "File Explorer",
|
||||
"session.header.open.fileManager": "Trình quản lý tệp",
|
||||
"session.header.reveal.finder": "Hiển thị trong Finder",
|
||||
"session.header.reveal.fileExplorer": "Hiển thị trong File Explorer",
|
||||
"session.header.reveal.containingFolder": "Mở thư mục chứa",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Terminal",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
"status.popover.trigger": "Trạng thái",
|
||||
"status.popover.ariaLabel": "Cấu hình máy chủ",
|
||||
"status.popover.tab.servers": "Máy chủ",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Plugin",
|
||||
"status.popover.action.manageServers": "Quản lý máy chủ",
|
||||
"session.share.popover.title": "Xuất bản trên web",
|
||||
"session.share.popover.description.shared":
|
||||
"Phiên này được công khai trên web. Nó có thể truy cập được bởi bất kỳ ai có liên kết.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Chia sẻ phiên công khai trên web. Nó sẽ có thể truy cập được bởi bất kỳ ai có liên kết.",
|
||||
"session.share.action.share": "Chia sẻ",
|
||||
"session.share.action.publish": "Xuất bản",
|
||||
"session.share.action.publishing": "Đang xuất bản...",
|
||||
"session.share.action.unpublish": "Hủy xuất bản",
|
||||
"session.share.action.unpublishing": "Đang hủy xuất bản...",
|
||||
"session.share.action.view": "Xem",
|
||||
"session.share.copy.copied": "Đã sao chép",
|
||||
"session.share.copy.copyLink": "Sao chép liên kết",
|
||||
"lsp.tooltip.none": "Không có máy chủ LSP",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
"prompt.loading": "Đang tải lời nhắc...",
|
||||
"terminal.loading": "Đang tải terminal...",
|
||||
"terminal.title": "Terminal",
|
||||
"terminal.title.numbered": "Terminal {{number}}",
|
||||
"terminal.close": "Đóng terminal",
|
||||
"terminal.connectionLost.title": "Mất kết nối",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket đóng bất thường: {{code}}",
|
||||
"terminal.connectionLost.description":
|
||||
"Kết nối terminal bị gián đoạn. Điều này có thể xảy ra khi máy chủ khởi động lại.",
|
||||
"common.closeTab": "Đóng tab",
|
||||
"common.dismiss": "Bỏ qua",
|
||||
"common.moreCountSuffix": " (+{{count}} thêm)",
|
||||
"common.requestFailed": "Không thực hiện được yêu cầu",
|
||||
"common.moreOptions": "Nhiều lựa chọn hơn",
|
||||
"common.learnMore": "Tìm hiểu thêm",
|
||||
"common.rename": "Đổi tên",
|
||||
"common.reset": "Đặt lại",
|
||||
"common.archive": "Lưu trữ",
|
||||
"common.delete": "Xóa",
|
||||
"common.close": "Đóng",
|
||||
"common.edit": "Chỉnh sửa",
|
||||
"common.loadMore": "Tải thêm",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Phím cách",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "không rõ",
|
||||
"common.time.justNow": "Vừa rồi",
|
||||
"common.time.minutesAgo.short": "{{count}} phút trước",
|
||||
"common.time.hoursAgo.short": "{{count}} giờ trước",
|
||||
"common.time.daysAgo.short": "{{count}} ngày trước",
|
||||
"sidebar.menu.toggle": "Bật/tắt menu",
|
||||
"sidebar.nav.projectsAndSessions": "Dự án và phiên",
|
||||
"sidebar.settings": "Cài đặt",
|
||||
"sidebar.help": "Trợ giúp",
|
||||
"sidebar.workspaces.enable": "Bật không gian làm việc",
|
||||
"sidebar.workspaces.disable": "Tắt không gian làm việc",
|
||||
"sidebar.gettingStarted.title": "Bắt đầu",
|
||||
"sidebar.gettingStarted.line1": "OpenCode bao gồm các mô hình miễn phí để bạn có thể bắt đầu ngay lập tức.",
|
||||
"sidebar.gettingStarted.line2":
|
||||
"Kết nối với bất kỳ nhà cung cấp nào để sử dụng các mô hình như Claude, GPT, Gemini, v.v.",
|
||||
"sidebar.project.recentSessions": "Phiên gần đây",
|
||||
"sidebar.project.viewAllSessions": "Xem tất cả các phiên",
|
||||
"sidebar.project.clearNotifications": "Xóa thông báo",
|
||||
"sidebar.empty.title": "Không có dự án nào mở",
|
||||
"sidebar.empty.description": "Mở một dự án để bắt đầu",
|
||||
"debugBar.ariaLabel": "Chẩn đoán hiệu suất phát triển",
|
||||
"debugBar.na": "không có",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Lần chuyển tuyến hoàn tất gần nhất có truy cập trang phiên, được đo từ lúc bộ định tuyến bắt đầu đến khung hình đầu tiên sau khi ổn định.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Số khung hình mỗi giây trong 5 giây qua.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Thời gian tạo khung hình tệ nhất trong 5 giây vừa qua.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Số khung hình mất hơn 32ms trong 5 giây qua.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Thời gian bị chặn và số lượng nhiệm vụ dài trong 5 giây qua. Nhiệm vụ tối đa: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Độ trễ đầu vào được quan sát tồi tệ nhất trong 5 giây qua.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Thời lượng tương tác gần đúng trong 5 giây qua. Đây giống như INP, không phải là Web Vitals chính thức INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Sự thay đổi bố cục tích lũy cho thời gian tồn tại của ứng dụng hiện tại.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Bộ nhớ heap JS đã dùng so với giới hạn heap. Chỉ hỗ trợ Chromium.",
|
||||
"debugBar.mem.tip": "Đã sử dụng JS heap so với giới hạn heap. {{used}} của {{limit}}.",
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
"settings.section.desktop": "Desktop",
|
||||
"settings.section.server": "Máy chủ",
|
||||
"settings.tab.general": "Tổng quan",
|
||||
"settings.tab.shortcuts": "Phím tắt",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "WSL tích hợp",
|
||||
"settings.desktop.wsl.description": "Chạy máy chủ OpenCode bên trong WSL trên Windows.",
|
||||
"settings.general.section.appearance": "Giao diện",
|
||||
"settings.general.section.advanced": "Nâng cao",
|
||||
"settings.general.section.notifications": "Thông báo hệ thống",
|
||||
"settings.general.section.updates": "Cập nhật",
|
||||
"settings.general.section.sounds": "Hiệu ứng âm thanh",
|
||||
"settings.general.section.feed": "Nguồn cấp",
|
||||
"settings.general.section.display": "Hiển thị",
|
||||
"settings.general.row.language.title": "Ngôn ngữ",
|
||||
"settings.general.row.language.description": "Thay đổi ngôn ngữ hiển thị cho OpenCode",
|
||||
"settings.general.row.shell.title": "Shell terminal",
|
||||
"settings.general.row.shell.description": "Shell được terminal và các công cụ của tác nhân sử dụng",
|
||||
"settings.general.row.shell.autoDefault": "Tự động (Mặc định)",
|
||||
"settings.general.row.shell.terminalOnly": "chỉ terminal",
|
||||
"settings.general.row.appearance.title": "Giao diện",
|
||||
"settings.general.row.appearance.description": "Tùy chỉnh giao diện của OpenCode trên thiết bị",
|
||||
"settings.general.row.colorScheme.title": "Cách phối màu",
|
||||
"settings.general.row.colorScheme.description": "Chọn xem OpenCode tuân theo hệ thống, chủ đề sáng hay tối",
|
||||
"settings.general.row.theme.title": "Chủ đề",
|
||||
"settings.general.row.theme.description": "Tùy chỉnh chủ đề của OpenCode.",
|
||||
"settings.general.row.font.title": "Phông chữ mã",
|
||||
"settings.general.row.font.description": "Tùy chỉnh phông chữ được sử dụng trong khối mã",
|
||||
"settings.general.row.terminalFont.title": "Phông chữ terminal",
|
||||
"settings.general.row.terminalFont.description": "Tùy chỉnh phông chữ được sử dụng trong terminal",
|
||||
"settings.general.row.uiFont.title": "Phông chữ giao diện",
|
||||
"settings.general.row.uiFont.description": "Tùy chỉnh phông chữ dùng trong toàn bộ giao diện",
|
||||
"settings.general.row.followup.title": "Cách xử lý lời nhắc tiếp theo",
|
||||
"settings.general.row.followup.description":
|
||||
"Chọn để lời nhắc tiếp theo điều hướng phiên ngay lập tức hoặc chờ trong hàng đợi",
|
||||
"settings.general.row.followup.option.queue": "Xếp hàng",
|
||||
"settings.general.row.followup.option.steer": "Điều hướng",
|
||||
"settings.general.row.showFileTree.title": "Cây tệp",
|
||||
"settings.general.row.showFileTree.description": "Hiển thị bảng cây tệp trong phiên",
|
||||
"settings.general.row.showNavigation.title": "Điều khiển điều hướng",
|
||||
"settings.general.row.showNavigation.description":
|
||||
"Hiển thị các nút quay lại và tiến lên trên thanh tiêu đề của màn hình",
|
||||
"settings.general.row.showSearch.title": "Bảng lệnh",
|
||||
"settings.general.row.showSearch.description": "Hiển thị nút bảng tìm kiếm và lệnh trong thanh tiêu đề",
|
||||
"settings.general.row.showTerminal.title": "Terminal",
|
||||
"settings.general.row.showTerminal.description": "Hiển thị nút terminal trên thanh tiêu đề của ứng dụng desktop",
|
||||
"settings.general.row.showStatus.title": "Trạng thái máy chủ",
|
||||
"settings.general.row.showStatus.description": "Hiển thị nút trạng thái máy chủ trên thanh tiêu đề",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "Điều hướng dưới cùng",
|
||||
"settings.general.row.mobileTitlebarBottom.description":
|
||||
"Đặt thanh tiêu đề và tab phiên ở cuối màn hình trên thiết bị di động",
|
||||
"settings.general.row.showCustomAgents.title": "Hiển thị tác nhân",
|
||||
"settings.general.row.showCustomAgents.description":
|
||||
"Chuyển đổi giữa các tác nhân trong trình soạn thảo. Khi ẩn, tác nhân mặc định là Build.",
|
||||
"settings.general.row.reasoningSummaries.title": "Hiển thị tóm tắt lý luận",
|
||||
"settings.general.row.reasoningSummaries.description": "Hiển thị tóm tắt lý luận mô hình trong dòng thời gian",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Mở rộng các phần của công cụ shell",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Hiển thị các phần công cụ shell được mở rộng theo mặc định trong dòng thời gian",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Mở rộng các phần công cụ chỉnh sửa",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Hiển thị các phần công cụ chỉnh sửa, viết và vá lỗi được mở rộng theo mặc định trong dòng thời gian",
|
||||
"settings.general.row.newInterface.title": "Bố cục mới",
|
||||
"settings.general.row.newInterface.badge": "Mới",
|
||||
"settings.general.row.newInterface.description":
|
||||
"Sử dụng các tab mới và bố cục trang chủ. Chuyển đổi giữa các bố cục trong một thời gian giới hạn.",
|
||||
"settings.general.row.newInterfaceNotice.title": "Bạn hiện đang sử dụng bố cục mới",
|
||||
"settings.general.row.newInterfaceNotice.description": "Bố cục trước đó không còn khả dụng",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "Bỏ qua",
|
||||
"settings.general.row.pinchZoom.title": "Chụm để thu phóng",
|
||||
"settings.general.row.pinchZoom.description": "Cho phép chụm bàn di chuột và cử chỉ cuộn Ctrl để thu phóng",
|
||||
"settings.general.row.wayland.title": "Sử dụng Wayland gốc",
|
||||
"settings.general.row.wayland.description": "Tắt tính năng dự phòng X11 trên Wayland. Yêu cầu khởi động lại.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"Trên Linux với màn hình có tốc độ làm mới hỗn hợp, Wayland gốc có thể ổn định hơn.",
|
||||
"settings.general.row.releaseNotes.title": "Ghi chú phát hành",
|
||||
"settings.general.row.releaseNotes.description": "Hiển thị cửa sổ bật lên Có gì mới sau khi cập nhật",
|
||||
"settings.updates.row.startup.title": "Kiểm tra cập nhật khi khởi động",
|
||||
"settings.updates.row.startup.description": "Tự động kiểm tra các bản cập nhật khi OpenCode khởi chạy",
|
||||
"settings.updates.row.check.title": "Kiểm tra các bản cập nhật",
|
||||
"settings.updates.row.check.description": "Kiểm tra thủ công các bản cập nhật và cài đặt nếu có",
|
||||
"settings.updates.action.checkNow": "Kiểm tra ngay",
|
||||
"settings.updates.action.checking": "Đang kiểm tra...",
|
||||
"settings.updates.action.downloading": "Đang tải xuống...",
|
||||
"settings.updates.action.installing": "Đang cài đặt...",
|
||||
"settings.updates.toast.latest.title": "Đã cập nhật",
|
||||
"settings.updates.toast.latest.description": "Bạn đang chạy phiên bản mới nhất của OpenCode.",
|
||||
"sound.option.none": "Không có",
|
||||
"sound.option.alert01": "Alert 01",
|
||||
"sound.option.alert02": "Alert 02",
|
||||
"sound.option.alert03": "Alert 03",
|
||||
"sound.option.alert04": "Alert 04",
|
||||
"sound.option.alert05": "Alert 05",
|
||||
"sound.option.alert06": "Alert 06",
|
||||
"sound.option.alert07": "Alert 07",
|
||||
"sound.option.alert08": "Alert 08",
|
||||
"sound.option.alert09": "Alert 09",
|
||||
"sound.option.alert10": "Alert 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"settings.general.notifications.agent.title": "Tác nhân",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Hiển thị thông báo hệ thống khi tác nhân hoàn thành hoặc cần chú ý",
|
||||
"settings.general.notifications.permissions.title": "Quyền",
|
||||
"settings.general.notifications.permissions.description": "Hiển thị thông báo hệ thống khi cần có sự cho phép",
|
||||
"settings.general.notifications.errors.title": "Lỗi",
|
||||
"settings.general.notifications.errors.description": "Hiển thị thông báo hệ thống khi xảy ra lỗi",
|
||||
"settings.general.sounds.agent.title": "Tác nhân",
|
||||
"settings.general.sounds.agent.description": "Phát âm thanh khi tác nhân hoàn thành hoặc cần chú ý",
|
||||
"settings.general.sounds.permissions.title": "Quyền",
|
||||
"settings.general.sounds.permissions.description": "Phát âm thanh khi cần có sự cho phép",
|
||||
"settings.general.sounds.errors.title": "Lỗi",
|
||||
"settings.general.sounds.errors.description": "Phát âm thanh khi xảy ra lỗi",
|
||||
"settings.shortcuts.title": "Phím tắt",
|
||||
"settings.shortcuts.reset.button": "Đặt lại về mặc định",
|
||||
"settings.shortcuts.reset.toast.title": "Đặt lại phím tắt",
|
||||
"settings.shortcuts.reset.toast.description": "Phím tắt đã được đặt lại về mặc định.",
|
||||
"settings.shortcuts.conflict.title": "Phím tắt đã được sử dụng",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} đã được gán cho {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Chưa được chỉ định",
|
||||
"settings.shortcuts.pressKeys": "Nhấn phím",
|
||||
"settings.shortcuts.search.placeholder": "Tìm kiếm phím tắt",
|
||||
"settings.shortcuts.search.empty": "Không tìm thấy phím tắt",
|
||||
"settings.shortcuts.group.general": "Tổng quan",
|
||||
"settings.shortcuts.group.session": "Phiên",
|
||||
"settings.shortcuts.group.navigation": "Điều hướng",
|
||||
"settings.shortcuts.group.modelAndAgent": "Mô hình và tác nhân",
|
||||
"settings.shortcuts.group.terminal": "Terminal",
|
||||
"settings.shortcuts.group.prompt": "Lời nhắc",
|
||||
"settings.providers.title": "Nhà cung cấp",
|
||||
"settings.providers.description": "Cài đặt nhà cung cấp sẽ được cấu hình ở đây.",
|
||||
"settings.providers.section.connected": "Nhà cung cấp được kết nối",
|
||||
"settings.providers.connected.empty": "Không có nhà cung cấp được kết nối",
|
||||
"settings.providers.connected.environmentDescription": "Đã kết nối từ các biến môi trường của bạn",
|
||||
"settings.providers.section.popular": "Nhà cung cấp phổ biến",
|
||||
"settings.providers.custom.description": "Thêm nhà cung cấp tương thích OpenAI bằng URL cơ sở.",
|
||||
"settings.providers.tag.environment": "Môi trường",
|
||||
"settings.providers.tag.config": "Cấu hình",
|
||||
"settings.providers.tag.custom": "Tùy chỉnh",
|
||||
"settings.providers.tag.other": "Khác",
|
||||
"settings.models.title": "Mô hình",
|
||||
"settings.models.description": "Cài đặt mô hình sẽ được cấu hình ở đây.",
|
||||
"settings.agents.title": "Tác nhân",
|
||||
"settings.agents.description": "Cài đặt tác nhân sẽ được cấu hình ở đây.",
|
||||
"settings.commands.title": "Lệnh",
|
||||
"settings.commands.description": "Cài đặt lệnh sẽ được cấu hình ở đây.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "Có thể cấu hình cài đặt MCP tại đây.",
|
||||
"settings.permissions.title": "Quyền",
|
||||
"settings.permissions.description": "Kiểm soát những công cụ mà máy chủ có thể sử dụng theo mặc định.",
|
||||
"settings.permissions.section.tools": "Công cụ",
|
||||
"settings.permissions.toast.updateFailed.title": "Không cập nhật được quyền",
|
||||
"settings.permissions.action.allow": "Cho phép",
|
||||
"settings.permissions.action.ask": "Hỏi",
|
||||
"settings.permissions.action.deny": "Từ chối",
|
||||
"settings.permissions.tool.read.title": "Đọc",
|
||||
"settings.permissions.tool.read.description": "Đọc một tệp (khớp với đường dẫn tệp)",
|
||||
"settings.permissions.tool.edit.title": "Chỉnh sửa",
|
||||
"settings.permissions.tool.edit.description": "Sửa đổi tệp, bao gồm chỉnh sửa, ghi và vá lỗi",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Khớp tệp bằng mẫu glob",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Tìm kiếm nội dung tệp bằng cách sử dụng biểu thức thông thường",
|
||||
"settings.permissions.tool.list.title": "Danh sách",
|
||||
"settings.permissions.tool.list.description": "Liệt kê các tệp trong một thư mục",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Chạy lệnh shell",
|
||||
"settings.permissions.tool.task.title": "Nhiệm vụ",
|
||||
"settings.permissions.tool.task.description": "Khởi chạy tác nhân phụ",
|
||||
"settings.permissions.tool.skill.title": "Kỹ năng",
|
||||
"settings.permissions.tool.skill.description": "Tải một kỹ năng theo tên",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Chạy truy vấn máy chủ ngôn ngữ",
|
||||
"settings.permissions.tool.todowrite.title": "Ghi việc cần làm",
|
||||
"settings.permissions.tool.todowrite.description": "Cập nhật danh sách việc cần làm",
|
||||
"settings.permissions.tool.webfetch.title": "Tìm nạp web",
|
||||
"settings.permissions.tool.webfetch.description": "Tìm nạp nội dung từ URL",
|
||||
"settings.permissions.tool.websearch.title": "Tìm kiếm trên web",
|
||||
"settings.permissions.tool.websearch.description": "Tìm kiếm trên web",
|
||||
"settings.permissions.tool.external_directory.title": "Thư mục bên ngoài",
|
||||
"settings.permissions.tool.external_directory.description": "Truy cập các tệp bên ngoài thư mục dự án",
|
||||
"settings.permissions.tool.doom_loop.title": "Vòng lặp vô hạn",
|
||||
"settings.permissions.tool.doom_loop.description":
|
||||
"Phát hiện các lệnh gọi công cụ lặp lại với đầu vào giống hệt nhau",
|
||||
"session.delete.failed.title": "Không thể xóa phiên",
|
||||
"session.delete.title": "Xóa phiên",
|
||||
"session.delete.confirm": 'Xóa phiên "{{name}}"?',
|
||||
"session.delete.button": "Xóa phiên",
|
||||
"workspace.new": "Không gian làm việc mới",
|
||||
"workspace.type.local": "cục bộ",
|
||||
"workspace.type.sandbox": "sandbox",
|
||||
"workspace.create.failed.title": "Không tạo được không gian làm việc",
|
||||
"workspace.delete.failed.title": "Không xóa được không gian làm việc",
|
||||
"workspace.resetting.title": "Đặt lại không gian làm việc",
|
||||
"workspace.resetting.description": "Việc này có thể mất một phút.",
|
||||
"workspace.reset.failed.title": "Không thể đặt lại không gian làm việc",
|
||||
"workspace.reset.success.title": "Đặt lại không gian làm việc",
|
||||
"workspace.reset.success.description": "Không gian làm việc bây giờ khớp với nhánh mặc định.",
|
||||
"workspace.error.stillPreparing": "Không gian làm việc vẫn đang chuẩn bị",
|
||||
"workspace.status.checking": "Đang kiểm tra các thay đổi chưa được hợp nhất...",
|
||||
"workspace.status.error": "Không thể xác minh trạng thái git.",
|
||||
"workspace.status.clean": "Không phát hiện thấy thay đổi chưa hợp nhất nào.",
|
||||
"workspace.status.dirty": "Đã phát hiện thấy các thay đổi chưa được hợp nhất trong không gian làm việc này.",
|
||||
"workspace.delete.title": "Xóa không gian làm việc",
|
||||
"workspace.delete.confirm": 'Xóa không gian làm việc "{{name}}"?',
|
||||
"workspace.delete.button": "Xóa không gian làm việc",
|
||||
"workspace.reset.title": "Đặt lại không gian làm việc",
|
||||
"workspace.reset.confirm": 'Đặt lại không gian làm việc "{{name}}"?',
|
||||
"workspace.reset.button": "Đặt lại không gian làm việc",
|
||||
"workspace.reset.archived.none": "Không có phiên hoạt động nào sẽ được lưu trữ.",
|
||||
"workspace.reset.archived.one": "1 phiên sẽ được lưu trữ.",
|
||||
"workspace.reset.archived.many": "{{count}} phiên sẽ được lưu trữ.",
|
||||
"workspace.reset.note": "Điều này sẽ thiết lập lại không gian làm việc để phù hợp với nhánh mặc định.",
|
||||
}
|
||||
+94
-100
@@ -86,8 +86,8 @@ export const dict = {
|
||||
"command.model.choose": "选择模型",
|
||||
"command.model.choose.description": "选择不同的模型",
|
||||
|
||||
"command.mcp.toggle": "启用或禁用 MCP 服务器",
|
||||
"command.mcp.toggle.description": "启用或禁用 MCP 服务器",
|
||||
"command.mcp.toggle": "切换 MCPs",
|
||||
"command.mcp.toggle.description": "切换 MCPs",
|
||||
|
||||
"command.agent.cycle": "切换智能体",
|
||||
"command.agent.cycle.description": "切换到下一个智能体",
|
||||
@@ -110,9 +110,9 @@ export const dict = {
|
||||
"command.session.undo.description": "撤销上一条消息",
|
||||
"command.session.redo": "重做",
|
||||
"command.session.redo.description": "重做上一条撤销的消息",
|
||||
"command.session.compact": "压缩会话",
|
||||
"command.session.compact": "精简会话",
|
||||
"command.session.compact.description": "总结会话以减少上下文大小",
|
||||
"command.session.fork": "从消息创建新会话",
|
||||
"command.session.fork": "从消息分叉",
|
||||
"command.session.fork.description": "从之前的消息创建新会话",
|
||||
"command.session.share": "分享会话",
|
||||
"command.session.share.description": "分享此会话并将链接复制到剪贴板",
|
||||
@@ -129,17 +129,16 @@ export const dict = {
|
||||
"dialog.provider.empty": "未找到提供商",
|
||||
"dialog.provider.group.popular": "热门",
|
||||
"dialog.provider.group.other": "其他",
|
||||
"dialog.provider.custom.label": "自定义 OpenAI 兼容提供商",
|
||||
"dialog.provider.tag.recommended": "推荐",
|
||||
"dialog.provider.opencode.note": "精选模型,包括 Claude、GPT、Gemini 等",
|
||||
"dialog.provider.opencode.note": "使用 OpenCode Zen 或 API 密钥连接",
|
||||
"dialog.provider.opencode.tagline": "可靠的优化模型",
|
||||
"dialog.provider.opencodeGo.tagline": "适合所有人的低成本订阅",
|
||||
"dialog.provider.anthropic.note": "直接使用 Claude 模型,包括 Pro 和 Max",
|
||||
"dialog.provider.copilot.note": "通过 GitHub Copilot 使用辅助编程 AI 模型",
|
||||
"dialog.provider.openai.note": "适合快速处理各类 AI 任务的 GPT 模型",
|
||||
"dialog.provider.google.note": "可快速生成结构化回复的 Gemini 模型",
|
||||
"dialog.provider.openrouter.note": "通过一个提供商使用所有受支持的模型",
|
||||
"dialog.provider.vercel.note": "通过智能路由统一使用 AI 模型",
|
||||
"dialog.provider.anthropic.note": "使用 Claude Pro/Max 或 API 密钥连接",
|
||||
"dialog.provider.copilot.note": "使用 Copilot 或 API 密钥连接",
|
||||
"dialog.provider.openai.note": "使用 ChatGPT Pro/Plus 或 API 密钥连接",
|
||||
"dialog.provider.google.note": "使用 Google 账号或 API 密钥连接",
|
||||
"dialog.provider.openrouter.note": "使用 OpenRouter 账号或 API 密钥连接",
|
||||
"dialog.provider.vercel.note": "使用 Vercel 账号或 API 密钥连接",
|
||||
|
||||
"dialog.model.select.title": "选择模型",
|
||||
"dialog.model.search.placeholder": "搜索模型",
|
||||
@@ -149,7 +148,6 @@ export const dict = {
|
||||
"dialog.model.manage.provider.toggle": "切换所有 {{provider}} 模型",
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode 提供的免费模型",
|
||||
"dialog.model.unpaid.addMore.title": "从热门提供商添加更多模型",
|
||||
"dialog.model.unpaid.viewMoreProviders": "查看另外 70 多个提供商",
|
||||
|
||||
"dialog.provider.viewAll": "查看更多提供商",
|
||||
|
||||
@@ -161,7 +159,7 @@ export const dict = {
|
||||
"provider.connect.status.waiting": "等待授权...",
|
||||
"provider.connect.status.failed": "授权失败:{{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"输入你的 {{provider}} API 密钥以连接账户,并在 OpenCode 中使用 {{provider}} 模型。",
|
||||
"输入你的 {{provider}} API 密钥以连接帐户,并在 OpenCode 中使用 {{provider}} 模型。",
|
||||
"provider.connect.apiKey.label": "{{provider}} API 密钥",
|
||||
"provider.connect.apiKey.placeholder": "API 密钥",
|
||||
"provider.connect.apiKey.required": "API 密钥为必填项",
|
||||
@@ -172,14 +170,14 @@ export const dict = {
|
||||
"provider.connect.opencodeZen.visit.suffix": " 获取你的 API 密钥。",
|
||||
"provider.connect.oauth.code.visit.prefix": "访问 ",
|
||||
"provider.connect.oauth.code.visit.link": "此链接",
|
||||
"provider.connect.oauth.code.visit.suffix": " 获取授权码,以连接你的账户并在 OpenCode 中使用 {{provider}} 模型。",
|
||||
"provider.connect.oauth.code.visit.suffix": " 获取授权码,以连接你的帐户并在 OpenCode 中使用 {{provider}} 模型。",
|
||||
"provider.connect.oauth.code.label": "{{method}} 授权码",
|
||||
"provider.connect.oauth.code.placeholder": "授权码",
|
||||
"provider.connect.oauth.code.required": "授权码为必填项",
|
||||
"provider.connect.oauth.code.invalid": "授权码无效",
|
||||
"provider.connect.oauth.auto.visit.prefix": "访问 ",
|
||||
"provider.connect.oauth.auto.visit.link": "此链接",
|
||||
"provider.connect.oauth.auto.visit.suffix": " 并输入以下代码,以连接你的账户并在 OpenCode 中使用 {{provider}} 模型。",
|
||||
"provider.connect.oauth.auto.visit.suffix": " 并输入以下代码,以连接你的帐户并在 OpenCode 中使用 {{provider}} 模型。",
|
||||
"provider.connect.oauth.auto.confirmationCode": "确认码",
|
||||
"provider.connect.toast.connected.title": "{{provider}} 已连接",
|
||||
"provider.connect.toast.connected.description": "现在可以使用 {{provider}} 模型了。",
|
||||
@@ -235,7 +233,7 @@ export const dict = {
|
||||
"model.input.image": "图像",
|
||||
"model.input.audio": "音频",
|
||||
"model.input.video": "视频",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "支持:{{inputs}}",
|
||||
"model.tooltip.context.label": "上下文",
|
||||
"model.tooltip.inputs": "输入",
|
||||
@@ -255,7 +253,7 @@ export const dict = {
|
||||
"common.clear": "清除",
|
||||
"common.connect": "连接",
|
||||
"common.disconnect": "断开连接",
|
||||
"common.continue": "继续",
|
||||
"common.continue": "提交",
|
||||
"common.submit": "提交",
|
||||
"common.save": "保存",
|
||||
"common.saving": "保存中...",
|
||||
@@ -318,22 +316,21 @@ export const dict = {
|
||||
"prompt.action.send": "发送",
|
||||
"prompt.action.stop": "停止",
|
||||
"prompt.toast.pasteUnsupported.title": "不支持的附件",
|
||||
"prompt.toast.attachmentDuplicate.title": "此文件已上传",
|
||||
"prompt.toast.pasteUnsupported.description": "此处仅能附加图片、PDF 或文本文件。",
|
||||
"prompt.toast.modelAgentRequired.title": "请选择智能体和模型",
|
||||
"prompt.toast.modelAgentRequired.description": "发送提示前请先选择智能体和模型。",
|
||||
"prompt.toast.worktreeCreateFailed.title": "创建工作区失败",
|
||||
"prompt.toast.worktreeCreateFailed.title": "创建工作树失败",
|
||||
"prompt.toast.sessionCreateFailed.title": "创建会话失败",
|
||||
"prompt.toast.shellSendFailed.title": "发送 shell 命令失败",
|
||||
"prompt.toast.commandSendFailed.title": "发送命令失败",
|
||||
"prompt.toast.promptSendFailed.title": "发送提示失败",
|
||||
"prompt.toast.promptSendFailed.description": "无法获取会话",
|
||||
|
||||
"dialog.mcp.title": "MCP 服务器",
|
||||
"dialog.mcp.title": "MCPs",
|
||||
"dialog.mcp.description": "已启用 {{enabled}} / {{total}}",
|
||||
"dialog.mcp.empty": "未配置 MCP 服务器",
|
||||
"dialog.mcp.empty": "未配置 MCPs",
|
||||
|
||||
"dialog.lsp.empty": "已根据文件类型自动检测 LSP",
|
||||
"dialog.lsp.empty": "已从文件类型自动检测到 LSPs",
|
||||
|
||||
"dialog.plugins.empty": "在 opencode.json 中配置的插件",
|
||||
|
||||
@@ -343,7 +340,7 @@ export const dict = {
|
||||
"mcp.auth.clickToAuthenticate": "点击进行授权",
|
||||
"mcp.status.disabled": "已禁用",
|
||||
|
||||
"dialog.fork.empty": "没有可用于创建新会话的消息",
|
||||
"dialog.fork.empty": "没有可用于分叉的消息",
|
||||
|
||||
"dialog.directory.search.placeholder": "搜索文件夹",
|
||||
"dialog.directory.empty": "未找到文件夹",
|
||||
@@ -455,13 +452,13 @@ export const dict = {
|
||||
"dialog.project.edit.icon.hint": "点击或拖拽图片",
|
||||
"dialog.project.edit.icon.recommended": "建议:128x128px",
|
||||
"dialog.project.edit.color": "颜色",
|
||||
"dialog.project.edit.color.select": "选择颜色:{{color}}",
|
||||
"dialog.project.edit.color.select": "选择{{color}}颜色",
|
||||
"dialog.project.edit.worktree.startup": "工作区启动脚本",
|
||||
"dialog.project.edit.worktree.startup.description": "创建新工作区 (worktree) 后运行。",
|
||||
"dialog.project.edit.worktree.startup.description": "在创建新的工作区 (worktree) 后运行。",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "例如 bun install",
|
||||
|
||||
"context.breakdown.title": "上下文细分",
|
||||
"context.breakdown.note": "输入令牌的大致细分。“其他”包含工具定义和开销。",
|
||||
"context.breakdown.title": "上下文拆分",
|
||||
"context.breakdown.note": "输入 token 的大致拆分。“其他”包含工具定义和开销。",
|
||||
"context.breakdown.system": "系统",
|
||||
"context.breakdown.user": "用户",
|
||||
"context.breakdown.assistant": "助手",
|
||||
@@ -474,18 +471,18 @@ export const dict = {
|
||||
"context.stats.provider": "提供商",
|
||||
"context.stats.model": "模型",
|
||||
"context.stats.limit": "上下文限制",
|
||||
"context.stats.totalTokens": "令牌总数",
|
||||
"context.stats.totalTokens": "总 token",
|
||||
"context.stats.usage": "使用率",
|
||||
"context.stats.inputTokens": "输入令牌",
|
||||
"context.stats.outputTokens": "输出令牌",
|
||||
"context.stats.reasoningTokens": "推理令牌",
|
||||
"context.stats.cacheTokens": "缓存令牌(读/写)",
|
||||
"context.stats.inputTokens": "输入 token",
|
||||
"context.stats.outputTokens": "输出 token",
|
||||
"context.stats.reasoningTokens": "推理 token",
|
||||
"context.stats.cacheTokens": "缓存 token(读/写)",
|
||||
"context.stats.userMessages": "用户消息",
|
||||
"context.stats.assistantMessages": "助手消息",
|
||||
"context.stats.totalCost": "总成本",
|
||||
"context.stats.sessionCreated": "创建时间",
|
||||
"context.stats.lastActivity": "最后活动",
|
||||
"context.usage.tokens": "令牌数",
|
||||
"context.usage.tokens": "Token",
|
||||
"context.usage.usage": "使用率",
|
||||
"context.usage.cost": "成本",
|
||||
"context.usage.clickToView": "点击查看上下文",
|
||||
@@ -513,7 +510,7 @@ export const dict = {
|
||||
"toast.language.title": "语言",
|
||||
"toast.language.description": "已切换到{{language}}",
|
||||
"toast.theme.title": "主题已切换",
|
||||
"toast.scheme.title": "配色方案",
|
||||
"toast.scheme.title": "颜色方案",
|
||||
"toast.workspace.enabled.title": "工作区已启用",
|
||||
"toast.workspace.enabled.description": "侧边栏现在显示多个工作树",
|
||||
"toast.workspace.disabled.title": "工作区已禁用",
|
||||
@@ -571,7 +568,7 @@ export const dict = {
|
||||
"error.chain.didYouMean": "你是不是想输入:{{suggestions}}",
|
||||
"error.chain.modelNotFound": "未找到模型:{{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "请检查你的配置 (opencode.json) 中的 provider/model 名称",
|
||||
"error.chain.mcpFailed": 'MCP 服务器 "{{name}}" 启动失败。注意:OpenCode 暂不支持 MCP 认证。',
|
||||
"error.chain.mcpFailed": 'MCP 服务器 "{{name}}" 启动失败。注意: OpenCode 暂不支持 MCP 认证。',
|
||||
"error.chain.providerAuthFailed": "提供商认证失败({{provider}}):{{message}}",
|
||||
"error.chain.providerInitFailed": '无法初始化提供商 "{{provider}}"。请检查凭据和配置。',
|
||||
"error.chain.configJsonInvalid": "配置文件 {{path}} 不是有效的 JSON(C)",
|
||||
@@ -609,7 +606,7 @@ export const dict = {
|
||||
"home.sessions.group.today": "今天",
|
||||
"home.sessions.group.yesterday": "昨天",
|
||||
"home.sessions.group.older": "更早",
|
||||
"home.providerTip": "连接 75 个以上的提供商,使用包括 Claude、GPT、Gemini 在内的更多模型",
|
||||
"home.providerTip": "连接 75 个以上的提供商,使用 Claude、GPT、Gemini 等其他模型",
|
||||
|
||||
"session.tab.session": "会话",
|
||||
"session.tab.review": "审查",
|
||||
@@ -620,12 +617,12 @@ export const dict = {
|
||||
"session.error.notFound.description": "此标签页指向的会话已不存在于此服务器上。",
|
||||
"session.error.notFound.closeTab": "关闭标签页",
|
||||
"session.error.serverConnection": "无法连接到此服务器",
|
||||
"session.review.filesChanged": "{{count}} 个文件已更改",
|
||||
"session.review.filesChanged": "{{count}} 个文件变更",
|
||||
"session.review.change.one": "更改",
|
||||
"session.review.change.other": "更改",
|
||||
"session.review.loadingChanges": "正在加载更改...",
|
||||
"session.review.empty": "此会话暂无更改",
|
||||
"session.review.noVcs": "未检测到 Git,无法显示更改",
|
||||
"session.review.noVcs": "未检测到 Git 版本控制系统,无法显示更改",
|
||||
"session.review.noSnapshot": "配置中已禁用快照跟踪,因此会话更改不可用",
|
||||
"session.review.noChanges": "无更改",
|
||||
"session.review.noUncommittedChanges": "尚无未提交的更改",
|
||||
@@ -643,8 +640,8 @@ export const dict = {
|
||||
"session.todo.title": "待办事项",
|
||||
"session.todo.collapse": "折叠",
|
||||
"session.todo.expand": "展开",
|
||||
"session.question.minimize": "收起问题",
|
||||
"session.question.restore": "展开问题",
|
||||
"session.question.minimize": "最小化问题",
|
||||
"session.question.restore": "恢复问题",
|
||||
"session.question.pending.one": "{{count}} 个待处理问题",
|
||||
"session.question.pending.other": "{{count}} 个待处理问题",
|
||||
"session.followupDock.summary.one": "{{count}} 条排队消息",
|
||||
@@ -658,7 +655,7 @@ export const dict = {
|
||||
"session.revertDock.collapse": "折叠已回滚消息",
|
||||
"session.revertDock.expand": "展开已回滚消息",
|
||||
"session.revertDock.restore": "恢复消息",
|
||||
"session.new.title": "构建任何内容",
|
||||
"session.new.title": "构建任何东西",
|
||||
"session.new.project.new": "新建项目",
|
||||
"session.new.project.search": "搜索项目",
|
||||
"session.new.project.add": "添加项目",
|
||||
@@ -777,8 +774,8 @@ export const dict = {
|
||||
"settings.general.row.terminalFont.description": "自定义终端使用的字体",
|
||||
"settings.general.row.uiFont.title": "界面字体",
|
||||
"settings.general.row.uiFont.description": "自定义整个界面使用的字体",
|
||||
"settings.general.row.followup.title": "后续消息行为",
|
||||
"settings.general.row.followup.description": "选择后续提示是立即引导当前会话还是排队等待",
|
||||
"settings.general.row.followup.title": "跟进消息行为",
|
||||
"settings.general.row.followup.description": "选择跟进提示是立即引导还是在队列中等待",
|
||||
"settings.general.row.followup.option.queue": "排队",
|
||||
"settings.general.row.followup.option.steer": "引导",
|
||||
"settings.general.row.showFileTree.title": "文件树",
|
||||
@@ -793,14 +790,14 @@ export const dict = {
|
||||
"settings.general.row.showStatus.description": "在标题栏中显示服务器状态按钮",
|
||||
"settings.general.row.mobileTitlebarBottom.title": "底部导航",
|
||||
"settings.general.row.mobileTitlebarBottom.description": "在移动设备上将标题栏和会话标签页置于屏幕底部",
|
||||
"settings.general.row.showCustomAgents.title": "显示智能体",
|
||||
"settings.general.row.showCustomAgents.description": "在输入框中切换智能体。隐藏时默认使用 Build 智能体。",
|
||||
"settings.general.row.showCustomAgents.title": "自定义智能体",
|
||||
"settings.general.row.showCustomAgents.description": "在输入框中显示智能体选择器",
|
||||
"settings.general.row.reasoningSummaries.title": "显示推理摘要",
|
||||
"settings.general.row.reasoningSummaries.description": "在时间线中显示模型推理摘要",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "展开 Shell 工具调用",
|
||||
"settings.general.row.shellToolPartsExpanded.description": "默认在时间线中展开 Shell 工具调用详情",
|
||||
"settings.general.row.editToolPartsExpanded.title": "展开编辑工具调用",
|
||||
"settings.general.row.editToolPartsExpanded.description": "默认在时间线中展开 edit、write 和 patch 工具调用详情",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "展开 shell 工具部分",
|
||||
"settings.general.row.shellToolPartsExpanded.description": "默认在时间线中展开 shell 工具部分",
|
||||
"settings.general.row.editToolPartsExpanded.title": "展开编辑工具部分",
|
||||
"settings.general.row.editToolPartsExpanded.description": "默认在时间线中展开 edit、write 和 patch 工具部分",
|
||||
"settings.general.row.newInterface.title": "新布局",
|
||||
"settings.general.row.newInterface.badge": "新",
|
||||
"settings.general.row.newInterface.description": "使用新的标签页和主页布局。在有限时间内可在不同布局之间切换。",
|
||||
@@ -808,7 +805,7 @@ export const dict = {
|
||||
"settings.general.row.newInterfaceNotice.description": "之前的布局不再可用",
|
||||
"settings.general.row.newInterfaceNotice.dismiss": "忽略",
|
||||
"settings.general.row.pinchZoom.title": "双指缩放",
|
||||
"settings.general.row.pinchZoom.description": "允许使用触控板双指捏合和 Ctrl+滚轮手势缩放",
|
||||
"settings.general.row.pinchZoom.description": "允许使用触控板双指捏合和 Ctrl-scroll 手势缩放",
|
||||
"settings.general.row.wayland.title": "使用原生 Wayland",
|
||||
"settings.general.row.wayland.description": "在 Wayland 上禁用 X11 回退。需要重启。",
|
||||
"settings.general.row.wayland.tooltip": "在混合刷新率显示器的 Linux 系统上,原生 Wayland 可能更稳定。",
|
||||
@@ -837,41 +834,41 @@ export const dict = {
|
||||
"sound.option.alert08": "警报 08",
|
||||
"sound.option.alert09": "警报 09",
|
||||
"sound.option.alert10": "警报 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"sound.option.bipbop01": "哔啵 01",
|
||||
"sound.option.bipbop02": "哔啵 02",
|
||||
"sound.option.bipbop03": "哔啵 03",
|
||||
"sound.option.bipbop04": "哔啵 04",
|
||||
"sound.option.bipbop05": "哔啵 05",
|
||||
"sound.option.bipbop06": "哔啵 06",
|
||||
"sound.option.bipbop07": "哔啵 07",
|
||||
"sound.option.bipbop08": "哔啵 08",
|
||||
"sound.option.bipbop09": "哔啵 09",
|
||||
"sound.option.bipbop10": "哔啵 10",
|
||||
"sound.option.staplebops01": "斯泰普博普斯 01",
|
||||
"sound.option.staplebops02": "斯泰普博普斯 02",
|
||||
"sound.option.staplebops03": "斯泰普博普斯 03",
|
||||
"sound.option.staplebops04": "斯泰普博普斯 04",
|
||||
"sound.option.staplebops05": "斯泰普博普斯 05",
|
||||
"sound.option.staplebops06": "斯泰普博普斯 06",
|
||||
"sound.option.staplebops07": "斯泰普博普斯 07",
|
||||
"sound.option.nope01": "否 01",
|
||||
"sound.option.nope02": "否 02",
|
||||
"sound.option.nope03": "否 03",
|
||||
"sound.option.nope04": "否 04",
|
||||
"sound.option.nope05": "否 05",
|
||||
"sound.option.nope06": "否 06",
|
||||
"sound.option.nope07": "否 07",
|
||||
"sound.option.nope08": "否 08",
|
||||
"sound.option.nope09": "否 09",
|
||||
"sound.option.nope10": "否 10",
|
||||
"sound.option.nope11": "否 11",
|
||||
"sound.option.nope12": "否 12",
|
||||
"sound.option.yup01": "是 01",
|
||||
"sound.option.yup02": "是 02",
|
||||
"sound.option.yup03": "是 03",
|
||||
"sound.option.yup04": "是 04",
|
||||
"sound.option.yup05": "是 05",
|
||||
"sound.option.yup06": "是 06",
|
||||
|
||||
"settings.general.notifications.agent.title": "智能体",
|
||||
"settings.general.notifications.agent.description": "当智能体完成或需要注意时显示系统通知",
|
||||
@@ -904,7 +901,7 @@ export const dict = {
|
||||
"settings.shortcuts.group.prompt": "提示",
|
||||
|
||||
"settings.providers.title": "提供商",
|
||||
"settings.providers.description": "可在此处配置提供商设置。",
|
||||
"settings.providers.description": "提供商设置将在此处可配置。",
|
||||
"settings.providers.section.connected": "已连接的提供商",
|
||||
"settings.providers.connected.empty": "没有已连接的提供商",
|
||||
"settings.providers.section.popular": "热门提供商",
|
||||
@@ -914,16 +911,16 @@ export const dict = {
|
||||
"settings.providers.tag.other": "其他",
|
||||
|
||||
"settings.models.title": "模型",
|
||||
"settings.models.description": "可在此处配置模型设置。",
|
||||
"settings.models.description": "模型设置将在此处可配置。",
|
||||
|
||||
"settings.agents.title": "智能体",
|
||||
"settings.agents.description": "可在此处配置智能体设置。",
|
||||
"settings.agents.description": "智能体设置将在此处可配置。",
|
||||
|
||||
"settings.commands.title": "命令",
|
||||
"settings.commands.description": "可在此处配置命令设置。",
|
||||
"settings.commands.description": "命令设置将在此处可配置。",
|
||||
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "可在此处配置 MCP 设置。",
|
||||
"settings.mcp.description": "MCP 设置将在此处可配置。",
|
||||
|
||||
"settings.permissions.title": "权限",
|
||||
"settings.permissions.description": "控制服务器默认可以使用哪些工具。",
|
||||
@@ -935,12 +932,12 @@ export const dict = {
|
||||
"settings.permissions.tool.read.title": "读取",
|
||||
"settings.permissions.tool.read.description": "读取文件(匹配文件路径)",
|
||||
"settings.permissions.tool.edit.title": "编辑",
|
||||
"settings.permissions.tool.edit.description": "修改文件,包括编辑、写入和应用补丁",
|
||||
"settings.permissions.tool.edit.description": "修改文件,包括编辑、写入、补丁和多重编辑",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "使用 glob 模式匹配文件",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "使用正则表达式搜索文件内容",
|
||||
"settings.permissions.tool.list.title": "列出文件",
|
||||
"settings.permissions.tool.list.title": "列表",
|
||||
"settings.permissions.tool.list.description": "列出目录中的文件",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "运行 shell 命令",
|
||||
@@ -952,7 +949,7 @@ export const dict = {
|
||||
"settings.permissions.tool.lsp.description": "运行语言服务器查询",
|
||||
"settings.permissions.tool.todowrite.title": "更新待办",
|
||||
"settings.permissions.tool.todowrite.description": "更新待办列表",
|
||||
"settings.permissions.tool.webfetch.title": "获取网页",
|
||||
"settings.permissions.tool.webfetch.title": "网页获取",
|
||||
"settings.permissions.tool.webfetch.description": "从 URL 获取内容",
|
||||
"settings.permissions.tool.websearch.title": "网页搜索",
|
||||
"settings.permissions.tool.websearch.description": "搜索网页",
|
||||
@@ -975,10 +972,10 @@ export const dict = {
|
||||
"workspace.resetting.description": "这可能需要一点时间。",
|
||||
"workspace.reset.failed.title": "重置工作区失败",
|
||||
"workspace.reset.success.title": "工作区已重置",
|
||||
"workspace.reset.success.description": "工作区现已与默认分支一致。",
|
||||
"workspace.reset.success.description": "工作区已与默认分支保持一致。",
|
||||
"workspace.error.stillPreparing": "工作区仍在准备中",
|
||||
"workspace.status.checking": "正在检查未合并的更改...",
|
||||
"workspace.status.error": "无法验证 Git 状态。",
|
||||
"workspace.status.error": "无法验证 git 状态。",
|
||||
"workspace.status.clean": "未检测到未合并的更改。",
|
||||
"workspace.status.dirty": "检测到未合并的更改。",
|
||||
"workspace.delete.title": "删除工作区",
|
||||
@@ -995,7 +992,7 @@ export const dict = {
|
||||
"dialog.releaseNotes.action.getStarted": "开始",
|
||||
"dialog.releaseNotes.action.next": "下一步",
|
||||
"dialog.releaseNotes.action.hideFuture": "不再显示",
|
||||
"dialog.releaseNotes.media.alt": "版本说明预览",
|
||||
"dialog.releaseNotes.media.alt": "发布预览",
|
||||
"toast.project.reloadFailed.title": "无法重新加载 {{project}}",
|
||||
"error.server.invalidConfiguration": "配置无效",
|
||||
"common.moreCountSuffix": " (还有 {{count}} 个)",
|
||||
@@ -1020,9 +1017,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}}/{{total}} 个问题",
|
||||
"session.header.open.finder": "访达",
|
||||
"session.header.open.fileExplorer": "文件资源管理器",
|
||||
"session.header.reveal.finder": "在访达中显示",
|
||||
"session.header.reveal.fileExplorer": "在文件资源管理器中显示",
|
||||
"session.header.reveal.containingFolder": "打开所在文件夹",
|
||||
"session.header.open.fileManager": "文件管理器",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
|
||||
+122
-128
@@ -30,23 +30,23 @@ export const dict = {
|
||||
"command.project.previous": "上一個專案",
|
||||
"command.project.next": "下一個專案",
|
||||
"command.project.index": "切換至專案 {{index}}",
|
||||
"command.provider.connect": "連線提供者",
|
||||
"command.provider.connect": "連接提供者",
|
||||
"command.server.switch": "切換伺服器",
|
||||
"command.settings.open": "開啟設定",
|
||||
"command.session.previous": "上一個工作階段",
|
||||
"command.session.next": "下一個工作階段",
|
||||
"command.session.previous.unseen": "上一個未讀工作階段",
|
||||
"command.session.next.unseen": "下一個未讀工作階段",
|
||||
"command.session.previous.unseen": "上一個未讀會話",
|
||||
"command.session.next.unseen": "下一個未讀會話",
|
||||
"command.session.archive": "封存工作階段",
|
||||
|
||||
"command.palette": "命令面板",
|
||||
|
||||
"command.theme.cycle": "依序切換主題",
|
||||
"command.theme.cycle": "循環主題",
|
||||
"command.theme.set": "使用主題: {{theme}}",
|
||||
"command.theme.scheme.cycle": "依序切換配色方案",
|
||||
"command.theme.scheme.cycle": "循環配色方案",
|
||||
"command.theme.scheme.set": "使用配色方案: {{scheme}}",
|
||||
|
||||
"command.language.cycle": "依序切換語言",
|
||||
"command.language.cycle": "循環語言",
|
||||
"command.language.set": "使用語言: {{language}}",
|
||||
|
||||
"command.session.new": "新增工作階段",
|
||||
@@ -58,9 +58,9 @@ export const dict = {
|
||||
"command.input.focus": "聚焦輸入框",
|
||||
"command.terminal.toggle": "切換終端機",
|
||||
"command.fileTree.toggle": "切換檔案樹",
|
||||
"command.review.toggle": "切換檢閱",
|
||||
"command.review.toggle": "切換審查",
|
||||
"command.terminal.new": "新增終端機",
|
||||
"command.terminal.new.description": "建立新的終端機分頁",
|
||||
"command.terminal.new.description": "建立新的終端機標籤頁",
|
||||
"command.steps.toggle": "切換步驟",
|
||||
"command.steps.toggle.description": "顯示或隱藏目前訊息的步驟",
|
||||
"command.message.previous": "上一則訊息",
|
||||
@@ -71,11 +71,11 @@ export const dict = {
|
||||
"command.model.choose.description": "選擇不同的模型",
|
||||
"command.mcp.toggle": "切換 MCP",
|
||||
"command.mcp.toggle.description": "切換 MCP",
|
||||
"command.agent.cycle": "切換下一個代理程式",
|
||||
"command.agent.cycle": "循環代理程式",
|
||||
"command.agent.cycle.description": "切換到下一個代理程式",
|
||||
"command.agent.cycle.reverse": "切換上一個代理程式",
|
||||
"command.agent.cycle.reverse": "反向循環代理程式",
|
||||
"command.agent.cycle.reverse.description": "切換到上一個代理程式",
|
||||
"command.model.variant.cycle": "切換思考強度",
|
||||
"command.model.variant.cycle": "循環思考強度",
|
||||
"command.model.variant.cycle.description": "切換到下一個強度等級",
|
||||
"command.prompt.mode.shell": "Shell",
|
||||
"command.prompt.mode.normal": "Prompt",
|
||||
@@ -88,7 +88,7 @@ export const dict = {
|
||||
"command.session.redo": "重做",
|
||||
"command.session.redo.description": "重做上一則復原的訊息",
|
||||
"command.session.compact": "精簡工作階段",
|
||||
"command.session.compact.description": "摘要工作階段以減少上下文大小",
|
||||
"command.session.compact.description": "總結工作階段以減少上下文大小",
|
||||
"command.session.fork": "從訊息分支",
|
||||
"command.session.fork.description": "從先前的訊息建立新工作階段",
|
||||
"command.session.share": "分享工作階段",
|
||||
@@ -106,14 +106,13 @@ export const dict = {
|
||||
"dialog.provider.empty": "找不到提供者",
|
||||
"dialog.provider.group.popular": "熱門",
|
||||
"dialog.provider.group.other": "其他",
|
||||
"dialog.provider.custom.label": "自訂 OpenAI 相容提供者",
|
||||
"dialog.provider.tag.recommended": "推薦",
|
||||
"dialog.provider.opencode.note": "精選模型,包含 Claude、GPT、Gemini 等等",
|
||||
"dialog.provider.opencode.tagline": "經過最佳化的可靠模型",
|
||||
"dialog.provider.opencode.tagline": "可靠的優化模型",
|
||||
"dialog.provider.opencodeGo.tagline": "適合所有人的低成本訂閱",
|
||||
"dialog.provider.anthropic.note": "直接存取 Claude 模型,包括 Pro 和 Max",
|
||||
"dialog.provider.openai.note": "適合快速且功能強大的通用 AI 工作之 GPT 模型",
|
||||
"dialog.provider.copilot.note": "透過 GitHub Copilot 使用程式設計輔助 AI 模型",
|
||||
"dialog.provider.anthropic.note": "使用 Claude Pro/Max 或 API 金鑰連線",
|
||||
"dialog.provider.openai.note": "使用 ChatGPT Pro/Plus 或 API 金鑰連線",
|
||||
"dialog.provider.copilot.note": "使用 Copilot 或 API 金鑰連線",
|
||||
"dialog.provider.google.note": "Gemini 模型,提供快速且結構化的回應",
|
||||
"dialog.provider.openrouter.note": "從單一提供者存取所有支援的模型",
|
||||
"dialog.provider.vercel.note": "透過智慧路由統一存取 AI 模型",
|
||||
@@ -127,7 +126,6 @@ export const dict = {
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "OpenCode 提供的免費模型",
|
||||
"dialog.model.unpaid.addMore.title": "從熱門提供者新增更多模型",
|
||||
"dialog.model.unpaid.viewMoreProviders": "查看另外 70 多個提供者",
|
||||
|
||||
"dialog.provider.viewAll": "查看更多提供者",
|
||||
|
||||
@@ -163,16 +161,16 @@ export const dict = {
|
||||
"provider.connect.toast.connected.title": "{{provider}} 已連線",
|
||||
"provider.connect.toast.connected.description": "現在可以使用 {{provider}} 模型了。",
|
||||
|
||||
"provider.custom.title": "自訂提供者",
|
||||
"provider.custom.description.prefix": "設定與 OpenAI 相容的提供者。請參閱",
|
||||
"provider.custom.description.link": "提供者設定文件",
|
||||
"provider.custom.title": "自訂提供商",
|
||||
"provider.custom.description.prefix": "設定與 OpenAI 相容的提供商。請參閱",
|
||||
"provider.custom.description.link": "提供商設定文件",
|
||||
"provider.custom.description.suffix": "。",
|
||||
"provider.custom.field.providerID.label": "提供者 ID",
|
||||
"provider.custom.field.providerID.label": "提供商 ID",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "使用小寫字母、數字、連字號或底線",
|
||||
"provider.custom.field.name.label": "顯示名稱",
|
||||
"provider.custom.field.name.placeholder": "我的 AI 提供者",
|
||||
"provider.custom.field.baseURL.label": "基底 URL",
|
||||
"provider.custom.field.name.placeholder": "我的 AI 提供商",
|
||||
"provider.custom.field.baseURL.label": "基礎 URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "API 金鑰",
|
||||
"provider.custom.field.apiKey.placeholder": "API 金鑰",
|
||||
@@ -191,11 +189,11 @@ export const dict = {
|
||||
"provider.custom.headers.value.placeholder": "value",
|
||||
"provider.custom.headers.remove": "移除標頭",
|
||||
"provider.custom.headers.add": "新增標頭",
|
||||
"provider.custom.error.providerID.required": "提供者 ID 為必填",
|
||||
"provider.custom.error.providerID.required": "提供商 ID 為必填",
|
||||
"provider.custom.error.providerID.format": "請使用小寫字母、數字、連字號或底線",
|
||||
"provider.custom.error.providerID.exists": "該提供者 ID 已存在",
|
||||
"provider.custom.error.providerID.exists": "該提供商 ID 已存在",
|
||||
"provider.custom.error.name.required": "顯示名稱為必填",
|
||||
"provider.custom.error.baseURL.required": "基底 URL 為必填",
|
||||
"provider.custom.error.baseURL.required": "基礎 URL 為必填",
|
||||
"provider.custom.error.baseURL.format": "必須以 http:// 或 https:// 開頭",
|
||||
"provider.custom.error.required": "必填",
|
||||
"provider.custom.error.duplicate": "重複",
|
||||
@@ -214,12 +212,12 @@ export const dict = {
|
||||
"model.input.image": "圖片",
|
||||
"model.input.audio": "音訊",
|
||||
"model.input.video": "影片",
|
||||
"model.input.pdf": "PDF",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "支援: {{inputs}}",
|
||||
"model.tooltip.context.label": "上下文",
|
||||
"model.tooltip.inputs": "輸入",
|
||||
"model.tooltip.model": "模型",
|
||||
"model.tooltip.provider": "提供者",
|
||||
"model.tooltip.provider": "供應商",
|
||||
"model.tooltip.reasoning": "推理",
|
||||
"model.tooltip.reasoning.allowed": "支援推理",
|
||||
"model.tooltip.reasoning.none": "不支援推理",
|
||||
@@ -233,7 +231,7 @@ export const dict = {
|
||||
"common.clear": "清除",
|
||||
"common.connect": "連線",
|
||||
"common.disconnect": "中斷連線",
|
||||
"common.continue": "繼續",
|
||||
"common.continue": "提交",
|
||||
"common.submit": "提交",
|
||||
"common.save": "儲存",
|
||||
"common.saving": "儲存中...",
|
||||
@@ -241,10 +239,10 @@ export const dict = {
|
||||
"common.attachment": "附件",
|
||||
|
||||
"prompt.placeholder.shell": "輸入 shell 命令... {{example}}",
|
||||
"prompt.placeholder.normal": "想問什麼都可以…「{{example}}」",
|
||||
"prompt.placeholder.simple": "想問什麼都可以…",
|
||||
"prompt.placeholder.summarizeComments": "摘要留言…",
|
||||
"prompt.placeholder.summarizeComment": "摘要這則留言…",
|
||||
"prompt.placeholder.normal": '隨便問點什麼... "{{example}}"',
|
||||
"prompt.placeholder.simple": "隨便問點什麼...",
|
||||
"prompt.placeholder.summarizeComments": "摘要評論…",
|
||||
"prompt.placeholder.summarizeComment": "摘要這則評論…",
|
||||
"prompt.mode.shell": "Shell",
|
||||
"prompt.mode.normal": "Prompt",
|
||||
"prompt.mode.shell.exit": "按 esc 退出",
|
||||
@@ -252,30 +250,30 @@ export const dict = {
|
||||
"session.child.backToParent": "返回主要工作階段。",
|
||||
|
||||
"prompt.example.1": "修復程式碼庫中的一個 TODO",
|
||||
"prompt.example.2": "這個專案的技術堆疊是什麼?",
|
||||
"prompt.example.2": "這個專案的技術堆疊是什麼?",
|
||||
"prompt.example.3": "修復失敗的測試",
|
||||
"prompt.example.4": "解釋驗證是如何運作的",
|
||||
"prompt.example.5": "尋找並修復安全漏洞",
|
||||
"prompt.example.6": "為使用者服務新增單元測試",
|
||||
"prompt.example.7": "重構這個函式,讓它更易讀",
|
||||
"prompt.example.8": "這個錯誤是什麼意思?",
|
||||
"prompt.example.8": "這個錯誤是什麼意思?",
|
||||
"prompt.example.9": "幫我偵錯這個問題",
|
||||
"prompt.example.10": "產生 API 文件",
|
||||
"prompt.example.11": "最佳化資料庫查詢",
|
||||
"prompt.example.12": "新增輸入驗證",
|
||||
"prompt.example.13": "建立一個新的元件用於...",
|
||||
"prompt.example.14": "我該如何部署這個專案?",
|
||||
"prompt.example.15": "檢閱我的程式碼並提供最佳實務建議",
|
||||
"prompt.example.14": "我該如何部署這個專案?",
|
||||
"prompt.example.15": "審查我的程式碼並給出最佳實務建議",
|
||||
"prompt.example.16": "為這個函式新增錯誤處理",
|
||||
"prompt.example.17": "解釋這個正規表示式",
|
||||
"prompt.example.18": "把它轉換成 TypeScript",
|
||||
"prompt.example.19": "在整個程式碼庫中加入記錄功能",
|
||||
"prompt.example.20": "哪些相依性已經過期?",
|
||||
"prompt.example.19": "在整個程式碼庫中新增日誌",
|
||||
"prompt.example.20": "哪些相依性已經過期?",
|
||||
"prompt.example.21": "幫我寫一個遷移腳本",
|
||||
"prompt.example.22": "為這個端點實作快取",
|
||||
"prompt.example.23": "為這份清單加入分頁功能",
|
||||
"prompt.example.23": "給這個清單新增分頁",
|
||||
"prompt.example.24": "建立一個 CLI 命令用於...",
|
||||
"prompt.example.25": "這裡的環境變數是怎麼運作的?",
|
||||
"prompt.example.25": "這裡的環境變數是怎麼運作的?",
|
||||
|
||||
"prompt.popover.emptyResults": "沒有符合的結果",
|
||||
"prompt.popover.emptyCommands": "沒有符合的命令",
|
||||
@@ -299,7 +297,6 @@ export const dict = {
|
||||
"prompt.action.stop": "停止",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "不支援的附件",
|
||||
"prompt.toast.attachmentDuplicate.title": "此檔案已上傳",
|
||||
"prompt.toast.pasteUnsupported.description": "此處僅能附加圖片、PDF 或文字檔案。",
|
||||
"prompt.toast.modelAgentRequired.title": "請選擇代理程式和模型",
|
||||
"prompt.toast.modelAgentRequired.description": "傳送提示前請先選擇代理程式和模型。",
|
||||
@@ -314,13 +311,13 @@ export const dict = {
|
||||
"dialog.mcp.description": "已啟用 {{enabled}} / {{total}}",
|
||||
"dialog.mcp.empty": "未設定 MCP",
|
||||
|
||||
"dialog.lsp.empty": "會根據檔案類型自動偵測 LSP",
|
||||
"dialog.lsp.empty": "已從檔案類型自動偵測到 LSPs",
|
||||
"dialog.plugins.empty": "在 opencode.json 中設定的外掛程式",
|
||||
|
||||
"mcp.status.connected": "已連線",
|
||||
"mcp.status.failed": "失敗",
|
||||
"mcp.status.needs_auth": "需要授權",
|
||||
"mcp.auth.clickToAuthenticate": "按一下以進行授權",
|
||||
"mcp.auth.clickToAuthenticate": "點擊以進行授權",
|
||||
"mcp.status.disabled": "已停用",
|
||||
|
||||
"dialog.fork.empty": "沒有可用於分支的訊息",
|
||||
@@ -336,7 +333,7 @@ export const dict = {
|
||||
"dialog.server.title": "伺服器",
|
||||
"dialog.server.description": "切換此應用程式連線的 OpenCode 伺服器。",
|
||||
"dialog.server.search.placeholder": "搜尋伺服器",
|
||||
"dialog.server.empty": "尚無伺服器",
|
||||
"dialog.server.empty": "暫無伺服器",
|
||||
"dialog.server.add.title": "新增伺服器",
|
||||
"dialog.server.add.url": "伺服器 URL",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
@@ -349,7 +346,7 @@ export const dict = {
|
||||
"dialog.server.add.password": "密碼(選填)",
|
||||
"dialog.server.edit.title": "編輯伺服器",
|
||||
"dialog.server.default.title": "預設伺服器",
|
||||
"dialog.server.default.description": "應用程式啟動時連線此伺服器,而不是啟動本機伺服器。需要重新啟動。",
|
||||
"dialog.server.default.description": "應用程式啟動時連線此伺服器,而不是啟動本地伺服器。需要重新啟動。",
|
||||
"dialog.server.default.none": "未選擇伺服器",
|
||||
"dialog.server.default.set": "將目前伺服器設為預設",
|
||||
"dialog.server.default.clear": "清除",
|
||||
@@ -433,7 +430,7 @@ export const dict = {
|
||||
"dialog.project.edit.name": "名稱",
|
||||
"dialog.project.edit.icon": "圖示",
|
||||
"dialog.project.edit.icon.alt": "專案圖示",
|
||||
"dialog.project.edit.icon.hint": "按一下或拖曳圖片",
|
||||
"dialog.project.edit.icon.hint": "點擊或拖曳圖片",
|
||||
"dialog.project.edit.icon.recommended": "建議:128x128px",
|
||||
"dialog.project.edit.color": "顏色",
|
||||
"dialog.project.edit.color.select": "選擇{{color}}顏色",
|
||||
@@ -441,11 +438,11 @@ export const dict = {
|
||||
"dialog.project.edit.worktree.startup": "工作區啟動腳本",
|
||||
"dialog.project.edit.worktree.startup.description": "在建立新的工作區 (worktree) 後執行。",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "例如 bun install",
|
||||
"context.breakdown.title": "上下文細分",
|
||||
"context.breakdown.note": "輸入 token 的概略細分。「其他」包含工具定義和額外負擔。",
|
||||
"context.breakdown.title": "上下文拆分",
|
||||
"context.breakdown.note": "輸入 token 的大致拆分。「其他」包含工具定義和額外開銷。",
|
||||
"context.breakdown.system": "系統",
|
||||
"context.breakdown.user": "使用者",
|
||||
"context.breakdown.assistant": "助理",
|
||||
"context.breakdown.assistant": "助手",
|
||||
"context.breakdown.tool": "工具呼叫",
|
||||
"context.breakdown.other": "其他",
|
||||
|
||||
@@ -464,7 +461,7 @@ export const dict = {
|
||||
"context.stats.reasoningTokens": "推理 token",
|
||||
"context.stats.cacheTokens": "快取 token(讀/寫)",
|
||||
"context.stats.userMessages": "使用者訊息",
|
||||
"context.stats.assistantMessages": "助理訊息",
|
||||
"context.stats.assistantMessages": "助手訊息",
|
||||
"context.stats.totalCost": "總成本",
|
||||
"context.stats.sessionCreated": "建立時間",
|
||||
"context.stats.lastActivity": "最後活動",
|
||||
@@ -472,7 +469,7 @@ export const dict = {
|
||||
"context.usage.tokens": "Token",
|
||||
"context.usage.usage": "使用量",
|
||||
"context.usage.cost": "成本",
|
||||
"context.usage.clickToView": "按一下以檢視上下文",
|
||||
"context.usage.clickToView": "點擊查看上下文",
|
||||
"context.usage.view": "檢視上下文用量",
|
||||
|
||||
"language.en": "English",
|
||||
@@ -498,7 +495,7 @@ export const dict = {
|
||||
"toast.language.description": "已切換到 {{language}}",
|
||||
|
||||
"toast.theme.title": "主題已切換",
|
||||
"toast.scheme.title": "配色方案",
|
||||
"toast.scheme.title": "顏色方案",
|
||||
|
||||
"toast.workspace.enabled.title": "工作區已啟用",
|
||||
"toast.workspace.enabled.description": "側邊欄現在顯示多個工作樹",
|
||||
@@ -506,12 +503,12 @@ export const dict = {
|
||||
"toast.workspace.disabled.description": "側邊欄只顯示主工作樹",
|
||||
|
||||
"toast.permissions.autoaccept.on.title": "正在自動接受權限",
|
||||
"toast.permissions.autoaccept.on.description": "權限要求將自動獲准",
|
||||
"toast.permissions.autoaccept.on.description": "權限請求將被自動批准",
|
||||
"toast.permissions.autoaccept.off.title": "已停止自動接受權限",
|
||||
"toast.permissions.autoaccept.off.description": "權限要求將需要核准",
|
||||
"toast.permissions.autoaccept.off.description": "權限請求將需要批准",
|
||||
|
||||
"toast.model.none.title": "未選擇模型",
|
||||
"toast.model.none.description": "請先連線提供者以摘要此工作階段",
|
||||
"toast.model.none.description": "請先連線提供者以總結此工作階段",
|
||||
|
||||
"toast.file.loadFailed.title": "載入檔案失敗",
|
||||
|
||||
@@ -543,7 +540,7 @@ export const dict = {
|
||||
"error.page.action.restart": "重新啟動",
|
||||
"error.page.action.report": "回報錯誤",
|
||||
"error.page.action.reported": "已回報錯誤",
|
||||
"error.page.action.exportLogs": "匯出記錄檔",
|
||||
"error.page.action.exportLogs": "匯出日誌",
|
||||
"error.page.action.checking": "檢查中...",
|
||||
"error.page.action.checkUpdates": "檢查更新",
|
||||
"error.page.action.updateTo": "更新到 {{version}}",
|
||||
@@ -551,9 +548,9 @@ export const dict = {
|
||||
"error.page.report.discord": "在 Discord 上",
|
||||
"error.page.version": "版本: {{version}}",
|
||||
|
||||
"error.dev.rootNotFound": "找不到根元素。你是不是忘了把它新增到 index.html?或者 id 屬性拼錯了?",
|
||||
"error.dev.rootNotFound": "找不到根元素。你是不是忘了把它新增到 index.html? 或者 id 屬性拼錯了?",
|
||||
|
||||
"error.serverSync.connectFailed": "無法連線到伺服器。是否有伺服器正在 `{{url}}` 執行?",
|
||||
"error.serverSync.connectFailed": "無法連線到伺服器。是否有伺服器正在 `{{url}}` 執行?",
|
||||
"directory.error.invalidUrl": "URL 中的目錄無效。",
|
||||
|
||||
"error.chain.unknown": "未知錯誤",
|
||||
@@ -565,8 +562,8 @@ export const dict = {
|
||||
"error.chain.didYouMean": "你是不是想輸入: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "找不到模型: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "請檢查你的設定 (opencode.json) 中的 provider/model 名稱",
|
||||
"error.chain.mcpFailed": "MCP 伺服器「{{name}}」啟動失敗。注意:OpenCode 尚不支援 MCP 驗證。",
|
||||
"error.chain.providerAuthFailed": "提供者驗證失敗({{provider}}):{{message}}",
|
||||
"error.chain.mcpFailed": 'MCP 伺服器 "{{name}}" 啟動失敗。注意: OpenCode 暫不支援 MCP 認證。',
|
||||
"error.chain.providerAuthFailed": "提供者認證失敗 ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed": '無法初始化提供者 "{{provider}}"。請檢查憑證和設定。',
|
||||
"error.chain.configJsonInvalid": "設定檔 {{path}} 不是有效的 JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage": "設定檔 {{path}} 不是有效的 JSON(C): {{message}}",
|
||||
@@ -588,7 +585,7 @@ export const dict = {
|
||||
|
||||
"home.recentProjects": "最近專案",
|
||||
"home.empty.title": "沒有最近專案",
|
||||
"home.empty.description": "開啟本機專案以開始使用",
|
||||
"home.empty.description": "透過開啟本地專案開始使用",
|
||||
"home.title": "首頁",
|
||||
"home.projects": "專案",
|
||||
"home.project.add": "新增專案",
|
||||
@@ -604,13 +601,13 @@ export const dict = {
|
||||
"home.sessions.group.today": "今天",
|
||||
"home.sessions.group.yesterday": "昨天",
|
||||
"home.sessions.group.older": "更早",
|
||||
"home.providerTip": "連線 75 個以上的提供者,使用 Claude、GPT、Gemini 等其他模型",
|
||||
"home.providerTip": "連接 75 個以上的供應商,使用 Claude、GPT、Gemini 等其他模型",
|
||||
|
||||
"session.tab.session": "工作階段",
|
||||
"session.tab.review": "檢閱",
|
||||
"session.tab.review": "審查",
|
||||
"session.tab.context": "上下文",
|
||||
"session.tab.unknown": "未知的工作階段",
|
||||
"session.panel.reviewAndFiles": "檢閱與檔案",
|
||||
"session.panel.reviewAndFiles": "審查與檔案",
|
||||
"session.error.notFound": "找不到此工作階段",
|
||||
"session.error.notFound.description": "此分頁指向的工作階段已不存在於此伺服器。",
|
||||
"session.error.notFound.closeTab": "關閉分頁",
|
||||
@@ -619,7 +616,7 @@ export const dict = {
|
||||
"session.review.change.one": "變更",
|
||||
"session.review.change.other": "變更",
|
||||
"session.review.loadingChanges": "正在載入變更...",
|
||||
"session.review.empty": "此工作階段尚無變更",
|
||||
"session.review.empty": "此工作階段暫無變更",
|
||||
"session.review.noChanges": "沒有變更",
|
||||
"session.review.noUncommittedChanges": "尚無未提交的變更",
|
||||
"session.review.noBranchChanges": "尚無分支變更",
|
||||
@@ -637,7 +634,7 @@ export const dict = {
|
||||
"session.messages.jumpToLatest": "跳到最新",
|
||||
"session.context.addToContext": "將 {{selection}} 新增到上下文",
|
||||
"session.todo.title": "待辦事項",
|
||||
"session.todo.collapse": "收合",
|
||||
"session.todo.collapse": "折疊",
|
||||
"session.todo.expand": "展開",
|
||||
"session.question.minimize": "最小化問題",
|
||||
"session.question.restore": "還原問題",
|
||||
@@ -649,13 +646,13 @@ export const dict = {
|
||||
"session.followupDock.edit": "編輯",
|
||||
"session.followupDock.collapse": "收合佇列訊息",
|
||||
"session.followupDock.expand": "展開佇列訊息",
|
||||
"session.revertDock.summary.one": "{{count}} 則已還原的訊息",
|
||||
"session.revertDock.summary.other": "{{count}} 則已還原的訊息",
|
||||
"session.revertDock.collapse": "收合已還原的訊息",
|
||||
"session.revertDock.expand": "展開已還原的訊息",
|
||||
"session.revertDock.summary.one": "{{count}} 則已回復訊息",
|
||||
"session.revertDock.summary.other": "{{count}} 則已回復訊息",
|
||||
"session.revertDock.collapse": "收合已回復訊息",
|
||||
"session.revertDock.expand": "展開已回復訊息",
|
||||
"session.revertDock.restore": "還原訊息",
|
||||
|
||||
"session.new.title": "實現任何想法",
|
||||
"session.new.title": "建構任何東西",
|
||||
"session.new.project.new": "新專案",
|
||||
"session.new.project.search": "搜尋專案",
|
||||
"session.new.project.add": "新增專案",
|
||||
@@ -708,7 +705,7 @@ export const dict = {
|
||||
|
||||
"terminal.connectionLost.title": "連線中斷",
|
||||
"terminal.connectionLost.description": "終端機連線已中斷。這可能會在伺服器重新啟動時發生。",
|
||||
"common.closeTab": "關閉分頁",
|
||||
"common.closeTab": "關閉標籤頁",
|
||||
"common.dismiss": "忽略",
|
||||
"common.requestFailed": "要求失敗",
|
||||
"common.moreOptions": "更多選項",
|
||||
@@ -834,41 +831,41 @@ export const dict = {
|
||||
"sound.option.alert08": "警報 08",
|
||||
"sound.option.alert09": "警報 09",
|
||||
"sound.option.alert10": "警報 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
"sound.option.bipbop01": "嗶啵 01",
|
||||
"sound.option.bipbop02": "嗶啵 02",
|
||||
"sound.option.bipbop03": "嗶啵 03",
|
||||
"sound.option.bipbop04": "嗶啵 04",
|
||||
"sound.option.bipbop05": "嗶啵 05",
|
||||
"sound.option.bipbop06": "嗶啵 06",
|
||||
"sound.option.bipbop07": "嗶啵 07",
|
||||
"sound.option.bipbop08": "嗶啵 08",
|
||||
"sound.option.bipbop09": "嗶啵 09",
|
||||
"sound.option.bipbop10": "嗶啵 10",
|
||||
"sound.option.staplebops01": "斯泰普博普斯 01",
|
||||
"sound.option.staplebops02": "斯泰普博普斯 02",
|
||||
"sound.option.staplebops03": "斯泰普博普斯 03",
|
||||
"sound.option.staplebops04": "斯泰普博普斯 04",
|
||||
"sound.option.staplebops05": "斯泰普博普斯 05",
|
||||
"sound.option.staplebops06": "斯泰普博普斯 06",
|
||||
"sound.option.staplebops07": "斯泰普博普斯 07",
|
||||
"sound.option.nope01": "否 01",
|
||||
"sound.option.nope02": "否 02",
|
||||
"sound.option.nope03": "否 03",
|
||||
"sound.option.nope04": "否 04",
|
||||
"sound.option.nope05": "否 05",
|
||||
"sound.option.nope06": "否 06",
|
||||
"sound.option.nope07": "否 07",
|
||||
"sound.option.nope08": "否 08",
|
||||
"sound.option.nope09": "否 09",
|
||||
"sound.option.nope10": "否 10",
|
||||
"sound.option.nope11": "否 11",
|
||||
"sound.option.nope12": "否 12",
|
||||
"sound.option.yup01": "是 01",
|
||||
"sound.option.yup02": "是 02",
|
||||
"sound.option.yup03": "是 03",
|
||||
"sound.option.yup04": "是 04",
|
||||
"sound.option.yup05": "是 05",
|
||||
"sound.option.yup06": "是 06",
|
||||
"settings.general.notifications.agent.title": "代理程式",
|
||||
"settings.general.notifications.agent.description": "當代理程式完成或需要注意時顯示系統通知",
|
||||
"settings.general.notifications.permissions.title": "權限",
|
||||
@@ -903,11 +900,11 @@ export const dict = {
|
||||
|
||||
"settings.providers.title": "提供者",
|
||||
"settings.providers.description": "提供者設定將在此處可設定。",
|
||||
"settings.providers.section.connected": "已連線的提供者",
|
||||
"settings.providers.connected.empty": "沒有已連線的提供者",
|
||||
"settings.providers.section.popular": "熱門提供者",
|
||||
"settings.providers.section.connected": "已連線的提供商",
|
||||
"settings.providers.connected.empty": "沒有已連線的提供商",
|
||||
"settings.providers.section.popular": "熱門提供商",
|
||||
"settings.providers.tag.environment": "環境",
|
||||
"settings.providers.tag.config": "設定",
|
||||
"settings.providers.tag.config": "配置",
|
||||
"settings.providers.tag.custom": "自訂",
|
||||
"settings.providers.tag.other": "其他",
|
||||
"settings.models.title": "模型",
|
||||
@@ -959,11 +956,11 @@ export const dict = {
|
||||
|
||||
"session.delete.failed.title": "刪除工作階段失敗",
|
||||
"session.delete.title": "刪除工作階段",
|
||||
"session.delete.confirm": "要刪除工作階段「{{name}}」嗎?",
|
||||
"session.delete.confirm": '刪除工作階段 "{{name}}"?',
|
||||
"session.delete.button": "刪除工作階段",
|
||||
|
||||
"workspace.new": "新增工作區",
|
||||
"workspace.type.local": "本機",
|
||||
"workspace.type.local": "本地",
|
||||
"workspace.type.sandbox": "沙盒",
|
||||
"workspace.create.failed.title": "建立工作區失敗",
|
||||
"workspace.delete.failed.title": "刪除工作區失敗",
|
||||
@@ -971,27 +968,27 @@ export const dict = {
|
||||
"workspace.resetting.description": "這可能需要一點時間。",
|
||||
"workspace.reset.failed.title": "重設工作區失敗",
|
||||
"workspace.reset.success.title": "工作區已重設",
|
||||
"workspace.reset.success.description": "工作區現在與預設分支一致。",
|
||||
"workspace.reset.success.description": "工作區已與預設分支保持一致。",
|
||||
"workspace.error.stillPreparing": "工作區仍在準備中",
|
||||
"workspace.status.checking": "正在檢查未合併的變更...",
|
||||
"workspace.status.error": "無法驗證 Git 狀態。",
|
||||
"workspace.status.error": "無法驗證 git 狀態。",
|
||||
"workspace.status.clean": "未偵測到未合併的變更。",
|
||||
"workspace.status.dirty": "偵測到未合併的變更。",
|
||||
"workspace.delete.title": "刪除工作區",
|
||||
"workspace.delete.confirm": "要刪除工作區「{{name}}」嗎?",
|
||||
"workspace.delete.confirm": '刪除工作區 "{{name}}"?',
|
||||
"workspace.delete.button": "刪除工作區",
|
||||
"workspace.reset.title": "重設工作區",
|
||||
"workspace.reset.confirm": "要重設工作區「{{name}}」嗎?",
|
||||
"workspace.reset.confirm": '重設工作區 "{{name}}"?',
|
||||
"workspace.reset.button": "重設工作區",
|
||||
"workspace.reset.archived.none": "不會封存任何作用中工作階段。",
|
||||
"workspace.reset.archived.one": "將封存 1 個工作階段。",
|
||||
"workspace.reset.archived.many": "將封存 {{count}} 個工作階段。",
|
||||
"workspace.reset.note": "這將把工作區重設為與預設分支一致。",
|
||||
"common.open": "開啟",
|
||||
"common.open": "打開",
|
||||
"dialog.releaseNotes.action.getStarted": "開始",
|
||||
"dialog.releaseNotes.action.next": "下一步",
|
||||
"dialog.releaseNotes.action.hideFuture": "不再顯示",
|
||||
"dialog.releaseNotes.media.alt": "版本預覽",
|
||||
"dialog.releaseNotes.media.alt": "發佈預覽",
|
||||
"toast.project.reloadFailed.title": "無法重新載入 {{project}}",
|
||||
"error.server.invalidConfiguration": "無效的設定",
|
||||
"common.moreCountSuffix": " (還有 {{count}} 個)",
|
||||
@@ -1000,7 +997,7 @@ export const dict = {
|
||||
"common.time.hoursAgo.short": "{{count}}小時前",
|
||||
"common.time.daysAgo.short": "{{count}}天前",
|
||||
"settings.providers.connected.environmentDescription": "已從環境變數連線",
|
||||
"settings.providers.custom.description": "透過基底 URL 新增與 OpenAI 相容的提供者。",
|
||||
"settings.providers.custom.description": "透過基本 URL 新增與 OpenAI 相容的提供者。",
|
||||
|
||||
"app.server.unreachable": "無法連線至 {{server}}",
|
||||
"app.server.retrying": "正在自動重試...",
|
||||
@@ -1016,9 +1013,6 @@ export const dict = {
|
||||
"session.question.progress": "{{current}}/{{total}} 個問題",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "檔案總管",
|
||||
"session.header.reveal.finder": "在 Finder 中顯示",
|
||||
"session.header.reveal.fileExplorer": "在檔案總管中顯示",
|
||||
"session.header.reveal.containingFolder": "開啟所在的檔案夾",
|
||||
"session.header.open.fileManager": "檔案管理員",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
@@ -1038,11 +1032,11 @@ export const dict = {
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip": "最後一次完成的涉及工作階段頁面的路由轉換,從路由器啟動到穩定後的第一次繪製。",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "過去 5 秒內的移動影格率。",
|
||||
"debugBar.fps.tip": "過去 5 秒內的滾動幀率。",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "過去 5 秒內最差的影格時間。",
|
||||
"debugBar.frame.tip": "過去 5 秒內最差的幀時間。",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "過去 5 秒內超過 32ms 的影格。",
|
||||
"debugBar.jank.tip": "過去 5 秒內超過 32ms 的幀。",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "過去 5 秒內的阻塞時間和長任務計數。最大任務:{{max}}。",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
|
||||
@@ -27,4 +27,4 @@ export {
|
||||
type WslServersState,
|
||||
} from "./wsl/types"
|
||||
export { ServerConnection } from "./context/server"
|
||||
export { createDraftStore, type DraftStore } from "./utils/draft-store"
|
||||
export { handleNotificationClick } from "./utils/notification-click"
|
||||
|
||||
@@ -63,7 +63,6 @@ export function DirectoryDataProvider(
|
||||
<DataProvider
|
||||
data={sync().data}
|
||||
directory={directory}
|
||||
sessionID={params.id}
|
||||
onNavigateToSession={(sessionID: string) => navigate(href(sessionID))}
|
||||
onSessionHref={href}
|
||||
>
|
||||
|
||||
@@ -354,7 +354,7 @@ export const ErrorPage: Component<ErrorPageProps> = (props) => {
|
||||
<button
|
||||
type="button"
|
||||
class="flex items-center text-text-interactive-base gap-1"
|
||||
onClick={() => platform.openExternal("https://opencode.ai/desktop-feedback")}
|
||||
onClick={() => platform.openLink("https://opencode.ai/desktop-feedback")}
|
||||
>
|
||||
<div>{language.t("error.page.report.discord")}</div>
|
||||
<Icon name="discord" class="text-text-interactive-base" />
|
||||
|
||||
@@ -120,7 +120,7 @@ export function createHomeProjectsController(home: HomeController) {
|
||||
},
|
||||
utility: {
|
||||
settings: openSettings,
|
||||
help: () => platform.openExternal("https://opencode.ai/desktop-feedback"),
|
||||
help: () => platform.openLink("https://opencode.ai/desktop-feedback"),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { Session } from "@opencode-ai/sdk/v2/client"
|
||||
import { preloadMarkdown } from "@opencode-ai/session-ui/markdown-cache"
|
||||
import { useDialog } from "@opencode-ai/ui/context/dialog"
|
||||
import { useMarked } from "@opencode-ai/ui/context/marked"
|
||||
import { useQuery } from "@tanstack/solid-query"
|
||||
import { DateTime } from "luxon"
|
||||
import { type Accessor, createEffect, createMemo, createRoot, type JSX, startTransition } from "solid-js"
|
||||
@@ -43,6 +44,7 @@ export function createHomeSessionsController(home: HomeController) {
|
||||
const command = useCommand()
|
||||
const dialog = useDialog()
|
||||
const language = useLanguage()
|
||||
const marked = useMarked()
|
||||
const projectDirectories = createMemo(() => {
|
||||
const project = home.project.selected()
|
||||
if (!project) return home.project.list().flatMap(directories)
|
||||
@@ -117,7 +119,7 @@ export function createHomeSessionsController(home: HomeController) {
|
||||
(ctx.sync.session.data.message[record.session.id] ?? []).flatMap((message) =>
|
||||
(ctx.sync.session.data.part[message.id] ?? []).flatMap((part) => {
|
||||
if (part.type !== "text" || !part.text) return []
|
||||
return preloadMarkdown(part.text, part.id)
|
||||
return preloadMarkdown(part.text, part.id, marked)
|
||||
}),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
import { createEffect, Suspense, type ParentProps } from "solid-js"
|
||||
import { createStore } from "solid-js/store"
|
||||
import { useNavigate } from "@solidjs/router"
|
||||
import { DebugBar } from "@/components/debug-bar"
|
||||
import { TabsInfoPopup } from "@/components/help-button"
|
||||
import { Titlebar, type TitlebarUpdate } from "@/components/titlebar"
|
||||
import { usePlatform } from "@/context/platform"
|
||||
import { setNavigate } from "@/utils/notification-click"
|
||||
import { setV2Toast, ToastRegion } from "@/utils/toast"
|
||||
|
||||
export default function NewLayout(props: ParentProps) {
|
||||
const platform = usePlatform()
|
||||
const navigate = useNavigate()
|
||||
setNavigate(navigate)
|
||||
const [state, setState] = createStore({ debugTools: true })
|
||||
|
||||
createEffect(() => setV2Toast(true))
|
||||
|
||||
@@ -33,7 +33,8 @@ import { createStore, produce, reconcile } from "solid-js/store"
|
||||
import { DragDropProvider, DragDropSensors, DragOverlay, SortableProvider, closestCenter } from "@thisbeyond/solid-dnd"
|
||||
import type { DragEvent } from "@thisbeyond/solid-dnd"
|
||||
import { useProviders } from "@/hooks/use-providers"
|
||||
import { dismissToast, setV2Toast, showToast, ToastRegion } from "@/utils/toast"
|
||||
import { toaster } from "@opencode-ai/ui/toast"
|
||||
import { setV2Toast, showToast, ToastRegion } from "@/utils/toast"
|
||||
import { useServerSDK } from "@/context/server-sdk"
|
||||
import { normalizeProjectInfo } from "@/context/global-sync/utils"
|
||||
import { clearWorkspaceTerminals } from "@/context/terminal"
|
||||
@@ -44,6 +45,7 @@ import { Binary } from "@opencode-ai/core/util/binary"
|
||||
import { retry } from "@opencode-ai/core/util/retry"
|
||||
import { playSoundById } from "@/utils/sound"
|
||||
import { createAim } from "@/utils/aim"
|
||||
import { setNavigate } from "@/utils/notification-click"
|
||||
import { Worktree as WorktreeState } from "@/utils/worktree"
|
||||
import { setSessionHandoff } from "@/pages/session/handoff"
|
||||
import { SessionRouteKey, SessionStateKey } from "@/utils/server-scope"
|
||||
@@ -116,6 +118,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
const notification = useNotification()
|
||||
const permission = usePermission()
|
||||
const navigate = useNavigate()
|
||||
setNavigate(navigate)
|
||||
const providers = useProviders(() => undefined)
|
||||
const dialog = useDialog()
|
||||
const command = useCommand()
|
||||
@@ -381,7 +384,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
const dismissSessionAlert = (sessionKey: string) => {
|
||||
const toastId = toastBySession.get(sessionKey)
|
||||
if (toastId === undefined) return
|
||||
dismissToast(toastId)
|
||||
toaster.dismiss(toastId)
|
||||
toastBySession.delete(sessionKey)
|
||||
alertedAtBySession.delete(sessionKey)
|
||||
}
|
||||
@@ -446,13 +449,13 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
void playSoundById(settings.sounds.permissions())
|
||||
}
|
||||
if (settings.notifications.permissions()) {
|
||||
void platform.notify(title, description, () => navigate(href))
|
||||
void platform.notify(title, description, href)
|
||||
}
|
||||
}
|
||||
|
||||
if (e.details.type === "question.asked") {
|
||||
if (settings.notifications.agent()) {
|
||||
void platform.notify(title, description, () => navigate(href))
|
||||
void platform.notify(title, description, href)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1456,7 +1459,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
title: language.t("workspace.resetting.title"),
|
||||
description: language.t("workspace.resetting.description"),
|
||||
})
|
||||
const dismiss = () => dismissToast(progress)
|
||||
const dismiss = () => toaster.dismiss(progress)
|
||||
|
||||
const sessions = await listAllSessions(serverSDK().api.session, { directory, order: "desc" }).catch(() => [])
|
||||
|
||||
@@ -2249,7 +2252,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
settingsKeybind={() => command.keybind("settings.open")}
|
||||
onOpenSettings={openSettings}
|
||||
helpLabel={() => language.t("sidebar.help")}
|
||||
onOpenHelp={() => platform.openExternal("https://opencode.ai/desktop-feedback")}
|
||||
onOpenHelp={() => platform.openLink("https://opencode.ai/desktop-feedback")}
|
||||
renderPanel={() =>
|
||||
mobile ? <SidebarPanel project={currentProject} mobile /> : <SidebarPanel project={currentProject} merged />
|
||||
}
|
||||
@@ -2278,7 +2281,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
data-component="sidebar-nav-desktop"
|
||||
classList={{
|
||||
"hidden xl:block": true,
|
||||
"absolute inset-y-0 start-0": true,
|
||||
"absolute inset-y-0 left-0": true,
|
||||
"z-10": true,
|
||||
}}
|
||||
style={{ width: `${side()}px` }}
|
||||
@@ -2301,7 +2304,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
<Show when={layout.sidebar.opened()}>
|
||||
<div
|
||||
class="hidden xl:block absolute inset-y-0 z-30 w-0 overflow-visible"
|
||||
style={{ "inset-inline-start": `${side()}px` }}
|
||||
style={{ left: `${side()}px` }}
|
||||
onPointerDown={() => setState("sizing", true)}
|
||||
>
|
||||
<ResizeHandle
|
||||
@@ -2320,8 +2323,8 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
</Show>
|
||||
|
||||
<div
|
||||
class="hidden xl:block pointer-events-none absolute top-0 end-0 z-0 border-t border-border-weaker-base"
|
||||
style={{ "inset-inline-start": "calc(4rem + 12px)" }}
|
||||
class="hidden xl:block pointer-events-none absolute top-0 right-0 z-0 border-t border-border-weaker-base"
|
||||
style={{ left: "calc(4rem + 12px)" }}
|
||||
/>
|
||||
|
||||
<div class="xl:hidden">
|
||||
@@ -2339,9 +2342,9 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
aria-label={language.t("sidebar.nav.projectsAndSessions")}
|
||||
data-component="sidebar-nav-mobile"
|
||||
classList={{
|
||||
"@container fixed top-10 bottom-0 start-0 z-50 w-full max-w-[400px] overflow-hidden border-e border-border-weaker-base bg-background-base transition-transform duration-200 ease-out": true,
|
||||
"@container fixed top-10 bottom-0 left-0 z-50 w-full max-w-[400px] overflow-hidden border-r border-border-weaker-base bg-background-base transition-transform duration-200 ease-out": true,
|
||||
"translate-x-0": layout.mobileSidebar.opened(),
|
||||
"ltr:-translate-x-full rtl:translate-x-full": !layout.mobileSidebar.opened(),
|
||||
"-translate-x-full": !layout.mobileSidebar.opened(),
|
||||
}}
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
>
|
||||
@@ -2352,9 +2355,9 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
<div
|
||||
classList={{
|
||||
"absolute inset-0": true,
|
||||
"xl:inset-y-0 xl:end-0 xl:start-[var(--main-left)]": true,
|
||||
"xl:inset-y-0 xl:right-0 xl:left-[var(--main-left)]": true,
|
||||
"z-20": true,
|
||||
"transition-[inset-inline-start] duration-200 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-[inset-inline-start] motion-reduce:transition-none":
|
||||
"transition-[left] duration-200 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-[left] motion-reduce:transition-none":
|
||||
!state.sizing,
|
||||
}}
|
||||
style={{
|
||||
@@ -2363,7 +2366,7 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
>
|
||||
<main
|
||||
classList={{
|
||||
"size-full overflow-x-hidden flex flex-col items-start contain-strict border-t border-border-weak-base bg-background-base xl:border-s xl:rounded-ss-[12px]": true,
|
||||
"size-full overflow-x-hidden flex flex-col items-start contain-strict border-t border-border-weak-base bg-background-base xl:border-l xl:rounded-tl-[12px]": true,
|
||||
}}
|
||||
>
|
||||
<Show when={!autoselecting.loading} fallback={<div class="size-full" />}>
|
||||
@@ -2374,10 +2377,9 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
|
||||
<div
|
||||
classList={{
|
||||
"hidden xl:flex absolute inset-y-0 start-16 z-30": true,
|
||||
"hidden xl:flex absolute inset-y-0 left-16 z-30": true,
|
||||
"opacity-100 translate-x-0 pointer-events-auto": state.peeked && !layout.sidebar.opened(),
|
||||
"opacity-0 ltr:-translate-x-2 rtl:translate-x-2 pointer-events-none":
|
||||
!state.peeked || layout.sidebar.opened(),
|
||||
"opacity-0 -translate-x-2 pointer-events-none": !state.peeked || layout.sidebar.opened(),
|
||||
"transition-[opacity,transform] motion-reduce:transition-none": true,
|
||||
"duration-180 ease-out": state.peeked && !layout.sidebar.opened(),
|
||||
"duration-120 ease-in": !state.peeked || layout.sidebar.opened(),
|
||||
@@ -2399,14 +2401,14 @@ export default function LegacyLayout(props: ParentProps) {
|
||||
|
||||
<div
|
||||
classList={{
|
||||
"hidden xl:block pointer-events-none absolute inset-y-0 end-0 z-25 overflow-hidden": true,
|
||||
"hidden xl:block pointer-events-none absolute inset-y-0 right-0 z-25 overflow-hidden": true,
|
||||
"opacity-100 translate-x-0": state.peeked && !layout.sidebar.opened(),
|
||||
"opacity-0 ltr:-translate-x-2 rtl:translate-x-2": !state.peeked || layout.sidebar.opened(),
|
||||
"opacity-0 -translate-x-2": !state.peeked || layout.sidebar.opened(),
|
||||
"transition-[opacity,transform] motion-reduce:transition-none": true,
|
||||
"duration-180 ease-out": state.peeked && !layout.sidebar.opened(),
|
||||
"duration-120 ease-in": !state.peeked || layout.sidebar.opened(),
|
||||
}}
|
||||
style={{ "inset-inline-start": `calc(4rem + ${panel()}px)` }}
|
||||
style={{ left: `calc(4rem + ${panel()}px)` }}
|
||||
>
|
||||
<div class="h-full w-px" style={{ "box-shadow": "var(--shadow-sidebar-overlay)" }} />
|
||||
</div>
|
||||
@@ -2448,7 +2450,7 @@ function UpdateAvailableToast(props: {
|
||||
|
||||
onCleanup(() => {
|
||||
if (toastId === undefined) return
|
||||
dismissToast(toastId)
|
||||
toaster.dismiss(toastId)
|
||||
})
|
||||
|
||||
return null
|
||||
|
||||
@@ -78,9 +78,9 @@ export function NewSessionStatus(props: { mount: Accessor<HTMLElement | null>; v
|
||||
const language = useLanguage()
|
||||
|
||||
return (
|
||||
<Show when={props.mount()} keyed>
|
||||
<Show when={props.mount()}>
|
||||
{(mount) => (
|
||||
<Portal mount={mount}>
|
||||
<Portal mount={mount()}>
|
||||
<Show when={props.visible()}>
|
||||
<Tooltip placement="bottom" value={language.t("status.popover.trigger")}>
|
||||
<StatusPopoverV2 />
|
||||
|
||||
@@ -2282,7 +2282,7 @@ export default function Page() {
|
||||
<div onPointerDown={() => size.start()}>
|
||||
<ResizeHandle
|
||||
classList={{
|
||||
"-end-1": settings.general.newLayoutDesigns(),
|
||||
"-right-1": settings.general.newLayoutDesigns(),
|
||||
}}
|
||||
direction="horizontal"
|
||||
size={sessionPanelResizedWidth()}
|
||||
|
||||
@@ -18,7 +18,11 @@ export function SessionFollowupDock(props: {
|
||||
|
||||
const toggle = () => setStore("collapsed", (value) => !value)
|
||||
const total = createMemo(() => props.items.length)
|
||||
const label = createMemo(() => language.plural("session.followupDock.summary", total()))
|
||||
const label = createMemo(() =>
|
||||
language.t(total() === 1 ? "session.followupDock.summary.one" : "session.followupDock.summary.other", {
|
||||
count: total(),
|
||||
}),
|
||||
)
|
||||
const preview = createMemo(() => props.items[0]?.text ?? "")
|
||||
|
||||
return (
|
||||
|
||||
@@ -29,7 +29,11 @@ export function SessionRevertDock(props: {
|
||||
|
||||
const toggle = () => setStore("collapsed", (value) => !value)
|
||||
const total = createMemo(() => props.items.length)
|
||||
const label = createMemo(() => language.plural("session.revertDock.summary", total()))
|
||||
const label = createMemo(() =>
|
||||
language.t(total() === 1 ? "session.revertDock.summary.one" : "session.revertDock.summary.other", {
|
||||
count: total(),
|
||||
}),
|
||||
)
|
||||
const preview = createMemo(() => props.items[0]?.text ?? "")
|
||||
|
||||
const onHeaderKeyDown = (event: KeyboardEvent) => {
|
||||
|
||||
@@ -59,7 +59,6 @@ import { SessionFileBrowserTab, type SessionFileBrowserState } from "@/pages/ses
|
||||
|
||||
type ReviewDiff = FileDiffInfo | SnapshotFileDiff | VcsFileDiff
|
||||
type RenderDiff = FileDiffInfo | (SnapshotFileDiff & { file: string }) | VcsFileDiff
|
||||
const FILE_TREE_WIDTH_MIN = 240
|
||||
|
||||
function renderDiff(value: ReviewDiff): value is RenderDiff {
|
||||
return typeof value.file === "string"
|
||||
@@ -105,14 +104,13 @@ export function SessionSidePanel(props: {
|
||||
}),
|
||||
)
|
||||
const open = createMemo(() => reviewOpen() || fileOpen())
|
||||
const fileTreeWidth = createMemo(() => Math.max(FILE_TREE_WIDTH_MIN, layout.fileTree.width()))
|
||||
const reviewTab = createMemo(() => isDesktop())
|
||||
const panelWidth = createMemo(() => {
|
||||
if (!open()) return "0px"
|
||||
if (reviewOpen()) return "auto"
|
||||
return `${fileTreeWidth()}px`
|
||||
return `${layout.fileTree.width()}px`
|
||||
})
|
||||
const treeWidth = createMemo(() => (fileOpen() ? `${fileTreeWidth()}px` : "0px"))
|
||||
const treeWidth = createMemo(() => (fileOpen() ? `${layout.fileTree.width()}px` : "0px"))
|
||||
|
||||
const diffs = createMemo(() => props.diffs().filter(renderDiff))
|
||||
const diffFiles = createMemo(() => diffs().map((d) => d.file))
|
||||
@@ -847,8 +845,8 @@ export function SessionSidePanel(props: {
|
||||
<ResizeHandle
|
||||
direction="horizontal"
|
||||
edge="start"
|
||||
size={fileTreeWidth()}
|
||||
min={FILE_TREE_WIDTH_MIN}
|
||||
size={layout.fileTree.width()}
|
||||
min={200}
|
||||
max={480}
|
||||
onResize={(width) => {
|
||||
props.size.touch()
|
||||
|
||||
@@ -161,7 +161,10 @@ function TimelineDiffSummaryRow(props: { diffs: SummaryDiff[] }) {
|
||||
>
|
||||
<div data-slot="session-turn-diffs-header">
|
||||
<span data-slot="session-turn-diffs-label">
|
||||
{language.plural("ui.sessionTurn.diffs.changed", props.diffs.length)}
|
||||
{language.t(
|
||||
props.diffs.length === 1 ? "ui.sessionTurn.diffs.changed.one" : "ui.sessionTurn.diffs.changed.other",
|
||||
{ count: String(props.diffs.length) },
|
||||
)}
|
||||
</span>
|
||||
<DiffChanges changes={props.diffs} />
|
||||
<Show when={overflow() > 0}>
|
||||
@@ -643,7 +646,7 @@ export function MessageTimeline(props: {
|
||||
const viewShare = () => {
|
||||
const url = shareUrl()
|
||||
if (!url) return
|
||||
platform.openExternal(url)
|
||||
platform.openLink(url)
|
||||
}
|
||||
|
||||
const errorMessage = (err: unknown) => {
|
||||
@@ -1103,7 +1106,7 @@ export function MessageTimeline(props: {
|
||||
return (
|
||||
<TimelineRowFrame row={commentStripRow}>
|
||||
<div class="w-full px-4 md:px-5 pb-2">
|
||||
<div class="ms-auto max-w-[82%] overflow-x-auto no-scrollbar">
|
||||
<div class="ml-auto max-w-[82%] overflow-x-auto no-scrollbar">
|
||||
<div class="flex w-max min-w-full justify-end gap-2">
|
||||
<Index each={comments()}>
|
||||
{(comment) => (
|
||||
|
||||
@@ -1,171 +0,0 @@
|
||||
import type { AsyncStorage } from "@solid-primitives/storage"
|
||||
|
||||
export type BlobReference = { id: string; url: string }
|
||||
|
||||
type Driver = {
|
||||
get(key: string): Promise<string | null>
|
||||
set(key: string, value: string): Promise<void>
|
||||
remove(key: string): Promise<void>
|
||||
putBlob(blob: Blob): Promise<string>
|
||||
getBlob(id: string): Promise<Blob | null>
|
||||
}
|
||||
|
||||
export type DraftStore = AsyncStorage & { putBlob(blob: Blob): Promise<BlobReference> }
|
||||
const urls = new Map<string, string>()
|
||||
|
||||
function blobUrl(id: string, blob: Blob) {
|
||||
const existing = urls.get(id)
|
||||
if (existing) return existing
|
||||
const url = URL.createObjectURL(blob)
|
||||
urls.set(id, url)
|
||||
return url
|
||||
}
|
||||
|
||||
async function blobID(blob: Blob) {
|
||||
const id = Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256", await blob.arrayBuffer())))
|
||||
.map((byte) => byte.toString(16).padStart(2, "0"))
|
||||
.join("")
|
||||
return id
|
||||
}
|
||||
|
||||
export async function createBlobReference(blob: Blob): Promise<BlobReference> {
|
||||
const id = await blobID(blob)
|
||||
return { id, url: blobUrl(id, blob) }
|
||||
}
|
||||
|
||||
export function createDraftStore(driver: Driver): DraftStore {
|
||||
const versions = new Map<string, number>()
|
||||
const putBlob = async (blob: Blob) => {
|
||||
const id = await driver.putBlob(blob)
|
||||
return { id, url: blobUrl(id, blob) }
|
||||
}
|
||||
const encode = async (value: unknown): Promise<unknown> => {
|
||||
if (Array.isArray(value)) return Promise.all(value.map(encode))
|
||||
if (!value || typeof value !== "object") return value
|
||||
const item = value as Record<string, unknown>
|
||||
if (item.type === "image" && typeof item.dataUrl === "string") {
|
||||
const blob = await fetch(item.dataUrl).then((response) => response.blob())
|
||||
const { dataUrl: _, ...rest } = item
|
||||
return { ...rest, blob: { id: await driver.putBlob(blob) } }
|
||||
}
|
||||
if ("blob" in item && item.blob && typeof item.blob === "object") {
|
||||
const blob = item.blob as Record<string, unknown>
|
||||
if (typeof blob.id === "string" && blob.id.startsWith("data:")) {
|
||||
const data = await fetch(blob.id).then((response) => response.blob())
|
||||
return { ...item, blob: { id: await driver.putBlob(data) } }
|
||||
}
|
||||
return { ...item, blob: { id: blob.id } }
|
||||
}
|
||||
return Object.fromEntries(
|
||||
await Promise.all(Object.entries(item).map(async ([key, entry]) => [key, await encode(entry)])),
|
||||
)
|
||||
}
|
||||
const decode = async (value: unknown): Promise<unknown> => {
|
||||
if (Array.isArray(value)) return Promise.all(value.map(decode))
|
||||
if (!value || typeof value !== "object") return value
|
||||
const item = value as Record<string, unknown>
|
||||
if (item.blob && typeof item.blob === "object") {
|
||||
const ref = item.blob as Record<string, unknown>
|
||||
if (typeof ref.id === "string") {
|
||||
const blob = await driver.getBlob(ref.id)
|
||||
if (blob) return { ...item, blob: { id: ref.id, url: blobUrl(ref.id, blob) } }
|
||||
}
|
||||
}
|
||||
return Object.fromEntries(
|
||||
await Promise.all(Object.entries(item).map(async ([key, entry]) => [key, await decode(entry)])),
|
||||
)
|
||||
}
|
||||
return {
|
||||
getItem: async (key) => {
|
||||
const value = await driver.get(key)
|
||||
return value === null ? null : JSON.stringify(await decode(JSON.parse(value)))
|
||||
},
|
||||
setItem: async (key, value) => {
|
||||
const version = (versions.get(key) ?? 0) + 1
|
||||
versions.set(key, version)
|
||||
const encoded = JSON.stringify(await encode(JSON.parse(value)))
|
||||
if (versions.get(key) === version) await driver.set(key, encoded)
|
||||
},
|
||||
removeItem: async (key) => {
|
||||
versions.set(key, (versions.get(key) ?? 0) + 1)
|
||||
await driver.remove(key)
|
||||
},
|
||||
putBlob,
|
||||
}
|
||||
}
|
||||
|
||||
export function createBrowserDraftStore(): DraftStore {
|
||||
const request = indexedDB.open("opencode-drafts", 1)
|
||||
request.addEventListener("upgradeneeded", () => {
|
||||
request.result.createObjectStore("documents")
|
||||
request.result.createObjectStore("blobs")
|
||||
})
|
||||
const db = new Promise<IDBDatabase>((resolve, reject) => {
|
||||
request.addEventListener("success", () => {
|
||||
const database = request.result
|
||||
const transaction = database.transaction(["documents", "blobs"], "readwrite")
|
||||
const documents = transaction.objectStore("documents").getAll()
|
||||
documents.addEventListener("success", () => {
|
||||
const used = new Set<string>()
|
||||
JSON.parse(`[${documents.result.join(",")}]`, (_key, item) => {
|
||||
if (item?.blob && typeof item.blob.id === "string") used.add(item.blob.id)
|
||||
return item
|
||||
})
|
||||
const blobs = transaction.objectStore("blobs").openKeyCursor()
|
||||
blobs.addEventListener("success", () => {
|
||||
const cursor = blobs.result
|
||||
if (!cursor) return
|
||||
if (!used.has(String(cursor.key))) cursor.delete()
|
||||
cursor.continue()
|
||||
})
|
||||
})
|
||||
transaction.addEventListener("complete", () => resolve(database))
|
||||
transaction.addEventListener("abort", () => resolve(database))
|
||||
})
|
||||
request.addEventListener("error", () => reject(request.error))
|
||||
})
|
||||
const get = async (store: string, key: string) => {
|
||||
const result = (await db).transaction(store).objectStore(store).get(key)
|
||||
return new Promise<unknown>((resolve, reject) => {
|
||||
result.addEventListener("success", () => resolve(result.result))
|
||||
result.addEventListener("error", () => reject(result.error))
|
||||
})
|
||||
}
|
||||
const write = async (store: string, key: string, value?: unknown) => {
|
||||
const transaction = (await db).transaction(store, "readwrite")
|
||||
if (value === undefined) transaction.objectStore(store).delete(key)
|
||||
else transaction.objectStore(store).put(value, key)
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
transaction.addEventListener("complete", () => resolve())
|
||||
transaction.addEventListener("error", () => reject(transaction.error))
|
||||
})
|
||||
}
|
||||
return createDraftStore({
|
||||
get: async (key) => ((await get("documents", key)) as string | undefined) ?? null,
|
||||
set: (key, value) => write("documents", key, value),
|
||||
remove: (key) => write("documents", key),
|
||||
putBlob: async (blob) => {
|
||||
const id = await blobID(blob)
|
||||
await write("blobs", id, blob)
|
||||
return id
|
||||
},
|
||||
getBlob: async (id) => ((await get("blobs", id)) as Blob | undefined) ?? null,
|
||||
})
|
||||
}
|
||||
|
||||
export async function blobDataUrl(blob: BlobReference, mime: string) {
|
||||
const data = await fetch(blob.url).then((response) => response.blob())
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
const reader = new FileReader()
|
||||
reader.addEventListener("error", () => reject(reader.error))
|
||||
reader.addEventListener("load", () => {
|
||||
const value = typeof reader.result === "string" ? reader.result : ""
|
||||
resolve(`data:${mime};base64,${value.slice(value.indexOf(",") + 1)}`)
|
||||
})
|
||||
reader.readAsDataURL(data)
|
||||
})
|
||||
}
|
||||
|
||||
export function createLegacyBlobReference(dataUrl: string): BlobReference {
|
||||
return { id: dataUrl, url: dataUrl }
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import { afterEach, describe, expect, test } from "bun:test"
|
||||
import { handleNotificationClick, setNavigate } from "./notification-click"
|
||||
|
||||
describe("notification click", () => {
|
||||
afterEach(() => {
|
||||
setNavigate(undefined as any)
|
||||
})
|
||||
|
||||
test("navigates via registered navigate function", () => {
|
||||
const calls: string[] = []
|
||||
setNavigate((href) => calls.push(href))
|
||||
handleNotificationClick("/abc/session/123")
|
||||
expect(calls).toEqual(["/abc/session/123"])
|
||||
})
|
||||
|
||||
test("does not navigate when href is missing", () => {
|
||||
const calls: string[] = []
|
||||
setNavigate((href) => calls.push(href))
|
||||
handleNotificationClick(undefined)
|
||||
expect(calls).toEqual([])
|
||||
})
|
||||
|
||||
test("falls back to location.assign without registered navigate", () => {
|
||||
handleNotificationClick("/abc/session/123")
|
||||
// falls back to window.location.assign — no error thrown
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,13 @@
|
||||
let nav: ((href: string) => void) | undefined
|
||||
|
||||
export const setNavigate = (fn: (href: string) => void) => {
|
||||
nav = fn
|
||||
}
|
||||
|
||||
export const handleNotificationClick = (href?: string) => {
|
||||
window.focus()
|
||||
if (!href) return
|
||||
if (nav) return nav(href)
|
||||
console.warn("notification-click: navigate function not set, falling back to window.location.assign")
|
||||
window.location.assign(href)
|
||||
}
|
||||
@@ -15,7 +15,6 @@ type PersistedWithReady<T> = [
|
||||
]
|
||||
|
||||
type PersistTarget = {
|
||||
draft?: boolean
|
||||
storage?: string
|
||||
scope?: "window"
|
||||
legacyStorageNames?: string[]
|
||||
@@ -296,14 +295,6 @@ async function removeAsync(storage: AsyncStorage, key: string) {
|
||||
} catch {}
|
||||
}
|
||||
|
||||
function toAsyncStorage(storage: SyncStorage | AsyncStorage): AsyncStorage {
|
||||
return {
|
||||
getItem: async (key) => storage.getItem(key),
|
||||
setItem: async (key, value) => storage.setItem(key, value),
|
||||
removeItem: async (key) => storage.removeItem(key),
|
||||
}
|
||||
}
|
||||
|
||||
async function migrateLegacyAsync(input: {
|
||||
current: AsyncStorage
|
||||
legacyStore?: AsyncStorage
|
||||
@@ -522,9 +513,6 @@ export const Persist = {
|
||||
if (session) return Persist.serverSession(scope, dir, session, key, legacy)
|
||||
return Persist.serverWorkspace(scope, dir, key, legacy)
|
||||
},
|
||||
prompt(target: PersistTarget): PersistTarget {
|
||||
return { ...target, draft: true }
|
||||
},
|
||||
}
|
||||
|
||||
function resolveTarget(target: PersistTarget, platform: Platform): PersistTarget {
|
||||
@@ -538,12 +526,9 @@ function resolveTarget(target: PersistTarget, platform: Platform): PersistTarget
|
||||
}
|
||||
|
||||
export function removePersisted(
|
||||
target: { draft?: boolean; storage?: string; legacyStorageNames?: string[]; key: string },
|
||||
target: { storage?: string; legacyStorageNames?: string[]; key: string },
|
||||
platform?: Platform,
|
||||
) {
|
||||
if (target.draft && platform?.draftStore) {
|
||||
void platform.draftStore.removeItem(`${target.storage ?? "default"}:${target.key}`)
|
||||
}
|
||||
const isDesktop = platform?.platform === "desktop" && !!platform.storage
|
||||
|
||||
if (isDesktop) {
|
||||
@@ -576,17 +561,8 @@ export function persisted<T>(
|
||||
const legacy = config.legacy ?? []
|
||||
|
||||
const isDesktop = platform.platform === "desktop" && !!platform.storage
|
||||
const draft = config.draft ? platform.draftStore : undefined
|
||||
|
||||
const currentStorage = (() => {
|
||||
if (draft) {
|
||||
const prefix = `${config.storage ?? "default"}:`
|
||||
return {
|
||||
getItem: (key: string) => draft.getItem(prefix + key),
|
||||
setItem: (key: string, value: string) => draft.setItem(prefix + key, value),
|
||||
removeItem: (key: string) => draft.removeItem(prefix + key),
|
||||
} satisfies AsyncStorage
|
||||
}
|
||||
if (isDesktop) return platform.storage?.(config.storage)
|
||||
if (!config.storage) return localStorageDirect()
|
||||
return localStorageWithPrefix(config.storage)
|
||||
@@ -601,7 +577,7 @@ export function persisted<T>(
|
||||
const legacyStorageNames = config.legacyStorageNames ?? []
|
||||
|
||||
const storage = (() => {
|
||||
if (!isDesktop && !draft) {
|
||||
if (!isDesktop) {
|
||||
const current = currentStorage as SyncStorage
|
||||
const legacyStore = legacyStorage as SyncStorage
|
||||
const legacyStores = legacyStorageNames.map(localStorageWithPrefix)
|
||||
@@ -633,26 +609,15 @@ export function persisted<T>(
|
||||
|
||||
const current = currentStorage as AsyncStorage
|
||||
const legacyStore = legacyStorage as AsyncStorage | undefined
|
||||
const oldCurrent = draft
|
||||
? isDesktop
|
||||
? platform.storage?.(config.storage)
|
||||
: config.storage
|
||||
? localStorageWithPrefix(config.storage)
|
||||
: localStorageDirect()
|
||||
: undefined
|
||||
const legacyStores = [
|
||||
oldCurrent,
|
||||
...legacyStorageNames.map((name) => (isDesktop ? platform.storage?.(name) : localStorageWithPrefix(name))),
|
||||
]
|
||||
const legacyStores = legacyStorageNames
|
||||
.map((name) => platform.storage?.(name) as AsyncStorage | undefined)
|
||||
.filter((x) => !!x)
|
||||
.map(toAsyncStorage)
|
||||
let draftLatest: string | undefined
|
||||
|
||||
const api: AsyncStorage = {
|
||||
getItem: async (key) => {
|
||||
const value = await readCurrentAsync({ storage: current, key, defaults, migrate: config.migrate })
|
||||
if (value !== undefined) return value
|
||||
const migrated = await migrateLegacyAsync({
|
||||
return migrateLegacyAsync({
|
||||
current,
|
||||
legacyStore,
|
||||
stores: legacyStores,
|
||||
@@ -661,15 +626,8 @@ export function persisted<T>(
|
||||
defaults,
|
||||
migrate: config.migrate,
|
||||
})
|
||||
if (draftLatest === undefined) {
|
||||
if (draft && migrated !== null) return (await current.getItem(key)) ?? migrated
|
||||
return migrated
|
||||
}
|
||||
await current.setItem(key, draftLatest)
|
||||
return draftLatest
|
||||
},
|
||||
setItem: async (key, value) => {
|
||||
if (draft) draftLatest = value
|
||||
await current.setItem(key, value)
|
||||
},
|
||||
removeItem: async (key) => {
|
||||
|
||||
@@ -37,18 +37,8 @@ describe("extractPromptFromParts", () => {
|
||||
expect(result).toHaveLength(3)
|
||||
expect(result[0]).toMatchObject({ type: "text", content: "check these" })
|
||||
expect(result.slice(1)).toMatchObject([
|
||||
{
|
||||
type: "image",
|
||||
filename: "a.png",
|
||||
mime: "image/png",
|
||||
blob: expect.objectContaining({ id: expect.any(String) }),
|
||||
},
|
||||
{
|
||||
type: "image",
|
||||
filename: "b.pdf",
|
||||
mime: "application/pdf",
|
||||
blob: expect.objectContaining({ id: expect.any(String) }),
|
||||
},
|
||||
{ type: "image", filename: "a.png", mime: "image/png", dataUrl: "data:image/png;base64,AAA" },
|
||||
{ type: "image", filename: "b.pdf", mime: "application/pdf", dataUrl: "data:application/pdf;base64,BBB" },
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import type { AgentPart as MessageAgentPart, FilePart, Part, TextPart } from "@opencode-ai/sdk/v2"
|
||||
import type { AgentPart, FileAttachmentPart, ImageAttachmentPart, Prompt } from "@/context/prompt"
|
||||
import { createLegacyBlobReference } from "@/utils/draft-store"
|
||||
|
||||
type Inline =
|
||||
| {
|
||||
@@ -108,7 +107,7 @@ export function extractPromptFromParts(parts: Part[], opts?: { directory?: strin
|
||||
id: filePart.id,
|
||||
filename: filePart.filename ?? attachmentName,
|
||||
mime: filePart.mime,
|
||||
blob: createLegacyBlobReference(filePart.url),
|
||||
dataUrl: filePart.url,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,5 @@
|
||||
const pattern = /^(New session|Child session) - \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/
|
||||
|
||||
interface Info {
|
||||
readonly title?: string
|
||||
readonly parentID?: string
|
||||
readonly time: {
|
||||
readonly created: number
|
||||
}
|
||||
}
|
||||
|
||||
export function withTimestampedFallback(info: Info) {
|
||||
return info.title ?? `${info.parentID ? "Child" : "New"} session - ${new Date(info.time.created).toISOString()}`
|
||||
}
|
||||
|
||||
export function sessionTitle(title?: string) {
|
||||
if (!title) return title
|
||||
const match = title.match(pattern)
|
||||
|
||||
@@ -36,14 +36,6 @@ describe("normalizeSessionInfo", () => {
|
||||
revert: { messageID: "message-1", partID: "part-1", snapshot: "snapshot" },
|
||||
})
|
||||
})
|
||||
|
||||
test("supplies timestamped titles for untitled current sessions", () => {
|
||||
const root = currentSession("session-1")
|
||||
const child = currentSession("session-2", "session-1")
|
||||
|
||||
expect(normalizeSessionInfo(root).title).toBe("New session - 1970-01-01T00:00:00.000Z")
|
||||
expect(normalizeSessionInfo(child).title).toBe("Child session - 1970-01-01T00:00:00.000Z")
|
||||
})
|
||||
})
|
||||
|
||||
describe("listAllSessions", () => {
|
||||
@@ -100,15 +92,3 @@ function sessionInfo(id: string, archived = false) {
|
||||
location: { directory: "/repo" },
|
||||
} as SessionInfo
|
||||
}
|
||||
|
||||
function currentSession(id: string, parentID?: string) {
|
||||
return {
|
||||
id,
|
||||
parentID,
|
||||
projectID: "project-1",
|
||||
cost: 0,
|
||||
tokens: { input: 0, output: 0, reasoning: 0, cache: { read: 0, write: 0 } },
|
||||
time: { created: 0, updated: 0 },
|
||||
location: { directory: "/repo" },
|
||||
} as SessionInfo
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import type { SessionApi, SessionInfo, SessionListInput } from "@opencode-ai/client/promise"
|
||||
import type { Session } from "@opencode-ai/sdk/v2/client"
|
||||
import { withTimestampedFallback } from "./session-title"
|
||||
|
||||
export function normalizeSessionInfo(input: SessionInfo | Session): Session {
|
||||
if (!("location" in input)) return input
|
||||
@@ -14,7 +13,7 @@ export function normalizeSessionInfo(input: SessionInfo | Session): Session {
|
||||
parentID: input.parentID,
|
||||
cost: input.cost,
|
||||
tokens: input.tokens,
|
||||
title: withTimestampedFallback(input),
|
||||
title: input.title,
|
||||
agent: input.agent,
|
||||
model: input.model,
|
||||
version: "",
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
import { Icon, type IconProps } from "@opencode-ai/ui/icon"
|
||||
import {
|
||||
Toast,
|
||||
showToast as showLegacyToast,
|
||||
toaster as legacyToaster,
|
||||
type ToastOptions,
|
||||
type ToastVariant,
|
||||
} from "@opencode-ai/ui/toast"
|
||||
import { ToastV2, showToastV2, toasterV2 } from "@opencode-ai/ui/v2/toast-v2"
|
||||
import { Toast, showToast as showLegacyToast, type ToastOptions, type ToastVariant } from "@opencode-ai/ui/toast"
|
||||
import { ToastV2, showToastV2 } from "@opencode-ai/ui/v2/toast-v2"
|
||||
|
||||
let v2 = false
|
||||
|
||||
@@ -33,13 +27,6 @@ export function showToast(options: ToastOptions | string) {
|
||||
})
|
||||
}
|
||||
|
||||
// v1 and v2 ids come from separate registries, so dismissal has to use the same
|
||||
// implementation that issued the id.
|
||||
export function dismissToast(toastId: number) {
|
||||
if (!v2) return legacyToaster.dismiss(toastId)
|
||||
return toasterV2.dismiss(toastId)
|
||||
}
|
||||
|
||||
function resolveIcon(icon: IconProps["name"] | undefined, variant: ToastVariant | undefined) {
|
||||
const name = icon ?? (variant === "success" ? "check" : undefined)
|
||||
if (!name) return
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import { createRoot } from "solid-js"
|
||||
import { createStore } from "solid-js/store"
|
||||
import { createPromptAttachmentsCore } from "@/components/prompt-input/attachments"
|
||||
import { createPromptState } from "@/context/prompt"
|
||||
import { createPromptInputV2Attachments } from "../../session-ui/src/v2/components/prompt-input/attachments"
|
||||
import type { PromptInputV2Prompt } from "../../session-ui/src/v2/components/prompt-input/types"
|
||||
|
||||
describe("prompt attachment session ownership", () => {
|
||||
test("adds an asynchronously read image to the session where the read started", async () => {
|
||||
@@ -88,88 +85,6 @@ describe("prompt attachment session ownership", () => {
|
||||
})
|
||||
})
|
||||
|
||||
test("rejects a duplicate native clipboard attachment in the V2 prompt store", async () => {
|
||||
await createRoot(async (dispose) => {
|
||||
const [state, setState] = createStore({ prompt: [] as PromptInputV2Prompt })
|
||||
const duplicate = Promise.withResolvers<void>()
|
||||
const files = [
|
||||
new File(["hello"], "clipboard-1.txt", { type: "text/plain" }),
|
||||
new File(["hello"], "clipboard-2.txt", { type: "text/plain" }),
|
||||
]
|
||||
const attachments = createPromptInputV2Attachments({
|
||||
capture: () => ({
|
||||
current: () => state.prompt,
|
||||
cursor: () => 0,
|
||||
set: (prompt) => setState("prompt", prompt),
|
||||
}),
|
||||
editor: () => document.createElement("div"),
|
||||
focusEditor: () => undefined,
|
||||
addPart: () => false,
|
||||
setDraggingType: () => undefined,
|
||||
directory: () => "/",
|
||||
isDialogActive: () => false,
|
||||
warn: () => undefined,
|
||||
duplicate: duplicate.resolve,
|
||||
onError: () => undefined,
|
||||
readClipboardImage: async () => files.shift() ?? null,
|
||||
})
|
||||
const event = {
|
||||
clipboardData: { items: [], getData: () => "" },
|
||||
preventDefault: () => undefined,
|
||||
stopPropagation: () => undefined,
|
||||
} as unknown as ClipboardEvent
|
||||
|
||||
await attachments.handlePaste(event)
|
||||
await attachments.handlePaste(event)
|
||||
await duplicate.promise
|
||||
|
||||
expect(state.prompt).toHaveLength(1)
|
||||
dispose()
|
||||
})
|
||||
})
|
||||
|
||||
test("rejects desktop duplicates and keeps changed files in the V2 prompt store", async () => {
|
||||
await createRoot(async (dispose) => {
|
||||
const [state, setState] = createStore({ prompt: [] as PromptInputV2Prompt })
|
||||
const duplicates: string[] = []
|
||||
const attachments = createPromptInputV2Attachments({
|
||||
capture: () => ({
|
||||
current: () => state.prompt,
|
||||
cursor: () => 0,
|
||||
set: (prompt) => setState("prompt", prompt),
|
||||
}),
|
||||
editor: () => document.createElement("div"),
|
||||
focusEditor: () => undefined,
|
||||
addPart: () => false,
|
||||
setDraggingType: () => undefined,
|
||||
directory: () => "/",
|
||||
isDialogActive: () => false,
|
||||
warn: () => undefined,
|
||||
duplicate: () => duplicates.push("duplicate"),
|
||||
onError: () => undefined,
|
||||
getPathForFile: (file) => (file.name === "browser.txt" ? "" : `/tmp/${file.name}`),
|
||||
})
|
||||
const first = new File(["first"], "a.txt", { type: "text/plain" })
|
||||
const second = new File(["second"], "b.txt", { type: "text/plain" })
|
||||
|
||||
await attachments.addAttachments([first, second])
|
||||
await attachments.addAttachments([first, second])
|
||||
expect(state.prompt).toHaveLength(2)
|
||||
expect(duplicates).toEqual(["duplicate", "duplicate"])
|
||||
|
||||
await attachments.addAttachments([new File(["edited"], "a.txt", { type: "text/plain" })])
|
||||
expect(state.prompt).toHaveLength(3)
|
||||
|
||||
await attachments.addAttachments([
|
||||
new File(["same"], "browser.txt", { type: "text/plain" }),
|
||||
new File(["same"], "browser.txt", { type: "text/plain" }),
|
||||
])
|
||||
expect(state.prompt).toHaveLength(4)
|
||||
expect(duplicates).toHaveLength(3)
|
||||
dispose()
|
||||
})
|
||||
})
|
||||
|
||||
function images(prompt: ReturnType<typeof createPromptState>) {
|
||||
return prompt.current().filter((part) => part.type === "image")
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import { beforeAll, describe, expect, mock, test } from "bun:test"
|
||||
import type { AsyncStorage } from "@solid-primitives/storage"
|
||||
import { createEffect, createRoot } from "solid-js"
|
||||
import { ServerScope } from "@/utils/server-scope"
|
||||
import { createDraftStore } from "@/utils/draft-store"
|
||||
|
||||
let Prompt: typeof import("@/context/prompt")
|
||||
let read: ((value: string | null) => void) | undefined
|
||||
@@ -31,7 +30,7 @@ beforeAll(async () => {
|
||||
}),
|
||||
}))
|
||||
mock.module("@/context/platform", () => ({
|
||||
usePlatform: () => ({ platform: "desktop", storage: () => storage, draftStore: storage }),
|
||||
usePlatform: () => ({ platform: "desktop", storage: () => storage }),
|
||||
}))
|
||||
|
||||
Prompt = await import("@/context/prompt")
|
||||
@@ -70,50 +69,3 @@ describe("prompt persistence", () => {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
test("moves legacy image data URLs into blobs and hydrates object URLs", async () => {
|
||||
const documents = new Map<string, string>()
|
||||
const blobs = new Map<string, Blob>()
|
||||
const store = createDraftStore({
|
||||
get: async (key) => documents.get(key) ?? null,
|
||||
set: async (key, value) => void documents.set(key, value),
|
||||
remove: async (key) => void documents.delete(key),
|
||||
putBlob: async (blob) => {
|
||||
const id = String(blob.size)
|
||||
blobs.set(id, blob)
|
||||
return id
|
||||
},
|
||||
getBlob: async (id) => blobs.get(id) ?? null,
|
||||
})
|
||||
|
||||
await store.setItem("prompt", JSON.stringify({ prompt: [{ type: "image", dataUrl: "data:image/png;base64,YQ==" }] }))
|
||||
expect(documents.get("prompt")).not.toContain("dataUrl")
|
||||
const value = JSON.parse((await store.getItem("prompt"))!)
|
||||
expect(value.prompt[0].blob.id).toBe("1")
|
||||
expect(value.prompt[0].blob.url).toStartWith("blob:")
|
||||
})
|
||||
|
||||
test("does not let delayed blob migration overwrite a newer draft", async () => {
|
||||
const documents = new Map<string, string>()
|
||||
const migration = Promise.withResolvers<void>()
|
||||
const store = createDraftStore({
|
||||
get: async () => null,
|
||||
set: async (key, value) => void documents.set(key, value),
|
||||
remove: async () => undefined,
|
||||
putBlob: async () => {
|
||||
await migration.promise
|
||||
return "blob"
|
||||
},
|
||||
getBlob: async () => null,
|
||||
})
|
||||
const older = store.setItem(
|
||||
"prompt",
|
||||
JSON.stringify({ prompt: [{ type: "image", dataUrl: "data:image/png;base64,YQ==" }] }),
|
||||
)
|
||||
await Bun.sleep(0)
|
||||
await store.setItem("prompt", JSON.stringify({ prompt: [{ type: "text", content: "latest" }] }))
|
||||
migration.resolve()
|
||||
await older
|
||||
|
||||
expect(documents.get("prompt")).toContain("latest")
|
||||
})
|
||||
|
||||
@@ -1,46 +1,8 @@
|
||||
import { beforeEach, describe, expect, test } from "bun:test"
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import { createSignal, type JSX } from "solid-js"
|
||||
import { showToastV2, toasterV2 } from "@opencode-ai/ui/v2/toast-v2"
|
||||
|
||||
describe("showToastV2", () => {
|
||||
// The toast registry is module state, so each test starts from an empty stack.
|
||||
beforeEach(() => {
|
||||
toasterV2.dismiss()
|
||||
})
|
||||
|
||||
test("coalesces exact active content", () => {
|
||||
const first = showToastV2({ title: "Repeated error", description: "Try again" })
|
||||
const second = showToastV2({ title: "Repeated error", description: "Try again" })
|
||||
const different = showToastV2({ title: "Repeated error", description: "A different error" })
|
||||
|
||||
expect(second).toBe(first)
|
||||
expect(different).not.toBe(first)
|
||||
|
||||
toasterV2.dismiss(first)
|
||||
toasterV2.dismiss(different)
|
||||
})
|
||||
|
||||
test("allows dismissed content to appear again", () => {
|
||||
const first = showToastV2("Dismiss and retry")
|
||||
toasterV2.dismiss(first)
|
||||
|
||||
const second = showToastV2("Dismiss and retry")
|
||||
expect(second).not.toBe(first)
|
||||
|
||||
toasterV2.dismiss(second)
|
||||
})
|
||||
|
||||
test("recreates matching content when it is not the topmost toast", () => {
|
||||
const first = showToastV2("First toast")
|
||||
const topmost = showToastV2("Topmost toast")
|
||||
const repeated = showToastV2("First toast")
|
||||
|
||||
expect(repeated).not.toBe(first)
|
||||
|
||||
toasterV2.dismiss(topmost)
|
||||
toasterV2.dismiss(repeated)
|
||||
})
|
||||
|
||||
test("creates no reactive computations at call time", () => {
|
||||
const [tick, setTick] = createSignal(0)
|
||||
let reads = 0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user