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
This commit is contained in:
ZacharyZcR authored and GitHub committed 2026-10-03 21:37:00 +08:00
1 parent 13f5736d8f
commit 0214a81e5d
78 files changed
+2423 -1833

No files matched your search

+1 -1
View File
@@ -150,7 +150,7 @@ export function AdminApiKeysSection({
<span className="text-accent-brand">*</span>
</label>
<Input
placeholder="e.g., CI Pipeline"
placeholder={t("placeholders.apiKeyName")}
value={newKeyName}
onChange={(e) => setNewKeyName(e.target.value)}
className="text-xs"
+3 -3
View File
@@ -183,7 +183,7 @@ export function CredentialEditorView({
{t("hosts.friendlyNameLabel")}
</label>
<Input
placeholder="e.g. Production SSH Key"
placeholder={t("placeholders.credentialName")}
value={credForm.name}
onChange={(e) => setCredField("name", e.target.value)}
/>
@@ -203,7 +203,7 @@ export function CredentialEditorView({
{t("hosts.descriptionLabel")}
</label>
<Input
placeholder="Optional details..."
placeholder={t("placeholders.optionalDetails")}
value={credForm.description}
onChange={(e) => setCredField("description", e.target.value)}
/>
@@ -278,7 +278,7 @@ export function CredentialEditorView({
{t("hosts.username")}
</label>
<Input
placeholder="e.g. root or deploy"
placeholder={t("placeholders.sshUsername")}
value={credForm.username}
onChange={(e) => setCredField("username", e.target.value)}
/>
+1 -1
View File
@@ -1444,7 +1444,7 @@ export function HostEditor({
{t("hosts.friendlyNameLabel")}
</label>
<Input
placeholder="e.g. Production SSH Key"
placeholder={t("placeholders.credentialName")}
value={quickCredentialName}
onChange={(e) => setQuickCredentialName(e.target.value)}
/>
+2 -2
View File
@@ -208,7 +208,7 @@ export function HostEditorGeneralTab({
{t("hosts.addressIp")}
</label>
<Input
placeholder="10.0.0.1 or example.com"
placeholder={t("placeholders.hostAddress")}
value={form.ip}
onChange={(e) => setField("ip", e.target.value)}
/>
@@ -220,7 +220,7 @@ export function HostEditorGeneralTab({
{t("hosts.friendlyName")}
</label>
<Input
placeholder="e.g. Web Server Production"
placeholder={t("placeholders.hostName")}
value={form.name}
onChange={(e) => setField("name", e.target.value)}
/>