diff --git a/packages/cli/src/config/auth.ts b/packages/cli/src/config/auth.ts index e05b029d9..b77145edf 100644 --- a/packages/cli/src/config/auth.ts +++ b/packages/cli/src/config/auth.ts @@ -10,6 +10,7 @@ import type { ProviderModelConfig, } from '@qwen-code/qwen-code-core'; import { loadEnvironment, loadSettings, type Settings } from './settings.js'; +import { t } from '../i18n/index.js'; /** * Default environment variable names for each auth type @@ -89,9 +90,9 @@ export function validateAuthMethod(authMethod: string): string | null { const envKeyHint = checkedEnvKey ? `'${checkedEnvKey}'` : "'OPENAI_API_KEY' (or configure modelProviders[].envKey)"; - return ( - 'Missing API key for OpenAI-compatible auth. ' + - `Set settings.security.auth.apiKey, or set the ${envKeyHint} environment variable.` + return t( + 'Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.', + { envKeyHint }, ); } return null; @@ -110,7 +111,9 @@ export function validateAuthMethod(authMethod: string): string | null { ); if (!hasKey) { const envKeyHint = checkedEnvKey || 'ANTHROPIC_API_KEY'; - return `${envKeyHint} environment variable not found.`; + return t('{{envKeyHint}} environment variable not found.', { + envKeyHint, + }); } // Check baseUrl - can come from modelProviders or environment @@ -122,7 +125,9 @@ export function validateAuthMethod(authMethod: string): string | null { const hasBaseUrl = modelConfig?.baseUrl || process.env['ANTHROPIC_BASE_URL']; if (!hasBaseUrl) { - return 'ANTHROPIC_BASE_URL environment variable not found (or configure modelProviders[].baseUrl).'; + return t( + 'ANTHROPIC_BASE_URL environment variable not found (or configure modelProviders[].baseUrl).', + ); } return null; @@ -135,7 +140,10 @@ export function validateAuthMethod(authMethod: string): string | null { ); if (!hasKey) { const envKeyHint = checkedEnvKey || 'GEMINI_API_KEY'; - return `${envKeyHint} environment variable not found. Please set it in your .env file or environment variables.`; + return t( + '{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.', + { envKeyHint }, + ); } return null; } @@ -147,12 +155,15 @@ export function validateAuthMethod(authMethod: string): string | null { ); if (!hasKey) { const envKeyHint = checkedEnvKey || 'GOOGLE_API_KEY'; - return `${envKeyHint} environment variable not found. Please set it in your .env file or environment variables.`; + return t( + '{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.', + { envKeyHint }, + ); } process.env['GOOGLE_GENAI_USE_VERTEXAI'] = 'true'; return null; } - return 'Invalid auth method selected.'; + return t('Invalid auth method selected.'); } diff --git a/packages/cli/src/i18n/locales/de.js b/packages/cli/src/i18n/locales/de.js index 71624b797..274f3e68d 100644 --- a/packages/cli/src/i18n/locales/de.js +++ b/packages/cli/src/i18n/locales/de.js @@ -792,6 +792,16 @@ export default { 'Authentifizierung abgelaufen. Bitte versuchen Sie es erneut.', 'Waiting for auth... (Press ESC or CTRL+C to cancel)': 'Warten auf Authentifizierung... (ESC oder STRG+C zum Abbrechen drücken)', + 'Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.': + 'API-Schlüssel für OpenAI-kompatible Authentifizierung fehlt. Setzen Sie settings.security.auth.apiKey oder die Umgebungsvariable {{envKeyHint}}.', + '{{envKeyHint}} environment variable not found.': + 'Umgebungsvariable {{envKeyHint}} wurde nicht gefunden.', + '{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.': + 'Umgebungsvariable {{envKeyHint}} wurde nicht gefunden. Bitte legen Sie sie in Ihrer .env-Datei oder den Systemumgebungsvariablen fest.', + 'ANTHROPIC_BASE_URL environment variable not found (or configure modelProviders[].baseUrl).': + 'Umgebungsvariable ANTHROPIC_BASE_URL wurde nicht gefunden (oder konfigurieren Sie modelProviders[].baseUrl).', + 'Invalid auth method selected.': + 'Ungültige Authentifizierungsmethode ausgewählt.', 'Failed to authenticate. Message: {{message}}': 'Authentifizierung fehlgeschlagen. Meldung: {{message}}', 'Authenticated successfully with {{authType}} credentials.': @@ -814,6 +824,15 @@ export default { // ============================================================================ 'Select Model': 'Modell auswählen', '(Press Esc to close)': '(Esc zum Schließen drücken)', + 'Current (effective) configuration': 'Aktuelle (wirksame) Konfiguration', + AuthType: 'Authentifizierungstyp', + 'API Key': 'API-Schlüssel', + unset: 'nicht gesetzt', + '(default)': '(Standard)', + '(set)': '(gesetzt)', + '(not set)': '(nicht gesetzt)', + "Failed to switch model to '{{modelId}}'.\n\n{{error}}": + "Modell konnte nicht auf '{{modelId}}' umgestellt werden.\n\n{{error}}", 'The latest Qwen Coder model from Alibaba Cloud ModelStudio (version: qwen3-coder-plus-2025-09-23)': 'Das neueste Qwen Coder Modell von Alibaba Cloud ModelStudio (Version: qwen3-coder-plus-2025-09-23)', 'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)': diff --git a/packages/cli/src/i18n/locales/en.js b/packages/cli/src/i18n/locales/en.js index 5e8b16629..e34fe1710 100644 --- a/packages/cli/src/i18n/locales/en.js +++ b/packages/cli/src/i18n/locales/en.js @@ -770,6 +770,15 @@ export default { 'Authentication timed out. Please try again.', 'Waiting for auth... (Press ESC or CTRL+C to cancel)': 'Waiting for auth... (Press ESC or CTRL+C to cancel)', + 'Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.': + 'Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.', + '{{envKeyHint}} environment variable not found.': + '{{envKeyHint}} environment variable not found.', + '{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.': + '{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.', + 'ANTHROPIC_BASE_URL environment variable not found (or configure modelProviders[].baseUrl).': + 'ANTHROPIC_BASE_URL environment variable not found (or configure modelProviders[].baseUrl).', + 'Invalid auth method selected.': 'Invalid auth method selected.', 'Failed to authenticate. Message: {{message}}': 'Failed to authenticate. Message: {{message}}', 'Authenticated successfully with {{authType}} credentials.': @@ -791,6 +800,15 @@ export default { // ============================================================================ 'Select Model': 'Select Model', '(Press Esc to close)': '(Press Esc to close)', + 'Current (effective) configuration': 'Current (effective) configuration', + AuthType: 'AuthType', + 'API Key': 'API Key', + unset: 'unset', + '(default)': '(default)', + '(set)': '(set)', + '(not set)': '(not set)', + "Failed to switch model to '{{modelId}}'.\n\n{{error}}": + "Failed to switch model to '{{modelId}}'.\n\n{{error}}", 'The latest Qwen Coder model from Alibaba Cloud ModelStudio (version: qwen3-coder-plus-2025-09-23)': 'The latest Qwen Coder model from Alibaba Cloud ModelStudio (version: qwen3-coder-plus-2025-09-23)', 'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)': diff --git a/packages/cli/src/i18n/locales/ru.js b/packages/cli/src/i18n/locales/ru.js index 9685c104b..02de921b2 100644 --- a/packages/cli/src/i18n/locales/ru.js +++ b/packages/cli/src/i18n/locales/ru.js @@ -786,6 +786,15 @@ export default { 'Время ожидания авторизации истекло. Пожалуйста, попробуйте снова.', 'Waiting for auth... (Press ESC or CTRL+C to cancel)': 'Ожидание авторизации... (Нажмите ESC или CTRL+C для отмены)', + 'Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.': + 'Отсутствует API-ключ для аутентификации, совместимой с OpenAI. Укажите settings.security.auth.apiKey или переменную окружения {{envKeyHint}}.', + '{{envKeyHint}} environment variable not found.': + 'Переменная окружения {{envKeyHint}} не найдена.', + '{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.': + 'Переменная окружения {{envKeyHint}} не найдена. Укажите её в файле .env или среди системных переменных.', + 'ANTHROPIC_BASE_URL environment variable not found (or configure modelProviders[].baseUrl).': + 'Переменная окружения ANTHROPIC_BASE_URL не найдена (или настройте modelProviders[].baseUrl).', + 'Invalid auth method selected.': 'Выбран недопустимый метод авторизации.', 'Failed to authenticate. Message: {{message}}': 'Не удалось авторизоваться. Сообщение: {{message}}', 'Authenticated successfully with {{authType}} credentials.': @@ -807,6 +816,15 @@ export default { // ============================================================================ 'Select Model': 'Выбрать модель', '(Press Esc to close)': '(Нажмите Esc для закрытия)', + 'Current (effective) configuration': 'Текущая (фактическая) конфигурация', + AuthType: 'Тип авторизации', + 'API Key': 'API-ключ', + unset: 'не задано', + '(default)': '(по умолчанию)', + '(set)': '(установлено)', + '(not set)': '(не задано)', + "Failed to switch model to '{{modelId}}'.\n\n{{error}}": + "Не удалось переключиться на модель '{{modelId}}'.\n\n{{error}}", 'The latest Qwen Coder model from Alibaba Cloud ModelStudio (version: qwen3-coder-plus-2025-09-23)': 'Последняя модель Qwen Coder от Alibaba Cloud ModelStudio (версия: qwen3-coder-plus-2025-09-23)', 'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)': diff --git a/packages/cli/src/i18n/locales/zh.js b/packages/cli/src/i18n/locales/zh.js index c3550f7e8..3f6b1368a 100644 --- a/packages/cli/src/i18n/locales/zh.js +++ b/packages/cli/src/i18n/locales/zh.js @@ -728,6 +728,15 @@ export default { 'Authentication timed out. Please try again.': '认证超时。请重试。', 'Waiting for auth... (Press ESC or CTRL+C to cancel)': '正在等待认证...(按 ESC 或 CTRL+C 取消)', + 'Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.': + '缺少 OpenAI 兼容认证的 API 密钥。请设置 settings.security.auth.apiKey 或设置 {{envKeyHint}} 环境变量。', + '{{envKeyHint}} environment variable not found.': + '未找到 {{envKeyHint}} 环境变量。', + '{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.': + '未找到 {{envKeyHint}} 环境变量。请在 .env 文件或系统环境变量中进行设置。', + 'ANTHROPIC_BASE_URL environment variable not found (or configure modelProviders[].baseUrl).': + '未找到 ANTHROPIC_BASE_URL 环境变量(或配置 modelProviders[].baseUrl)。', + 'Invalid auth method selected.': '选择了无效的认证方式。', 'Failed to authenticate. Message: {{message}}': '认证失败。消息:{{message}}', 'Authenticated successfully with {{authType}} credentials.': '使用 {{authType}} 凭据成功认证。', @@ -747,6 +756,15 @@ export default { // ============================================================================ 'Select Model': '选择模型', '(Press Esc to close)': '(按 Esc 关闭)', + 'Current (effective) configuration': '当前(实际生效)配置', + AuthType: '认证方式', + 'API Key': 'API 密钥', + unset: '未设置', + '(default)': '(默认)', + '(set)': '(已设置)', + '(not set)': '(未设置)', + "Failed to switch model to '{{modelId}}'.\n\n{{error}}": + "无法切换到模型 '{{modelId}}'.\n\n{{error}}", 'The latest Qwen Coder model from Alibaba Cloud ModelStudio (version: qwen3-coder-plus-2025-09-23)': '来自阿里云 ModelStudio 的最新 Qwen Coder 模型(版本:qwen3-coder-plus-2025-09-23)', 'The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)': diff --git a/packages/cli/src/ui/commands/modelCommand.ts b/packages/cli/src/ui/commands/modelCommand.ts index e0971bdde..4dcc9a518 100644 --- a/packages/cli/src/ui/commands/modelCommand.ts +++ b/packages/cli/src/ui/commands/modelCommand.ts @@ -29,7 +29,7 @@ export const modelCommand: SlashCommand = { return { type: 'message', messageType: 'error', - content: 'Configuration not available.', + content: t('Configuration not available.'), }; }