mirror of
https://github.com/YuzuZensai/Termix.git
synced 2026-11-12 18:31:56 +00:00
* fix: keep concurrent ssh pool connects from overwriting each other (#1619) * fix: stop auto-accepting changed jump host keys (#1620) A jump hop whose key no longer matched the pinned fingerprint was silently accepted and the pin overwritten. Background status probes reconnect to jump hosts every cycle, so a MITM on that hop got the credentials with no user interaction. Changed jump host keys now go through the same path as any other host: prompt when there is a terminal socket, otherwise refuse. * fix(electron): validate external login URL scheme and callback port (#1621) * fix(plugins): read artifact manifest with the same tar parser as the unpack (#1622) The consent check read the first manifest.json with a hand-written tar reader, while the unpack keeps the last one and also follows pax and long-name headers. An archive with two manifests could pass the check with one capability list and get granted another. Read the manifest with node-tar, count only plain files, and refuse archives that hold more than one manifest.json. * fix: only trust the server's origin in the desktop login frame (#1624) The desktop sign-in iframe accepted AUTH_SUCCESS and system browser requests from whatever page it had navigated to, and posted replies (including 2FA temp tokens) to any origin. Messages must now come from the server's origin and replies are posted to it. The web UI also treated any framing page as the desktop app and posted the JWT to it. It now also requires the Termix-Desktop user agent. * fix: check trusted proxy login against nginx's peer, not nginx (#1625) The backend only sees the bundled nginx on loopback, so the allowlist could only work by trusting 127.0.0.1, which let any client that reached nginx log in as anyone by sending the identity headers. nginx now passes its own TCP peer (before real_ip rewriting) in X-Termix-Proxy-Peer, and loopback connections are judged by that address instead. * fix: keep foreign keys on during user data import (#1626) Import credentials before hosts and remap the file's credential ids to the ones created here, so hosts and protocol logins no longer point at another server's ids. With rows written in dependency order, the import no longer turns off SQLite foreign keys on the shared connection. The uploaded file is now removed on every exit path. * fix: enforce unique usernames (#1628) * fix: enforce unique usernames Registration checked for a taken name, hashed the password, then inserted, with nothing in the schema enforcing uniqueness. Concurrent sign-ups could create two accounts with one name, after which login, password reset, proxy login and admin lookups by username picked between them arbitrarily. Add a unique index on users.username for every dialect. Existing duplicates are renamed (later rows get a -<id> suffix, the oldest keeps the name) rather than deleted. Registration and admin user creation now return the same 409 when the insert loses the race. * fix: avoid username collisions during migration * fix: don't auto-enable synced plugins signed only by a server-sent key (#1623) * fix: don't auto-enable synced plugins signed only by a server-sent key Registry keys a linked server sends still let its plugins load on the desktop, but no longer count as a signer for switching them on or copying their grants. Keys the desktop added itself keep their trust. * fix: enforce local plugin trust across remote source labels * fix: require positive local trust for synced plugin keys * fix(desktop): harden external editor and session cookie IPC (#1627) * fix(desktop): stop the renderer choosing the external editor binary or reading the session cookie open-external-editor now launches only the editor saved from a file dialog and refuses to hand executable file types to the OS opener. The unused get-session-cookie and wait-session-cookie channels, which returned the httpOnly jwt, are removed. * fix: validate setting keys before editor authorization * fix(sidebar): sort hosts by IP address numerically (#1629) * fix(desktop): find spawn-helper in universal macOS builds (#1630) The universal build ships app-arm64.asar and app-x64.asar instead of app.asar, so node-pty's helper path rewrite never pointed at the unpacked copy and every local terminal failed with posix_spawnp failed. * fix(sync): send shared hosts with text columns in their stored form (#1631) resolveHostById turns forceKeyboardInteractive into a boolean, and the shared-host export passed it on as is. A desktop could not bind the boolean into the text column, so every shared host failed to apply. * fix: drop ssh_data.vault_profile_id so removing the vault plugin keeps hosts writable (#1633) The vault plugin renames vault_profiles to p_vault_profiles, and SQLite rewrites ssh_data's foreign key to follow it. Uninstalling the plugin then dropped p_vault_profiles and left ssh_data pointing at a missing table, so creating, cloning and deleting hosts failed with "no such table: main.p_vault_profiles". Postgres and MySQL refused the uninstall instead. The column was already copied into the vault plugin's host settings by 2.9, so retire it on every engine. The SQLite boot drop also repairs databases already in the broken state; MySQL drops the column's foreign key first. * fix(sync): let a linked desktop enable mirrored plugins it does not trust on its own (#1632) * fix(sync): let a linked desktop enable mirrored plugins it does not trust on its own * fix(sync): switch off an untrusted mirrored plugin when the server updates it * fix: require local consent for mirrored plugin activation * docs: describe consent fields on the plugin state endpoint * fix(i18n): keep Indonesian technical terms consistent (#1636) Use the English terms Indonesian users know for tunnel, snippet, deploy, file manager, remote desktop, jump host, passphrase, sidebar, toolbar, endpoint, browser and SSH agent, instead of mixing literal translations (terowongan, cuplikan, terapkan, bilah sisi, titik akhir, ...) with the English words. Match the split shortcuts to the split screen menu. Also fix the user data export description, which said secrets are encrypted while the English says they are decrypted. * fix(settings): leave user manage view when switching admin sections (#1649) The admin panel stays mounted across Settings pages, so an open user manage view kept replacing every other admin section until Back to users was clicked. Reset it whenever the selected section changes. * fix(sync): don't delete a local row when the server can't send its copy (#1650) * fix(sync): don't delete a local row when the server can't send its copy A push conflict on a live record whose server row failed to serialize came back as row: null, deleted: false, and the desktop treated that as a delete. The server now rejects that op as unavailable, the desktop never deletes on a conflict without a row, and serialization failures are logged. * fix(sync): retry temporarily unavailable records * fix: smooth host editor jumps to lower sections * chore: add changelog entries for 26.10.2 fixes * fix: stop building ssh2 native crypto in the docker image (#1644) * chore: test that an update keeps a changed auth type (#1601) * feat: option to hide the sidebar after opening a host (#1652) * feat: sort the dashboard host status card (Plugin-Host-Metrics#6) * fix: let the hover side menu overlay content instead of resizing it (Plugin-Remote-Desktop#2) * fix: say the server is down and keep retrying instead of a database error (#1637) * fix: show why a client tunnel failed to start (Plugin-Tunnels#2) * fix(sdk): skip comment-only chunks when splitting migrations * feat: setting to let the hover side menu push content again * fix: use the vite proxy for plugin sockets on any dev port * feat(sdk): let a plugin raise its public route rate limit * chore: update translations * chore: add the overview video to the readme * chore: update the overview video and add a play button to its thumbnail * feat: plugin builds bundle worker entries and import wasm and fonts as bytes * feat: plugin packs include LICENSE and NOTICE * chore: drop guacd from compose files and dev runner * chore: update remote desktop origin comment for the built-in engine * fix: show plugin names and descriptions in the UI language (#1658) * fix: show plugin names and descriptions in the UI language Read plugin.name and plugin.description from each plugin's own locale namespace, falling back to the manifest, everywhere core shows a plugin's name: the Plugins manager, onboarding picker, host editor tabs and sections, host filters and bulk actions, beta updates, interface presets and plugin crash/loading notices. * docs(sdk): document plugin.name and plugin.description locale keys --------- Co-authored-by: ZacharyZcR <zkl205305@gmail.com> * fix(hosts): reject or infer a missing authType on host create (#1664) Creating an SSH host through the API without authType hit the NOT NULL auth_type column and came back as a 500. The create route now infers the type from the credential, key or password in the body, falls back to the host defaults, and otherwise answers 400. A non-string authType is a 400 on create and update. * chore: changelog for merged plugin name and host auth type PRs * fix: move macOS split pane navigation to Cmd+Option+Arrow * fix: pick a free port for the desktop backend when 30001 is taken (#1663) * feat: build the Windows desktop app for ARM64 (#1615) * fix(sync): keep the changes cursor within the 32-bit seq column (#1665) The desktop learned the server's entity types by asking for changes after Number.MAX_SAFE_INTEGER. sync_records.seq is a 32-bit integer on Postgres, which rejects that bound value, so every pass needing the probe failed with 22003 out of range. The server now clamps the cursor to the largest seq the column holds and answers 400 for a cursor or limit that is not a non-negative integer. The desktop asks for a one-row page from its saved cursor instead. * fix(audit): coalesce identical plugin routine audits so they cannot flush the log (#1667) Successful plugin_as_user and plugin_service_* entries written by a plugin with the same user, action, resource and details are recorded once per 10 minutes. Failures and every other action are still written each time. * feat(plugins): publish host.created when a host is added (#1668) Plugins that keep an inventory of hosts had no way to hear about a new one short of polling. Core now publishes host.created with the same { hostId, userId } payload as host.updated wherever a host row is created: the host create route, ctx.hosts.create, JSON and SSH config bulk import, database file import, and sync writing a host it did not have yet. * fix: show the login for signed-out full-screen view links and return to them (#1669) A ?view= link opened without a session spun forever: the gate rendered the bare view when the session check failed, so the plugin runtime never started and the view never registered. A regular browser now keeps the link in sessionStorage, shows the normal login and opens the link again after any login, including redirect logins. Only same-origin paths with a view are restored. The desktop app, embedded sign-in frames and guest views keep their current behavior. * fix(desktop): apply linked server proxy headers and certificate exception to WebSockets (#1670) * fix(desktop): send linked server proxy headers on WebSocket upgrades isLinkedOrigin compared the request origin with the link's http(s) origin, so the terminal WebSocket (wss://host/...) never matched and its upgrade went out without the proxy headers and basic auth. Behind a forward-auth proxy that upgrade was redirected to the login and the terminal closed with "connection closed unexpectedly". ws and wss now count as http and https for the comparison, the same mapping the WebSocket handshake itself uses, with host and port still matched exactly. * fix(desktop): allow a linked server's self-signed certificate for its WebSockets isInvalidCertificateAllowedForUrl compared the URL with a local getOrigin copy, so wss://host never matched the link's https://host origin and an allowed self-signed certificate did not cover the terminal and tunnel sockets. It now uses linkedServer.isLinkedOrigin, which maps ws and wss the same way as the proxy headers, and the local copy is removed. * feat(sdk): let plugins mint a short-lived user session and read a user's locale (#1666) ctx.auth.issueUserToken(userId, { purpose, ttlSeconds }) gives background work a session for calling Termix's own API as an existing user. It needs users:impersonate, defaults to 300s and is capped at 900s, is stored as a normal session row marked as plugin-issued, and every issue is audited. Such sessions are refused on routes that change the user's password, second factors, API keys or linked logins. ctx.users.getLocale(userId) reads the user's UI language under users:read. SDK 1.0.11, plugin API 1.3.0. * chore: changelog for merged sync, audit, event and desktop PRs * feat: add shell.rightEdge slot so plugin panels can push the page over * chore: pin bundled plugins to the latest releases * chore: lint, format, and bump version to 26.10.2 --------- Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com> Co-authored-by: Ferdina Kusumah <19812460+FerdinaKusumah@users.noreply.github.com> Co-authored-by: ZacharyZcR <zkl205305@gmail.com> Co-authored-by: Lukas <80832688+0skater0@users.noreply.github.com>
2441 lines
119 KiB
JSON
2441 lines
119 KiB
JSON
{
|
||
"connection": {
|
||
"retryingIn": "将在 {{seconds}} 秒后重试({{attempt}}/{{max}})",
|
||
"retryingNow": "正在重试...({{attempt}}/{{max}})",
|
||
"reconnect": "重新连接",
|
||
"close": "关闭",
|
||
"failed": "无法连接",
|
||
"failedRetrying": "连接失败,正在重试",
|
||
"retryNow": "立即重试"
|
||
},
|
||
"credentials": {
|
||
"folders": "文件夹",
|
||
"folder": "文件夹",
|
||
"password": "密码",
|
||
"key": "密钥",
|
||
"sshPrivateKey": "SSH 私钥",
|
||
"upload": "上传",
|
||
"keyPassword": "密钥密码",
|
||
"sshKey": "SSH 密钥",
|
||
"uploadPrivateKeyFile": "上传私钥文件",
|
||
"searchCredentials": "搜索凭据...",
|
||
"addCredential": "添加凭据",
|
||
"caCertificate": "CA 证书 (-cert.pub)",
|
||
"caCertificateDescription": "可选:上传或粘贴 CA 签名的证书文件(例如 id_ed25519-cert.pub)。当您的 SSH 服务器使用基于证书的授权时,此项为必填。",
|
||
"uploadCertFile": "上传 -cert.pub 文件",
|
||
"clearCert": "清除",
|
||
"certLoaded": "证书已加载",
|
||
"certPublicKeyLabel": "CA 证书",
|
||
"certTypeLabel": "证书类型",
|
||
"pasteOrUploadCert": "粘贴或上传 -cert.pub 证书...",
|
||
"hasCaCert": "拥有 CA 证书",
|
||
"noCaCert": "无 CA 证书",
|
||
"noPublicKeyAvailable": "没有可用的公钥。请先打开凭据编辑器。",
|
||
"deployCommandCopied": "部署命令已复制",
|
||
"sortCredentials": "排序凭据",
|
||
"sortDefault": "默认排序",
|
||
"sortNameAsc": "名称(A → Z)",
|
||
"sortNameDesc": "名称(Z → A)",
|
||
"sortUsernameAsc": "用户名(A → Z)",
|
||
"sortUsernameDesc": "用户名(Z → A)",
|
||
"filterCredentials": "筛选凭据",
|
||
"filterClearAll": "清除筛选条件",
|
||
"filterTypeGroup": "类型",
|
||
"filterTypePassword": "密码",
|
||
"filterTypeKey": "SSH 密钥",
|
||
"filterTagsGroup": "标签",
|
||
"copyDeployCommand": "复制部署命令",
|
||
"cloneCredentialAction": "克隆凭据",
|
||
"clonedCredential": "已克隆 {{name}}",
|
||
"clonedCredentialName": "{{name}}(副本)",
|
||
"shareCredentialAction": "共享凭据",
|
||
"sharedBadge": "已共享",
|
||
"sharedBy": "由 {{owner}} 共享",
|
||
"share": {
|
||
"title": "共享“{{name}}”",
|
||
"description": "接收者将获得加密后的凭据副本。每当凭据更改时,副本会自动更新;撤销共享后,副本将被移除。",
|
||
"levelUse": "使用",
|
||
"levelManage": "管理",
|
||
"levelUseDesc": "使用:将凭据附加到主机并连接。密钥本身保持隐藏。",
|
||
"levelManageDesc": "管理:还可以编辑凭据并将其共享给其他人。",
|
||
"noAccessEntries": "此凭据尚未共享",
|
||
"accessRevoked": "访问权限已撤销",
|
||
"shared": "凭据已共享"
|
||
},
|
||
"deleteCredentialAction": "删除凭据",
|
||
"editCredentialAction": "编辑凭据",
|
||
"failedToCloneCredential": "克隆凭据失败",
|
||
"failedToDeleteCredential": "删除凭据失败",
|
||
"keyBadge": "密钥",
|
||
"passwordBadge": "密码",
|
||
"renameFolder": "重命名文件夹",
|
||
"deleteFolder": "删除文件夹",
|
||
"deleteCredentialConfirm": "确定要删除凭据“{{name}}”吗?",
|
||
"deletedCredential": "已删除 {{name}}",
|
||
"deploySSHKeyTitle": "将密钥部署到主机",
|
||
"loadingCredentials": "正在加载凭据...",
|
||
"noCredentialsFound": "未找到凭据",
|
||
"noCredentialsMatchSearch": "没有凭据符合您的搜索条件",
|
||
"addCredentialBtn": "添加凭据",
|
||
"failedToReorder": "重新排序凭据失败",
|
||
"failedToMoveCredential": "移动凭据失败",
|
||
"sortManual": "手动(拖拽排序)",
|
||
"customizeSidebar": "自定义侧边栏",
|
||
"customizeSidebarDescription": "选择凭据列表的外观和行为。",
|
||
"customizeDensityTitle": "密度",
|
||
"densityComfortableDesc": "每行一个凭据,显示更多详细信息。",
|
||
"densityCompactDesc": "每行一个凭据,适合长列表。",
|
||
"displayDensityComfortable": "舒适",
|
||
"displayDensityCompact": "紧凑",
|
||
"customizeBehaviorTitle": "行为",
|
||
"showCredentialTags": "显示标签",
|
||
"showCredentialTagsDesc": "在凭据列表中显示标签",
|
||
"rowDetailsTitle": "行详细信息",
|
||
"rowDetailsDesc": "选择每个凭据显示的内容。",
|
||
"showUsername": "用户名",
|
||
"showUsernameDesc": "在凭据名称下方显示用户名。",
|
||
"showUsageCount": "主机数量",
|
||
"showUsageCountDesc": "显示使用该凭据的主机数量。",
|
||
"showTypeBadge": "类型徽章",
|
||
"showTypeBadgeDesc": "显示密钥或密码徽章。",
|
||
"showPinIcon": "置顶图标",
|
||
"showPinIconDesc": "在已置顶的凭据旁边显示置顶图标。",
|
||
"showSharedBadge": "共享徽章",
|
||
"showSharedBadgeDesc": "在共享给您的凭据上显示徽章。",
|
||
"actionsVisibility": "凭据操作",
|
||
"actionsVisibilityDesc": "每个凭据上的连接和管理按钮何时显示",
|
||
"actionsAlways": "始终可见",
|
||
"actionsOnly": "仅显示连接,其余点击后显示",
|
||
"actionsHover": "悬停时显示",
|
||
"actionsClick": "点击时显示",
|
||
"customizeSortHint": "排序顺序保存在工具栏的排序菜单中。",
|
||
"expandActions": "展开操作",
|
||
"collapseActions": "折叠操作",
|
||
"backToHosts": "返回主机",
|
||
"backToCredentials": "返回凭据",
|
||
"searchCredentialsPlaceholder": "搜索凭据...",
|
||
"deployDialogTitle": "部署 SSH 密钥",
|
||
"deployDialogDesc": "将 {{name}} 部署到主机的 authorized_keys。",
|
||
"targetHostLabel": "目标主机",
|
||
"selectHostOption": "选择一台主机...",
|
||
"deployingBtn": "正在部署...",
|
||
"deployBtn": "部署",
|
||
"keyDeployedSuccess": "密钥部署成功",
|
||
"failedToDeployKey": "部署密钥失败",
|
||
"folderRenamedTo": "文件夹已重命名为“{{name}}”",
|
||
"failedToRenameFolder": "重命名文件夹失败",
|
||
"arrangeUnlockedSwitchedToManual": "已切换为手动排序,以便保留您的顺序",
|
||
"arrangeUnlocked": "解锁以拖拽重新排序"
|
||
},
|
||
"versionCheck": {
|
||
"updateLinkLabel": "有可用更新。在 GitHub 上查看发行说明"
|
||
},
|
||
"common": {
|
||
"scrollTabsLeft": "向左滚动标签页",
|
||
"scrollTabsRight": "向右滚动标签页",
|
||
"close": "关闭",
|
||
"minimize": "最小化",
|
||
"online": "在线",
|
||
"offline": "离线",
|
||
"unknown": "未知",
|
||
"continue": "继续",
|
||
"error": "错误",
|
||
"unsavedChanges": "未保存的更改",
|
||
"more": "更多",
|
||
"loading": "加载中...",
|
||
"host": "主机",
|
||
"selectHost": "选择主机...",
|
||
"noHostConfigured": "未配置主机",
|
||
"optional": "可选",
|
||
"connect": "连接",
|
||
"copied": "已复制",
|
||
"connecting": "正在连接...",
|
||
"openInNewTab": "在新标签页中打开",
|
||
"cancel": "取消",
|
||
"username": "用户名",
|
||
"login": "登录",
|
||
"logout": "登出",
|
||
"register": "注册",
|
||
"password": "密码",
|
||
"confirmPassword": "确认密码",
|
||
"back": "返回",
|
||
"save": "保存",
|
||
"saving": "正在保存...",
|
||
"delete": "删除",
|
||
"rename": "重命名",
|
||
"edit": "编辑",
|
||
"confirm": "确认",
|
||
"next": "下一步",
|
||
"previous": "上一步",
|
||
"refresh": "刷新",
|
||
"language": "语言",
|
||
"backendReconnected": "服务器连接已恢复",
|
||
"connectionDegraded": "服务器连接丢失,正在恢复…",
|
||
"reload": "重新加载",
|
||
"create": "创建",
|
||
"copy": "复制",
|
||
"copyFailed": "复制到剪贴板失败",
|
||
"maximize": "最大化",
|
||
"restore": "还原",
|
||
"remove": "移除",
|
||
"add": "添加",
|
||
"update": "更新",
|
||
"noResults": "未找到结果",
|
||
"sidebar": "侧边栏",
|
||
"mobileSidebarDescription": "显示移动端侧边栏。",
|
||
"toggleSidebar": "切换侧边栏",
|
||
"search": "搜索...",
|
||
"new": "新建",
|
||
"docs": "文档"
|
||
},
|
||
"onboarding": {
|
||
"stepCounter": "第 {{current}} 步,共 {{total}} 步",
|
||
"stageLabel": "Termix 设置",
|
||
"setupHeading": "设置您的工作区",
|
||
"partialHeading": "还有几项新内容需要设置",
|
||
"signOut": "退出登录",
|
||
"skipPartial": "暂不设置",
|
||
"skip": "跳过设置",
|
||
"next": "下一步",
|
||
"finish": "完成",
|
||
"pluginsTitle": "选择插件",
|
||
"pluginsIntro": "选择要保留的插件。推荐的插件涵盖了大多数用户的需求。",
|
||
"pluginsUpgradeNote": "您当前使用的所有内容都将保持不变。关闭或删除您不需要的内容。",
|
||
"pluginsRemoveNote": "设置为“移除”的插件将在您继续操作时从此服务器删除,包括其数据。您可以随时从“插件”选项卡重新安装它们(这需要网络连接)。选择“关闭”以保留插件但禁用它。",
|
||
"pluginsUseRecommended": "推荐",
|
||
"pluginsEnableAll": "全部开启",
|
||
"pluginsDisableAll": "全部关闭",
|
||
"pluginsCounts": "{{enabled}} 个已开启,{{disabled}} 个已关闭,{{removed}} 个待移除",
|
||
"pluginsRecommended": "推荐",
|
||
"pluginsKeptBecause": "因 {{names}} 需要而保留",
|
||
"pluginsChoice_enabled": "开启",
|
||
"pluginsChoice_disabled": "关闭",
|
||
"pluginsChoice_remove": "移除",
|
||
"pluginsConsentTitle": "帮助改进 Termix",
|
||
"pluginsConsentNote": "您可以随时从“插件”选项卡关闭此功能。",
|
||
"pluginsApplying": "正在应用您的选择",
|
||
"pluginsSomeFailed": "部分插件无法更改。您可以稍后从“插件”选项卡修复它们。按“下一步”继续。",
|
||
"pluginsApplyFailed": "无法保存您的选择。请重试,或继续操作并稍后从“插件”选项卡更改它们。",
|
||
"pluginsLoadFailed": "无法加载插件列表。您可以稍后从“插件”选项卡选择插件。",
|
||
"presetTitle": "您希望屏幕上显示多少内容?",
|
||
"presetIntro": "选择屏幕上显示的内容量。",
|
||
"presetChangeLater": "您可以稍后在“设置”中的“界面”下切换预设或更改任何单个设置。",
|
||
"appearanceTitle": "个性化设置",
|
||
"appearanceIntro": "选择主题、强调色、字体和语言。更改会立即生效,您可以稍后在“设置”中更改它们。",
|
||
"securityTitle": "保护您的账户安全",
|
||
"securityIntro": "为您的账户添加通行密钥或身份验证器应用。您也可以稍后在“设置”中的“安全”下执行此操作。",
|
||
"desktopTitle": "您希望如何使用 Termix?",
|
||
"desktopBody": "您可以随时从侧边栏的“同步”中更改此设置。",
|
||
"desktopLocalTitle": "仅在此设备上",
|
||
"desktopLocalBody": "所有内容都存储在此处。无需设置。",
|
||
"desktopLinkTitle": "与我的 Termix 服务器关联",
|
||
"desktopLinkBody": "登录到您的服务器,以便在每个设备上使用相同的主机和设置。",
|
||
"desktopLinked": "已关联到 {{server}}",
|
||
"pluginsDocsLink": "阅读每个插件的说明"
|
||
},
|
||
"desktopUpdates": {
|
||
"title": "桌面应用",
|
||
"mode": "更新",
|
||
"modeHint": "此应用如何获取新版本。",
|
||
"manualModeHint": "此副本无法自动更新,因此 Termix 仅在新版本发布时通知您。",
|
||
"modeAutomatic": "自动",
|
||
"modePrompt": "先询问",
|
||
"modeNever": "从不",
|
||
"automaticBody": "在后台下载新版本,并在您重启时安装。",
|
||
"promptBody": "有新版本时通知我,由我决定何时下载。",
|
||
"neverBody": "不检查更新。您仍可在设置中手动检查。",
|
||
"onboardingTitle": "应用更新",
|
||
"onboardingBody": "桌面应用现在可以自动更新。请选择您希望接收新版本的方式。您稍后可以在“设置”>“更新”中更改此选项。",
|
||
"onboardingManual": "此应用副本的安装方式不支持自动更新,因此 Termix 会在新版本发布时通知您,并提供下载链接。",
|
||
"status": "版本 {{version}}",
|
||
"statusIdle": "尚未检查",
|
||
"statusChecking": "正在检查更新",
|
||
"statusAvailable": "版本 {{version}} 可用",
|
||
"statusDownloading": "正在下载 {{version}} ({{progress}}%)",
|
||
"statusReady": "版本 {{version}} 已就绪。重启即可安装。",
|
||
"statusUpToDate": "您已拥有最新版本",
|
||
"statusError": "无法检查更新。请稍后重试。",
|
||
"checkNow": "立即检查",
|
||
"download": "下载",
|
||
"restart": "立即重启",
|
||
"later": "稍后",
|
||
"available": "Termix {{version}} 可用",
|
||
"manualHint": "从发布页面下载并覆盖安装当前版本。",
|
||
"ready": "Termix {{version}} 已准备好安装",
|
||
"readyHint": "下次重启 Termix 时将进行安装。"
|
||
},
|
||
"nav": {
|
||
"home": "主页",
|
||
"terminal": "终端",
|
||
"close": "关闭",
|
||
"hostTabTitle": "{{username}}@{{ip}}:{{port}}",
|
||
"copyPassword": "复制密码",
|
||
"copySudoPassword": "复制 Sudo 密码",
|
||
"passwordCopied": "密码已复制到剪贴板",
|
||
"failedToCopyPassword": "复制密码失败",
|
||
"refreshTab": "刷新连接",
|
||
"renameTab": "重命名标签页",
|
||
"dashboard": "仪表板",
|
||
"quickConnect": "快速连接",
|
||
"openAsTabHint": "Ctrl+点击或中键点击以标签页形式打开",
|
||
"openAsTab": "以标签页形式打开",
|
||
"openInRightDock": "在右侧停靠栏中打开",
|
||
"closeRightDock": "关闭右侧停靠栏",
|
||
"toggleRightDock": "切换右侧停靠栏",
|
||
"hosts": "主机",
|
||
"credentials": "凭据",
|
||
"connections": "连接",
|
||
"keepSideMenuOpen": "保持菜单展开",
|
||
"collapseSideMenu": "折叠菜单",
|
||
"roleAdministrator": "管理员",
|
||
"roleUser": "用户",
|
||
"sync": "同步",
|
||
"reconnectDisconnectedTerminals": "重新连接所有已断开的终端",
|
||
"reconnectingTerminals_other": "正在重新连接 {{count}} 个终端",
|
||
"noDisconnectedTerminals": "没有可重新连接的已断开终端",
|
||
"reconnectTerminalsFailed_other": "无法开始重新连接 {{count}} 个终端",
|
||
"fullscreenUnsupported": "此浏览器不支持全屏",
|
||
"fullscreenFailed": "无法切换全屏",
|
||
"resetSidebarWidth": "重置宽度",
|
||
"collapseSidebar": "折叠侧边栏",
|
||
"openSidebar": "打开侧边栏",
|
||
"confirmCloseHost": "关闭 {{host}}?",
|
||
"enterFullscreen": "进入全屏 (Ctrl+Shift+F)",
|
||
"exitFullscreen": "退出全屏 (Ctrl+Shift+F)",
|
||
"group": {
|
||
"objects": "我的",
|
||
"tools": "工具",
|
||
"system": "系统"
|
||
},
|
||
"searchEverything": "搜索主机、标签页和操作",
|
||
"search": "搜索",
|
||
"hiddenCount_other": "{{count}} 个已隐藏",
|
||
"showInRail": "在侧边栏中显示",
|
||
"moveUp": "上移",
|
||
"moveDown": "下移",
|
||
"resetRailOrder": "重置顺序",
|
||
"hideFromRail": "从侧边栏隐藏",
|
||
"openSettings": "打开设置",
|
||
"settings": "设置",
|
||
"manage": "管理",
|
||
"mobileNavigation": "导航",
|
||
"plugins": "插件"
|
||
},
|
||
"hosts": {
|
||
"hosts": "主机",
|
||
"noHosts": "无 SSH 主机",
|
||
"retry": "重试",
|
||
"refresh": "刷新",
|
||
"optional": "可选",
|
||
"downloadSample": "下载示例",
|
||
"failedToDeleteHost": "删除 {{name}} 失败",
|
||
"importSkipExisting": "导入(跳过已存在项)",
|
||
"importSSHConfig": "从 SSH 配置导入",
|
||
"connectionDetails": "连接详情",
|
||
"ssh": "SSH",
|
||
"telnet": "Telnet",
|
||
"port": "端口",
|
||
"username": "用户名",
|
||
"folder": "文件夹",
|
||
"tags": "标签",
|
||
"pin": "置顶",
|
||
"addHost": "添加主机",
|
||
"editHost": "编辑主机",
|
||
"cloneHost": "克隆主机",
|
||
"defaultPath": "默认路径",
|
||
"connection": "连接",
|
||
"upload": "上传",
|
||
"authentication": "身份验证",
|
||
"password": "密码",
|
||
"passwordSaved": "密码已保存,输入以更改",
|
||
"key": "密钥",
|
||
"credential": "凭据",
|
||
"sshPrivateKey": "SSH 私钥",
|
||
"keyType": "密钥类型",
|
||
"uploadFile": "上传文件",
|
||
"tabGeneral": "常规",
|
||
"tabSsh": "SSH",
|
||
"tabStats": "主机指标",
|
||
"tabSharing": "共享",
|
||
"tabAuthentication": "身份验证",
|
||
"terminal": "终端",
|
||
"tunnel": "隧道",
|
||
"serverStats": "主机指标",
|
||
"status": {
|
||
"online": "在线",
|
||
"offline": "离线",
|
||
"checking": "正在检查",
|
||
"monitoringDisabled": "状态检查已关闭",
|
||
"label": "状态"
|
||
},
|
||
"folderRenamed": "文件夹“{{oldName}}”已成功重命名为“{{newName}}”",
|
||
"failedToRenameFolder": "重命名文件夹失败",
|
||
"unsavedChangesDescription": "您的主机更改尚未保存。是否放弃更改?",
|
||
"keepEditing": "继续编辑",
|
||
"discardChanges": "放弃更改",
|
||
"movedToFolder_other": "已将 {{count}} 个主机移动到“{{folder}}”",
|
||
"editHostTooltip": "编辑主机",
|
||
"behavior": "行为",
|
||
"scrollbackBuffer": "回滚缓冲区",
|
||
"sshAgentForwarding": "SSH 代理转发",
|
||
"selectSnippet": "选择代码片段",
|
||
"forceKeyboardInteractive": "强制使用键盘交互",
|
||
"overrideCredentialUsername": "覆盖凭据用户名",
|
||
"overrideCredentialUsernameDesc": "使用上述指定的用户名,而不是凭据中的用户名",
|
||
"externalUsernameHint": "使用 $external.username 来填写您通过 SSO 或 LDAP 登录时使用的名称。",
|
||
"jumpHostChain": "跳板主机链",
|
||
"portKnocking": "端口敲门",
|
||
"addKnock": "添加端口",
|
||
"addProxyNode": "添加节点",
|
||
"proxyNode": "代理节点",
|
||
"proxyType": "代理类型",
|
||
"sudoPassword": "Sudo 密码",
|
||
"keepaliveInterval": "保活间隔(毫秒)",
|
||
"environmentVariables": "环境变量",
|
||
"addVariable": "添加变量",
|
||
"docker": "Docker",
|
||
"failedToConnect": "无法连接到控制台",
|
||
"connect": "连接",
|
||
"disconnect": "断开连接",
|
||
"start": "启动",
|
||
"enableStatusCheck": "启用状态检查",
|
||
"enableMetrics": "启用指标",
|
||
"bulkUpdateFailed": "批量更新失败",
|
||
"selectAll": "全选",
|
||
"deselectAll": "取消全选",
|
||
"protocols": "协议",
|
||
"secureShell": "安全 Shell",
|
||
"addressIp": "地址 / IP",
|
||
"friendlyName": "显示名称",
|
||
"folderAndAdvanced": "文件夹与高级设置",
|
||
"showAdvancedSettings": "显示高级设置",
|
||
"hideAdvancedSettings": "隐藏高级设置",
|
||
"privateNotes": "私有备注",
|
||
"privateNotesPlaceholder": "关于此服务器的详细信息...",
|
||
"pinToTop": "置顶",
|
||
"pinToTopDesc": "始终将此主机显示在列表顶部",
|
||
"portKnockingSequence": "端口敲门序列",
|
||
"addKnockBtn": "添加敲门",
|
||
"noPortKnocking": "未配置端口敲门。",
|
||
"knockPort": "敲门端口",
|
||
"protocol": "协议",
|
||
"delayAfterMs": "延迟(毫秒)",
|
||
"useSocks5Proxy": "使用 SOCKS5 代理",
|
||
"useSocks5ProxyDesc": "通过代理服务器路由连接",
|
||
"connectionOrigin": "连接来源",
|
||
"connectionOriginDesc": "此主机的连接发起位置。将覆盖桌面应用的全局默认设置。",
|
||
"connectionOriginDefault": "使用默认值",
|
||
"connectionOriginLocal": "此设备(本地网络)",
|
||
"connectionOriginRemote": "远程服务器",
|
||
"proxyHost": "代理主机",
|
||
"proxyPort": "代理端口",
|
||
"proxyUsername": "代理用户名",
|
||
"proxyPassword": "代理密码",
|
||
"proxySingleMode": "单一代理",
|
||
"proxyChainMode": "代理链",
|
||
"you": "您",
|
||
"jumpHostChainLabel": "跳板主机链",
|
||
"addJumpBtn": "添加跳板",
|
||
"noJumpHosts": "未配置跳板主机。",
|
||
"selectAServer": "选择服务器...",
|
||
"sshPort": "SSH 端口",
|
||
"authMethod": "认证方式",
|
||
"authenticationMethod": "认证方式",
|
||
"authenticationMethodDesc": "选择 Termix 用于验证此 SSH 连接的一种方法。不会自动尝试其他方法。",
|
||
"storedCredential": "已保存的凭据",
|
||
"selectACredential": "选择凭据...",
|
||
"keyTypeLabel": "密钥类型",
|
||
"keyTypeAuto": "自动检测",
|
||
"keyPasteTab": "粘贴",
|
||
"keyUploadTab": "上传",
|
||
"keyFileLoaded": "密钥文件已加载",
|
||
"keyUploadClick": "点击上传 .pem / .key / .ppk",
|
||
"clearKey": "清除密钥",
|
||
"keySaved": "SSH 密钥已保存",
|
||
"keyReplaceNotice": "在下方粘贴新密钥以替换",
|
||
"keyPassphraseSaved": "密码短语已保存,输入以更改",
|
||
"replaceKey": "替换密钥",
|
||
"docsLink": "查看文档",
|
||
"agentLabel": "SSH Agent",
|
||
"agentDesc": "使用在 Termix 服务器上运行的 SSH Agent 进行认证(Bitwarden、1Password、gpg-agent、KeeAgent、ssh-agent)。Agent 必须在托管 Termix 的机器上运行。",
|
||
"agentAuthenticationDesc": "使用 SSH Agent 中的密钥验证此连接。留空套接字路径以使用 SSH_AUTH_SOCK。",
|
||
"agentSocketPathLabel": "Agent 套接字路径",
|
||
"agentSocketPathPlaceholder": "留空以使用 SSH_AUTH_SOCK",
|
||
"agentSocketPathHint": "留空以从 SSH_AUTH_SOCK 环境变量自动检测,或输入自定义套接字路径(例如 /run/user/1000/gnupg/S.gpg-agent.ssh)。",
|
||
"agentIdentityLabel": "Agent 标识(公钥)",
|
||
"agentIdentityPlaceholder": "留空以尝试 Agent 中的所有密钥",
|
||
"agentIdentityHint": "粘贴公钥(例如 ssh-ed25519 AAAA...)以仅提供该密钥。当 Agent 持有大量密钥时推荐此操作,以避免超过服务器的 MaxAuthTries 限制。",
|
||
"shareSshAuthLabel": "共享 SSH 认证",
|
||
"shareSshAuthDesc": "向接收者提供此主机 SSH 认证的加密副本。接收者的个人凭据仍具有优先权。",
|
||
"forceKeyboardInteractiveLabel": "强制键盘交互",
|
||
"forceKeyboardInteractiveShortDesc": "即使存在密钥,也强制手动输入密码",
|
||
"allowLegacyAlgorithmsLabel": "允许旧版算法",
|
||
"allowLegacyAlgorithmsDesc": "启用已弃用的 SSH 算法(ssh-dss、ssh-rsa、diffie-hellman-group1-sha1、hmac-md5、3des-cbc),以连接无法升级的旧设备。",
|
||
"insecure": "不安全",
|
||
"syntaxHighlightingCategories": "高亮类别",
|
||
"syntaxHighlightingCategoriesDesc": "选择要着色显示的内容类型",
|
||
"sshAgentForwardingLabel": "SSH 代理转发",
|
||
"sshAgentForwardingShortDesc": "允许此远程主机使用您的本地 SSH 代理进行后续连接。代理身份验证不需要此功能。",
|
||
"sudoPasswordAutoFillShortDesc": "在提示时自动提供 sudo 密码",
|
||
"sudoPasswordLabel": "Sudo 密码",
|
||
"sudoPasswordSaved": "密码已保存,输入以更改",
|
||
"environmentVariablesLabel": "环境变量",
|
||
"addVariableBtn": "添加变量",
|
||
"noEnvVars": "未配置环境变量。",
|
||
"keepaliveIntervalLabel": "保活间隔(秒)",
|
||
"maxKeepaliveMisses": "最大保活丢失次数",
|
||
"sameHost": "此主机(直接隧道)",
|
||
"statusChecksLabel": "状态检查",
|
||
"enableStatusChecks": "启用状态检查",
|
||
"enableStatusChecksDesc": "检查主机是否可达。活动会话将跳过额外探测。没有活动会话的 SSH 探测可能会触发严格的 Fail2Ban 规则;请在此类主机上禁用状态检查。",
|
||
"useGlobalInterval": "使用全局间隔",
|
||
"useGlobalIntervalDesc": "使用服务器范围的状态检查间隔覆盖",
|
||
"checkIntervalS": "检查间隔(秒)",
|
||
"checkIntervalDesc": "每次连通性 ping 之间的秒数",
|
||
"cpuUsageLabel": "CPU 使用率",
|
||
"cpuUsageDesc": "CPU 百分比、负载平均值、迷你图",
|
||
"memoryLabel": "内存使用率",
|
||
"memoryDesc": "RAM 使用量、交换空间、缓存",
|
||
"storageLabel": "磁盘使用率",
|
||
"storageDesc": "每个挂载点的磁盘使用量",
|
||
"networkLabel": "网络接口",
|
||
"networkDesc": "接口列表和带宽",
|
||
"uptimeLabel": "运行时间",
|
||
"uptimeDesc": "系统运行时间和启动时间",
|
||
"systemInfoLabel": "系统信息",
|
||
"systemInfoDesc": "操作系统、内核、主机名、架构",
|
||
"recentLoginsLabel": "最近登录",
|
||
"recentLoginsDesc": "成功和失败的登录事件",
|
||
"topProcessesLabel": "主要进程",
|
||
"topProcessesDesc": "PID、CPU%、MEM%、命令",
|
||
"listeningPortsLabel": "监听端口",
|
||
"listeningPortsDesc": "带有进程和状态的开放端口",
|
||
"firewallLabel": "防火墙",
|
||
"firewallDesc": "防火墙、AppArmor、SELinux 状态",
|
||
"hostSharedSuccessfully": "主机共享成功",
|
||
"failedToShareHost": "主机共享失败",
|
||
"accessRevoked": "访问权限已撤销",
|
||
"failedToRevokeAccess": "撤销访问权限失败",
|
||
"cancelBtn": "取消",
|
||
"savingBtn": "保存中...",
|
||
"addHostBtn": "添加主机",
|
||
"hostUpdated": "主机已更新",
|
||
"hostCreated": "主机已创建",
|
||
"failedToSave": "保存主机失败",
|
||
"credentialUpdated": "凭据已更新",
|
||
"credentialCreated": "凭据已创建",
|
||
"failedToSaveCredential": "保存凭据失败",
|
||
"credentialNameRequired": "请输入凭据名称",
|
||
"credentialAuthRequired": "添加密码、SSH 密钥或两者",
|
||
"createCredentialFromHostBtn": "创建凭据",
|
||
"createCredentialFromHostTitle": "从主机创建凭据",
|
||
"createCredentialFromHostDesc": "创建一个可重复使用、可共享的凭据条目,并预填此主机当前的用户名、密码和/或 SSH 密钥。",
|
||
"backToHosts": "返回主机列表",
|
||
"pinned": "已置顶",
|
||
"noHostsFound": "未找到主机",
|
||
"tryDifferentTerm": "尝试其他搜索词",
|
||
"addFirstHost": "添加您的第一台主机以开始使用",
|
||
"noCredentialsFound": "未找到凭据",
|
||
"addCredentialBtn": "添加凭据",
|
||
"updateCredentialBtn": "更新凭据",
|
||
"editCredentialAction": "编辑凭据",
|
||
"backToHost": "返回主机",
|
||
"saveCredentialAsNewBtn": "另存为新凭据",
|
||
"saveCredentialAsNewDesc": "使用这些更改创建新凭据并将其分配给此主机。原始凭据保持不变。",
|
||
"credentialSavedAsNew": "已另存为新凭据",
|
||
"failedToSaveCredentialAsNew": "另存为新凭据失败",
|
||
"features": "功能",
|
||
"noFolder": "(无文件夹)",
|
||
"deleteSelected": "删除",
|
||
"exitSelection": "退出选择",
|
||
"importSkip": "导入(跳过已存在)",
|
||
"importOverwrite": "导入(覆盖)",
|
||
"collapseBtn": "折叠",
|
||
"importExportBtn": "导入 / 导出",
|
||
"hostStatusesRefreshed": "主机状态已刷新",
|
||
"failedToRefreshHosts": "刷新主机失败",
|
||
"movedHostTo": "已将 {{host}} 移动到“{{folder}}”",
|
||
"failedToMoveHost": "移动主机失败",
|
||
"deletedFolder": "已删除文件夹“{{name}}”",
|
||
"failedToDeleteFolder": "删除文件夹失败",
|
||
"deleteAllInFolder": "要删除“{{name}}”中的所有主机吗?此操作无法撤销。",
|
||
"folderPickerPlaceholder": "无文件夹",
|
||
"folderPickerSearch": "搜索或创建(使用 / 表示子文件夹)...",
|
||
"folderPickerNone": "无文件夹",
|
||
"folderPickerCreate": "创建“{{path}}”",
|
||
"folderPickerEmpty": "没有匹配的文件夹",
|
||
"parentHost": "父主机",
|
||
"useFolderInstead": "改用文件夹",
|
||
"useParentHostInstead": "改用父主机",
|
||
"parentHostPickerPlaceholder": "无父主机",
|
||
"parentHostPickerSearch": "搜索主机...",
|
||
"parentHostPickerNone": "无父主机",
|
||
"parentHostPickerEmpty": "没有匹配的主机",
|
||
"collapseSubHosts": "折叠子主机",
|
||
"expandSubHosts": "展开子主机",
|
||
"cannotNestUnderDescendant": "无法将主机嵌套在其自身的子主机下",
|
||
"movedToParent_other": "已将 {{count}} 个主机移动到“{{parent}}”下",
|
||
"newFolder": "新建文件夹",
|
||
"createFolderTitle": "创建文件夹",
|
||
"editFolderTitle": "编辑文件夹",
|
||
"folderDialogDescription": "选择名称、颜色和图标。使用 / 来嵌套文件夹。",
|
||
"folderNameLabel": "文件夹名称",
|
||
"folderNamePlaceholder": "例如:Production/Web",
|
||
"folderNestingHint": "使用 / 分隔层级以创建嵌套文件夹。",
|
||
"folderNameDuplicate": "此处已存在同名文件夹。",
|
||
"folderColor": "颜色",
|
||
"folderIcon": "图标",
|
||
"folderCredential": "凭据",
|
||
"folderCredentialNone": "未分配凭据",
|
||
"folderCredentialHint": "此文件夹中使用“存储的凭据”认证但未选择自有凭据的主机将继承此凭据。",
|
||
"folderPreview": "预览",
|
||
"folderNameFallback": "未命名文件夹",
|
||
"createFolderButton": "创建文件夹",
|
||
"saveFolderButton": "保存文件夹",
|
||
"cancel": "取消",
|
||
"iconSearchPlaceholder": "搜索图标...",
|
||
"openAllSessions": "打开所有会话",
|
||
"editFolder": "编辑文件夹",
|
||
"deleteFolder": "删除文件夹",
|
||
"selectFolder": "选中文件夹中的所有主机",
|
||
"deselectFolder": "取消选中文件夹中的所有主机",
|
||
"folderSaved": "文件夹已保存",
|
||
"failedToSaveFolder": "保存文件夹失败",
|
||
"folderDeleted": "已删除文件夹“{{name}}”",
|
||
"deleteFolderConfirm_other": "删除“{{name}}”及其包含的 {{count}} 个主机?此操作无法撤销。",
|
||
"failedToMoveHosts": "移动主机失败",
|
||
"failedToReorder": "重新排序失败",
|
||
"expandAll": "展开所有文件夹",
|
||
"collapseAll": "折叠所有文件夹",
|
||
"moreActions": "更多",
|
||
"groupBy": "分组依据",
|
||
"GroupByFolder": "文件夹",
|
||
"GroupByTag": "标签",
|
||
"GroupByStatus": "状态",
|
||
"GroupByProtocol": "协议",
|
||
"GroupByAuth": "认证类型",
|
||
"groupUngrouped": "未分组",
|
||
"customizeSidebar": "自定义侧边栏",
|
||
"customizeSidebarDescription": "选择主机列表的外观和行为。",
|
||
"customizeDensityTitle": "密度",
|
||
"customizeBehaviorTitle": "行为",
|
||
"connectBarTitle": "连接栏",
|
||
"connectBarDesc": "选择哪些操作以按钮形式显示在主机上。所有操作仍保留在主机的菜单中。",
|
||
"customizeSortHint": "排序顺序和分组位于工具栏中的排序和分组菜单中。",
|
||
"densityComfortableDesc": "每个主机显示更多详细信息:地址、标签和资源使用情况。",
|
||
"densityCompactDesc": "每个主机一行,适用于更长的列表。",
|
||
"display": "显示",
|
||
"displayDensity": "密度",
|
||
"displayDensityComfortable": "舒适",
|
||
"displayDensityCompact": "紧凑",
|
||
"displayShowTags": "显示标签",
|
||
"displayTrayOnClick": "点击时打开操作(而非悬停)",
|
||
"actionsVisibility": "主机操作显示",
|
||
"actionsVisibilityDesc": "选择主机操作何时展开。选择“点击”以恢复以前的点击展开行为。",
|
||
"actionsAlways": "始终可见",
|
||
"actionsOnly": "仅连接,其余点击显示",
|
||
"actionsHover": "悬停时显示",
|
||
"actionsClick": "点击展开/折叠",
|
||
"openOnDoubleClick": "双击打开",
|
||
"openOnDoubleClickDesc": "要求双击打开主机会话,而不是单击",
|
||
"closeOnOpen": "打开后隐藏侧边栏",
|
||
"closeOnOpenDesc": "从侧边栏打开主机后关闭侧边栏",
|
||
"showFolderPaths": "显示文件夹路径",
|
||
"showFolderPathsDesc": "在嵌套子文件夹名称上方显示父文件夹路径。无论哪种方式,子文件夹都会缩进。",
|
||
"rowDetailsTitle": "行详细信息",
|
||
"rowDetailsDesc": "选择每个主机上显示的内容。",
|
||
"showAddress": "地址",
|
||
"showAddressDesc": "在名称下方显示主机地址。",
|
||
"showUsername": "用户名",
|
||
"showUsernameDesc": "在地址之前显示用户名。",
|
||
"showPort": "端口",
|
||
"showPortDesc": "在地址之后显示端口。",
|
||
"showPinIcon": "固定图标",
|
||
"showPinIconDesc": "在已固定的主机旁显示固定图标。",
|
||
"showSharedBadge": "共享徽章",
|
||
"showSharedBadgeDesc": "在共享给您的主机上显示徽章。",
|
||
"showBadges": "插件徽章",
|
||
"showBadgesDesc": "显示插件添加在主机关名旁的徽章。",
|
||
"hostClickBehavior": "点击主机",
|
||
"hostClickBehaviorDesc": "点击已打开标签页的主机时的行为。Ctrl/Cmd 点击、中键点击或“在新标签页中打开”始终会打开新标签页。",
|
||
"hostClickNewTab": "始终打开新标签页",
|
||
"hostClickFocusExisting": "切换到已打开的标签页",
|
||
"hostClickFocusExistingDoubleNew": "单击切换,双击打开新标签页",
|
||
"openInNewTab": "在新标签页中打开",
|
||
"deletedHost": "已删除 {{name}}",
|
||
"copiedToClipboard": "已复制到剪贴板",
|
||
"remoteDesktopUrlCopied": "已复制远程桌面 URL",
|
||
"expandActions": "展开操作",
|
||
"collapseActions": "折叠操作",
|
||
"cloneHostAction": "克隆主机",
|
||
"copyAddress": "复制地址",
|
||
"copyLink": "复制链接",
|
||
"deleteCredentialConfirm": "删除凭据“{{name}}”?",
|
||
"deletedCredential": "已删除 {{name}}",
|
||
"deleteHostsConfirm_other": "删除 {{count}} 个主机?此操作无法撤销。",
|
||
"movedToRoot": "已移至根目录",
|
||
"addTagsPlaceholder": "添加标签...",
|
||
"authDetails": "身份验证详细信息",
|
||
"credType": "类型",
|
||
"generateKeyPairDesc": "生成新的密钥对,私钥和公钥将自动填充。",
|
||
"generatingKey": "正在生成...",
|
||
"generateLabel": "生成 {{label}}",
|
||
"uploadFileBtn": "上传文件",
|
||
"keyPassphraseOptional": "密钥密码短语(可选)",
|
||
"sshPublicKeyOptional": "SSH 公钥(可选)",
|
||
"publicKeyGenerated": "公钥已生成",
|
||
"failedToGeneratePublicKey": "派生公钥失败",
|
||
"publicKeyCopied": "公钥已复制",
|
||
"keyPairGenerated": "{{label}} 密钥对已生成",
|
||
"failedToGenerateKeyPair": "生成密钥对失败",
|
||
"searchHostsPlaceholder": "搜索主机、地址、标签...",
|
||
"refreshBtn": "刷新",
|
||
"addTag": "添加标签...",
|
||
"deleteConfirmBtn": "删除",
|
||
"deleteHostConfirm": "删除“{{name}}”?",
|
||
"enableAtLeastOneProtocol": "请至少启用上述一种协议,以配置身份验证和连接设置。",
|
||
"keyPassphrase": "密钥密码短语",
|
||
"basicInformation": "基本信息",
|
||
"authDetailsSection": "身份验证详细信息",
|
||
"credTypeLabel": "类型",
|
||
"hostsTab": "主机",
|
||
"credentialsTab": "凭据",
|
||
"selectMultiple": "多选",
|
||
"selectHosts": "选择主机",
|
||
"connectionLabel": "连接",
|
||
"authenticationLabel": "身份验证",
|
||
"generateKeyPairTitle": "生成密钥对",
|
||
"generateKeyPairDescription": "生成新的密钥对,私钥和公钥将自动填充。",
|
||
"generateFromPrivateKey": "从私钥生成",
|
||
"refreshBtn2": "刷新",
|
||
"exitSelectionTitle": "退出选择",
|
||
"addHostBtn2": "添加主机",
|
||
"addCredentialBtn2": "添加凭据",
|
||
"checkingHostStatuses": "正在检查主机状态...",
|
||
"pinnedSection": "已置顶",
|
||
"hostsExported": "主机导出成功",
|
||
"export": {
|
||
"menuItem": "导出...",
|
||
"title": "导出主机",
|
||
"scope": "范围",
|
||
"scopeAll": "全部",
|
||
"scopeSelected": "已选",
|
||
"searchHosts": "搜索主机...",
|
||
"include": "包含",
|
||
"groupConnection": "连接",
|
||
"groupCredentials": "凭据",
|
||
"groupNotes": "备注",
|
||
"groupTags": "标签与置顶",
|
||
"groupProxy": "代理",
|
||
"groupJumpHosts": "跳板机",
|
||
"groupFeatureFlags": "插件设置",
|
||
"groupAdvanced": "高级配置",
|
||
"preview": "预览",
|
||
"moreHosts_other": "... 还有 {{count}} 个主机",
|
||
"summary": "{{selected}} / {{total}} 台主机",
|
||
"credentialsIncluded": "包含凭据",
|
||
"credentialsExcluded": "排除凭据",
|
||
"noneSelected": "未选择任何主机",
|
||
"cancel": "取消",
|
||
"confirm": "导出",
|
||
"fetchFailed": "加载用于导出的主机失败",
|
||
"bulkButton": "导出"
|
||
},
|
||
"sampleDownloaded": "示例文件已下载",
|
||
"failedToDeleteCredential2": "删除凭据失败",
|
||
"noFolderOption": "(无文件夹)",
|
||
"nSelected_other": "{{count}} 个已选中",
|
||
"featuresMenu": "插件",
|
||
"moveMenu": "移动",
|
||
"connectSelected": "连接",
|
||
"cancelSelection": "取消",
|
||
"deletedCount_other": "已删除 {{count}} 个主机",
|
||
"failedToDeleteCount_other": "删除 {{count}} 个主机失败",
|
||
"duplicatedHost": "已复制“{{name}}”",
|
||
"failedToDuplicateHost": "复制主机失败",
|
||
"updatedCount_other": "已更新 {{count}} 个主机",
|
||
"friendlyNameLabel": "显示名称",
|
||
"descriptionLabel": "描述",
|
||
"loadingHosts": "正在加载主机...",
|
||
"loadingCredentials": "正在加载凭据...",
|
||
"noHostsYet": "暂无主机",
|
||
"noHostsYetHint": "添加服务器以打开终端、浏览文件和查看指标。",
|
||
"noHostsMatchSearch": "没有主机匹配您的搜索",
|
||
"noHostSelected": "选择一台主机以打开此功能。",
|
||
"searchHosts": "搜索主机...",
|
||
"sortHosts": "排序主机",
|
||
"sortDefault": "默认排序",
|
||
"sortNameAsc": "名称 (A → Z)",
|
||
"sortNameDesc": "名称 (Z → A)",
|
||
"sortIpAsc": "IP 地址 (升序)",
|
||
"sortIpDesc": "IP 地址 (降序)",
|
||
"sortOnlineFirst": "在线优先",
|
||
"sortOfflineFirst": "离线优先",
|
||
"sortManual": "手动 (拖拽排序)",
|
||
"sortPinnedFirst": "置顶优先",
|
||
"filterHosts": "筛选主机",
|
||
"filterClearAll": "清除筛选",
|
||
"filterStatusGroup": "状态",
|
||
"filterOnline": "在线",
|
||
"filterOffline": "离线",
|
||
"filterPinned": "已置顶",
|
||
"filterAuthGroup": "认证类型",
|
||
"filterAuthPassword": "密码",
|
||
"filterAuthKey": "SSH 密钥",
|
||
"filterAuthCredential": "凭据",
|
||
"filterAuthNone": "无",
|
||
"filterProtocolGroup": "协议",
|
||
"filterProtocolSsh": "SSH",
|
||
"filterTagsGroup": "标签",
|
||
"editHostAction": "编辑主机",
|
||
"moreOptions": "更多选项",
|
||
"shareHost": "共享主机",
|
||
"shareHostTitle": "共享:{{name}}",
|
||
"shareFolder": "共享文件夹",
|
||
"shareFolderTitle": "共享文件夹:{{name}}",
|
||
"folderSharedSuccessfully_other": "已共享文件夹中的 {{count}} 个主机",
|
||
"failedToShareFolder": "共享文件夹失败",
|
||
"sharing": {
|
||
"loadError": "加载共享数据失败。请重试。",
|
||
"shareWithSection": "共享给",
|
||
"usersTab": "用户",
|
||
"rolesTab": "角色",
|
||
"searchPlaceholder": "搜索用户或角色...",
|
||
"noMatches": "未找到匹配项",
|
||
"permissionLevelLabel": "权限级别",
|
||
"levels": {
|
||
"connect": {
|
||
"label": "连接",
|
||
"description": "仅限打开会话:终端、远程桌面、文件管理器、隧道和 Docker。无法访问主机配置。"
|
||
},
|
||
"view": {
|
||
"label": "查看",
|
||
"description": "连接,以及查看主机配置。绝不会显示密钥。"
|
||
},
|
||
"edit": {
|
||
"label": "编辑",
|
||
"description": "查看,以及修改非认证类主机设置。所有者的 SSH 认证保持私有且仅限所有者使用。"
|
||
},
|
||
"manage": {
|
||
"label": "管理",
|
||
"description": "编辑,以及将主机共享给他人、更改权限级别和撤销访问权限。"
|
||
}
|
||
},
|
||
"expiryLabel": "访问过期时间",
|
||
"expiry": {
|
||
"never": "永不过期",
|
||
"oneHour": "1 小时",
|
||
"oneDay": "24 小时",
|
||
"sevenDays": "7 天",
|
||
"thirtyDays": "30 天",
|
||
"custom": "自定义"
|
||
},
|
||
"customHoursPlaceholder": "访问过期前的时长(小时)",
|
||
"shareButton": "共享",
|
||
"shareWithCount": "共享({{count}})",
|
||
"currentAccess": "当前访问权限",
|
||
"noAccessEntries": "此主机尚未共享",
|
||
"folderRulesTitle": "适用于后续添加的主机",
|
||
"folderRulesHint": "这些共享规则保留在文件夹上:在此文件夹(或子文件夹)中创建或移入的主机会自动获得相同的访问权限。移除规则仅阻止未来的继承。",
|
||
"folderRuleRemove": "停止继承",
|
||
"folderShareSummary": "此文件夹中已共享 {{shared}} / {{total}} 个主机",
|
||
"grantedBy": "授权人",
|
||
"expires": "过期时间",
|
||
"expired": "已过期",
|
||
"never": "永不过期",
|
||
"revoke": "撤销",
|
||
"accessUpdated": "访问权限已更新",
|
||
"accessUpdateFailed": "更新访问权限失败",
|
||
"sharedBadge": "已共享",
|
||
"sharedBadgeTooltip": "由 {{owner}} 共享({{level}} 权限)",
|
||
"viewOnlyBanner": "此主机由 {{owner}} 以查看权限共享给您。配置为只读。",
|
||
"sharedEditBanner": "此主机由 {{owner}} 以编辑权限共享给您。更改将应用于真实主机;身份验证引用只能由所有者更改。",
|
||
"ownerOnlyControl": "仅主机所有者可以更改此项",
|
||
"ownerAuthPrivate": "主机所有者的 SSH 身份验证是私有的。从主机菜单中选择“设置个人 SSH 身份验证”来使用您自己的凭据。",
|
||
"ownerAuthShared": "主机所有者已为此主机共享 SSH 身份验证。您可以使用它,或从“设置个人 SSH 身份验证”中选择您自己的凭据。",
|
||
"authOverrideAction": "设置个人 SSH 身份验证",
|
||
"authOverrideActionProtocol": "设置个人 {{protocol}} 身份验证",
|
||
"authOverrideTitle": "个人 SSH 身份验证",
|
||
"authOverrideTitleProtocol": "个人 {{protocol}} 身份验证",
|
||
"authOverrideDescriptionPrivate": "主机所有者的 SSH 凭据保持私有。为连接到 {{host}} 选择您保存的凭据之一。",
|
||
"authOverrideDescriptionShared": "使用主机所有者共享的身份验证,或将其替换为您保存的凭据之一,用于连接到 {{host}}。",
|
||
"authOverrideCredentialLabel": "身份验证凭据",
|
||
"useSharedAuthentication": "使用共享主机身份验证",
|
||
"noPersonalCredential": "无个人凭据",
|
||
"authOverrideNoCredentials": "您尚未保存任何 SSH 凭据。请在凭据中创建一个,以便连接到需要身份验证的主机。",
|
||
"authOverrideRequired": "此主机要求您使用已保存的凭据之一才能连接。",
|
||
"authOverridePrivateHint": "此凭据仅对您可见。主机所有者和其他接收者无法查看或使用它。",
|
||
"authOverrideSaved": "个人 SSH 身份验证已保存",
|
||
"authOverrideCleared": "个人 SSH 身份验证已移除",
|
||
"authOverrideClearedToShared": "正在使用共享主机身份验证",
|
||
"authOverrideLoadError": "加载您的 SSH 身份验证失败。请重试。",
|
||
"authOverrideSaveError": "保存您的 SSH 身份验证失败"
|
||
},
|
||
"arrangeUnlockedSwitchedToManual": "已切换为手动排序,以便保留您的顺序",
|
||
"dragToRearrange": "拖拽以重新排列",
|
||
"arrangeUnlocked": "解锁拖拽以重新排列",
|
||
"webUiBindHostUnreachable": "您的浏览器无法访问运行 Termix 的机器上的 127.0.0.1,因此此端点无法加载。请使用该机器响应的地址,例如 0.0.0.0。",
|
||
"webUiBindHostSharesSessionCookie": "在此浏览器中,转发将通过与 Termix 服务相同的域名访问,因此隧道服务将收到您的 Termix 会话。Cookie 忽略端口。此端点将拒绝在此处打开;它在 Termix 桌面应用中有效,或者当 Termix 在 localhost 上打开时有效。",
|
||
"webUiErrorLabelRequired": "端点 {{row}} 需要标签。",
|
||
"webUiErrorLabelDuplicate": "每个端点需要不同的名称。",
|
||
"webUiErrorPortRange": "端点 {{row}} 需要 1 到 65535 之间的端口。",
|
||
"webUiErrorPathInvalid": "端点 {{row}} 的路径无效。请使用类似 /admin 的路径。",
|
||
"copyViewUrlAction": "复制 {{name}} 链接",
|
||
"filterAuthAgent": "SSH Agent",
|
||
"authTypeNeedsPlugin": "此主机使用 {{type}},这需要 {{plugin}}。它在此服务器上已关闭。",
|
||
"authTypeUnknown": "此主机使用 {{type}},它在此服务器上不可用。",
|
||
"authFieldsAfterSave": "先保存主机,然后填写这些字段。",
|
||
"enablePluginFeature": "启用 {{name}}",
|
||
"disablePluginFeature": "禁用 {{name}}",
|
||
"filterFeaturesGroup": "插件",
|
||
"localOnly": "仅保留在此设备上",
|
||
"localOnlyDesc": "此主机不会发送到服务器,也不会出现在您的其他设备上。",
|
||
"folderLocalOnly": "仅保留在此设备上",
|
||
"folderLocalOnlyDesc": "此文件夹及其中的所有主机将保留在此设备上,不会发送到服务器。",
|
||
"sudoPasswordDesc": "当终端填充 sudo 提示符时,以及由使用 sudo 运行命令的插件使用时。",
|
||
"editorCancel": "取消",
|
||
"editorSaving": "保存中...",
|
||
"editorUpdate": "更新主机",
|
||
"editorAdd": "添加主机",
|
||
"speedSearch": "搜索主机。方向键选择,Enter 连接,Esc 关闭",
|
||
"speedSearchList": "主机列表。输入或按 / 搜索。",
|
||
"importNoHosts": "文件中未找到主机",
|
||
"importTooMany": "您一次最多可以导入 {{max}} 个主机",
|
||
"importSummary": "导入完成:{{imported}} 已导入,{{updated}} 已更新,{{failed}} 失败",
|
||
"importHostsFailed": "导入主机失败"
|
||
},
|
||
"commandPalette": {
|
||
"searchPlaceholder": "搜索主机、命令或设置...",
|
||
"quickActions": "快速操作",
|
||
"navigation": "导航",
|
||
"orShortcut": "或",
|
||
"addNewHost": "添加新主机",
|
||
"adminSettings": "管理员设置",
|
||
"addCredential": "添加凭据",
|
||
"recentActivity": "最近活动",
|
||
"serversAndHosts": "服务器与主机",
|
||
"noHostsFound": "未找到匹配“{{search}}”的主机",
|
||
"links": "链接",
|
||
"navigate": "导航",
|
||
"select": "选择",
|
||
"pluginActions": "更多操作",
|
||
"noTargetTab": "没有打开的终端标签页",
|
||
"documentation": "文档"
|
||
},
|
||
"splitScreen": {
|
||
"title": "分屏",
|
||
"defaultLabel": "分屏 {{number}}",
|
||
"splitRight": "向右分屏",
|
||
"splitDown": "向下分屏",
|
||
"addToSplit": "添加到 {{split}}",
|
||
"paneEmptyItem": "窗格 {{index}}:空",
|
||
"paneItem": "窗格 {{index}}:{{label}}",
|
||
"paneNumber": "窗格 {{index}}",
|
||
"newPaneRight": "在右侧新建窗格",
|
||
"newPaneBelow": "在下方新建窗格",
|
||
"emptyTitle": "空窗格",
|
||
"emptyHint": "选择要在此处显示的内容。当此窗格处于选中状态时,从侧边栏打开的任何内容也会在此处打开。",
|
||
"openTabs": "打开的标签页",
|
||
"noOpenTabs": "没有其他打开的标签页",
|
||
"hosts": "主机",
|
||
"searchHosts": "搜索主机",
|
||
"noHosts": "没有匹配的主机",
|
||
"newSession": "新建",
|
||
"closePane": "关闭窗格",
|
||
"closeSession": "关闭会话",
|
||
"moveToTab": "移至独立标签页",
|
||
"swapWith": "与...交换",
|
||
"showHere": "在此窗格中显示",
|
||
"clearPane": "清空此窗格",
|
||
"zoom": "放大窗格",
|
||
"unzoom": "恢复布局",
|
||
"unsplit": "取消分屏",
|
||
"layouts": "布局",
|
||
"applyLayout": "更改布局",
|
||
"maxPanes_other": "一个分屏最多可容纳 {{count}} 个窗格",
|
||
"dropSplit": "拖放至分屏",
|
||
"dropHere": "拖放至此显示",
|
||
"paneActions": "窗格操作",
|
||
"dividerHint": "拖动以调整大小。双击以平均分配。",
|
||
"openInSplit": "在分屏中打开",
|
||
"openInNewSplit": "使用当前标签页新建分屏",
|
||
"shortcuts": "快捷键",
|
||
"shortcutNavigate": "在窗格间移动",
|
||
"presets": {
|
||
"columns2": "左右并排",
|
||
"rows2": "上下堆叠",
|
||
"columns3": "三列并排",
|
||
"mainLeft3": "左一右二",
|
||
"mainBottom3": "上二下一",
|
||
"grid4": "四宫格",
|
||
"grid5": "上三下二",
|
||
"grid6": "六宫格"
|
||
}
|
||
},
|
||
"connections": {
|
||
"noConnections": "无连接",
|
||
"noConnectionsDesc": "打开终端、文件管理器或远程桌面以在此处查看连接",
|
||
"connectedFor": "已连接 {{duration}}",
|
||
"connected": "已连接",
|
||
"disconnected": "已断开",
|
||
"reconnect": "重新连接",
|
||
"sectionOpen": "已打开",
|
||
"sectionBackground": "后台",
|
||
"backgroundDesc": "断开连接后,会话将在 {{minutes}} 分钟内保持活跃,并可重新连接。",
|
||
"expiresIn": "{{duration}} 后过期",
|
||
"search": "搜索连接...",
|
||
"noSearchResults": "没有匹配的连接",
|
||
"rename": "重命名会话",
|
||
"forgetConfirm": "要结束 {{name}} 的后台会话吗?",
|
||
"forget": "结束会话"
|
||
},
|
||
"sshAuth": {
|
||
"totpRequired": "需要双因素认证",
|
||
"totpCodeLabel": "验证码",
|
||
"totpVerify": "验证",
|
||
"mfaPromptRequired": "需要身份验证",
|
||
"mfaPushRequired": "需要推送认证",
|
||
"mfaMenuPlaceholder": "输入您的响应",
|
||
"mfaCodeOrPushPlaceholder": "代码或“推送”",
|
||
"mfaWaitingApproval": "正在等待您的设备批准...",
|
||
"mfaSendRequest": "发送请求",
|
||
"browserSignInCode": "安全密钥",
|
||
"browserSignInUrl": "登录 URL",
|
||
"browserSignInOpen": "在浏览器中打开",
|
||
"browserSignInContinue": "我已完成登录",
|
||
"browserSignInRequired": "需要 {{provider}} 登录",
|
||
"connectionLogTitle": "连接日志",
|
||
"connectionLogCopy": "复制日志到剪贴板",
|
||
"connectionLogEmpty": "暂无连接日志",
|
||
"connectionLogWaiting": "正在等待连接日志...",
|
||
"connectionLogCopied": "连接日志已复制到剪贴板",
|
||
"connectionLogCopyFailed": "复制日志到剪贴板失败"
|
||
},
|
||
"cardGrid": {
|
||
"dragToMove": "拖拽移动",
|
||
"dragToResize": "拖拽调整大小",
|
||
"changeWidth": "更改宽度",
|
||
"removeCard": "移除 {{label}}",
|
||
"addCard": "添加",
|
||
"columns": "列",
|
||
"empty": "暂无卡片。使用下方的添加按钮放置卡片。"
|
||
},
|
||
"auth": {
|
||
"tagline": "自托管、基于插件的服务器管理。",
|
||
"loginTitle": "欢迎回来",
|
||
"registerTitle": "创建账户",
|
||
"forgotPassword": "忘记密码?",
|
||
"rememberMe": "记住设备 30 天(包括 TOTP)",
|
||
"noAccount": "还没有账户?",
|
||
"hasAccount": "已有账户?",
|
||
"twoFactorAuth": "双因素认证",
|
||
"enterCode": "输入验证码",
|
||
"redirectingToApp": "正在重定向到应用...",
|
||
"sshAuthenticationRequired": "需要 SSH 身份验证",
|
||
"sshNoKeyboardInteractive": "键盘交互式身份验证不可用",
|
||
"sshAuthenticationFailed": "身份验证失败",
|
||
"sshAuthenticationTimeout": "身份验证超时",
|
||
"sshNoKeyboardInteractiveDescription": "服务器不支持键盘交互式身份验证。请提供您的密码或 SSH 密钥。",
|
||
"sshAuthFailedDescription": "提供的凭据不正确。请使用有效的凭据重试。",
|
||
"sshTimeoutDescription": "身份验证尝试超时。请重试。",
|
||
"sshProvideCredentialsDescription": "请提供您的 SSH 凭据以连接到此服务器。",
|
||
"sshPasswordDescription": "输入此 SSH 连接的密码。",
|
||
"sshKeyPasswordDescription": "如果您的 SSH 密钥已加密,请在此输入密码短语。",
|
||
"passphraseRequired": "需要输入密码短语",
|
||
"passphraseRequiredDescription": "SSH 密钥已加密。请输入密码短语以解锁。",
|
||
"external": "外部",
|
||
"loginWithExternal": "使用外部提供商登录",
|
||
"loginWithExternalDesc": "使用您配置的外部身份提供商登录",
|
||
"loginWithProvider": "使用 {{name}} 登录",
|
||
"resetPasswordButton": "重置密码",
|
||
"sendResetCode": "发送重置码",
|
||
"resetCodeDesc": "输入您的用户名以接收密码重置码。该代码将记录在 Docker 容器日志中。",
|
||
"resetCode": "重置码",
|
||
"verifyCodeButton": "验证代码",
|
||
"newPassword": "新密码",
|
||
"confirmNewPassword": "确认密码",
|
||
"signUp": "注册",
|
||
"loadingServer": "正在加载服务器...",
|
||
"password": "密码",
|
||
"secondFactorUnavailable": "您的账户使用了当前不可用的第二因素。请联系管理员重置。",
|
||
"externalLoginRequired": "此账户通过单点登录进行登录。请使用该按钮登录。",
|
||
"secondFactorNoUI": "此第二因素无法在此屏幕上显示。请联系管理员。",
|
||
"serverAuthentication": "服务器登录",
|
||
"minChars": "最少 {{min}} 个字符",
|
||
"retrySecondFactorUI": "重新加载验证方法",
|
||
"localDesktopSignedOut": "本地桌面已退出",
|
||
"localDesktopUnavailable": "本地桌面会话不可用",
|
||
"localDesktopSignedOutDesc": "您已退出本地桌面会话。继续本地操作以再次使用此设备内置的 Termix 服务器。",
|
||
"localDesktopUnavailableDesc": "Termix 无法启动本地桌面会话。请重试,而不是注册新账户。",
|
||
"continueLocalDesktop": "继续使用本地桌面",
|
||
"retryLocalDesktop": "重试本地桌面会话"
|
||
},
|
||
"hostKey": {
|
||
"verifyNewHost": "验证 SSH 主机密钥",
|
||
"keyChangedWarning": "SSH 主机密钥已更改",
|
||
"firstConnectionTitle": "首次连接到此主机",
|
||
"firstConnectionDescription": "无法验证此主机的真实性。请验证指纹是否符合预期。",
|
||
"keyChangedDescription": "自上次连接以来,此服务器的主机密钥已更改。这可能表明存在安全问题。",
|
||
"previousKey": "之前的密钥",
|
||
"newFingerprint": "新指纹",
|
||
"fingerprint": "指纹",
|
||
"verifyInstructions": "如果您信任此主机,请点击接受以继续并为以后的连接保存此指纹。",
|
||
"securityWarning": "安全警告",
|
||
"acceptAndContinue": "接受并继续",
|
||
"acceptNewKey": "接受新密钥并继续"
|
||
},
|
||
"errors": {
|
||
"databaseConnection": "Termix 服务器无响应",
|
||
"embeddedServerFailed": "Termix 的本地服务器无法启动",
|
||
"unknownError": "未知错误",
|
||
"syncedHostMissing": "同步的主机在链接的服务器上不存在",
|
||
"linkedServerUnreachable": "无法访问链接的服务器",
|
||
"loginFailed": "登录失败",
|
||
"failedPasswordReset": "启动密码重置失败",
|
||
"failedVerifyCode": "验证重置码失败",
|
||
"failedCompleteReset": "完成密码重置失败",
|
||
"invalidTotpCode": "无效的 TOTP 代码",
|
||
"failedExternalLogin": "启动外部登录失败",
|
||
"silentSigninExternalUnavailable": "请求了静默登录,但未设置外部登录。",
|
||
"failedUserInfo": "登录后获取用户信息失败",
|
||
"externalAuthFailed": "外部登录失败",
|
||
"invalidAuthUrl": "从后端收到的授权 URL 无效",
|
||
"requiredField": "此字段为必填项",
|
||
"minLength": "最小长度为 {{min}}",
|
||
"passwordMismatch": "密码不匹配",
|
||
"sessionExpired": "会话已过期 - 请重新登录",
|
||
"authTokenSaveFailed": "保存身份验证令牌失败",
|
||
"authTokenMissing": "服务器未返回新的身份验证令牌。请重新登录。",
|
||
"failedToLoadServer": "加载服务器失败",
|
||
"sessionExpiredLogin": "会话已过期。请重新登录。"
|
||
},
|
||
"messages": {
|
||
"registrationDisabled": "您还没有 Termix 账户。请联系管理员开启“自动创建外部账户”功能。",
|
||
"userNotAllowed": "您的账户无权注册。请联系管理员。",
|
||
"databaseConnectionFailed": "服务器可能仍在启动,或已停止。此页面会持续重试,并在服务器恢复后自动继续。",
|
||
"embeddedServerPortInUse": "端口 {{port}} 已被其他程序占用。这通常是 Termix Docker 容器或上一次会话残留的 Termix 进程。请关闭该程序,然后重启 Termix。",
|
||
"embeddedServerPortInUseUnknownPort": "Termix 所需的一个端口已被其他程序占用。请关闭占用该端口的程序,然后重启 Termix。",
|
||
"embeddedServerOldDatabase": "您的本地数据来自 Termix 2.8 或更早版本,必须先通过 2.9 版本进行迁移。请安装 Termix 2.9.1,打开一次以完成数据迁移,然后再更新到当前版本。",
|
||
"embeddedServerCrashed": "本地服务器意外停止。请重启 Termix,如果问题持续出现,请检查桌面日志。",
|
||
"resetCodeSent": "重置代码已发送至 Docker 日志",
|
||
"codeVerified": "代码验证成功",
|
||
"passwordResetSuccess": "密码重置成功",
|
||
"loginSuccess": "登录成功",
|
||
"registrationSuccess": "注册成功"
|
||
},
|
||
"placeholders": {
|
||
"keyPassword": "密钥密码",
|
||
"pastePrivateKey": "在此粘贴您的私钥...",
|
||
"enterPassword": "输入您的密码",
|
||
"apiKeyName": "例如:CI 流水线",
|
||
"credentialName": "例如:生产环境 SSH 密钥",
|
||
"optionalDetails": "可选详情...",
|
||
"sshUsername": "例如:root 或 deploy",
|
||
"hostAddress": "10.0.0.1 或 example.com",
|
||
"hostName": "例如:Web 服务器 生产环境"
|
||
},
|
||
"dashboard": {
|
||
"title": "仪表板",
|
||
"github": "GitHub",
|
||
"reportBug": "报告错误",
|
||
"discord": "Discord",
|
||
"docs": "文档",
|
||
"donate": "捐赠",
|
||
"serverOverview": "服务器概览",
|
||
"version": "版本",
|
||
"updateAvailable": "可用更新",
|
||
"beta": "测试版",
|
||
"uptime": "运行时间",
|
||
"database": "数据库",
|
||
"healthy": "正常",
|
||
"error": "错误",
|
||
"totalHosts": "主机总数",
|
||
"totalCredentials": "凭据总数",
|
||
"recentActivity": "最近活动",
|
||
"reset": "重置",
|
||
"noRecentActivity": "无最近活动",
|
||
"quickActions": "快捷操作",
|
||
"addHost": "添加主机",
|
||
"addCredential": "添加凭据",
|
||
"adminSettings": "管理员设置",
|
||
"userProfile": "用户资料",
|
||
"serverStats": "服务器统计",
|
||
"customizeLayout": "自定义仪表板",
|
||
"justNow": "刚刚"
|
||
},
|
||
"dashboardTab": {
|
||
"stable": "稳定版",
|
||
"registerNewServer": "注册新服务器",
|
||
"storeSshKeysOrPasswords": "存储 SSH 密钥或密码",
|
||
"manageUsersAndRoles": "管理用户和角色",
|
||
"manageYourAccount": "管理您的账户",
|
||
"hostStatus": "主机状态",
|
||
"noHostsConfigured": "未配置主机",
|
||
"checking": "检查中",
|
||
"commandPalette": "命令面板",
|
||
"done": "完成",
|
||
"clear": "清除",
|
||
"dragToResizeColumns": "拖拽以调整列宽",
|
||
"hostsAvailable": "可用主机",
|
||
"removeSection": "移除区块",
|
||
"addSection": "添加区块",
|
||
"allSectionsShown": "所有内容已显示在仪表板上。",
|
||
"fromPlugins": "来自插件",
|
||
"dropHere": "将区块拖放到此处",
|
||
"dragToReorder": "拖拽区块以重新排序",
|
||
"clearActivityConfirm": "清除您的最近活动?",
|
||
"resetConfirm": "将仪表板重置为默认布局?",
|
||
"onlineCount_other": "{{count}} 在线",
|
||
"hostCount_other": "{{count}} 台主机"
|
||
},
|
||
"admin": {
|
||
"sectionGeneral": "常规",
|
||
"sectionUsers": "用户",
|
||
"sectionSessions": "会话",
|
||
"sectionRoles": "角色",
|
||
"sectionDatabase": "数据库",
|
||
"sectionApiKeys": "API 密钥",
|
||
"sectionAuditLog": "审计日志",
|
||
"sectionSsl": "HTTPS 证书",
|
||
"sectionBranding": "白标",
|
||
"brandingAppName": "应用名称",
|
||
"brandingAppNameDesc": "显示在登录屏幕和浏览器标签页上。留空则使用“Termix”。",
|
||
"brandingTagline": "标语",
|
||
"brandingTaglineDesc": "显示在登录屏幕的应用名称下方。留空则使用默认标语。",
|
||
"brandingLogo": "徽标",
|
||
"brandingLogoDesc": "PNG、JPEG 或 WEBP 格式,最大 750 KB。将替换登录屏幕和浏览器标签页上的默认图标。",
|
||
"brandingLogoUpload": "上传徽标",
|
||
"brandingLogoReset": "恢复默认",
|
||
"brandingLogoInvalid": "无效的图片。请使用不超过 750 KB 的 PNG、JPEG 或 WEBP 文件。",
|
||
"brandingSaved": "白标设置已保存",
|
||
"brandingSaveFailed": "保存白标设置失败",
|
||
"sslDescription": "Termix 通过 HTTPS 提供的证书。您可以在此处上传自己的证书,或在 ACME 证书部分从 Let's Encrypt 获取和续期证书。",
|
||
"sslDocsLink": "查看 SSL 文档",
|
||
"sslCertStatus": "证书状态",
|
||
"sslCertStatusNone": "无证书",
|
||
"sslCertStatusValid": "有效",
|
||
"sslCertStatusExpiring": "即将过期",
|
||
"sslCertStatusExpired": "已过期",
|
||
"sslCertExpiresAt": "于 {{date}} 过期",
|
||
"sslInfoNote": "颁发或上传证书后,Termix 将自动在 SSL_PORT(默认 8443)上启用 HTTPS,此外还有现有的 HTTP 端口。请确保该端口已发布/映射到此容器,以便可以访问。",
|
||
"sslManualCert": "证书 (PEM)",
|
||
"sslManualCertPlaceholder": "-----BEGIN CERTIFICATE-----",
|
||
"sslManualKey": "私钥 (PEM)",
|
||
"sslManualKeyPlaceholder": "-----BEGIN PRIVATE KEY-----",
|
||
"sslManualDesc": "粘贴您现有的证书和私钥,如果您的 CA 要求,请包含完整的证书链。",
|
||
"sslManualUpload": "上传并安装证书",
|
||
"sslManualUploadLoading": "正在上传证书...",
|
||
"sslManualUploadSuccess": "证书上传并安装成功",
|
||
"sslManualUploadFailed": "证书上传失败",
|
||
"sslManualRequiresFields": "需要提供证书和私钥",
|
||
"auditLogTotal": "共 {{total}} 条记录",
|
||
"auditLogEmpty": "未找到审计日志记录",
|
||
"auditLogSuccess": "成功",
|
||
"auditLogFailed": "失败",
|
||
"auditLogClearFilters": "清除筛选条件",
|
||
"auditLogPage": "第 {{page}} 页,共 {{totalPages}} 页(共 {{total}} 条)",
|
||
"auditLogIp": "IP",
|
||
"auditLogResourceId": "资源 ID",
|
||
"auditLogFilterUser": "用户",
|
||
"auditLogFilterAction": "操作",
|
||
"auditLogFilterResourceType": "资源类型",
|
||
"auditLogFilterStatus": "状态",
|
||
"auditLogFilterFrom": "起始时间",
|
||
"auditLogFilterTo": "结束时间",
|
||
"auditLogFilterAll": "全部",
|
||
"allowRegistration": "允许用户注册",
|
||
"allowRegistrationDesc": "允许新用户通过用户名和密码自行注册",
|
||
"allowPasswordLogin": "允许密码登录",
|
||
"allowPasswordLoginDesc": "用户名/密码登录",
|
||
"externalAutoProvision": "自动创建外部账户",
|
||
"externalAutoProvisionDesc": "当用户首次通过 SSO 或 LDAP 等外部方式登录时,自动为其创建账户。关闭此选项后,只有已拥有账户的用户才能通过外部方式登录",
|
||
"secondFactorAfterExternalLogin": "外部登录(SSO、GitHub、Google、LDAP)后要求二次验证",
|
||
"secondFactorAfterExternalLoginDesc": "关闭时,仅在密码和其他本地登录后要求已注册的二次验证,与之前相同。开启时,所有登录方式(包括 SSO 和 LDAP)后均要求二次验证",
|
||
"allowPasswordReset": "允许重置密码",
|
||
"allowPasswordResetDesc": "通过 Docker 日志获取重置码",
|
||
"auditForwardingTitle": "转发至 SIEM",
|
||
"auditForwardingDesc": "将每条审计日志的副本以 NDJSON 格式发送至外部收集器。本地日志仍为权威数据源",
|
||
"auditForwardingEnvNotice": "环境变量也可配置转发功能;此处保存的 URL 优先级更高",
|
||
"auditForwardingToken": "Bearer 令牌(可选)",
|
||
"auditForwardingTokenStored": "Bearer 令牌(已保存)",
|
||
"auditForwardingSaved": "审计转发设置已保存",
|
||
"auditForwardingSaveError": "保存审计转发设置失败",
|
||
"sessionTimeout": "会话超时",
|
||
"hours": "小时",
|
||
"sessionTimeoutRange": "最小 1 小时,最大 720 小时",
|
||
"monitoringDefaults": "监控默认设置",
|
||
"statusCheck": "状态检查",
|
||
"sec": "秒",
|
||
"logLevel": "日志级别",
|
||
"usersCount_other": "{{count}} 个用户",
|
||
"searchUsers": "搜索用户...",
|
||
"noUsers": "暂无用户",
|
||
"noUsersMatch": "没有用户匹配您的搜索",
|
||
"pageOf": "第 {{page}} 页,共 {{total}} 页",
|
||
"createUser": "创建",
|
||
"newRole": "新建角色",
|
||
"roleName": "名称",
|
||
"roleDisplayName": "显示名称",
|
||
"roleDescription": "描述",
|
||
"rolesCount_other": "{{count}} 个角色",
|
||
"createRole": "创建",
|
||
"creating": "创建中...",
|
||
"exportDatabase": "导出数据库",
|
||
"exportDatabaseDesc": "下载包含所有主机、凭据和设置的便携式 SQLite 备份",
|
||
"export": "导出",
|
||
"exporting": "导出中...",
|
||
"importDatabase": "导入数据库",
|
||
"importDatabaseDesc": "从任何数据库后端的便携式 .sqlite 备份中恢复",
|
||
"importDatabaseSelected": "已选择:{{name}}",
|
||
"selectFile": "选择文件",
|
||
"changeFile": "更改",
|
||
"import": "导入",
|
||
"importing": "导入中...",
|
||
"apiKeysCount_other": "{{count}} 个密钥",
|
||
"apiKeysDocsLink": "查看文档",
|
||
"apiKeysCliHint": "在 Termix CLI 中使用 API 密钥,以便从终端管理服务器",
|
||
"apiKeysCliLink": "查看 CLI 文档",
|
||
"newApiKey": "新建 API 密钥",
|
||
"apiKeyCreatedWarning": "密钥已创建 - 请立即复制,之后将不再显示。",
|
||
"apiKeyName": "名称",
|
||
"apiKeyUser": "用户",
|
||
"apiKeySelectUser": "选择用户...",
|
||
"apiKeyExpiresAt": "过期时间",
|
||
"createKey": "创建密钥",
|
||
"apiKeyNoExpiry": "永不过期",
|
||
"revokedBadge": "已撤销",
|
||
"authTypeDual": "双重认证",
|
||
"authTypeExternal": "外部",
|
||
"authTypeLocal": "本地",
|
||
"adminStatusAdministrator": "管理员",
|
||
"adminStatusRegularUser": "普通用户",
|
||
"adminBadge": "管理员",
|
||
"systemBadge": "系统",
|
||
"customBadge": "自定义",
|
||
"youBadge": "本人",
|
||
"sessionsActive_other": "{{count}} 个活跃",
|
||
"sessionActive": "活跃:{{time}}",
|
||
"sessionExpires": "过期:{{time}}",
|
||
"revokeAll": "全部",
|
||
"revokeAllSessionsSuccess": "已撤销该用户的所有会话",
|
||
"revokeAllSessionsFailed": "撤销会话失败",
|
||
"revokeSessionFailed": "撤销会话失败",
|
||
"addRole": "添加角色",
|
||
"noCustomRoles": "未定义自定义角色",
|
||
"removeRoleFailed": "移除角色失败",
|
||
"assignRoleFailed": "分配角色失败",
|
||
"userAdminAccess": "管理员",
|
||
"userAdminAccessDesc": "完全访问所有管理设置",
|
||
"userRoles": "角色",
|
||
"revokeAllUserSessions": "撤销所有会话",
|
||
"revokeAllUserSessionsDesc": "强制所有设备重新登录",
|
||
"revoke": "撤销",
|
||
"deleteUserWarning": "删除此用户后无法恢复。",
|
||
"deleteUser": "删除 {{username}}",
|
||
"deleting": "正在删除...",
|
||
"deleteUserFailed": "删除用户失败",
|
||
"deleteUserSuccess": "用户 \"{{username}}\" 已删除",
|
||
"deleteRoleSuccess": "角色 \"{{name}}\" 已删除",
|
||
"revokeKeySuccess": "密钥 \"{{name}}\" 已撤销",
|
||
"revokeKeyFailed": "撤销密钥失败",
|
||
"copiedToClipboard": "已复制到剪贴板",
|
||
"done": "完成",
|
||
"createUserTitle": "创建用户",
|
||
"createUserDesc": "创建一个新的本地账户。",
|
||
"createUserUsername": "用户名",
|
||
"createUserPassword": "密码",
|
||
"createUserPasswordHint": "至少 6 个字符。",
|
||
"createUserEnterUsername": "输入用户名",
|
||
"createUserSubmit": "创建用户",
|
||
"editUserTitle": "管理用户:{{username}}",
|
||
"editUserDesc": "编辑角色、管理员状态、会话和账户设置。",
|
||
"editUserUsername": "用户名",
|
||
"editUserAuthType": "认证类型",
|
||
"editUserAdminStatus": "管理员状态",
|
||
"editUserUserId": "用户 ID",
|
||
"linkAccountTitle": "关联账户",
|
||
"linkAccountDesc": "将外部账户 {{username}} 与现有的本地账户合并。",
|
||
"linkAccountDescLocal": "将本地账户 {{username}} 与现有的仅外部账户关联。",
|
||
"linkAccountWarningTitle": "此操作将:",
|
||
"linkAccountEffect1": "删除仅外部登录的账户",
|
||
"linkAccountEffect2": "将其外部登录方式添加到目标账户",
|
||
"linkAccountEffect3": "允许同时使用外部登录和密码登录",
|
||
"linkAccountTargetUsername": "本地账户用户名",
|
||
"linkAccountTargetPlaceholder": "输入要关联的本地账户用户名",
|
||
"linkAccountExternalUsername": "外部账户用户名",
|
||
"linkAccountExternalPlaceholder": "输入要合并的仅外部登录账户的用户名",
|
||
"linkAccountExternalNotFound": "未找到使用该用户名的仅外部登录账户",
|
||
"linkAccounts": "关联账户",
|
||
"linkAccountSuccess": "账户关联成功",
|
||
"linkAccountFailed": "账户关联失败",
|
||
"linkAccountInProgress": "关联中...",
|
||
"unlinkAccountTitle": "取消关联外部登录",
|
||
"unlinkAccountDesc": "从 {{username}} 移除外部登录方式。此后该用户只能通过密码登录。",
|
||
"unlinkAccountWarning": "此操作将从该账户移除外部登录方式。用户必须设置密码才能继续登录。",
|
||
"unlinkAccount": "取消关联外部登录",
|
||
"unlinkAccountInProgress": "取消关联中...",
|
||
"unlinkAccountSuccess": "外部登录已取消关联",
|
||
"unlinkAccountFailed": "取消关联外部登录失败",
|
||
"updateRegistrationFailed": "更新注册设置失败",
|
||
"updatePasswordLoginFailed": "更新密码登录设置失败",
|
||
"updateSecondFactorAfterExternalLoginFailed": "更新二次验证设置失败",
|
||
"updatePasswordResetFailed": "更新密码重置设置失败",
|
||
"sessionTimeoutRange2": "会话超时时间必须在 1 到 720 小时之间",
|
||
"sessionTimeoutSaved": "会话超时时间已保存",
|
||
"sessionTimeoutSaveFailed": "保存会话超时时间失败",
|
||
"monitoringIntervalInvalid": "无效的间隔值",
|
||
"monitoringSaved": "监控设置已保存",
|
||
"monitoringSaveFailed": "保存监控设置失败",
|
||
"logLevelUpdateFailed": "更新日志级别失败",
|
||
"createUserRequired": "用户名和密码为必填项",
|
||
"createUserPasswordTooShort": "密码长度至少为 6 个字符",
|
||
"createUserSuccess": "用户“{{username}}”已创建",
|
||
"createUserFailed": "创建用户失败",
|
||
"updateAdminStatusFailed": "更新管理员状态失败",
|
||
"allSessionsRevoked": "所有会话已撤销",
|
||
"revokeSessionsFailed": "撤销会话失败",
|
||
"manageUserData": "管理用户数据",
|
||
"backToUsers": "返回用户列表",
|
||
"manageTabAccount": "账户",
|
||
"manageTabHosts": "主机",
|
||
"manageTabCredentials": "凭据",
|
||
"manageTabSessions": "会话",
|
||
"manageTabDanger": "危险操作",
|
||
"manageEditorBack": "返回 {{username}} 的数据",
|
||
"dataLockedBadge": "已锁定",
|
||
"dataLockedNotice": "{{username}} 的数据将保持锁定状态,直到其下次登录。在此之前,无法查看或编辑其主机、凭据和代码片段。",
|
||
"resetPasswordTitle": "重置密码",
|
||
"resetPasswordExternalOnly": "该用户通过外部提供商登录,没有设置密码。",
|
||
"resetPasswordPlaceholder": "新密码",
|
||
"resetPasswordBtn": "重置",
|
||
"resetPasswordWorking": "重置中...",
|
||
"resetPasswordSuccess": "密码已重置",
|
||
"resetPasswordSuccessWiped": "密码已重置。用户的加密数据已被清除。",
|
||
"resetPasswordFailed": "重置密码失败",
|
||
"resetPasswordConfirmWipe": "{{username}} 自加密升级后尚未登录,因此其数据无法恢复。现在重置将删除其主机、凭据和代码片段。是否继续?",
|
||
"manageApiKeys": "API 密钥",
|
||
"apiKeyNamePlaceholder": "密钥名称",
|
||
"apiKeyCopyNotice": "请立即复制此密钥,之后将不再显示。",
|
||
"noApiKeysForUser": "无 API 密钥",
|
||
"apiKeyDeleteFailed": "删除 API 密钥失败",
|
||
"exportUserData": "数据导出",
|
||
"exportUserDataDesc": "将此用户的服务器、凭据和文件管理器数据作为 JSON 下载。密钥将被解密。",
|
||
"exportUserDataSuccess": "用户数据已导出",
|
||
"exportUserDataFailed": "导出用户数据失败",
|
||
"hostsCount_other": "{{count}} 个主机",
|
||
"addHostForUser": "添加服务器",
|
||
"noHostsForUser": "该用户没有服务器",
|
||
"connectToHost": "连接",
|
||
"deleteHostConfirm": "删除属于 {{username}} 的服务器“{{name}}”?",
|
||
"hostDeletedSuccess": "服务器已删除",
|
||
"hostDeleteFailed": "删除服务器失败",
|
||
"credentialsCount_other": "{{count}} 个凭据",
|
||
"addCredentialForUser": "添加凭据",
|
||
"noCredentialsForUser": "该用户没有凭据",
|
||
"deleteCredentialConfirm": "删除属于 {{username}} 的凭据“{{name}}”?",
|
||
"credentialDeletedSuccess": "凭据已删除",
|
||
"credentialDeleteFailed": "删除凭据失败",
|
||
"noSessionsForUser": "无活跃会话",
|
||
"deleteSuccessorLabel": "将服务器和凭据移交给",
|
||
"deleteSuccessorMe": "我(执行删除的管理员)",
|
||
"deleteSuccessorNone": "无人,直接删除",
|
||
"deleteSuccessorDesc": "该用户共享的所有内容在新所有者下将继续有效;选择“无人”将删除其服务器、凭据和共享。",
|
||
"deleteUserDangerDesc": "永久删除 {{username}} 及其所有数据(服务器、凭据、代码片段、历史记录)。此操作无法撤销。",
|
||
"deleteUserConfirm": "永久删除 {{username}} 及其所有数据?",
|
||
"deleteUserAdminBlocked": "删除此用户前请先移除其管理员身份。",
|
||
"createRoleRequired": "名称和显示名称为必填项",
|
||
"createRoleSuccess": "角色“{{name}}”已创建",
|
||
"createRoleFailed": "创建角色失败",
|
||
"apiKeyNameRequired": "密钥名称为必填项",
|
||
"apiKeyUserRequired": "用户 ID 为必填项",
|
||
"apiKeyCreatedSuccess": "API 密钥“{{name}}”已创建",
|
||
"apiKeyCreateFailed": "创建 API 密钥失败",
|
||
"exportSuccess": "数据库导出成功",
|
||
"exportFailed": "数据库导出失败",
|
||
"importSelectFile": "请先选择一个文件",
|
||
"importCompleted": "导入完成:已导入 {{total}} 项,跳过 {{skipped}} 项",
|
||
"importFailed": "导入失败:{{error}}",
|
||
"importError": "数据库导入失败",
|
||
"sectionHostDefaults": "服务器默认设置",
|
||
"rolePermissions": {
|
||
"count_other": "{{count}} 个权限",
|
||
"editAction": "编辑权限",
|
||
"loadError": "加载权限目录失败",
|
||
"saved": "角色权限已保存",
|
||
"saveError": "保存角色权限失败",
|
||
"save": "保存",
|
||
"saving": "正在保存...",
|
||
"pluginDisabled": "插件已禁用",
|
||
"groups": {
|
||
"hosts": "服务器",
|
||
"credentials": "凭据",
|
||
"admin": "管理"
|
||
}
|
||
},
|
||
"notificationPrivateEndpoints": "允许的通知私有主机",
|
||
"notificationPrivateEndpointsDesc": "通知渠道可以联系的确切私有主机。用逗号分隔。",
|
||
"updateNotificationEndpointsFailed": "更新通知端点白名单失败",
|
||
"secondFactorsSectionTitle": "第二因素",
|
||
"secondFactorsNone": "未注册任何第二因素",
|
||
"secondFactorUnavailable": "不可用",
|
||
"resetSecondFactors": "重置第二因素",
|
||
"resetSecondFactorsConfirm": "移除 {{username}} 的所有第二因素?他们可以使用密码或 SSO 登录并重新注册。",
|
||
"secondFactorsResetSuccess": "二次验证已重置",
|
||
"secondFactorsResetFailed": "重置二次验证失败",
|
||
"passwordLoginForced": "密码登录已关闭,但未启用其他登录方式,因此暂时保持开启,以免用户无法登录。",
|
||
"sslNotRenewed": "没有自动续期此证书。它将于 {{date}} 过期。请在 ACME 证书部分开启自动续期,或在此之前上传新证书。",
|
||
"sslSelfSigned": "由 Termix 生成的自签名证书。浏览器会显示警告。",
|
||
"sslRenewedBy": "由 {{plugin}} 自动续期",
|
||
"sslIssuer": "由 {{issuer}} 颁发",
|
||
"sslNames": "涵盖 {{names}}",
|
||
"sslManualTitle": "上传证书",
|
||
"updateExternalAutoProvisionFailed": "更新自动创建设置失败",
|
||
"hostTags": "预定义主机标签",
|
||
"hostTagsDesc": "所有用户在主机编辑器中看到的建议标签。按空格或回车添加标签。在此处删除标签不会从主机中移除它。",
|
||
"hostTagsError": "无法加载或保存主机标签建议。",
|
||
"revokeAllSessionsConfirm": "让 {{username}} 在所有设备退出登录?",
|
||
"revokeSessionConfirm": "退出此会话?",
|
||
"revokeSession": "退出登录",
|
||
"deleteRoleConfirm": "删除 {{name}} 角色?",
|
||
"revokeKeyConfirm": "撤销 API 密钥 {{name}}?",
|
||
"revokeKey": "撤销"
|
||
},
|
||
"newUi": {
|
||
"sidebar": {
|
||
"quickConnect": {
|
||
"where": "位置",
|
||
"who": "用户",
|
||
"hostLabel": "主机",
|
||
"hostPlaceholder": "192.168.1.1 或 example.com",
|
||
"portLabel": "端口",
|
||
"usernameLabel": "用户名",
|
||
"usernamePlaceholder": "用户名",
|
||
"authLabel": "认证",
|
||
"passwordLabel": "密码",
|
||
"passwordPlaceholder": "密码",
|
||
"privateKeyLabel": "私钥",
|
||
"privateKeyPlaceholder": "粘贴私钥...",
|
||
"credentialLabel": "凭据",
|
||
"credentialPlaceholder": "选择已保存的凭据",
|
||
"protocolLabel": "协议",
|
||
"domainLabel": "域",
|
||
"domainPlaceholder": "可选",
|
||
"connectToAction": "连接到 {{name}}",
|
||
"sshProtocol": "SSH",
|
||
"noTarget": "未安装可连接到此类型主机的组件"
|
||
},
|
||
"keybindings": {
|
||
"description": "将按键绑定到终端和应用中的操作,或更改内置快捷键。",
|
||
"defaultsHeading": "内置快捷键",
|
||
"fixedHeading": "应用快捷键",
|
||
"fixed": {
|
||
"splitRight": "向右分屏",
|
||
"splitDown": "向下分屏",
|
||
"zoomPane": "放大当前窗格",
|
||
"navigatePane": "在窗格间切换",
|
||
"nextTab": "下一个标签页",
|
||
"previousTab": "上一个标签页",
|
||
"jumpTab": "跳转到标签页",
|
||
"previousView": "返回上一个侧边栏视图",
|
||
"fullscreen": "切换全屏"
|
||
},
|
||
"customHeading": "自定义快捷键",
|
||
"addBinding": "添加快捷键",
|
||
"addBindingTitle": "添加快捷键",
|
||
"editBindingTitle": "编辑快捷键",
|
||
"loading": "加载中...",
|
||
"noCustomBindings": "暂无自定义快捷键",
|
||
"defaultBadge": "默认",
|
||
"customizedBadge": "已自定义",
|
||
"customize": "自定义",
|
||
"resetToDefault": "恢复默认",
|
||
"resetAllToDefaults": "全部恢复默认",
|
||
"cancel": "取消",
|
||
"saveBinding": "保存快捷键",
|
||
"saveError": "保存键盘快捷键失败",
|
||
"pressKeysToRecord": "按键组合",
|
||
"pressKeysPlaceholder": "点击并按下按键",
|
||
"recording": "按下按键...",
|
||
"comboRequiredError": "请先按下按键组合",
|
||
"conflictWarning": "此组合已绑定到 {{combo}}。保存后两者将同时触发。",
|
||
"actionLabel": "操作",
|
||
"actionNextTab": "切换到下一个标签页",
|
||
"actionPreviousTab": "切换到上一个标签页",
|
||
"actionOpenCommandPalette": "打开快速搜索",
|
||
"actionReconnectSession": "重新连接当前会话",
|
||
"unavailableAction": "{{type}}(不可用)",
|
||
"actionRequiredError": "请先选择一个操作",
|
||
"deleteConfirm": "删除此快捷键绑定?",
|
||
"resetAllConfirm": "将所有快捷键恢复为默认值?"
|
||
},
|
||
"userProfile": {
|
||
"storageModeLocal": "浏览器",
|
||
"storageModeCloud": "数据库",
|
||
"storageModeDescription": "浏览器仅在当前浏览器中存储设置。数据库会将设置同步到服务器,并可在任何设备上加载。",
|
||
"resetToDefaults": "恢复默认设置",
|
||
"resetToDefaultsSuccess": "设置已恢复为默认值。",
|
||
"storageModeSwitch": "偏好设置存储",
|
||
"sectionAccount": "账户",
|
||
"desktopProfileTitle": "仅限此设备",
|
||
"desktopProfileDescription": "此配置文件仅存在于当前设备,并独立登录。将其链接到 Termix 服务器,即可在所有设备上使用相同的主机和设置。",
|
||
"sectionInterface": "界面",
|
||
"interfacePresetDesc": "Termix 显示详细程度的预设。所有功能均可用。",
|
||
"preset_simple": "简洁",
|
||
"preset_simple_desc": "仅显示基本内容。",
|
||
"preset_balanced": "均衡",
|
||
"preset_balanced_desc": "标准布局。",
|
||
"preset_advanced": "高级",
|
||
"preset_advanced_desc": "显示所有内容,布局紧凑。",
|
||
"presetClearOverrides": "全部重置",
|
||
"presetOverridesTitle": "已自定义",
|
||
"presetRevertArea": "还原",
|
||
"presetConfirmTitle": "切换到 {{preset}}?",
|
||
"presetConfirmDesc": "这将重置您的侧边栏、导航、仪表板布局、终端工具栏和文件管理器视图。您的主机、凭据和主页不会受到影响。",
|
||
"presetConfirmApply": "应用预设",
|
||
"runSetupAgainDesc": "重新运行首次运行设置向导。",
|
||
"runSetupAgainButton": "运行设置向导",
|
||
"uiArea_chrome": "应用框架",
|
||
"uiArea_hostList": "主机列表",
|
||
"uiArea_credentialList": "凭据列表",
|
||
"uiArea_rail": "导航栏",
|
||
"uiArea_dashboard": "仪表板",
|
||
"uiArea_terminal": "终端",
|
||
"uiArea_fileManager": "文件管理器",
|
||
"uiArea_hostEditor": "主机编辑器",
|
||
"sectionAppearance": "外观",
|
||
"sectionSecurity": "安全",
|
||
"sectionApiKeys": "API 密钥",
|
||
"sectionData": "数据",
|
||
"usernameLabel": "用户名",
|
||
"roleLabel": "角色",
|
||
"roleAdministrator": "管理员",
|
||
"authMethodLabel": "认证方式",
|
||
"authMethodLocal": "本地",
|
||
"twoFaLabel": "双重验证",
|
||
"twoFaOn": "已开启",
|
||
"twoFaOff": "已关闭",
|
||
"versionLabel": "版本",
|
||
"cliTitle": "Termix CLI",
|
||
"cliDescription": "从您自己的 Shell 中打开终端、运行命令和传输文件。",
|
||
"cliLearnMore": "了解更多",
|
||
"deleteAccount": "删除账户",
|
||
"deleteAccountDescription": "永久删除您的账户",
|
||
"deleteButton": "删除",
|
||
"deleteAccountPermanent": "此操作不可撤销。",
|
||
"deleteAccountWarning": "所有会话、主机、凭据和设置都将被永久删除。",
|
||
"confirmPasswordDeletePlaceholder": "输入密码以确认",
|
||
"languageLabel": "语言",
|
||
"themeLabel": "主题",
|
||
"fontSizeLabel": "字体大小",
|
||
"interfaceFontLabel": "界面字体",
|
||
"interfaceFontDescription": "更改应用程序界面字体。终端配置文件保留其各自的字体设置。",
|
||
"accentColorLabel": "强调色",
|
||
"keyboardShortcuts": "键盘快捷键",
|
||
"keyboardShortcutsDescription": "自定义终端复制、粘贴和命令快捷键",
|
||
"manageShortcuts": "管理",
|
||
"commandPalette": "命令面板",
|
||
"commandPaletteDesc": "启用键盘快捷键",
|
||
"reopenTabsOnLogin": "登录时重新打开标签页",
|
||
"reopenTabsOnLoginDesc": "在您登录或刷新页面时恢复已打开的标签页,即使是从另一台设备登录",
|
||
"confirmTabClose": "关闭标签页前确认",
|
||
"confirmTabCloseDesc": "关闭终端标签页前进行询问",
|
||
"showTabNumbers": "显示标签页编号",
|
||
"showTabNumbersDesc": "在每个标签页上显示编号,以便区分",
|
||
"settingsAppRail": "应用侧栏",
|
||
"sidebarSettingsMoved": "主机侧栏显示设置已移至“自定义侧栏”面板,可从主机工具栏打开。",
|
||
"showHostTags": "显示主机标签",
|
||
"showHostTagsDesc": "在主机列表中显示标签",
|
||
"statusColors": "真实状态颜色",
|
||
"statusColorsDesc": "使用绿色/红色表示在线/离线状态,而不是强调色",
|
||
"pinAppRail": "固定应用侧栏",
|
||
"pinAppRailDesc": "保持左侧应用侧栏始终展开,而不是悬停时展开",
|
||
"expandAppRailOnHover": "悬停时展开应用侧栏",
|
||
"expandAppRailOnHoverDesc": "允许鼠标悬停在左侧应用侧栏上时展开",
|
||
"appRailHoverPushesContent": "展开时推动内容",
|
||
"appRailHoverPushesContentDesc": "为展开的侧边栏腾出空间,而不是覆盖在页面上。远程桌面等打开的会话将随之调整大小",
|
||
"showPinAppRailButton": "显示固定应用侧栏按钮",
|
||
"showPinAppRailButtonDesc": "在应用侧栏中显示一个用于固定展开的按钮。默认关闭。",
|
||
"settingsNavigation": "导航",
|
||
"navigationTabsDesc": "选择哪些标签页显示在应用侧栏中",
|
||
"settingsUpdates": "更新",
|
||
"disableUpdateChecks": "禁用更新检查",
|
||
"disableUpdateChecksDesc": "停止检查更新",
|
||
"changePassword": "更改密码",
|
||
"currentPasswordLabel": "当前密码",
|
||
"currentPasswordPlaceholder": "当前密码",
|
||
"newPasswordLabel": "新密码",
|
||
"newPasswordPlaceholder": "新密码",
|
||
"confirmPasswordLabel": "确认新密码",
|
||
"confirmPasswordPlaceholder": "确认新密码",
|
||
"updatePassword": "更新密码",
|
||
"createApiKeyTitle": "创建 API 密钥",
|
||
"createApiKeyDescription": "生成一个新的 API 密钥以进行程序化访问。",
|
||
"apiKeyNameLabel": "名称",
|
||
"apiKeyNamePlaceholder": "例如:CI 流水线",
|
||
"expiryDateLabel": "过期日期",
|
||
"optional": "选填",
|
||
"cancel": "取消",
|
||
"createKey": "创建密钥",
|
||
"apiKeyCreatedWarning": "密钥已创建 - 请立即复制,之后将不再显示。",
|
||
"copyApiKey": "复制 API 密钥",
|
||
"copiedToClipboard": "已复制到剪贴板",
|
||
"apiKeyCount_other": "{{count}} 个密钥",
|
||
"newKey": "新建密钥",
|
||
"noApiKeys": "暂无 API 密钥。",
|
||
"apiKeyActive": "有效",
|
||
"apiKeyUsageHint": "将您的密钥包含在",
|
||
"apiKeyUsageHintHeader": "请求头中。",
|
||
"apiKeyPermissionsHint": "密钥继承创建用户的权限。",
|
||
"exportData": "导出我的数据",
|
||
"exportDataDesc": "下载主机、凭据和设置的备份,以便迁移到其他设备",
|
||
"export": "导出",
|
||
"exporting": "正在导出...",
|
||
"importData": "导入我的数据",
|
||
"importDataDesc": "从 .sqlite 备份文件恢复您的主机、凭据和设置",
|
||
"importDataSelected": "已选择:{{name}}",
|
||
"selectFile": "选择文件",
|
||
"changeFile": "更改",
|
||
"import": "导入",
|
||
"importing": "正在导入...",
|
||
"exportSuccess": "数据导出成功",
|
||
"exportFailed": "数据导出失败",
|
||
"importSelectFile": "请先选择一个文件",
|
||
"importCompleted": "导入完成:已导入 {{total}} 项,跳过 {{skipped}} 项",
|
||
"importFailed": "导入失败:{{error}}",
|
||
"roleUser": "用户",
|
||
"authMethodDual": "双重认证",
|
||
"authMethodExternal": "外部认证",
|
||
"done": "完成",
|
||
"apiKeyNameRequired": "密钥名称为必填项",
|
||
"apiKeyCreated": "API 密钥“{{name}}”已创建",
|
||
"apiKeyCreateFailed": "创建 API 密钥失败",
|
||
"apiKeyUser": "用户",
|
||
"apiKeyExpires": "过期时间",
|
||
"apiKeyRevoked": "API 密钥“{{name}}”已撤销",
|
||
"apiKeyRevokeFailed": "撤销 API 密钥失败",
|
||
"passwordFieldsRequired": "当前密码和新密码均为必填项",
|
||
"passwordMismatch": "两次输入的密码不一致",
|
||
"passwordTooShort": "密码长度至少为 6 个字符",
|
||
"passwordUpdated": "密码更新成功",
|
||
"passwordUpdateFailed": "更新密码失败",
|
||
"deletePasswordRequired": "删除账户需要输入密码",
|
||
"deleteFailed": "删除账户失败",
|
||
"deleting": "正在删除...",
|
||
"colorPickerTooltip": "打开颜色选择器",
|
||
"themeSystem": "跟随系统",
|
||
"themeLight": "浅色",
|
||
"themeDark": "深色",
|
||
"themeDracula": "Dracula",
|
||
"themeCatppuccin": "Catppuccin",
|
||
"themeNord": "Nord",
|
||
"themeSolarized": "Solarized",
|
||
"themeTokyoNight": "Tokyo Night",
|
||
"themeOneDark": "One Dark",
|
||
"themeGruvbox": "Gruvbox",
|
||
"linkedProfileTitle": "已登录到 {{server}}",
|
||
"linkedProfileDescription": "此设备使用您在服务器上的账户并保留数据副本,因此即使离线也能正常工作。",
|
||
"manageSync": "管理同步",
|
||
"setUpSync": "链接到服务器",
|
||
"settingsTabsAndShortcuts": "标签页与快捷键",
|
||
"onBetaTitle": "您正在使用测试版",
|
||
"onBetaDescription": "感谢您的测试。请告诉我们遇到的问题。",
|
||
"tryBetaTitle": "抢先体验新功能",
|
||
"tryBetaDescription": "在“更新”中参加测试计划。",
|
||
"sendBetaFeedback": "发送测试版反馈",
|
||
"openUpdates": "更新"
|
||
}
|
||
}
|
||
},
|
||
"plugins": {
|
||
"capabilities": {
|
||
"credentials:read": {
|
||
"title": "查看您的密码和密钥",
|
||
"consequence": "它可以读取您能访问的任何主机的存储凭据。"
|
||
},
|
||
"ssh:connect": {
|
||
"title": "在您的服务器上运行命令",
|
||
"consequence": "在您连接的主机上,以您的权限运行任何命令。"
|
||
},
|
||
"process:spawn": {
|
||
"title": "在此机器上运行程序",
|
||
"consequence": "程序在 Termix 服务器本身上运行,而不是在您的主机上。"
|
||
},
|
||
"users:write": {
|
||
"title": "创建和修改用户账户",
|
||
"consequence": "它可以添加用户并更改其角色。"
|
||
},
|
||
"auth:provide": {
|
||
"title": "处理登录",
|
||
"consequence": "它可以添加登录方式、第二因素或 SSH 登录类型。"
|
||
},
|
||
"system:tls": {
|
||
"title": "管理证书",
|
||
"consequence": "它可以替换 Termix 通过 HTTPS 提供的证书,并响应证书颁发机构的域名验证。"
|
||
},
|
||
"device:serial": {
|
||
"title": "访问串行和 USB 设备",
|
||
"consequence": "它可以打开运行 Termix 的机器上的物理串行端口。"
|
||
},
|
||
"hosts:write": {
|
||
"title": "创建和修改主机",
|
||
"consequence": "它可以添加主机并编辑您已有的主机。"
|
||
},
|
||
"credentials:use": {
|
||
"title": "连接到您的服务器",
|
||
"consequence": "它无法查看您的密码或密钥。"
|
||
},
|
||
"credentials:write": {
|
||
"title": "保存新凭据",
|
||
"consequence": "它可以将密码和密钥添加到您保存的凭据中。"
|
||
},
|
||
"network:outbound": {
|
||
"title": "访问互联网",
|
||
"consequence": "它可以向外部服务发送请求。"
|
||
},
|
||
"network:serve": {
|
||
"title": "接受连接",
|
||
"consequence": "它在 Termix 服务器上打开一个端口。"
|
||
},
|
||
"network:broadcast": {
|
||
"title": "发送网络广播",
|
||
"consequence": "它可以向本地网络上的设备发送数据包,例如 Wake-on-LAN 信号。"
|
||
},
|
||
"users:read": {
|
||
"title": "查看用户名和角色",
|
||
"consequence": "绝不会包含密码哈希或双因素状态。"
|
||
},
|
||
"events:core": {
|
||
"title": "监控所有活动",
|
||
"consequence": "包括其他用户的活动,而不仅仅是您的。"
|
||
},
|
||
"notify:send": {
|
||
"title": "发送警报",
|
||
"consequence": "发送给您或其他用户,并通过他们设置的渠道发送。"
|
||
},
|
||
"notify:hub": {
|
||
"title": "接收所有警报",
|
||
"consequence": "存储并分发所有插件发送的警报,包括其内容。"
|
||
},
|
||
"audit:read": {
|
||
"title": "读取审计日志",
|
||
"consequence": "它可以查看谁在何时做了什么。"
|
||
},
|
||
"desktop:window": {
|
||
"title": "打开桌面窗口",
|
||
"consequence": "仅在 Termix 桌面应用中。"
|
||
},
|
||
"users:impersonate": {
|
||
"title": "以其他用户身份操作",
|
||
"consequence": "以其他用户的权限运行后台任务,例如计划作业。每次使用都会记录到审计日志中。"
|
||
},
|
||
"db:core-refs": {
|
||
"title": "读取核心账户表",
|
||
"consequence": "可以直接从数据库查询用户、角色和主机。"
|
||
},
|
||
"hosts:read": {
|
||
"title": "查看您的主机列表",
|
||
"consequence": "您已可见的主机的名称和地址。"
|
||
},
|
||
"db:own": {
|
||
"title": "存储其自身数据",
|
||
"consequence": "保存在其自身的表中,与其他插件分开。"
|
||
},
|
||
"kv:own": {
|
||
"title": "记住小型设置",
|
||
"consequence": "与其他插件分开保存。"
|
||
},
|
||
"files:own": {
|
||
"title": "存储其自身文件",
|
||
"consequence": "在磁盘上拥有独立的文件夹,与其他插件分开。"
|
||
},
|
||
"secrets:own": {
|
||
"title": "存储其自身的密钥",
|
||
"consequence": "由 Termix 加密。插件本身不持有密钥。"
|
||
},
|
||
"settings:read-core": {
|
||
"title": "读取 Termix 设置",
|
||
"consequence": "服务器设置,而非您的主机或凭据。"
|
||
},
|
||
"plugins:read": {
|
||
"title": "查看已安装的插件",
|
||
"consequence": "它可以查看哪些插件已安装并正在运行。"
|
||
},
|
||
"ui:surface": {
|
||
"title": "添加其自身的界面",
|
||
"consequence": "标签页、面板和设置,您可以稍后隐藏它们。"
|
||
}
|
||
},
|
||
"runtime": {
|
||
"needsPlugin": "{{name}} 不可用",
|
||
"needsUnknownPlugin": "此插件不可用",
|
||
"disabledHint": "它在此服务器上已关闭。",
|
||
"missingHint": "提供该插件的源已被移除。",
|
||
"failed": "{{name}} 无法启动",
|
||
"failedHint": "管理员可以查看服务器日志以获取详细信息。",
|
||
"loading": "正在加载 {{name}}",
|
||
"crashed": "{{name}} 中发生错误",
|
||
"retry": "重试"
|
||
},
|
||
"manager": {
|
||
"tabs": {
|
||
"installed": "已安装",
|
||
"browse": "浏览",
|
||
"updates": "更新",
|
||
"registries": "注册表"
|
||
},
|
||
"status": {
|
||
"summary": "已安装 {{installed}} 个,正在运行 {{running}} 个",
|
||
"running": "正在运行",
|
||
"disabled": "已禁用",
|
||
"failed": "意外停止",
|
||
"blocked": "等待其他插件",
|
||
"server": "在您的服务器上运行"
|
||
},
|
||
"groups": {
|
||
"running": "正在运行",
|
||
"notRunning": "未运行",
|
||
"onServer": "在您的服务器上"
|
||
},
|
||
"runsOnServerHint": "此插件仅在您的服务器上运行,因此在桌面应用中处于关闭状态。它在服务器上仍然正常工作。",
|
||
"sort": {
|
||
"popular": "最受欢迎",
|
||
"name": "名称",
|
||
"updated": "最近更新",
|
||
"category": "类别"
|
||
},
|
||
"columns": {
|
||
"title": "列数",
|
||
"auto": "自动",
|
||
"count": "{{count}} 列宽"
|
||
},
|
||
"table": {
|
||
"name": "名称",
|
||
"description": "描述",
|
||
"version": "版本",
|
||
"status": "状态",
|
||
"category": "类别",
|
||
"downloads": "下载量"
|
||
},
|
||
"risk": {
|
||
"critical": "严重",
|
||
"high": "高风险",
|
||
"medium": "中等风险",
|
||
"low": "低风险"
|
||
},
|
||
"contributes": {
|
||
"tabs_other": "{{count}} 个标签页",
|
||
"panels_other": "{{count}} 个面板",
|
||
"dashboardCards_other": "{{count}} 个仪表板卡片",
|
||
"actions_other": "{{count}} 个操作",
|
||
"protocols_other": "{{count}} 种连接类型",
|
||
"auth_other": "{{count}} 种登录方式",
|
||
"settings_other": "设置",
|
||
"hostCapability_other": "主机设置",
|
||
"permissions_other": "{{count}} 个角色权限",
|
||
"keybindingActions_other": "{{count}} 个快捷键",
|
||
"syncEntities_other": "桌面同步"
|
||
},
|
||
"consent": {
|
||
"enableTitle": "启用 {{name}}?",
|
||
"installTitle": "安装 {{name}}",
|
||
"updateTitle": "更新 {{name}}",
|
||
"agreeUpdate": "同意并更新",
|
||
"updateExplain": "此版本请求了您当前版本未请求的权限,因此不会自动安装。",
|
||
"newInVersion": "此版本新增内容",
|
||
"minor": "它还会添加自己的界面并存储自己的数据,这些数据与其他插件分开保存。",
|
||
"none": "它不请求任何特殊权限。",
|
||
"uploadTitle": "从文件安装 {{name}}",
|
||
"uploadWarning": "此文件未经 Termix 注册表检查或签名。仅当您自己构建或信任构建者时才安装。"
|
||
},
|
||
"confirm": {
|
||
"uninstallTitle": "卸载 {{name}}?",
|
||
"uninstallBody": "这将停止插件并删除其存储的所有内容,包括设置和密钥。您可以稍后重新安装,但数据不会恢复。",
|
||
"deleteDataTitle": "删除 {{name}} 的所有数据?",
|
||
"deleteDataBody": "其表、设置、密钥和文件将被删除,并且插件将被关闭。此操作无法撤销。",
|
||
"enableAlsoTitle": "启用 {{name}}?",
|
||
"enableAlsoBody": "运行它需要以下插件,因此它们也将被启用:{{list}}。",
|
||
"disableAlsoTitle": "禁用 {{name}}?",
|
||
"disableAlsoBody": "以下插件需要它才能运行,因此它们也将被禁用:{{list}}。",
|
||
"downgradeTitle": "回退到 {{name}} {{version}}?",
|
||
"downgradeBody": "新版本写入的数据将保持不变,旧版本可能无法识别这些数据。在您取消固定之前,插件将保持在此版本。",
|
||
"downgradeConfirm": "切换版本"
|
||
},
|
||
"toast": {
|
||
"installed": "{{name}} 已安装",
|
||
"installedNotRunning": "{{name}} 已安装但无法启动。打开它以查看原因。",
|
||
"updated": "{{name}} 已更新至 {{version}}",
|
||
"updatedMany_other": "{{count}} 个插件已更新",
|
||
"uninstalled": "{{name}} 已卸载",
|
||
"dataDeleted": "{{name}} 的数据已删除",
|
||
"failedToStart": "{{name}} 无法启动。打开它以查看原因。"
|
||
},
|
||
"errors": {
|
||
"generic": "出了点问题",
|
||
"install": "无法安装 {{name}}:{{error}}",
|
||
"update": "无法更新 {{name}}:{{error}}",
|
||
"updateAll": "无法更新插件:{{error}}",
|
||
"uninstall": "无法卸载 {{name}}:{{error}}",
|
||
"state": "无法更改 {{name}}:{{error}}",
|
||
"retry": "无法重启 {{name}}:{{error}}",
|
||
"options": "无法保存 {{name}} 的选项:{{error}}",
|
||
"deleteData": "无法删除 {{name}} 的数据:{{error}}",
|
||
"managedByServer": "此桌面已链接到服务器,插件由服务器决定。",
|
||
"hasDependents": "{{name}} 被 {{list}} 依赖。请先禁用或卸载它们。",
|
||
"missingDependencies": "{{name}} 需要 {{list}},但未安装。",
|
||
"consentChanged": "自您上次查看以来,此插件请求的权限已更改。请再次检查列表。",
|
||
"upload": "无法读取 {{name}}:{{error}}",
|
||
"developerMode": "无法更改开发者模式:{{error}}"
|
||
},
|
||
"data": {
|
||
"title": "存储的数据",
|
||
"delete": "删除数据",
|
||
"loadFailed": "无法读取此插件存储的内容。",
|
||
"tables": "表",
|
||
"kv": "键",
|
||
"settings": "设置",
|
||
"files": "文件",
|
||
"rows_other": "{{count}} 行",
|
||
"secrets_other": "{{count}} 个密钥",
|
||
"migrations_other": "已应用 {{count}} 个迁移",
|
||
"grants_other": "已授予 {{count}} 项能力"
|
||
},
|
||
"install": "安装",
|
||
"uninstall": "卸载",
|
||
"enable": "启用",
|
||
"disable": "禁用",
|
||
"restart": "重启",
|
||
"update": "更新",
|
||
"updateAll": "全部更新",
|
||
"updateTo": "更新至 {{version}}",
|
||
"review": "查看",
|
||
"reviewUpdate": "查看更新",
|
||
"updates": "更新",
|
||
"auto": "自动",
|
||
"autoUpdate": "自动更新",
|
||
"autoUpdateHint": "如果更新需要新的权限,则不会自动更新。",
|
||
"pin": "锁定此版本",
|
||
"pinHint": "保留 {{version}} 版本,并在您关闭此功能前跳过所有更新。",
|
||
"pinnedTo": "已锁定至 {{version}}",
|
||
"version": "版本",
|
||
"versionPickHint": "安装旧版本而非最新版本。除非您取消锁定,否则将保持在该版本。",
|
||
"versionPickHintInstalled": "切换到其他版本。选择非最新版本将自动锁定该版本。",
|
||
"switchVersion": "切换",
|
||
"latestVersion": "{{version}}(最新)",
|
||
"versionChange": "从 {{from}} 到 {{to}}",
|
||
"releaseNotes": "发行说明",
|
||
"noReleaseNotes": "此版本无说明。",
|
||
"viewRelease": "在 GitHub 上查看",
|
||
"showOlderReleases": "旧版本({{count}})",
|
||
"hideOlderReleases": "隐藏旧版本",
|
||
"showMoreChanges": "显示更多 {{count}} 项",
|
||
"videoTitle": "{{name}} 视频",
|
||
"changeTypes": {
|
||
"added": "新增",
|
||
"changed": "变更",
|
||
"fixed": "修复",
|
||
"removed": "移除",
|
||
"deprecated": "已弃用",
|
||
"security": "安全"
|
||
},
|
||
"installedBadge": "已安装",
|
||
"incompatible": "需要更新 Termix",
|
||
"features": "功能",
|
||
"whatItCanDo": "它能做什么",
|
||
"addsToTermix": "为 Termix 添加",
|
||
"addsToTermixHint": "卸载后,这些功能都将消失。",
|
||
"noServerAccess": "无法访问您的服务器",
|
||
"searchInstalled": "搜索已安装",
|
||
"searchPlugins": "搜索插件",
|
||
"allCategories": "全部",
|
||
"nothingMatches": "没有匹配的结果。",
|
||
"noneInstalled": "尚未安装任何插件。浏览并添加一些。",
|
||
"nothingHere": "这里什么都没有。",
|
||
"nothingHereHint": "尝试其他类别或搜索。",
|
||
"showInstalled": "显示已安装",
|
||
"allInstalled": "此处所有内容均已安装。",
|
||
"allInstalledHint": "开启“显示已安装”以查看它们。",
|
||
"communitySubmit": "如何提交",
|
||
"registries": {
|
||
"intro": "注册表是您安装的插件列表。官方注册表始终开启。您可以开启社区注册表或添加自己的注册表。",
|
||
"hostYourOwn": "托管您自己的注册表",
|
||
"add": "添加注册表",
|
||
"addTitle": "添加注册表",
|
||
"addHint": "粘贴注册表 index.json 的链接。Termix 将读取该文件并显示用于签署插件的密钥。仅添加您信任的人提供的注册表。",
|
||
"urlLabel": "索引 URL",
|
||
"check": "检查",
|
||
"addConfirm": "信任并添加",
|
||
"added": "已添加 {{name}}",
|
||
"customWarning": "此注册表中的插件未经 Termix 团队审核。注册表的所有者决定其中包含的内容。每次下载都必须由上述密钥签名。",
|
||
"keyFingerprint": "密钥 {{keyId}}",
|
||
"pluginCount_other": "{{count}} 个插件",
|
||
"officialName": "官方",
|
||
"communityName": "社区",
|
||
"alwaysOn": "始终开启",
|
||
"communityHint": "由其他人制作的插件。每个版本在列出前都经过人工和自动化检查。",
|
||
"communityConfirmTitle": "要开启社区插件吗?",
|
||
"communityConfirmBody": "社区插件由其他人制作,而非 Termix 团队。每个版本在列出前都经过人工和自动化检查,但仍可能有疏漏。仅安装您信任的插件,并检查每个插件的权限请求。",
|
||
"communityConfirm": "开启",
|
||
"communityBadge": "社区",
|
||
"communityBadgeHint": "来自社区注册表。由其他人制作,并在列出前经过审核。",
|
||
"customBadge": "自定义",
|
||
"customBadgeHint": "来自 {{name}},这是管理员添加的注册表。未经 Termix 团队审核。",
|
||
"remove": "移除",
|
||
"removeTitle": "移除 {{name}}?",
|
||
"removeBody": "其插件将不再显示在“浏览”中。您可以稍后再次添加。",
|
||
"removed": "已移除 {{name}}",
|
||
"inUse": "请先卸载来自 {{name}} 的插件:{{list}}",
|
||
"changeFailed": "无法更改注册表:{{error}}",
|
||
"loadFailed": "无法加载注册表:{{error}}",
|
||
"unreachable": "无法读取:{{error}}",
|
||
"filter": "注册表",
|
||
"allRegistries": "所有注册表",
|
||
"browseHint": "在“注册表”选项卡中启用社区插件或添加您自己的注册表。"
|
||
},
|
||
"upToDate": "所有内容均为最新。",
|
||
"lastChecked": "上次检查于 {{time}}",
|
||
"updatesReady_other": "{{count}} 个更新就绪。",
|
||
"updatesNeedReview_other": "还有 {{count}} 个需要您先审核。",
|
||
"updateAsksMore": "此更新请求更多权限,因此等待您的确认。",
|
||
"checkRegistry": "检查插件和更新",
|
||
"registryUnreachable": "无法连接到插件注册表({{error}})。已安装的插件仍可正常工作。",
|
||
"managedByServer": "此桌面已链接到服务器,由服务器决定其插件。更改需在服务器上进行。",
|
||
"browsePlugins": "浏览插件",
|
||
"loading": "加载中",
|
||
"developer": {
|
||
"title": "插件开发者模式",
|
||
"hint": "允许管理员在插件选项卡中从 .tmxplug 文件安装插件,无需经过注册表检查。用于构建和测试您自己的插件。",
|
||
"enableTitle": "要开启开发者模式吗?",
|
||
"enableBody": "管理员将能够安装 Termix 未检查的文件中的插件。插件可以执行其能力允许的任何操作,因此仅在构建或测试插件时开启此功能。",
|
||
"enable": "开启",
|
||
"installFromFile": "从文件安装",
|
||
"signedOnly": "已设置 TERMIX_REQUIRE_SIGNED_PLUGINS,因此从文件安装仍处于阻止状态。"
|
||
},
|
||
"count": {
|
||
"downloads_other": "{{formatted}} 次下载",
|
||
"downloadsHint": "某个版本被下载的次数。这并非安装数量。"
|
||
},
|
||
"unverified": "未验证",
|
||
"unverifiedHint": "从文件安装。Termix 未对其进行检查或签名。",
|
||
"reportIssue": "报告问题",
|
||
"reportTo": "向 {{author}} 报告",
|
||
"requestFeature": "请求功能",
|
||
"openSettings": "打开其设置",
|
||
"beta": {
|
||
"badge": "测试版",
|
||
"badgeHint": "此为测试版,可能存在错误。",
|
||
"try": "试用测试版 {{version}}",
|
||
"confirmTitle": "为 {{name}} 使用测试版?",
|
||
"confirmBody": "测试版会率先获得新功能和修复,但可能存在错误。您可以随时切换回稳定版。",
|
||
"confirmInstall": "安装 {{version}}",
|
||
"confirmSwitch": "使用测试版",
|
||
"leftWhileOnBeta": "{{name}} 将保持为 {{version}},直到出现更新的稳定版。",
|
||
"channel": "测试版",
|
||
"channelHint": "抢先获取新版本。它们可能存在错误。",
|
||
"waitingForStable": "已回到稳定版。将保持为 {{version}},直到出现更新的稳定版。",
|
||
"versionLabel": "{{version}}(测试版)",
|
||
"sendFeedback": "发送测试版反馈"
|
||
},
|
||
"documentation": "文档",
|
||
"envVars": "环境变量",
|
||
"envRequired": "必填",
|
||
"envDefault": "默认值:{{value}}"
|
||
}
|
||
},
|
||
"settings": {
|
||
"secretSet": "已设置",
|
||
"secretNotSet": "未设置",
|
||
"secretReplace": "替换",
|
||
"pluginSettingsSaved": "设置已保存",
|
||
"pluginSettingsInvalid": "部分设置无法保存。请检查高亮显示的字段。",
|
||
"pluginSettingsSaveFailed": "保存设置失败",
|
||
"pluginSettingsLoadFailed": "加载设置失败",
|
||
"featureUnavailable": "{{name}} 当前不可用。这些设置已保存,但不会生效。",
|
||
"account": "账户",
|
||
"security": "安全",
|
||
"apiKeys": "API 密钥",
|
||
"data": "数据与同步",
|
||
"interface": "界面",
|
||
"appearance": "外观",
|
||
"keybindings": "快捷键",
|
||
"adminGeneral": "常规",
|
||
"adminUsers": "用户",
|
||
"adminSessions": "会话",
|
||
"adminRoles": "角色",
|
||
"adminHostDefaults": "主机默认值",
|
||
"adminBranding": "品牌定制",
|
||
"adminDatabase": "数据库",
|
||
"adminSsl": "SSL",
|
||
"adminApiKeys": "API 密钥",
|
||
"adminAuditLog": "审计日志",
|
||
"bandYou": "您的账户",
|
||
"bandApp": "此应用",
|
||
"bandPlugins": "插件",
|
||
"bandInstance": "此服务器",
|
||
"searchPlaceholder": "搜索设置",
|
||
"noResults": "没有匹配的设置。",
|
||
"pages": "页面",
|
||
"instanceSettings": "服务器设置",
|
||
"nothingHere": "此处无需设置。",
|
||
"searchPage": "搜索此页面",
|
||
"noPageMatches": "此页面无匹配内容。",
|
||
"updates": {
|
||
"title": "更新",
|
||
"betaProgram": "测试版计划",
|
||
"betaIntro": "测试版是 Termix 下一版本的早期构建。当有新功能可供尝试时,它们会在周二和周五发布。测试版可能存在错误,您的反馈有助于完善稳定版。",
|
||
"termixBetas": "Termix 测试版",
|
||
"termixBetasHint": "通知我新的测试版,而不仅仅是稳定版。",
|
||
"runningBetaBuild": "您正在运行测试版构建。要退出,请切换回稳定版镜像或安装程序。",
|
||
"howToInstall": "如何获取测试版",
|
||
"desktopInstall": "下载测试版安装程序并覆盖当前版本安装。",
|
||
"downloadBeta": "下载 {{version}}",
|
||
"dockerInstall": "将镜像更改为测试版标签并重启容器:",
|
||
"copy": "复制",
|
||
"copied": "已复制",
|
||
"copyFailed": "无法复制",
|
||
"learnMore": "了解更多关于测试版的信息",
|
||
"feedback": "反馈",
|
||
"feedbackHint": "发现错误或有想法?反馈将直接发送给开发人员,并自动填入您的版本信息。",
|
||
"sendFeedback": "发送测试版反馈",
|
||
"releases": "版本",
|
||
"thisVersion": "当前版本",
|
||
"newestStable": "最新稳定版",
|
||
"newestBeta": "最新测试版",
|
||
"noRelease": "暂无",
|
||
"pluginBetas": "插件测试版",
|
||
"pluginBetasIntro": "每个插件可以独立使用测试版。要尝试,请打开插件并点击“试用测试版”。",
|
||
"openPlugins": "打开插件",
|
||
"waitingForStable": "已返回稳定版。在出现更新的稳定版之前,将保持 {{version}}。",
|
||
"backToStable": "返回稳定版",
|
||
"allPluginsBeta": "所有插件使用测试版",
|
||
"allPluginsStable": "所有插件返回稳定版",
|
||
"saveFailed": "无法保存更改"
|
||
}
|
||
},
|
||
"managerCard": {
|
||
"refresh": "刷新",
|
||
"retry": "重试",
|
||
"sudoHint": "在主机编辑器中为此主机设置 sudo 密码以启用特权操作。",
|
||
"noData": "无数据",
|
||
"filter": "筛选..."
|
||
},
|
||
"sync": {
|
||
"server": "Termix 服务器",
|
||
"account": "账户",
|
||
"status": "状态",
|
||
"never": "从未",
|
||
"justNow": "刚刚",
|
||
"minutesAgo_other": "{{count}} 分钟前",
|
||
"hoursAgo_other": "{{count}} 小时前",
|
||
"actionFailed": "操作失败。请重试。",
|
||
"unlinkedTitle": "仅限此设备",
|
||
"unlinkedBody": "Termix 在此设备上独立运行。将其链接到您的 Termix 服务器以保持所有数据同步。",
|
||
"unlinkedPointHosts": "您的主机、凭据、代码片段和设置将跟随您到每一台设备。",
|
||
"unlinkedPointOffline": "当服务器无法连接时,一切仍然正常工作,并在稍后同步。",
|
||
"unlinkedPointAccount": "您使用服务器账户登录,其他人共享给您的主机也会显示在这里。",
|
||
"linkButton": "链接到服务器",
|
||
"state": {
|
||
"syncing": "同步中",
|
||
"offline": "服务器无法连接",
|
||
"error": "同步已停止",
|
||
"signedOut": "已退出登录",
|
||
"synced": "已于 {{time}} 同步"
|
||
},
|
||
"pending_other": "{{count}} 项更改等待同步",
|
||
"signInAgain": "重新登录",
|
||
"syncNow": "立即同步",
|
||
"unlink": "取消链接",
|
||
"unlinked": "此设备已不再链接",
|
||
"unlinkTitle": "取消关联此设备?",
|
||
"unlinkDescription": "这将停止同步并退出服务器登录。无论选择如何,其他用户与您共享的主机都将从此设备移除。",
|
||
"unlinkKeepTitle": "保留我的数据",
|
||
"unlinkKeepBody": "您的主机、凭据和设置将保留在此设备上,并继续独立运行。",
|
||
"unlinkRemoveTitle": "移除已同步的数据",
|
||
"unlinkRemoveBody": "所有来自服务器的数据都将从此设备移除。仅保留仅存储在此设备上的主机。",
|
||
"conflictsTitle": "冲突",
|
||
"conflictsDescription": "这些项目在此设备和服务器上同时被修改。当前使用的是服务器版本。选择“保留我的”可将您的版本发送到服务器。",
|
||
"keepMine": "保留我的",
|
||
"keepServer": "保留服务器版本",
|
||
"errorsTitle": "未同步",
|
||
"errorsDescription": "服务器未接受这些更改。它们将保留在此设备上。",
|
||
"errorPermission": "您在服务器上的账户无权进行此更改。",
|
||
"retry": "重试",
|
||
"whatSyncs": "同步内容",
|
||
"whatSyncsDescription": "关闭任何您希望仅保留在此设备上的项目。",
|
||
"coreGroup": "Termix",
|
||
"notOnServer": "服务器上没有此项",
|
||
"notOnDevice": "尚未同步到此设备",
|
||
"localOnlyHint": "您也可以从单个主机或文件夹的设置中,选择仅将其保留在此设备上。",
|
||
"originTitle": "连接起点",
|
||
"originDescription": "从此设备直接连接主机,或通过服务器连接。您可以为每个主机单独设置。",
|
||
"originLocal": "此设备",
|
||
"originRemote": "服务器",
|
||
"entities": {
|
||
"hosts": "主机",
|
||
"sshCredentials": "凭据",
|
||
"sshFolders": "文件夹",
|
||
"userPreferences": "偏好设置",
|
||
"pluginUserSettings": "插件设置",
|
||
"sharedHosts": "与您共享的主机",
|
||
"sharedCredentials": "与您共享的凭据",
|
||
"vaultProfiles": "Vault 配置文件",
|
||
"snippetFolders": "代码片段文件夹",
|
||
"snippets": "代码片段",
|
||
"dashboardServiceLinks": "服务链接",
|
||
"homepageItems": "主页项目",
|
||
"networkTopology": "网络拓扑图",
|
||
"workspaces": "工作区",
|
||
"hostDefaults": "主机默认设置",
|
||
"hostDefaultsAdmin": "服务器主机默认设置",
|
||
"aiProviders": "AI 提供商",
|
||
"homepageLayouts": "主页布局",
|
||
"accountProfile": "账户资料"
|
||
},
|
||
"proxy": {
|
||
"title": "反向代理",
|
||
"description": "仅在服务器前有 Cloudflare Access 或登录页面等中间层时才需要。",
|
||
"headersTitle": "额外标头",
|
||
"headersHint": "随每次请求发送到服务器,例如 Cloudflare Access 服务令牌。",
|
||
"headerName": "标头名称",
|
||
"headerValue": "值",
|
||
"savedValue": "已保存,输入以修改",
|
||
"addHeader": "添加标头",
|
||
"removeHeader": "移除标头",
|
||
"basicAuthTitle": "用户名和密码",
|
||
"basicAuthHint": "用于在 Termix 之前要求输入用户名和密码的代理。",
|
||
"username": "用户名",
|
||
"password": "密码",
|
||
"allowInvalidCertificate": "信任自签名证书",
|
||
"allowInvalidCertificateHint": "仅适用于您自己的服务器,且其证书不受知名机构信任时。",
|
||
"saved": "已保存"
|
||
},
|
||
"problems": {
|
||
"invalidUrl": "这看起来不像一个有效的网址。",
|
||
"unreachable": "无法连接到服务器。请检查地址并确认服务器正在运行。",
|
||
"unreachableWithReason": "无法连接到服务器:{{reason}}",
|
||
"tlsUntrusted": "服务器证书不受信任。如果您使用的是带有自签名证书的自有服务器,请启用下方的选项。",
|
||
"basicAuthRequired": "服务器前置组件要求输入用户名和密码。请在下方输入。",
|
||
"proxyLogin": "返回的是登录页面或代理,而非 Termix。请在下方添加所需的请求头,或检查地址。",
|
||
"notTermix": "该地址上没有 Termix 服务器。如果它运行在某个路径下,请包含该路径,例如 https://example.com/termix。",
|
||
"versionMismatch": "该服务器运行的是旧版 Termix。请将其更新到 2.9 或更高版本以进行链接。",
|
||
"differentAccount": "您登录了不同的账户。请登录与此设备链接的账户,或先取消链接。"
|
||
},
|
||
"wizard": {
|
||
"title": "链接到 Termix 服务器",
|
||
"reloginTitle": "重新登录",
|
||
"savedServers": "最近使用的服务器",
|
||
"removeServer": "从列表中移除",
|
||
"serverDescription": "输入您在浏览器中打开 Termix 时使用的地址。",
|
||
"signinDescription": "登录到 {{url}}",
|
||
"chooseDescription": "此设备已有数据。您希望如何处理?",
|
||
"finishingDescription": "正在链接此设备。",
|
||
"serverUrl": "服务器地址",
|
||
"serverUrlHint": "例如 https://termix.example.com",
|
||
"showProxySettings": "反向代理设置",
|
||
"hideProxySettings": "隐藏反向代理设置",
|
||
"continue": "继续",
|
||
"back": "返回",
|
||
"mergeTitle": "合并到我的账户",
|
||
"mergeBody_other": "此设备上的 {{count}} 个项目将添加到您的账户。您的账户中已存在的项目将保持服务器上的原样。",
|
||
"replaceTitle": "用我的账户替换",
|
||
"replaceBody_other": "此设备上的 {{count}} 个项目将被移除,此设备将从您的账户获取所有数据。仅保留在此设备上的主机将保留。",
|
||
"link": "链接",
|
||
"linking": "正在链接并运行首次同步...",
|
||
"linked": "已链接。您的数据正在同步。",
|
||
"signedInAgain": "已登录。同步已恢复运行。"
|
||
}
|
||
},
|
||
"hostDefaults": {
|
||
"source": {
|
||
"folder": "文件夹 {{name}}",
|
||
"user": "我的默认设置",
|
||
"admin": "服务器",
|
||
"builtin": "内置"
|
||
},
|
||
"custom": "自定义",
|
||
"setHere": "在此设置",
|
||
"notSet": "未设置",
|
||
"notSetTitle": "此项未设置默认值",
|
||
"resetTitle": "此主机设置了其自身的值。点击以再次使用来自 {{source}} 的默认值",
|
||
"clearTitle": "在此级别设置。点击以清除并使用 {{source}} 代替",
|
||
"inheritedTitle": "遵循来自 {{source}} 的默认值",
|
||
"titleAdmin": "服务器主机默认设置",
|
||
"titleUser": "我的主机默认设置",
|
||
"titleFolder": "文件夹默认设置:{{name}}",
|
||
"descriptionAdmin": "此服务器上所有主机的默认设置。用户自己的默认设置、文件夹的默认设置或主机本身仍可以设置不同的值。修改字段以在此处设置,或清除字段以保留未设置状态。",
|
||
"descriptionUser": "您所有主机的默认设置,覆盖服务器默认设置。文件夹或主机本身仍可以设置不同的值。修改字段以在此处设置,或清除字段以保留未设置状态。",
|
||
"descriptionFolder": "此文件夹及其子文件夹中主机的默认设置,覆盖您自己的默认设置。主机本身仍可以设置不同的值。修改字段以在此处设置,或清除字段以保留未设置状态。",
|
||
"save": "保存默认设置",
|
||
"saved_other": "默认设置已保存。已更新 {{count}} 个主机。",
|
||
"savedInBackground": "默认设置已保存。正在后台更新主机。",
|
||
"appliedToHosts_other": "已使用新默认设置更新 {{count}} 个主机。",
|
||
"saveFailed": "无法保存默认设置",
|
||
"loadFailed": "无法加载默认设置",
|
||
"confirmTitle": "保存默认设置?",
|
||
"confirmChanges_other": "{{count}} 个主机遵循这些默认设置并将发生变更。",
|
||
"confirmNoChanges": "现有主机无变更。新主机将使用这些默认设置开始。",
|
||
"menuMyDefaults": "我的主机默认设置",
|
||
"folderDefaultsAction": "文件夹默认设置",
|
||
"adminSectionDescription": "设置此服务器上每个主机遵循的默认值,涵盖主机拥有的每个设置,包括每个插件的设置。用户和文件夹可以在其之上设置自己的默认值,任何主机仍可以使用其自身的值。",
|
||
"editServerDefaults": "编辑服务器默认设置",
|
||
"resetMenu": "重置",
|
||
"resetAll": "全部恢复为默认值",
|
||
"resetCore": "连接和 SSH 恢复为默认值",
|
||
"resetDone_other": "{{count}} 个主机现在使用其默认值。"
|
||
},
|
||
"panel": {
|
||
"clearSearch": "清除搜索",
|
||
"gridView": "网格",
|
||
"listView": "列表",
|
||
"compactRows": "紧凑行",
|
||
"comfortableRows": "宽松行"
|
||
},
|
||
"fields": {
|
||
"secretSaved": "已保存。输入以替换。"
|
||
},
|
||
"sharing": {
|
||
"revokeConfirm": "移除 {{name}} 的访问权限?",
|
||
"revoke": "移除访问权限"
|
||
},
|
||
"manage": {
|
||
"searchSettings": "搜索设置",
|
||
"noMatchingSettings": "没有匹配的设置。",
|
||
"sections": "部分",
|
||
"sectionNeedsAttention": "此处有内容需要关注",
|
||
"needsAttention_other": "{{count}} 项需要关注。",
|
||
"bandHost": "主机",
|
||
"bandFeatures": "协议和插件",
|
||
"bandCredential": "凭据",
|
||
"sshConnection": "SSH 连接",
|
||
"errorAddressRequired": "必须提供地址。",
|
||
"errorPortRange": "请使用 1 到 65535 之间的端口。",
|
||
"defaults": "默认值",
|
||
"searchHosts": "搜索主机",
|
||
"searchCredentials": "搜索凭据",
|
||
"searchDefaults": "搜索默认值",
|
||
"addCredential": "添加凭据",
|
||
"nothingMatches": "没有匹配项",
|
||
"nothingYet": "此处暂无内容",
|
||
"emptyHostsHint": "添加一个主机,它就会显示在这里,位于你指定的文件夹中。",
|
||
"emptyCredentialsHint": "保存的凭据可供任何主机重复使用。",
|
||
"collapse": "折叠",
|
||
"expand": "展开",
|
||
"cannotBeUndone": "此操作无法撤销。",
|
||
"hostNotFound": "找不到该主机。请尝试刷新列表。",
|
||
"hostCount_other": "{{count}} 个主机",
|
||
"credentialCount_other": "{{count}} 个凭据",
|
||
"newHost": "新建主机",
|
||
"newCredential": "新建凭据",
|
||
"advanced": "高级",
|
||
"pickHost": "选择一个主机进行编辑",
|
||
"pickCredential": "选择一个凭据进行编辑",
|
||
"pickDefaults": "选择一个默认值级别进行编辑",
|
||
"pickHint": "连接的所有设置都在这里,已分组以便查找。"
|
||
},
|
||
"rbac": {
|
||
"roles": {
|
||
"admin": "管理员",
|
||
"user": "用户"
|
||
}
|
||
}
|
||
}
|