mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 14:15:24 +00:00
Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b309e9582 | ||
|
|
40df00bd95 | ||
|
|
6c342f3957 | ||
|
|
c019f4a9c9 | ||
|
|
0ce0fe71a6 | ||
|
|
6b708106e1 | ||
|
|
5786eaccbb | ||
|
|
307667ce0f | ||
|
|
28e74de452 |
No files matched your search
@@ -35,7 +35,7 @@ jobs:
|
||||
- name: Resolve newest dev branch and compute beta version
|
||||
id: dev
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
REFS=$(gh api "repos/${{ github.repository }}/branches" --paginate -q '.[].name')
|
||||
if DEV_BRANCH=$(printf '%s\n' "$REFS" | node scripts/latest-dev-branch.cjs 2>/dev/null); then
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
- name: Resolve previous beta commit
|
||||
id: prev
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
SHA="${{ needs.prep.outputs.sha }}"
|
||||
PREV_SHA=$(gh release view beta --repo ${{ github.repository }} --json targetCommitish -q .targetCommitish 2>/dev/null || true)
|
||||
@@ -165,7 +165,7 @@ jobs:
|
||||
|
||||
- name: Create or update rolling beta release
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
TAG="beta"
|
||||
TITLE="Beta (rolling) - ${{ needs.prep.outputs.beta_version }}"
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
with:
|
||||
ref: ${{ steps.branch.outputs.name }}
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GHCR_TOKEN }}
|
||||
token: ${{ secrets.TERMIX_PAT }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
- name: Resolve newest dev branch
|
||||
id: dev
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
REFS=$(gh api "repos/${{ github.repository }}/branches" --paginate -q '.[].name')
|
||||
# The helper exits non-zero when no dev-X.Y.Z branch exists; treat that
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
- name: Retarget and merge Dependabot PRs
|
||||
if: ${{ steps.dev.outputs.branch != '' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
DEV_BRANCH: ${{ steps.dev.outputs.branch }}
|
||||
REPO: ${{ github.repository }}
|
||||
run: |
|
||||
|
||||
@@ -100,7 +100,7 @@ jobs:
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: lukegus
|
||||
password: ${{ secrets.GHCR_TOKEN }}
|
||||
password: ${{ secrets.TERMIX_PAT }}
|
||||
|
||||
- name: Login to Docker Hub (prod and beta only)
|
||||
if: ${{ (inputs.build_type == 'Production' || inputs.build_type == 'Beta') && !inputs.dry_run }}
|
||||
|
||||
@@ -89,7 +89,7 @@ jobs:
|
||||
with:
|
||||
ref: ${{ needs.prep.outputs.dev_branch }}
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GHCR_TOKEN }}
|
||||
token: ${{ secrets.TERMIX_PAT }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
@@ -153,7 +153,7 @@ jobs:
|
||||
with:
|
||||
ref: ${{ needs.prep.outputs.dev_branch }}
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GHCR_TOKEN }}
|
||||
token: ${{ secrets.TERMIX_PAT }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
@@ -171,7 +171,7 @@ jobs:
|
||||
- name: Clean up stale Crowdin git integration branch
|
||||
continue-on-error: true
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
PR_NUMBER=$(gh pr list --repo ${{ github.repository }} --head i18n_translate --state open --json number -q '.[0].number' || true)
|
||||
if [ -n "$PR_NUMBER" ]; then
|
||||
@@ -254,7 +254,7 @@ jobs:
|
||||
- name: Open and squash-merge PR to main
|
||||
id: merge
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
DEV_BRANCH="${{ needs.prep.outputs.dev_branch }}"
|
||||
TITLE="release-${{ needs.prep.outputs.version }}"
|
||||
@@ -325,7 +325,7 @@ jobs:
|
||||
- name: Clear existing release artifacts (overwrite mode)
|
||||
if: ${{ inputs.mode == 'Overwrite release' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
TAG="${{ needs.prep.outputs.release_tag }}"
|
||||
if ! gh release view "$TAG" --repo ${{ github.repository }} >/dev/null 2>&1; then
|
||||
@@ -348,7 +348,7 @@ jobs:
|
||||
- name: Create or update GitHub release
|
||||
if: ${{ inputs.mode != 'Overwrite release' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
TAG="${{ needs.prep.outputs.release_tag }}"
|
||||
TITLE="release-${{ needs.prep.outputs.version }}"
|
||||
@@ -391,7 +391,7 @@ jobs:
|
||||
with:
|
||||
ref: main
|
||||
fetch-depth: 1
|
||||
token: ${{ secrets.GHCR_TOKEN }}
|
||||
token: ${{ secrets.TERMIX_PAT }}
|
||||
|
||||
- name: Bump and commit Homebrew cask
|
||||
env:
|
||||
@@ -452,7 +452,7 @@ jobs:
|
||||
repository: Termix-SSH/Docs
|
||||
ref: main
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GHCR_TOKEN }}
|
||||
token: ${{ secrets.TERMIX_PAT }}
|
||||
path: docs-repo
|
||||
|
||||
- name: Create docs release branch
|
||||
@@ -499,7 +499,7 @@ jobs:
|
||||
if: ${{ inputs.mode != 'Dry run' }}
|
||||
working-directory: docs-repo
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
BRANCH="dev-${{ needs.prep.outputs.version }}"
|
||||
if ! git ls-remote --exit-code origin "refs/heads/$BRANCH" >/dev/null 2>&1; then
|
||||
@@ -567,14 +567,14 @@ jobs:
|
||||
|
||||
- name: Delete dev branch in Termix
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
git push https://x-access-token:${{ secrets.GHCR_TOKEN }}@github.com/${{ github.repository }}.git \
|
||||
git push https://x-access-token:${{ secrets.TERMIX_PAT }}@github.com/${{ github.repository }}.git \
|
||||
--delete "${{ needs.prep.outputs.dev_branch }}" || true
|
||||
|
||||
- name: Delete dev branch in Docs
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GHCR_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.TERMIX_PAT }}
|
||||
run: |
|
||||
git push https://x-access-token:${{ secrets.GHCR_TOKEN }}@github.com/Termix-SSH/Docs.git \
|
||||
git push https://x-access-token:${{ secrets.TERMIX_PAT }}@github.com/Termix-SSH/Docs.git \
|
||||
--delete "dev-${{ needs.prep.outputs.version }}" || true
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
cask "termix" do
|
||||
version "2.8.0"
|
||||
sha256 "e4030d648055650c682a451038814d4463230d2673457c2e337105458f84ce3d"
|
||||
version "2.9.1"
|
||||
sha256 "6d8847e18508314db8ed4380c63bf0dd31437102a288b8e861879c92ba25a254"
|
||||
|
||||
url "https://github.com/Termix-SSH/Termix/releases/download/release-#{version}-tag/termix_macos_universal_dmg.dmg"
|
||||
name "Termix"
|
||||
|
||||
@@ -215,7 +215,7 @@ Save a set of tabs with their split layout and reopen the whole thing in one cli
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Command Line Interface:**
|
||||
A `termix` CLI for your shell and your scripts. Open terminals, run a command on one host or a whole fleet, move files over SFTP, and manage hosts, snippets, and credentials. Install with `npm install -g @termix-cli/cli` or grab a standalone binary. See the [CLI docs](https://docs.termix.site/cli).
|
||||
A `termix` CLI for your shell and your scripts. Open terminals, run a command on one host or a whole fleet, move files over SFTP, and manage hosts, snippets, and credentials. Install with `npm install -g @termix-ssh/cli` or grab a standalone binary. See the [CLI docs](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -350,7 +350,7 @@ networks:
|
||||
Termix also has a CLI, so you can manage your servers from a terminal and use Termix in your own scripts.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
+6
-81
@@ -1,6 +1,6 @@
|
||||
<!-- SUMMARY -->
|
||||
|
||||
A new plugin system powering every feature, a dedicated sync page with more control over what syncs, one inbox for all alerts, a redesigned split screen, admin, user and folder host defaults, host maintenance mode, and a large batch of file manager, terminal, and remote desktop fixes.
|
||||
An urgent patch for 2.9.1 that fixes the server writing huge amounts of data to disk, which could add up to 100 GB every few hours. Update as soon as you can.
|
||||
|
||||
<!-- /SUMMARY -->
|
||||
|
||||
@@ -12,90 +12,15 @@ https://youtu.be/lngaePO96tM
|
||||
|
||||
<!-- UPDATE_LOG -->
|
||||
|
||||
- Rebuilt Termix around a plugin system, with features like the terminal, file manager, tunnels, Docker, Proxmox, remote desktop, metrics, automations, AI and every login method now shipped as signed plugins on a shared SDK
|
||||
- Moved desktop sync to its own page in the sidebar, with options to choose what syncs, keep single hosts or folders on the device only, and resolve conflicts
|
||||
- Added a recent servers list when linking the desktop app
|
||||
- Combined all alerts into one inbox with popups, Termix announcements and a new email channel
|
||||
- Redesigned split screen with free-form panes and a pane picker
|
||||
- Redesigned host defaults so they can be set at the admin, user or folder level and are inherited by hosts unless overridden
|
||||
- Added per-host maintenance mode and recurring schedules to automations
|
||||
- Added optional auto reconnect for dropped SSH sessions and a button to reconnect all disconnected terminal tabs
|
||||
- Added a duplicate tab action and a reconnect session keybinding
|
||||
- Added a host click setting to either focus an existing tab or always open a new one
|
||||
- Added keyboard type-ahead search to the host list
|
||||
- Added tighter compact host rows with inline tags
|
||||
- Added an option to show tab numbers
|
||||
- Added an option to hide folder paths above nested folders
|
||||
- Added a list of the fixed app shortcuts to the keyboard shortcuts screen
|
||||
- Added terminal toolbar position, start state and fade settings per host
|
||||
- Added a host setting to turn off password prompt auto-fill
|
||||
- Added the option to apply a saved custom theme in connection defaults
|
||||
- Added FortiToken push 2FA support for SSH
|
||||
- Added a unified multi-host tmux monitor view and a per-host tmux mouse toggle
|
||||
- Added fleet sharing
|
||||
- Added a list view to Docker management and support for the OrbStack Docker socket on macOS
|
||||
- Added network graph sync between the desktop app and the server
|
||||
- Added homepage canvas layout sync across devices
|
||||
- Added RDP display zoom controls
|
||||
- Added an option to skip the move to trash confirmation in the file manager
|
||||
- Made the file manager open in the remote login directory by default
|
||||
- Added add host and copy IP actions for Tailscale devices
|
||||
- Added inline credential sharing in the sidebar, matching host sharing
|
||||
- Made the Windows desktop shortcut optional in the installer
|
||||
- Redesigned the snippets panel to match the host list
|
||||
- Redesigned the session log player controls
|
||||
- Host status now shows online once the port answers and only warns when a login fails
|
||||
- Faster SFTP downloads
|
||||
- Faster UI loading with less jitter and lag across tabs, the dashboard and the network graph
|
||||
- Background database saves now happen at most once every 30 seconds, so disk writes no longer grow with the number of hosts
|
||||
- Plugin database and storage reads are now logged to the audit log once per start instead of on every read
|
||||
- On first start, 2.9.2 clears the plugin read entries that 2.9.1 piled up in the audit log
|
||||
|
||||
<!-- /UPDATE_LOG -->
|
||||
|
||||
<!-- BUG_FIXES -->
|
||||
|
||||
- TOTP not being prompted for jump hosts in the terminal, file manager, metrics and client tunnels
|
||||
- SSH host names resolving to IPv6 when IPv4 was available
|
||||
- Host key updates not syncing between devices
|
||||
- Host metrics returning 404 on the first connect
|
||||
- Host metrics using too much CPU on the backend
|
||||
- Host metrics showing image and firmware filesystems
|
||||
- Sudo password not auto-filling
|
||||
- Tunnels failing with shared credentials
|
||||
- Imported jump host references breaking
|
||||
- Hard to read terminal selection with the light theme
|
||||
- Terminal input arriving out of order with local echo on
|
||||
- Terminal image uploads failing when the image library was unavailable
|
||||
- File manager saves failing or corrupting files, with no sudo prompt on protected files
|
||||
- Sending a single file between servers failing
|
||||
- Disk usage showing the wrong mount or not refreshing with the directory
|
||||
- File uploads not cancelling and continuing to write on the server
|
||||
- Ctrl/Cmd+F file search not working in the file manager
|
||||
- File drops from the OS not working over existing rows
|
||||
- No download progress in file viewers
|
||||
- Text in Markdown previews not being selectable
|
||||
- Inline rename, compact mode and narrow list layout issues in the file manager
|
||||
- Remote desktop not using the host's saved guacd endpoint
|
||||
- Remote desktop asking for clipboard access unprompted
|
||||
- Remote desktop keys staying held after switching windows
|
||||
- Session share links on desktop pointing at the local app instead of the server
|
||||
- Shared terminal sizes and participant presence not syncing in session sharing
|
||||
- Meeting guests not being shown to members, and guests seeing the full roster
|
||||
- Session sharing not handing over cleanly after a takeover
|
||||
- AI responses getting cut off mid stream
|
||||
- AI provider settings not syncing to linked devices
|
||||
- Proxmox guest sync and startup snippet sync not working
|
||||
- LDAP logins losing the bind DN from the directory
|
||||
- Homepage service checks failing for allowed private addresses
|
||||
- Sidebar search showing overlapping hosts when grouped by tags
|
||||
- Sidebar rows not resizing after changing density, and compact rows hiding host addresses
|
||||
- Split screen layouts failing to create over plain HTTP
|
||||
- Double Shift opening the command palette by accident
|
||||
- Fleet detail buttons overflowing the sidebar
|
||||
- Recent activity cutting off host names too early
|
||||
- Docker container logs using the wrong background color
|
||||
- Version number missing on desktop when the server was offline
|
||||
- Desktop app not starting reliably, not quitting with active connections, and the Linux tray icon failing to load
|
||||
- Mac App Store builds being blocked by the single instance lock
|
||||
- Untranslated text in toasts and other parts of the UI
|
||||
- Several dependency security advisories
|
||||
- The server rewriting its whole database to disk many times a second, causing very high disk writes (up to 100 GB every few hours) on 2.9.1
|
||||
- The audit log filling up with plugin entries and pushing out real ones
|
||||
|
||||
<!-- /BUG_FIXES -->
|
||||
+3
-5
@@ -8,7 +8,9 @@ COPY plugins ./plugins
|
||||
RUN find plugins -mindepth 2 -maxdepth 2 ! -name package.json ! -name manifest.json -exec rm -rf {} +
|
||||
|
||||
# Stage 1: Install dependencies
|
||||
FROM node:26-slim AS deps
|
||||
# The builders only produce JS, so they run on the build machine's own arch
|
||||
# once instead of under QEMU per target. Rolldown hangs under arm64 emulation.
|
||||
FROM --platform=$BUILDPLATFORM node:26-slim AS deps
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
|
||||
@@ -42,10 +44,6 @@ WORKDIR /app
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN rm -rf node_modules/better-sqlite3/prebuilds && \
|
||||
npm run build-release --prefix node_modules/better-sqlite3 && \
|
||||
test -f node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||
|
||||
RUN npm run build:backend
|
||||
|
||||
# Stage 4: Download OPKSSH binary for the target platform so the image works offline
|
||||
|
||||
@@ -229,7 +229,7 @@ RDP وVNC وTelnet داخل المتصفح، في علامات تبويب وشا
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**سطر الأوامر:**
|
||||
أداة `termix` لسطر الأوامر تعمل في الطرفية وفي سكربتاتك. افتح الطرفيات، ونفّذ أمرًا على مضيف واحد أو على أسطول كامل، وانقل الملفات عبر SFTP، وأدر المضيفات والمقتطفات وبيانات الدخول. ثبّتها عبر `npm install -g @termix-cli/cli` أو استخدم ملفًا تنفيذيًا مستقلًا. راجع [وثائق سطر الأوامر](https://docs.termix.site/cli).
|
||||
أداة `termix` لسطر الأوامر تعمل في الطرفية وفي سكربتاتك. افتح الطرفيات، ونفّذ أمرًا على مضيف واحد أو على أسطول كامل، وانقل الملفات عبر SFTP، وأدر المضيفات والمقتطفات وبيانات الدخول. ثبّتها عبر `npm install -g @termix-ssh/cli` أو استخدم ملفًا تنفيذيًا مستقلًا. راجع [وثائق سطر الأوامر](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -355,7 +355,7 @@ networks:
|
||||
يوفر Termix أيضًا أداة سطر أوامر، لتدير خوادمك من الطرفية وتستخدم Termix داخل سكربتاتك.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Termix 是一个免费、开源、自托管的服务器管理平台。它把 SSH
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**命令行工具:**
|
||||
`termix` 命令行工具,可用于你的终端和脚本。打开终端、在单台主机或整个机群上执行命令、通过 SFTP 传输文件,以及管理主机、代码片段和凭据。用 `npm install -g @termix-cli/cli` 安装,或者直接下载独立的可执行文件。详见 [CLI 文档](https://docs.termix.site/cli)。
|
||||
`termix` 命令行工具,可用于你的终端和脚本。打开终端、在单台主机或整个机群上执行命令、通过 SFTP 传输文件,以及管理主机、代码片段和凭据。用 `npm install -g @termix-ssh/cli` 安装,或者直接下载独立的可执行文件。详见 [CLI 文档](https://docs.termix.site/cli)。
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -349,7 +349,7 @@ networks:
|
||||
Termix 还提供命令行工具,让你可以在终端里管理服务器,也可以把 Termix 用在自己的脚本中。
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Speichere eine Reihe von Tabs samt Aufteilung und öffne alles mit einem Klick w
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Kommandozeile:**
|
||||
Ein `termix`-CLI für deine Shell und deine Skripte. Terminals öffnen, einen Befehl auf einem Host oder einer ganzen Flotte ausführen, Dateien per SFTP verschieben und Hosts, Snippets und Zugangsdaten verwalten. Installiere es mit `npm install -g @termix-cli/cli` oder nimm eine eigenständige Binärdatei. Siehe die [CLI-Dokumentation](https://docs.termix.site/cli).
|
||||
Ein `termix`-CLI für deine Shell und deine Skripte. Terminals öffnen, einen Befehl auf einem Host oder einer ganzen Flotte ausführen, Dateien per SFTP verschieben und Hosts, Snippets und Zugangsdaten verwalten. Installiere es mit `npm install -g @termix-ssh/cli` oder nimm eine eigenständige Binärdatei. Siehe die [CLI-Dokumentation](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -350,7 +350,7 @@ networks:
|
||||
Termix hat auch ein CLI, damit du deine Server vom Terminal aus verwalten und Termix in eigenen Skripten nutzen kannst.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Guarda un conjunto de pestañas con su distribución dividida y reábrelo entero
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Línea de comandos:**
|
||||
Un CLI `termix` para tu shell y tus scripts. Abre terminales, ejecuta un comando en un host o en una flota entera, mueve archivos por SFTP y gestiona hosts, fragmentos y credenciales. Instálalo con `npm install -g @termix-cli/cli` o coge un binario independiente. Consulta la [documentación del CLI](https://docs.termix.site/cli).
|
||||
Un CLI `termix` para tu shell y tus scripts. Abre terminales, ejecuta un comando en un host o en una flota entera, mueve archivos por SFTP y gestiona hosts, fragmentos y credenciales. Instálalo con `npm install -g @termix-ssh/cli` o coge un binario independiente. Consulta la [documentación del CLI](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -350,7 +350,7 @@ networks:
|
||||
Termix también tiene un CLI, para que gestiones tus servidores desde un terminal y uses Termix en tus propios scripts.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Enregistrez un ensemble d'onglets avec leur disposition en écran divisé et rou
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Ligne de commande:**
|
||||
Un CLI `termix` pour votre shell et vos scripts. Ouvrez des terminaux, lancez une commande sur un hôte ou une flotte entière, déplacez des fichiers en SFTP et gérez hôtes, extraits et identifiants. Installez-le avec `npm install -g @termix-cli/cli` ou récupérez un binaire autonome. Voir la [documentation du CLI](https://docs.termix.site/cli).
|
||||
Un CLI `termix` pour votre shell et vos scripts. Ouvrez des terminaux, lancez une commande sur un hôte ou une flotte entière, déplacez des fichiers en SFTP et gérez hôtes, extraits et identifiants. Installez-le avec `npm install -g @termix-ssh/cli` ou récupérez un binaire autonome. Voir la [documentation du CLI](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -348,7 +348,7 @@ networks:
|
||||
Termix propose aussi un CLI, pour gérer vos serveurs depuis un terminal et utiliser Termix dans vos propres scripts.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -229,7 +229,7 @@ CPU, मेमोरी और डिस्क जैसी होस्ट म
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**कमांड लाइन:**
|
||||
आपके शेल और स्क्रिप्ट के लिए `termix` CLI। टर्मिनल खोलें, किसी एक होस्ट या पूरे फ़्लीट पर कमांड चलाएँ, SFTP से फ़ाइलें भेजें, और होस्ट, स्निपेट व क्रेडेंशियल संभालें। `npm install -g @termix-cli/cli` से इंस्टॉल करें या अलग बाइनरी लें। [CLI दस्तावेज़](https://docs.termix.site/cli) देखें।
|
||||
आपके शेल और स्क्रिप्ट के लिए `termix` CLI। टर्मिनल खोलें, किसी एक होस्ट या पूरे फ़्लीट पर कमांड चलाएँ, SFTP से फ़ाइलें भेजें, और होस्ट, स्निपेट व क्रेडेंशियल संभालें। `npm install -g @termix-ssh/cli` से इंस्टॉल करें या अलग बाइनरी लें। [CLI दस्तावेज़](https://docs.termix.site/cli) देखें।
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -355,7 +355,7 @@ networks:
|
||||
Termix में CLI भी है, ताकि आप टर्मिनल से अपने सर्वर संभाल सकें और Termix को अपनी स्क्रिप्ट में इस्तेमाल कर सकें।
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Salva un insieme di schede con la loro disposizione divisa e riapri tutto con un
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Riga di comando:**
|
||||
Una CLI `termix` per la tua shell e i tuoi script. Apri terminali, esegui un comando su un host o su un'intera flotta, sposta file via SFTP e gestisci host, frammenti e credenziali. Installala con `npm install -g @termix-cli/cli` oppure prendi un binario autonomo. Vedi la [documentazione della CLI](https://docs.termix.site/cli).
|
||||
Una CLI `termix` per la tua shell e i tuoi script. Apri terminali, esegui un comando su un host o su un'intera flotta, sposta file via SFTP e gestisci host, frammenti e credenziali. Installala con `npm install -g @termix-ssh/cli` oppure prendi un binario autonomo. Vedi la [documentazione della CLI](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -350,7 +350,7 @@ networks:
|
||||
Termix ha anche una CLI, così puoi gestire i tuoi server dal terminale e usare Termix nei tuoi script.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Proxmox のインスタンスからそのままホストを取り込めます。
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**コマンドラインツール:**
|
||||
シェルやスクリプトから使える `termix` CLI です。ターミナルを開き、ホスト 1 台またはフリート全体でコマンドを実行し、SFTP でファイルを移動し、ホストやスニペット、認証情報を管理できます。`npm install -g @termix-cli/cli` で入れるか、単体のバイナリを使ってください。詳しくは [CLI ドキュメント](https://docs.termix.site/cli)をご覧ください。
|
||||
シェルやスクリプトから使える `termix` CLI です。ターミナルを開き、ホスト 1 台またはフリート全体でコマンドを実行し、SFTP でファイルを移動し、ホストやスニペット、認証情報を管理できます。`npm install -g @termix-ssh/cli` で入れるか、単体のバイナリを使ってください。詳しくは [CLI ドキュメント](https://docs.termix.site/cli)をご覧ください。
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -350,7 +350,7 @@ networks:
|
||||
Termix には CLI もあるので、ターミナルからサーバーを管理したり、自分のスクリプトに組み込んだりできます。
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Proxmox 인스턴스에서 호스트를 바로 가져오고, 노드와 게스트
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**명령줄 도구:**
|
||||
셸과 스크립트에서 쓰는 `termix` CLI입니다. 터미널을 열고, 호스트 하나나 플릿 전체에서 명령을 실행하고, SFTP로 파일을 옮기고, 호스트와 스니펫, 자격 증명을 관리할 수 있습니다. `npm install -g @termix-cli/cli`로 설치하거나 단독 실행 파일을 받으면 됩니다. [CLI 문서](https://docs.termix.site/cli)를 참고하세요.
|
||||
셸과 스크립트에서 쓰는 `termix` CLI입니다. 터미널을 열고, 호스트 하나나 플릿 전체에서 명령을 실행하고, SFTP로 파일을 옮기고, 호스트와 스니펫, 자격 증명을 관리할 수 있습니다. `npm install -g @termix-ssh/cli`로 설치하거나 단독 실행 파일을 받으면 됩니다. [CLI 문서](https://docs.termix.site/cli)를 참고하세요.
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -348,7 +348,7 @@ networks:
|
||||
Termix에는 CLI도 있어서 터미널에서 서버를 관리하거나 Termix를 자기 스크립트에 넣어 쓸 수 있습니다.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Salva um conjunto de abas com a divisão da tela e reabre tudo com um clique. O
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Linha de comando:**
|
||||
Um CLI `termix` para o teu shell e os teus scripts. Abre terminais, roda um comando num host ou numa frota inteira, move arquivos por SFTP e gerencia hosts, trechos e credenciais. Instala com `npm install -g @termix-cli/cli` ou pega um binário independente. Vê a [documentação do CLI](https://docs.termix.site/cli).
|
||||
Um CLI `termix` para o teu shell e os teus scripts. Abre terminais, roda um comando num host ou numa frota inteira, move arquivos por SFTP e gerencia hosts, trechos e credenciais. Instala com `npm install -g @termix-ssh/cli` ou pega um binário independente. Vê a [documentação do CLI](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -346,7 +346,7 @@ networks:
|
||||
O Termix também tem um CLI, para gerenciares os teus servidores pelo terminal e usares o Termix nos teus próprios scripts.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ RDP, VNC и Telnet прямо в браузере, во вкладках и с
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Командная строка:**
|
||||
CLI `termix` для вашей оболочки и ваших скриптов. Открывайте терминалы, выполняйте команду на одном хосте или на целом флоте, перемещайте файлы по SFTP и управляйте хостами, сниппетами и учётными данными. Установите через `npm install -g @termix-cli/cli` или возьмите отдельный исполняемый файл. Смотрите [документацию CLI](https://docs.termix.site/cli).
|
||||
CLI `termix` для вашей оболочки и ваших скриптов. Открывайте терминалы, выполняйте команду на одном хосте или на целом флоте, перемещайте файлы по SFTP и управляйте хостами, сниппетами и учётными данными. Установите через `npm install -g @termix-ssh/cli` или возьмите отдельный исполняемый файл. Смотрите [документацию CLI](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -346,7 +346,7 @@ networks:
|
||||
У Termix есть и CLI, так что серверами можно управлять из терминала и использовать Termix в своих скриптах.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Bir sekme grubunu bölünmüş düzeniyle birlikte kaydedin ve hepsini tek tıkl
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Komut satırı arayüzü:**
|
||||
Kabuğunuz ve betikleriniz için bir `termix` CLI'ı. Terminal açın, tek bir sunucuda veya tüm filoda komut çalıştırın, SFTP ile dosya taşıyın ve sunucuları, parçacıkları ve kimlik bilgilerini yönetin. `npm install -g @termix-cli/cli` ile kurun ya da bağımsız bir çalıştırılabilir dosya edinin. [CLI belgelerine](https://docs.termix.site/cli) bakın.
|
||||
Kabuğunuz ve betikleriniz için bir `termix` CLI'ı. Terminal açın, tek bir sunucuda veya tüm filoda komut çalıştırın, SFTP ile dosya taşıyın ve sunucuları, parçacıkları ve kimlik bilgilerini yönetin. `npm install -g @termix-ssh/cli` ile kurun ya da bağımsız bir çalıştırılabilir dosya edinin. [CLI belgelerine](https://docs.termix.site/cli) bakın.
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -346,7 +346,7 @@ networks:
|
||||
Termix'in bir CLI'ı da var; sunucularınızı terminalden yönetebilir ve Termix'i kendi betiklerinizde kullanabilirsiniz.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
@@ -215,7 +215,7 @@ Lưu một bộ thẻ cùng cách chia màn hình rồi mở lại toàn bộ ch
|
||||
<td width="50%" valign="top">
|
||||
|
||||
**Dòng lệnh:**
|
||||
Công cụ `termix` cho shell và các script của bạn. Mở terminal, chạy một lệnh trên một máy chủ hoặc cả một nhóm, chuyển tệp qua SFTP, và quản lý máy chủ, đoạn lệnh và thông tin đăng nhập. Cài bằng `npm install -g @termix-cli/cli` hoặc tải bản chạy độc lập. Xem [tài liệu CLI](https://docs.termix.site/cli).
|
||||
Công cụ `termix` cho shell và các script của bạn. Mở terminal, chạy một lệnh trên một máy chủ hoặc cả một nhóm, chuyển tệp qua SFTP, và quản lý máy chủ, đoạn lệnh và thông tin đăng nhập. Cài bằng `npm install -g @termix-ssh/cli` hoặc tải bản chạy độc lập. Xem [tài liệu CLI](https://docs.termix.site/cli).
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -346,7 +346,7 @@ networks:
|
||||
Termix cũng có CLI, để bạn quản lý máy chủ từ terminal và dùng Termix trong script của mình.
|
||||
|
||||
```bash
|
||||
npm install -g @termix-cli/cli
|
||||
npm install -g @termix-ssh/cli
|
||||
termix login --url https://termix.example.com
|
||||
termix ssh 1
|
||||
```
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "termix",
|
||||
"version": "2.9.0",
|
||||
"version": "2.9.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "termix",
|
||||
"version": "2.9.0",
|
||||
"version": "2.9.2",
|
||||
"hasInstallScript": true,
|
||||
"workspaces": [
|
||||
"packages/*",
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
"packages/*",
|
||||
"plugins/*"
|
||||
],
|
||||
"version": "2.9.0",
|
||||
"version": "2.9.2",
|
||||
"description": "Self-hosted SSH and remote desktop management.",
|
||||
"author": "Karmaa",
|
||||
"main": "electron/main.cjs",
|
||||
@@ -33,7 +33,7 @@
|
||||
"dev:backend": "npm run build:sdk && tsc -p tsconfig.node.json && node -e \"require('fs').copyFileSync('src/backend/package.json','dist/backend/package.json')\" && npm run build:plugins && node ./dist/backend/backend/starter.js",
|
||||
"dev:docker": "docker stop termix-dev 2>nul & docker rm termix-dev 2>nul & docker build -f docker/Dockerfile -t termix:dev --no-cache . && docker run -d --name termix-dev -p 3000:3000 -p 8080:8080 -p 30001:30001 -v \"%cd%\\db\\data:/app/data\" termix:dev",
|
||||
"dev:docker:restart": "docker stop termix-dev 2>nul & docker rm termix-dev 2>nul & docker run -d --name termix-dev -p 8080:8080 -p 30001:30001 -v \"%cd%\\db\\data:/app/data\" termix:dev",
|
||||
"generate:openapi": "tsc -p tsconfig.node.json && node -e \"require('fs').copyFileSync('src/backend/package.json','dist/backend/package.json')\" && node ./dist/backend/backend/utils/swagger.js",
|
||||
"generate:openapi": "npm run build:sdk && tsc -p tsconfig.node.json && node -e \"require('fs').copyFileSync('src/backend/package.json','dist/backend/package.json')\" && node ./dist/backend/backend/utils/swagger.js",
|
||||
"preview": "vite preview",
|
||||
"electron:dev": "concurrently \"npm run dev\" \"powershell -c \\\"Start-Sleep -Seconds 5\\\" && electron .\"",
|
||||
"electron:patch-builder": "node scripts/patch-app-builder-lib.cjs",
|
||||
|
||||
@@ -840,19 +840,24 @@ export interface PluginHosts {
|
||||
status: PluginHostStatusApi;
|
||||
}
|
||||
|
||||
/** online: a login worked. reachable: the port answers. offline: it does not. */
|
||||
/**
|
||||
* online: the port answers, a session is open or a login worked. offline: the
|
||||
* port does not answer. "reachable" is no longer sent and stays only so older
|
||||
* plugins still type check.
|
||||
*/
|
||||
export type PluginHostStatus = "online" | "reachable" | "offline";
|
||||
|
||||
export interface PluginHostStatusEntry {
|
||||
status: PluginHostStatus;
|
||||
lastChecked: string;
|
||||
/** @deprecated No longer sent. */
|
||||
reason?: "host_key_changed";
|
||||
}
|
||||
|
||||
/**
|
||||
* Core checks every host with status checks on by opening a TCP connection to
|
||||
* it. A plugin that logs in to hosts tells core how that went, which is what
|
||||
* turns "reachable" into "online".
|
||||
* it. A plugin that logs in to hosts can report a working login, which marks
|
||||
* the host online right away.
|
||||
*/
|
||||
export interface PluginHostStatusApi {
|
||||
/**
|
||||
@@ -862,7 +867,10 @@ export interface PluginHostStatusApi {
|
||||
get: (hostId: number) => Promise<PluginHostStatusEntry | null>;
|
||||
/** Checks the host now unless core checked it recently. */
|
||||
check: (hostId: number) => Promise<PluginHostStatusEntry | null>;
|
||||
/** Reports a login attempt. Not audited: pollers call it every sample. */
|
||||
/**
|
||||
* Reports a login attempt. Only a working login changes the status; a
|
||||
* failed one is ignored. Not audited: pollers call it every sample.
|
||||
*/
|
||||
reportLogin: (
|
||||
hostId: number,
|
||||
outcome: { ok: boolean; hostKeyChanged?: boolean },
|
||||
|
||||
@@ -76,7 +76,7 @@ export interface PluginHostRecord {
|
||||
quickConnectSavable?: boolean;
|
||||
/** Assigned when a host is opened in a tab; tells duplicate tabs apart. */
|
||||
instanceId?: string;
|
||||
/** Core's status: "online" once a login worked. */
|
||||
/** Core's status: "online" when the host answers. */
|
||||
status?: "online" | "reachable" | "offline" | "unknown";
|
||||
online?: boolean;
|
||||
/** Someone else owns this host and shared it with the user. */
|
||||
@@ -1134,11 +1134,13 @@ export interface ActivityTargetInfo {
|
||||
}
|
||||
|
||||
/**
|
||||
* Core's status for a host, the one behind the host list's dot. online: a
|
||||
* login worked. reachable: the port answers. unknown: not checked yet.
|
||||
* Core's status for a host, the one behind the host list's dot. online: the
|
||||
* port answers. offline: it does not. unknown: not checked yet. "reachable"
|
||||
* is no longer sent and stays only so older plugins still type check.
|
||||
*/
|
||||
export interface HostStatusInfo {
|
||||
status: "online" | "reachable" | "offline" | "unknown";
|
||||
/** @deprecated No longer sent. */
|
||||
reason?: "host_key_changed";
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,20 @@ function copyPluginSdk(resourcesDir, sdkDir = path.join(repoRoot, "packages", "p
|
||||
|
||||
exports.copyPluginSdk = copyPluginSdk;
|
||||
|
||||
/** Mac App Store builds report "mas", not "darwin", but are still .app bundles. */
|
||||
function resourcesDirFor({ electronPlatformName, appOutDir, packager }) {
|
||||
return ["darwin", "mas"].includes(electronPlatformName)
|
||||
? path.join(
|
||||
appOutDir,
|
||||
`${packager.appInfo.productFilename}.app`,
|
||||
"Contents",
|
||||
"Resources",
|
||||
)
|
||||
: path.join(appOutDir, "resources");
|
||||
}
|
||||
|
||||
exports.resourcesDirFor = resourcesDirFor;
|
||||
|
||||
exports.default = async function afterPack(context) {
|
||||
const { targets, appOutDir } = context;
|
||||
|
||||
@@ -39,15 +53,7 @@ exports.default = async function afterPack(context) {
|
||||
fs.writeFileSync(markerPath, "");
|
||||
}
|
||||
|
||||
const resourcesDir =
|
||||
context.electronPlatformName === "darwin"
|
||||
? path.join(
|
||||
appOutDir,
|
||||
`${context.packager.appInfo.productFilename}.app`,
|
||||
"Contents",
|
||||
"Resources",
|
||||
)
|
||||
: path.join(appOutDir, "resources");
|
||||
const resourcesDir = resourcesDirFor(context);
|
||||
|
||||
copyPluginSdk(resourcesDir);
|
||||
|
||||
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME Certificates"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Versoek nou 'n sertifikaat",
|
||||
"requesting": "Versoek sertifikaat...",
|
||||
"issued": "Sertifikaat uitgereik en geïnstalleer"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME-sertifikate"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "اطلب الشهادة الآن",
|
||||
"requesting": "جارٍ طلب الشهادة...",
|
||||
"issued": "تم إصدار الشهادة وتركيبها"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "شهادات ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Заявете сертификат сега",
|
||||
"requesting": "Заявка за сертификат...",
|
||||
"issued": "Сертификат издаден и инсталиран"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Сертификати на ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "ACME সার্টিফিকেটগুলি পরিচালনা করুন",
|
||||
"description": "সার্টিফিকেটের অবস্থা দেখুন এবং এখনই একটি নতুন সার্টিফিকেটের জন্য অনুরোধ করুন।"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "স্বয়ংক্রিয়ভাবে নবায়ন করুন",
|
||||
"description": "দিনে দুইবার পরীক্ষা করুন এবং যখন কোনো সার্টিফিকেট থাকবে না, সেটি ডোমেইনকে কভার করবে না, অথবা ৩০ দিনের মধ্যে এর মেয়াদ শেষ হয়ে যাবে, তখন একটি নতুন সার্টিফিকেট সংগ্রহ করুন।"
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"label": "ডোমেইন",
|
||||
"description": "সার্টিফিকেটটির পাবলিক ডোমেইন নাম।",
|
||||
"placeholder": "termix.example.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"label": "ইমেল",
|
||||
"description": "ACME অ্যাকাউন্ট এবং মেয়াদ শেষ হওয়ার বিজ্ঞপ্তির জন্য যোগাযোগের ইমেল।",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "শংসাপত্র কর্তৃপক্ষ",
|
||||
"description": "সার্টিফিকেটটি কোথা থেকে পাবেন। Let's Encrypt-এর রেট লিমিট অতিক্রম না করে পরীক্ষা করার জন্য স্টেজিং ব্যবহার করুন।",
|
||||
"letsencrypt": "আসুন এনক্রিপ্ট করি",
|
||||
"letsencryptStaging": "লেটস এনক্রিপ্ট (স্টেজিং)",
|
||||
"custom": "কাস্টম ACME ডিরেক্টরি"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "ACME ডিরেক্টরি URL",
|
||||
"description": "শুধুমাত্র কাস্টম সার্টিফিকেট অথরিটির জন্য। অবশ্যই একটি https URL হতে হবে।"
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "চ্যালেঞ্জের ধরণ",
|
||||
"description": "ডোমেইনটির মালিকানা কীভাবে প্রমাণ করবেন।",
|
||||
"http": "HTTP - এর জন্য ইন্টারনেট থেকে পোর্ট ৮০ অ্যাক্সেসযোগ্য হতে হবে।",
|
||||
"cloudflare": "ডিএনএস (ক্লাউডফ্লেয়ার) - একটি ক্লাউডফ্লেয়ার এপিআই টোকেন প্রয়োজন"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "ক্লাউডফ্লেয়ার এপিআই টোকেন",
|
||||
"description": "আপনার ডোমেনের জন্য Zone:DNS:Edit অনুমতিসহ স্কোপড টোকেন।"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "সার্টিফিকেটের অবস্থা",
|
||||
"none": "কোন সার্টিফিকেট নেই",
|
||||
"names": "{{names}} কভার করে",
|
||||
"issuer": "{{issuer}} দ্বারা জারি করা হয়েছে",
|
||||
"expires": "মেয়াদ শেষ হবে {{date}}",
|
||||
"lastIssued": "সর্বশেষ প্রকাশিত {{date}}",
|
||||
"lastError": "শেষ চেষ্টা ব্যর্থ: {{error}}",
|
||||
"missing": "সার্টিফিকেটের জন্য অনুরোধ করার আগে, ডোমেইন, ইমেল এবং আপনার চ্যালেঞ্জ টাইপের জন্য প্রয়োজনীয় ফিল্ডগুলো সেট করুন, তারপর সেভ করুন।",
|
||||
"request": "এখনই সার্টিফিকেটের জন্য অনুরোধ করুন",
|
||||
"requesting": "সার্টিফিকেটের জন্য অনুরোধ...",
|
||||
"issued": "সার্টিফিকেট ইস্যু এবং ইনস্টল করা হয়েছে"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME সার্টিফিকেট"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Sol·licita el certificat ara",
|
||||
"requesting": "Sol·licitant certificat...",
|
||||
"issued": "Certificat emès i instal·lat"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certificats ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Vyžádejte si certifikát nyní",
|
||||
"requesting": "Žádost o certifikát...",
|
||||
"issued": "Certifikát vydán a nainstalován"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certifikáty ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Anmod om certifikat nu",
|
||||
"requesting": "Anmoder om certifikat...",
|
||||
"issued": "Certifikat udstedt og installeret"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME-certifikater"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Zertifikat jetzt anfordern",
|
||||
"requesting": "Zertifikat wird angefordert...",
|
||||
"issued": "Zertifikat ausgestellt und installiert"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME-Zertifikate"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Ζητήστε πιστοποιητικό τώρα",
|
||||
"requesting": "Αίτημα πιστοποιητικού...",
|
||||
"issued": "Έκδοση και εγκατάσταση πιστοποιητικού"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Πιστοποιητικά ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Solicita tu certificado ahora",
|
||||
"requesting": "Solicitando certificado...",
|
||||
"issued": "Certificado emitido e instalado"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certificados ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Pyydä todistus nyt",
|
||||
"requesting": "Pyydetään varmennetta...",
|
||||
"issued": "Sertifikaatti myönnetty ja asennettu"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME-sertifikaatit"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Demandez votre certificat dès maintenant",
|
||||
"requesting": "Demande de certificat en cours...",
|
||||
"issued": "Certificat délivré et installé"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certificats ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "בקשת תעודה עכשיו",
|
||||
"requesting": "מבקש תעודה...",
|
||||
"issued": "תעודה הונפקה והותקנה"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "תעודות ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "ACME प्रमाणपत्रों का प्रबंधन करें",
|
||||
"description": "प्रमाणपत्र की स्थिति देखें और अभी नए प्रमाणपत्र के लिए अनुरोध करें।"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "स्वचालित रूप से नवीनीकरण करें",
|
||||
"description": "दिन में दो बार जांच करें और यदि कोई प्रमाणपत्र मौजूद नहीं है, या वह डोमेन को कवर नहीं करता है, या 30 दिनों के भीतर समाप्त हो रहा है, तो नया प्रमाणपत्र प्राप्त करें।"
|
||||
},
|
||||
"domain": {
|
||||
"label": "डोमेन",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "ईमेल",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "ACME खाते और समाप्ति सूचनाओं के लिए संपर्क ईमेल पता।",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "प्रमाणपत्र प्राधिकरण",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"description": "सर्टिफिकेट कहां से प्राप्त करें। Let's Encrypt की दर सीमा का उल्लंघन किए बिना परीक्षण के लिए स्टेजिंग का उपयोग करें।",
|
||||
"letsencrypt": "आइए एन्क्रिप्ट करें",
|
||||
"letsencryptStaging": "लेट्स एनक्रिप्ट (चरणबद्ध)",
|
||||
"custom": "कस्टम एसीएमई निर्देशिका"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "ACME निर्देशिका URL",
|
||||
"description": "केवल कस्टम सर्टिफिकेट अथॉरिटी के लिए। यूआरएल HTTPS होना चाहिए।"
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "चुनौती का प्रकार",
|
||||
"description": "आप डोमेन के मालिक होने का प्रमाण कैसे दे सकते हैं?",
|
||||
"http": "HTTP - इसके लिए इंटरनेट से पोर्ट 80 तक पहुंच आवश्यक है।",
|
||||
"cloudflare": "DNS (Cloudflare) - इसके लिए Cloudflare API टोकन की आवश्यकता होती है।"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "क्लाउडफ्लेयर एपीआई टोकन",
|
||||
"description": "आपके डोमेन के लिए Zone:DNS:Edit अनुमति वाला स्कोप्ड टोकन।"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "प्रमाणपत्र की स्थिति",
|
||||
"none": "कोई प्रमाणपत्र नहीं",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "कवर {{names}}",
|
||||
"issuer": "{{issuer}} द्वारा जारी किया गया",
|
||||
"expires": "{{date}} को समाप्त होगा",
|
||||
"lastIssued": "अंतिम जारी: {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "अंतिम प्रयास विफल रहा: {{error}}",
|
||||
"missing": "डोमेन, ईमेल और आपके चैलेंज टाइप के लिए आवश्यक फ़ील्ड सेट करें, फिर प्रमाणपत्र का अनुरोध करने से पहले सेव करें।",
|
||||
"request": "अभी प्रमाणपत्र का अनुरोध करें",
|
||||
"requesting": "प्रमाणपत्र अनुरोध किया जा रहा है...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "प्रमाणपत्र जारी और स्थापित किया गया"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "एसीएमई प्रमाणपत्र"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Igényeljen tanúsítványt most",
|
||||
"requesting": "Tanúsítvány kérése...",
|
||||
"issued": "Tanúsítvány kiállítva és telepítve"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME tanúsítványok"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Kelola sertifikat ACME",
|
||||
"description": "Lihat status sertifikat dan ajukan permohonan sertifikat baru sekarang."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Perpanjang secara otomatis",
|
||||
"description": "Periksa dua kali sehari dan dapatkan sertifikat baru jika tidak ada, tidak mencakup domain, atau akan kedaluwarsa dalam 30 hari."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"description": "Nama domain publik untuk sertifikat tersebut.",
|
||||
"placeholder": "termix.example.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"label": "E-mail",
|
||||
"description": "Alamat email kontak untuk akun ACME dan pemberitahuan masa berlaku.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "Lembaga sertifikasi",
|
||||
"description": "Di mana mendapatkan sertifikat? Gunakan staging untuk pengujian tanpa melampaui batas kuota Let's Encrypt.",
|
||||
"letsencrypt": "Mari Enkripsi",
|
||||
"letsencryptStaging": "Let's Encrypt (pementasan)",
|
||||
"custom": "Direktori ACME khusus"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL direktori ACME",
|
||||
"description": "Hanya untuk otoritas sertifikat khusus. Harus berupa URL https."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Jenis tantangan",
|
||||
"description": "Bagaimana cara membuktikan bahwa Anda pemilik domain tersebut.",
|
||||
"http": "HTTP - memerlukan port 80 yang dapat diakses dari internet.",
|
||||
"cloudflare": "DNS (Cloudflare) - memerlukan token API Cloudflare"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "Token API Cloudflare",
|
||||
"description": "Token terlingkup dengan izin Zone:DNS:Edit untuk domain Anda."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "Status sertifikat",
|
||||
"none": "Tidak ada sertifikat",
|
||||
"names": "Sampul {{names}}",
|
||||
"issuer": "Dikeluarkan oleh {{issuer}}",
|
||||
"expires": "Berakhir {{date}}",
|
||||
"lastIssued": "Terakhir diterbitkan {{date}}",
|
||||
"lastError": "Upaya terakhir gagal: {{error}}",
|
||||
"missing": "Atur domain, email, dan kolom yang dibutuhkan oleh tipe tantangan Anda, lalu simpan, sebelum meminta sertifikat.",
|
||||
"request": "Ajukan sertifikat sekarang",
|
||||
"requesting": "Meminta sertifikat...",
|
||||
"issued": "Sertifikat telah diterbitkan dan dipasang."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Sertifikat ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Richiedi subito il certificato",
|
||||
"requesting": "Richiesta certificato in corso...",
|
||||
"issued": "Certificato rilasciato e installato"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certificati ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "今すぐ証明書を申請する",
|
||||
"requesting": "証明書をリクエスト中...",
|
||||
"issued": "証明書が発行され、インストールされました。"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME認定証"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "지금 인증서를 요청하세요",
|
||||
"requesting": "인증서 요청 중...",
|
||||
"issued": "인증서가 발급 및 설치되었습니다."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME 인증서"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Vraag nu uw certificaat aan",
|
||||
"requesting": "Certificaat aanvragen...",
|
||||
"issued": "Certificaat afgegeven en geïnstalleerd"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME-certificaten"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Administrer ACME-sertifikater",
|
||||
"description": "Se sertifikatstatusen og be om et nytt sertifikat nå."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Forny automatisk",
|
||||
"description": "Sjekk to ganger om dagen og få et nytt sertifikat når det ikke finnes noe, det ikke dekker domenet, eller det utløper innen 30 dager."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"label": "Domene",
|
||||
"description": "Det offentlige domenenavnet for sertifikatet.",
|
||||
"placeholder": "termix.example.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "E-post",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "Kontakt-e-postadresse for ACME-kontoen og utløpsvarsler.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "Sertifikatmyndighet",
|
||||
"description": "Hvor får man tak i sertifikatet? Bruk staging for å teste uten å nå hastighetsgrensene til Let's Encrypt.",
|
||||
"letsencrypt": "La oss kryptere",
|
||||
"letsencryptStaging": "La oss kryptere (staging)",
|
||||
"custom": "Tilpasset ACME-katalog"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL-adressen til ACME-katalogen",
|
||||
"description": "Kun for en tilpasset sertifiseringsinstans. Må være en https-URL."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Utfordringstype",
|
||||
"description": "Hvordan bevise at du eier domenet.",
|
||||
"http": "HTTP - trenger port 80 som kan nås fra internett",
|
||||
"cloudflare": "DNS (Cloudflare) – trenger et Cloudflare API-token"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "Cloudflare API-token",
|
||||
"description": "Scope-token med Zone:DNS:Rediger-tillatelse for domenet ditt."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "Sertifikatstatus",
|
||||
"none": "Ingen sertifikat",
|
||||
"names": "Omslag {{names}}",
|
||||
"issuer": "Utstedt av {{issuer}}",
|
||||
"expires": "Utløper {{date}}",
|
||||
"lastIssued": "Sist utstedt {{date}}",
|
||||
"lastError": "Siste forsøk mislyktes: {{error}}",
|
||||
"missing": "Angi domenet, e-postadressen og feltene utfordringstypen din trenger, og lagre deretter før du ber om et sertifikat.",
|
||||
"request": "Be om sertifikat nå",
|
||||
"requesting": "Ber om sertifikat...",
|
||||
"issued": "Sertifikat utstedt og installert"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME-sertifikater"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Zarządzaj certyfikatami ACME",
|
||||
"description": "Sprawdź status certyfikatu i poproś o nowy certyfikat już teraz."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Odnów automatycznie",
|
||||
"description": "Sprawdzaj dwa razy dziennie i wykup nowy certyfikat, jeśli go nie masz, nie obejmuje on tej domeny lub wygasa w ciągu 30 dni."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domena",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "E-mail",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "Adres e-mail kontaktowy do konta ACME i powiadomień o wygaśnięciu.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Urząd certyfikacji (CA)",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"description": "Gdzie uzyskać certyfikat? Użyj środowiska testowego do testowania bez przekraczania limitów przepustowości Let's Encrypt.",
|
||||
"letsencrypt": "Szyfrujmy",
|
||||
"letsencryptStaging": "Let's Encrypt (etap przygotowawczy)",
|
||||
"custom": "Niestandardowy katalog ACME"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "Adres URL katalogu ACME",
|
||||
"description": "Tylko dla niestandardowego urzędu certyfikacji. Adres URL musi być w formacie https."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Typ wyzwania",
|
||||
"description": "Jak udowodnić, że jesteś właścicielem domeny.",
|
||||
"http": "HTTP - wymaga dostępu do portu 80 z Internetu",
|
||||
"cloudflare": "DNS (Cloudflare) – wymaga tokenu API Cloudflare"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "Token API Cloudflare",
|
||||
"description": "Token zakresowy z uprawnieniem Zone:DNS:Edit dla Twojej domeny."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "Status certyfikatu",
|
||||
"none": "Brak certyfikatu",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "Obejmuje {{names}}",
|
||||
"issuer": "Wydane przez {{issuer}}",
|
||||
"expires": "Wygasa {{date}}",
|
||||
"lastIssued": "Ostatnio wystawiono {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "Ostatnia próba nieudana: {{error}}",
|
||||
"missing": "Ustaw domenę, adres e-mail i pola, których wymaga Twój typ wyzwania, a następnie zapisz, zanim poprosisz o certyfikat.",
|
||||
"request": "Złóż wniosek o certyfikat już teraz",
|
||||
"requesting": "Żądanie certyfikatu...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "Certyfikat wydany i zainstalowany"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certyfikaty ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Gerenciar certificados ACME",
|
||||
"description": "Veja o status do certificado e solicite um novo agora mesmo."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Renovar automaticamente",
|
||||
"description": "Verifique duas vezes ao dia e obtenha um novo certificado quando não houver nenhum, se ele não cobrir o domínio ou se expirar em 30 dias."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"label": "Domínio",
|
||||
"description": "O nome de domínio público do certificado.",
|
||||
"placeholder": "termix.example.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"label": "E-mail",
|
||||
"description": "E-mail de contato para a conta ACME e avisos de vencimento.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "Autoridade certificadora",
|
||||
"description": "Onde obter o certificado. Use o ambiente de teste para realizar os testes sem atingir os limites de requisição do Let's Encrypt.",
|
||||
"letsencrypt": "Vamos criptografar",
|
||||
"letsencryptStaging": "Let's Encrypt (em fase de testes)",
|
||||
"custom": "Diretório ACME personalizado"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL do diretório ACME",
|
||||
"description": "Somente para uma autoridade de certificação personalizada. Deve ser um URL https."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Tipo de desafio",
|
||||
"description": "Como comprovar que você é o proprietário do domínio.",
|
||||
"http": "HTTP - requer que a porta 80 esteja acessível pela internet.",
|
||||
"cloudflare": "DNS (Cloudflare) - requer um token de API do Cloudflare"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "Token da API Cloudflare",
|
||||
"description": "Token com escopo definido e permissão Zone:DNS:Edit para o seu domínio."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "Status do certificado",
|
||||
"none": "Sem certificado",
|
||||
"names": "Capas {{names}}",
|
||||
"issuer": "Emitido por {{issuer}}",
|
||||
"expires": "Expira em {{date}}",
|
||||
"lastIssued": "Última edição {{date}}",
|
||||
"lastError": "Última tentativa falhou: {{error}}",
|
||||
"missing": "Defina o domínio, o e-mail e os campos necessários para o seu tipo de desafio e salve as alterações antes de solicitar um certificado.",
|
||||
"request": "Solicite o certificado agora",
|
||||
"requesting": "Solicitar certificado...",
|
||||
"issued": "Certificado emitido e instalado."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certificados ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Gerir certificados ACME",
|
||||
"description": "Veja o estado do certificado e solicite um novo agora mesmo."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Renovar automaticamente",
|
||||
"description": "Verifique duas vezes por dia e obtenha um novo certificado quando não houver nenhum, se não cobrir o domínio ou se expirar dentro de 30 dias."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domínio",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "E-mail",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "E-mail de contacto para a conta ACME e avisos de vencimento.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Autoridade de certificação",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"description": "Onde obter o certificado. Utilize o ambiente de teste para realizar os testes sem atingir os limites de requisição do Let's Encrypt.",
|
||||
"letsencrypt": "Vamos encriptar",
|
||||
"letsencryptStaging": "Let's Encrypt (em fase de testes)",
|
||||
"custom": "Diretório ACME personalizado"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL do diretório ACME",
|
||||
"description": "Apenas para uma autoridade de certificação personalizada. Deve ser um URL https."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Tipo de desafio",
|
||||
"description": "Como comprovar que é o proprietário do domínio.",
|
||||
"http": "HTTP - requer que a porta 80 esteja acessível através da internet.",
|
||||
"cloudflare": "DNS (Cloudflare) - requer um token API do Cloudflare"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "Token da API Cloudflare",
|
||||
"description": "Token com âmbito e permissão Zone:DNS:Edit para o seu domínio."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "Estado do certificado",
|
||||
"none": "Sem certificado",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "Capas {{names}}",
|
||||
"issuer": "Emitido por {{issuer}}",
|
||||
"expires": "Expira a {{date}}",
|
||||
"lastIssued": "Última emissão a {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "Última tentativa falhada: {{error}}",
|
||||
"missing": "Defina o domínio, o e-mail e os campos necessários para o seu tipo de desafio e guarde as alterações antes de solicitar um certificado.",
|
||||
"request": "Solicite já o certificado",
|
||||
"requesting": "A solicitar certificado...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "Certificado emitido e instalado."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certificados ACME"
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,8 @@
|
||||
"request": "Solicitați certificatul acum",
|
||||
"requesting": "Se solicită certificatul...",
|
||||
"issued": "Certificat emis și instalat"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Certificate ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Управление сертификатами ACME",
|
||||
"description": "Проверьте статус сертификата и запросите новый сертификат прямо сейчас."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Автоматическое продление",
|
||||
"description": "Проверяйте дважды в день и получайте новый сертификат, если его нет, если он не покрывает домен или если срок действия старого истекает в течение 30 дней."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Домен",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "Адрес электронной почты, указанный в учетной записи ACME, для получения уведомлений об истечении срока действия.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Центр сертификации",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"description": "Где получить сертификат. Используйте тестовую среду (staging) для проверки без превышения лимитов запросов Let's Encrypt.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"letsencryptStaging": "Let's Encrypt (тестовая версия)",
|
||||
"custom": "Пользовательский каталог ACME"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL-адрес каталога ACME",
|
||||
"description": "Только для пользовательского центра сертификации. URL-адрес должен быть HTTPS."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Тип задачи",
|
||||
"description": "Как доказать, что вы являетесь владельцем домена.",
|
||||
"http": "HTTP — требуется доступ к порту 80 из интернета.",
|
||||
"cloudflare": "DNS (Cloudflare) — требуется токен API Cloudflare."
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "API-токен Cloudflare",
|
||||
"description": "Токен с ограниченной областью действия и разрешением Zone:DNS:Edit для вашего домена."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "Статус сертификата",
|
||||
"none": "Сертификат отсутствует",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "Обложки {{names}}",
|
||||
"issuer": "Выпущено {{issuer}}",
|
||||
"expires": "Истекает {{date}}",
|
||||
"lastIssued": "Последний выпуск {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "Последняя попытка не удалась: {{error}}",
|
||||
"missing": "Укажите домен, адрес электронной почты и поля, необходимые для типа проверки подлинности, затем сохраните изменения, прежде чем запрашивать сертификат.",
|
||||
"request": "Запросить сертификат сейчас",
|
||||
"requesting": "Запрос сертификата...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "Сертификат выдан и установлен."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Сертификаты ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Управљање ACME сертификатима",
|
||||
"description": "Погледајте статус сертификата и одмах затражите нови сертификат."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Аутоматски обнови",
|
||||
"description": "Проверавајте два пута дневно и набавите нови сертификат када га нема, када не покрива домен или када истиче у року од 30 дана."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"label": "Домен",
|
||||
"description": "Јавно име домена за сертификат.",
|
||||
"placeholder": "termix.example.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"label": "Е-пошта",
|
||||
"description": "Контакт имејл за ACME налог и обавештења о истеку.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "Сертификатски ауторитет",
|
||||
"description": "Где добити сертификат. Користите припрему за тестирање без достизања ограничења брзине Let's Encrypt-а.",
|
||||
"letsencrypt": "Хајде да шифрујемо",
|
||||
"letsencryptStaging": "Хајде да шифрујемо (припрема)",
|
||||
"custom": "Прилагођени ACME директоријум"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL ACME директоријума",
|
||||
"description": "Само за прилагођени ауторитет за сертификате. Мора бити https URL."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Тип изазова",
|
||||
"description": "Како доказати да сте власник домена.",
|
||||
"http": "HTTP - потребан је порт 80 доступан са интернета",
|
||||
"cloudflare": "DNS (Cloudflare) - потребан је Cloudflare API токен"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "Клаудфлејр АПИ токен",
|
||||
"description": "Ограничени токен са дозволом Zone:DNS:Edit за ваш домен."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "Статус сертификата",
|
||||
"none": "Без сертификата",
|
||||
"names": "Навлаке {{names}}",
|
||||
"issuer": "Издао/ла {{issuer}}",
|
||||
"expires": "Истиче {{date}}",
|
||||
"lastIssued": "Последње издање {{date}}",
|
||||
"lastError": "Последњи покушај није успео: {{error}}",
|
||||
"missing": "Подесите домен, имејл адресу и поља која су потребна вашем типу изазова, а затим сачувајте подешавања пре него што затражите сертификат.",
|
||||
"request": "Затражите сертификат сада",
|
||||
"requesting": "Захтева се сертификат...",
|
||||
"issued": "Сертификат издат и инсталиран"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME сертификати"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Hantera ACME-certifikat",
|
||||
"description": "Se certifikatets status och begär ett nytt certifikat nu."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Förnya automatiskt",
|
||||
"description": "Kontrollera två gånger om dagen och skaffa ett nytt certifikat om det inte finns något, om det inte täcker domänen eller om det löper ut inom 30 dagar."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"label": "Domän",
|
||||
"description": "Det offentliga domännamnet för certifikatet.",
|
||||
"placeholder": "termix.example.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"label": "E-post",
|
||||
"description": "Kontakta e-postadressen för ACME-kontot och meddelanden om utgångsdatum.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "Certifikatutfärdare",
|
||||
"description": "Var man kan hämta certifikatet. Använd staging för att testa utan att nå hastighetsgränserna för Let's Encrypt.",
|
||||
"letsencrypt": "Låt oss kryptera",
|
||||
"letsencryptStaging": "Låt oss kryptera (staging)",
|
||||
"custom": "Anpassad ACME-katalog"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "ACME-katalogens URL",
|
||||
"description": "Endast för en anpassad certifikatutfärdare. Måste vara en https-URL."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Utmaningstyp",
|
||||
"description": "Hur man bevisar att man äger domänen.",
|
||||
"http": "HTTP - behöver port 80 som kan nås från internet",
|
||||
"cloudflare": "DNS (Cloudflare) - behöver en Cloudflare API-token"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "Cloudflare API-token",
|
||||
"description": "Scoped-token med Zone:DNS:Edit-behörighet för din domän."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "Certifikatstatus",
|
||||
"none": "Inget certifikat",
|
||||
"names": "Omslag {{names}}",
|
||||
"issuer": "Utfärdad av {{issuer}}",
|
||||
"expires": "Utgångsdatum {{date}}",
|
||||
"lastIssued": "Senast utfärdad {{date}}",
|
||||
"lastError": "Senaste försöket misslyckades: {{error}}",
|
||||
"missing": "Ange domän, e-postadress och de fält som din utmaningstyp behöver, spara sedan innan du begär ett certifikat.",
|
||||
"request": "Begär certifikat nu",
|
||||
"requesting": "Begär certifikat...",
|
||||
"issued": "Certifikat utfärdat och installerat"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME-certifikat"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "จัดการใบรับรอง ACME",
|
||||
"description": "ตรวจสอบสถานะใบรับรองและขอใบรับรองใหม่ได้เลยตอนนี้"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "ต่ออายุอัตโนมัติ",
|
||||
"description": "ตรวจสอบวันละสองครั้ง และขอใบรับรองใหม่เมื่อไม่มีใบรับรอง หากใบรับรองไม่ครอบคลุมโดเมน หรือหากใบรับรองหมดอายุภายใน 30 วัน"
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"placeholder": "termix.example.com"
|
||||
"label": "โดเมน",
|
||||
"description": "ชื่อโดเมนสาธารณะสำหรับใบรับรอง",
|
||||
"placeholder": "เทอร์มิกซ์.ตัวอย่าง.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"label": "อีเมล",
|
||||
"description": "อีเมลสำหรับติดต่อเพื่อรับข้อมูลเกี่ยวกับบัญชี ACME และประกาศแจ้งเตือนวันหมดอายุ",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "หน่วยงานออกใบรับรอง",
|
||||
"description": "จะขอรับใบรับรองได้จากที่ไหน ใช้ระบบทดสอบ (staging) เพื่อทดสอบโดยไม่ให้เกินขีดจำกัดการใช้งานของ Let's Encrypt",
|
||||
"letsencrypt": "เลทส์ เอนคริปท์",
|
||||
"letsencryptStaging": "Let's Encrypt (รุ่นทดสอบ)",
|
||||
"custom": "ไดเร็กทอรี ACME แบบกำหนดเอง"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL ของไดเร็กทอรี ACME",
|
||||
"description": "ใช้ได้เฉพาะกับหน่วยงานออกใบรับรองที่กำหนดเองเท่านั้น ต้องเป็น URL ที่ใช้ HTTPS"
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "ประเภทความท้าทาย",
|
||||
"description": "วิธีพิสูจน์ว่าคุณเป็นเจ้าของโดเมน",
|
||||
"http": "HTTP - ต้องมีพอร์ต 80 ที่สามารถเข้าถึงได้จากอินเทอร์เน็ต",
|
||||
"cloudflare": "DNS (Cloudflare) - ต้องใช้โทเค็น API ของ Cloudflare"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "โทเค็น API ของ Cloudflare",
|
||||
"description": "โทเค็นแบบจำกัดขอบเขตพร้อมสิทธิ์ Zone:DNS:Edit สำหรับโดเมนของคุณ"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "สถานะใบรับรอง",
|
||||
"none": "ไม่มีใบรับรอง",
|
||||
"names": "ปก {{names}}",
|
||||
"issuer": "ออกโดย {{issuer}}",
|
||||
"expires": "หมดอายุ {{date}}",
|
||||
"lastIssued": "ออกครั้งล่าสุด {{date}}",
|
||||
"lastError": "ความพยายามครั้งล่าสุดล้มเหลว: {{error}}",
|
||||
"missing": "ตั้งค่าโดเมน อีเมล และข้อมูลที่จำเป็นสำหรับประเภทการตรวจสอบสิทธิ์ของคุณ จากนั้นบันทึกก่อนที่จะขอใบรับรอง",
|
||||
"request": "ขอใบรับรองตอนนี้",
|
||||
"requesting": "ขอใบรับรอง...",
|
||||
"issued": "ออกและติดตั้งใบรับรองแล้ว"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ใบรับรอง ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "ACME sertifikalarını yönetin",
|
||||
"description": "Sertifika durumunu kontrol edin ve şimdi yeni bir sertifika talep edin."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Otomatik olarak yenile",
|
||||
"description": "Sertifikayı günde iki kez kontrol edin ve yoksa, alan adını kapsamıyorsa veya 30 gün içinde süresi dolacaksa yenisini alın."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Alan Adı",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "E-posta",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "ACME hesabı ve sona erme bildirimleri için iletişim e-posta adresi.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Sertifika yetkilisi",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"description": "Sertifikayı nereden alabilirsiniz? Let's Encrypt'in hız sınırlamalarına takılmadan test etmek için hazırlık ortamını kullanın.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"letsencryptStaging": "Let's Encrypt (test aşaması)",
|
||||
"custom": "Özel ACME dizini"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "ACME dizin URL'si",
|
||||
"description": "Yalnızca özel sertifika yetkilisi için geçerlidir. HTTPS URL'si olmalıdır."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Meydan okuma türü",
|
||||
"description": "Alan adının size ait olduğunu nasıl kanıtlayabilirsiniz?",
|
||||
"http": "HTTP - internetten erişilebilir 80 numaralı porta ihtiyaç duyar.",
|
||||
"cloudflare": "DNS (Cloudflare) - Cloudflare API belirteci gerektirir."
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "Cloudflare API belirteci",
|
||||
"description": "Alan adınız için Zone:DNS:Edit iznine sahip kapsamlı belirteç."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "Sertifika durumu",
|
||||
"none": "Sertifika yok",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "Kapaklar {{names}}",
|
||||
"issuer": "{{issuer}} tarafından yayınlandı",
|
||||
"expires": "Son kullanma: {{date}}",
|
||||
"lastIssued": "Son veriliş: {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "Son deneme başarısız oldu: {{error}}",
|
||||
"missing": "Sertifika talebinde bulunmadan önce etki alanını, e-postayı ve doğrulama türünüzün gerektirdiği alanları ayarlayın, ardından kaydedin.",
|
||||
"request": "Şimdi sertifika talep edin",
|
||||
"requesting": "Sertifika isteniyor...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "Sertifika düzenlendi ve kuruldu."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME Sertifikaları"
|
||||
}
|
||||
}
|
||||
@@ -1,58 +1,61 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Керування сертифікатами ACME",
|
||||
"description": "Перегляньте статус сертифіката та запросіть новий сертифікат зараз."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Автоматичне поновлення",
|
||||
"description": "Перевіряйте двічі на день та отримуйте новий сертифікат, коли його немає, він не поширюється на домен або термін його дії закінчується протягом 30 днів."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Domain",
|
||||
"description": "The public domain name for the certificate.",
|
||||
"label": "Домен",
|
||||
"description": "Ім'я публічного домену для сертифіката.",
|
||||
"placeholder": "termix.example.com"
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"label": "Електронна пошта",
|
||||
"description": "Контактна електронна адреса для облікового запису ACME та повідомлень про закінчення терміну дії.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Certificate authority",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"label": "Центр сертифікації",
|
||||
"description": "Де отримати сертифікат. Використовуйте проміжну версію для тестування без перевищення обмежень швидкості Let's Encrypt.",
|
||||
"letsencrypt": "Давайте зашифруємо",
|
||||
"letsencryptStaging": "Давайте зашифруємо (підготовка)",
|
||||
"custom": "Користувацький каталог ACME"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL-адреса каталогу ACME",
|
||||
"description": "Тільки для власного центру сертифікації. Має бути URL-адреса https."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Тип виклику",
|
||||
"description": "Як довести, що ви є власником домену.",
|
||||
"http": "HTTP – потрібен порт 80, доступний з Інтернету",
|
||||
"cloudflare": "DNS (Cloudflare) – потрібен токен API Cloudflare"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"description": "Scoped token with Zone:DNS:Edit permission for your domain."
|
||||
"label": "Токен API Cloudflare",
|
||||
"description": "Токен з обмеженою областю дії та дозволом Zone:DNS:Edit для вашого домену."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"none": "No certificate",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"expires": "Expires {{date}}",
|
||||
"lastIssued": "Last issued {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"requesting": "Requesting certificate...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"title": "Статус сертифіката",
|
||||
"none": "Без сертифіката",
|
||||
"names": "Обкладинки {{names}}",
|
||||
"issuer": "Видано {{issuer}}",
|
||||
"expires": "Термін дії закінчується {{date}}",
|
||||
"lastIssued": "Останній виданий {{date}}",
|
||||
"lastError": "Остання спроба не вдалася: {{error}}",
|
||||
"missing": "Вкажіть домен, електронну пошту та поля, необхідні для вашого типу завдання, а потім збережіть зміни, перш ніж запитувати сертифікат.",
|
||||
"request": "Замовити сертифікат зараз",
|
||||
"requesting": "Запит сертифіката...",
|
||||
"issued": "Сертифікат видано та встановлено"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Сертифікати ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "Quản lý chứng chỉ ACME",
|
||||
"description": "Xem trạng thái chứng chỉ và yêu cầu chứng chỉ mới ngay bây giờ."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "Tự động gia hạn",
|
||||
"description": "Hãy kiểm tra hai lần một ngày và lấy chứng chỉ mới nếu chứng chỉ hiện không có, không bao phủ tên miền hoặc hết hạn trong vòng 30 ngày."
|
||||
},
|
||||
"domain": {
|
||||
"label": "Tên miền",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "Địa chỉ email liên hệ cho tài khoản ACME và thông báo hết hạn.",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "Cơ quan chứng thực",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"description": "Lấy chứng chỉ ở đâu? Sử dụng môi trường thử nghiệm để kiểm tra mà không vượt quá giới hạn số lượng yêu cầu của Let's Encrypt.",
|
||||
"letsencrypt": "Hãy mã hóa",
|
||||
"letsencryptStaging": "Let's Encrypt (phiên bản thử nghiệm)",
|
||||
"custom": "Danh mục ACME tùy chỉnh"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "URL thư mục ACME",
|
||||
"description": "Chỉ dành cho cơ quan cấp chứng chỉ tùy chỉnh. Phải là URL HTTPS."
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "Loại thử thách",
|
||||
"description": "Cách chứng minh bạn sở hữu tên miền.",
|
||||
"http": "HTTP - cần cổng 80 có thể truy cập được từ internet",
|
||||
"cloudflare": "DNS (Cloudflare) - cần mã thông báo API của Cloudflare."
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "Mã thông báo API Cloudflare",
|
||||
"description": "Token có phạm vi với quyền Zone:DNS:Edit cho tên miền của bạn."
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "Trạng thái chứng chỉ",
|
||||
"none": "Không có chứng chỉ",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "Ảnh bìa {{names}}",
|
||||
"issuer": "Được phát hành bởi {{issuer}}",
|
||||
"expires": "Hết hạn {{date}}",
|
||||
"lastIssued": "Cấp lần cuối {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "Lần thử cuối cùng thất bại: {{error}}",
|
||||
"missing": "Hãy thiết lập tên miền, email và các trường thông tin mà loại thử thách của bạn yêu cầu, sau đó lưu lại trước khi yêu cầu chứng chỉ.",
|
||||
"request": "Yêu cầu chứng chỉ ngay bây giờ",
|
||||
"requesting": "Đang yêu cầu chứng chỉ...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "Giấy chứng nhận đã được cấp và cài đặt"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Chứng chỉ ACME"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "管理 ACME 证书",
|
||||
"description": "查看证书状态并立即申请新证书。"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "自动续订",
|
||||
"description": "每天检查两次,如果没有证书、证书不涵盖该域名或证书将在 30 天内过期,则获取新证书。"
|
||||
},
|
||||
"domain": {
|
||||
"label": "域名",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "邮箱",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "ACME账户及到期通知的联系邮箱。",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "证书颁发机构",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"description": "证书获取途径。使用测试环境进行测试,避免超出 Let's Encrypt 的速率限制。",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"letsencryptStaging": "Let's Encrypt(测试版)",
|
||||
"custom": "自定义 ACME 目录"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "ACME目录URL",
|
||||
"description": "仅适用于自定义证书颁发机构。必须是 https URL。"
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "挑战类型",
|
||||
"description": "如何证明您拥有该域名。",
|
||||
"http": "HTTP协议需要可通过互联网访问的80端口。",
|
||||
"cloudflare": "DNS(Cloudflare)——需要 Cloudflare API 令牌"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "Cloudflare API 令牌",
|
||||
"description": "具有您域名的 Zone:DNS:Edit 权限的限定作用域令牌。"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "证书状态",
|
||||
"none": "无证书",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "封面 {{names}}",
|
||||
"issuer": "由 {{issuer}} 发行",
|
||||
"expires": "过期于 {{date}}",
|
||||
"lastIssued": "上次签发于 {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "最后一次尝试失败: {{error}}",
|
||||
"missing": "设置域名、电子邮件和您的质询类型所需的字段,然后保存,再申请证书。",
|
||||
"request": "立即申请证书",
|
||||
"requesting": "正在请求证书...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "证书已颁发并安装"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME证书"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"manage": {
|
||||
"title": "Manage ACME certificates",
|
||||
"description": "See the certificate status and request a new certificate now."
|
||||
"title": "管理 ACME 證書",
|
||||
"description": "查看證書狀態並立即申請新證書。"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"autoRenew": {
|
||||
"label": "Renew automatically",
|
||||
"description": "Check twice a day and get a new certificate when there is none, it does not cover the domain, or it expires within 30 days."
|
||||
"label": "自動續訂",
|
||||
"description": "每天檢查兩次,如果沒有證書、證書不涵蓋該網域或證書將在 30 天內過期,則取得新證書。"
|
||||
},
|
||||
"domain": {
|
||||
"label": "網域",
|
||||
@@ -17,42 +17,45 @@
|
||||
},
|
||||
"email": {
|
||||
"label": "電子郵件",
|
||||
"description": "Contact email for the ACME account and expiry notices.",
|
||||
"description": "ACME帳戶及到期通知的聯絡信箱。",
|
||||
"placeholder": "admin@example.com"
|
||||
},
|
||||
"provider": {
|
||||
"label": "憑證授權中心",
|
||||
"description": "Where to get the certificate. Use staging to test without hitting Let's Encrypt rate limits.",
|
||||
"description": "證書取得途徑。使用測試環境進行測試,避免超出 Let's Encrypt 的速率限制。",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"letsencryptStaging": "Let's Encrypt (staging)",
|
||||
"custom": "Custom ACME directory"
|
||||
"letsencryptStaging": "Let's Encrypt(測試版)",
|
||||
"custom": "自訂 ACME 目錄"
|
||||
},
|
||||
"directoryUrl": {
|
||||
"label": "ACME directory URL",
|
||||
"description": "Only for a custom certificate authority. Must be an https URL."
|
||||
"label": "ACME目錄URL",
|
||||
"description": "僅適用於自訂憑證授權單位。必須是 https URL。"
|
||||
},
|
||||
"challengeType": {
|
||||
"label": "Challenge type",
|
||||
"description": "How to prove you own the domain.",
|
||||
"http": "HTTP - needs port 80 reachable from the internet",
|
||||
"cloudflare": "DNS (Cloudflare) - needs a Cloudflare API token"
|
||||
"label": "挑戰類型",
|
||||
"description": "如何證明您擁有該網域。",
|
||||
"http": "HTTP協定需要80個可透過網際網路存取的連接埠。",
|
||||
"cloudflare": "DNS(Cloudflare)-需要 Cloudflare API 令牌"
|
||||
},
|
||||
"cloudflareToken": {
|
||||
"label": "Cloudflare API token",
|
||||
"label": "Cloudflare API 令牌",
|
||||
"description": "具有您網域 Zone:DNS:Edit 權限的限定範圍權杖。"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"title": "Certificate status",
|
||||
"title": "證書狀態",
|
||||
"none": "無憑證",
|
||||
"names": "Covers {{names}}",
|
||||
"issuer": "Issued by {{issuer}}",
|
||||
"names": "封面 {{names}}",
|
||||
"issuer": "由 {{issuer}} 發行",
|
||||
"expires": "到期日 {{date}}",
|
||||
"lastIssued": "上次簽發日期 {{date}}",
|
||||
"lastError": "Last attempt failed: {{error}}",
|
||||
"missing": "Set the domain, email and the fields your challenge type needs, then save, before requesting a certificate.",
|
||||
"request": "Request certificate now",
|
||||
"lastError": "最後嘗試失敗: {{error}}",
|
||||
"missing": "設定網域名稱、電子郵件和您的質詢類型所需的字段,然後儲存,再申請憑證。",
|
||||
"request": "立即申請證書",
|
||||
"requesting": "請求憑證中...",
|
||||
"issued": "Certificate issued and installed"
|
||||
"issued": "證書已頒發並安裝"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ACME證書"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "AI Assistant"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Bekyk dokumente"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "KI-assistent"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "عرض المستندات"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "مساعد الذكاء الاصطناعي"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Преглед на документи"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Асистент с изкуствен интелект"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "সহকারী ব্যবহার করুন",
|
||||
"description": "অ্যাসিস্ট্যান্টটি খুলুন এবং এটিকে বিভিন্ন জিনিস জিজ্ঞাসা করুন।"
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "সরবরাহকারীদের পরিচালনা করুন",
|
||||
"description": "এআই প্রোভাইডার এবং তাদের এপিআই কীগুলো যোগ, সম্পাদনা ও অপসারণ করুন।"
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "প্রস্তাবগুলি প্রয়োগ করুন",
|
||||
"description": "সহকারীকে তার প্রস্তাবিত পরিবর্তনগুলো কার্যকর করতে দিন।"
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "অন্যান্য বৈশিষ্ট্য থেকে এআই ব্যবহার করুন",
|
||||
"description": "অন্যান্য বৈশিষ্ট্য আপনার পক্ষ থেকে সহকারীকে ডাকতে পারে।"
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "এপিআই কী শেয়ার করুন",
|
||||
"description": "অন্যান্য ফিচারগুলো সংরক্ষিত এআই এপিআই কী-টি না দেখেই ব্যবহার করতে পারে।"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "এই সার্ভারে এআই অ্যাসিস্ট্যান্ট বন্ধ করা আছে।",
|
||||
"providersNeedOptIn": "প্রোভাইডার যোগ করতে উপরের এআই অ্যাসিস্ট্যান্টটি চালু করুন।",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "এআই সহকারী",
|
||||
"description": "ব্যবহারকারীদের এআই অ্যাসিস্ট্যান্ট চালু করার সুযোগ দিন। এটি বন্ধ থাকা অবস্থায়, অ্যাসিস্ট্যান্টটি সকলের জন্য লুকানো এবং ব্লক করা থাকবে।"
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "ব্যক্তিগত এআই হোস্ট অনুমোদিত",
|
||||
"description": "আপনার প্রাইভেট নেটওয়ার্কে এমন হোস্ট রাখুন, যেগুলোকে ব্যবহারকারীরা কোনো প্রোভাইডারের দিকে নির্দেশ করতে পারে, যেমন একটি সেলফ-হোস্টেড ওলামা। প্রতিটি লাইনে একটি করে হোস্ট রাখুন।"
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন",
|
||||
"description": "এই হোস্টের টার্মিনালে সাহায্য করার জন্য এআই অ্যাসিস্ট্যান্টকে অনুমতি দিন। এটি ডিফল্টরূপে বন্ধ থাকে এবং আপনার অ্যাকাউন্টের জন্য এআই চালু করা প্রয়োজন।"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"stop": "Stop",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"running": "running",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"providerLabel": "Name",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"toolArguments": "Input",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"runInTerminal": "Run",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"title": "সহকারী",
|
||||
"send": "পাঠান",
|
||||
"stop": "থামুন",
|
||||
"save": "সংরক্ষণ করুন",
|
||||
"cancel": "বাতিল করুন",
|
||||
"running": "দৌড়ানো",
|
||||
"approve": "অনুমোদন করুন",
|
||||
"reject": "প্রত্যাখ্যান করুন",
|
||||
"inputPlaceholder": "আপনার সার্ভারগুলো সম্পর্কে জিজ্ঞাসা করুন, অথবা কোনো পরিবর্তনের প্রস্তাব বর্ণনা করুন।",
|
||||
"selectProvider": "একজন সরবরাহকারী নির্বাচন করুন",
|
||||
"providerSettings": "প্রদানকারীর সেটিংস",
|
||||
"addProvider": "প্রদানকারী যোগ করুন",
|
||||
"editProvider": "সম্পাদনা প্রদানকারী",
|
||||
"removeProvider": "প্রদানকারীকে অপসারণ করুন",
|
||||
"providerType": "সরবরাহকারী",
|
||||
"providerLabel": "নাম",
|
||||
"providerLabelPlaceholder": "উদাহরণস্বরূপ: স্থানীয় ওলামা",
|
||||
"baseUrl": "সার্ভারের ঠিকানা",
|
||||
"apiKey": "এপিআই কী",
|
||||
"defaultModel": "ডিফল্ট মডেল",
|
||||
"defaultModelPlaceholder": "উদাহরণস্বরূপ: llama3.1 অথবা claude-opus-5",
|
||||
"labelRequired": "এই সরবরাহকারীকে একটি নাম দিন",
|
||||
"providerSaveFailed": "প্রদানকারীকে সংরক্ষণ করা যায়নি",
|
||||
"providerUpdated": "প্রদানকারী আপডেট করেছেন",
|
||||
"providerDeleteFailed": "প্রদানকারীকে সরানো যায়নি",
|
||||
"privateEndpointHint": "আপনার ব্যক্তিগত নেটওয়ার্কের অ্যাড্রেসগুলো ব্যবহার করার জন্য প্রথমে একজন অ্যাডমিনিস্ট্রেটরের কাছ থেকে হোস্টটিকে অনুমতি নিতে হয়।",
|
||||
"providerOllama": "ওল্লামা",
|
||||
"providerAnthropic": "অ্যানথ্রোপিক",
|
||||
"providerOpenai": "ওপেনএআই",
|
||||
"providerGemini": "গুগল জেমিনি",
|
||||
"providerOpenaiCompatible": "ওপেনএআই সামঞ্জস্যপূর্ণ",
|
||||
"toolArguments": "ইনপুট",
|
||||
"toolResult": "ফলাফল",
|
||||
"statusApplied": "প্রয়োগ করা হয়েছে",
|
||||
"statusRejected": "প্রত্যাখ্যাত",
|
||||
"proposalApplied": "পরিবর্তন প্রয়োগ করা হয়েছে",
|
||||
"proposalApplyFailed": "পরিবর্তনটি প্রয়োগ করা যায়নি।",
|
||||
"proposalRejectFailed": "পরিবর্তনটি প্রত্যাখ্যান করা যায়নি",
|
||||
"enableTitle": "এআই অ্যাসিস্ট্যান্ট সক্রিয় করুন",
|
||||
"enableDescription": "সহকারীকে আপনার সেটআপটি পড়তে দিন এবং আপনার অনুমোদনের জন্য পরিবর্তনের পরামর্শ দিতে দিন।",
|
||||
"readOnlyCommands": "শুধুমাত্র পঠনযোগ্য ডায়াগনস্টিক কমান্ডের অনুমতি দিন",
|
||||
"readOnlyCommandsDescription": "সহকারী প্রতিবার অনুমতি না নিয়েই df এবং uptime-এর মতো কয়েকটি নিরাপদ কমান্ড চালাতে পারে। সার্ভার পরিবর্তন করে এমন যেকোনো কিছু সর্বদা প্রথমে প্রস্তাব করা হয়।",
|
||||
"modelDetectFailed": "সরবরাহকারীর সাথে যোগাযোগ করা সম্ভব হয়নি, তাই এটি একটি সাধারণ তালিকা। আপনি যেকোনো মডেলের নাম টাইপ করতে পারেন।",
|
||||
"modelCustom": "একটি মডেলের নাম লিখুন",
|
||||
"modelRefresh": "তালিকা রিফ্রেশ করুন",
|
||||
"modelPlaceholder": "একটি মডেল বেছে নিন বা টাইপ করুন",
|
||||
"attachHint": "কোনো হোস্ট, স্নিপেট বা অটোমেশন উল্লেখ করতে @ টাইপ করুন। আপনার অনুমোদনের জন্য পরিবর্তনগুলো প্রস্তাব করা হবে।",
|
||||
"runCommandTitle": "রান কমান্ড",
|
||||
"assistant": "এআই সহকারী",
|
||||
"terminalPanelEmpty": "এই হোস্ট সম্পর্কে অ্যাসিস্ট্যান্টকে জিজ্ঞাসা করুন। অবস্থা পরিবর্তনের জন্য প্রথমে আপনার অনুমোদন প্রয়োজন।",
|
||||
"terminalPanelPlaceholder": "এই হোস্ট সম্পর্কে জিজ্ঞাসা করুন...",
|
||||
"noProvidersConfigured": "এখনো কোনো এআই প্রোভাইডার কনফিগার করা হয়নি। এআই অ্যাসিস্ট্যান্ট ট্যাবে একটি যোগ করুন।",
|
||||
"runsInOpenTerminal": "আপনার খোলা টার্মিনাল সেশনে চলে।",
|
||||
"runInTerminal": "দৌড়",
|
||||
"terminalContextPrefill": "আমার টার্মিনাল আউটপুট নিচে দেওয়া হলো:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "অন্যান্য ফিচারগুলোকে তাদের নিজস্ব অনুরোধের জন্য আপনার এআই প্রোভাইডার এপিআই কী ব্যবহার করতে দিন। কী-টি কখনোই কপি করা হয় না এবং আপনি যেকোনো সময় এটি প্রত্যাহার করতে পারেন।"
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "এআই"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "এআই সহকারী",
|
||||
"aiIntro": "টারমিক্সে একটি ঐচ্ছিক এআই অ্যাসিস্ট্যান্ট অন্তর্ভুক্ত থাকতে পারে। আপনি পরবর্তীতে আপনার সেটিংসে এটি পরিবর্তন করতে পারবেন।",
|
||||
"aiSkipTitle": "এটা ছেড়ে দাও",
|
||||
"aiSkipDesc": "টারমিক্স এখন যেমন কাজ করে, তেমনই কাজ করে। অ্যাসিস্ট্যান্টটি লুকানো থাকে।",
|
||||
"aiEnableTitle": "এটা চালু করুন",
|
||||
"aiEnableDesc": "একজন সহকারী যোগ করে যে আপনার সেটআপ পড়ে এবং আপনার অনুমোদিত পরিবর্তনের পরামর্শ দেয়। এর জন্য আপনার সরবরাহ করা একজন প্রদানকারীর প্রয়োজন, যেমন একজন স্থানীয় ওলামা।",
|
||||
"aiNote": "আপনি একজন প্রোভাইডার যোগ করে মেসেজ না পাঠানো পর্যন্ত কোথাও কিছু পাঠানো হয় না।"
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
"docsLink": "নথি দেখুন"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "এআই সহকারী"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Veure documents"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Assistent d'IA"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Zobrazit dokumenty"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Asistent umělé inteligence"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Se dokumenter"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "AI-assistent"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Dokumentation anzeigen"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "KI-Assistent"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Προβολή εγγράφων"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Βοηθός Τεχνητής Νοημοσύνης"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Ver documentación"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Asistente de IA"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Näytä dokumentit"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Tekoälyavustaja"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Voir la documentation"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Assistant IA"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "הצג מסמכים"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "עוזר בינה מלאכותית"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "सहायक का उपयोग करें",
|
||||
"description": "असिस्टेंट खोलें और उससे सवाल पूछें।"
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "प्रदाताओं का प्रबंधन करें",
|
||||
"description": "एआई प्रदाताओं और उनकी एपीआई कुंजियों को जोड़ें, संपादित करें और हटाएं।"
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "प्रस्ताव लागू करें",
|
||||
"description": "सहायक को उसके द्वारा सुझाए गए बदलावों को लागू करने दें।"
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "अन्य सुविधाओं से एआई का उपयोग करें",
|
||||
"description": "अन्य सुविधाएं आपकी ओर से असिस्टेंट को कॉल कर सकती हैं।"
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "एपीआई कुंजी साझा करें",
|
||||
"description": "अन्य सुविधाएं संग्रहीत एआई एपीआई कुंजी का उपयोग उसे देखे बिना भी कर सकती हैं।"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "इस सर्वर पर एआई असिस्टेंट बंद है।",
|
||||
"providersNeedOptIn": "प्रदाताओं को जोड़ने के लिए ऊपर दिए गए एआई सहायक को चालू करें।",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "एआई सहायक",
|
||||
"description": "उपयोगकर्ताओं को एआई सहायक चालू करने की अनुमति दें। जब यह बंद होगा, तो सहायक सभी के लिए छिपा हुआ और अवरुद्ध रहेगा।"
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "निजी एआई होस्ट की अनुमति दी गई",
|
||||
"description": "आपके निजी नेटवर्क पर मौजूद होस्ट, जिन्हें उपयोगकर्ता किसी प्रदाता से जोड़ सकते हैं, जैसे कि स्व-होस्टेड ओलामा। प्रत्येक पंक्ति में एक होस्ट रखें।"
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "एआई असिस्टेंट को सक्षम करें",
|
||||
"description": "इस होस्ट के टर्मिनल में एआई सहायक को मदद करने की अनुमति दें। यह डिफ़ॉल्ट रूप से बंद है, लेकिन आपके खाते के लिए एआई को सक्षम करना आवश्यक है।"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "सहायक",
|
||||
"send": "भेजना",
|
||||
"stop": "स्टॉप",
|
||||
"save": "सहेजें",
|
||||
"cancel": "रद्द करें",
|
||||
"running": "चल रहे",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"approve": "मंज़ूरी देना",
|
||||
"reject": "अस्वीकार करना",
|
||||
"inputPlaceholder": "अपने सर्वरों के बारे में पूछें, या प्रस्तावित परिवर्तन का वर्णन करें।",
|
||||
"selectProvider": "एक प्रदाता का चयन करें",
|
||||
"providerSettings": "प्रदाता सेटिंग्स",
|
||||
"addProvider": "प्रदाता जोड़ें",
|
||||
"editProvider": "प्रदाता संपादित करें",
|
||||
"removeProvider": "प्रदाता को हटाएँ",
|
||||
"providerType": "प्रदाता",
|
||||
"providerLabel": "नाम",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerLabelPlaceholder": "उदाहरण के लिए: स्थानीय ओलामा",
|
||||
"baseUrl": "सर्वर पता",
|
||||
"apiKey": "एपीआई कुंजी",
|
||||
"defaultModel": "डिफ़ॉल्ट मॉडल",
|
||||
"defaultModelPlaceholder": "उदाहरण के लिए: llama3.1 या claude-opus-5",
|
||||
"labelRequired": "इस प्रदाता को एक नाम दें",
|
||||
"providerSaveFailed": "प्रदाता को बचाया नहीं जा सका",
|
||||
"providerUpdated": "प्रदाता ने अपडेट किया",
|
||||
"providerDeleteFailed": "प्रदाता को हटाया नहीं जा सका",
|
||||
"privateEndpointHint": "आपके निजी नेटवर्क पर मौजूद पतों के लिए पहले एक प्रशासक द्वारा होस्ट को अनुमति देना आवश्यक है।",
|
||||
"providerOllama": "ओलामा",
|
||||
"providerAnthropic": "anthropic",
|
||||
"providerOpenai": "ओपनएआई",
|
||||
"providerGemini": "गूगल जेमिनी",
|
||||
"providerOpenaiCompatible": "OpenAI संगत",
|
||||
"toolArguments": "इनपुट",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"toolResult": "परिणाम",
|
||||
"statusApplied": "लागू किया गया",
|
||||
"statusRejected": "अस्वीकार कर दिया",
|
||||
"proposalApplied": "परिवर्तन लागू हो गया",
|
||||
"proposalApplyFailed": "परिवर्तन लागू नहीं हो सका",
|
||||
"proposalRejectFailed": "परिवर्तन को अस्वीकार नहीं किया जा सका",
|
||||
"enableTitle": "एआई सहायक को सक्रिय करें",
|
||||
"enableDescription": "सहायक को आपकी सेटअप प्रक्रिया पढ़ने दें और वह आपके अनुमोदन के लिए परिवर्तन सुझाएगा।",
|
||||
"readOnlyCommands": "केवल पढ़ने योग्य डायग्नोस्टिक कमांड की अनुमति दें",
|
||||
"readOnlyCommandsDescription": "सहायक बिना पूछे ही df और uptime जैसे कुछ सुरक्षित कमांड चला सकता है। सर्वर में कोई भी बदलाव करने का प्रस्ताव हमेशा पहले दिया जाता है।",
|
||||
"modelDetectFailed": "प्रदाता से संपर्क नहीं हो सका, इसलिए यह एक सामान्य सूची है। आप किसी भी मॉडल का नाम टाइप कर सकते हैं।",
|
||||
"modelCustom": "मॉडल का नाम दर्ज करें",
|
||||
"modelRefresh": "सूची रीफ़्रेश करें",
|
||||
"modelPlaceholder": "कोई मॉडल चुनें या टाइप करें",
|
||||
"attachHint": "किसी होस्ट, स्निपेट या ऑटोमेशन को संदर्भित करने के लिए @ टाइप करें। आपके अनुमोदन के लिए परिवर्तन प्रस्तावित किए जा रहे हैं।",
|
||||
"runCommandTitle": "कमांड चलाएँ",
|
||||
"assistant": "एआई सहायक",
|
||||
"terminalPanelEmpty": "इस होस्ट के बारे में असिस्टेंट से पूछें। किसी भी स्थिति में बदलाव के लिए पहले आपकी स्वीकृति आवश्यक है।",
|
||||
"terminalPanelPlaceholder": "इस होस्ट के बारे में पूछें...",
|
||||
"noProvidersConfigured": "अभी तक कोई एआई प्रदाता कॉन्फ़िगर नहीं किया गया है। एआई सहायक टैब में एक जोड़ें।",
|
||||
"runsInOpenTerminal": "यह आपके खुले टर्मिनल सत्र में चलता है।",
|
||||
"runInTerminal": "चलाएं",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "यह मेरे टर्मिनल का आउटपुट है:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "अन्य सुविधाओं को अपने अनुरोधों के लिए आपके एआई प्रदाता एपीआई कुंजी का उपयोग करने दें। कुंजी की कभी प्रतिलिपि नहीं बनाई जाती है, और आप इसे किसी भी समय रद्द कर सकते हैं।"
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "ऐ"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "एआई सहायक",
|
||||
"aiIntro": "टर्मिक्स में एक वैकल्पिक एआई सहायक शामिल हो सकता है। आप इसे बाद में अपनी सेटिंग्स में बदल सकते हैं।",
|
||||
"aiSkipTitle": "इसे बंद कर दो",
|
||||
"aiSkipDesc": "टर्मिक्स अभी की तरह ही काम करता है। असिस्टेंट छिपा रहता है।",
|
||||
"aiEnableTitle": "इसे चालू करें",
|
||||
"aiEnableDesc": "यह एक सहायक सुविधा जोड़ता है जो आपके सेटअप को पढ़ता है और आपके द्वारा स्वीकृत किए जाने वाले परिवर्तनों का सुझाव देता है। इसके लिए आपको एक प्रदाता उपलब्ध कराना होगा, जैसे कि स्थानीय ओलामा।",
|
||||
"aiNote": "जब तक आप कोई प्रदाता नहीं जोड़ते और संदेश नहीं भेजते, तब तक कुछ भी कहीं नहीं भेजा जाता।"
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "दस्तावेज़ देखें"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "एआई सहायक"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Dokumentumok megtekintése"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "MI asszisztens"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Gunakan asisten",
|
||||
"description": "Buka asisten dan ajukan pertanyaan kepadanya."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Mengelola penyedia",
|
||||
"description": "Tambahkan, edit, dan hapus penyedia AI dan kunci API mereka."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Ajukan proposal",
|
||||
"description": "Biarkan asisten tersebut menjalankan perubahan yang disarankannya."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Gunakan AI dari fitur lain.",
|
||||
"description": "Fitur lainnya mungkin akan memanggil asisten atas nama Anda."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Bagikan kunci API",
|
||||
"description": "Fitur lain mungkin menggunakan kunci API AI yang tersimpan tanpa mengetahuinya."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "Asisten AI dinonaktifkan di server ini.",
|
||||
"providersNeedOptIn": "Aktifkan asisten AI di atas untuk menambahkan penyedia.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "Asisten AI",
|
||||
"description": "Izinkan pengguna untuk mengaktifkan asisten AI. Saat dinonaktifkan, asisten akan disembunyikan dan diblokir untuk semua orang."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Host AI pribadi yang diizinkan",
|
||||
"description": "Host di jaringan pribadi Anda yang dapat diarahkan pengguna ke penyedia layanan, seperti Ollama yang dihosting sendiri. Letakkan satu host di setiap baris."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Aktifkan Asisten AI",
|
||||
"description": "Izinkan asisten AI untuk membantu di terminal host ini. Secara default dinonaktifkan, dan AI tetap perlu diaktifkan untuk akun Anda."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"stop": "Stop",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"running": "running",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"providerLabel": "Name",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"title": "Asisten",
|
||||
"send": "Mengirim",
|
||||
"stop": "Berhenti",
|
||||
"save": "Menyimpan",
|
||||
"cancel": "Membatalkan",
|
||||
"running": "berlari",
|
||||
"approve": "Menyetujui",
|
||||
"reject": "Menolak",
|
||||
"inputPlaceholder": "Tanyakan tentang server Anda, atau jelaskan perubahan yang ingin Anda usulkan.",
|
||||
"selectProvider": "Pilih penyedia",
|
||||
"providerSettings": "Pengaturan penyedia",
|
||||
"addProvider": "Tambahkan penyedia",
|
||||
"editProvider": "Penyedia pengeditan",
|
||||
"removeProvider": "Hapus penyedia",
|
||||
"providerType": "Penyedia",
|
||||
"providerLabel": "Nama",
|
||||
"providerLabelPlaceholder": "Contohnya: Ollama setempat",
|
||||
"baseUrl": "Alamat server",
|
||||
"apiKey": "Kunci API",
|
||||
"defaultModel": "Model default",
|
||||
"defaultModelPlaceholder": "Misalnya: llama3.1 atau claude-opus-5",
|
||||
"labelRequired": "Beri nama penyedia ini",
|
||||
"providerSaveFailed": "Penyedia layanan tidak dapat disimpan.",
|
||||
"providerUpdated": "Penyedia diperbarui",
|
||||
"providerDeleteFailed": "Penyedia layanan tidak dapat dihapus.",
|
||||
"privateEndpointHint": "Alamat-alamat di jaringan pribadi Anda memerlukan izin administrator terlebih dahulu untuk host tersebut.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerAnthropic": "Antropis",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"toolArguments": "Input",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"runInTerminal": "Run",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"providerOpenaiCompatible": "Kompatibel dengan OpenAI",
|
||||
"toolArguments": "Masukan",
|
||||
"toolResult": "Hasil",
|
||||
"statusApplied": "Terapan",
|
||||
"statusRejected": "Ditolak",
|
||||
"proposalApplied": "Perubahan diterapkan",
|
||||
"proposalApplyFailed": "Perubahan tidak dapat diterapkan.",
|
||||
"proposalRejectFailed": "Tidak bisa menolak perubahan tersebut",
|
||||
"enableTitle": "Aktifkan asisten AI",
|
||||
"enableDescription": "Biarkan asisten membaca pengaturan Anda dan menyarankan perubahan yang perlu Anda setujui.",
|
||||
"readOnlyCommands": "Izinkan perintah diagnostik hanya baca.",
|
||||
"readOnlyCommandsDescription": "Asisten dapat menjalankan daftar singkat perintah aman seperti df dan uptime tanpa bertanya setiap kali. Apa pun yang mengubah server selalu diusulkan terlebih dahulu.",
|
||||
"modelDetectFailed": "Tidak dapat menghubungi penyedia, jadi ini adalah daftar umum. Anda dapat mengetikkan nama model apa pun.",
|
||||
"modelCustom": "Masukkan nama model",
|
||||
"modelRefresh": "Perbarui daftar",
|
||||
"modelPlaceholder": "Pilih atau ketik model",
|
||||
"attachHint": "Ketik @ untuk merujuk ke host, cuplikan kode, atau otomatisasi. Perubahan diajukan untuk Anda setujui.",
|
||||
"runCommandTitle": "Jalankan perintah",
|
||||
"assistant": "Asisten AI",
|
||||
"terminalPanelEmpty": "Tanyakan kepada asisten tentang tuan rumah ini. Segala sesuatu yang berubah status memerlukan persetujuan Anda terlebih dahulu.",
|
||||
"terminalPanelPlaceholder": "Tanyakan tentang tuan rumah ini...",
|
||||
"noProvidersConfigured": "Belum ada penyedia AI yang dikonfigurasi. Tambahkan satu di tab asisten AI.",
|
||||
"runsInOpenTerminal": "Berjalan di sesi terminal Anda yang sedang terbuka.",
|
||||
"runInTerminal": "Berlari",
|
||||
"terminalContextPrefill": "Berikut adalah output terminal saya:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Izinkan fitur lain menggunakan kunci API penyedia AI Anda untuk permintaan mereka sendiri. Kunci tersebut tidak pernah disalin, dan Anda dapat mencabutnya kapan saja."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "Asisten AI",
|
||||
"aiIntro": "Termix dapat menyertakan asisten AI opsional. Anda dapat mengubahnya nanti di pengaturan Anda.",
|
||||
"aiSkipTitle": "Biarkan saja",
|
||||
"aiSkipDesc": "Termix berfungsi seperti sekarang. Asisten tetap tersembunyi.",
|
||||
"aiEnableTitle": "Nyalakan",
|
||||
"aiEnableDesc": "Menambahkan asisten yang membaca pengaturan Anda dan menyarankan perubahan yang Anda setujui. Membutuhkan penyedia yang Anda berikan, seperti Ollama lokal.",
|
||||
"aiNote": "Tidak ada data yang dikirim ke mana pun sampai Anda menambahkan penyedia dan mengirim pesan."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
"docsLink": "Lihat dokumen"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Asisten AI"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Visualizza documentazione"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Assistente AI"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "ドキュメントを表示"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "AIアシスタント"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "문서 보기"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "AI 어시스턴트"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Documenten bekijken"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "AI-assistent"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Bruk assistenten",
|
||||
"description": "Åpne assistenten og spør den om ting."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Administrer leverandører",
|
||||
"description": "Legg til, rediger og fjern AI-leverandørene og API-nøklene deres."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Bruk forslag",
|
||||
"description": "La assistenten utføre endringene den foreslår."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Bruk AI fra andre funksjoner",
|
||||
"description": "Andre funksjoner kan ringe assistenten på dine vegne."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Del API-nøkkelen",
|
||||
"description": "Andre funksjoner kan bruke den lagrede AI API-nøkkelen uten å se den."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "AI-assistenten er slått av på denne serveren.",
|
||||
"providersNeedOptIn": "Slå på AI-assistenten ovenfor for å legge til leverandører.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "AI-assistent",
|
||||
"description": "La brukere slå på AI-assistenten. Mens dette er av, er assistenten skjult og blokkert for alle."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Tillatte private AI-verter",
|
||||
"description": "Verter på ditt private nettverk som brukere kan peke en leverandør til, for eksempel en selvhostet Ollama. Plasser én vert på hver linje."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Aktiver AI-assistent",
|
||||
"description": "Tillat at AI-assistenten hjelper til i denne vertens terminal. Av som standard, og krever fortsatt at AI er aktivert for kontoen din."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "Assistent",
|
||||
"send": "Sende",
|
||||
"stop": "Stopp",
|
||||
"save": "Lagre",
|
||||
"cancel": "Avbryt",
|
||||
"running": "kjører",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"approve": "Vedta",
|
||||
"reject": "Avvis",
|
||||
"inputPlaceholder": "Spør om servitørene dine, eller beskriv en endring du vil foreslå",
|
||||
"selectProvider": "Velg en leverandør",
|
||||
"providerSettings": "Leverandørinnstillinger",
|
||||
"addProvider": "Legg til leverandør",
|
||||
"editProvider": "Rediger leverandør",
|
||||
"removeProvider": "Fjern leverandør",
|
||||
"providerType": "Leverandør",
|
||||
"providerLabel": "Navn",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerLabelPlaceholder": "For eksempel: Lokal Ollama",
|
||||
"baseUrl": "Serveradresse",
|
||||
"apiKey": "API-nøkkel",
|
||||
"defaultModel": "Standardmodell",
|
||||
"defaultModelPlaceholder": "For eksempel: llama3.1 eller claude-opus-5",
|
||||
"labelRequired": "Gi denne leverandøren et navn",
|
||||
"providerSaveFailed": "Kunne ikke lagre leverandøren",
|
||||
"providerUpdated": "Leverandøren er oppdatert",
|
||||
"providerDeleteFailed": "Kunne ikke fjerne leverandøren",
|
||||
"privateEndpointHint": "Adresser på ditt private nettverk krever at en administrator tillater verten først.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerAnthropic": "Antropisk",
|
||||
"providerOpenai": "Åpen kunstig intelligens",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"toolArguments": "Input",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"providerOpenaiCompatible": "OpenAI-kompatibel",
|
||||
"toolArguments": "Inndata",
|
||||
"toolResult": "Resultat",
|
||||
"statusApplied": "Anvendt",
|
||||
"statusRejected": "Avvist",
|
||||
"proposalApplied": "Endringen er brukt",
|
||||
"proposalApplyFailed": "Kunne ikke bruke endringen",
|
||||
"proposalRejectFailed": "Kunne ikke avvise endringen",
|
||||
"enableTitle": "Aktiver AI-assistenten",
|
||||
"enableDescription": "La assistenten lese oppsettet ditt og foreslå endringer du kan godkjenne.",
|
||||
"readOnlyCommands": "Tillat skrivebeskyttede diagnostiske kommandoer",
|
||||
"readOnlyCommandsDescription": "Assistenten kan kjøre en kort liste med sikre kommandoer som df og uptime uten å spørre hver gang. Alt som endrer en server blir alltid foreslått først.",
|
||||
"modelDetectFailed": "Kunne ikke nå leverandøren, så dette er en generell liste. Du kan skrive inn et hvilket som helst modellnavn.",
|
||||
"modelCustom": "Skriv inn et modellnavn",
|
||||
"modelRefresh": "Oppdater listen",
|
||||
"modelPlaceholder": "Velg eller skriv inn en modell",
|
||||
"attachHint": "Skriv inn @ for å referere til en vert, et kodeutdrag eller en automatisering. Endringer foreslås som du kan godkjenne.",
|
||||
"runCommandTitle": "Kjør kommandoen",
|
||||
"assistant": "AI-assistent",
|
||||
"terminalPanelEmpty": "Spør assistenten om denne verten. Alt som endrer status trenger din godkjenning først.",
|
||||
"terminalPanelPlaceholder": "Spør om denne verten...",
|
||||
"noProvidersConfigured": "Ingen AI-leverandør er konfigurert ennå. Legg til en i AI-assistent-fanen.",
|
||||
"runsInOpenTerminal": "Kjører i din åpne terminaløkt.",
|
||||
"runInTerminal": "Kjør",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "Her er terminalutgangen min:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "La andre funksjoner bruke API-nøkkelen til AI-leverandøren din for sine egne forespørsler. Nøkkelen kopieres aldri, og du kan tilbakekalle den når som helst."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "AI-assistent",
|
||||
"aiIntro": "Termix kan inkludere en valgfri AI-assistent. Du kan endre dette senere i innstillingene dine.",
|
||||
"aiSkipTitle": "La det være av",
|
||||
"aiSkipDesc": "Termix fungerer som den gjør nå. Assistenten forblir skjult.",
|
||||
"aiEnableTitle": "Slå den på",
|
||||
"aiEnableDesc": "Legger til en assistent som leser oppsettet ditt og foreslår endringer du godkjenner. Krever en leverandør du oppgir, for eksempel en lokal Ollama.",
|
||||
"aiNote": "Ingenting sendes noe sted før du legger til en leverandør og sender en melding."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
"docsLink": "Vis dokumenter"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "AI-assistent"
|
||||
}
|
||||
}
|
||||
@@ -1,29 +1,29 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Użyj asystenta",
|
||||
"description": "Otwórz asystenta i zadaj mu pytania."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Zarządzaj dostawcami",
|
||||
"description": "Dodawaj, edytuj i usuwaj dostawców sztucznej inteligencji oraz ich klucze API."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Zastosuj propozycje",
|
||||
"description": "Pozwól asystentowi wprowadzić sugerowane zmiany."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Użyj sztucznej inteligencji z innych funkcji",
|
||||
"description": "Inne funkcje mogą umożliwiać wywoływanie asystenta w Twoim imieniu."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Udostępnij klucz API",
|
||||
"description": "Inne funkcje mogą wykorzystywać zapisany klucz API AI, nawet go nie widząc."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "Asystent AI jest wyłączony na tym serwerze.",
|
||||
"providersNeedOptIn": "Włącz asystenta AI powyżej, aby dodać dostawców.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "Asystent AI",
|
||||
@@ -31,13 +31,13 @@
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Dozwolone prywatne hosty AI",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"description": "Hosty w Twojej sieci prywatnej, na które użytkownicy mogą wskazać dostawcę, na przykład samodzielnie hostowany Ollama. Umieść jednego hosta na każdej linii."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Włącz asystenta AI",
|
||||
"description": "Zezwól asystentowi AI na pomoc w terminalu tego hosta. Domyślnie wyłączone, ale nadal wymaga włączenia AI na Twoim koncie."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -90,15 +90,15 @@
|
||||
"modelPlaceholder": "Wybierz lub wpisz model",
|
||||
"attachHint": "Wpisz @, aby odwołać się do hosta, snippetu lub automatyzacji. Zmiany są proponowane do Twojego zatwierdzenia.",
|
||||
"runCommandTitle": "Uruchom polecenie",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"assistant": "Asystent AI",
|
||||
"terminalPanelEmpty": "Zapytaj asystenta o tego hosta. Każda zmiana stanu wymaga Twojej zgody.",
|
||||
"terminalPanelPlaceholder": "Zapytaj o tego gospodarza...",
|
||||
"noProvidersConfigured": "Nie skonfigurowano jeszcze żadnego dostawcy AI. Dodaj go w zakładce Asystent AI.",
|
||||
"runsInOpenTerminal": "Działa w otwartej sesji terminalowej.",
|
||||
"runInTerminal": "Uruchom",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "Oto wynik mojego terminala:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Pozwól innym funkcjom używać klucza API dostawcy sztucznej inteligencji do własnych żądań. Klucz nigdy nie jest kopiowany i możesz go w dowolnym momencie cofnąć."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Zobacz dokumentację"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Asystent AI"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Use o assistente",
|
||||
"description": "Abra o assistente e faça perguntas."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Gerenciar fornecedores",
|
||||
"description": "Adicione, edite e remova os fornecedores de IA e suas chaves de API."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Apresentar propostas",
|
||||
"description": "Deixe que o assistente execute as alterações que sugerir."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Utilizar IA de outras funcionalidades",
|
||||
"description": "Outras funcionalidades podem chamar o assistente em seu nome."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Compartilhe a chave da API",
|
||||
"description": "Outras funcionalidades podem usar a chave da API de IA armazenada sem visualizá-la."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "O assistente de IA está desativado neste servidor.",
|
||||
"providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "assistente de IA",
|
||||
"description": "Permita que os usuários ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Hosts de IA privados permitidos",
|
||||
"description": "Servidores na sua rede privada que os usuários podem usar como provedores, como um Ollama auto-hospedado. Coloque um servidor em cada linha."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Ativar o assistente de IA",
|
||||
"description": "Permita que o assistente de IA ajude no terminal deste host. Desativado por padrão, mas ainda precisa que a IA esteja ativada para sua conta."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"stop": "Stop",
|
||||
"title": "Assistente",
|
||||
"send": "Enviar",
|
||||
"stop": "Parar",
|
||||
"save": "Salvar",
|
||||
"cancel": "Cancelar",
|
||||
"running": "running",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"providerLabel": "Name",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"running": "correndo",
|
||||
"approve": "Aprovar",
|
||||
"reject": "Rejeitar",
|
||||
"inputPlaceholder": "Pergunte sobre seus servidores ou descreva uma alteração que você gostaria de propor.",
|
||||
"selectProvider": "Selecione um fornecedor",
|
||||
"providerSettings": "Configurações do provedor",
|
||||
"addProvider": "Adicionar provedor",
|
||||
"editProvider": "Editar provedor",
|
||||
"removeProvider": "Remover provedor",
|
||||
"providerType": "Fornecedor",
|
||||
"providerLabel": "Nome",
|
||||
"providerLabelPlaceholder": "Por exemplo: Ollama local",
|
||||
"baseUrl": "Endereço do servidor",
|
||||
"apiKey": "Chave de API",
|
||||
"defaultModel": "Modelo padrão",
|
||||
"defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5",
|
||||
"labelRequired": "Dê um nome a este fornecedor.",
|
||||
"providerSaveFailed": "Não foi possível salvar o provedor.",
|
||||
"providerUpdated": "Fornecedor atualizado",
|
||||
"providerDeleteFailed": "Não foi possível remover o provedor.",
|
||||
"privateEndpointHint": "Os endereços na sua rede privada precisam que um administrador autorize o host primeiro.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerAnthropic": "Antrópico",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "Compatível com OpenAI",
|
||||
"toolArguments": "Entrada",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"runInTerminal": "Run",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"toolResult": "Resultado",
|
||||
"statusApplied": "Aplicado",
|
||||
"statusRejected": "Rejeitado",
|
||||
"proposalApplied": "Alteração aplicada",
|
||||
"proposalApplyFailed": "Não foi possível aplicar a alteração.",
|
||||
"proposalRejectFailed": "Não foi possível rejeitar a alteração.",
|
||||
"enableTitle": "Ative o assistente de IA",
|
||||
"enableDescription": "Deixe o assistente ler sua configuração e sugerir alterações para você aprovar.",
|
||||
"readOnlyCommands": "Permitir comandos de diagnóstico somente leitura",
|
||||
"readOnlyCommandsDescription": "O assistente pode executar uma pequena lista de comandos seguros, como `df` e `uptime`, sem perguntar a cada vez. Qualquer alteração que faça no servidor será sempre sugerida primeiro.",
|
||||
"modelDetectFailed": "Não foi possível contatar o fornecedor, portanto esta é uma lista genérica. Você pode digitar o nome de qualquer modelo.",
|
||||
"modelCustom": "Insira o nome do modelo",
|
||||
"modelRefresh": "Atualizar lista",
|
||||
"modelPlaceholder": "Selecione ou digite um modelo",
|
||||
"attachHint": "Digite @ para fazer referência a um host, snippet ou automação. As alterações são propostas para sua aprovação.",
|
||||
"runCommandTitle": "Executar comando",
|
||||
"assistant": "Assistente de IA",
|
||||
"terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado precisa da sua aprovação prévia.",
|
||||
"terminalPanelPlaceholder": "Pergunte sobre este anfitrião...",
|
||||
"noProvidersConfigured": "Nenhum provedor de IA está configurado ainda. Adicione um na aba do assistente de IA.",
|
||||
"runsInOpenTerminal": "Executa na sua sessão de terminal aberta.",
|
||||
"runInTerminal": "Correr",
|
||||
"terminalContextPrefill": "Aqui está a saída do meu terminal:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Permita que outros recursos usem sua chave de API do provedor de IA para suas próprias solicitações. A chave nunca é copiada e você pode revogá-la a qualquer momento."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "IA"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "assistente de IA",
|
||||
"aiIntro": "O Termix pode incluir um assistente de IA opcional. Você pode alterar isso posteriormente nas suas configurações.",
|
||||
"aiSkipTitle": "Deixe desligado",
|
||||
"aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.",
|
||||
"aiEnableTitle": "Ligue-o",
|
||||
"aiEnableDesc": "Adiciona um assistente que lê sua configuração e sugere alterações que você aprova. Requer um provedor fornecido por você, como um Ollama local.",
|
||||
"aiNote": "Nada será enviado até que você adicione um provedor e envie uma mensagem."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Documentação"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Assistente de IA"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Utilize o assistente",
|
||||
"description": "Abra o assistente e coloque questões."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Gerir fornecedores",
|
||||
"description": "Adicione, edite e remova os fornecedores de IA e as suas chaves API."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Apresentar propostas",
|
||||
"description": "Deixe que o assistente execute as alterações que sugerir."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Utilizar IA de outras funcionalidades",
|
||||
"description": "Outras funcionalidades podem chamar o assistente em seu nome."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Partilhar a chave da API",
|
||||
"description": "Outras funcionalidades podem utilizar a chave da API de IA armazenada sem a visualizar."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "O assistente de IA está desativado neste servidor.",
|
||||
"providersNeedOptIn": "Ative o assistente de IA acima para adicionar fornecedores.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "assistente de IA",
|
||||
"description": "Permita que os utilizadores ativem o assistente de IA. Quando estiver desativado, o assistente ficará oculto e bloqueado para todos."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Hosts de IA privados permitidos",
|
||||
"description": "Servidores na sua rede privada que os utilizadores podem utilizar como fornecedores, como um Ollama auto-hospedado. Coloque um servidor em cada linha."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Ativar o assistente de IA",
|
||||
"description": "Permita que o assistente de IA ajude no terminal deste host. Desativado por defeito, mas ainda precisa que a IA esteja ativada para a sua conta."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "Assistente",
|
||||
"send": "Enviar",
|
||||
"stop": "Stop",
|
||||
"save": "Guardar",
|
||||
"cancel": "Cancelar",
|
||||
"running": "em execução",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"approve": "Aprovar",
|
||||
"reject": "Rejeitar",
|
||||
"inputPlaceholder": "Pergunte pelos seus servidores ou descreva uma alteração que gostaria de propor.",
|
||||
"selectProvider": "Selecione um fornecedor",
|
||||
"providerSettings": "Configurações do fornecedor",
|
||||
"addProvider": "Adicionar provedor",
|
||||
"editProvider": "Editar provedor",
|
||||
"removeProvider": "Remover fornecedor",
|
||||
"providerType": "Fornecedor",
|
||||
"providerLabel": "Nome",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerLabelPlaceholder": "Por exemplo: Ollama local",
|
||||
"baseUrl": "Endereço do servidor",
|
||||
"apiKey": "Chave API",
|
||||
"defaultModel": "Modelo padrão",
|
||||
"defaultModelPlaceholder": "Por exemplo: llama3.1 ou claude-opus-5",
|
||||
"labelRequired": "Dê um nome a este fornecedor.",
|
||||
"providerSaveFailed": "Não foi possível guardar o fornecedor.",
|
||||
"providerUpdated": "Fornecedor atualizado",
|
||||
"providerDeleteFailed": "Não foi possível remover o fornecedor.",
|
||||
"privateEndpointHint": "Os endereços na sua rede privada necessitam que um administrador autorize primeiro o host.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerAnthropic": "Antrópico",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "Compatível com OpenAI",
|
||||
"toolArguments": "Entrada",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"toolResult": "Resultado",
|
||||
"statusApplied": "Aplicado",
|
||||
"statusRejected": "Rejeitado",
|
||||
"proposalApplied": "Alteração aplicada",
|
||||
"proposalApplyFailed": "Não foi possível aplicar a alteração.",
|
||||
"proposalRejectFailed": "Não foi possível rejeitar a alteração.",
|
||||
"enableTitle": "Ative o assistente de IA",
|
||||
"enableDescription": "Deixe o assistente ler a sua configuração e sugerir alterações para que a aprove.",
|
||||
"readOnlyCommands": "Permitir comandos de diagnóstico de leitura apenas",
|
||||
"readOnlyCommandsDescription": "O assistente pode executar uma pequena lista de comandos seguros, como `df` e `uptime`, sem perguntar de cada vez. Qualquer alteração que faça no servidor será sempre sugerida em primeiro lugar.",
|
||||
"modelDetectFailed": "Não foi possível contactar o fornecedor, pelo que esta é uma lista genérica. Pode digitar o nome de qualquer modelo.",
|
||||
"modelCustom": "Introduza o nome do modelo",
|
||||
"modelRefresh": "Atualizar lista",
|
||||
"modelPlaceholder": "Selecione ou introduza um modelo",
|
||||
"attachHint": "Digite @ para fazer referência a um host, snippet ou automação. As alterações são propostas para a sua aprovação.",
|
||||
"runCommandTitle": "Executar comando",
|
||||
"assistant": "Assistente de IA",
|
||||
"terminalPanelEmpty": "Pergunte ao assistente sobre este anfitrião. Qualquer alteração de estado necessita da sua aprovação prévia.",
|
||||
"terminalPanelPlaceholder": "Pergunte sobre este anfitrião...",
|
||||
"noProvidersConfigured": "Nenhum fornecedor de IA está configurado ainda. Adicione um no separador do assistente de IA.",
|
||||
"runsInOpenTerminal": "Executa na sua sessão de terminal aberta.",
|
||||
"runInTerminal": "Executar",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "Eis a saída do meu terminal:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Permita que outros recursos utilizem a sua chave API do fornecedor de IA para os seus próprios pedidos. A chave nunca é copiada e pode revogá-la a qualquer momento."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "IA"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "assistente de IA",
|
||||
"aiIntro": "O Termix pode incluir um assistente de IA opcional. Pode alterar isso posteriormente nas suas definições.",
|
||||
"aiSkipTitle": "Deixe desligado",
|
||||
"aiSkipDesc": "O Termix funciona como está agora. O assistente permanece oculto.",
|
||||
"aiEnableTitle": "Ligue-o",
|
||||
"aiEnableDesc": "Adiciona um assistente que lê a sua configuração e sugere alterações que aprova. Requer um fornecedor fornecido por si, como um Ollama local.",
|
||||
"aiNote": "Nada será enviado até que adicione um fornecedor e envie uma mensagem."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Ver documentação"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Assistente de IA"
|
||||
}
|
||||
}
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Vizualizați documentele"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Asistent AI"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Воспользуйтесь помощником",
|
||||
"description": "Откройте ассистента и задайте ему вопросы."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Управление поставщиками",
|
||||
"description": "Добавляйте, редактируйте и удаляйте поставщиков ИИ и их API-ключи."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Подайте заявки на участие в тендере.",
|
||||
"description": "Пусть ассистент внесет предложенные им изменения."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Используйте ИИ из других функций.",
|
||||
"description": "Другие функции могут вызывать голосового помощника от вашего имени."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Поделитесь ключом API",
|
||||
"description": "Другие функции могут использовать сохраненный ключ API ИИ, даже не видя его."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "На этом сервере ИИ-помощник отключен.",
|
||||
"providersNeedOptIn": "Включите ИИ-помощника выше, чтобы добавить поставщиков услуг.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "ИИ-помощник",
|
||||
"description": "Разрешите пользователям включить голосового помощника. Если он выключен, помощник скрыт и заблокирован для всех."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Разрешены частные хосты ИИ",
|
||||
"description": "Разместите на каждой линии по одному хосту в вашей частной сети, на которые пользователи могут направлять запросы провайдера, например, самостоятельно размещенный Ollama."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Включить ИИ-помощника",
|
||||
"description": "Разрешите помощнику с искусственным интеллектом помогать на терминале этого хоста. По умолчанию отключено, но для вашей учетной записи ИИ все равно должен быть включен."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "Помощник",
|
||||
"send": "Отправлять",
|
||||
"stop": "Остановить",
|
||||
"save": "Сохранить",
|
||||
"cancel": "Отмена",
|
||||
"running": "выполняется",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"approve": "Утвердить",
|
||||
"reject": "Отклонять",
|
||||
"inputPlaceholder": "Поинтересуйтесь состоянием ваших серверов или предложите внести изменения.",
|
||||
"selectProvider": "Выберите поставщика",
|
||||
"providerSettings": "Настройки поставщика",
|
||||
"addProvider": "Добавить поставщика",
|
||||
"editProvider": "Поставщик редактирования",
|
||||
"removeProvider": "Удалить поставщика",
|
||||
"providerType": "Поставщик",
|
||||
"providerLabel": "Название",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerLabelPlaceholder": "Например: Местная лама",
|
||||
"baseUrl": "Адрес сервера",
|
||||
"apiKey": "ключ API",
|
||||
"defaultModel": "Модель по умолчанию",
|
||||
"defaultModelPlaceholder": "Например: llama3.1 или claude-opus-5",
|
||||
"labelRequired": "Укажите имя этого поставщика услуг.",
|
||||
"providerSaveFailed": "Не удалось сохранить поставщика услуг.",
|
||||
"providerUpdated": "Поставщик обновлен",
|
||||
"providerDeleteFailed": "Не удалось удалить поставщика услуг.",
|
||||
"privateEndpointHint": "Для доступа к адресам в вашей частной сети необходимо предварительное разрешение администратора.",
|
||||
"providerOllama": "оллама",
|
||||
"providerAnthropic": "Антропический",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "Совместимость с OpenAI",
|
||||
"toolArguments": "Ввод",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"toolResult": "Результат",
|
||||
"statusApplied": "Применяемый",
|
||||
"statusRejected": "Отклоненный",
|
||||
"proposalApplied": "Внесены изменения.",
|
||||
"proposalApplyFailed": "Не удалось применить изменения.",
|
||||
"proposalRejectFailed": "Не мог отклонить изменение.",
|
||||
"enableTitle": "Включите ИИ-помощника",
|
||||
"enableDescription": "Позвольте ассистенту ознакомиться с вашими настройками и предложить изменения для утверждения.",
|
||||
"readOnlyCommands": "Разрешить диагностические команды только для чтения",
|
||||
"readOnlyCommandsDescription": "Ассистент может выполнить короткий список безопасных команд, таких как df и uptime, не запрашивая подтверждения каждый раз. Любая команда, изменяющая состояние сервера, всегда предлагается в первую очередь.",
|
||||
"modelDetectFailed": "Не удалось связаться с поставщиком, поэтому это общий список. Вы можете ввести любое название модели.",
|
||||
"modelCustom": "Введите название модели",
|
||||
"modelRefresh": "Обновить список",
|
||||
"modelPlaceholder": "Выберите или введите модель",
|
||||
"attachHint": "Введите @ для ссылки на хост, фрагмент кода или автоматизацию. Предлагаются изменения для вашего утверждения.",
|
||||
"runCommandTitle": "Выполните команду",
|
||||
"assistant": "ИИ-помощник",
|
||||
"terminalPanelEmpty": "Спросите помощника об этом хосте. Любое изменение состояния требует вашего предварительного одобрения.",
|
||||
"terminalPanelPlaceholder": "Спросите об этом хостинге...",
|
||||
"noProvidersConfigured": "Поставщик ИИ пока не настроен. Добавьте его на вкладке «Помощник ИИ».",
|
||||
"runsInOpenTerminal": "Запускается в открытой терминальной сессии.",
|
||||
"runInTerminal": "Запустить",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "Вот вывод моего терминала:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Разрешите другим функциям использовать ваш API-ключ поставщика ИИ для своих запросов. Ключ никогда не копируется, и вы можете отозвать его в любое время."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "ИИ"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "ИИ-помощник",
|
||||
"aiIntro": "В Termix можно добавить опционального ИИ-помощника. Это можно изменить позже в настройках.",
|
||||
"aiSkipTitle": "Оставьте это выключенным.",
|
||||
"aiSkipDesc": "Termix работает так, как сейчас. Ассистент остается скрытым.",
|
||||
"aiEnableTitle": "Включите его",
|
||||
"aiEnableDesc": "Добавляет помощника, который анализирует ваши настройки и предлагает изменения, которые вы одобряете. Требуется поставщик, которого вы предоставляете, например, местный Ollama.",
|
||||
"aiNote": "Ничего никуда не отправляется, пока вы не добавите поставщика услуг и не отправите сообщение."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Документация"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ИИ-помощник"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Користите помоћника",
|
||||
"description": "Отворите асистента и питајте га."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Управљајте добављачима",
|
||||
"description": "Додајте, уредите и уклоните добављаче вештачке интелигенције и њихове АПИ кључеве."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Примени предлоге",
|
||||
"description": "Нека асистент изврши измене које предложи."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Користите вештачку интелигенцију из других функција",
|
||||
"description": "Друге функције могу позвати асистента у ваше име."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Поделите API кључ",
|
||||
"description": "Друге функције могу користити сачувани AI API кључ, а да га не виде."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "АИ асистент је искључен на овом серверу.",
|
||||
"providersNeedOptIn": "Укључите AI асистента изнад да бисте додали добављаче.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "Асистент за вештачку интелигенцију",
|
||||
"description": "Дозволите корисницима да укључе вештачку интелигенцију асистента. Док је ово искључено, асистент је скривен и блокиран за све."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Дозвољени приватни AI хостови",
|
||||
"description": "Домаћини на вашој приватној мрежи на које корисници могу усмерити провајдера, као што је самостално хостовани Ollama. Ставите по један хост у сваки ред."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Омогући AI асистент",
|
||||
"description": "Дозволите вештачкој интелигенцији да помогне у терминалу овог хоста. Искључено је подразумевано, а и даље је потребно да вештачка интелигенција буде омогућена за ваш налог."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"stop": "Stop",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"running": "running",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"providerLabel": "Name",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"title": "Асистент",
|
||||
"send": "Пошаљи",
|
||||
"stop": "Заустави",
|
||||
"save": "Сачувај",
|
||||
"cancel": "Откажи",
|
||||
"running": "трчање",
|
||||
"approve": "Одобри",
|
||||
"reject": "Одбиј",
|
||||
"inputPlaceholder": "Питајте о својим серверима или опишите промену коју желите да предложите",
|
||||
"selectProvider": "Изаберите добављача",
|
||||
"providerSettings": "Подешавања добављача",
|
||||
"addProvider": "Додај добављача",
|
||||
"editProvider": "Измени добављача",
|
||||
"removeProvider": "Уклони добављача",
|
||||
"providerType": "Провајдер",
|
||||
"providerLabel": "Име",
|
||||
"providerLabelPlaceholder": "На пример: Локална Олама",
|
||||
"baseUrl": "Адреса сервера",
|
||||
"apiKey": "API кључ",
|
||||
"defaultModel": "Подразумевани модел",
|
||||
"defaultModelPlaceholder": "На пример: llama3.1 или claude-opus-5",
|
||||
"labelRequired": "Дајте име овом добављачу",
|
||||
"providerSaveFailed": "Није могуће сачувати добављача",
|
||||
"providerUpdated": "Провајдер је ажуриран",
|
||||
"providerDeleteFailed": "Није могуће уклонити добављача",
|
||||
"privateEndpointHint": "Адресе на вашој приватној мрежи прво треба да дозволе администратору хоста.",
|
||||
"providerOllama": "Олама",
|
||||
"providerAnthropic": "Антропски",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"toolArguments": "Input",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"runInTerminal": "Run",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"providerGemini": "Гугл Џемини",
|
||||
"providerOpenaiCompatible": "Компатибилно са OpenAI-ом",
|
||||
"toolArguments": "Унос",
|
||||
"toolResult": "Резултат",
|
||||
"statusApplied": "Примењено",
|
||||
"statusRejected": "Одбијено",
|
||||
"proposalApplied": "Промена је примењена",
|
||||
"proposalApplyFailed": "Није могуће применити промену",
|
||||
"proposalRejectFailed": "Није могуће одбити промену",
|
||||
"enableTitle": "Омогућите вештачку интелигенцију (AI) асистента",
|
||||
"enableDescription": "Нека асистент прочита ваша подешавања и предложи измене које ћете одобрити.",
|
||||
"readOnlyCommands": "Дозволи дијагностичке команде само за читање",
|
||||
"readOnlyCommandsDescription": "Асистент може да покрене кратку листу безбедних команди као што су df и uptime без сваког питања. Све што мења сервер се увек прво предлаже.",
|
||||
"modelDetectFailed": "Нисмо могли да контактирамо добављача, тако да је ово општа листа. Можете да унесете било који назив модела.",
|
||||
"modelCustom": "Унесите назив модела",
|
||||
"modelRefresh": "Освежи листу",
|
||||
"modelPlaceholder": "Изаберите или унесите модел",
|
||||
"attachHint": "Унесите @ да бисте референцирали хост, исечак кода или аутоматизацију. Промене се предлажу да бисте их одобрили.",
|
||||
"runCommandTitle": "Покрени команду",
|
||||
"assistant": "АИ асистент",
|
||||
"terminalPanelEmpty": "Питајте асистента о овом домаћину. Све што мења стање прво захтева ваше одобрење.",
|
||||
"terminalPanelPlaceholder": "Питајте о овом домаћину...",
|
||||
"noProvidersConfigured": "Још увек није конфигурисан ниједан добављач вештачке интелигенције. Додајте га на картици помоћника за вештачку интелигенцију.",
|
||||
"runsInOpenTerminal": "Покреће се у вашој отвореној терминалној сесији.",
|
||||
"runInTerminal": "Трчи",
|
||||
"terminalContextPrefill": "Ево мог терминалног излаза:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Дозволите другим функцијама да користе ваш API кључ добављача вештачке интелигенције за сопствене захтеве. Кључ се никада не копира и можете га опозвати у било ком тренутку."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "Вештачка интелигенција"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "Асистент за вештачку интелигенцију",
|
||||
"aiIntro": "Termix може да укључи опционог AI асистента. Ово можете касније променити у подешавањима.",
|
||||
"aiSkipTitle": "Остави то искључено",
|
||||
"aiSkipDesc": "Термикс ради као и сада. Асистент остаје скривен.",
|
||||
"aiEnableTitle": "Укључи га",
|
||||
"aiEnableDesc": "Додаје асистента који чита ваша подешавања и предлаже измене које одобравате. Потребан је добављач кога ви обезбедите, као што је локални Олама.",
|
||||
"aiNote": "Ништа се не шаље нигде док не додате провајдера и не пошаљете поруку."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
"docsLink": "Прикажи документе"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "АИ асистент"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Använd assistenten",
|
||||
"description": "Öppna assistenten och fråga den saker."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Hantera leverantörer",
|
||||
"description": "Lägg till, redigera och ta bort AI-leverantörerna och deras API-nycklar."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Tillämpa förslag",
|
||||
"description": "Låt assistenten utföra de ändringar den föreslår."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Använd AI från andra funktioner",
|
||||
"description": "Andra funktioner kan ringa assistenten åt dig."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Dela API-nyckeln",
|
||||
"description": "Andra funktioner kan använda den lagrade AI API-nyckeln utan att se den."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "AI-assistenten är avstängd på den här servern.",
|
||||
"providersNeedOptIn": "Aktivera AI-assistenten ovan för att lägga till leverantörer.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "AI-assistent",
|
||||
"description": "Låt användare aktivera AI-assistenten. Medan detta är avstängt är assistenten dold och blockerad för alla."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Tillåtna privata AI-värdar",
|
||||
"description": "Värdar på ditt privata nätverk som användare kan hänvisa en leverantör till, till exempel en självhostad Ollama. Lägg en värd på varje rad."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Aktivera AI-assistenten",
|
||||
"description": "Tillåt AI-assistenten att hjälpa till i den här värdens terminal. Av som standard och kräver fortfarande att AI är aktiverat för ditt konto."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"stop": "Stop",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"running": "running",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"providerLabel": "Name",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"title": "Assistent",
|
||||
"send": "Skicka",
|
||||
"stop": "Stopp",
|
||||
"save": "Spara",
|
||||
"cancel": "Avboka",
|
||||
"running": "spring",
|
||||
"approve": "Godkänna",
|
||||
"reject": "Avvisa",
|
||||
"inputPlaceholder": "Fråga om era servrar, eller beskriv en förändring att föreslå",
|
||||
"selectProvider": "Välj en leverantör",
|
||||
"providerSettings": "Leverantörsinställningar",
|
||||
"addProvider": "Lägg till leverantör",
|
||||
"editProvider": "Redigera leverantör",
|
||||
"removeProvider": "Ta bort leverantör",
|
||||
"providerType": "Leverantör",
|
||||
"providerLabel": "Namn",
|
||||
"providerLabelPlaceholder": "Till exempel: Lokal Ollama",
|
||||
"baseUrl": "Serveradress",
|
||||
"apiKey": "API-nyckel",
|
||||
"defaultModel": "Standardmodell",
|
||||
"defaultModelPlaceholder": "Till exempel: llama3.1 eller claude-opus-5",
|
||||
"labelRequired": "Ge den här leverantören ett namn",
|
||||
"providerSaveFailed": "Kunde inte spara leverantören",
|
||||
"providerUpdated": "Leverantören uppdaterad",
|
||||
"providerDeleteFailed": "Kunde inte ta bort leverantören",
|
||||
"privateEndpointHint": "Adresser i ditt privata nätverk behöver en administratör som först tillåter värden.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerAnthropic": "Antropisk",
|
||||
"providerOpenai": "Öppen AI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "OpenAI-kompatibel",
|
||||
"toolArguments": "Input",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"runInTerminal": "Run",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"toolResult": "Resultat",
|
||||
"statusApplied": "Tillämpad",
|
||||
"statusRejected": "Avvisad",
|
||||
"proposalApplied": "Ändring tillämpad",
|
||||
"proposalApplyFailed": "Kunde inte tillämpa ändringen",
|
||||
"proposalRejectFailed": "Kunde inte avvisa ändringen",
|
||||
"enableTitle": "Aktivera AI-assistenten",
|
||||
"enableDescription": "Låt assistenten läsa dina inställningar och föreslå ändringar som du kan godkänna.",
|
||||
"readOnlyCommands": "Tillåt skrivskyddade diagnostikkommandon",
|
||||
"readOnlyCommandsDescription": "Assistenten kan köra en kort lista med säkra kommandon som df och uptime utan att fråga varje gång. Allt som ändrar en server föreslås alltid först.",
|
||||
"modelDetectFailed": "Kunde inte nå leverantören, så detta är en allmän lista. Du kan skriva in vilket modellnamn som helst.",
|
||||
"modelCustom": "Ange ett modellnamn",
|
||||
"modelRefresh": "Uppdatera listan",
|
||||
"modelPlaceholder": "Välj eller skriv en modell",
|
||||
"attachHint": "Skriv @ för att referera till en värd, ett kodavsnitt eller en automatisering. Ändringar föreslås för dig att godkänna.",
|
||||
"runCommandTitle": "Kör kommando",
|
||||
"assistant": "AI-assistent",
|
||||
"terminalPanelEmpty": "Fråga assistenten om den här värden. Allt som ändras kräver ditt godkännande först.",
|
||||
"terminalPanelPlaceholder": "Fråga om den här värden...",
|
||||
"noProvidersConfigured": "Ingen AI-leverantör är konfigurerad ännu. Lägg till en på fliken AI-assistent.",
|
||||
"runsInOpenTerminal": "Körs i din öppna terminalsession.",
|
||||
"runInTerminal": "Sikt",
|
||||
"terminalContextPrefill": "Här är min terminalutgång:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Låt andra funktioner använda din AI-leverantörs API-nyckel för sina egna förfrågningar. Nyckeln kopieras aldrig och du kan återkalla den när som helst."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "AI-assistent",
|
||||
"aiIntro": "Termix kan inkludera en valfri AI-assistent. Du kan ändra detta senare i dina inställningar.",
|
||||
"aiSkipTitle": "Lämna den av",
|
||||
"aiSkipDesc": "Termix fungerar som den gör nu. Assistenten förblir dold.",
|
||||
"aiEnableTitle": "Slå på den",
|
||||
"aiEnableDesc": "Lägger till en assistent som läser din installation och föreslår ändringar som du godkänner. Kräver en leverantör som du tillhandahåller, till exempel en lokal Ollama.",
|
||||
"aiNote": "Ingenting skickas någonstans förrän du lägger till en leverantör och skickar ett meddelande."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
"docsLink": "Visa dokument"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "AI-assistent"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "ใช้ตัวช่วย",
|
||||
"description": "เปิดผู้ช่วยเสมือนจริงแล้วถามคำถามได้เลย"
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "จัดการผู้ให้บริการ",
|
||||
"description": "เพิ่ม แก้ไข และลบผู้ให้บริการ AI และคีย์ API ของพวกเขา"
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "ยื่นข้อเสนอ",
|
||||
"description": "ให้ผู้ช่วยดำเนินการเปลี่ยนแปลงตามที่ระบบแนะนำ"
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "ใช้ AI จากฟีเจอร์อื่นๆ",
|
||||
"description": "ฟังก์ชันอื่นๆ อาจโทรติดต่อผู้ช่วยในนามของคุณ"
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "แชร์คีย์ API",
|
||||
"description": "ฟังก์ชันอื่นๆ อาจใช้คีย์ API ของ AI ที่บันทึกไว้โดยไม่เห็นคีย์นั้น"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "ระบบผู้ช่วย AI ถูกปิดใช้งานบนเซิร์ฟเวอร์นี้",
|
||||
"providersNeedOptIn": "เปิดใช้งานผู้ช่วย AI ด้านบนเพื่อเพิ่มผู้ให้บริการ",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "ผู้ช่วย AI",
|
||||
"description": "อนุญาตให้ผู้ใช้เปิดใช้งานผู้ช่วย AI ได้ เมื่อปิดใช้งานอยู่ ผู้ช่วยจะถูกซ่อนและบล็อกไม่ให้ใครเห็น"
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "อนุญาตให้โฮสต์ AI ส่วนตัว",
|
||||
"description": "โฮสต์บนเครือข่ายส่วนตัวของคุณที่ผู้ใช้สามารถชี้ไปยังผู้ให้บริการได้ เช่น Ollama ที่ติดตั้งเอง ให้ใส่โฮสต์หนึ่งตัวต่อหนึ่งบรรทัด"
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "เปิดใช้งานผู้ช่วย AI",
|
||||
"description": "อนุญาตให้ผู้ช่วย AI ช่วยเหลือในเทอร์มินัลของโฮสต์นี้ โดยค่าเริ่มต้นจะปิดอยู่ และยังคงต้องเปิดใช้งาน AI สำหรับบัญชีของคุณก่อน"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"stop": "Stop",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"running": "running",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"providerLabel": "Name",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"toolArguments": "Input",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"runInTerminal": "Run",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"title": "ผู้ช่วย",
|
||||
"send": "ส่ง",
|
||||
"stop": "หยุด",
|
||||
"save": "บันทึก",
|
||||
"cancel": "ยกเลิก",
|
||||
"running": "วิ่ง",
|
||||
"approve": "อนุมัติ",
|
||||
"reject": "ปฏิเสธ",
|
||||
"inputPlaceholder": "สอบถามเกี่ยวกับเซิร์ฟเวอร์ของคุณ หรืออธิบายการเปลี่ยนแปลงที่คุณต้องการเสนอแนะ",
|
||||
"selectProvider": "เลือกผู้ให้บริการ",
|
||||
"providerSettings": "การตั้งค่าผู้ให้บริการ",
|
||||
"addProvider": "เพิ่มผู้ให้บริการ",
|
||||
"editProvider": "แก้ไขผู้ให้บริการ",
|
||||
"removeProvider": "ลบผู้ให้บริการ",
|
||||
"providerType": "ผู้ให้บริการ",
|
||||
"providerLabel": "ชื่อ",
|
||||
"providerLabelPlaceholder": "ตัวอย่างเช่น: Ollama ท้องถิ่น",
|
||||
"baseUrl": "ที่อยู่เซิร์ฟเวอร์",
|
||||
"apiKey": "คีย์ API",
|
||||
"defaultModel": "โมเดลเริ่มต้น",
|
||||
"defaultModelPlaceholder": "ตัวอย่างเช่น: llama3.1 หรือ claude-opus-5",
|
||||
"labelRequired": "ตั้งชื่อให้ผู้ให้บริการรายนี้",
|
||||
"providerSaveFailed": "ไม่สามารถบันทึกผู้ให้บริการได้",
|
||||
"providerUpdated": "ผู้ให้บริการได้รับการอัปเดตแล้ว",
|
||||
"providerDeleteFailed": "ไม่สามารถลบผู้ให้บริการได้",
|
||||
"privateEndpointHint": "การเข้าถึงที่อยู่บนเครือข่ายส่วนตัวของคุณนั้น จำเป็นต้องให้ผู้ดูแลระบบอนุญาตก่อน",
|
||||
"providerOllama": "โอลาม่า",
|
||||
"providerAnthropic": "แอนโทรปิก",
|
||||
"providerOpenai": "โอเพ่นไอ",
|
||||
"providerGemini": "กูเกิล เจมินี",
|
||||
"providerOpenaiCompatible": "เข้ากันได้กับ OpenAI",
|
||||
"toolArguments": "ป้อนข้อมูล",
|
||||
"toolResult": "ผลลัพธ์",
|
||||
"statusApplied": "สมัครแล้ว",
|
||||
"statusRejected": "ถูกปฏิเสธ",
|
||||
"proposalApplied": "มีการเปลี่ยนแปลงเกิดขึ้น",
|
||||
"proposalApplyFailed": "ไม่สามารถทำการเปลี่ยนแปลงได้",
|
||||
"proposalRejectFailed": "ไม่สามารถปฏิเสธการเปลี่ยนแปลงได้",
|
||||
"enableTitle": "เปิดใช้งานผู้ช่วย AI",
|
||||
"enableDescription": "ให้ผู้ช่วยอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงเพื่อให้คุณอนุมัติ",
|
||||
"readOnlyCommands": "อนุญาตคำสั่งวินิจฉัยแบบอ่านอย่างเดียว",
|
||||
"readOnlyCommandsDescription": "ผู้ช่วยอาจเรียกใช้คำสั่งที่ปลอดภัยเพียงไม่กี่คำสั่ง เช่น df และ uptime โดยไม่ต้องถามทุกครั้ง คำสั่งใดๆ ที่เปลี่ยนแปลงสถานะของเซิร์ฟเวอร์จะถูกเสนอให้ดำเนินการก่อนเสมอ",
|
||||
"modelDetectFailed": "ไม่สามารถติดต่อผู้ให้บริการได้ ดังนั้นนี่จึงเป็นรายการทั่วไป คุณสามารถพิมพ์ชื่อรุ่นใดก็ได้",
|
||||
"modelCustom": "ป้อนชื่อรุ่น",
|
||||
"modelRefresh": "รีเฟรชรายการ",
|
||||
"modelPlaceholder": "เลือกหรือพิมพ์แบบจำลอง",
|
||||
"attachHint": "พิมพ์ @ เพื่ออ้างอิงถึงโฮสต์ สนิปเป็ต หรือระบบอัตโนมัติ การเปลี่ยนแปลงที่เสนอจะถูกนำมาให้คุณอนุมัติ",
|
||||
"runCommandTitle": "เรียกใช้คำสั่ง",
|
||||
"assistant": "ผู้ช่วย AI",
|
||||
"terminalPanelEmpty": "สอบถามผู้ช่วยเกี่ยวกับโฮสต์นี้ การเปลี่ยนแปลงสถานะใดๆ ต้องได้รับการอนุมัติจากคุณก่อน",
|
||||
"terminalPanelPlaceholder": "สอบถามเกี่ยวกับโฮสต์รายนี้...",
|
||||
"noProvidersConfigured": "ยังไม่ได้ตั้งค่าผู้ให้บริการ AI เพิ่มผู้ให้บริการในแท็บผู้ช่วย AI",
|
||||
"runsInOpenTerminal": "ทำงานในเซสชันเทอร์มินัลที่เปิดอยู่ของคุณ",
|
||||
"runInTerminal": "วิ่ง",
|
||||
"terminalContextPrefill": "นี่คือผลลัพธ์จากเทอร์มินัลของฉัน:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "อนุญาตให้ฟีเจอร์อื่นๆ ใช้คีย์ API ของผู้ให้บริการ AI ของคุณสำหรับการร้องขอของตนเอง คีย์นี้จะไม่ถูกคัดลอก และคุณสามารถยกเลิกได้ทุกเมื่อ"
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "ผู้ช่วย AI",
|
||||
"aiIntro": "Termix อาจมีผู้ช่วย AI เสริม คุณสามารถเปลี่ยนการตั้งค่าได้ในภายหลัง",
|
||||
"aiSkipTitle": "ปิดมันไว้",
|
||||
"aiSkipDesc": "Termix ทำงานเหมือนเดิมทุกประการ ตัวช่วยยังคงซ่อนอยู่",
|
||||
"aiEnableTitle": "เปิดใช้งาน",
|
||||
"aiEnableDesc": "เพิ่มผู้ช่วยที่จะอ่านการตั้งค่าของคุณและแนะนำการเปลี่ยนแปลงที่คุณต้องอนุมัติ จำเป็นต้องมีผู้ให้บริการที่คุณจัดหาให้ เช่น Ollama ในพื้นที่ของคุณ",
|
||||
"aiNote": "จะไม่มีการส่งข้อมูลใดๆ จนกว่าคุณจะเพิ่มผู้ให้บริการและส่งข้อความ"
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
"docsLink": "ดูเอกสาร"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "ผู้ช่วย AI"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Yardımcıyı kullanın",
|
||||
"description": "Asistanı açın ve ona sorular sorun."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Sağlayıcıları yönetin",
|
||||
"description": "Yapay zeka sağlayıcılarını ve API anahtarlarını ekleyin, düzenleyin ve kaldırın."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Tekliflerinizi sunun.",
|
||||
"description": "Yardımcının önerdiği değişiklikleri uygulamasına izin verin."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Diğer özelliklerden yapay zeka kullanın.",
|
||||
"description": "Diğer özellikler sizin adınıza asistanı arayabilir."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "API anahtarını paylaşın",
|
||||
"description": "Diğer özellikler, kaydedilmiş yapay zeka API anahtarını görmeden kullanabilir."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "Bu sunucuda yapay zeka asistanı devre dışı bırakılmıştır.",
|
||||
"providersNeedOptIn": "Sağlayıcı eklemek için yukarıdaki yapay zeka asistanını açın.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "Yapay zeka asistanı",
|
||||
"description": "Kullanıcıların yapay zeka asistanını açmasına izin verin. Bu özellik kapalıyken, asistan gizlenir ve herkes için engellenir."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Özel yapay zeka sunucularına izin verildi.",
|
||||
"description": "Kullanıcıların bir sağlayıcıya yönlendirebileceği özel ağınızdaki sunucular (örneğin, kendi sunucunuzda barındırdığınız Ollama). Her satıra bir sunucu yazın."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Yapay Zeka Asistanını Etkinleştir",
|
||||
"description": "Bu sunucunun terminalinde yapay zeka asistanının yardımcı olmasına izin verin. Varsayılan olarak kapalıdır ve hesabınız için yapay zekanın etkinleştirilmiş olması gerekir."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "Asistan",
|
||||
"send": "Göndermek",
|
||||
"stop": "Durdurma",
|
||||
"save": "Kaydet",
|
||||
"cancel": "İptal",
|
||||
"running": "çalışan",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"approve": "Onaylamak",
|
||||
"reject": "Reddetmek",
|
||||
"inputPlaceholder": "Sunucularınız hakkında bilgi isteyin veya önereceğiniz bir değişikliği açıklayın.",
|
||||
"selectProvider": "Bir sağlayıcı seçin",
|
||||
"providerSettings": "Sağlayıcı ayarları",
|
||||
"addProvider": "Sağlayıcı ekle",
|
||||
"editProvider": "Sağlayıcıyı düzenle",
|
||||
"removeProvider": "Sağlayıcıyı kaldır",
|
||||
"providerType": "Sağlayıcı",
|
||||
"providerLabel": "Ad",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerLabelPlaceholder": "Örneğin: Yerel Ollama",
|
||||
"baseUrl": "Sunucu adresi",
|
||||
"apiKey": "API anahtarı",
|
||||
"defaultModel": "Varsayılan model",
|
||||
"defaultModelPlaceholder": "Örneğin: llama3.1 veya claude-opus-5",
|
||||
"labelRequired": "Bu sağlayıcıya bir isim verin.",
|
||||
"providerSaveFailed": "Sağlayıcı kaydedilemedi.",
|
||||
"providerUpdated": "Sağlayıcı güncellendi.",
|
||||
"providerDeleteFailed": "Sağlayıcı kaldırılamadı.",
|
||||
"privateEndpointHint": "Özel ağınızdaki adreslerin kullanılabilmesi için öncelikle yöneticinin sunucuya izin vermesi gerekmektedir.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerAnthropic": "Antropik",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "OpenAI uyumlu",
|
||||
"toolArguments": "Giriş",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"toolResult": "Sonuç",
|
||||
"statusApplied": "Uygulandı",
|
||||
"statusRejected": "Reddedilmiş",
|
||||
"proposalApplied": "Değişiklik uygulandı.",
|
||||
"proposalApplyFailed": "Değişiklik uygulanamadı.",
|
||||
"proposalRejectFailed": "Değişikliği reddedemedim.",
|
||||
"enableTitle": "Yapay zekâ asistanını etkinleştirin",
|
||||
"enableDescription": "Asistanın ayarlarınızı okumasını ve onaylamanız için değişiklik önerileri sunmasını sağlayın.",
|
||||
"readOnlyCommands": "Yalnızca okuma amaçlı tanı komutlarına izin ver",
|
||||
"readOnlyCommandsDescription": "Yardımcı program, her seferinde sormadan df ve uptime gibi kısa bir güvenli komut listesini çalıştırabilir. Sunucuda değişiklik yapan her şey her zaman önce önerilir.",
|
||||
"modelDetectFailed": "Sağlayıcıya ulaşılamadı, bu nedenle bu genel bir listedir. İstediğiniz model adını yazabilirsiniz.",
|
||||
"modelCustom": "Bir model adı girin",
|
||||
"modelRefresh": "Listeyi yenile",
|
||||
"modelPlaceholder": "Bir model seçin veya yazın.",
|
||||
"attachHint": "Bir sunucuya, kod parçasına veya otomasyona referans vermek için @ işaretini kullanın. Onaylamanız için değişiklikler öneriliyor.",
|
||||
"runCommandTitle": "Çalıştır komutu",
|
||||
"assistant": "Yapay Zeka Asistanı",
|
||||
"terminalPanelEmpty": "Bu ev sahibi hakkında asistana danışın. Durum değişikliği gerektiren her şey önce sizin onayınızı gerektirir.",
|
||||
"terminalPanelPlaceholder": "Bu ev sahibi hakkında bilgi isteyin...",
|
||||
"noProvidersConfigured": "Henüz hiçbir yapay zeka sağlayıcısı yapılandırılmadı. Yapay zeka asistanı sekmesinden bir tane ekleyin.",
|
||||
"runsInOpenTerminal": "Açık terminal oturumunuzda çalışır.",
|
||||
"runInTerminal": "Çalıştır",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "İşte terminal çıktım:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Diğer özelliklerin kendi istekleri için yapay zeka sağlayıcınızın API anahtarını kullanmasına izin verin. Anahtar asla kopyalanmaz ve bunu istediğiniz zaman iptal edebilirsiniz."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "Yapay zeka"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "Yapay zeka asistanı",
|
||||
"aiIntro": "Termix isteğe bağlı bir yapay zeka asistanı içerebilir. Bunu daha sonra ayarlarınızdan değiştirebilirsiniz.",
|
||||
"aiSkipTitle": "Kapalı bırakın",
|
||||
"aiSkipDesc": "Termix şu anki haliyle çalışıyor. Asistan gizli kalıyor.",
|
||||
"aiEnableTitle": "Açın",
|
||||
"aiEnableDesc": "Ayarlarınızı okuyan ve onaylamanız halinde değişiklikler öneren bir asistan ekler. Yerel bir Ollama gibi, sizin sağladığınız bir sağlayıcıya ihtiyaç duyar.",
|
||||
"aiNote": "Bir sağlayıcı ekleyip mesaj gönderene kadar hiçbir şey hiçbir yere gönderilmez."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Dokümanları görüntüle"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Yapay Zeka Asistanı"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Використовуйте помічника",
|
||||
"description": "Відкрийте помічника та запитайте його."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Керування постачальниками",
|
||||
"description": "Додавайте, редагуйте та видаляйте постачальників штучного інтелекту та їхні ключі API."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Застосувати пропозиції",
|
||||
"description": "Нехай помічник внесе запропоновані ним зміни."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Використання ШІ з інших функцій",
|
||||
"description": "Інші функції можуть викликати помічника від вашого імені."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Поділитися ключем API",
|
||||
"description": "Інші функції можуть використовувати збережений ключ API штучного інтелекту, не бачачи його."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "Помічник зі штучним інтелектом вимкнено на цьому сервері.",
|
||||
"providersNeedOptIn": "Увімкніть помічника зі штучним інтелектом вище, щоб додати постачальників.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "Асистент зі штучним інтелектом",
|
||||
"description": "Дозвольте користувачам увімкнути помічника зі штучним інтелектом. Коли це вимкнено, помічник прихований і заблокований для всіх."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Дозволені приватні хости ШІ",
|
||||
"description": "Хости у вашій приватній мережі, на які користувачі можуть вказувати провайдера, наприклад, Ollama з власним хостингом. Розмістіть по одному хосту в кожному рядку."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Увімкнути помічника зі штучним інтелектом",
|
||||
"description": "Дозволити помічнику зі штучним інтелектом допомагати в терміналі цього хоста. Вимкнено за замовчуванням, але все одно потребує ввімкнення штучного інтелекту для вашого облікового запису."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"stop": "Stop",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"running": "running",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"providerLabel": "Name",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"title": "Помічник",
|
||||
"send": "Надіслати",
|
||||
"stop": "СТІЙ",
|
||||
"save": "Зберегти",
|
||||
"cancel": "Скасувати",
|
||||
"running": "біг",
|
||||
"approve": "Схвалити",
|
||||
"reject": "Відхилити",
|
||||
"inputPlaceholder": "Запитайте про ваші сервери або опишіть зміну, яку ви хочете запропонувати",
|
||||
"selectProvider": "Виберіть постачальника",
|
||||
"providerSettings": "Налаштування постачальника",
|
||||
"addProvider": "Додати постачальника",
|
||||
"editProvider": "Редагувати постачальника",
|
||||
"removeProvider": "Видалити постачальника",
|
||||
"providerType": "Постачальник",
|
||||
"providerLabel": "Ім'я",
|
||||
"providerLabelPlaceholder": "Наприклад: Місцевий Оллама",
|
||||
"baseUrl": "Адреса сервера",
|
||||
"apiKey": "Ключ API",
|
||||
"defaultModel": "Модель за замовчуванням",
|
||||
"defaultModelPlaceholder": "Наприклад: llama3.1 або claude-opus-5",
|
||||
"labelRequired": "Дайте назву цьому постачальнику",
|
||||
"providerSaveFailed": "Не вдалося зберегти постачальника",
|
||||
"providerUpdated": "Постачальника оновлено",
|
||||
"providerDeleteFailed": "Не вдалося видалити постачальника",
|
||||
"privateEndpointHint": "Адреси у вашій приватній мережі спочатку потребують дозволу адміністратора хоста.",
|
||||
"providerOllama": "Оллама",
|
||||
"providerAnthropic": "Антропний",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"toolArguments": "Input",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"runInTerminal": "Run",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"providerGemini": "Google Близнюки",
|
||||
"providerOpenaiCompatible": "Сумісний з OpenAI",
|
||||
"toolArguments": "Вхід",
|
||||
"toolResult": "Результат",
|
||||
"statusApplied": "Застосовано",
|
||||
"statusRejected": "Відхилено",
|
||||
"proposalApplied": "Зміну застосовано",
|
||||
"proposalApplyFailed": "Не вдалося застосувати зміну",
|
||||
"proposalRejectFailed": "Не вдалося відхилити зміну",
|
||||
"enableTitle": "Увімкнути помічника зі штучним інтелектом",
|
||||
"enableDescription": "Дозвольте асистенту прочитати ваші налаштування та запропонувати зміни для вашого схвалення.",
|
||||
"readOnlyCommands": "Дозволити діагностичні команди лише для читання",
|
||||
"readOnlyCommandsDescription": "Помічник може виконувати короткий список безпечних команд, таких як df та uptime, не запитуючи щоразу. Будь-які зміни на сервері завжди пропонуються першими.",
|
||||
"modelDetectFailed": "Не вдалося зв’язатися з постачальником, тому це загальний список. Ви можете ввести будь-яку назву моделі.",
|
||||
"modelCustom": "Введіть назву моделі",
|
||||
"modelRefresh": "Оновити список",
|
||||
"modelPlaceholder": "Виберіть або введіть модель",
|
||||
"attachHint": "Введіть @, щоб посилатися на хост, фрагмент або автоматизацію. Зміни пропонуються для вашого схвалення.",
|
||||
"runCommandTitle": "Виконати команду",
|
||||
"assistant": "Помічник зі штучним інтелектом",
|
||||
"terminalPanelEmpty": "Запитайте асистента про цього хоста. Будь-яка зміна стану потребує вашого попереднього схвалення.",
|
||||
"terminalPanelPlaceholder": "Запитайте про цього хоста...",
|
||||
"noProvidersConfigured": "Постачальника штучного інтелекту ще не налаштовано. Додайте його на вкладці помічника штучного інтелекту.",
|
||||
"runsInOpenTerminal": "Працює у вашому відкритому термінальному сеансі.",
|
||||
"runInTerminal": "Бігти",
|
||||
"terminalContextPrefill": "Ось мій вивід з терміналу:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Дозвольте іншим функціям використовувати ваш ключ API постачальника штучного інтелекту для власних запитів. Ключ ніколи не копіюється, і ви можете скасувати його будь-коли."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "Штучний інтелект"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "Асистент зі штучним інтелектом",
|
||||
"aiIntro": "Termix може включати додатковий помічник зі штучним інтелектом. Ви можете змінити це пізніше в налаштуваннях.",
|
||||
"aiSkipTitle": "Залиште це вимкненим",
|
||||
"aiSkipDesc": "Termix працює як і зараз. Помічник залишається прихованим.",
|
||||
"aiEnableTitle": "Увімкніть це",
|
||||
"aiEnableDesc": "Додає помічника, який читає ваші налаштування та пропонує зміни, які ви схвалюєте. Потрібен постачальник, якого ви надаєте, наприклад, місцевий Ollama.",
|
||||
"aiNote": "Нічого нікуди не надсилається, доки ви не додасте постачальника та не надішлете повідомлення."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "View docs"
|
||||
"docsLink": "Переглянути документи"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Помічник зі штучним інтелектом"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "Sử dụng trợ lý",
|
||||
"description": "Mở trợ lý ảo và hỏi nó những câu hỏi."
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "Quản lý nhà cung cấp",
|
||||
"description": "Thêm, chỉnh sửa và xóa các nhà cung cấp AI và khóa API của họ."
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "Áp dụng các đề xuất",
|
||||
"description": "Hãy để trợ lý thực hiện những thay đổi mà nó đề xuất."
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "Sử dụng trí tuệ nhân tạo từ các tính năng khác",
|
||||
"description": "Các tính năng khác có thể gọi trợ lý ảo thay mặt bạn."
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "Chia sẻ khóa API",
|
||||
"description": "Các tính năng khác có thể sử dụng khóa API AI đã lưu trữ mà không cần nhìn thấy khóa đó."
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "Trợ lý AI đã bị tắt trên máy chủ này.",
|
||||
"providersNeedOptIn": "Hãy bật trợ lý AI ở trên để thêm nhà cung cấp.",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "Trợ lý AI",
|
||||
"description": "Cho phép người dùng bật trợ lý AI. Khi chức năng này tắt, trợ lý sẽ bị ẩn và chặn đối với tất cả mọi người."
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "Cho phép máy chủ AI riêng",
|
||||
"description": "Các máy chủ trên mạng riêng của bạn mà người dùng có thể trỏ đến nhà cung cấp, chẳng hạn như Ollama tự lưu trữ. Đặt một máy chủ trên mỗi dòng."
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "Kích hoạt Trợ lý AI",
|
||||
"description": "Cho phép trợ lý AI hỗ trợ trong thiết bị đầu cuối của máy chủ này. Mặc định là tắt, nhưng bạn vẫn cần bật AI cho tài khoản của mình."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "Trợ lý",
|
||||
"send": "Gửi",
|
||||
"stop": "Bit dừng",
|
||||
"save": "Lưu",
|
||||
"cancel": "Hủy",
|
||||
"running": "đang chạy",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"approve": "Chấp thuận",
|
||||
"reject": "Từ chối",
|
||||
"inputPlaceholder": "Hãy hỏi về máy chủ của bạn, hoặc mô tả một thay đổi mà bạn muốn đề xuất.",
|
||||
"selectProvider": "Chọn nhà cung cấp",
|
||||
"providerSettings": "Cài đặt nhà cung cấp",
|
||||
"addProvider": "Thêm nhà cung cấp",
|
||||
"editProvider": "Chỉnh sửa nhà cung cấp",
|
||||
"removeProvider": "Xóa nhà cung cấp",
|
||||
"providerType": "Nhà cung cấp",
|
||||
"providerLabel": "Tên",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerLabelPlaceholder": "Ví dụ: Ollama địa phương",
|
||||
"baseUrl": "Địa chỉ máy chủ",
|
||||
"apiKey": "Khóa API",
|
||||
"defaultModel": "Mô hình mặc định",
|
||||
"defaultModelPlaceholder": "Ví dụ: llama3.1 hoặc claude-opus-5",
|
||||
"labelRequired": "Đặt tên cho nhà cung cấp này",
|
||||
"providerSaveFailed": "Không thể lưu nhà cung cấp",
|
||||
"providerUpdated": "Nhà cung cấp đã cập nhật",
|
||||
"providerDeleteFailed": "Không thể xóa nhà cung cấp",
|
||||
"privateEndpointHint": "Các địa chỉ trên mạng riêng của bạn cần được quản trị viên cho phép truy cập trước.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerAnthropic": "Nhân loại",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "Tương thích với OpenAI",
|
||||
"toolArguments": "Nhập",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"toolResult": "Kết quả",
|
||||
"statusApplied": "Đã áp dụng",
|
||||
"statusRejected": "Vật bị loại bỏ",
|
||||
"proposalApplied": "Thay đổi đã được áp dụng",
|
||||
"proposalApplyFailed": "Không thể áp dụng thay đổi",
|
||||
"proposalRejectFailed": "Không thể từ chối thay đổi",
|
||||
"enableTitle": "Kích hoạt trợ lý AI",
|
||||
"enableDescription": "Hãy để trợ lý đọc cấu hình của bạn và đề xuất các thay đổi để bạn phê duyệt.",
|
||||
"readOnlyCommands": "Cho phép các lệnh chẩn đoán chỉ đọc",
|
||||
"readOnlyCommandsDescription": "Trợ lý có thể chạy một danh sách ngắn các lệnh an toàn như df và uptime mà không cần hỏi mỗi lần. Bất kỳ lệnh nào thay đổi máy chủ đều được đề xuất trước tiên.",
|
||||
"modelDetectFailed": "Không thể liên lạc được với nhà cung cấp, vì vậy đây là danh sách chung. Bạn có thể nhập bất kỳ tên mẫu nào.",
|
||||
"modelCustom": "Nhập tên mẫu",
|
||||
"modelRefresh": "Làm mới danh sách",
|
||||
"modelPlaceholder": "Chọn hoặc nhập mô hình",
|
||||
"attachHint": "Nhập @ để tham chiếu đến máy chủ, đoạn mã hoặc quy trình tự động hóa. Các thay đổi được đề xuất để bạn phê duyệt.",
|
||||
"runCommandTitle": "Chạy lệnh",
|
||||
"assistant": "Trợ lý AI",
|
||||
"terminalPanelEmpty": "Hãy hỏi trợ lý về máy chủ này. Bất cứ thay đổi nào về trạng thái đều cần sự chấp thuận của bạn trước.",
|
||||
"terminalPanelPlaceholder": "Hãy hỏi về chủ nhà này...",
|
||||
"noProvidersConfigured": "Chưa có nhà cung cấp AI nào được cấu hình. Hãy thêm một nhà cung cấp trong tab trợ lý AI.",
|
||||
"runsInOpenTerminal": "Chương trình này chạy trong cửa sổ dòng lệnh đang mở của bạn.",
|
||||
"runInTerminal": "Chạy",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "Đây là kết quả hiển thị trên terminal của tôi:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "Cho phép các tính năng khác sử dụng khóa API của nhà cung cấp AI của bạn cho các yêu cầu riêng của chúng. Khóa này không bao giờ được sao chép và bạn có thể thu hồi nó bất cứ lúc nào."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "Trí tuệ nhân tạo"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "Trợ lý AI",
|
||||
"aiIntro": "Termix có thể bao gồm trợ lý AI tùy chọn. Bạn có thể thay đổi điều này sau trong phần cài đặt.",
|
||||
"aiSkipTitle": "Đừng làm vậy",
|
||||
"aiSkipDesc": "Termix vẫn hoạt động như hiện tại. Trợ lý ảo vẫn ẩn mình.",
|
||||
"aiEnableTitle": "Bật nó lên",
|
||||
"aiEnableDesc": "Thêm một trợ lý đọc cấu hình của bạn và đề xuất các thay đổi mà bạn chấp thuận. Cần có nhà cung cấp do bạn chỉ định, chẳng hạn như Ollama địa phương.",
|
||||
"aiNote": "Không có dữ liệu nào được gửi đi cho đến khi bạn thêm nhà cung cấp và gửi tin nhắn."
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "Xem tài liệu"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Trợ lý AI"
|
||||
}
|
||||
}
|
||||
@@ -1,29 +1,29 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "使用助手",
|
||||
"description": "打开助手并向它提问。"
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "管理供应商",
|
||||
"description": "添加、编辑和删除人工智能提供商及其 API 密钥。"
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "提交提案",
|
||||
"description": "让助手执行它建议的更改。"
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "利用其他功能中的人工智能",
|
||||
"description": "其他功能可能会代表您呼叫语音助手。"
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "分享 API 密钥",
|
||||
"description": "其他功能可能在看不到密钥的情况下使用已存储的 AI API 密钥。"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "此服务器上的AI助手已关闭。",
|
||||
"providersNeedOptIn": "开启上方的AI助手,即可添加服务提供商。",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI 助手",
|
||||
@@ -31,74 +31,74 @@
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "允许的私有 AI 主机",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"description": "用户可向服务提供商指向的私有网络上的主机,例如自托管的 Ollama。每行填写一个主机。"
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "启用人工智能助手",
|
||||
"description": "允许 AI 助手在此主机的终端上提供帮助。默认情况下处于关闭状态,但仍需在您的帐户中启用 AI 功能。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "助手",
|
||||
"send": "发送",
|
||||
"stop": "停止",
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"running": "运行中",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"approve": "批准",
|
||||
"reject": "拒绝",
|
||||
"inputPlaceholder": "询问服务器相关情况,或描述要提出的变更建议",
|
||||
"selectProvider": "选择服务提供商",
|
||||
"providerSettings": "提供商设置",
|
||||
"addProvider": "添加提供商",
|
||||
"editProvider": "编辑提供商",
|
||||
"removeProvider": "Remove provider",
|
||||
"removeProvider": "移除提供者",
|
||||
"providerType": "提供商",
|
||||
"providerLabel": "名称",
|
||||
"providerLabelPlaceholder": "例如:本地 Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"baseUrl": "服务器地址",
|
||||
"apiKey": "API 密钥",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"defaultModel": "默认模型",
|
||||
"defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5",
|
||||
"labelRequired": "给此提供商起个名字",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerSaveFailed": "无法保存提供商",
|
||||
"providerUpdated": "提供商已更新",
|
||||
"providerDeleteFailed": "无法移除提供商",
|
||||
"privateEndpointHint": "您私有网络上的地址需要管理员先允许主机访问。",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "兼容 OpenAI",
|
||||
"toolArguments": "输入",
|
||||
"toolResult": "Result",
|
||||
"toolResult": "结果",
|
||||
"statusApplied": "已应用",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"statusRejected": "已拒绝",
|
||||
"proposalApplied": "变更已生效",
|
||||
"proposalApplyFailed": "无法应用更改",
|
||||
"proposalRejectFailed": "无法拒绝更改",
|
||||
"enableTitle": "启用 AI 助手",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"enableDescription": "让助手读取您的设置并提出更改建议,供您批准。",
|
||||
"readOnlyCommands": "允许只读诊断命令",
|
||||
"readOnlyCommandsDescription": "助手可能会在不每次都询问的情况下运行一些安全命令,例如 `df` 和 `uptime`。任何会更改服务器的操作都会优先被提出。",
|
||||
"modelDetectFailed": "无法联系到提供商,所以这里提供的是通用列表。您可以输入任何模型名称。",
|
||||
"modelCustom": "请输入模型名称",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelRefresh": "刷新列表",
|
||||
"modelPlaceholder": "选择或输入模型",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"attachHint": "输入 @ 符号可引用主机、代码片段或自动化流程。系统会提出更改建议,供您批准。",
|
||||
"runCommandTitle": "运行命令",
|
||||
"assistant": "人工智能助手",
|
||||
"terminalPanelEmpty": "向助理询问有关此房东的信息。任何状态变更都需要您先批准。",
|
||||
"terminalPanelPlaceholder": "询问一下这位房东的情况……",
|
||||
"noProvidersConfigured": "尚未配置任何 AI 提供商。请在 AI 助手选项卡中添加。",
|
||||
"runsInOpenTerminal": "在打开的终端会话中运行。",
|
||||
"runInTerminal": "运行",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "以下是我的终端输出:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "允许其他功能使用您的 AI 提供商 API 密钥发出各自的请求。该密钥绝不会被复制,您可以随时撤销此授权。"
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
@@ -106,7 +106,7 @@
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI 助手",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiIntro": "Termix 可以包含一个可选的 AI 助手。您可以稍后在设置中更改此选项。",
|
||||
"aiSkipTitle": "禁用",
|
||||
"aiSkipDesc": "Termix 正常工作,AI 助手将保持隐藏状态。",
|
||||
"aiEnableTitle": "启用",
|
||||
@@ -115,5 +115,8 @@
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "查看文档"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "人工智能助手"
|
||||
}
|
||||
}
|
||||
@@ -1,119 +1,122 @@
|
||||
{
|
||||
"permissions": {
|
||||
"use": {
|
||||
"title": "Use the assistant",
|
||||
"description": "Open the assistant and ask it things."
|
||||
"title": "使用助手",
|
||||
"description": "打開助手並向它提問。"
|
||||
},
|
||||
"manage_providers": {
|
||||
"title": "Manage providers",
|
||||
"description": "Add, edit and remove the AI providers and their API keys."
|
||||
"title": "管理供應商",
|
||||
"description": "新增、編輯和刪除人工智慧提供者及其 API 金鑰。"
|
||||
},
|
||||
"apply_proposals": {
|
||||
"title": "Apply proposals",
|
||||
"description": "Let the assistant carry out the changes it suggests."
|
||||
"title": "提交提案",
|
||||
"description": "讓助手執行它建議的更改。"
|
||||
},
|
||||
"services.use": {
|
||||
"title": "Use AI from other features",
|
||||
"description": "Other features may call the assistant on your behalf."
|
||||
"title": "利用其他功能中的人工智慧",
|
||||
"description": "其他功能可能會代表您呼叫語音助理。"
|
||||
},
|
||||
"secrets.share": {
|
||||
"title": "Share the API key",
|
||||
"description": "Other features may use the stored AI API key without seeing it."
|
||||
"title": "分享 API 金鑰",
|
||||
"description": "其他功能可能會在不查看金鑰的情況下使用已儲存的 AI API 金鑰。"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"assistantUnavailable": "The AI assistant is turned off on this server.",
|
||||
"providersNeedOptIn": "Turn on the AI assistant above to add providers.",
|
||||
"assistantUnavailable": "此伺服器上的AI助理已關閉。",
|
||||
"providersNeedOptIn": "開啟上方的AI助手,即可新增服務提供者。",
|
||||
"admin": {
|
||||
"globallyEnabled": {
|
||||
"label": "AI assistant",
|
||||
"description": "Let users turn on the AI assistant. While this is off, the assistant is hidden and blocked for everyone."
|
||||
"label": "人工智慧助手",
|
||||
"description": "允許用戶開啟AI助理。關閉此功能後,助手將被隱藏,所有用戶均無法存取。"
|
||||
},
|
||||
"privateEndpoints": {
|
||||
"label": "Allowed private AI hosts",
|
||||
"description": "Hosts on your private network that users may point a provider at, such as a self-hosted Ollama. Put one host on each line."
|
||||
"label": "允許的私有人工智慧主機",
|
||||
"description": "使用者可將服務提供者指向的私有網路上的主機,例如自架的 Ollama。每行填寫一個主機。"
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
"enableAiAssistant": {
|
||||
"label": "Enable AI Assistant",
|
||||
"description": "Allow the AI assistant to help in this host's terminal. Off by default, and still needs AI enabled for your account."
|
||||
"label": "啟用人工智慧助手",
|
||||
"description": "允許 AI 助理在此主機的終端機上提供協助。預設為關閉狀態,但仍需在您的帳戶中啟用 AI 功能。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ai": {
|
||||
"title": "Assistant",
|
||||
"send": "Send",
|
||||
"title": "助理",
|
||||
"send": "傳送",
|
||||
"stop": "停止位元",
|
||||
"save": "儲存",
|
||||
"cancel": "取消",
|
||||
"running": "執行中",
|
||||
"approve": "Approve",
|
||||
"reject": "Reject",
|
||||
"inputPlaceholder": "Ask about your servers, or describe a change to propose",
|
||||
"selectProvider": "Select a provider",
|
||||
"providerSettings": "Provider settings",
|
||||
"addProvider": "Add provider",
|
||||
"editProvider": "Edit provider",
|
||||
"removeProvider": "Remove provider",
|
||||
"providerType": "Provider",
|
||||
"approve": "核准",
|
||||
"reject": "拒絕",
|
||||
"inputPlaceholder": "詢問伺服器相關情況,或描述要提出的變更建議",
|
||||
"selectProvider": "選擇服務提供者",
|
||||
"providerSettings": "提供者設定",
|
||||
"addProvider": "新增提供者",
|
||||
"editProvider": "編輯提供者",
|
||||
"removeProvider": "移除提供者",
|
||||
"providerType": "提供者",
|
||||
"providerLabel": "名稱",
|
||||
"providerLabelPlaceholder": "For example: Local Ollama",
|
||||
"baseUrl": "Server address",
|
||||
"apiKey": "API key",
|
||||
"defaultModel": "Default model",
|
||||
"defaultModelPlaceholder": "For example: llama3.1 or claude-opus-5",
|
||||
"labelRequired": "Give this provider a name",
|
||||
"providerSaveFailed": "Could not save the provider",
|
||||
"providerUpdated": "Provider updated",
|
||||
"providerDeleteFailed": "Could not remove the provider",
|
||||
"privateEndpointHint": "Addresses on your private network need an administrator to allow the host first.",
|
||||
"providerOllama": "Ollama",
|
||||
"providerAnthropic": "Anthropic",
|
||||
"providerLabelPlaceholder": "例如:本地奧拉馬",
|
||||
"baseUrl": "伺服器位址",
|
||||
"apiKey": "API金鑰",
|
||||
"defaultModel": "預設模型",
|
||||
"defaultModelPlaceholder": "例如:llama3.1 或 claude-opus-5",
|
||||
"labelRequired": "給這家服務提供者取個名字",
|
||||
"providerSaveFailed": "無法儲存提供者",
|
||||
"providerUpdated": "提供者已更新",
|
||||
"providerDeleteFailed": "無法移除提供者",
|
||||
"privateEndpointHint": "您私有網路上的位址需要管理員先允許主機存取。",
|
||||
"providerOllama": "奧拉瑪",
|
||||
"providerAnthropic": "人類學",
|
||||
"providerOpenai": "OpenAI",
|
||||
"providerGemini": "Google Gemini",
|
||||
"providerOpenaiCompatible": "OpenAI compatible",
|
||||
"providerOpenaiCompatible": "相容 OpenAI",
|
||||
"toolArguments": "輸入",
|
||||
"toolResult": "Result",
|
||||
"statusApplied": "Applied",
|
||||
"statusRejected": "Rejected",
|
||||
"proposalApplied": "Change applied",
|
||||
"proposalApplyFailed": "Could not apply the change",
|
||||
"proposalRejectFailed": "Could not reject the change",
|
||||
"enableTitle": "Enable the AI assistant",
|
||||
"enableDescription": "Let the assistant read your setup and suggest changes for you to approve.",
|
||||
"readOnlyCommands": "Allow read-only diagnostic commands",
|
||||
"readOnlyCommandsDescription": "The assistant may run a short list of safe commands like df and uptime without asking each time. Anything that changes a server is always proposed first.",
|
||||
"modelDetectFailed": "Could not reach the provider, so this is a general list. You can type any model name.",
|
||||
"modelCustom": "Enter a model name",
|
||||
"modelRefresh": "Refresh list",
|
||||
"modelPlaceholder": "Choose or type a model",
|
||||
"attachHint": "Type @ to reference a host, snippet or automation. Changes are proposed for you to approve.",
|
||||
"runCommandTitle": "Run command",
|
||||
"assistant": "AI Assistant",
|
||||
"terminalPanelEmpty": "Ask the assistant about this host. Anything that changes state needs your approval first.",
|
||||
"terminalPanelPlaceholder": "Ask about this host...",
|
||||
"noProvidersConfigured": "No AI provider is configured yet. Add one in the AI assistant tab.",
|
||||
"runsInOpenTerminal": "Runs in your open terminal session.",
|
||||
"toolResult": "結果",
|
||||
"statusApplied": "應用",
|
||||
"statusRejected": "已拒絕",
|
||||
"proposalApplied": "變更已生效",
|
||||
"proposalApplyFailed": "無法套用變更",
|
||||
"proposalRejectFailed": "無法拒絕更改",
|
||||
"enableTitle": "啟用人工智慧助手",
|
||||
"enableDescription": "請助手讀取您的設定並提出更改建議,供您批准。",
|
||||
"readOnlyCommands": "允許只讀診斷命令",
|
||||
"readOnlyCommandsDescription": "助手可能會在不每次都詢問的情況下執行一些安全的命令,例如 `df` 和 `uptime`。任何會更改伺服器的操作都會優先被提出。",
|
||||
"modelDetectFailed": "無法聯繫到供應商,所以這裡提供的是通用清單。您可以輸入任何型號名稱。",
|
||||
"modelCustom": "請輸入型號名稱",
|
||||
"modelRefresh": "重新整理清單",
|
||||
"modelPlaceholder": "選擇或輸入型號",
|
||||
"attachHint": "輸入 @ 符號可引用主機、程式碼片段或自動化流程。系統會提出更改建議,供您批准。",
|
||||
"runCommandTitle": "運行命令",
|
||||
"assistant": "人工智慧助手",
|
||||
"terminalPanelEmpty": "向助理詢問有關此房東的資訊。任何狀態變更都需要您先批准。",
|
||||
"terminalPanelPlaceholder": "詢問一下這位房東的狀況…",
|
||||
"noProvidersConfigured": "尚未配置任何 AI 提供者。請在 AI 助理標籤中新增。",
|
||||
"runsInOpenTerminal": "在開啟的終端機會話中運行。",
|
||||
"runInTerminal": "執行",
|
||||
"terminalContextPrefill": "Here is my terminal output:\n\n{{output}}\n\n",
|
||||
"terminalContextPrefill": "以下是我的終端輸出:\n\n{{output}}\n\n",
|
||||
"secrets": {
|
||||
"shareApiKey": "Let other features use your AI provider API key for their own requests. The key is never copied, and you can revoke this at any time."
|
||||
"shareApiKey": "允許其他功能使用您的 AI 提供者 API 金鑰發出各自的請求。該密鑰絕不會被複製,您可以隨時撤銷此授權。"
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"ai": "AI"
|
||||
"ai": "人工智慧"
|
||||
},
|
||||
"onboarding": {
|
||||
"aiTitle": "AI assistant",
|
||||
"aiIntro": "Termix can include an optional AI assistant. You can change this later in your settings.",
|
||||
"aiSkipTitle": "Leave it off",
|
||||
"aiSkipDesc": "Termix works as it does now. The assistant stays hidden.",
|
||||
"aiEnableTitle": "Turn it on",
|
||||
"aiEnableDesc": "Adds an assistant that reads your setup and suggests changes you approve. Needs a provider you supply, such as a local Ollama.",
|
||||
"aiNote": "Nothing is sent anywhere until you add a provider and send a message."
|
||||
"aiTitle": "人工智慧助手",
|
||||
"aiIntro": "Termix 可以包含一個可選的 AI 助手。您可以稍後在設定中變更此選項。",
|
||||
"aiSkipTitle": "丟開",
|
||||
"aiSkipDesc": "Termix 的運作方式與現在相同。助手保持隱藏狀態。",
|
||||
"aiEnableTitle": "打開它",
|
||||
"aiEnableDesc": "添加一個助手,它可以讀取您的設定並提出您批准的更改建議。需要您提供服務提供者,例如當地的 Ollama 服務提供者。",
|
||||
"aiNote": "在您新增服務提供者並發送訊息之前,任何內容都不會發送到任何地方。"
|
||||
},
|
||||
"hosts": {
|
||||
"docsLink": "檢視文件"
|
||||
},
|
||||
"plugin": {
|
||||
"name": "人工智慧助手"
|
||||
}
|
||||
}
|
||||
@@ -168,5 +168,8 @@
|
||||
"showRead": "Show read alerts",
|
||||
"allClear": "All clear",
|
||||
"loading": "Loading..."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Alerts"
|
||||
}
|
||||
}
|
||||
@@ -168,5 +168,8 @@
|
||||
"showRead": "Wys leeswaarskuwings",
|
||||
"allClear": "Alles duidelik",
|
||||
"loading": "Laai tans..."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "Waarskuwings"
|
||||
}
|
||||
}
|
||||
@@ -168,5 +168,8 @@
|
||||
"showRead": "عرض تنبيهات القراءة",
|
||||
"allClear": "كل شيء طبيعي",
|
||||
"loading": "جارٍ التحميل..."
|
||||
},
|
||||
"plugin": {
|
||||
"name": "التنبيهات"
|
||||
}
|
||||
}
|
||||
Loaded 100 of 1155 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user