- 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:
@@ -17,7 +17,25 @@
|
||||
"loading": "Loading...",
|
||||
"success": "Success",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"enterValidValue": "Please enter a valid value"
|
||||
},
|
||||
"apiKeyInput": {
|
||||
"placeholder": "Enter API Key",
|
||||
"show": "Show API Key",
|
||||
"hide": "Hide API Key"
|
||||
},
|
||||
"jsonEditor": {
|
||||
"mustBeObject": "Configuration must be a JSON object, not an array or other type",
|
||||
"invalidJson": "Invalid JSON format"
|
||||
},
|
||||
"claudeConfig": {
|
||||
"configLabel": "Claude Code settings.json (JSON) *",
|
||||
"writeCommonConfig": "Write Common Config",
|
||||
"editCommonConfig": "Edit Common Config",
|
||||
"editCommonConfigTitle": "Edit Common Config Snippet",
|
||||
"commonConfigHint": "This snippet will be merged into settings.json when 'Write Common Config' is checked",
|
||||
"fullSettingsHint": "Full Claude Code settings.json content"
|
||||
},
|
||||
"header": {
|
||||
"viewOnGithub": "View on GitHub",
|
||||
@@ -96,7 +114,8 @@
|
||||
"upToDate": "Up to Date",
|
||||
"releaseNotes": "Release Notes",
|
||||
"viewReleaseNotes": "View release notes for this version",
|
||||
"viewCurrentReleaseNotes": "View current version release notes"
|
||||
"viewCurrentReleaseNotes": "View current version release notes",
|
||||
"exportFailedError": "Export config failed:"
|
||||
},
|
||||
"apps": {
|
||||
"claude": "Claude Code",
|
||||
@@ -120,5 +139,114 @@
|
||||
"selectConfigDirFailed": "Failed to select config directory:",
|
||||
"getDefaultConfigDirFailed": "Failed to get default config directory:",
|
||||
"openReleaseNotesFailed": "Failed to open release notes:"
|
||||
},
|
||||
"providerForm": {
|
||||
"supplierName": "Provider Name",
|
||||
"supplierNameRequired": "Provider Name *",
|
||||
"supplierNamePlaceholder": "e.g., Anthropic Official",
|
||||
"websiteUrl": "Website URL",
|
||||
"websiteUrlPlaceholder": "https://example.com (optional)",
|
||||
"apiEndpoint": "API Endpoint",
|
||||
"apiEndpointPlaceholder": "https://your-api-endpoint.com",
|
||||
"codexApiEndpointPlaceholder": "https://your-api-endpoint.com/v1",
|
||||
"manageAndTest": "Manage & Test",
|
||||
"configContent": "Config Content",
|
||||
"useConfigWizard": "Use Configuration Wizard",
|
||||
"manualConfig": "Manually configure provider, requires complete configuration, or",
|
||||
"officialNoApiKey": "Official login does not require API Key, save directly",
|
||||
"codexOfficialNoApiKey": "Official does not require API Key, save directly",
|
||||
"kimiApiKeyHint": "Fill in to get model list",
|
||||
"apiKeyAutoFill": "Just fill in here, config below will be auto-filled",
|
||||
"codexApiKeyAutoFill": "Just fill in here, auth.json below will be auto-filled",
|
||||
"getApiKey": "Get API Key",
|
||||
"parameterConfig": "Parameter Config - {{name}} *",
|
||||
"mainModel": "Main Model (optional)",
|
||||
"mainModelPlaceholder": "e.g., GLM-4.5",
|
||||
"fastModel": "Fast Model (optional)",
|
||||
"fastModelPlaceholder": "e.g., GLM-4.5-Air",
|
||||
"modelHint": "💡 Leave blank to use provider's default model",
|
||||
"apiHint": "💡 Fill in Claude API compatible service endpoint",
|
||||
"fillSupplierName": "Please fill in provider name",
|
||||
"fillConfigContent": "Please fill in configuration content",
|
||||
"fillParameter": "Please fill in {{label}}",
|
||||
"configJsonError": "Config JSON format error, please check syntax",
|
||||
"authJsonRequired": "auth.json must be a JSON object",
|
||||
"authJsonError": "auth.json format error, please check JSON syntax",
|
||||
"fillAuthJson": "Please fill in auth.json configuration",
|
||||
"fillApiKey": "Please fill in OPENAI_API_KEY",
|
||||
"visitWebsite": "Visit {{url}}"
|
||||
},
|
||||
"endpointTest": {
|
||||
"title": "API Endpoint Management",
|
||||
"endpoints": "endpoints",
|
||||
"autoSelect": "Auto Select",
|
||||
"testSpeed": "Test",
|
||||
"testing": "Testing",
|
||||
"addEndpointPlaceholder": "https://api.example.com",
|
||||
"done": "Done",
|
||||
"noEndpoints": "No endpoints",
|
||||
"failed": "Failed",
|
||||
"enterValidUrl": "Please enter a valid URL",
|
||||
"invalidUrlFormat": "Invalid URL format",
|
||||
"onlyHttps": "Only HTTP/HTTPS supported",
|
||||
"urlExists": "This URL already exists",
|
||||
"saveFailed": "Save failed, please try again",
|
||||
"loadEndpointsFailed": "Failed to load custom endpoints:",
|
||||
"addEndpointFailed": "Failed to add custom endpoint:",
|
||||
"removeEndpointFailed": "Failed to remove custom endpoint:",
|
||||
"pleaseAddEndpoint": "Please add an endpoint first",
|
||||
"testUnavailable": "Speed test unavailable",
|
||||
"noResult": "No result returned",
|
||||
"testFailed": "Speed test failed: {{error}}"
|
||||
},
|
||||
"codexConfig": {
|
||||
"quickWizard": "Quick Configuration Wizard",
|
||||
"authJson": "auth.json (JSON) *",
|
||||
"authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",
|
||||
"authJsonHint": "Codex auth.json configuration content",
|
||||
"configToml": "config.toml (TOML)",
|
||||
"configTomlHint": "Codex config.toml configuration content",
|
||||
"writeCommonConfig": "Write Common Config",
|
||||
"editCommonConfig": "Edit Common Config",
|
||||
"editCommonConfigTitle": "Edit Codex Common Config Snippet",
|
||||
"commonConfigHint": "This snippet will be appended to the end of config.toml when 'Write Common Config' is checked",
|
||||
"wizardHint": "Enter key parameters, the system will automatically generate standard auth.json and config.toml configuration.",
|
||||
"apiKeyLabel": "API Key *",
|
||||
"apiKeyPlaceholder": "sk-your-api-key-here",
|
||||
"supplierNameLabel": "Provider Name *",
|
||||
"supplierNamePlaceholder": "e.g., Codex Official",
|
||||
"supplierNameHint": "Will be displayed in the provider list, can use Chinese",
|
||||
"supplierCodeLabel": "Provider Code (English)",
|
||||
"supplierCodePlaceholder": "custom (optional)",
|
||||
"supplierCodeHint": "Will be used as identifier in config file, defaults to custom",
|
||||
"apiUrlLabel": "API Request URL *",
|
||||
"apiUrlPlaceholder": "https://your-api-endpoint.com/v1",
|
||||
"websiteLabel": "Website URL",
|
||||
"websitePlaceholder": "https://example.com",
|
||||
"websiteHint": "Official website address (optional)",
|
||||
"modelNameLabel": "Model Name *",
|
||||
"modelNamePlaceholder": "gpt-5-codex",
|
||||
"configPreview": "Configuration Preview",
|
||||
"applyConfig": "Apply Configuration"
|
||||
},
|
||||
"kimiSelector": {
|
||||
"modelConfig": "Model Configuration",
|
||||
"mainModel": "Main Model",
|
||||
"fastModel": "Fast Model",
|
||||
"refreshModels": "Refresh Model List",
|
||||
"pleaseSelectModel": "Please select a model",
|
||||
"noModels": "No models available",
|
||||
"fillApiKeyFirst": "Please fill in API Key first",
|
||||
"requestFailed": "Request failed: {{error}}",
|
||||
"invalidData": "Invalid response data format",
|
||||
"fetchModelsFailed": "Failed to fetch model list",
|
||||
"apiKeyHint": "💡 Fill in API Key to automatically fetch available model list"
|
||||
},
|
||||
"presetSelector": {
|
||||
"title": "Select Configuration Type",
|
||||
"custom": "Custom",
|
||||
"customDescription": "Manually configure provider, requires complete configuration",
|
||||
"officialDescription": "Official login, no API Key required",
|
||||
"presetDescription": "Use preset configuration, only API Key required"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user