feat: add internationalized error titles to all tool handleError calls

This commit is contained in:
Roo Code 2025-09-08 21:53:35 +00:00
parent b34dc7c8de
commit daaf45896b
34 changed files with 528 additions and 76 deletions

View file

@ -403,7 +403,11 @@ describe("writeToFileTool", () => {
await executeWriteFileTool({})
expect(mockHandleError).toHaveBeenCalledWith("writing file", expect.any(Error), "Write File Error")
expect(mockHandleError).toHaveBeenCalledWith(
"writing file",
expect.any(Error),
"writeToFile.errors.writeFileError",
)
expect(mockCline.diffViewProvider.reset).toHaveBeenCalled()
})
@ -412,7 +416,11 @@ describe("writeToFileTool", () => {
await executeWriteFileTool({}, { isPartial: true })
expect(mockHandleError).toHaveBeenCalledWith("writing file", expect.any(Error), "Write File Error")
expect(mockHandleError).toHaveBeenCalledWith(
"writing file",
expect.any(Error),
"writeToFile.errors.writeFileError",
)
expect(mockCline.diffViewProvider.reset).toHaveBeenCalled()
})
})

View file

@ -251,7 +251,7 @@ export async function applyDiffToolLegacy(
return
}
} catch (error) {
await handleError("applying diff", error, "Apply Diff Error")
await handleError("applying diff", error, t("tools:applyDiff.errors.applyDiffError"))
await cline.diffViewProvider.reset()
return
}

View file

@ -2,6 +2,7 @@ import { Task } from "../task/Task"
import { ToolUse, AskApproval, HandleError, PushToolResult, RemoveClosingTag } from "../../shared/tools"
import { formatResponse } from "../prompts/responses"
import { parseXml } from "../../utils/xml"
import { t } from "../../i18n"
export async function askFollowupQuestionTool(
cline: Task,
@ -93,7 +94,7 @@ export async function askFollowupQuestionTool(
return
}
} catch (error) {
await handleError("asking question", error)
await handleError("asking question", error, t("tools:askFollowupQuestion.errors.askError"))
return
}
}

View file

@ -128,7 +128,7 @@ export async function executeCommandTool(
return
}
} catch (error) {
await handleError("executing command", error)
await handleError("executing command", error, t("tools:executeCommand.errors.executeError"))
return
}
}

View file

@ -3,6 +3,7 @@ import { fetchInstructions } from "../prompts/instructions/instructions"
import { ClineSayTool } from "../../shared/ExtensionMessage"
import { formatResponse } from "../prompts/responses"
import { ToolUse, AskApproval, HandleError, PushToolResult } from "../../shared/tools"
import { t } from "../../i18n"
export async function fetchInstructionsTool(
cline: Task,
@ -58,6 +59,6 @@ export async function fetchInstructionsTool(
return
}
} catch (error) {
await handleError("fetch instructions", error)
await handleError("fetch instructions", error, t("tools:fetchInstructions.errors.fetchError"))
}
}

View file

@ -191,7 +191,7 @@ export async function insertContentTool(
await cline.diffViewProvider.reset()
} catch (error) {
handleError("insert content", error, "Insert Content Error")
handleError("insert content", error, t("tools:insertContent.errors.insertContentError"))
await cline.diffViewProvider.reset()
}
}

View file

@ -8,6 +8,7 @@ import { getReadablePath } from "../../utils/path"
import { isPathOutsideWorkspace } from "../../utils/pathUtils"
import { parseSourceCodeForDefinitionsTopLevel, parseSourceCodeDefinitionsForFile } from "../../services/tree-sitter"
import { RecordSource } from "../context-tracking/FileContextTrackerTypes"
import { t } from "../../i18n"
export async function listCodeDefinitionNamesTool(
cline: Task,
@ -76,7 +77,11 @@ export async function listCodeDefinitionNamesTool(
return
}
} catch (error) {
await handleError("parsing source code definitions", error)
await handleError(
"parsing source code definitions",
error,
t("tools:listCodeDefinitionNames.errors.parseError"),
)
return
}
}

View file

@ -7,6 +7,7 @@ import { listFiles } from "../../services/glob/list-files"
import { getReadablePath } from "../../utils/path"
import { isPathOutsideWorkspace } from "../../utils/pathUtils"
import { ToolUse, AskApproval, HandleError, PushToolResult, RemoveClosingTag } from "../../shared/tools"
import { t } from "../../i18n"
/**
* Implements the list_files tool.
@ -82,6 +83,6 @@ export async function listFilesTool(
pushToolResult(result)
}
} catch (error) {
await handleError("listing files", error)
await handleError("listing files", error, t("tools:listFiles.errors.listFilesError"))
}
}

View file

@ -3,6 +3,7 @@ import fs from "fs/promises"
import { TelemetryService } from "@roo-code/telemetry"
import { DEFAULT_WRITE_DELAY_MS } from "@roo-code/types"
import { t } from "../../i18n"
import { ClineSayTool } from "../../shared/ExtensionMessage"
import { getReadablePath } from "../../utils/path"
@ -677,7 +678,7 @@ ${errorDetails ? `\nTechnical details:\n${errorDetails}\n` : ""}
pushToolResult(results.join("\n\n") + singleBlockNotice)
return
} catch (error) {
await handleError("applying diff", error, "Apply Diff Error")
await handleError("applying diff", error, t("tools:applyDiff.errors.applyDiffError"))
await cline.diffViewProvider.reset()
return
}

View file

@ -155,7 +155,7 @@ export async function readFileTool(
}
} catch (error) {
const errorMessage = `Failed to parse read_file XML args: ${error instanceof Error ? error.message : String(error)}`
await handleError("parsing read_file args", new Error(errorMessage))
await handleError("parsing read_file args", new Error(errorMessage), t("tools:readFile.errors.parseError"))
pushToolResult(`<files><error>${errorMessage}</error></files>`)
return
}
@ -226,7 +226,11 @@ export async function readFileTool(
error: errorMsg,
xmlContent: `<file><path>${relPath}</path><error>Error reading file: ${errorMsg}</error></file>`,
})
await handleError(`reading file ${relPath}`, new Error(errorMsg))
await handleError(
`reading file ${relPath}`,
new Error(errorMsg),
t("tools:readFile.errors.invalidLineRange"),
)
hasRangeError = true
break
}
@ -237,7 +241,11 @@ export async function readFileTool(
error: errorMsg,
xmlContent: `<file><path>${relPath}</path><error>Error reading file: ${errorMsg}</error></file>`,
})
await handleError(`reading file ${relPath}`, new Error(errorMsg))
await handleError(
`reading file ${relPath}`,
new Error(errorMsg),
t("tools:readFile.errors.invalidLineRange"),
)
hasRangeError = true
break
}
@ -508,6 +516,7 @@ export async function readFileTool(
await handleError(
`reading image file ${relPath}`,
error instanceof Error ? error : new Error(errorMsg),
t("tools:readFile.errors.imageReadError"),
)
continue
}
@ -616,7 +625,11 @@ export async function readFileTool(
error: `Error reading file: ${errorMsg}`,
xmlContent: `<file><path>${relPath}</path><error>Error reading file: ${errorMsg}</error></file>`,
})
await handleError(`reading file ${relPath}`, error instanceof Error ? error : new Error(errorMsg))
await handleError(
`reading file ${relPath}`,
error instanceof Error ? error : new Error(errorMsg),
t("tools:readFile.errors.fileReadError"),
)
}
}
@ -704,8 +717,11 @@ export async function readFileTool(
xmlContent: `<file><path>${relPath}</path><error>Error reading file: ${errorMsg}</error></file>`,
})
}
await handleError(`reading file ${relPath}`, error instanceof Error ? error : new Error(errorMsg))
await handleError(
`reading file ${relPath}`,
error instanceof Error ? error : new Error(errorMsg),
t("tools:readFile.errors.fileReadError"),
)
// Generate final XML result from all file results
const xmlResults = fileResults.filter((result) => result.xmlContent).map((result) => result.xmlContent)

View file

@ -13,6 +13,7 @@ import { fileExistsAtPath } from "../../utils/fs"
import { RecordSource } from "../context-tracking/FileContextTrackerTypes"
import { DEFAULT_WRITE_DELAY_MS } from "@roo-code/types"
import { EXPERIMENT_IDS, experiments } from "../../shared/experiments"
import { t } from "../../i18n"
/**
* Tool for performing search and replace operations on files
@ -268,7 +269,7 @@ export async function searchAndReplaceTool(
cline.recordToolUsage("search_and_replace")
await cline.diffViewProvider.reset()
} catch (error) {
handleError("search and replace", error, "Search and Replace Error")
handleError("search and replace", error, t("tools:searchAndReplace.errors.searchAndReplaceError"))
await cline.diffViewProvider.reset()
}
}

View file

@ -6,6 +6,7 @@ import { ClineSayTool } from "../../shared/ExtensionMessage"
import { getReadablePath } from "../../utils/path"
import { isPathOutsideWorkspace } from "../../utils/pathUtils"
import { regexSearchFiles } from "../../services/ripgrep"
import { t } from "../../i18n"
export async function searchFilesTool(
cline: Task,
@ -72,7 +73,7 @@ export async function searchFilesTool(
return
}
} catch (error) {
await handleError("searching files", error)
await handleError("searching files", error, t("tools:searchFiles.errors.searchFilesError"))
return
}
}

View file

@ -180,6 +180,7 @@ export async function simpleReadFileTool(
await handleError(
`reading image file ${relPath}`,
error instanceof Error ? error : new Error(errorMsg),
t("tools:readFile.errors.imageReadError"),
)
return
}
@ -268,7 +269,11 @@ export async function simpleReadFileTool(
} catch (error) {
const errorMsg = error instanceof Error ? error.message : String(error)
pushToolResult(`<file><path>${relPath}</path><error>Error reading file: ${errorMsg}</error></file>`)
await handleError(`reading file ${relPath}`, error instanceof Error ? error : new Error(errorMsg))
await handleError(
`reading file ${relPath}`,
error instanceof Error ? error : new Error(errorMsg),
t("tools:simpleReadFile.errors.readError"),
)
}
}

View file

@ -4,6 +4,7 @@ import { Task } from "../task/Task"
import { ToolUse, AskApproval, HandleError, PushToolResult, RemoveClosingTag } from "../../shared/tools"
import { formatResponse } from "../prompts/responses"
import { defaultModeSlug, getModeBySlug } from "../../shared/modes"
import { t } from "../../i18n"
export async function switchModeTool(
cline: Task,
@ -75,7 +76,7 @@ export async function switchModeTool(
return
}
} catch (error) {
await handleError("switching mode", error)
await handleError("switching mode", error, t("tools:switchMode.errors.switchError"))
return
}
}

View file

@ -6,6 +6,7 @@ import cloneDeep from "clone-deep"
import crypto from "crypto"
import { TodoItem, TodoStatus, todoStatusSchema } from "@roo-code/types"
import { getLatestTodo } from "../../shared/todo"
import { t } from "../../i18n"
let approvedTodoList: TodoItem[] | undefined = undefined
@ -231,6 +232,6 @@ export async function updateTodoListTool(
pushToolResult(formatResponse.toolResult("Todo list updated successfully."))
}
} catch (error) {
await handleError("update todo list", error)
await handleError("update todo list", error, t("tools:updateTodoList.errors.updateError"))
}
}

View file

@ -16,6 +16,7 @@ import { detectCodeOmission } from "../../integrations/editor/detect-omission"
import { unescapeHtmlEntities } from "../../utils/text-normalization"
import { DEFAULT_WRITE_DELAY_MS } from "@roo-code/types"
import { EXPERIMENT_IDS, experiments } from "../../shared/experiments"
import { t } from "../../i18n"
export async function writeToFileTool(
cline: Task,
@ -311,7 +312,7 @@ export async function writeToFileTool(
return
}
} catch (error) {
await handleError("writing file", error, "Write File Error")
await handleError("writing file", error, t("tools:writeToFile.errors.writeFileError"))
await cline.diffViewProvider.reset()
return
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (només definicions)",
"maxLines": " (màxim {{max}} línies)",
"imageTooLarge": "El fitxer d'imatge és massa gran ({{size}} MB). La mida màxima permesa és {{max}} MB.",
"imageWithSize": "Fitxer d'imatge ({{size}} KB)"
"imageWithSize": "Fitxer d'imatge ({{size}} KB)",
"errors": {
"parseError": "Error d'Anàlisi del Fitxer",
"invalidLineRange": "Rang de Línies Invàlid",
"imageReadError": "Error de Lectura d'Imatge",
"fileReadError": "Error de Lectura del Fitxer"
}
},
"toolRepetitionLimitReached": "Roo sembla estar atrapat en un bucle, intentant la mateixa acció ({{toolName}}) repetidament. Això podria indicar un problema amb la seva estratègia actual. Considera reformular la tasca, proporcionar instruccions més específiques o guiar-lo cap a un enfocament diferent.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Fitxer no trobat",
"fileDoesNotExist": "El fitxer no existeix al camí: {{path}}",
"fileDoesNotExistDetails": "No s'ha pogut trobar el fitxer especificat. Si us plau, verifica el camí del fitxer i torna-ho a provar."
"fileDoesNotExistDetails": "No s'ha pogut trobar el fitxer especificat. Si us plau, verifica el camí del fitxer i torna-ho a provar.",
"applyDiffError": "Error d'Aplicació de Diff"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Número de línia invàlid",
"cannotInsertIntoNonExistent": "No es pot inserir contingut a la línia {{lineNumber}} d'un fitxer inexistent. Per a fitxers nous, 'line' ha de ser 0 (per afegir al final) o 1 (per inserir al principi)."
"cannotInsertIntoNonExistent": "No es pot inserir contingut a la línia {{lineNumber}} d'un fitxer inexistent. Per a fitxers nous, 'line' ha de ser 0 (per afegir al final) o 1 (per inserir al principi).",
"insertContentError": "Error d'Inserció de Contingut"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Paràmetre que falta",
"missingParameterMessage": "Roo ha intentat utilitzar {{toolName}}{{relPath}} sense valor per al paràmetre requerit '{{paramName}}'. Tornant a intentar..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Error d'Escriptura del Fitxer"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Error de Cerca i Substitució"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (nur Definitionen)",
"maxLines": " (maximal {{max}} Zeilen)",
"imageTooLarge": "Die Bilddatei ist zu groß ({{size}} MB). Die maximal erlaubte Größe beträgt {{max}} MB.",
"imageWithSize": "Bilddatei ({{size}} KB)"
"imageWithSize": "Bilddatei ({{size}} KB)",
"errors": {
"parseError": "Datei-Parse-Fehler",
"invalidLineRange": "Ungültiger Zeilenbereich",
"imageReadError": "Bildlesefehler",
"fileReadError": "Dateilesefehler"
}
},
"toolRepetitionLimitReached": "Roo scheint in einer Schleife festzustecken und versucht wiederholt dieselbe Aktion ({{toolName}}). Dies könnte auf ein Problem mit der aktuellen Strategie hindeuten. Überlege dir, die Aufgabe umzuformulieren, genauere Anweisungen zu geben oder Roo zu einem anderen Ansatz zu führen.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Datei nicht gefunden",
"fileDoesNotExist": "Datei existiert nicht unter dem Pfad: {{path}}",
"fileDoesNotExistDetails": "Die angegebene Datei konnte nicht gefunden werden. Bitte überprüfe den Dateipfad und versuche es erneut."
"fileDoesNotExistDetails": "Die angegebene Datei konnte nicht gefunden werden. Bitte überprüfe den Dateipfad und versuche es erneut.",
"applyDiffError": "Diff-Anwendungsfehler"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Ungültige Zeilennummer",
"cannotInsertIntoNonExistent": "Inhalt kann nicht in Zeile {{lineNumber}} einer nicht existierenden Datei eingefügt werden. Für neue Dateien muss 'line' 0 (zum Anhängen) oder 1 (zum Einfügen am Anfang) sein."
"cannotInsertIntoNonExistent": "Inhalt kann nicht in Zeile {{lineNumber}} einer nicht existierenden Datei eingefügt werden. Für neue Dateien muss 'line' 0 (zum Anhängen) oder 1 (zum Einfügen am Anfang) sein.",
"insertContentError": "Inhaltseinfügefehler"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Fehlender Parameter",
"missingParameterMessage": "Roo hat versucht, {{toolName}}{{relPath}} ohne Wert für den erforderlichen Parameter '{{paramName}}' zu verwenden. Versuche erneut..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Dateischreibfehler"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Suchen und Ersetzen Fehler"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (definitions only)",
"maxLines": " (max {{max}} lines)",
"imageTooLarge": "Image file is too large ({{size}} MB). The maximum allowed size is {{max}} MB.",
"imageWithSize": "Image file ({{size}} KB)"
"imageWithSize": "Image file ({{size}} KB)",
"errors": {
"parseError": "Read File Parse Error",
"invalidLineRange": "Invalid Line Range",
"imageReadError": "Image Read Error",
"fileReadError": "File Read Error"
}
},
"toolRepetitionLimitReached": "Roo appears to be stuck in a loop, attempting the same action ({{toolName}}) repeatedly. This might indicate a problem with its current strategy. Consider rephrasing the task, providing more specific instructions, or guiding it towards a different approach.",
"codebaseSearch": {
@ -19,13 +25,110 @@
"errors": {
"fileNotFound": "File Not Found",
"fileDoesNotExist": "File does not exist at path: {{path}}",
"fileDoesNotExistDetails": "The specified file could not be found. Please verify the file path and try again."
"fileDoesNotExistDetails": "The specified file could not be found. Please verify the file path and try again.",
"applyDiffError": "Apply Diff Error"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Invalid Line Number",
"cannotInsertIntoNonExistent": "Cannot insert content at line {{lineNumber}} into a non-existent file. For new files, 'line' must be 0 (to append) or 1 (to insert at the beginning)."
"cannotInsertIntoNonExistent": "Cannot insert content at line {{lineNumber}} into a non-existent file. For new files, 'line' must be 0 (to append) or 1 (to insert at the beginning).",
"insertContentError": "Insert Content Error"
}
},
"writeToFile": {
"errors": {
"writeFileError": "Write File Error"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Search and Replace Error"
}
},
"listFiles": {
"errors": {
"listFilesError": "List Files Error"
}
},
"searchFiles": {
"errors": {
"searchFilesError": "Search Files Error"
}
},
"listCodeDefinitionNames": {
"errors": {
"parseError": "Parse Code Definitions Error"
}
},
"fetchInstructions": {
"errors": {
"fetchError": "Fetch Instructions Error"
}
},
"updateTodoList": {
"errors": {
"updateError": "Update Todo List Error"
}
},
"executeCommand": {
"errors": {
"executeError": "Execute Command Error"
}
},
"browserAction": {
"errors": {
"browserError": "Browser Action Error"
}
},
"askFollowupQuestion": {
"errors": {
"askError": "Ask Question Error"
}
},
"attemptCompletion": {
"errors": {
"inspectError": "Inspect Site Error"
}
},
"runSlashCommand": {
"errors": {
"runError": "Run Slash Command Error"
}
},
"generateImage": {
"errors": {
"generateError": "Generate Image Error"
}
},
"newTaskTool": {
"errors": {
"createError": "Create New Task Error"
}
},
"codebaseSearch": {
"errors": {
"searchError": "Codebase Search Error"
}
},
"switchMode": {
"errors": {
"switchError": "Switch Mode Error"
}
},
"accessMcpResource": {
"errors": {
"accessError": "Access MCP Resource Error"
}
},
"useMcpTool": {
"errors": {
"executeError": "Execute MCP Tool Error"
}
},
"simpleReadFile": {
"errors": {
"readError": "Read File Error"
}
},
"common": {

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (solo definiciones)",
"maxLines": " (máximo {{max}} líneas)",
"imageTooLarge": "El archivo de imagen es demasiado grande ({{size}} MB). El tamaño máximo permitido es {{max}} MB.",
"imageWithSize": "Archivo de imagen ({{size}} KB)"
"imageWithSize": "Archivo de imagen ({{size}} KB)",
"errors": {
"parseError": "Error de Análisis de Archivo",
"invalidLineRange": "Rango de Líneas Inválido",
"imageReadError": "Error de Lectura de Imagen",
"fileReadError": "Error de Lectura de Archivo"
}
},
"toolRepetitionLimitReached": "Roo parece estar atrapado en un bucle, intentando la misma acción ({{toolName}}) repetidamente. Esto podría indicar un problema con su estrategia actual. Considera reformular la tarea, proporcionar instrucciones más específicas o guiarlo hacia un enfoque diferente.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Archivo no encontrado",
"fileDoesNotExist": "El archivo no existe en la ruta: {{path}}",
"fileDoesNotExistDetails": "No se pudo encontrar el archivo especificado. Por favor, verifica la ruta del archivo e intenta de nuevo."
"fileDoesNotExistDetails": "No se pudo encontrar el archivo especificado. Por favor, verifica la ruta del archivo e intenta de nuevo.",
"applyDiffError": "Error al Aplicar Diff"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Número de línea inválido",
"cannotInsertIntoNonExistent": "No se puede insertar contenido en la línea {{lineNumber}} de un archivo inexistente. Para archivos nuevos, 'line' debe ser 0 (para añadir al final) o 1 (para insertar al principio)."
"cannotInsertIntoNonExistent": "No se puede insertar contenido en la línea {{lineNumber}} de un archivo inexistente. Para archivos nuevos, 'line' debe ser 0 (para añadir al final) o 1 (para insertar al principio).",
"insertContentError": "Error al Insertar Contenido"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Parámetro faltante",
"missingParameterMessage": "Roo intentó usar {{toolName}}{{relPath}} sin valor para el parámetro requerido '{{paramName}}'. Reintentando..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Error de Escritura de Archivo"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Error de Búsqueda y Reemplazo"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (définitions uniquement)",
"maxLines": " (max {{max}} lignes)",
"imageTooLarge": "Le fichier image est trop volumineux ({{size}} MB). La taille maximale autorisée est {{max}} MB.",
"imageWithSize": "Fichier image ({{size}} Ko)"
"imageWithSize": "Fichier image ({{size}} Ko)",
"errors": {
"parseError": "Erreur d'Analyse du Fichier",
"invalidLineRange": "Plage de Lignes Invalide",
"imageReadError": "Erreur de Lecture d'Image",
"fileReadError": "Erreur de Lecture du Fichier"
}
},
"toolRepetitionLimitReached": "Roo semble être bloqué dans une boucle, tentant la même action ({{toolName}}) de façon répétée. Cela pourrait indiquer un problème avec sa stratégie actuelle. Envisage de reformuler la tâche, de fournir des instructions plus spécifiques ou de le guider vers une approche différente.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Fichier introuvable",
"fileDoesNotExist": "Le fichier n'existe pas au chemin : {{path}}",
"fileDoesNotExistDetails": "Le fichier spécifié n'a pas pu être trouvé. Veuillez vérifier le chemin du fichier et réessayer."
"fileDoesNotExistDetails": "Le fichier spécifié n'a pas pu être trouvé. Veuillez vérifier le chemin du fichier et réessayer.",
"applyDiffError": "Erreur d'Application de Diff"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Numéro de ligne invalide",
"cannotInsertIntoNonExistent": "Impossible d'insérer du contenu à la ligne {{lineNumber}} dans un fichier inexistant. Pour les nouveaux fichiers, 'line' doit être 0 (pour ajouter à la fin) ou 1 (pour insérer au début)."
"cannotInsertIntoNonExistent": "Impossible d'insérer du contenu à la ligne {{lineNumber}} dans un fichier inexistant. Pour les nouveaux fichiers, 'line' doit être 0 (pour ajouter à la fin) ou 1 (pour insérer au début).",
"insertContentError": "Erreur d'Insertion de Contenu"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Paramètre manquant",
"missingParameterMessage": "Roo a essayé d'utiliser {{toolName}}{{relPath}} sans valeur pour le paramètre requis '{{paramName}}'. Nouvelle tentative..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Erreur d'Écriture du Fichier"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Erreur de Recherche et Remplacement"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (केवल परिभाषाएँ)",
"maxLines": " (अधिकतम {{max}} पंक्तियाँ)",
"imageTooLarge": "छवि फ़ाइल बहुत बड़ी है ({{size}} MB)। अधिकतम अनुमतित आकार {{max}} MB है।",
"imageWithSize": "छवि फ़ाइल ({{size}} KB)"
"imageWithSize": "छवि फ़ाइल ({{size}} KB)",
"errors": {
"parseError": "फ़ाइल पार्स त्रुटि",
"invalidLineRange": "अमान्य लाइन रेंज",
"imageReadError": "छवि पढ़ने में त्रुटि",
"fileReadError": "फ़ाइल पढ़ने में त्रुटि"
}
},
"toolRepetitionLimitReached": "Roo एक लूप में फंसा हुआ लगता है, बार-बार एक ही क्रिया ({{toolName}}) को दोहरा रहा है। यह उसकी वर्तमान रणनीति में किसी समस्या का संकेत हो सकता है। कार्य को पुनः परिभाषित करने, अधिक विशिष्ट निर्देश देने, या उसे एक अलग दृष्टिकोण की ओर मार्गदर्शित करने पर विचार करें।",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "फ़ाइल नहीं मिली",
"fileDoesNotExist": "फ़ाइल पथ पर मौजूद नहीं है: {{path}}",
"fileDoesNotExistDetails": "निर्दिष्ट फ़ाइल नहीं मिल सकी। कृपया फ़ाइल पथ सत्यापित करें और पुनः प्रयास करें।"
"fileDoesNotExistDetails": "निर्दिष्ट फ़ाइल नहीं मिल सकी। कृपया फ़ाइल पथ सत्यापित करें और पुनः प्रयास करें।",
"applyDiffError": "डिफ लागू करने में त्रुटि"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "अमान्य लाइन नंबर",
"cannotInsertIntoNonExistent": "गैर-मौजूद फ़ाइल की लाइन {{lineNumber}} में सामग्री नहीं डाली जा सकती। नई फ़ाइलों के लिए, 'line' 0 (अंत में जोड़ने के लिए) या 1 (शुरुआत में डालने के लिए) होनी चाहिए।"
"cannotInsertIntoNonExistent": "गैर-मौजूद फ़ाइल की लाइन {{lineNumber}} में सामग्री नहीं डाली जा सकती। नई फ़ाइलों के लिए, 'line' 0 (अंत में जोड़ने के लिए) या 1 (शुरुआत में डालने के लिए) होनी चाहिए।",
"insertContentError": "सामग्री डालने में त्रुटि"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "गुम पैरामीटर",
"missingParameterMessage": "Roo ने आवश्यक पैरामीटर '{{paramName}}' के लिए मान के बिना {{toolName}}{{relPath}} का उपयोग करने का प्रयास किया। पुनः प्रयास कर रहा है..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "फ़ाइल लिखने में त्रुटि"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "खोज और बदलाव त्रुटि"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (hanya definisi)",
"maxLines": " (maks {{max}} baris)",
"imageTooLarge": "File gambar terlalu besar ({{size}} MB). Ukuran maksimum yang diizinkan adalah {{max}} MB.",
"imageWithSize": "File gambar ({{size}} KB)"
"imageWithSize": "File gambar ({{size}} KB)",
"errors": {
"parseError": "Kesalahan Parse File",
"invalidLineRange": "Rentang Baris Tidak Valid",
"imageReadError": "Kesalahan Membaca Gambar",
"fileReadError": "Kesalahan Membaca File"
}
},
"toolRepetitionLimitReached": "Roo tampaknya terjebak dalam loop, mencoba aksi yang sama ({{toolName}}) berulang kali. Ini mungkin menunjukkan masalah dengan strategi saat ini. Pertimbangkan untuk mengubah frasa tugas, memberikan instruksi yang lebih spesifik, atau mengarahkannya ke pendekatan yang berbeda.",
"codebaseSearch": {
@ -22,13 +28,15 @@
"errors": {
"fileNotFound": "File Tidak Ditemukan",
"fileDoesNotExist": "File tidak ada di path: {{path}}",
"fileDoesNotExistDetails": "File yang ditentukan tidak dapat ditemukan. Silakan verifikasi path file dan coba lagi."
"fileDoesNotExistDetails": "File yang ditentukan tidak dapat ditemukan. Silakan verifikasi path file dan coba lagi.",
"applyDiffError": "Kesalahan Menerapkan Diff"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Nomor Baris Tidak Valid",
"cannotInsertIntoNonExistent": "Tidak dapat menyisipkan konten di baris {{lineNumber}} ke file yang tidak ada. Untuk file baru, 'line' harus 0 (untuk menambahkan di akhir) atau 1 (untuk menyisipkan di awal)."
"cannotInsertIntoNonExistent": "Tidak dapat menyisipkan konten di baris {{lineNumber}} ke file yang tidak ada. Untuk file baru, 'line' harus 0 (untuk menambahkan di akhir) atau 1 (untuk menyisipkan di awal).",
"insertContentError": "Kesalahan Menyisipkan Konten"
}
},
"common": {
@ -36,5 +44,15 @@
"missingParameter": "Parameter Hilang",
"missingParameterMessage": "Roo mencoba menggunakan {{toolName}}{{relPath}} tanpa nilai untuk parameter yang diperlukan '{{paramName}}'. Mencoba lagi..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Kesalahan Menulis File"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Kesalahan Cari dan Ganti"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (solo definizioni)",
"maxLines": " (max {{max}} righe)",
"imageTooLarge": "Il file immagine è troppo grande ({{size}} MB). La dimensione massima consentita è {{max}} MB.",
"imageWithSize": "File immagine ({{size}} KB)"
"imageWithSize": "File immagine ({{size}} KB)",
"errors": {
"parseError": "Errore di Analisi del File",
"invalidLineRange": "Intervallo di Righe Non Valido",
"imageReadError": "Errore di Lettura Immagine",
"fileReadError": "Errore di Lettura del File"
}
},
"toolRepetitionLimitReached": "Roo sembra essere bloccato in un ciclo, tentando ripetutamente la stessa azione ({{toolName}}). Questo potrebbe indicare un problema con la sua strategia attuale. Considera di riformulare l'attività, fornire istruzioni più specifiche o guidarlo verso un approccio diverso.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "File non trovato",
"fileDoesNotExist": "Il file non esiste nel percorso: {{path}}",
"fileDoesNotExistDetails": "Il file specificato non è stato trovato. Verifica il percorso del file e riprova."
"fileDoesNotExistDetails": "Il file specificato non è stato trovato. Verifica il percorso del file e riprova.",
"applyDiffError": "Errore nell'Applicazione del Diff"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Numero di riga non valido",
"cannotInsertIntoNonExistent": "Impossibile inserire contenuto alla riga {{lineNumber}} in un file inesistente. Per i nuovi file, 'line' deve essere 0 (per aggiungere alla fine) o 1 (per inserire all'inizio)."
"cannotInsertIntoNonExistent": "Impossibile inserire contenuto alla riga {{lineNumber}} in un file inesistente. Per i nuovi file, 'line' deve essere 0 (per aggiungere alla fine) o 1 (per inserire all'inizio).",
"insertContentError": "Errore nell'Inserimento del Contenuto"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Parametro mancante",
"missingParameterMessage": "Roo ha tentato di usare {{toolName}}{{relPath}} senza valore per il parametro richiesto '{{paramName}}'. Nuovo tentativo..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Errore di Scrittura del File"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Errore di Ricerca e Sostituzione"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (定義のみ)",
"maxLines": " (最大{{max}}行)",
"imageTooLarge": "画像ファイルが大きすぎます({{size}} MB。最大許可サイズは {{max}} MB です。",
"imageWithSize": "画像ファイル({{size}} KB"
"imageWithSize": "画像ファイル({{size}} KB",
"errors": {
"parseError": "ファイル解析エラー",
"invalidLineRange": "無効な行範囲",
"imageReadError": "画像読み取りエラー",
"fileReadError": "ファイル読み取りエラー"
}
},
"toolRepetitionLimitReached": "Rooが同じ操作{{toolName}})を繰り返し試みるループに陥っているようです。これは現在の方法に問題がある可能性を示しています。タスクの言い換え、より具体的な指示の提供、または別のアプローチへの誘導を検討してください。",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "ファイルが見つかりません",
"fileDoesNotExist": "ファイルがパスに存在しません: {{path}}",
"fileDoesNotExistDetails": "指定されたファイルが見つかりませんでした。ファイルパスを確認して、もう一度お試しください。"
"fileDoesNotExistDetails": "指定されたファイルが見つかりませんでした。ファイルパスを確認して、もう一度お試しください。",
"applyDiffError": "差分適用エラー"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "無効な行番号",
"cannotInsertIntoNonExistent": "存在しないファイルの{{lineNumber}}行目にコンテンツを挿入できません。新しいファイルの場合、'line'は0末尾に追加または1先頭に挿入である必要があります。"
"cannotInsertIntoNonExistent": "存在しないファイルの{{lineNumber}}行目にコンテンツを挿入できません。新しいファイルの場合、'line'は0末尾に追加または1先頭に挿入である必要があります。",
"insertContentError": "コンテンツ挿入エラー"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "パラメータ不足",
"missingParameterMessage": "Rooは必須パラメータ'{{paramName}}'の値なしで{{toolName}}{{relPath}}を使用しようとしました。再試行中..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "ファイル書き込みエラー"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "検索と置換エラー"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (정의만)",
"maxLines": " (최대 {{max}}행)",
"imageTooLarge": "이미지 파일이 너무 큽니다 ({{size}} MB). 최대 허용 크기는 {{max}} MB입니다.",
"imageWithSize": "이미지 파일 ({{size}} KB)"
"imageWithSize": "이미지 파일 ({{size}} KB)",
"errors": {
"parseError": "파일 구문 분석 오류",
"invalidLineRange": "잘못된 줄 범위",
"imageReadError": "이미지 읽기 오류",
"fileReadError": "파일 읽기 오류"
}
},
"toolRepetitionLimitReached": "Roo가 같은 동작({{toolName}})을 반복적으로 시도하면서 루프에 갇힌 것 같습니다. 이는 현재 전략에 문제가 있을 수 있음을 나타냅니다. 작업을 다시 표현하거나, 더 구체적인 지침을 제공하거나, 다른 접근 방식으로 안내해 보세요.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "파일을 찾을 수 없음",
"fileDoesNotExist": "파일이 경로에 존재하지 않습니다: {{path}}",
"fileDoesNotExistDetails": "지정된 파일을 찾을 수 없습니다. 파일 경로를 확인하고 다시 시도해 주세요."
"fileDoesNotExistDetails": "지정된 파일을 찾을 수 없습니다. 파일 경로를 확인하고 다시 시도해 주세요.",
"applyDiffError": "차이점 적용 오류"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "잘못된 줄 번호",
"cannotInsertIntoNonExistent": "존재하지 않는 파일의 {{lineNumber}}번째 줄에 내용을 삽입할 수 없습니다. 새 파일의 경우 'line'은 0(끝에 추가) 또는 1(시작 부분에 삽입)이어야 합니다."
"cannotInsertIntoNonExistent": "존재하지 않는 파일의 {{lineNumber}}번째 줄에 내용을 삽입할 수 없습니다. 새 파일의 경우 'line'은 0(끝에 추가) 또는 1(시작 부분에 삽입)이어야 합니다.",
"insertContentError": "콘텐츠 삽입 오류"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "누락된 매개변수",
"missingParameterMessage": "Roo가 필수 매개변수 '{{paramName}}'의 값 없이 {{toolName}}{{relPath}}를 사용하려고 했습니다. 다시 시도 중..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "파일 쓰기 오류"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "검색 및 바꾸기 오류"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (alleen definities)",
"maxLines": " (max {{max}} regels)",
"imageTooLarge": "Afbeeldingsbestand is te groot ({{size}} MB). De maximaal toegestane grootte is {{max}} MB.",
"imageWithSize": "Afbeeldingsbestand ({{size}} KB)"
"imageWithSize": "Afbeeldingsbestand ({{size}} KB)",
"errors": {
"parseError": "Bestand Parse Fout",
"invalidLineRange": "Ongeldig Regelbereik",
"imageReadError": "Afbeelding Leesfout",
"fileReadError": "Bestand Leesfout"
}
},
"toolRepetitionLimitReached": "Roo lijkt vast te zitten in een lus, waarbij hij herhaaldelijk dezelfde actie ({{toolName}}) probeert. Dit kan duiden op een probleem met de huidige strategie. Overweeg de taak te herformuleren, specifiekere instructies te geven of Roo naar een andere aanpak te leiden.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Bestand niet gevonden",
"fileDoesNotExist": "Bestand bestaat niet op pad: {{path}}",
"fileDoesNotExistDetails": "Het opgegeven bestand kon niet worden gevonden. Controleer het bestandspad en probeer het opnieuw."
"fileDoesNotExistDetails": "Het opgegeven bestand kon niet worden gevonden. Controleer het bestandspad en probeer het opnieuw.",
"applyDiffError": "Diff Toepassingsfout"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Ongeldig regelnummer",
"cannotInsertIntoNonExistent": "Kan geen inhoud invoegen op regel {{lineNumber}} in een niet-bestaand bestand. Voor nieuwe bestanden moet 'line' 0 zijn (om toe te voegen aan het einde) of 1 (om in te voegen aan het begin)."
"cannotInsertIntoNonExistent": "Kan geen inhoud invoegen op regel {{lineNumber}} in een niet-bestaand bestand. Voor nieuwe bestanden moet 'line' 0 zijn (om toe te voegen aan het einde) of 1 (om in te voegen aan het begin).",
"insertContentError": "Inhoud Invoegfout"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Ontbrekende parameter",
"missingParameterMessage": "Roo probeerde {{toolName}}{{relPath}} te gebruiken zonder waarde voor de vereiste parameter '{{paramName}}'. Opnieuw proberen..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Bestand Schrijffout"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Zoek en Vervang Fout"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (tylko definicje)",
"maxLines": " (maks. {{max}} linii)",
"imageTooLarge": "Plik obrazu jest zbyt duży ({{size}} MB). Maksymalny dozwolony rozmiar to {{max}} MB.",
"imageWithSize": "Plik obrazu ({{size}} KB)"
"imageWithSize": "Plik obrazu ({{size}} KB)",
"errors": {
"parseError": "Błąd Parsowania Pliku",
"invalidLineRange": "Nieprawidłowy Zakres Linii",
"imageReadError": "Błąd Odczytu Obrazu",
"fileReadError": "Błąd Odczytu Pliku"
}
},
"toolRepetitionLimitReached": "Wygląda na to, że Roo utknął w pętli, wielokrotnie próbując wykonać tę samą akcję ({{toolName}}). Może to wskazywać na problem z jego obecną strategią. Rozważ przeformułowanie zadania, podanie bardziej szczegółowych instrukcji lub nakierowanie go na inne podejście.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Plik nie został znaleziony",
"fileDoesNotExist": "Plik nie istnieje w ścieżce: {{path}}",
"fileDoesNotExistDetails": "Nie można znaleźć określonego pliku. Sprawdź ścieżkę pliku i spróbuj ponownie."
"fileDoesNotExistDetails": "Nie można znaleźć określonego pliku. Sprawdź ścieżkę pliku i spróbuj ponownie.",
"applyDiffError": "Błąd Stosowania Różnic"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Nieprawidłowy numer linii",
"cannotInsertIntoNonExistent": "Nie można wstawić treści w linii {{lineNumber}} do nieistniejącego pliku. Dla nowych plików 'line' musi być 0 (aby dodać na końcu) lub 1 (aby wstawić na początku)."
"cannotInsertIntoNonExistent": "Nie można wstawić treści w linii {{lineNumber}} do nieistniejącego pliku. Dla nowych plików 'line' musi być 0 (aby dodać na końcu) lub 1 (aby wstawić na początku).",
"insertContentError": "Błąd Wstawiania Treści"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Brakujący parametr",
"missingParameterMessage": "Roo próbował użyć {{toolName}}{{relPath}} bez wartości dla wymaganego parametru '{{paramName}}'. Ponawiam próbę..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Błąd Zapisu Pliku"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Błąd Wyszukiwania i Zamiany"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (apenas definições)",
"maxLines": " (máx. {{max}} linhas)",
"imageTooLarge": "Arquivo de imagem é muito grande ({{size}} MB). O tamanho máximo permitido é {{max}} MB.",
"imageWithSize": "Arquivo de imagem ({{size}} KB)"
"imageWithSize": "Arquivo de imagem ({{size}} KB)",
"errors": {
"parseError": "Erro de Análise do Arquivo",
"invalidLineRange": "Intervalo de Linhas Inválido",
"imageReadError": "Erro de Leitura de Imagem",
"fileReadError": "Erro de Leitura do Arquivo"
}
},
"toolRepetitionLimitReached": "Roo parece estar preso em um loop, tentando a mesma ação ({{toolName}}) repetidamente. Isso pode indicar um problema com sua estratégia atual. Considere reformular a tarefa, fornecer instruções mais específicas ou guiá-lo para uma abordagem diferente.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Arquivo não encontrado",
"fileDoesNotExist": "O arquivo não existe no caminho: {{path}}",
"fileDoesNotExistDetails": "O arquivo especificado não pôde ser encontrado. Por favor, verifique o caminho do arquivo e tente novamente."
"fileDoesNotExistDetails": "O arquivo especificado não pôde ser encontrado. Por favor, verifique o caminho do arquivo e tente novamente.",
"applyDiffError": "Erro ao Aplicar Diff"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Número de linha inválido",
"cannotInsertIntoNonExistent": "Não é possível inserir conteúdo na linha {{lineNumber}} em um arquivo inexistente. Para novos arquivos, 'line' deve ser 0 (para adicionar ao final) ou 1 (para inserir no início)."
"cannotInsertIntoNonExistent": "Não é possível inserir conteúdo na linha {{lineNumber}} em um arquivo inexistente. Para novos arquivos, 'line' deve ser 0 (para adicionar ao final) ou 1 (para inserir no início).",
"insertContentError": "Erro ao Inserir Conteúdo"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Parâmetro ausente",
"missingParameterMessage": "Roo tentou usar {{toolName}}{{relPath}} sem valor para o parâmetro obrigatório '{{paramName}}'. Tentando novamente..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Erro de Escrita do Arquivo"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Erro de Busca e Substituição"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (только определения)",
"maxLines": " (макс. {{max}} строк)",
"imageTooLarge": "Файл изображения слишком большой ({{size}} МБ). Максимально допустимый размер {{max}} МБ.",
"imageWithSize": "Файл изображения ({{size}} КБ)"
"imageWithSize": "Файл изображения ({{size}} КБ)",
"errors": {
"parseError": "Ошибка Разбора Файла",
"invalidLineRange": "Недопустимый Диапазон Строк",
"imageReadError": "Ошибка Чтения Изображения",
"fileReadError": "Ошибка Чтения Файла"
}
},
"toolRepetitionLimitReached": "Похоже, что Roo застрял в цикле, многократно пытаясь выполнить одно и то же действие ({{toolName}}). Это может указывать на проблему с его текущей стратегией. Попробуйте переформулировать задачу, предоставить более конкретные инструкции или направить его к другому подходу.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Файл не найден",
"fileDoesNotExist": "Файл не существует по пути: {{path}}",
"fileDoesNotExistDetails": "Указанный файл не найден. Пожалуйста, проверьте путь к файлу и попробуйте снова."
"fileDoesNotExistDetails": "Указанный файл не найден. Пожалуйста, проверьте путь к файлу и попробуйте снова.",
"applyDiffError": "Ошибка Применения Различий"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Недопустимый номер строки",
"cannotInsertIntoNonExistent": "Невозможно вставить содержимое в строку {{lineNumber}} несуществующего файла. Для новых файлов 'line' должна быть 0 (для добавления в конец) или 1 (для вставки в начало)."
"cannotInsertIntoNonExistent": "Невозможно вставить содержимое в строку {{lineNumber}} несуществующего файла. Для новых файлов 'line' должна быть 0 (для добавления в конец) или 1 (для вставки в начало).",
"insertContentError": "Ошибка Вставки Содержимого"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Отсутствующий параметр",
"missingParameterMessage": "Roo попытался использовать {{toolName}}{{relPath}} без значения для обязательного параметра '{{paramName}}'. Повторная попытка..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Ошибка Записи Файла"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Ошибка Поиска и Замены"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (sadece tanımlar)",
"maxLines": " (maks. {{max}} satır)",
"imageTooLarge": "Görüntü dosyası çok büyük ({{size}} MB). İzin verilen maksimum boyut {{max}} MB.",
"imageWithSize": "Görüntü dosyası ({{size}} KB)"
"imageWithSize": "Görüntü dosyası ({{size}} KB)",
"errors": {
"parseError": "Dosya Ayrıştırma Hatası",
"invalidLineRange": "Geçersiz Satır Aralığı",
"imageReadError": "Görüntü Okuma Hatası",
"fileReadError": "Dosya Okuma Hatası"
}
},
"toolRepetitionLimitReached": "Roo bir döngüye takılmış gibi görünüyor, aynı eylemi ({{toolName}}) tekrar tekrar deniyor. Bu, mevcut stratejisinde bir sorun olduğunu gösterebilir. Görevi yeniden ifade etmeyi, daha spesifik talimatlar vermeyi veya onu farklı bir yaklaşıma yönlendirmeyi düşünün.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Dosya Bulunamadı",
"fileDoesNotExist": "Dosya şu yolda mevcut değil: {{path}}",
"fileDoesNotExistDetails": "Belirtilen dosya bulunamadı. Lütfen dosya yolunu doğrulayın ve tekrar deneyin."
"fileDoesNotExistDetails": "Belirtilen dosya bulunamadı. Lütfen dosya yolunu doğrulayın ve tekrar deneyin.",
"applyDiffError": "Fark Uygulama Hatası"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Geçersiz Satır Numarası",
"cannotInsertIntoNonExistent": "Var olmayan bir dosyanın {{lineNumber}}. satırına içerik eklenemez. Yeni dosyalar için 'line' 0 (sona eklemek için) veya 1 (başa eklemek için) olmalıdır."
"cannotInsertIntoNonExistent": "Var olmayan bir dosyanın {{lineNumber}}. satırına içerik eklenemez. Yeni dosyalar için 'line' 0 (sona eklemek için) veya 1 (başa eklemek için) olmalıdır.",
"insertContentError": "İçerik Ekleme Hatası"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Eksik Parametre",
"missingParameterMessage": "Roo, gerekli '{{paramName}}' parametresi için değer olmadan {{toolName}}{{relPath}} kullanmaya çalıştı. Yeniden deneniyor..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Dosya Yazma Hatası"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Ara ve Değiştir Hatası"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (chỉ định nghĩa)",
"maxLines": " (tối đa {{max}} dòng)",
"imageTooLarge": "Tệp hình ảnh quá lớn ({{size}} MB). Kích thước tối đa cho phép là {{max}} MB.",
"imageWithSize": "Tệp hình ảnh ({{size}} KB)"
"imageWithSize": "Tệp hình ảnh ({{size}} KB)",
"errors": {
"parseError": "Lỗi Phân Tích Tệp",
"invalidLineRange": "Phạm Vi Dòng Không Hợp Lệ",
"imageReadError": "Lỗi Đọc Hình Ảnh",
"fileReadError": "Lỗi Đọc Tệp"
}
},
"toolRepetitionLimitReached": "Roo dường như đang bị mắc kẹt trong một vòng lặp, liên tục cố gắng thực hiện cùng một hành động ({{toolName}}). Điều này có thể cho thấy vấn đề với chiến lược hiện tại. Hãy cân nhắc việc diễn đạt lại nhiệm vụ, cung cấp hướng dẫn cụ thể hơn, hoặc hướng Roo theo một cách tiếp cận khác.",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "Không tìm thấy tệp",
"fileDoesNotExist": "Tệp không tồn tại tại đường dẫn: {{path}}",
"fileDoesNotExistDetails": "Không thể tìm thấy tệp được chỉ định. Vui lòng xác minh đường dẫn tệp và thử lại."
"fileDoesNotExistDetails": "Không thể tìm thấy tệp được chỉ định. Vui lòng xác minh đường dẫn tệp và thử lại.",
"applyDiffError": "Lỗi Áp Dụng Diff"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "Số dòng không hợp lệ",
"cannotInsertIntoNonExistent": "Không thể chèn nội dung vào dòng {{lineNumber}} của tệp không tồn tại. Đối với tệp mới, 'line' phải là 0 (để thêm vào cuối) hoặc 1 (để chèn vào đầu)."
"cannotInsertIntoNonExistent": "Không thể chèn nội dung vào dòng {{lineNumber}} của tệp không tồn tại. Đối với tệp mới, 'line' phải là 0 (để thêm vào cuối) hoặc 1 (để chèn vào đầu).",
"insertContentError": "Lỗi Chèn Nội Dung"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "Thiếu tham số",
"missingParameterMessage": "Roo đã cố gắng sử dụng {{toolName}}{{relPath}} mà không có giá trị cho tham số bắt buộc '{{paramName}}'. Đang thử lại..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "Lỗi Ghi Tệp"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "Lỗi Tìm và Thay Thế"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (仅定义)",
"maxLines": " (最多 {{max}} 行)",
"imageTooLarge": "图片文件过大 ({{size}} MB)。允许的最大大小为 {{max}} MB。",
"imageWithSize": "图片文件 ({{size}} KB)"
"imageWithSize": "图片文件 ({{size}} KB)",
"errors": {
"parseError": "文件解析错误",
"invalidLineRange": "无效的行范围",
"imageReadError": "图像读取错误",
"fileReadError": "文件读取错误"
}
},
"toolRepetitionLimitReached": "Roo 似乎陷入循环,反复尝试同一操作 ({{toolName}})。这可能表明当前策略存在问题。请考虑重新描述任务、提供更具体的指示或引导其尝试不同的方法。",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "文件未找到",
"fileDoesNotExist": "文件不存在于路径:{{path}}",
"fileDoesNotExistDetails": "找不到指定的文件。请验证文件路径并重试。"
"fileDoesNotExistDetails": "找不到指定的文件。请验证文件路径并重试。",
"applyDiffError": "应用差异错误"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "无效的行号",
"cannotInsertIntoNonExistent": "无法在不存在的文件的第 {{lineNumber}} 行插入内容。对于新文件,'line' 必须为 0追加到末尾或 1插入到开头。"
"cannotInsertIntoNonExistent": "无法在不存在的文件的第 {{lineNumber}} 行插入内容。对于新文件,'line' 必须为 0追加到末尾或 1插入到开头。",
"insertContentError": "插入内容错误"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "缺少参数",
"missingParameterMessage": "Roo 尝试使用 {{toolName}}{{relPath}} 但缺少必需参数 '{{paramName}}' 的值。正在重试..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "文件写入错误"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "搜索和替换错误"
}
}
}

View file

@ -4,7 +4,13 @@
"definitionsOnly": " (僅定義)",
"maxLines": " (最多 {{max}} 行)",
"imageTooLarge": "圖片檔案過大 ({{size}} MB)。允許的最大大小為 {{max}} MB。",
"imageWithSize": "圖片檔案 ({{size}} KB)"
"imageWithSize": "圖片檔案 ({{size}} KB)",
"errors": {
"parseError": "檔案解析錯誤",
"invalidLineRange": "無效的行範圍",
"imageReadError": "圖像讀取錯誤",
"fileReadError": "檔案讀取錯誤"
}
},
"toolRepetitionLimitReached": "Roo 似乎陷入循環,反覆嘗試同一操作 ({{toolName}})。這可能表明目前策略存在問題。請考慮重新描述工作、提供更具體的指示或引導其嘗試不同的方法。",
"codebaseSearch": {
@ -19,13 +25,15 @@
"errors": {
"fileNotFound": "找不到檔案",
"fileDoesNotExist": "檔案不存在於路徑:{{path}}",
"fileDoesNotExistDetails": "找不到指定的檔案。請驗證檔案路徑並重試。"
"fileDoesNotExistDetails": "找不到指定的檔案。請驗證檔案路徑並重試。",
"applyDiffError": "應用差異錯誤"
}
},
"insertContent": {
"errors": {
"invalidLineNumber": "無效的行號",
"cannotInsertIntoNonExistent": "無法在不存在的檔案的第 {{lineNumber}} 行插入內容。對於新檔案,'line' 必須為 0附加到結尾或 1插入到開頭。"
"cannotInsertIntoNonExistent": "無法在不存在的檔案的第 {{lineNumber}} 行插入內容。對於新檔案,'line' 必須為 0附加到結尾或 1插入到開頭。",
"insertContentError": "插入內容錯誤"
}
},
"common": {
@ -33,5 +41,15 @@
"missingParameter": "缺少參數",
"missingParameterMessage": "Roo 嘗試使用 {{toolName}}{{relPath}} 但缺少必要參數 '{{paramName}}' 的值。正在重試..."
}
},
"writeToFile": {
"errors": {
"writeFileError": "檔案寫入錯誤"
}
},
"searchAndReplace": {
"errors": {
"searchAndReplaceError": "搜尋和替換錯誤"
}
}
}