diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index 40f5d078c4..4e2dda3708 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -5,6 +5,7 @@ import * as fs from "fs/promises" import pWaitFor from "p-wait-for" import * as vscode from "vscode" import * as yaml from "yaml" +import { serializeError } from "serialize-error" import { type Language, type ProviderSettings, type GlobalState, TelemetryEventName } from "@roo-code/types" import { CloudService } from "@roo-code/cloud" @@ -1820,8 +1821,8 @@ export const webviewMessageHandler = async ( throw new Error("Service factory not available") } - // Test the configuration - const isValid = await serviceFactory.validateEmbedderConfig() + // Test the configuration with the UI values + const isValid = await serviceFactory.validateEmbedderConfig(message.values) // Send test result back to webview provider.postMessageToWebview({ @@ -1830,14 +1831,14 @@ export const webviewMessageHandler = async ( message: isValid ? "Configuration is valid" : "Configuration test failed", }) } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error) - provider.log(`[CodeIndexManager] Configuration test error: ${errorMessage}`) + const serializedError = serializeError(error) + provider.log(`[CodeIndexManager] Configuration test error: ${serializedError.message}`) - // Send error result back to webview + // Send error result back to webview with serialized error provider.postMessageToWebview({ type: "codebaseIndexTestResult", success: false, - message: errorMessage, + message: serializedError.message || "Configuration test failed", }) } break @@ -1864,14 +1865,17 @@ export const webviewMessageHandler = async ( await provider.codeIndexManager.initialize(provider.contextProxy) } catch (initError) { // Initialization failed - send error status to webview - const errorMessage = initError instanceof Error ? initError.message : String(initError) - provider.log(`[CodeIndexManager] Initialization error: ${errorMessage}`) + const serializedError = serializeError(initError) + provider.log(`[CodeIndexManager] Initialization error: ${serializedError.message}`) - // Send error status update to webview + // Send error status update to webview with serialized error details const status = provider.codeIndexManager.getCurrentStatus() provider.postMessageToWebview({ type: "indexingStatusUpdate", - values: status, + values: { + ...status, + errorDetails: serializedError, + }, }) // Re-throw to prevent indexing attempt diff --git a/src/i18n/locales/ca/embeddings.json b/src/i18n/locales/ca/embeddings.json index 3302ff7acd..17649bdf5d 100644 --- a/src/i18n/locales/ca/embeddings.json +++ b/src/i18n/locales/ca/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "No s'han pogut crear les incrustacions després de {{attempts}} intents: {{errorMessage}}", "failedMaxAttempts": "No s'han pogut crear les incrustacions després de {{attempts}} intents", "textExceedsTokenLimit": "El text a l'índex {{index}} supera el límit màxim de testimonis ({{itemTokens}} > {{maxTokens}}). S'està ometent.", + "textWithPrefixExceedsTokenLimit": "El text a l'índex {{index}} amb prefix supera el límit màxim de testimonis ({{estimatedTokens}} > {{maxTokens}}). S'utilitza el text original sense prefix.", "rateLimitRetry": "S'ha assolit el límit de velocitat, es torna a intentar en {{delayMs}}ms (intent {{attempt}}/{{maxRetries}})", + "genericError": "Error de {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "No s'ha trobat el model '{{modelId}}'. Models disponibles: {{availableModels}}", + "invalidApiKey": "Clau API no vàlida. Comprova la teva clau API de {{provider}}.", + "rateLimitExceeded": "S'ha superat el límit de velocitat. Torna-ho a provar més tard.", + "networkError": "Error de xarxa. Comprova la teva connexió a Internet.", + "configurationFailed": "Ha fallat la validació de la configuració de {{provider}}", + "baseUrlRequired": "Es requereix l'URL base per a l'embedder {{provider}}", + "apiKeyRequired": "Es requereix la clau API per a l'embedder {{provider}}", + "endpointNotFound": "Punt final no trobat: {{baseUrl}}", + "cannotConnect": "No es pot connectar a {{provider}} a {{baseUrl}}. Assegura't que {{provider}} s'està executant.", + "apiNotFound": "API de {{provider}} no trobada a {{baseUrl}}. S'està executant {{provider}}?", + "connectionFailed": "Ha fallat la connexió a {{provider}}: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "No s'ha pogut llegir el cos de l'error", "requestFailed": "La sol·licitud de l'API d'Ollama ha fallat amb l'estat {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/de/embeddings.json b/src/i18n/locales/de/embeddings.json index 300899fd1b..43ef8063ce 100644 --- a/src/i18n/locales/de/embeddings.json +++ b/src/i18n/locales/de/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Erstellung von Einbettungen nach {{attempts}} Versuchen fehlgeschlagen: {{errorMessage}}", "failedMaxAttempts": "Erstellung von Einbettungen nach {{attempts}} Versuchen fehlgeschlagen", "textExceedsTokenLimit": "Text bei Index {{index}} überschreitet das maximale Token-Limit ({{itemTokens}} > {{maxTokens}}). Wird übersprungen.", + "textWithPrefixExceedsTokenLimit": "Text bei Index {{index}} mit Präfix überschreitet das maximale Token-Limit ({{estimatedTokens}} > {{maxTokens}}). Verwende Originaltext ohne Präfix.", "rateLimitRetry": "Ratenlimit erreicht, Wiederholung in {{delayMs}}ms (Versuch {{attempt}}/{{maxRetries}})", + "genericError": "{{provider}}-Fehler: {{errorDetails}}", + "validation": { + "modelNotFound": "Modell '{{modelId}}' nicht gefunden. Verfügbare Modelle: {{availableModels}}", + "invalidApiKey": "Ungültiger API-Schlüssel. Überprüfe deinen {{provider}} API-Schlüssel.", + "rateLimitExceeded": "Ratenlimit überschritten. Versuche es später erneut.", + "networkError": "Netzwerkfehler. Überprüfe deine Internetverbindung.", + "configurationFailed": "{{provider}}-Konfigurationsvalidierung fehlgeschlagen", + "baseUrlRequired": "Basis-URL für {{provider}}-Embedder erforderlich", + "apiKeyRequired": "API-Schlüssel für {{provider}}-Embedder erforderlich", + "endpointNotFound": "Endpunkt nicht gefunden: {{baseUrl}}", + "cannotConnect": "Kann keine Verbindung zu {{provider}} unter {{baseUrl}} herstellen. Stelle sicher, dass {{provider}} läuft.", + "apiNotFound": "{{provider}} API nicht gefunden unter {{baseUrl}}. Läuft {{provider}}?", + "connectionFailed": "Verbindung zu {{provider}} fehlgeschlagen: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Fehlerinhalt konnte nicht gelesen werden", "requestFailed": "Ollama API-Anfrage fehlgeschlagen mit Status {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/en/embeddings.json b/src/i18n/locales/en/embeddings.json index e57f3de0e8..7d2d8ff5de 100644 --- a/src/i18n/locales/en/embeddings.json +++ b/src/i18n/locales/en/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Failed to create embeddings after {{attempts}} attempts: {{errorMessage}}", "failedMaxAttempts": "Failed to create embeddings after {{attempts}} attempts", "textExceedsTokenLimit": "Text at index {{index}} exceeds maximum token limit ({{itemTokens}} > {{maxTokens}}). Skipping.", + "textWithPrefixExceedsTokenLimit": "Text at index {{index}} with prefix exceeds maximum token limit ({{estimatedTokens}} > {{maxTokens}}). Using original text without prefix.", "rateLimitRetry": "Rate limit hit, retrying in {{delayMs}}ms (attempt {{attempt}}/{{maxRetries}})", + "genericError": "{{provider}} error: {{errorDetails}}", + "validation": { + "modelNotFound": "Model '{{modelId}}' not found. Available models: {{availableModels}}", + "invalidApiKey": "Invalid API key. Please check your {{provider}} API key.", + "rateLimitExceeded": "Rate limit exceeded. Please try again later.", + "networkError": "Network error. Please check your internet connection.", + "configurationFailed": "Failed to validate {{provider}} configuration", + "baseUrlRequired": "Base URL is required for {{provider}} embedder", + "apiKeyRequired": "API key is required for {{provider}} embedder", + "endpointNotFound": "Endpoint not found: {{baseUrl}}", + "cannotConnect": "Cannot connect to {{provider}} at {{baseUrl}}. Please ensure {{provider}} is running.", + "apiNotFound": "{{provider}} API not found at {{baseUrl}}. Is {{provider}} running?", + "connectionFailed": "Failed to connect to {{provider}}: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Could not read error body", "requestFailed": "Ollama API request failed with status {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/es/embeddings.json b/src/i18n/locales/es/embeddings.json index c2d7795362..c4e91a8d38 100644 --- a/src/i18n/locales/es/embeddings.json +++ b/src/i18n/locales/es/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "No se pudieron crear las incrustaciones después de {{attempts}} intentos: {{errorMessage}}", "failedMaxAttempts": "No se pudieron crear las incrustaciones después de {{attempts}} intentos", "textExceedsTokenLimit": "El texto en el índice {{index}} supera el límite máximo de tokens ({{itemTokens}} > {{maxTokens}}). Omitiendo.", + "textWithPrefixExceedsTokenLimit": "El texto en el índice {{index}} con prefijo supera el límite máximo de tokens ({{estimatedTokens}} > {{maxTokens}}). Usando texto original sin prefijo.", "rateLimitRetry": "Límite de velocidad alcanzado, reintentando en {{delayMs}}ms (intento {{attempt}}/{{maxRetries}})", + "genericError": "Error de {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "Modelo '{{modelId}}' no encontrado. Modelos disponibles: {{availableModels}}", + "invalidApiKey": "Clave API inválida. Verifica tu clave API de {{provider}}.", + "rateLimitExceeded": "Límite de velocidad excedido. Intenta de nuevo más tarde.", + "networkError": "Error de red. Verifica tu conexión a Internet.", + "configurationFailed": "Falló la validación de configuración de {{provider}}", + "baseUrlRequired": "Se requiere URL base para el embedder {{provider}}", + "apiKeyRequired": "Se requiere clave API para el embedder {{provider}}", + "endpointNotFound": "Punto final no encontrado: {{baseUrl}}", + "cannotConnect": "No se puede conectar a {{provider}} en {{baseUrl}}. Asegúrate de que {{provider}} esté ejecutándose.", + "apiNotFound": "API de {{provider}} no encontrada en {{baseUrl}}. ¿Está ejecutándose {{provider}}?", + "connectionFailed": "Falló la conexión a {{provider}}: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "No se pudo leer el cuerpo del error", "requestFailed": "La solicitud de la API de Ollama falló con estado {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/fr/embeddings.json b/src/i18n/locales/fr/embeddings.json index 4dbbe6218b..1f0ab2ea0a 100644 --- a/src/i18n/locales/fr/embeddings.json +++ b/src/i18n/locales/fr/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Échec de la création des embeddings après {{attempts}} tentatives : {{errorMessage}}", "failedMaxAttempts": "Échec de la création des embeddings après {{attempts}} tentatives", "textExceedsTokenLimit": "Le texte à l'index {{index}} dépasse la limite maximale de tokens ({{itemTokens}} > {{maxTokens}}). Ignoré.", + "textWithPrefixExceedsTokenLimit": "Le texte à l'index {{index}} avec préfixe dépasse la limite maximale de tokens ({{estimatedTokens}} > {{maxTokens}}). Utilisation du texte original sans préfixe.", "rateLimitRetry": "Limite de débit atteinte, nouvelle tentative dans {{delayMs}}ms (tentative {{attempt}}/{{maxRetries}})", + "genericError": "Erreur {{provider}} : {{errorDetails}}", + "validation": { + "modelNotFound": "Modèle '{{modelId}}' introuvable. Modèles disponibles : {{availableModels}}", + "invalidApiKey": "Clé API invalide. Vérifie ta clé API {{provider}}.", + "rateLimitExceeded": "Limite de débit dépassée. Réessaye plus tard.", + "networkError": "Erreur réseau. Vérifie ta connexion Internet.", + "configurationFailed": "Échec de la validation de la configuration {{provider}}", + "baseUrlRequired": "URL de base requise pour l'embedder {{provider}}", + "apiKeyRequired": "Clé API requise pour l'embedder {{provider}}", + "endpointNotFound": "Point de terminaison introuvable : {{baseUrl}}", + "cannotConnect": "Impossible de se connecter à {{provider}} à {{baseUrl}}. Assure-toi que {{provider}} est en cours d'exécution.", + "apiNotFound": "API {{provider}} introuvable à {{baseUrl}}. {{provider}} est-il en cours d'exécution ?", + "connectionFailed": "Échec de la connexion à {{provider}} : {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Impossible de lire le corps de l'erreur", "requestFailed": "Échec de la requête API Ollama avec le statut {{status}} {{statusText}} : {{errorBody}}", diff --git a/src/i18n/locales/hi/embeddings.json b/src/i18n/locales/hi/embeddings.json index 312d42e69c..25ece3c27a 100644 --- a/src/i18n/locales/hi/embeddings.json +++ b/src/i18n/locales/hi/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "{{attempts}} प्रयासों के बाद एम्बेडिंग बनाने में विफल: {{errorMessage}}", "failedMaxAttempts": "{{attempts}} प्रयासों के बाद एम्बेडिंग बनाने में विफल", "textExceedsTokenLimit": "अनुक्रमणिका {{index}} पर पाठ अधिकतम टोकन सीमा ({{itemTokens}} > {{maxTokens}}) से अधिक है। छोड़ा जा रहा है।", + "textWithPrefixExceedsTokenLimit": "उपसर्ग के साथ अनुक्रमणिका {{index}} पर पाठ अधिकतम टोकन सीमा ({{estimatedTokens}} > {{maxTokens}}) से अधिक है। उपसर्ग के बिना मूल पाठ का उपयोग कर रहे हैं।", "rateLimitRetry": "दर सीमा समाप्त, {{delayMs}}ms में पुन: प्रयास किया जा रहा है (प्रयास {{attempt}}/{{maxRetries}})", + "genericError": "{{provider}} त्रुटि: {{errorDetails}}", + "validation": { + "modelNotFound": "मॉडल '{{modelId}}' नहीं मिला। उपलब्ध मॉडल: {{availableModels}}", + "invalidApiKey": "अमान्य API कुंजी। अपनी {{provider}} API कुंजी की जांच करें।", + "rateLimitExceeded": "दर सीमा पार हो गई। बाद में पुनः प्रयास करें।", + "networkError": "नेटवर्क त्रुटि। अपना इंटरनेट कनेक्शन जांचें।", + "configurationFailed": "{{provider}} कॉन्फ़िगरेशन सत्यापन विफल", + "baseUrlRequired": "{{provider}} एम्बेडर के लिए आधार URL आवश्यक है", + "apiKeyRequired": "{{provider}} एम्बेडर के लिए API कुंजी आवश्यक है", + "endpointNotFound": "एंडपॉइंट नहीं मिला: {{baseUrl}}", + "cannotConnect": "{{baseUrl}} पर {{provider}} से कनेक्ट नहीं हो सकता। सुनिश्चित करें कि {{provider}} चल रहा है।", + "apiNotFound": "{{baseUrl}} पर {{provider}} API नहीं मिला। क्या {{provider}} चल रहा है?", + "connectionFailed": "{{provider}} से कनेक्शन विफल: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "त्रुटि सामग्री पढ़ नहीं सका", "requestFailed": "Ollama API अनुरोध स्थिति {{status}} {{statusText}} के साथ विफल: {{errorBody}}", diff --git a/src/i18n/locales/id/embeddings.json b/src/i18n/locales/id/embeddings.json index abfa9cb354..0b1d6022ca 100644 --- a/src/i18n/locales/id/embeddings.json +++ b/src/i18n/locales/id/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Gagal membuat embeddings setelah {{attempts}} percobaan: {{errorMessage}}", "failedMaxAttempts": "Gagal membuat embeddings setelah {{attempts}} percobaan", "textExceedsTokenLimit": "Teks pada indeks {{index}} melebihi batas maksimum token ({{itemTokens}} > {{maxTokens}}). Dilewati.", + "textWithPrefixExceedsTokenLimit": "Teks pada indeks {{index}} dengan prefix melebihi batas maksimum token ({{estimatedTokens}} > {{maxTokens}}). Menggunakan teks asli tanpa prefix.", "rateLimitRetry": "Batas rate tercapai, mencoba lagi dalam {{delayMs}}ms (percobaan {{attempt}}/{{maxRetries}})", + "genericError": "Error {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "Model '{{modelId}}' tidak ditemukan. Model yang tersedia: {{availableModels}}", + "invalidApiKey": "Kunci API tidak valid. Periksa kunci API {{provider}} kamu.", + "rateLimitExceeded": "Batas rate terlampaui. Coba lagi nanti.", + "networkError": "Error jaringan. Periksa koneksi internet kamu.", + "configurationFailed": "Validasi konfigurasi {{provider}} gagal", + "baseUrlRequired": "URL dasar diperlukan untuk embedder {{provider}}", + "apiKeyRequired": "Kunci API diperlukan untuk embedder {{provider}}", + "endpointNotFound": "Endpoint tidak ditemukan: {{baseUrl}}", + "cannotConnect": "Tidak dapat terhubung ke {{provider}} di {{baseUrl}}. Pastikan {{provider}} sedang berjalan.", + "apiNotFound": "API {{provider}} tidak ditemukan di {{baseUrl}}. Apakah {{provider}} sedang berjalan?", + "connectionFailed": "Koneksi ke {{provider}} gagal: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Tidak dapat membaca body error", "requestFailed": "Permintaan API Ollama gagal dengan status {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/it/embeddings.json b/src/i18n/locales/it/embeddings.json index 5bd7164886..4e42e13a81 100644 --- a/src/i18n/locales/it/embeddings.json +++ b/src/i18n/locales/it/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Creazione degli embedding non riuscita dopo {{attempts}} tentativi: {{errorMessage}}", "failedMaxAttempts": "Creazione degli embedding non riuscita dopo {{attempts}} tentativi", "textExceedsTokenLimit": "Il testo all'indice {{index}} supera il limite massimo di token ({{itemTokens}} > {{maxTokens}}). Saltato.", + "textWithPrefixExceedsTokenLimit": "Il testo all'indice {{index}} con prefisso supera il limite massimo di token ({{estimatedTokens}} > {{maxTokens}}). Utilizzo del testo originale senza prefisso.", "rateLimitRetry": "Limite di velocità raggiunto, nuovo tentativo tra {{delayMs}}ms (tentativo {{attempt}}/{{maxRetries}})", + "genericError": "Errore {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "Modello '{{modelId}}' non trovato. Modelli disponibili: {{availableModels}}", + "invalidApiKey": "Chiave API non valida. Controlla la tua chiave API {{provider}}.", + "rateLimitExceeded": "Limite di velocità superato. Riprova più tardi.", + "networkError": "Errore di rete. Controlla la tua connessione Internet.", + "configurationFailed": "Validazione della configurazione {{provider}} fallita", + "baseUrlRequired": "URL di base richiesto per l'embedder {{provider}}", + "apiKeyRequired": "Chiave API richiesta per l'embedder {{provider}}", + "endpointNotFound": "Endpoint non trovato: {{baseUrl}}", + "cannotConnect": "Impossibile connettersi a {{provider}} su {{baseUrl}}. Assicurati che {{provider}} sia in esecuzione.", + "apiNotFound": "API {{provider}} non trovata su {{baseUrl}}. {{provider}} è in esecuzione?", + "connectionFailed": "Connessione a {{provider}} fallita: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Impossibile leggere il corpo dell'errore", "requestFailed": "Richiesta API Ollama fallita con stato {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/ja/embeddings.json b/src/i18n/locales/ja/embeddings.json index 862270a364..bd6a4ed909 100644 --- a/src/i18n/locales/ja/embeddings.json +++ b/src/i18n/locales/ja/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "{{attempts}}回試行しましたが、埋め込みの作成に失敗しました:{{errorMessage}}", "failedMaxAttempts": "{{attempts}}回試行しましたが、埋め込みの作成に失敗しました", "textExceedsTokenLimit": "インデックス{{index}}のテキストが最大トークン制限を超えています({{itemTokens}}> {{maxTokens}})。スキップします。", + "textWithPrefixExceedsTokenLimit": "プレフィックス付きのインデックス{{index}}のテキストが最大トークン制限を超えています({{estimatedTokens}} > {{maxTokens}})。プレフィックスなしの元のテキストを使用します。", "rateLimitRetry": "レート制限に達しました。{{delayMs}}ミリ秒後に再試行します(試行{{attempt}}/{{maxRetries}})", + "genericError": "{{provider}}エラー: {{errorDetails}}", + "validation": { + "modelNotFound": "モデル '{{modelId}}' が見つかりません。利用可能なモデル: {{availableModels}}", + "invalidApiKey": "無効なAPIキー。{{provider}}のAPIキーを確認してください。", + "rateLimitExceeded": "レート制限を超えました。後でもう一度お試しください。", + "networkError": "ネットワークエラー。インターネット接続を確認してください。", + "configurationFailed": "{{provider}}の設定検証に失敗しました", + "baseUrlRequired": "{{provider}}エンベッダーにはベースURLが必要です", + "apiKeyRequired": "{{provider}}エンベッダーにはAPIキーが必要です", + "endpointNotFound": "エンドポイントが見つかりません: {{baseUrl}}", + "cannotConnect": "{{baseUrl}}の{{provider}}に接続できません。{{provider}}が実行されていることを確認してください。", + "apiNotFound": "{{baseUrl}}で{{provider}} APIが見つかりません。{{provider}}は実行されていますか?", + "connectionFailed": "{{provider}}への接続に失敗しました: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "エラー本文を読み取れませんでした", "requestFailed": "Ollama APIリクエストが失敗しました。ステータス {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/ko/embeddings.json b/src/i18n/locales/ko/embeddings.json index 37877bfa97..e33c7bc20f 100644 --- a/src/i18n/locales/ko/embeddings.json +++ b/src/i18n/locales/ko/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "{{attempts}}번 시도 후 임베딩 생성 실패: {{errorMessage}}", "failedMaxAttempts": "{{attempts}}번 시도 후 임베딩 생성 실패", "textExceedsTokenLimit": "인덱스 {{index}}의 텍스트가 최대 토큰 제한({{itemTokens}} > {{maxTokens}})을 초과했습니다. 건너뜁니다.", + "textWithPrefixExceedsTokenLimit": "접두사가 있는 인덱스 {{index}}의 텍스트가 최대 토큰 제한({{estimatedTokens}} > {{maxTokens}})을 초과했습니다. 접두사 없이 원본 텍스트를 사용합니다.", "rateLimitRetry": "속도 제한에 도달했습니다. {{delayMs}}ms 후에 다시 시도합니다(시도 {{attempt}}/{{maxRetries}}).", + "genericError": "{{provider}} 오류: {{errorDetails}}", + "validation": { + "modelNotFound": "'{{modelId}}' 모델을 찾을 수 없습니다. 사용 가능한 모델: {{availableModels}}", + "invalidApiKey": "잘못된 API 키입니다. {{provider}} API 키를 확인하세요.", + "rateLimitExceeded": "속도 제한을 초과했습니다. 나중에 다시 시도하세요.", + "networkError": "네트워크 오류입니다. 인터넷 연결을 확인하세요.", + "configurationFailed": "{{provider}} 구성 검증 실패", + "baseUrlRequired": "{{provider}} 임베더에 기본 URL이 필요합니다", + "apiKeyRequired": "{{provider}} 임베더에 API 키가 필요합니다", + "endpointNotFound": "엔드포인트를 찾을 수 없습니다: {{baseUrl}}", + "cannotConnect": "{{baseUrl}}의 {{provider}}에 연결할 수 없습니다. {{provider}}가 실행 중인지 확인하세요.", + "apiNotFound": "{{baseUrl}}에서 {{provider}} API를 찾을 수 없습니다. {{provider}}가 실행 중인가요?", + "connectionFailed": "{{provider}} 연결 실패: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "오류 본문을 읽을 수 없습니다", "requestFailed": "Ollama API 요청이 실패했습니다. 상태 {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/nl/embeddings.json b/src/i18n/locales/nl/embeddings.json index 7256b0973b..2739501df2 100644 --- a/src/i18n/locales/nl/embeddings.json +++ b/src/i18n/locales/nl/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Insluitingen maken mislukt na {{attempts}} pogingen: {{errorMessage}}", "failedMaxAttempts": "Insluitingen maken mislukt na {{attempts}} pogingen", "textExceedsTokenLimit": "Tekst op index {{index}} overschrijdt de maximale tokenlimiet ({{itemTokens}} > {{maxTokens}}). Wordt overgeslagen.", + "textWithPrefixExceedsTokenLimit": "Tekst op index {{index}} met prefix overschrijdt de maximale tokenlimiet ({{estimatedTokens}} > {{maxTokens}}). Originele tekst zonder prefix wordt gebruikt.", "rateLimitRetry": "Snelheidslimiet bereikt, opnieuw proberen over {{delayMs}}ms (poging {{attempt}}/{{maxRetries}})", + "genericError": "{{provider}}-fout: {{errorDetails}}", + "validation": { + "modelNotFound": "Model '{{modelId}}' niet gevonden. Beschikbare modellen: {{availableModels}}", + "invalidApiKey": "Ongeldige API-sleutel. Controleer je {{provider}} API-sleutel.", + "rateLimitExceeded": "Snelheidslimiet overschreden. Probeer het later opnieuw.", + "networkError": "Netwerkfout. Controleer je internetverbinding.", + "configurationFailed": "{{provider}}-configuratievalidatie mislukt", + "baseUrlRequired": "Basis-URL vereist voor {{provider}}-embedder", + "apiKeyRequired": "API-sleutel vereist voor {{provider}}-embedder", + "endpointNotFound": "Eindpunt niet gevonden: {{baseUrl}}", + "cannotConnect": "Kan geen verbinding maken met {{provider}} op {{baseUrl}}. Zorg ervoor dat {{provider}} actief is.", + "apiNotFound": "{{provider}} API niet gevonden op {{baseUrl}}. Is {{provider}} actief?", + "connectionFailed": "Verbinding met {{provider}} mislukt: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Kon foutinhoud niet lezen", "requestFailed": "Ollama API-verzoek mislukt met status {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/pl/embeddings.json b/src/i18n/locales/pl/embeddings.json index c3e160869b..97c6f2b274 100644 --- a/src/i18n/locales/pl/embeddings.json +++ b/src/i18n/locales/pl/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Nie udało się utworzyć osadzeń po {{attempts}} próbach: {{errorMessage}}", "failedMaxAttempts": "Nie udało się utworzyć osadzeń po {{attempts}} próbach", "textExceedsTokenLimit": "Tekst w indeksie {{index}} przekracza maksymalny limit tokenów ({{itemTokens}} > {{maxTokens}}). Pomijanie.", + "textWithPrefixExceedsTokenLimit": "Tekst w indeksie {{index}} z prefiksem przekracza maksymalny limit tokenów ({{estimatedTokens}} > {{maxTokens}}). Używanie oryginalnego tekstu bez prefiksu.", "rateLimitRetry": "Osiągnięto limit szybkości, ponawianie za {{delayMs}}ms (próba {{attempt}}/{{maxRetries}})", + "genericError": "Błąd {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "Nie znaleziono modelu '{{modelId}}'. Dostępne modele: {{availableModels}}", + "invalidApiKey": "Nieprawidłowy klucz API. Sprawdź swój klucz API {{provider}}.", + "rateLimitExceeded": "Przekroczono limit szybkości. Spróbuj ponownie później.", + "networkError": "Błąd sieci. Sprawdź połączenie internetowe.", + "configurationFailed": "Walidacja konfiguracji {{provider}} nie powiodła się", + "baseUrlRequired": "Wymagany jest bazowy URL dla embeddera {{provider}}", + "apiKeyRequired": "Wymagany jest klucz API dla embeddera {{provider}}", + "endpointNotFound": "Nie znaleziono punktu końcowego: {{baseUrl}}", + "cannotConnect": "Nie można połączyć się z {{provider}} pod adresem {{baseUrl}}. Upewnij się, że {{provider}} jest uruchomiony.", + "apiNotFound": "Nie znaleziono API {{provider}} pod adresem {{baseUrl}}. Czy {{provider}} jest uruchomiony?", + "connectionFailed": "Połączenie z {{provider}} nie powiodło się: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Nie można odczytać treści błędu", "requestFailed": "Żądanie API Ollama nie powiodło się ze statusem {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/pt-BR/embeddings.json b/src/i18n/locales/pt-BR/embeddings.json index 6b97475265..a90393b032 100644 --- a/src/i18n/locales/pt-BR/embeddings.json +++ b/src/i18n/locales/pt-BR/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Falha ao criar embeddings após {{attempts}} tentativas: {{errorMessage}}", "failedMaxAttempts": "Falha ao criar embeddings após {{attempts}} tentativas", "textExceedsTokenLimit": "O texto no índice {{index}} excede o limite máximo de tokens ({{itemTokens}} > {{maxTokens}}). Ignorando.", + "textWithPrefixExceedsTokenLimit": "O texto no índice {{index}} com prefixo excede o limite máximo de tokens ({{estimatedTokens}} > {{maxTokens}}). Usando texto original sem prefixo.", "rateLimitRetry": "Limite de taxa atingido, tentando novamente em {{delayMs}}ms (tentativa {{attempt}}/{{maxRetries}})", + "genericError": "Erro do {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "Modelo '{{modelId}}' não encontrado. Modelos disponíveis: {{availableModels}}", + "invalidApiKey": "Chave API inválida. Verifique sua chave API do {{provider}}.", + "rateLimitExceeded": "Limite de taxa excedido. Tente novamente mais tarde.", + "networkError": "Erro de rede. Verifique sua conexão com a Internet.", + "configurationFailed": "Falha na validação da configuração do {{provider}}", + "baseUrlRequired": "URL base necessária para o embedder {{provider}}", + "apiKeyRequired": "Chave API necessária para o embedder {{provider}}", + "endpointNotFound": "Endpoint não encontrado: {{baseUrl}}", + "cannotConnect": "Não é possível conectar ao {{provider}} em {{baseUrl}}. Certifique-se de que o {{provider}} está em execução.", + "apiNotFound": "API do {{provider}} não encontrada em {{baseUrl}}. O {{provider}} está em execução?", + "connectionFailed": "Falha na conexão com {{provider}}: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Não foi possível ler o corpo do erro", "requestFailed": "Solicitação da API Ollama falhou com status {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/ru/embeddings.json b/src/i18n/locales/ru/embeddings.json index c6143816e8..612d1e3a48 100644 --- a/src/i18n/locales/ru/embeddings.json +++ b/src/i18n/locales/ru/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Не удалось создать вложения после {{attempts}} попыток: {{errorMessage}}", "failedMaxAttempts": "Не удалось создать вложения после {{attempts}} попыток", "textExceedsTokenLimit": "Текст в индексе {{index}} превышает максимальный лимит токенов ({{itemTokens}} > {{maxTokens}}). Пропускается.", + "textWithPrefixExceedsTokenLimit": "Текст в индексе {{index}} с префиксом превышает максимальный лимит токенов ({{estimatedTokens}} > {{maxTokens}}). Используется оригинальный текст без префикса.", "rateLimitRetry": "Достигнут лимит скорости, повторная попытка через {{delayMs}} мс (попытка {{attempt}}/{{maxRetries}})", + "genericError": "Ошибка {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "Модель '{{modelId}}' не найдена. Доступные модели: {{availableModels}}", + "invalidApiKey": "Недействительный API-ключ. Проверь свой API-ключ {{provider}}.", + "rateLimitExceeded": "Превышен лимит скорости. Попробуй позже.", + "networkError": "Ошибка сети. Проверь подключение к интернету.", + "configurationFailed": "Ошибка проверки конфигурации {{provider}}", + "baseUrlRequired": "Требуется базовый URL для эмбеддера {{provider}}", + "apiKeyRequired": "Требуется API-ключ для эмбеддера {{provider}}", + "endpointNotFound": "Конечная точка не найдена: {{baseUrl}}", + "cannotConnect": "Не удается подключиться к {{provider}} по адресу {{baseUrl}}. Убедись, что {{provider}} запущен.", + "apiNotFound": "API {{provider}} не найден по адресу {{baseUrl}}. {{provider}} запущен?", + "connectionFailed": "Не удалось подключиться к {{provider}}: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Не удалось прочитать тело ошибки", "requestFailed": "Запрос к API Ollama не удался со статусом {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/tr/embeddings.json b/src/i18n/locales/tr/embeddings.json index 10ad965f0f..8dad9ac29c 100644 --- a/src/i18n/locales/tr/embeddings.json +++ b/src/i18n/locales/tr/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "{{attempts}} denemeden sonra gömülmeler oluşturulamadı: {{errorMessage}}", "failedMaxAttempts": "{{attempts}} denemeden sonra gömülmeler oluşturulamadı", "textExceedsTokenLimit": "{{index}} dizinindeki metin maksimum jeton sınırını aşıyor ({{itemTokens}} > {{maxTokens}}). Atlanıyor.", + "textWithPrefixExceedsTokenLimit": "Ön ekli {{index}} dizinindeki metin maksimum jeton sınırını aşıyor ({{estimatedTokens}} > {{maxTokens}}). Ön eksiz orijinal metin kullanılıyor.", "rateLimitRetry": "Hız sınırına ulaşıldı, {{delayMs}}ms içinde yeniden deneniyor (deneme {{attempt}}/{{maxRetries}})", + "genericError": "{{provider}} hatası: {{errorDetails}}", + "validation": { + "modelNotFound": "'{{modelId}}' modeli bulunamadı. Mevcut modeller: {{availableModels}}", + "invalidApiKey": "Geçersiz API anahtarı. {{provider}} API anahtarını kontrol et.", + "rateLimitExceeded": "Hız sınırı aşıldı. Daha sonra tekrar dene.", + "networkError": "Ağ hatası. İnternet bağlantını kontrol et.", + "configurationFailed": "{{provider}} yapılandırma doğrulaması başarısız", + "baseUrlRequired": "{{provider}} gömücü için temel URL gerekli", + "apiKeyRequired": "{{provider}} gömücü için API anahtarı gerekli", + "endpointNotFound": "Uç nokta bulunamadı: {{baseUrl}}", + "cannotConnect": "{{baseUrl}} adresindeki {{provider}}'a bağlanılamıyor. {{provider}}'ın çalıştığından emin ol.", + "apiNotFound": "{{baseUrl}} adresinde {{provider}} API'si bulunamadı. {{provider}} çalışıyor mu?", + "connectionFailed": "{{provider}} bağlantısı başarısız: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Hata gövdesi okunamadı", "requestFailed": "Ollama API isteği {{status}} {{statusText}} durumuyla başarısız oldu: {{errorBody}}", diff --git a/src/i18n/locales/vi/embeddings.json b/src/i18n/locales/vi/embeddings.json index a533aaac07..0de6a8771c 100644 --- a/src/i18n/locales/vi/embeddings.json +++ b/src/i18n/locales/vi/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "Không thể tạo nhúng sau {{attempts}} lần thử: {{errorMessage}}", "failedMaxAttempts": "Không thể tạo nhúng sau {{attempts}} lần thử", "textExceedsTokenLimit": "Văn bản tại chỉ mục {{index}} vượt quá giới hạn mã thông báo tối đa ({{itemTokens}} > {{maxTokens}}). Bỏ qua.", + "textWithPrefixExceedsTokenLimit": "Văn bản tại chỉ mục {{index}} với tiền tố vượt quá giới hạn mã thông báo tối đa ({{estimatedTokens}} > {{maxTokens}}). Sử dụng văn bản gốc không có tiền tố.", "rateLimitRetry": "Đã đạt đến giới hạn tốc độ, thử lại sau {{delayMs}}ms (lần thử {{attempt}}/{{maxRetries}})", + "genericError": "Lỗi {{provider}}: {{errorDetails}}", + "validation": { + "modelNotFound": "Không tìm thấy mô hình '{{modelId}}'. Các mô hình khả dụng: {{availableModels}}", + "invalidApiKey": "Khóa API không hợp lệ. Kiểm tra khóa API {{provider}} của bạn.", + "rateLimitExceeded": "Đã vượt quá giới hạn tốc độ. Thử lại sau.", + "networkError": "Lỗi mạng. Kiểm tra kết nối Internet của bạn.", + "configurationFailed": "Xác thực cấu hình {{provider}} thất bại", + "baseUrlRequired": "Cần URL cơ sở cho trình nhúng {{provider}}", + "apiKeyRequired": "Cần khóa API cho trình nhúng {{provider}}", + "endpointNotFound": "Không tìm thấy điểm cuối: {{baseUrl}}", + "cannotConnect": "Không thể kết nối với {{provider}} tại {{baseUrl}}. Đảm bảo {{provider}} đang chạy.", + "apiNotFound": "Không tìm thấy API {{provider}} tại {{baseUrl}}. {{provider}} có đang chạy không?", + "connectionFailed": "Kết nối với {{provider}} thất bại: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "Không thể đọc nội dung lỗi", "requestFailed": "Yêu cầu API Ollama thất bại với trạng thái {{status}} {{statusText}}: {{errorBody}}", diff --git a/src/i18n/locales/zh-CN/embeddings.json b/src/i18n/locales/zh-CN/embeddings.json index dba5282844..3afef32f59 100644 --- a/src/i18n/locales/zh-CN/embeddings.json +++ b/src/i18n/locales/zh-CN/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "尝试 {{attempts}} 次后创建嵌入失败:{{errorMessage}}", "failedMaxAttempts": "尝试 {{attempts}} 次后创建嵌入失败", "textExceedsTokenLimit": "索引 {{index}} 处的文本超过最大令牌限制 ({{itemTokens}} > {{maxTokens}})。正在跳过。", + "textWithPrefixExceedsTokenLimit": "带前缀的索引 {{index}} 处的文本超过最大令牌限制 ({{estimatedTokens}} > {{maxTokens}})。使用不带前缀的原始文本。", "rateLimitRetry": "已达到速率限制,将在 {{delayMs}} 毫秒后重试(尝试次数 {{attempt}}/{{maxRetries}})", + "genericError": "{{provider}} 错误: {{errorDetails}}", + "validation": { + "modelNotFound": "未找到模型 '{{modelId}}'。可用模型: {{availableModels}}", + "invalidApiKey": "无效的 API 密钥。请检查你的 {{provider}} API 密钥。", + "rateLimitExceeded": "超出速率限制。请稍后重试。", + "networkError": "网络错误。请检查你的互联网连接。", + "configurationFailed": "{{provider}} 配置验证失败", + "baseUrlRequired": "{{provider}} 嵌入器需要基础 URL", + "apiKeyRequired": "{{provider}} 嵌入器需要 API 密钥", + "endpointNotFound": "未找到端点: {{baseUrl}}", + "cannotConnect": "无法连接到 {{baseUrl}} 的 {{provider}}。请确保 {{provider}} 正在运行。", + "apiNotFound": "在 {{baseUrl}} 未找到 {{provider}} API。{{provider}} 是否正在运行?", + "connectionFailed": "连接到 {{provider}} 失败: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "无法读取错误内容", "requestFailed": "Ollama API 请求失败,状态码 {{status}} {{statusText}}:{{errorBody}}", diff --git a/src/i18n/locales/zh-TW/embeddings.json b/src/i18n/locales/zh-TW/embeddings.json index 71a5a482f2..7fcb1d5670 100644 --- a/src/i18n/locales/zh-TW/embeddings.json +++ b/src/i18n/locales/zh-TW/embeddings.json @@ -5,7 +5,22 @@ "failedWithError": "嘗試 {{attempts}} 次後建立內嵌失敗:{{errorMessage}}", "failedMaxAttempts": "嘗試 {{attempts}} 次後建立內嵌失敗", "textExceedsTokenLimit": "索引 {{index}} 處的文字超過最大權杖限制 ({{itemTokens}} > {{maxTokens}})。正在略過。", + "textWithPrefixExceedsTokenLimit": "帶前綴的索引 {{index}} 處的文字超過最大權杖限制 ({{estimatedTokens}} > {{maxTokens}})。使用不帶前綴的原始文字。", "rateLimitRetry": "已達到速率限制,將在 {{delayMs}} 毫秒後重試(嘗試次數 {{attempt}}/{{maxRetries}})", + "genericError": "{{provider}} 錯誤: {{errorDetails}}", + "validation": { + "modelNotFound": "找不到模型 '{{modelId}}'。可用模型: {{availableModels}}", + "invalidApiKey": "無效的 API 金鑰。請檢查你的 {{provider}} API 金鑰。", + "rateLimitExceeded": "超出速率限制。請稍後再試。", + "networkError": "網路錯誤。請檢查你的網際網路連線。", + "configurationFailed": "{{provider}} 設定驗證失敗", + "baseUrlRequired": "{{provider}} 嵌入器需要基礎 URL", + "apiKeyRequired": "{{provider}} 嵌入器需要 API 金鑰", + "endpointNotFound": "找不到端點: {{baseUrl}}", + "cannotConnect": "無法連接到 {{baseUrl}} 的 {{provider}}。請確保 {{provider}} 正在執行。", + "apiNotFound": "在 {{baseUrl}} 找不到 {{provider}} API。{{provider}} 是否正在執行?", + "connectionFailed": "連接到 {{provider}} 失敗: {{status}} {{statusText}}" + }, "ollama": { "couldNotReadErrorBody": "無法讀取錯誤內容", "requestFailed": "Ollama API 請求失敗,狀態碼 {{status}} {{statusText}}:{{errorBody}}", diff --git a/src/services/code-index/manager.ts b/src/services/code-index/manager.ts index 29dcb032b7..f95a5daa0a 100644 --- a/src/services/code-index/manager.ts +++ b/src/services/code-index/manager.ts @@ -12,6 +12,7 @@ import { CacheManager } from "./cache-manager" import fs from "fs/promises" import ignore from "ignore" import path from "path" +import { serializeError } from "serialize-error" export class CodeIndexManager { // --- Singleton Implementation --- @@ -259,36 +260,12 @@ export class CodeIndexManager { // Handle service creation errors console.error("Failed to create code index services:", error) - // Determine error type and create appropriate error details - let errorType: "configuration" | "authentication" | "network" | "validation" | "unknown" = "unknown" - let errorMessage = error instanceof Error ? error.message : String(error) - let suggestion: string | undefined + // Serialize the error for consistent handling + const serializedError = serializeError(error) + const errorMessage = serializedError.message || "Unknown error" - if ( - errorMessage.includes("configuration missing") || - errorMessage.includes("missing for") || - errorMessage.includes("required") - ) { - errorType = "configuration" - suggestion = "Please check your embedder configuration in the settings." - } else if (errorMessage.includes("authentication") || errorMessage.includes("API key")) { - errorType = "authentication" - suggestion = "Please verify your API key is correct and has the necessary permissions." - } else if (errorMessage.includes("network") || errorMessage.includes("connect")) { - errorType = "network" - suggestion = "Please check your network connection and ensure the service endpoints are accessible." - } else if (errorMessage.includes("dimension") || errorMessage.includes("model")) { - errorType = "validation" - suggestion = "Please ensure your model configuration is compatible with the selected provider." - } - - // Set error state with details - this._stateManager.setSystemState("Error", errorMessage, { - type: errorType, - message: errorMessage, - suggestion, - timestamp: Date.now(), - }) + // Set error state with serialized error details + this._stateManager.setSystemState("Error", errorMessage, serializedError) // Re-throw to be handled by caller throw error diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index aa9e0fbfdd..c23af9d1fd 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Error d'autenticació", "networkError": "Error de xarxa", "validationError": "Error de validació", - "unknownError": "Error desconegut" + "unknownError": "Error desconegut", + "embedderValidationFailed": "Ha fallat la validació de l'embedder: {{error}}", + "openAiApiKeyRequired": "Es requereix la clau API d'OpenAI. Si us plau, configura-la a la configuració.", + "ollamaBaseUrlRequired": "Es requereix l'URL base d'Ollama. Si us plau, configura-la a la configuració.", + "openAiCompatibleConfigRequired": "Es requereix {{missing}} compatible amb OpenAI. Si us plau, configura-ho a la configuració.", + "invalidEmbedderType": "Tipus d'embedder configurat no vàlid: {{provider}}", + "openAiApiKeyRequiredValidation": "Es requereix la clau API d'OpenAI", + "ollamaBaseUrlRequiredValidation": "Es requereix l'URL base d'Ollama", + "openAiCompatibleConfigRequiredValidation": "Es requereixen l'URL base i la clau API compatibles amb OpenAI", + "invalidEmbedderTypeValidation": "Tipus d'embedder no vàlid: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "No s'ha pogut determinar la dimensió del vector per al model '{{modelId}}' amb el proveïdor '{{provider}}'. Si us plau, assegura't que la 'Dimensió d'Embedding' estigui configurada correctament a la configuració del proveïdor compatible amb OpenAI.", + "vectorDimensionErrorGeneral": "No s'ha pogut determinar la dimensió del vector per al model '{{modelId}}' amb el proveïdor '{{provider}}'. Comprova els perfils del model o la configuració.", + "qdrantUrlMissing": "Falta l'URL de Qdrant per a la creació del magatzem de vectors", + "servicesNotConfigured": "No es poden crear els serveis: La indexació de codi no està configurada correctament" }, "autoApprove": { "description": "Permet que Roo realitzi operacions automàticament sense requerir aprovació. Activeu aquesta configuració només si confieu plenament en la IA i enteneu els riscos de seguretat associats.", diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index 66e85abb56..441471742b 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Authentifizierungsfehler", "networkError": "Netzwerkfehler", "validationError": "Validierungsfehler", - "unknownError": "Unbekannter Fehler" + "unknownError": "Unbekannter Fehler", + "embedderValidationFailed": "Embedder-Validierung fehlgeschlagen: {{error}}", + "openAiApiKeyRequired": "OpenAI API-Schlüssel ist erforderlich. Bitte konfiguriere ihn in den Einstellungen.", + "ollamaBaseUrlRequired": "Ollama Basis-URL ist erforderlich. Bitte konfiguriere sie in den Einstellungen.", + "openAiCompatibleConfigRequired": "OpenAI-kompatible {{missing}} erforderlich. Bitte konfiguriere es in den Einstellungen.", + "invalidEmbedderType": "Ungültiger Embedder-Typ konfiguriert: {{provider}}", + "openAiApiKeyRequiredValidation": "OpenAI API-Schlüssel ist erforderlich", + "ollamaBaseUrlRequiredValidation": "Ollama Basis-URL ist erforderlich", + "openAiCompatibleConfigRequiredValidation": "OpenAI-kompatible Basis-URL und API-Schlüssel sind erforderlich", + "invalidEmbedderTypeValidation": "Ungültiger Embedder-Typ: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Konnte Vektordimension für Modell '{{modelId}}' mit Anbieter '{{provider}}' nicht bestimmen. Bitte stelle sicher, dass die 'Embedding-Dimension' in den OpenAI-kompatiblen Anbietereinstellungen korrekt eingestellt ist.", + "vectorDimensionErrorGeneral": "Konnte Vektordimension für Modell '{{modelId}}' mit Anbieter '{{provider}}' nicht bestimmen. Überprüfe Modellprofile oder Konfiguration.", + "qdrantUrlMissing": "Qdrant-URL fehlt für die Erstellung des Vektorspeichers", + "servicesNotConfigured": "Kann Services nicht erstellen: Code-Indexierung ist nicht ordnungsgemäß konfiguriert" }, "autoApprove": { "description": "Erlaubt Roo, Operationen automatisch ohne Genehmigung durchzuführen. Aktiviere diese Einstellungen nur, wenn du der KI vollständig vertraust und die damit verbundenen Sicherheitsrisiken verstehst.", diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index b393aee74b..7352f8e483 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Authentication Error", "networkError": "Network Error", "validationError": "Validation Error", - "unknownError": "Unknown Error" + "unknownError": "Unknown Error", + "embedderValidationFailed": "Embedder validation failed: {{error}}", + "openAiApiKeyRequired": "OpenAI API key is required. Please configure it in the settings.", + "ollamaBaseUrlRequired": "Ollama base URL is required. Please configure it in the settings.", + "openAiCompatibleConfigRequired": "OpenAI-compatible {{missing}} required. Please configure in the settings.", + "invalidEmbedderType": "Invalid embedder type configured: {{provider}}", + "openAiApiKeyRequiredValidation": "OpenAI API key is required", + "ollamaBaseUrlRequiredValidation": "Ollama base URL is required", + "openAiCompatibleConfigRequiredValidation": "OpenAI-compatible base URL and API key are required", + "invalidEmbedderTypeValidation": "Invalid embedder type: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Could not determine vector dimension for model '{{modelId}}' with provider '{{provider}}'. Please ensure the 'Embedding Dimension' is correctly set in the OpenAI-Compatible provider settings.", + "vectorDimensionErrorGeneral": "Could not determine vector dimension for model '{{modelId}}' with provider '{{provider}}'. Check model profiles or configuration.", + "qdrantUrlMissing": "Qdrant URL missing for vector store creation", + "servicesNotConfigured": "Cannot create services: Code indexing is not properly configured" }, "autoApprove": { "description": "Allow Roo to automatically perform operations without requiring approval. Enable these settings only if you fully trust the AI and understand the associated security risks.", diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index 241ebf1f8f..03149e5cae 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Error de autenticación", "networkError": "Error de red", "validationError": "Error de validación", - "unknownError": "Error desconocido" + "unknownError": "Error desconocido", + "embedderValidationFailed": "Falló la validación del embedder: {{error}}", + "openAiApiKeyRequired": "Se requiere la clave API de OpenAI. Por favor, configúrala en la configuración.", + "ollamaBaseUrlRequired": "Se requiere la URL base de Ollama. Por favor, configúrala en la configuración.", + "openAiCompatibleConfigRequired": "Se requiere {{missing}} compatible con OpenAI. Por favor, configúralo en la configuración.", + "invalidEmbedderType": "Tipo de embedder configurado no válido: {{provider}}", + "openAiApiKeyRequiredValidation": "Se requiere la clave API de OpenAI", + "ollamaBaseUrlRequiredValidation": "Se requiere la URL base de Ollama", + "openAiCompatibleConfigRequiredValidation": "Se requieren la URL base y la clave API compatibles con OpenAI", + "invalidEmbedderTypeValidation": "Tipo de embedder no válido: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "No se pudo determinar la dimensión del vector para el modelo '{{modelId}}' con el proveedor '{{provider}}'. Por favor, asegúrate de que la 'Dimensión de Embedding' esté configurada correctamente en la configuración del proveedor compatible con OpenAI.", + "vectorDimensionErrorGeneral": "No se pudo determinar la dimensión del vector para el modelo '{{modelId}}' con el proveedor '{{provider}}'. Verifica los perfiles del modelo o la configuración.", + "qdrantUrlMissing": "Falta la URL de Qdrant para la creación del almacén de vectores", + "servicesNotConfigured": "No se pueden crear los servicios: La indexación de código no está configurada correctamente" }, "autoApprove": { "description": "Permitir que Roo realice operaciones automáticamente sin requerir aprobación. Habilite esta configuración solo si confía plenamente en la IA y comprende los riesgos de seguridad asociados.", diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index bc7e270088..306dc5dfd3 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Erreur d'authentification", "networkError": "Erreur réseau", "validationError": "Erreur de validation", - "unknownError": "Erreur inconnue" + "unknownError": "Erreur inconnue", + "embedderValidationFailed": "Échec de la validation de l'embedder : {{error}}", + "openAiApiKeyRequired": "La clé API OpenAI est requise. Veuillez la configurer dans les paramètres.", + "ollamaBaseUrlRequired": "L'URL de base Ollama est requise. Veuillez la configurer dans les paramètres.", + "openAiCompatibleConfigRequired": "{{missing}} compatible OpenAI requis. Veuillez le configurer dans les paramètres.", + "invalidEmbedderType": "Type d'embedder configuré non valide : {{provider}}", + "openAiApiKeyRequiredValidation": "La clé API OpenAI est requise", + "ollamaBaseUrlRequiredValidation": "L'URL de base Ollama est requise", + "openAiCompatibleConfigRequiredValidation": "L'URL de base et la clé API compatibles OpenAI sont requises", + "invalidEmbedderTypeValidation": "Type d'embedder non valide : {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Impossible de déterminer la dimension du vecteur pour le modèle '{{modelId}}' avec le fournisseur '{{provider}}'. Veuillez vous assurer que la 'Dimension d'Embedding' est correctement définie dans les paramètres du fournisseur compatible OpenAI.", + "vectorDimensionErrorGeneral": "Impossible de déterminer la dimension du vecteur pour le modèle '{{modelId}}' avec le fournisseur '{{provider}}'. Vérifiez les profils de modèle ou la configuration.", + "qdrantUrlMissing": "URL Qdrant manquante pour la création du magasin de vecteurs", + "servicesNotConfigured": "Impossible de créer les services : L'indexation de code n'est pas correctement configurée" }, "autoApprove": { "description": "Permettre à Roo d'effectuer automatiquement des opérations sans requérir d'approbation. Activez ces paramètres uniquement si vous faites entièrement confiance à l'IA et que vous comprenez les risques de sécurité associés.", diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index 87d3bd2b5d..98850b59f3 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -78,7 +78,20 @@ "authenticationError": "प्रमाणीकरण त्रुटि", "networkError": "नेटवर्क त्रुटि", "validationError": "सत्यापन त्रुटि", - "unknownError": "अज्ञात त्रुटि" + "unknownError": "अज्ञात त्रुटि", + "embedderValidationFailed": "एम्बेडर सत्यापन विफल: {{error}}", + "openAiApiKeyRequired": "OpenAI API की आवश्यकता है। कृपया इसे सेटिंग्स में कॉन्फ़िगर करें।", + "ollamaBaseUrlRequired": "Ollama बेस URL की आवश्यकता है। कृपया इसे सेटिंग्स में कॉन्फ़िगर करें।", + "openAiCompatibleConfigRequired": "OpenAI-संगत {{missing}} आवश्यक है। कृपया इसे सेटिंग्स में कॉन्फ़िगर करें।", + "invalidEmbedderType": "अमान्य एम्बेडर प्रकार कॉन्फ़िगर किया गया: {{provider}}", + "openAiApiKeyRequiredValidation": "OpenAI API की आवश्यकता है", + "ollamaBaseUrlRequiredValidation": "Ollama बेस URL की आवश्यकता है", + "openAiCompatibleConfigRequiredValidation": "OpenAI-संगत बेस URL और API की आवश्यकता है", + "invalidEmbedderTypeValidation": "अमान्य एम्बेडर प्रकार: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "मॉडल '{{modelId}}' के लिए प्रदाता '{{provider}}' के साथ वेक्टर आयाम निर्धारित नहीं कर सका। कृपया सुनिश्चित करें कि OpenAI-संगत प्रदाता सेटिंग्स में 'एम्बेडिंग आयाम' सही तरीके से सेट है।", + "vectorDimensionErrorGeneral": "मॉडल '{{modelId}}' के लिए प्रदाता '{{provider}}' के साथ वेक्टर आयाम निर्धारित नहीं कर सका। मॉडल प्रोफाइल या कॉन्फ़िगरेशन जांचें।", + "qdrantUrlMissing": "वेक्टर स्टोर निर्माण के लिए Qdrant URL गुम है", + "servicesNotConfigured": "सेवाएं नहीं बना सकते: कोड इंडेक्सिंग ठीक से कॉन्फ़िगर नहीं है" }, "autoApprove": { "description": "Roo को अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ऑपरेशन करने की अनुमति दें। इन सेटिंग्स को केवल तभी सक्षम करें जब आप AI पर पूरी तरह से भरोसा करते हों और संबंधित सुरक्षा जोखिमों को समझते हों।", diff --git a/webview-ui/src/i18n/locales/id/settings.json b/webview-ui/src/i18n/locales/id/settings.json index 7209d88c86..e2e94d4d3e 100644 --- a/webview-ui/src/i18n/locales/id/settings.json +++ b/webview-ui/src/i18n/locales/id/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Kesalahan Otentikasi", "networkError": "Kesalahan Jaringan", "validationError": "Kesalahan Validasi", - "unknownError": "Kesalahan Tidak Dikenal" + "unknownError": "Kesalahan Tidak Dikenal", + "embedderValidationFailed": "Validasi embedder gagal: {{error}}", + "openAiApiKeyRequired": "Kunci API OpenAI diperlukan. Silakan konfigurasikan di pengaturan.", + "ollamaBaseUrlRequired": "URL dasar Ollama diperlukan. Silakan konfigurasikan di pengaturan.", + "openAiCompatibleConfigRequired": "{{missing}} yang kompatibel dengan OpenAI diperlukan. Silakan konfigurasikan di pengaturan.", + "invalidEmbedderType": "Jenis embedder yang dikonfigurasi tidak valid: {{provider}}", + "openAiApiKeyRequiredValidation": "Kunci API OpenAI diperlukan", + "ollamaBaseUrlRequiredValidation": "URL dasar Ollama diperlukan", + "openAiCompatibleConfigRequiredValidation": "URL dasar dan kunci API yang kompatibel dengan OpenAI diperlukan", + "invalidEmbedderTypeValidation": "Jenis embedder tidak valid: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Tidak dapat menentukan dimensi vektor untuk model '{{modelId}}' dengan penyedia '{{provider}}'. Pastikan 'Dimensi Embedding' diatur dengan benar di pengaturan penyedia yang kompatibel dengan OpenAI.", + "vectorDimensionErrorGeneral": "Tidak dapat menentukan dimensi vektor untuk model '{{modelId}}' dengan penyedia '{{provider}}'. Periksa profil model atau konfigurasi.", + "qdrantUrlMissing": "URL Qdrant hilang untuk pembuatan penyimpanan vektor", + "servicesNotConfigured": "Tidak dapat membuat layanan: Pengindeksan kode tidak dikonfigurasi dengan benar" }, "autoApprove": { "description": "Izinkan Roo untuk secara otomatis melakukan operasi tanpa memerlukan persetujuan. Aktifkan pengaturan ini hanya jika kamu sepenuhnya mempercayai AI dan memahami risiko keamanan yang terkait.", diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 643b27d04d..7b1083f9d1 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Errore di autenticazione", "networkError": "Errore di rete", "validationError": "Errore di validazione", - "unknownError": "Errore sconosciuto" + "unknownError": "Errore sconosciuto", + "embedderValidationFailed": "Validazione embedder fallita: {{error}}", + "openAiApiKeyRequired": "È richiesta la chiave API OpenAI. Configurala nelle impostazioni.", + "ollamaBaseUrlRequired": "È richiesto l'URL base di Ollama. Configuralo nelle impostazioni.", + "openAiCompatibleConfigRequired": "È richiesto {{missing}} compatibile con OpenAI. Configuralo nelle impostazioni.", + "invalidEmbedderType": "Tipo di embedder configurato non valido: {{provider}}", + "openAiApiKeyRequiredValidation": "È richiesta la chiave API OpenAI", + "ollamaBaseUrlRequiredValidation": "È richiesto l'URL base di Ollama", + "openAiCompatibleConfigRequiredValidation": "Sono richiesti l'URL base e la chiave API compatibili con OpenAI", + "invalidEmbedderTypeValidation": "Tipo di embedder non valido: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Impossibile determinare la dimensione del vettore per il modello '{{modelId}}' con il provider '{{provider}}'. Assicurati che la 'Dimensione Embedding' sia impostata correttamente nelle impostazioni del provider compatibile con OpenAI.", + "vectorDimensionErrorGeneral": "Impossibile determinare la dimensione del vettore per il modello '{{modelId}}' con il provider '{{provider}}'. Controlla i profili del modello o la configurazione.", + "qdrantUrlMissing": "URL Qdrant mancante per la creazione del vector store", + "servicesNotConfigured": "Impossibile creare i servizi: L'indicizzazione del codice non è configurata correttamente" }, "autoApprove": { "description": "Permetti a Roo di eseguire automaticamente operazioni senza richiedere approvazione. Abilita queste impostazioni solo se ti fidi completamente dell'IA e comprendi i rischi di sicurezza associati.", diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index e530882413..da1486aed1 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -78,7 +78,20 @@ "authenticationError": "認証エラー", "networkError": "ネットワークエラー", "validationError": "検証エラー", - "unknownError": "不明なエラー" + "unknownError": "不明なエラー", + "embedderValidationFailed": "エンベッダーの検証に失敗しました: {{error}}", + "openAiApiKeyRequired": "OpenAI APIキーが必要です。設定で構成してください。", + "ollamaBaseUrlRequired": "Ollama ベースURLが必要です。設定で構成してください。", + "openAiCompatibleConfigRequired": "OpenAI互換の{{missing}}が必要です。設定で構成してください。", + "invalidEmbedderType": "無効なエンベッダータイプが構成されています: {{provider}}", + "openAiApiKeyRequiredValidation": "OpenAI APIキーが必要です", + "ollamaBaseUrlRequiredValidation": "Ollama ベースURLが必要です", + "openAiCompatibleConfigRequiredValidation": "OpenAI互換のベースURLとAPIキーが必要です", + "invalidEmbedderTypeValidation": "無効なエンベッダータイプ: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "プロバイダー '{{provider}}' でモデル '{{modelId}}' のベクター次元を決定できませんでした。OpenAI互換プロバイダー設定で「埋め込み次元」が正しく設定されていることを確認してください。", + "vectorDimensionErrorGeneral": "プロバイダー '{{provider}}' でモデル '{{modelId}}' のベクター次元を決定できませんでした。モデルプロファイルまたは構成を確認してください。", + "qdrantUrlMissing": "ベクターストア作成にQdrant URLが不足しています", + "servicesNotConfigured": "サービスを作成できません: コードインデックスが適切に構成されていません" }, "autoApprove": { "description": "Rooが承認なしで自動的に操作を実行できるようにします。AIを完全に信頼し、関連するセキュリティリスクを理解している場合にのみ、これらの設定を有効にしてください。", diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index 41c6f18297..5166a8c8ff 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -78,7 +78,20 @@ "authenticationError": "인증 오류", "networkError": "네트워크 오류", "validationError": "유효성 검사 오류", - "unknownError": "알 수 없는 오류" + "unknownError": "알 수 없는 오류", + "embedderValidationFailed": "임베더 검증 실패: {{error}}", + "openAiApiKeyRequired": "OpenAI API 키가 필요합니다. 설정에서 구성해 주세요.", + "ollamaBaseUrlRequired": "Ollama 기본 URL이 필요합니다. 설정에서 구성해 주세요.", + "openAiCompatibleConfigRequired": "OpenAI 호환 {{missing}}이 필요합니다. 설정에서 구성해 주세요.", + "invalidEmbedderType": "잘못된 임베더 유형이 구성됨: {{provider}}", + "openAiApiKeyRequiredValidation": "OpenAI API 키가 필요합니다", + "ollamaBaseUrlRequiredValidation": "Ollama 기본 URL이 필요합니다", + "openAiCompatibleConfigRequiredValidation": "OpenAI 호환 기본 URL과 API 키가 필요합니다", + "invalidEmbedderTypeValidation": "잘못된 임베더 유형: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "제공자 '{{provider}}'로 모델 '{{modelId}}'의 벡터 차원을 결정할 수 없습니다. OpenAI 호환 제공자 설정에서 '임베딩 차원'이 올바르게 설정되어 있는지 확인해 주세요.", + "vectorDimensionErrorGeneral": "제공자 '{{provider}}'로 모델 '{{modelId}}'의 벡터 차원을 결정할 수 없습니다. 모델 프로필이나 구성을 확인해 주세요.", + "qdrantUrlMissing": "벡터 저장소 생성을 위한 Qdrant URL이 누락됨", + "servicesNotConfigured": "서비스를 생성할 수 없음: 코드 인덱싱이 올바르게 구성되지 않았습니다" }, "autoApprove": { "description": "Roo가 승인 없이 자동으로 작업을 수행할 수 있도록 허용합니다. AI를 완전히 신뢰하고 관련 보안 위험을 이해하는 경우에만 이러한 설정을 활성화하세요.", diff --git a/webview-ui/src/i18n/locales/nl/settings.json b/webview-ui/src/i18n/locales/nl/settings.json index 30f3021d4f..2247f62b62 100644 --- a/webview-ui/src/i18n/locales/nl/settings.json +++ b/webview-ui/src/i18n/locales/nl/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Authenticatiefout", "networkError": "Netwerkfout", "validationError": "Validatiefout", - "unknownError": "Onbekende fout" + "unknownError": "Onbekende fout", + "embedderValidationFailed": "Embedder-validatie mislukt: {{error}}", + "openAiApiKeyRequired": "OpenAI API-sleutel is vereist. Configureer deze in de instellingen.", + "ollamaBaseUrlRequired": "Ollama basis-URL is vereist. Configureer deze in de instellingen.", + "openAiCompatibleConfigRequired": "OpenAI-compatibele {{missing}} vereist. Configureer dit in de instellingen.", + "invalidEmbedderType": "Ongeldig embedder-type geconfigureerd: {{provider}}", + "openAiApiKeyRequiredValidation": "OpenAI API-sleutel is vereist", + "ollamaBaseUrlRequiredValidation": "Ollama basis-URL is vereist", + "openAiCompatibleConfigRequiredValidation": "OpenAI-compatibele basis-URL en API-sleutel zijn vereist", + "invalidEmbedderTypeValidation": "Ongeldig embedder-type: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Kon vectordimensie voor model '{{modelId}}' met provider '{{provider}}' niet bepalen. Zorg ervoor dat de 'Embedding Dimensie' correct is ingesteld in de OpenAI-compatibele provider-instellingen.", + "vectorDimensionErrorGeneral": "Kon vectordimensie voor model '{{modelId}}' met provider '{{provider}}' niet bepalen. Controleer modelprofielen of configuratie.", + "qdrantUrlMissing": "Qdrant-URL ontbreekt voor het maken van vectoropslag", + "servicesNotConfigured": "Kan services niet maken: Code-indexering is niet correct geconfigureerd" }, "autoApprove": { "description": "Sta Roo toe om automatisch handelingen uit te voeren zonder goedkeuring. Schakel deze instellingen alleen in als je de AI volledig vertrouwt en de bijbehorende beveiligingsrisico's begrijpt.", diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 081aa58242..edcc42fa4a 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Błąd uwierzytelniania", "networkError": "Błąd sieci", "validationError": "Błąd walidacji", - "unknownError": "Nieznany błąd" + "unknownError": "Nieznany błąd", + "embedderValidationFailed": "Walidacja embeddera nie powiodła się: {{error}}", + "openAiApiKeyRequired": "Klucz API OpenAI jest wymagany. Skonfiguruj go w ustawieniach.", + "ollamaBaseUrlRequired": "Bazowy URL Ollama jest wymagany. Skonfiguruj go w ustawieniach.", + "openAiCompatibleConfigRequired": "Kompatybilny z OpenAI {{missing}} jest wymagany. Skonfiguruj go w ustawieniach.", + "invalidEmbedderType": "Skonfigurowano nieprawidłowy typ embeddera: {{provider}}", + "openAiApiKeyRequiredValidation": "Klucz API OpenAI jest wymagany", + "ollamaBaseUrlRequiredValidation": "Bazowy URL Ollama jest wymagany", + "openAiCompatibleConfigRequiredValidation": "Kompatybilny z OpenAI bazowy URL i klucz API są wymagane", + "invalidEmbedderTypeValidation": "Nieprawidłowy typ embeddera: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Nie można określić wymiaru wektora dla modelu '{{modelId}}' z dostawcą '{{provider}}'. Upewnij się, że 'Wymiar Embedding' jest poprawnie ustawiony w ustawieniach dostawcy kompatybilnego z OpenAI.", + "vectorDimensionErrorGeneral": "Nie można określić wymiaru wektora dla modelu '{{modelId}}' z dostawcą '{{provider}}'. Sprawdź profile modeli lub konfigurację.", + "qdrantUrlMissing": "Brakuje URL Qdrant do utworzenia magazynu wektorów", + "servicesNotConfigured": "Nie można utworzyć usług: Indeksowanie kodu nie jest poprawnie skonfigurowane" }, "autoApprove": { "description": "Pozwól Roo na automatyczne wykonywanie operacji bez wymagania zatwierdzenia. Włącz te ustawienia tylko jeśli w pełni ufasz AI i rozumiesz związane z tym zagrożenia bezpieczeństwa.", diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index 050e07d2ce..d406188983 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Erro de Autenticação", "networkError": "Erro de Rede", "validationError": "Erro de Validação", - "unknownError": "Erro Desconhecido" + "unknownError": "Erro Desconhecido", + "embedderValidationFailed": "Falha na validação do embedder: {{error}}", + "openAiApiKeyRequired": "Chave da API OpenAI é necessária. Configure-a nas configurações.", + "ollamaBaseUrlRequired": "URL base do Ollama é necessária. Configure-a nas configurações.", + "openAiCompatibleConfigRequired": "{{missing}} compatível com OpenAI necessário. Configure-o nas configurações.", + "invalidEmbedderType": "Tipo de embedder configurado inválido: {{provider}}", + "openAiApiKeyRequiredValidation": "Chave da API OpenAI é necessária", + "ollamaBaseUrlRequiredValidation": "URL base do Ollama é necessária", + "openAiCompatibleConfigRequiredValidation": "URL base e chave da API compatíveis com OpenAI são necessárias", + "invalidEmbedderTypeValidation": "Tipo de embedder inválido: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Não foi possível determinar a dimensão do vetor para o modelo '{{modelId}}' com o provedor '{{provider}}'. Certifique-se de que a 'Dimensão de Embedding' esteja configurada corretamente nas configurações do provedor compatível com OpenAI.", + "vectorDimensionErrorGeneral": "Não foi possível determinar a dimensão do vetor para o modelo '{{modelId}}' com o provedor '{{provider}}'. Verifique os perfis do modelo ou a configuração.", + "qdrantUrlMissing": "URL do Qdrant ausente para criação do armazenamento de vetores", + "servicesNotConfigured": "Não é possível criar serviços: A indexação de código não está configurada corretamente" }, "autoApprove": { "description": "Permitir que o Roo realize operações automaticamente sem exigir aprovação. Ative essas configurações apenas se confiar totalmente na IA e compreender os riscos de segurança associados.", diff --git a/webview-ui/src/i18n/locales/ru/settings.json b/webview-ui/src/i18n/locales/ru/settings.json index 8c5239da48..675b011d55 100644 --- a/webview-ui/src/i18n/locales/ru/settings.json +++ b/webview-ui/src/i18n/locales/ru/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Ошибка аутентификации", "networkError": "Сетевая ошибка", "validationError": "Ошибка валидации", - "unknownError": "Неизвестная ошибка" + "unknownError": "Неизвестная ошибка", + "embedderValidationFailed": "Ошибка валидации эмбеддера: {{error}}", + "openAiApiKeyRequired": "Требуется API-ключ OpenAI. Настройте его в настройках.", + "ollamaBaseUrlRequired": "Требуется базовый URL Ollama. Настройте его в настройках.", + "openAiCompatibleConfigRequired": "Требуется совместимый с OpenAI {{missing}}. Настройте его в настройках.", + "invalidEmbedderType": "Настроен недопустимый тип эмбеддера: {{provider}}", + "openAiApiKeyRequiredValidation": "Требуется API-ключ OpenAI", + "ollamaBaseUrlRequiredValidation": "Требуется базовый URL Ollama", + "openAiCompatibleConfigRequiredValidation": "Требуются совместимые с OpenAI базовый URL и API-ключ", + "invalidEmbedderTypeValidation": "Недопустимый тип эмбеддера: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Не удалось определить размерность вектора для модели '{{modelId}}' с провайдером '{{provider}}'. Убедитесь, что 'Размерность эмбеддинга' правильно настроена в настройках провайдера, совместимого с OpenAI.", + "vectorDimensionErrorGeneral": "Не удалось определить размерность вектора для модели '{{modelId}}' с провайдером '{{provider}}'. Проверьте профили модели или конфигурацию.", + "qdrantUrlMissing": "Отсутствует URL Qdrant для создания векторного хранилища", + "servicesNotConfigured": "Невозможно создать сервисы: Индексирование кода не настроено должным образом" }, "autoApprove": { "description": "Разрешить Roo автоматически выполнять операции без необходимости одобрения. Включайте эти параметры только если полностью доверяете ИИ и понимаете связанные с этим риски безопасности.", diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index 3a0833b0a4..88e7c0ac99 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Kimlik Doğrulama Hatası", "networkError": "Ağ Hatası", "validationError": "Doğrulama Hatası", - "unknownError": "Bilinmeyen Hata" + "unknownError": "Bilinmeyen Hata", + "embedderValidationFailed": "Embedder doğrulaması başarısız: {{error}}", + "openAiApiKeyRequired": "OpenAI API anahtarı gerekli. Lütfen ayarlarda yapılandırın.", + "ollamaBaseUrlRequired": "Ollama temel URL'si gerekli. Lütfen ayarlarda yapılandırın.", + "openAiCompatibleConfigRequired": "OpenAI uyumlu {{missing}} gerekli. Lütfen ayarlarda yapılandırın.", + "invalidEmbedderType": "Geçersiz embedder türü yapılandırıldı: {{provider}}", + "openAiApiKeyRequiredValidation": "OpenAI API anahtarı gerekli", + "ollamaBaseUrlRequiredValidation": "Ollama temel URL'si gerekli", + "openAiCompatibleConfigRequiredValidation": "OpenAI uyumlu temel URL ve API anahtarı gerekli", + "invalidEmbedderTypeValidation": "Geçersiz embedder türü: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "'{{provider}}' sağlayıcısı ile '{{modelId}}' modeli için vektör boyutu belirlenemedi. OpenAI uyumlu sağlayıcı ayarlarında 'Embedding Boyutu'nun doğru şekilde ayarlandığından emin olun.", + "vectorDimensionErrorGeneral": "'{{provider}}' sağlayıcısı ile '{{modelId}}' modeli için vektör boyutu belirlenemedi. Model profillerini veya yapılandırmayı kontrol edin.", + "qdrantUrlMissing": "Vektör deposu oluşturma için Qdrant URL'si eksik", + "servicesNotConfigured": "Hizmetler oluşturulamıyor: Kod indeksleme düzgün şekilde yapılandırılmamış" }, "autoApprove": { "description": "Roo'nun onay gerektirmeden otomatik olarak işlemler gerçekleştirmesine izin verin. Bu ayarları yalnızca yapay zekaya tamamen güveniyorsanız ve ilgili güvenlik risklerini anlıyorsanız etkinleştirin.", diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index 84cec9417c..745114c48d 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -78,7 +78,20 @@ "authenticationError": "Lỗi xác thực", "networkError": "Lỗi mạng", "validationError": "Lỗi xác thực", - "unknownError": "Lỗi không xác định" + "unknownError": "Lỗi không xác định", + "embedderValidationFailed": "Xác thực embedder thất bại: {{error}}", + "openAiApiKeyRequired": "Cần khóa API OpenAI. Vui lòng cấu hình trong cài đặt.", + "ollamaBaseUrlRequired": "Cần URL cơ sở Ollama. Vui lòng cấu hình trong cài đặt.", + "openAiCompatibleConfigRequired": "Cần {{missing}} tương thích OpenAI. Vui lòng cấu hình trong cài đặt.", + "invalidEmbedderType": "Loại embedder được cấu hình không hợp lệ: {{provider}}", + "openAiApiKeyRequiredValidation": "Cần khóa API OpenAI", + "ollamaBaseUrlRequiredValidation": "Cần URL cơ sở Ollama", + "openAiCompatibleConfigRequiredValidation": "Cần URL cơ sở và khóa API tương thích OpenAI", + "invalidEmbedderTypeValidation": "Loại embedder không hợp lệ: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "Không thể xác định kích thước vector cho mô hình '{{modelId}}' với nhà cung cấp '{{provider}}'. Vui lòng đảm bảo 'Kích thước Embedding' được thiết lập chính xác trong cài đặt nhà cung cấp tương thích OpenAI.", + "vectorDimensionErrorGeneral": "Không thể xác định kích thước vector cho mô hình '{{modelId}}' với nhà cung cấp '{{provider}}'. Kiểm tra hồ sơ mô hình hoặc cấu hình.", + "qdrantUrlMissing": "Thiếu URL Qdrant để tạo kho lưu trữ vector", + "servicesNotConfigured": "Không thể tạo dịch vụ: Lập chỉ mục mã không được cấu hình đúng cách" }, "autoApprove": { "description": "Cho phép Roo tự động thực hiện các hoạt động mà không cần phê duyệt. Chỉ bật những cài đặt này nếu bạn hoàn toàn tin tưởng AI và hiểu rõ các rủi ro bảo mật liên quan.", diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index 2ae5079ef0..4c7d338104 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -78,7 +78,20 @@ "authenticationError": "身份验证错误", "networkError": "网络错误", "validationError": "验证错误", - "unknownError": "未知错误" + "unknownError": "未知错误", + "embedderValidationFailed": "Embedder 验证失败: {{error}}", + "openAiApiKeyRequired": "需要 OpenAI API 密钥。请在设置中配置。", + "ollamaBaseUrlRequired": "需要 Ollama 基础 URL。请在设置中配置。", + "openAiCompatibleConfigRequired": "需要 OpenAI 兼容的{{missing}}。请在设置中配置。", + "invalidEmbedderType": "配置了无效的 Embedder 类型: {{provider}}", + "openAiApiKeyRequiredValidation": "需要 OpenAI API 密钥", + "ollamaBaseUrlRequiredValidation": "需要 Ollama 基础 URL", + "openAiCompatibleConfigRequiredValidation": "需要 OpenAI 兼容的基础 URL 和 API 密钥", + "invalidEmbedderTypeValidation": "无效的 Embedder 类型: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "无法确定模型 '{{modelId}}' 与提供商 '{{provider}}' 的向量维度。请确保在 OpenAI 兼容提供商设置中正确设置了 'Embedding 维度'。", + "vectorDimensionErrorGeneral": "无法确定模型 '{{modelId}}' 与提供商 '{{provider}}' 的向量维度。请检查模型配置文件或配置。", + "qdrantUrlMissing": "创建向量存储缺少 Qdrant URL", + "servicesNotConfigured": "无法创建服务: 代码索引未正确配置" }, "autoApprove": { "description": "允许 Roo 自动执行操作而无需批准。只有在您完全信任 AI 并了解相关安全风险的情况下才启用这些设置。", diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index 7f6359a80f..a9627d645e 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -78,7 +78,20 @@ "authenticationError": "驗證錯誤", "networkError": "網路錯誤", "validationError": "驗證錯誤", - "unknownError": "未知錯誤" + "unknownError": "未知錯誤", + "embedderValidationFailed": "Embedder 驗證失敗: {{error}}", + "openAiApiKeyRequired": "需要 OpenAI API 金鑰。請在設定中配置。", + "ollamaBaseUrlRequired": "需要 Ollama 基礎 URL。請在設定中配置。", + "openAiCompatibleConfigRequired": "需要 OpenAI 相容的{{missing}}。請在設定中配置。", + "invalidEmbedderType": "配置了無效的 Embedder 類型: {{provider}}", + "openAiApiKeyRequiredValidation": "需要 OpenAI API 金鑰", + "ollamaBaseUrlRequiredValidation": "需要 Ollama 基礎 URL", + "openAiCompatibleConfigRequiredValidation": "需要 OpenAI 相容的基礎 URL 和 API 金鑰", + "invalidEmbedderTypeValidation": "無效的 Embedder 類型: {{provider}}", + "vectorDimensionErrorOpenAiCompatible": "無法確定模型 '{{modelId}}' 與提供商 '{{provider}}' 的向量維度。請確保在 OpenAI 相容提供商設定中正確設定了 'Embedding 維度'。", + "vectorDimensionErrorGeneral": "無法確定模型 '{{modelId}}' 與提供商 '{{provider}}' 的向量維度。請檢查模型設定檔或配置。", + "qdrantUrlMissing": "建立向量儲存缺少 Qdrant URL", + "servicesNotConfigured": "無法建立服務: 程式碼索引未正確配置" }, "autoApprove": { "description": "允許 Roo 無需核准即執行操作。僅在您完全信任 AI 並了解相關安全風險時啟用這些設定。",