Files
Termix/plugins/telemetry/locales/translated/zh_CN.json
T
Luke GustafsonandZacharyZcR 6b708106e1 release-2.9.1 (#1557)
* fix(sso): send the PKCE verifier for GitHub login (#1534)

* fix(remote-desktop): clip cursor overflow without disabling zoom (#1535)

* test(remote-desktop): preserve sessions beyond one hour (#1536)

* fix(hosts): expose controls for overflowing editor tabs (#1537)

* fix(hosts): expose controls for overflowing editor tabs

* test(hosts): mock resize observation in admin panel tests

* fix(status): skip TCP probes while host sessions are active (#1538)

* fix(database): batch session activity persistence (#1539)

* docs(api): describe cookie and API key authentication (#1540)

* fix(snippets): repair missing note column on SQLite upgrades (#1541)

* fix(docker): retain stored SSH credential association (#1543)

* fix(file-manager): render transfer toasts without plugin hooks (#1546)

* feat(hosts): keep compact row actions inline (#1547)

* fix(auth): allow retrying unavailable second-factor interfaces (#1549)

* fix(auth): reject unresolved legacy identity provisioning (#1550)

* fix(desktop): ship the plugin SDK inside Mac App Store builds (#1551)

* fix(tmux): pass full session info to the terminal's session picker (#1552)

The tmux.sessions service reduced detected sessions to bare names, but the
picker reads session.name, so every entry rendered blank and selecting one
sent an empty name, which created a new session instead of attaching.

* fix(ssh): read force keyboard-interactive as a boolean when resolving hosts (#1553)

The column holds the text "true"/"false", and the resolver passed it
through as-is. The string "false" is truthy, so the password provider
treated every saved host as forced keyboard-interactive and left the
password out. Jump hops are built straight from the resolved host, so a
password hop whose server doesn't offer keyboard-interactive failed with
"All configured authentication methods failed".

* fix(database): batch database saves for bulk host writes (#1554)

* fix(database): yield to the event loop between database saves

Each SQLite save serializes and encrypts the whole database into new
buffers, which V8 only releases once the event loop turns. Boot
migrations and bulk host import write plugin settings per host and per
key in an awaited loop, so hundreds of full copies piled up and the
container ran out of memory.

* fix(database): save once per bulk host write instead of once per row

On SQLite every repository write force-saves the whole database. Boot
plugin data migrations, host defaults materialization and the bulk
host routes write one row per host per setting, so they serialized and
encrypted the full database hundreds of times in a row.

DatabaseSaveTrigger.batched wraps a function so force saves made while
it runs collapse into a single save when it finishes. Nested scopes fold
into the outer one, and work that outlives its scope saves normally.

* feat(hosts): add instance-wide predefined tag suggestions (#1548)

* feat(hosts): add shared predefined tag suggestions

* style(hosts): format tag catalog routes

* test(database): advance fake timers past the save yield (#1555)

* fix(i18n): complete Simplified Chinese core and plugin translations (#1542)

* fix(i18n): complete Chinese onboarding and navigation labels

* fix(i18n): translate remaining Chinese core and plugin interfaces

* fix(i18n): translate host editor tab overflow controls

* fix(i18n): use consistent Chinese fleet terminology

* fix(i18n): localize hardcoded controls and plugin views

* fix(i18n): translate built-in homepage widget catalog

* test(homepage): follow translated timezone placeholder

* fix(i18n): translate plugin-provided homepage widgets

* fix(i18n): localize feature settings section titles

* fix: 2.8 oidc accounts unable to sign in after upgrading (#1381)

* fix: plugins losing the saved ssh login when copying a host (#1391)

* fix: fleets, proxmox and automations not getting the host sudo password

* fix: host imports running a defaults pass and metrics restart per host (#1384)

* fix: high cpu from status probes and full database saves on every sample (#1300)

* fix: user data export freezing the server (#1393)

* fix: op:// secret references rejected as ssh keys on credentials (#1394)

* fix: slow file deletes from the trash lookups on every delete (#1390)

* fix: add openapi docs and error handling to host tag routes

* test: compare download stream buffers directly so it stops timing out

* chore: drop em dash from host row comment

* chore: update release notes for 2.9.1

* fix: restore space to add host tags and redesign predefined tags editor

* fix: host key silently accepted when the host is missing from the database (#1397)

* fix: clearer host login failed status label and fix its translations (#1396)

* chore: add host key and status label fixes to release notes

* fix: sso and ldap provider dialogs overflowing the screen and using mismatched toggles

* chore: increment ver

* fix(audit): store plugin entries with no acting user as a null user_id (#1556)

Plugin audit entries written outside a request used the literal "system"
as user_id. That column references users.id, so the insert was refused
(Postgres logs it as an FK violation) and the entry was silently dropped.
Write null instead and keep "system" / plugin:<id> in username.

* chore: add sso/ldap dialog and audit log fixes to release notes

* fix: tunnels and host settings missing from shared hosts on desktop

* fix: remote desktop logins missing from shared hosts on desktop

* fix: simplify host status to online/offline and keep it live without a refresh

* chore: sync Crowdin translations for 2.9.1

---------

Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
2026-10-04 15:11:41 -05:00

62 lines
2.5 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"permissions": {
"manage": {
"title": "管理使用情况统计信息",
"description": "查看已发送的使用统计信息,立即发送并重置实例 ID。"
}
},
"settings": {
"enabled": {
"label": "分享匿名使用统计数据",
"description": "每天发送一份简短的匿名摘要,以帮助改进 Termix。摘要中绝不包含用户名、主机名、IP 地址或凭据。"
},
"includePlatform": {
"label": "包含平台信息",
"description": "操作系统、CPU架构、Node.js版本、数据库类型以及Termix的安装方式(Docker、桌面应用程序或服务器)。"
},
"includeFeatureUsage": {
"label": "包含功能使用",
"description": "自上次报告以来,各类标签页的打开次数以及 SSH 登录次数总计是多少?用户可以在个人资料中关闭自己的相关功能。"
},
"includePlugins": {
"label": "包含已安装的功能",
"description": "哪些内置功能已安装并正在运行?"
},
"instanceId": {
"label": "实例 ID"
},
"shareFeatureUsage": {
"label": "请包含我的功能使用情况",
"description": "匿名使用统计数据会统计您打开的标签页类型。不会发送任何关于您或您的主机的信息。"
}
},
"status": {
"title": "状态",
"on": "每天分享一次使用统计数据。",
"off": "不分享使用统计数据",
"lockedOn": "此功能由 ENABLE_TELEMETRY 环境变量启用。请修改该变量。",
"lockedOff": "此功能已通过 ENABLE_TELEMETRY 环境变量关闭。请更改该变量。",
"instanceId": "实例 ID: {{id}}",
"noInstanceId": "暂无实例 ID",
"lastSent": "最后发送 {{date}}",
"neverSent": "尚未发送",
"nextSend": "下一份报告截止日期 {{date}}",
"lastError": "最后一次尝试失败: {{error}}",
"preview": "预览报告",
"sendNow": "立即发送",
"sending": "正在发送...",
"sent": "已发送使用统计信息",
"notSent": "使用情况统计已关闭,未发送任何内容。",
"resetId": "重置实例 ID",
"resetIdConfirm": "重置实例 ID?以后的报告将显示为新安装的实例。",
"resetIdDone": "实例 ID 重置",
"previewTitle": "下一篇报告",
"previewDescription": "这正是现在会发送的内容。",
"close": "关闭",
"loadFailed": "无法加载使用情况统计状态"
},
"plugin": {
"name": "Usage Statistics"
}
}