- i18n: complete remaining internationalization across the UI

- Locales: add and align keys (common.enterValidValue, apiKeyInput.*, jsonEditor.*, claudeConfig.*); fix zh common.unknown mapping
- ProviderForm: localize labels/placeholders/hints/errors; unify JSON/auth validation to providerForm.*; add wizard CTA for Codex custom with i18n; cancel uses common.cancel
- CodexConfigEditor: i18n for quick wizard, labels/placeholders/hints, common config modal (title/help/buttons)
- ClaudeConfigEditor: i18n for main label, common-config toggle/button, modal title/help, footer buttons
- EndpointSpeedTest: localize failed/noEndpoints/done and aria labels
- ApiKeyInput: i18n for placeholder and show/hide aria
- JsonEditor: i18n linter messages
- PresetSelector: remove hardcoded defaults, use i18n keys
- UpdateBadge: i18n close aria
- Build/typecheck: pass; scan shows no visible hardcoded Chinese strings outside locales
This commit is contained in:
Jason
2025-10-07 23:31:00 +08:00
parent 420a4234de
commit 01da9a1eac
13 changed files with 425 additions and 154 deletions

View File

@@ -369,7 +369,7 @@ export default function SettingsModal({ onClose, onImportSuccess }: SettingsModa
alert(`${t("settings.configExported")}\n${result.filePath}`);
}
} catch (error) {
console.error("导出配置失败:", error);
console.error(t("settings.exportFailedError"), error);
alert(`${t("settings.exportFailed")}: ${error}`);
}
};
@@ -384,7 +384,7 @@ export default function SettingsModal({ onClose, onImportSuccess }: SettingsModa
setImportError('');
}
} catch (error) {
console.error('选择文件失败:', error);
console.error(t("settings.selectFileFailed") + ":", error);
alert(`${t("settings.selectFileFailed")}: ${error}`);
}
};