diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 35f9011a86d..f7e4946f53c 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -3903,7 +3903,7 @@ export class Task extends EventEmitter implements TaskLike { throw new Error(`[Task#${this.taskId}] Aborted during retry countdown`) } - await this.say("api_req_retry_delayed", `${headerText}\n↻ ${i}s...`, undefined, true) + await this.say("api_req_retry_delayed", `${headerText}${i}`, undefined, true) await delay(1000) } diff --git a/webview-ui/src/components/chat/ChatRow.tsx b/webview-ui/src/components/chat/ChatRow.tsx index 48cd46350d5..43d647d973b 100644 --- a/webview-ui/src/components/chat/ChatRow.tsx +++ b/webview-ui/src/components/chat/ChatRow.tsx @@ -59,6 +59,7 @@ import { FolderTree, TerminalSquare, MessageCircle, + Repeat2, } from "lucide-react" import { cn } from "@/lib/utils" import { PathTooltip } from "../ui/PathTooltip" @@ -1110,11 +1111,11 @@ export const ChatRowContent = ({ ) case "api_req_retry_delayed": let body = t(`chat:apiRequest.failed`) - let retryInfo, code, docsURL + let retryInfo, rawError, code, docsURL if (message.text !== undefined) { // Try to show richer error message for that code, if available const potentialCode = parseInt(message.text.substring(0, 3)) - if (potentialCode >= 400) { + if (!isNaN(potentialCode) && potentialCode >= 400) { code = potentialCode const stringForError = `chat:apiRequest.errorMessage.${code}` if (i18n.exists(stringForError)) { @@ -1130,15 +1131,30 @@ export const ChatRowContent = ({ body = t("chat:apiRequest.errorMessage.unknown") docsURL = "mailto:support@roocode.com?subject=Unknown API Error" } - retryInfo = ( -

- {message.text.substring(4)} -

- ) + } else if (message.text.indexOf("Connection error") === 0) { + body = t("chat:apiRequest.errorMessage.connection") } else { - // Non-HTTP-status-code error message - display the actual error text - body = message.text + // Non-HTTP-status-code error message - store full text as errorDetails + body = t("chat:apiRequest.errorMessage.unknown") + docsURL = "mailto:support@roocode.com?subject=Unknown API Error" } + + // This isn't pretty, but since the retry logic happens at a lower level + // and the message object is just a flat string, we need to extract the + // retry information using this "tag" as a convention + const retryTimerMatch = message.text.match(/(.*?)<\/retry_timer>/) + const retryTimer = retryTimerMatch && retryTimerMatch[1] ? parseInt(retryTimerMatch[1], 10) : 0 + rawError = message.text.replace(/(.*?)<\/retry_timer>/, "").trim() + retryInfo = retryTimer > 0 && ( +

+ + {retryTimer}s +

+ ) } return ( ) case "api_req_finished": @@ -1259,7 +1276,7 @@ export const ChatRowContent = ({ ) case "error": - return + return case "completion_result": return ( <> diff --git a/webview-ui/src/components/chat/ErrorRow.tsx b/webview-ui/src/components/chat/ErrorRow.tsx index addc2b15b69..a4497a1fe9b 100644 --- a/webview-ui/src/components/chat/ErrorRow.tsx +++ b/webview-ui/src/components/chat/ErrorRow.tsx @@ -1,10 +1,12 @@ import React, { useState, useCallback, memo } from "react" import { useTranslation } from "react-i18next" import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" -import { BookOpenText, MessageCircleWarning } from "lucide-react" +import { BookOpenText, MessageCircleWarning, Info, Copy, Check } from "lucide-react" import { useCopyToClipboard } from "@src/utils/clipboard" import { vscode } from "@src/utils/vscode" import CodeBlock from "../common/CodeBlock" +import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@src/components/ui/dialog" +import { Button, Tooltip, TooltipContent, TooltipTrigger } from "../ui" /** * Unified error display component for all error types in the chat. @@ -61,7 +63,8 @@ export interface ErrorRowProps { headerClassName?: string messageClassName?: string code?: number - docsURL?: string // NEW: Optional documentation link + docsURL?: string // Optional documentation link + errorDetails?: string // Optional detailed error message shown in modal } /** @@ -80,10 +83,13 @@ export const ErrorRow = memo( messageClassName, docsURL, code, + errorDetails, }: ErrorRowProps) => { const { t } = useTranslation() const [isExpanded, setIsExpanded] = useState(defaultExpanded) const [showCopySuccess, setShowCopySuccess] = useState(false) + const [isDetailsDialogOpen, setIsDetailsDialogOpen] = useState(false) + const [showDetailsCopySuccess, setShowDetailsCopySuccess] = useState(false) const { copyWithFeedback } = useCopyToClipboard() // Default titles for different error types @@ -130,6 +136,22 @@ export const ErrorRow = memo( [message, copyWithFeedback], ) + const handleCopyDetails = useCallback( + async (e: React.MouseEvent) => { + e.stopPropagation() + if (errorDetails) { + const success = await copyWithFeedback(errorDetails) + if (success) { + setShowDetailsCopySuccess(true) + setTimeout(() => { + setShowDetailsCopySuccess(false) + }, 1000) + } + } + }, + [errorDetails, copyWithFeedback], + ) + const errorTitle = getDefaultTitle() // For diff_error type with expandable content @@ -168,36 +190,84 @@ export const ErrorRow = memo( // Standard error display return ( -
- {errorTitle && ( -
- - {errorTitle} - {docsURL && ( - { - e.preventDefault() - vscode.postMessage({ type: "openExternal", url: docsURL }) - }}> - - {t("chat:apiRequest.errorMessage.docs")} - - )} + <> +
+ {errorTitle && ( +
+ + {errorTitle} +
+ {docsURL && ( + { + e.preventDefault() + vscode.postMessage({ type: "openExternal", url: docsURL }) + }}> + + {t("chat:apiRequest.errorMessage.docs")} + + )} + {errorDetails && ( + + + + + {t("chat:errorDetails.title")} + + )} +
+
+ )} +
+

+ {message} +

+ {additionalContent}
- )} -
-

- {message} -

- {additionalContent}
-
+ + {/* Error Details Dialog */} + {errorDetails && ( + + + + {t("chat:errorDetails.title")} + +
+
+									{errorDetails}
+								
+
+ + + +
+
+ )} + ) }, ) diff --git a/webview-ui/src/components/ui/dialog.tsx b/webview-ui/src/components/ui/dialog.tsx index ae394f95ce4..83efd07e9ee 100644 --- a/webview-ui/src/components/ui/dialog.tsx +++ b/webview-ui/src/components/ui/dialog.tsx @@ -78,7 +78,7 @@ function DialogTitle({ className, ...props }: React.ComponentProps ) diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index d8ebb821d22..cef36c49ad5 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -146,7 +146,8 @@ "403": "No autoritzat. La teva clau API és vàlida, però el proveïdor ha rebutjat completar aquesta sol·licitud.", "429": "Massa sol·licituds. Estàs sent limitat pel proveïdor. Si us plau espera una mica abans de la teva propera crida API.", "500": "Error del servidor del proveïdor. Quelcom va malament del costat del proveïdor, no hi ha res de malament amb la teva sol·licitud.", - "unknown": "Error API desconegut. Si us plau contacta amb el suport de Roo Code." + "unknown": "Error API desconegut. Si us plau contacta amb el suport de Roo Code.", + "connection": "Error de connexió. Assegureu-vos que teniu una connexió a Internet funcional." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo té una pregunta" }, "taskCompleted": "Tasca completada", + "errorDetails": { + "title": "Detalls de l'error", + "copyToClipboard": "Copiar al porta-retalls", + "copied": "Copiat!" + }, "powershell": { "issues": "Sembla que estàs tenint problemes amb Windows PowerShell, si us plau consulta aquesta documentació per a més informació." }, diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index 2a3e2b135e7..f152f64ea54 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -146,7 +146,8 @@ "403": "Nicht autorisiert. Dein API-Schlüssel ist gültig, aber der Anbieter hat sich geweigert, diese Anfrage zu erfüllen.", "429": "Zu viele Anfragen. Du wirst vom Anbieter rate-limitiert. Bitte warte ein wenig, bevor du den nächsten API-Aufruf machst.", "500": "Fehler auf dem Server des Anbieters. Es stimmt etwas mit der Anbieterseite nicht, mit deiner Anfrage stimmt alles.", - "unknown": "Unbekannter API-Fehler. Bitte kontaktiere den Roo Code Support." + "unknown": "Unbekannter API-Fehler. Bitte kontaktiere den Roo Code Support.", + "connection": "Verbindungsfehler. Stelle sicher, dass du eine funktionierende Internetverbindung hast." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo hat eine Frage" }, "taskCompleted": "Aufgabe abgeschlossen", + "errorDetails": { + "title": "Fehlerdetails", + "copyToClipboard": "In Zwischenablage kopieren", + "copied": "Kopiert!" + }, "powershell": { "issues": "Es scheint, dass du Probleme mit Windows PowerShell hast, bitte sieh dir dies an" }, diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index ae0f23cdbdf..9da29d76ac5 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -152,6 +152,7 @@ "403": "Unauthorized. Your API key is valid, but the provider refused to complete this request.", "429": "Too many requests. You're being rate-limited by the provider. Please wait a bit before your next API call.", "500": "Provider server error. Something is wrong on the provider side, there's nothing wrong with your request.", + "connection": "Connection error. Make sure you have a working internet connection.", "unknown": "Unknown API error. Please contact Roo Code support." } }, @@ -285,6 +286,11 @@ }, "taskCompleted": "Task Completed", "error": "Error", + "errorDetails": { + "title": "Error Details", + "copyToClipboard": "Copy to Clipboard", + "copied": "Copied!" + }, "diffError": { "title": "Edit Unsuccessful" }, diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index cedf02ee6ab..1d108dd1c51 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -146,7 +146,8 @@ "403": "No autorizado. Tu clave API es válida, pero el proveedor se negó a completar esta solicitud.", "429": "Demasiadas solicitudes. Te estás viendo limitado por el proveedor. Por favor espera un poco antes de tu próxima llamada API.", "500": "Error del servidor del proveedor. Algo está mal en el lado del proveedor, no hay nada mal con tu solicitud.", - "unknown": "Error API desconocido. Por favor contacta al soporte de Roo Code." + "unknown": "Error API desconocido. Por favor contacta al soporte de Roo Code.", + "connection": "Error de conexión. Asegúrate de tener una conexión a Internet funcional." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo tiene una pregunta" }, "taskCompleted": "Tarea completada", + "errorDetails": { + "title": "Detalles del error", + "copyToClipboard": "Copiar al portapapeles", + "copied": "¡Copiado!" + }, "powershell": { "issues": "Parece que estás teniendo problemas con Windows PowerShell, por favor consulta esta" }, diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index 717eeb2fd65..a872b06b37f 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -146,7 +146,8 @@ "403": "Non autorisé. Votre clé API est valide, mais le fournisseur a refusé de compléter cette demande.", "429": "Trop de demandes. Vous êtes limité par le fournisseur. Veuillez attendre un peu avant votre prochain appel API.", "500": "Erreur du serveur du fournisseur. Quelque chose ne va pas du côté du fournisseur, il n'y a rien de mal avec votre demande.", - "unknown": "Erreur API inconnue. Veuillez contacter le support Roo Code." + "unknown": "Erreur API inconnue. Veuillez contacter le support Roo Code.", + "connection": "Erreur de connexion. Assurez-vous que vous avez une connexion Internet fonctionnelle." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo a une question" }, "taskCompleted": "Tâche terminée", + "errorDetails": { + "title": "Détails de l'erreur", + "copyToClipboard": "Copier dans le presse-papiers", + "copied": "Copié !" + }, "powershell": { "issues": "Il semble que vous rencontriez des problèmes avec Windows PowerShell, veuillez consulter ce" }, diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index 00dde75bcf3..5fa10b221ba 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -146,7 +146,8 @@ "403": "अनुमति नहीं। आपकी API कुंजी वैध है, लेकिन प्रदाता ने इस अनुरोध को पूरा करने से इनकार कर दिया।", "429": "बहुत सारे अनुरोध। आप प्रदाता द्वारा दर-सीमित हो रहे हैं। कृपया अपनी अगली API कॉल से पहले थोड़ी देर प्रतीक्षा करें।", "500": "प्रदाता सर्वर त्रुटि। प्रदाता की ओर से कुछ गलत है, आपके अनुरोध में कुछ गलत नहीं है।", - "unknown": "अज्ञात API त्रुटि। कृपया Roo Code सहायता से संपर्क करें।" + "unknown": "अज्ञात API त्रुटि। कृपया Roo Code सहायता से संपर्क करें।", + "connection": "कनेक्शन त्रुटि। सुनिश्चित करें कि आपके पास कार्यशील इंटरनेट कनेक्शन है।" } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo का एक प्रश्न है" }, "taskCompleted": "कार्य पूरा हुआ", + "errorDetails": { + "title": "त्रुटि विवरण", + "copyToClipboard": "क्लिपबोर्ड पर कॉपी करें", + "copied": "कॉपी किया गया!" + }, "powershell": { "issues": "ऐसा लगता है कि आपको Windows PowerShell के साथ समस्याएँ हो रही हैं, कृपया इसे देखें" }, diff --git a/webview-ui/src/i18n/locales/id/chat.json b/webview-ui/src/i18n/locales/id/chat.json index f798ef5e8ba..cffcaf63821 100644 --- a/webview-ui/src/i18n/locales/id/chat.json +++ b/webview-ui/src/i18n/locales/id/chat.json @@ -155,7 +155,8 @@ "403": "Tidak sah. Kunci API Anda valid, tetapi penyedia menolak untuk menyelesaikan permintaan ini.", "429": "Terlalu banyak permintaan. Anda dibatasi tingkat oleh penyedia. Harap tunggu sebentar sebelum panggilan API berikutnya Anda.", "500": "Kesalahan server penyedia. Ada yang salah di sisi penyedia, tidak ada yang salah dengan permintaan Anda.", - "unknown": "Kesalahan API yang tidak diketahui. Harap hubungi dukungan Roo Code." + "unknown": "Kesalahan API yang tidak diketahui. Harap hubungi dukungan Roo Code.", + "connection": "Kesalahan koneksi. Pastikan Anda memiliki koneksi internet yang berfungsi." } }, "checkpoint": { @@ -294,6 +295,11 @@ "title": "Edit Tidak Berhasil" }, "troubleMessage": "Roo mengalami masalah...", + "errorDetails": { + "title": "Detail Kesalahan", + "copyToClipboard": "Salin ke Clipboard", + "copied": "Disalin!" + }, "powershell": { "issues": "Sepertinya kamu mengalami masalah Windows PowerShell, silakan lihat ini" }, diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index 71f21057769..9e53c1ea6af 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -149,7 +149,8 @@ "403": "Non autorizzato. La tua chiave API è valida, ma il provider ha rifiutato di completare questa richiesta.", "429": "Troppe richieste. Sei limitato dal provider. Attendi un po' prima della tua prossima chiamata API.", "500": "Errore del server del provider. C'è qualcosa di sbagliato dal lato del provider, non c'è nulla di sbagliato nella tua richiesta.", - "unknown": "Errore API sconosciuto. Contatta il supporto di Roo Code." + "unknown": "Errore API sconosciuto. Contatta il supporto di Roo Code.", + "connection": "Errore di connessione. Assicurati di avere una connessione Internet funzionante." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo ha una domanda" }, "taskCompleted": "Attività completata", + "errorDetails": { + "title": "Dettagli errore", + "copyToClipboard": "Copia negli appunti", + "copied": "Copiato!" + }, "powershell": { "issues": "Sembra che tu stia avendo problemi con Windows PowerShell, consulta questa" }, diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index 851b83f74d2..0ec51b776fe 100644 --- a/webview-ui/src/i18n/locales/ja/chat.json +++ b/webview-ui/src/i18n/locales/ja/chat.json @@ -146,7 +146,8 @@ "403": "認可されていません。API キーは有効ですが、プロバイダーがこのリクエストの完了を拒否しました。", "429": "リクエストが多すぎます。プロバイダーによってレート制限されています。次の API 呼び出しの前にお待ちください。", "500": "プロバイダー サーバー エラー。プロバイダー側に問題があり、リクエスト自体に問題はありません。", - "unknown": "不明な API エラー。Roo Code のサポートにお問い合わせください。" + "unknown": "不明な API エラー。Roo Code のサポートにお問い合わせください。", + "connection": "接続エラー。インターネット接続が機能していることを確認してください。" } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Rooは質問があります" }, "taskCompleted": "タスク完了", + "errorDetails": { + "title": "エラー詳細", + "copyToClipboard": "クリップボードにコピー", + "copied": "コピーしました!" + }, "powershell": { "issues": "Windows PowerShellに問題があるようです。こちらを参照してください" }, diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index 5dc4b8b2c8b..6e8f66532c9 100644 --- a/webview-ui/src/i18n/locales/ko/chat.json +++ b/webview-ui/src/i18n/locales/ko/chat.json @@ -146,7 +146,8 @@ "403": "권한 없음. API 키는 유효하지만 공급자가 이 요청을 완료하기를 거부했습니다.", "429": "너무 많은 요청입니다. 공급자에 의해 요청 제한이 적용되고 있습니다. 다음 API 호출 전에 잠깐 기다려주세요.", "500": "공급자 서버 오류입니다. 공급자 쪽에 문제가 있으며 요청에는 문제가 없습니다.", - "unknown": "알 수 없는 API 오류입니다. Roo Code 지원팀에 문의하세요." + "unknown": "알 수 없는 API 오류입니다. Roo Code 지원팀에 문의하세요.", + "connection": "연결 오류입니다. 인터넷 연결이 제대로 작동하는지 확인하세요." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo에게 질문이 있습니다" }, "taskCompleted": "작업 완료", + "errorDetails": { + "title": "오류 세부 정보", + "copyToClipboard": "클립보드에 복사", + "copied": "복사됨!" + }, "powershell": { "issues": "Windows PowerShell에 문제가 있는 것 같습니다. 다음을 참조하세요" }, diff --git a/webview-ui/src/i18n/locales/nl/chat.json b/webview-ui/src/i18n/locales/nl/chat.json index 66cdba7de1b..6a07b38c541 100644 --- a/webview-ui/src/i18n/locales/nl/chat.json +++ b/webview-ui/src/i18n/locales/nl/chat.json @@ -141,7 +141,8 @@ "403": "Niet geautoriseerd. Je API-sleutel is geldig, maar de provider weigerde dit verzoek in te willigen.", "429": "Te veel verzoeken. Je bent rate-gelimiteerd door de provider. Wacht alsjeblieft even voor je volgende API-aanroep.", "500": "Provider-serverfout. Er is iets mis aan de kant van de provider, er is niets mis met je verzoek.", - "unknown": "Onbekende API-fout. Neem alsjeblieft contact op met Roo Code-ondersteuning." + "unknown": "Onbekende API-fout. Neem alsjeblieft contact op met Roo Code-ondersteuning.", + "connection": "Verbindingsfout. Zorg ervoor dat je een werkende internetverbinding hebt." } }, "checkpoint": { @@ -258,6 +259,11 @@ "title": "Bewerking mislukt" }, "troubleMessage": "Roo ondervindt problemen...", + "errorDetails": { + "title": "Foutdetails", + "copyToClipboard": "Naar klembord kopiëren", + "copied": "Gekopieerd!" + }, "powershell": { "issues": "Het lijkt erop dat je problemen hebt met Windows PowerShell, zie deze" }, diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index ba8d05db6c5..a078d202b2b 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -146,7 +146,8 @@ "403": "Brak autoryzacji. Twój klucz API jest ważny, ale dostawca odmówił ukończenia tego żądania.", "429": "Zbyt wiele żądań. Dostawca ogranicza Ci szybkość żądań. Poczekaj chwilę przed następnym wywołaniem API.", "500": "Błąd serwera dostawcy. Po stronie dostawcy coś się nie powiodło, w Twoim żądaniu nie ma nic złego.", - "unknown": "Nieznany błąd API. Skontaktuj się z pomocą techniczną Roo Code." + "unknown": "Nieznany błąd API. Skontaktuj się z pomocą techniczną Roo Code.", + "connection": "Błąd połączenia. Upewnij się, że masz działające połączenie internetowe." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo ma pytanie" }, "taskCompleted": "Zadanie zakończone", + "errorDetails": { + "title": "Szczegóły błędu", + "copyToClipboard": "Kopiuj do schowka", + "copied": "Skopiowano!" + }, "powershell": { "issues": "Wygląda na to, że masz problemy z Windows PowerShell, proszę zapoznaj się z tym" }, diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index 721af6625a2..37801aaa2f7 100644 --- a/webview-ui/src/i18n/locales/pt-BR/chat.json +++ b/webview-ui/src/i18n/locales/pt-BR/chat.json @@ -146,7 +146,8 @@ "403": "Não autorizado. Sua chave API é válida, mas o provedor se recusou a concluir esta solicitação.", "429": "Muitas solicitações. Você está sendo limitado pelo provedor. Por favor, aguarde um pouco antes de sua próxima chamada de API.", "500": "Erro do servidor do provedor. Algo está errado do lado do provedor, não há nada de errado com sua solicitação.", - "unknown": "Erro de API desconhecido. Por favor, entre em contato com o suporte do Roo Code." + "unknown": "Erro de API desconhecido. Por favor, entre em contato com o suporte do Roo Code.", + "connection": "Erro de conexão. Certifique-se de que você tem uma conexão de internet funcionando." } }, "checkpoint": { @@ -258,6 +259,11 @@ "hasQuestion": "Roo tem uma pergunta" }, "taskCompleted": "Tarefa concluída", + "errorDetails": { + "title": "Detalhes do erro", + "copyToClipboard": "Copiar para área de transferência", + "copied": "Copiado!" + }, "powershell": { "issues": "Parece que você está tendo problemas com o Windows PowerShell, por favor veja este" }, diff --git a/webview-ui/src/i18n/locales/ru/chat.json b/webview-ui/src/i18n/locales/ru/chat.json index 6918039b8e2..c993d28cd35 100644 --- a/webview-ui/src/i18n/locales/ru/chat.json +++ b/webview-ui/src/i18n/locales/ru/chat.json @@ -141,7 +141,8 @@ "403": "Без авторизации. Ваш ключ API действителен, но провайдер отказался выполнить этот запрос.", "429": "Слишком много запросов. Провайдер ограничивает частоту ваших запросов. Пожалуйста, подождите немного перед следующим вызовом API.", "500": "Ошибка сервера провайдера. На стороне провайдера что-то пошло не так, с вашим запросом все в порядке.", - "unknown": "Неизвестная ошибка API. Пожалуйста, свяжитесь с поддержкой Roo Code." + "unknown": "Неизвестная ошибка API. Пожалуйста, свяжитесь с поддержкой Roo Code.", + "connection": "Ошибка подключения. Убедитесь, что у вас есть рабочее подключение к Интернету." } }, "checkpoint": { @@ -259,6 +260,11 @@ "title": "Не удалось выполнить редактирование" }, "troubleMessage": "У Roo возникли проблемы...", + "errorDetails": { + "title": "Детали ошибки", + "copyToClipboard": "Скопировать в буфер обмена", + "copied": "Скопировано!" + }, "powershell": { "issues": "Похоже, у вас проблемы с Windows PowerShell, пожалуйста, ознакомьтесь с этим" }, diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index f803b944d7f..0285d2ccef6 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -146,7 +146,8 @@ "403": "Yetkisiz. API anahtarınız geçerli ama sağlayıcı bu isteği tamamlamayı reddetti.", "429": "Çok fazla istek. Sağlayıcı tarafından oran sınırlaması uygulanıyor. Lütfen sonraki API çağrısından önce biraz bekle.", "500": "Sağlayıcı sunucu hatası. Sağlayıcı tarafında bir sorun var, isteğinizde sorun yok.", - "unknown": "Bilinmeyen API hatası. Lütfen Roo Code desteğiyle iletişime geç." + "unknown": "Bilinmeyen API hatası. Lütfen Roo Code desteğiyle iletişime geç.", + "connection": "Bağlantı hatası. Çalışan bir internet bağlantınız olduğundan emin olun." } }, "checkpoint": { @@ -259,6 +260,11 @@ "hasQuestion": "Roo'nun bir sorusu var" }, "taskCompleted": "Görev Tamamlandı", + "errorDetails": { + "title": "Hata Detayları", + "copyToClipboard": "Panoya Kopyala", + "copied": "Kopyalandı!" + }, "powershell": { "issues": "Windows PowerShell ile ilgili sorunlar yaşıyor gibi görünüyorsunuz, lütfen şu konuya bakın" }, diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index d57dbb5ec4a..5daaef6d871 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -146,7 +146,8 @@ "403": "Truy cập bị từ chối. Khóa API của bạn hợp lệ, nhưng nhà cung cấp từ chối hoàn thành yêu cầu này.", "429": "Quá nhiều yêu cầu. Nhà cung cấp đang giới hạn tốc độ yêu cầu của bạn. Vui lòng chờ một chút trước khi gọi API tiếp theo.", "500": "Lỗi máy chủ của nhà cung cấp. Có sự cố ở phía nhà cung cấp, không có gì sai với yêu cầu của bạn.", - "unknown": "Lỗi API không xác định. Vui lòng liên hệ hỗ trợ Roo Code." + "unknown": "Lỗi API không xác định. Vui lòng liên hệ hỗ trợ Roo Code.", + "connection": "Lỗi kết nối. Đảm bảo rằng bạn có kết nối Internet hoạt động." } }, "checkpoint": { @@ -259,6 +260,11 @@ "hasQuestion": "Roo có một câu hỏi" }, "taskCompleted": "Nhiệm vụ hoàn thành", + "errorDetails": { + "title": "Chi tiết lỗi", + "copyToClipboard": "Sao chép vào clipboard", + "copied": "Đã sao chép!" + }, "powershell": { "issues": "Có vẻ như bạn đang gặp vấn đề với Windows PowerShell, vui lòng xem" }, diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 6dfffd1f4b1..4e6aa98a758 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -146,7 +146,8 @@ "403": "无权限。您的 API 密钥有效,但提供商拒绝完成此请求。", "429": "请求过于频繁。提供商已对您的请求进行速率限制。请在下一次 API 调用前稍候。", "500": "提供商服务器错误。提供商端出现问题,您的请求无问题。", - "unknown": "未知 API 错误。请联系 Roo Code 支持。" + "unknown": "未知 API 错误。请联系 Roo Code 支持。", + "connection": "连接错误。确保您有可用的互联网连接。" } }, "checkpoint": { @@ -259,6 +260,11 @@ "hasQuestion": "Roo有一个问题" }, "taskCompleted": "任务完成", + "errorDetails": { + "title": "错误详情", + "copyToClipboard": "复制到剪贴板", + "copied": "已复制!" + }, "powershell": { "issues": "看起来您遇到了Windows PowerShell问题,请参阅此" }, diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index 81f55970201..95d5ee832dd 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -152,7 +152,8 @@ "403": "無權存取。您的 API 金鑰有效,但提供商拒絕完成此請求。", "429": "請求次數過多。提供商已對您的請求進行速率限制。請在下一次 API 呼叫前稍候。", "500": "提供商伺服器錯誤。提供商端發生問題,您的請求沒有問題。", - "unknown": "未知 API 錯誤。請聯絡 Roo Code 支援。" + "unknown": "未知 API 錯誤。請聯絡 Roo Code 支援。", + "connection": "連線錯誤。請確保您有可用的網際網路連線。" } }, "checkpoint": { @@ -292,6 +293,11 @@ "title": "編輯失敗" }, "troubleMessage": "Roo 遇到問題...", + "errorDetails": { + "title": "錯誤詳細資訊", + "copyToClipboard": "複製到剪貼簿", + "copied": "已複製!" + }, "powershell": { "issues": "您似乎遇到了 Windows PowerShell 的問題,請參閱此說明文件" },