diff --git a/scripts/find-missing-translations.js b/scripts/find-missing-translations.js index 9277d935ba0..fe7577408e1 100755 --- a/scripts/find-missing-translations.js +++ b/scripts/find-missing-translations.js @@ -7,12 +7,16 @@ * Options: * --locale= Only check a specific locale (e.g. --locale=fr) * --file= Only check a specific file (e.g. --file=chat.json) - * --area= Only check a specific area (core, webview, or both) + * --area= Only check a specific area (core, webview, package-nls, or all) * --help Show this help message */ -const fs = require("fs") const path = require("path") +const { promises: fs } = require("fs") + +const readFile = fs.readFile +const readdir = fs.readdir +const stat = fs.stat // Process command line arguments const args = process.argv.slice(2).reduce( @@ -26,15 +30,15 @@ const args = process.argv.slice(2).reduce( } else if (arg.startsWith("--area=")) { acc.area = arg.split("=")[1] // Validate area value - if (!["core", "webview", "both"].includes(acc.area)) { - console.error(`Error: Invalid area '${acc.area}'. Must be 'core', 'webview', or 'both'.`) + if (!["core", "webview", "package-nls", "all"].includes(acc.area)) { + console.error(`Error: Invalid area '${acc.area}'. Must be 'core', 'webview', 'package-nls', or 'all'.`) process.exit(1) } } return acc }, - { area: "both" }, -) // Default to checking both areas + { area: "all" }, +) // Default to checking all areas // Show help if requested if (args.help) { @@ -50,10 +54,11 @@ Usage: Options: --locale= Only check a specific locale (e.g. --locale=fr) --file= Only check a specific file (e.g. --file=chat.json) - --area= Only check a specific area (core, webview, or both) + --area= Only check a specific area (core, webview, package-nls, or all) 'core' = Backend (src/i18n/locales) 'webview' = Frontend UI (webview-ui/src/i18n/locales) - 'both' = Check both areas (default) + 'package-nls' = VSCode package.nls.json files + 'all' = Check all areas (default) --help Show this help message Output: @@ -69,7 +74,7 @@ const LOCALES_DIRS = { } // Determine which areas to check based on args -const areasToCheck = args.area === "both" ? ["core", "webview"] : [args.area] +const areasToCheck = args.area === "all" ? ["core", "webview", "package-nls"] : [args.area] // Recursively find all keys in an object function findKeys(obj, parentKey = "") { @@ -105,18 +110,45 @@ function getValueAtPath(obj, path) { return current } +// Shared utility to safely parse JSON files with error handling +async function parseJsonFile(filePath) { + try { + const content = await readFile(filePath, "utf8") + return JSON.parse(content) + } catch (error) { + if (error.code === "ENOENT") { + return null // File doesn't exist + } + throw new Error(`Error parsing JSON file '${filePath}': ${error.message}`) + } +} + +// Validate that a JSON object has a flat structure (no nested objects) +function validateFlatStructure(obj, filePath) { + for (const [key, value] of Object.entries(obj)) { + if (typeof value === "object" && value !== null) { + console.error(`Error: ${filePath} should be a flat JSON structure. Found nested object at key '${key}'`) + process.exit(1) + } + } +} + // Function to check translations for a specific area -function checkAreaTranslations(area) { +async function checkAreaTranslations(area) { const LOCALES_DIR = LOCALES_DIRS[area] // Get all locale directories (or filter to the specified locale) - const allLocales = fs.readdirSync(LOCALES_DIR).filter((item) => { - const stats = fs.statSync(path.join(LOCALES_DIR, item)) - return stats.isDirectory() && item !== "en" // Exclude English as it's our source - }) + const dirContents = await readdir(LOCALES_DIR) + const allLocales = await Promise.all( + dirContents.map(async (item) => { + const stats = await stat(path.join(LOCALES_DIR, item)) + return stats.isDirectory() && item !== "en" ? item : null + }), + ) + const filteredLocales = allLocales.filter(Boolean) // Filter to the specified locale if provided - const locales = args.locale ? allLocales.filter((locale) => locale === args.locale) : allLocales + const locales = args.locale ? filteredLocales.filter((locale) => locale === args.locale) : filteredLocales if (args.locale && locales.length === 0) { console.error(`Error: Locale '${args.locale}' not found in ${LOCALES_DIR}`) @@ -129,7 +161,8 @@ function checkAreaTranslations(area) { // Get all English JSON files const englishDir = path.join(LOCALES_DIR, "en") - let englishFiles = fs.readdirSync(englishDir).filter((file) => file.endsWith(".json") && !file.startsWith(".")) + const englishDirContents = await readdir(englishDir) + let englishFiles = englishDirContents.filter((file) => file.endsWith(".json") && !file.startsWith(".")) // Filter to the specified file if provided if (args.file) { @@ -140,81 +173,201 @@ function checkAreaTranslations(area) { englishFiles = englishFiles.filter((file) => file === args.file) } - // Load file contents - let englishFileContents - - try { - englishFileContents = englishFiles.map((file) => ({ - name: file, - content: JSON.parse(fs.readFileSync(path.join(englishDir, file), "utf8")), - })) - } catch (e) { - console.error(`Error: File '${englishDir}' is not a valid JSON file`) - process.exit(1) - } + // Load file contents in parallel + const englishFileContents = await Promise.all( + englishFiles.map(async (file) => { + const filePath = path.join(englishDir, file) + const content = await parseJsonFile(filePath) + if (!content) { + console.error(`Error: Could not read file '${filePath}'`) + process.exit(1) + } + return { name: file, content } + }), + ) console.log( `Checking ${englishFileContents.length} translation file(s): ${englishFileContents.map((f) => f.name).join(", ")}`, ) + // Precompute English keys per file + const englishFileKeys = new Map(englishFileContents.map((f) => [f.name, findKeys(f.content)])) + // Results object to store missing translations const missingTranslations = {} - // For each locale, check for missing translations - for (const locale of locales) { - missingTranslations[locale] = {} + // Process all locales in parallel + await Promise.all( + locales.map(async (locale) => { + missingTranslations[locale] = {} + + // Process all files for this locale in parallel + await Promise.all( + englishFileContents.map(async ({ name, content: englishContent }) => { + const localeFilePath = path.join(LOCALES_DIR, locale, name) + + // Check if the file exists in the locale + const localeContent = await parseJsonFile(localeFilePath) + if (!localeContent) { + missingTranslations[locale][name] = { file: "File is missing entirely" } + return + } + + // Find all keys in the English file + const englishKeys = englishFileKeys.get(name) || [] + + // Check for missing keys in the locale file + const missingKeys = [] + + for (const key of englishKeys) { + const englishValue = getValueAtPath(englishContent, key) + const localeValue = getValueAtPath(localeContent, key) + + if (localeValue === undefined) { + missingKeys.push({ + key, + englishValue, + }) + } + } + + if (missingKeys.length > 0) { + missingTranslations[locale][name] = missingKeys + } + }), + ) + }), + ) + + return { missingTranslations, hasMissingTranslations: outputResults(missingTranslations, area) } +} + +// Function to output results for an area +function outputResults(missingTranslations, area) { + let hasMissingTranslations = false + + console.log(`\n${area === "core" ? "BACKEND" : "FRONTEND"} Missing Translations Report:\n`) + + for (const [locale, files] of Object.entries(missingTranslations)) { + if (Object.keys(files).length === 0) { + console.log(`✅ ${locale}: No missing translations`) + continue + } - for (const { name, content: englishContent } of englishFileContents) { - const localeFilePath = path.join(LOCALES_DIR, locale, name) + hasMissingTranslations = true + console.log(`📝 ${locale}:`) - // Check if the file exists in the locale - if (!fs.existsSync(localeFilePath)) { - missingTranslations[locale][name] = { file: "File is missing entirely" } + for (const [fileName, missingItems] of Object.entries(files)) { + if (missingItems.file) { + console.log(` - ${fileName}: ${missingItems.file}`) continue } - // Load the locale file - let localeContent + console.log(` - ${fileName}: ${missingItems.length} missing translations`) + + for (const { key, englishValue } of missingItems) { + console.log(` ${key}: "${englishValue}"`) + } + } + + console.log("") + } + + return hasMissingTranslations +} + +// Function to check package.nls.json translations +async function checkPackageNlsTranslations() { + const SRC_DIR = path.join(__dirname, "../src") + + // Read the base package.nls.json file + const baseFilePath = path.join(SRC_DIR, "package.nls.json") + const baseContent = await parseJsonFile(baseFilePath) + + if (!baseContent) { + console.warn(`Warning: Base package.nls.json not found at ${baseFilePath} - skipping package.nls checks`) + return { missingTranslations: {}, hasMissingTranslations: false } + } + + // Validate that the base file has a flat structure + validateFlatStructure(baseContent, baseFilePath) + + // Get all package.nls.*.json files + const srcDirContents = await readdir(SRC_DIR) + const nlsFiles = srcDirContents + .filter((file) => file.startsWith("package.nls.") && file.endsWith(".json")) + .filter((file) => file !== "package.nls.json") // Exclude the base file + + // Filter to the specified locale if provided + const filesToCheck = args.locale + ? nlsFiles.filter((file) => { + const locale = file.replace("package.nls.", "").replace(".json", "") + return locale === args.locale + }) + : nlsFiles + + if (args.locale && filesToCheck.length === 0) { + console.error(`Error: Locale '${args.locale}' not found in package.nls files`) + process.exit(1) + } - try { - localeContent = JSON.parse(fs.readFileSync(localeFilePath, "utf8")) - } catch (e) { - console.error(`Error: File '${localeFilePath}' is not a valid JSON file`) + console.log( + `\nPACKAGE.NLS - Checking ${filesToCheck.length} locale file(s): ${filesToCheck.map((f) => f.replace("package.nls.", "").replace(".json", "")).join(", ")}`, + ) + console.log(`Checking against base package.nls.json with ${Object.keys(baseContent).length} keys`) + + // Results object to store missing translations + const missingTranslations = {} + + // Get all keys from the base file (package.nls files are flat, not nested) + const baseKeys = Object.keys(baseContent) + + // Process all locale files in parallel + await Promise.all( + filesToCheck.map(async (file) => { + const locale = file.replace("package.nls.", "").replace(".json", "") + const localeFilePath = path.join(SRC_DIR, file) + + const localeContent = await parseJsonFile(localeFilePath) + if (!localeContent) { + console.error(`Error: Could not read file '${localeFilePath}'`) process.exit(1) } - // Find all keys in the English file - const englishKeys = findKeys(englishContent) + // Validate that the locale file has a flat structure + validateFlatStructure(localeContent, localeFilePath) - // Check for missing keys in the locale file + // Check for missing keys const missingKeys = [] - for (const key of englishKeys) { - const englishValue = getValueAtPath(englishContent, key) - const localeValue = getValueAtPath(localeContent, key) + for (const key of baseKeys) { + const baseValue = baseContent[key] + const localeValue = localeContent[key] if (localeValue === undefined) { missingKeys.push({ key, - englishValue, + englishValue: baseValue, }) } } if (missingKeys.length > 0) { - missingTranslations[locale][name] = missingKeys + missingTranslations[locale] = { + "package.nls.json": missingKeys, + } } - } - } + }), + ) - return { missingTranslations, hasMissingTranslations: outputResults(missingTranslations, area) } + return { missingTranslations, hasMissingTranslations: outputPackageNlsResults(missingTranslations) } } -// Function to output results for an area -function outputResults(missingTranslations, area) { +// Function to output package.nls results +function outputPackageNlsResults(missingTranslations) { let hasMissingTranslations = false - console.log(`\n${area === "core" ? "BACKEND" : "FRONTEND"} Missing Translations Report:\n`) + console.log(`\nPACKAGE.NLS Missing Translations Report:\n`) for (const [locale, files] of Object.entries(missingTranslations)) { if (Object.keys(files).length === 0) { @@ -226,11 +379,6 @@ function outputResults(missingTranslations, area) { console.log(`📝 ${locale}:`) for (const [fileName, missingItems] of Object.entries(files)) { - if (missingItems.file) { - console.log(` - ${fileName}: ${missingItems.file}`) - continue - } - console.log(` - ${fileName}: ${missingItems.length} missing translations`) for (const { key, englishValue } of missingItems) { @@ -245,7 +393,7 @@ function outputResults(missingTranslations, area) { } // Main function to find missing translations -function findMissingTranslations() { +async function findMissingTranslations() { try { console.log("Starting translation check...") @@ -253,8 +401,13 @@ function findMissingTranslations() { // Check each requested area for (const area of areasToCheck) { - const { hasMissingTranslations } = checkAreaTranslations(area) - anyAreaMissingTranslations = anyAreaMissingTranslations || hasMissingTranslations + if (area === "package-nls") { + const { hasMissingTranslations } = await checkPackageNlsTranslations() + anyAreaMissingTranslations = anyAreaMissingTranslations || hasMissingTranslations + } else { + const { hasMissingTranslations } = await checkAreaTranslations(area) + anyAreaMissingTranslations = anyAreaMissingTranslations || hasMissingTranslations + } } // Summary diff --git a/src/package.nls.ca.json b/src/package.nls.ca.json index 024de068700..902f798cbed 100644 --- a/src/package.nls.ca.json +++ b/src/package.nls.ca.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Prefixos d'ordres que seran automàticament denegats sense demanar aprovació. En cas de conflictes amb ordres permeses, la coincidència de prefix més llarga té prioritat. Afegeix * per denegar totes les ordres.", "commands.commandExecutionTimeout.description": "Temps màxim en segons per esperar que l'execució de l'ordre es completi abans d'esgotar el temps (0 = sense temps límit, 1-600s, per defecte: 0s)", "commands.commandTimeoutAllowlist.description": "Prefixos d'ordres que estan exclosos del temps límit d'execució d'ordres. Les ordres que coincideixin amb aquests prefixos s'executaran sense restriccions de temps límit.", + "commands.preventCompletionWithOpenTodos.description": "Evitar la finalització de tasques quan hi ha tasques pendents incompletes a la llista de tasques", "settings.vsCodeLmModelSelector.description": "Configuració per a l'API del model de llenguatge VSCode", "settings.vsCodeLmModelSelector.vendor.description": "El proveïdor del model de llenguatge (p. ex. copilot)", "settings.vsCodeLmModelSelector.family.description": "La família del model de llenguatge (p. ex. gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Ruta a un fitxer de configuració de RooCode per importar automàticament en iniciar l'extensió. Admet rutes absolutes i rutes relatives al directori d'inici (per exemple, '~/Documents/roo-code-settings.json'). Deixeu-ho en blanc per desactivar la importació automàtica.", "settings.useAgentRules.description": "Activa la càrrega de fitxers AGENTS.md per a regles específiques de l'agent (vegeu https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Temps màxim en segons per esperar les respostes de l'API (0 = sense temps d'espera, 1-3600s, per defecte: 600s). Es recomanen valors més alts per a proveïdors locals com LM Studio i Ollama que poden necessitar més temps de processament.", + "settings.newTaskRequireTodos.description": "Requerir el paràmetre de tasques pendents quan es creïn noves tasques amb l'eina new_task", "settings.codeIndex.embeddingBatchSize.description": "La mida del lot per a operacions d'incrustació durant la indexació de codi. Ajusta això segons els límits del teu proveïdor d'API. Per defecte és 60." } diff --git a/src/package.nls.de.json b/src/package.nls.de.json index fe693c5ce60..d8043da94e3 100644 --- a/src/package.nls.de.json +++ b/src/package.nls.de.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Befehlspräfixe, die automatisch abgelehnt werden, ohne nach Genehmigung zu fragen. Bei Konflikten mit erlaubten Befehlen hat die längste Präfix-Übereinstimmung Vorrang. Füge * hinzu, um alle Befehle abzulehnen.", "commands.commandExecutionTimeout.description": "Maximale Zeit in Sekunden, die auf den Abschluss der Befehlsausführung gewartet wird, bevor ein Timeout auftritt (0 = kein Timeout, 1-600s, Standard: 0s)", "commands.commandTimeoutAllowlist.description": "Befehlspräfixe, die vom Timeout der Befehlsausführung ausgeschlossen sind. Befehle, die diesen Präfixen entsprechen, werden ohne Timeout-Beschränkungen ausgeführt.", + "commands.preventCompletionWithOpenTodos.description": "Aufgabenabschluss verhindern, wenn unvollständige Todos in der Todo-Liste vorhanden sind", "settings.vsCodeLmModelSelector.description": "Einstellungen für die VSCode-Sprachmodell-API", "settings.vsCodeLmModelSelector.vendor.description": "Der Anbieter des Sprachmodells (z.B. copilot)", "settings.vsCodeLmModelSelector.family.description": "Die Familie des Sprachmodells (z.B. gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Pfad zu einer RooCode-Konfigurationsdatei, die beim Start der Erweiterung automatisch importiert wird. Unterstützt absolute Pfade und Pfade relativ zum Home-Verzeichnis (z.B. '~/Documents/roo-code-settings.json'). Leer lassen, um den automatischen Import zu deaktivieren.", "settings.useAgentRules.description": "Aktiviert das Laden von AGENTS.md-Dateien für agentenspezifische Regeln (siehe https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Maximale Wartezeit in Sekunden auf API-Antworten (0 = kein Timeout, 1-3600s, Standard: 600s). Höhere Werte werden für lokale Anbieter wie LM Studio und Ollama empfohlen, die möglicherweise mehr Verarbeitungszeit benötigen.", + "settings.newTaskRequireTodos.description": "Todos-Parameter beim Erstellen neuer Aufgaben mit dem new_task-Tool erfordern", "settings.codeIndex.embeddingBatchSize.description": "Die Batch-Größe für Embedding-Operationen während der Code-Indexierung. Passe dies an die Limits deines API-Anbieters an. Standard ist 60." } diff --git a/src/package.nls.es.json b/src/package.nls.es.json index ae046b62cab..000b353550c 100644 --- a/src/package.nls.es.json +++ b/src/package.nls.es.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Prefijos de comandos que serán automáticamente denegados sin solicitar aprobación. En caso de conflictos con comandos permitidos, la coincidencia de prefijo más larga tiene prioridad. Añade * para denegar todos los comandos.", "commands.commandExecutionTimeout.description": "Tiempo máximo en segundos para esperar que se complete la ejecución del comando antes de que expire (0 = sin tiempo límite, 1-600s, predeterminado: 0s)", "commands.commandTimeoutAllowlist.description": "Prefijos de comandos que están excluidos del tiempo límite de ejecución de comandos. Los comandos que coincidan con estos prefijos se ejecutarán sin restricciones de tiempo límite.", + "commands.preventCompletionWithOpenTodos.description": "Prevenir la finalización de tareas cuando hay todos incompletos en la lista de todos", "settings.vsCodeLmModelSelector.description": "Configuración para la API del modelo de lenguaje VSCode", "settings.vsCodeLmModelSelector.vendor.description": "El proveedor del modelo de lenguaje (ej. copilot)", "settings.vsCodeLmModelSelector.family.description": "La familia del modelo de lenguaje (ej. gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Ruta a un archivo de configuración de RooCode para importar automáticamente al iniciar la extensión. Admite rutas absolutas y rutas relativas al directorio de inicio (por ejemplo, '~/Documents/roo-code-settings.json'). Dejar vacío para desactivar la importación automática.", "settings.useAgentRules.description": "Habilita la carga de archivos AGENTS.md para reglas específicas del agente (ver https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Tiempo máximo en segundos de espera para las respuestas de la API (0 = sin tiempo de espera, 1-3600s, por defecto: 600s). Se recomiendan valores más altos para proveedores locales como LM Studio y Ollama que puedan necesitar más tiempo de procesamiento.", + "settings.newTaskRequireTodos.description": "Requerir el parámetro todos al crear nuevas tareas con la herramienta new_task", "settings.codeIndex.embeddingBatchSize.description": "El tamaño del lote para operaciones de embedding durante la indexación de código. Ajusta esto según los límites de tu proveedor de API. Por defecto es 60." } diff --git a/src/package.nls.fr.json b/src/package.nls.fr.json index 45191a0a351..0ba6ddeb8fc 100644 --- a/src/package.nls.fr.json +++ b/src/package.nls.fr.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Préfixes de commandes qui seront automatiquement refusés sans demander d'approbation. En cas de conflit avec les commandes autorisées, la correspondance de préfixe la plus longue a la priorité. Ajouter * pour refuser toutes les commandes.", "commands.commandExecutionTimeout.description": "Temps maximum en secondes pour attendre que l'exécution de la commande se termine avant expiration (0 = pas de délai, 1-600s, défaut : 0s)", "commands.commandTimeoutAllowlist.description": "Préfixes de commandes qui sont exclus du délai d'exécution des commandes. Les commandes correspondant à ces préfixes s'exécuteront sans restrictions de délai.", + "commands.preventCompletionWithOpenTodos.description": "Empêcher l'achèvement des tâches lorsqu'il y a des todos incomplets dans la liste de todos", "settings.vsCodeLmModelSelector.description": "Paramètres pour l'API du modèle de langage VSCode", "settings.vsCodeLmModelSelector.vendor.description": "Le fournisseur du modèle de langage (ex: copilot)", "settings.vsCodeLmModelSelector.family.description": "La famille du modèle de langage (ex: gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Chemin d'accès à un fichier de configuration RooCode à importer automatiquement au démarrage de l'extension. Prend en charge les chemins absolus et les chemins relatifs au répertoire de base (par exemple, '~/Documents/roo-code-settings.json'). Laisser vide pour désactiver l'importation automatique.", "settings.useAgentRules.description": "Activer le chargement des fichiers AGENTS.md pour les règles spécifiques à l'agent (voir https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Temps maximum en secondes d'attente pour les réponses de l'API (0 = pas de timeout, 1-3600s, par défaut : 600s). Des valeurs plus élevées sont recommandées pour les fournisseurs locaux comme LM Studio et Ollama qui peuvent nécessiter plus de temps de traitement.", + "settings.newTaskRequireTodos.description": "Exiger le paramètre todos lors de la création de nouvelles tâches avec l'outil new_task", "settings.codeIndex.embeddingBatchSize.description": "La taille du lot pour les opérations d'embedding lors de l'indexation du code. Ajustez ceci selon les limites de votre fournisseur d'API. Par défaut, c'est 60." } diff --git a/src/package.nls.hi.json b/src/package.nls.hi.json index 59eb711dbbf..d4b4bb1cd01 100644 --- a/src/package.nls.hi.json +++ b/src/package.nls.hi.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "कमांड प्रीफिक्स जो स्वचालित रूप से अस्वीकार कर दिए जाएंगे बिना अनुमोदन मांगे। अनुमतित कमांड के साथ संघर्ष की स्थिति में, सबसे लंबा प्रीफिक्स मैच प्राथमिकता लेता है। सभी कमांड को अस्वीकार करने के लिए * जोड़ें।", "commands.commandExecutionTimeout.description": "कमांड निष्पादन पूरा होने का इंतजार करने के लिए अधिकतम समय सेकंड में, समय समाप्त होने से पहले (0 = कोई समय सीमा नहीं, 1-600s, डिफ़ॉल्ट: 0s)", "commands.commandTimeoutAllowlist.description": "कमांड प्रीफिक्स जो कमांड निष्पादन टाइमआउट से बाहर रखे गए हैं। इन प्रीफिक्स से मेल खाने वाले कमांड बिना टाइमआउट प्रतिबंधों के चलेंगे।", + "commands.preventCompletionWithOpenTodos.description": "जब टूडू सूची में अधूरे टूडू हों तो कार्य पूर्णता को रोकें", "settings.vsCodeLmModelSelector.description": "VSCode भाषा मॉडल API के लिए सेटिंग्स", "settings.vsCodeLmModelSelector.vendor.description": "भाषा मॉडल का विक्रेता (उदा. copilot)", "settings.vsCodeLmModelSelector.family.description": "भाषा मॉडल का परिवार (उदा. gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "RooCode कॉन्फ़िगरेशन फ़ाइल का पथ जिसे एक्सटेंशन स्टार्टअप पर स्वचालित रूप से आयात किया जाएगा। होम डायरेक्टरी के सापेक्ष पूर्ण पथ और पथों का समर्थन करता है (उदाहरण के लिए '~/Documents/roo-code-settings.json')। ऑटो-इंपोर्ट को अक्षम करने के लिए खाली छोड़ दें।", "settings.useAgentRules.description": "एजेंट-विशिष्ट नियमों के लिए AGENTS.md फ़ाइलों को लोड करना सक्षम करें (देखें https://agent-rules.org/)", "settings.apiRequestTimeout.description": "एपीआई प्रतिक्रियाओं की प्रतीक्षा करने के लिए सेकंड में अधिकतम समय (0 = कोई टाइमआउट नहीं, 1-3600s, डिफ़ॉल्ट: 600s)। एलएम स्टूडियो और ओलामा जैसे स्थानीय प्रदाताओं के लिए उच्च मानों की सिफारिश की जाती है जिन्हें अधिक प्रसंस्करण समय की आवश्यकता हो सकती है।", + "settings.newTaskRequireTodos.description": "new_task टूल के साथ नए कार्य बनाते समय टूडू पैरामीटर की आवश्यकता होती है", "settings.codeIndex.embeddingBatchSize.description": "कोड इंडेक्सिंग के दौरान एम्बेडिंग ऑपरेशन के लिए बैच साइज़। इसे अपने API प्रदाता की सीमाओं के अनुसार समायोजित करें। डिफ़ॉल्ट 60 है।" } diff --git a/src/package.nls.id.json b/src/package.nls.id.json index da639a85ecb..eb361a1ef70 100644 --- a/src/package.nls.id.json +++ b/src/package.nls.id.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Awalan perintah yang akan otomatis ditolak tanpa meminta persetujuan. Jika terjadi konflik dengan perintah yang diizinkan, pencocokan awalan terpanjang akan diprioritaskan. Tambahkan * untuk menolak semua perintah.", "commands.commandExecutionTimeout.description": "Waktu maksimum dalam detik untuk menunggu eksekusi perintah selesai sebelum timeout (0 = tanpa timeout, 1-600s, default: 0s)", "commands.commandTimeoutAllowlist.description": "Awalan perintah yang dikecualikan dari timeout eksekusi perintah. Perintah yang cocok dengan awalan ini akan berjalan tanpa batasan timeout.", + "commands.preventCompletionWithOpenTodos.description": "Mencegah penyelesaian tugas ketika ada todos yang belum selesai dalam daftar todos", "settings.vsCodeLmModelSelector.description": "Pengaturan untuk API Model Bahasa VSCode", "settings.vsCodeLmModelSelector.vendor.description": "Vendor dari model bahasa (misalnya copilot)", "settings.vsCodeLmModelSelector.family.description": "Keluarga dari model bahasa (misalnya gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Path ke file konfigurasi RooCode untuk diimpor secara otomatis saat ekstensi dimulai. Mendukung path absolut dan path relatif terhadap direktori home (misalnya '~/Documents/roo-code-settings.json'). Biarkan kosong untuk menonaktifkan impor otomatis.", "settings.useAgentRules.description": "Aktifkan pemuatan file AGENTS.md untuk aturan khusus agen (lihat https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Waktu maksimum dalam detik untuk menunggu respons API (0 = tidak ada batas waktu, 1-3600s, default: 600s). Nilai yang lebih tinggi disarankan untuk penyedia lokal seperti LM Studio dan Ollama yang mungkin memerlukan lebih banyak waktu pemrosesan.", + "settings.newTaskRequireTodos.description": "Memerlukan parameter todos saat membuat tugas baru dengan alat new_task", "settings.codeIndex.embeddingBatchSize.description": "Ukuran batch untuk operasi embedding selama pengindeksan kode. Sesuaikan ini berdasarkan batas penyedia API kamu. Default adalah 60." } diff --git a/src/package.nls.it.json b/src/package.nls.it.json index 21f921b5637..78989df6fe7 100644 --- a/src/package.nls.it.json +++ b/src/package.nls.it.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Prefissi di comandi che verranno automaticamente rifiutati senza richiedere approvazione. In caso di conflitti con comandi consentiti, la corrispondenza del prefisso più lungo ha la precedenza. Aggiungi * per rifiutare tutti i comandi.", "commands.commandExecutionTimeout.description": "Tempo massimo in secondi per attendere il completamento dell'esecuzione del comando prima del timeout (0 = nessun timeout, 1-600s, predefinito: 0s)", "commands.commandTimeoutAllowlist.description": "Prefissi di comandi che sono esclusi dal timeout di esecuzione dei comandi. I comandi che corrispondono a questi prefissi verranno eseguiti senza restrizioni di timeout.", + "commands.preventCompletionWithOpenTodos.description": "Impedire il completamento delle attività quando ci sono todos incompleti nella lista dei todos", "settings.vsCodeLmModelSelector.description": "Impostazioni per l'API del modello linguistico VSCode", "settings.vsCodeLmModelSelector.vendor.description": "Il fornitore del modello linguistico (es. copilot)", "settings.vsCodeLmModelSelector.family.description": "La famiglia del modello linguistico (es. gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Percorso di un file di configurazione di RooCode da importare automaticamente all'avvio dell'estensione. Supporta percorsi assoluti e percorsi relativi alla directory home (ad es. '~/Documents/roo-code-settings.json'). Lasciare vuoto per disabilitare l'importazione automatica.", "settings.useAgentRules.description": "Abilita il caricamento dei file AGENTS.md per regole specifiche dell'agente (vedi https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Tempo massimo in secondi di attesa per le risposte API (0 = nessun timeout, 1-3600s, predefinito: 600s). Valori più alti sono consigliati per provider locali come LM Studio e Ollama che potrebbero richiedere più tempo di elaborazione.", + "settings.newTaskRequireTodos.description": "Richiedere il parametro todos quando si creano nuove attività con lo strumento new_task", "settings.codeIndex.embeddingBatchSize.description": "La dimensione del batch per le operazioni di embedding durante l'indicizzazione del codice. Regola questo in base ai limiti del tuo provider API. Il valore predefinito è 60." } diff --git a/src/package.nls.ja.json b/src/package.nls.ja.json index ce22881ce28..3eb059cbd9a 100644 --- a/src/package.nls.ja.json +++ b/src/package.nls.ja.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "承認を求めずに自動的に拒否されるコマンドプレフィックス。許可されたコマンドとの競合がある場合、最長プレフィックスマッチが優先されます。すべてのコマンドを拒否するには * を追加してください。", "commands.commandExecutionTimeout.description": "コマンド実行の完了を待つ最大時間(秒)、タイムアウトまで(0 = タイムアウトなし、1-600秒、デフォルト: 0秒)", "commands.commandTimeoutAllowlist.description": "コマンド実行タイムアウトから除外されるコマンドプレフィックス。これらのプレフィックスに一致するコマンドは、タイムアウト制限なしで実行されます。", + "commands.preventCompletionWithOpenTodos.description": "TODOリストに未完了のTODOがある場合にタスクの完了を防ぐ", "settings.vsCodeLmModelSelector.description": "VSCode 言語モデル API の設定", "settings.vsCodeLmModelSelector.vendor.description": "言語モデルのベンダー(例:copilot)", "settings.vsCodeLmModelSelector.family.description": "言語モデルのファミリー(例:gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "拡張機能の起動時に自動的にインポートするRooCode設定ファイルへのパス。絶対パスとホームディレクトリからの相対パスをサポートします(例:'~/Documents/roo-code-settings.json')。自動インポートを無効にするには、空のままにします。", "settings.useAgentRules.description": "エージェント固有のルールのためにAGENTS.mdファイルの読み込みを有効にします(参照:https://agent-rules.org/)", "settings.apiRequestTimeout.description": "API応答を待機する最大時間(秒)(0 = タイムアウトなし、1-3600秒、デフォルト: 600秒)。LM StudioやOllamaのような、より多くの処理時間を必要とする可能性のあるローカルプロバイダーには、より高い値が推奨されます。", + "settings.newTaskRequireTodos.description": "new_taskツールで新しいタスクを作成する際にtodosパラメータを必須にする", "settings.codeIndex.embeddingBatchSize.description": "コードインデックス作成中のエンベディング操作のバッチサイズ。APIプロバイダーの制限に基づいてこれを調整してください。デフォルトは60です。" } diff --git a/src/package.nls.ko.json b/src/package.nls.ko.json index f87c93801e8..a566b2a038c 100644 --- a/src/package.nls.ko.json +++ b/src/package.nls.ko.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "승인을 요청하지 않고 자동으로 거부될 명령어 접두사. 허용된 명령어와 충돌하는 경우 가장 긴 접두사 일치가 우선됩니다. 모든 명령어를 거부하려면 *를 추가하세요.", "commands.commandExecutionTimeout.description": "명령어 실행이 완료되기를 기다리는 최대 시간(초), 타임아웃 전까지 (0 = 타임아웃 없음, 1-600초, 기본값: 0초)", "commands.commandTimeoutAllowlist.description": "명령어 실행 타임아웃에서 제외되는 명령어 접두사. 이러한 접두사와 일치하는 명령어는 타임아웃 제한 없이 실행됩니다.", + "commands.preventCompletionWithOpenTodos.description": "할 일 목록에 미완료 할 일이 있을 때 작업 완료를 방지", "settings.vsCodeLmModelSelector.description": "VSCode 언어 모델 API 설정", "settings.vsCodeLmModelSelector.vendor.description": "언어 모델 공급자 (예: copilot)", "settings.vsCodeLmModelSelector.family.description": "언어 모델 계열 (예: gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "확장 프로그램 시작 시 자동으로 가져올 RooCode 구성 파일의 경로입니다. 절대 경로 및 홈 디렉토리에 대한 상대 경로를 지원합니다(예: '~/Documents/roo-code-settings.json'). 자동 가져오기를 비활성화하려면 비워 둡니다.", "settings.useAgentRules.description": "에이전트별 규칙에 대한 AGENTS.md 파일 로드를 활성화합니다 (참조: https://agent-rules.org/)", "settings.apiRequestTimeout.description": "API 응답을 기다리는 최대 시간(초) (0 = 시간 초과 없음, 1-3600초, 기본값: 600초). 더 많은 처리 시간이 필요할 수 있는 LM Studio 및 Ollama와 같은 로컬 공급자에게는 더 높은 값을 사용하는 것이 좋습니다.", + "settings.newTaskRequireTodos.description": "new_task 도구로 새 작업을 생성할 때 todos 매개변수 필요", "settings.codeIndex.embeddingBatchSize.description": "코드 인덱싱 중 임베딩 작업의 배치 크기입니다. API 공급자의 제한에 따라 이를 조정하세요. 기본값은 60입니다." } diff --git a/src/package.nls.nl.json b/src/package.nls.nl.json index 3f5f5fd8893..006725326b7 100644 --- a/src/package.nls.nl.json +++ b/src/package.nls.nl.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Commando-prefixen die automatisch worden geweigerd zonder om goedkeuring te vragen. Bij conflicten met toegestane commando's heeft de langste prefix-match voorrang. Voeg * toe om alle commando's te weigeren.", "commands.commandExecutionTimeout.description": "Maximale tijd in seconden om te wachten tot commando-uitvoering voltooid is voordat er een timeout optreedt (0 = geen timeout, 1-600s, standaard: 0s)", "commands.commandTimeoutAllowlist.description": "Commando-prefixen die zijn uitgesloten van de commando-uitvoering timeout. Commando's die overeenkomen met deze prefixen worden uitgevoerd zonder timeout-beperkingen.", + "commands.preventCompletionWithOpenTodos.description": "Taakvoltooiing voorkomen wanneer er onvolledige todos in de todo-lijst staan", "settings.vsCodeLmModelSelector.description": "Instellingen voor VSCode Language Model API", "settings.vsCodeLmModelSelector.vendor.description": "De leverancier van het taalmodel (bijv. copilot)", "settings.vsCodeLmModelSelector.family.description": "De familie van het taalmodel (bijv. gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Pad naar een RooCode-configuratiebestand om automatisch te importeren bij het opstarten van de extensie. Ondersteunt absolute paden en paden ten opzichte van de thuismap (bijv. '~/Documents/roo-code-settings.json'). Laat leeg om automatisch importeren uit te schakelen.", "settings.useAgentRules.description": "Laden van AGENTS.md-bestanden voor agentspecifieke regels inschakelen (zie https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Maximale tijd in seconden om te wachten op API-reacties (0 = geen time-out, 1-3600s, standaard: 600s). Hogere waarden worden aanbevolen voor lokale providers zoals LM Studio en Ollama die mogelijk meer verwerkingstijd nodig hebben.", + "settings.newTaskRequireTodos.description": "Todos-parameter vereisen bij het maken van nieuwe taken met de new_task tool", "settings.codeIndex.embeddingBatchSize.description": "De batchgrootte voor embedding-operaties tijdens code-indexering. Pas dit aan op basis van de limieten van je API-provider. Standaard is 60." } diff --git a/src/package.nls.pl.json b/src/package.nls.pl.json index 26a74ba5b66..bcf80f72306 100644 --- a/src/package.nls.pl.json +++ b/src/package.nls.pl.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Prefiksy poleceń, które będą automatycznie odrzucane bez pytania o zatwierdzenie. W przypadku konfliktów z dozwolonymi poleceniami, najdłuższe dopasowanie prefiksu ma pierwszeństwo. Dodaj * aby odrzucić wszystkie polecenia.", "commands.commandExecutionTimeout.description": "Maksymalny czas w sekundach oczekiwania na zakończenie wykonania polecenia przed przekroczeniem limitu czasu (0 = brak limitu czasu, 1-600s, domyślnie: 0s)", "commands.commandTimeoutAllowlist.description": "Prefiksy poleceń, które są wykluczone z limitu czasu wykonania poleceń. Polecenia pasujące do tych prefiksów będą wykonywane bez ograniczeń czasowych.", + "commands.preventCompletionWithOpenTodos.description": "Zapobiegaj ukończeniu zadania gdy na liście zadań są niekompletne todos", "settings.vsCodeLmModelSelector.description": "Ustawienia dla API modelu językowego VSCode", "settings.vsCodeLmModelSelector.vendor.description": "Dostawca modelu językowego (np. copilot)", "settings.vsCodeLmModelSelector.family.description": "Rodzina modelu językowego (np. gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Ścieżka do pliku konfiguracyjnego RooCode, który ma być automatycznie importowany podczas uruchamiania rozszerzenia. Obsługuje ścieżki bezwzględne i ścieżki względne do katalogu domowego (np. '~/Documents/roo-code-settings.json'). Pozostaw puste, aby wyłączyć automatyczne importowanie.", "settings.useAgentRules.description": "Włącz wczytywanie plików AGENTS.md dla reguł specyficznych dla agenta (zobacz https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Maksymalny czas w sekundach oczekiwania na odpowiedzi API (0 = brak limitu czasu, 1-3600s, domyślnie: 600s). Wyższe wartości są zalecane dla lokalnych dostawców, takich jak LM Studio i Ollama, którzy mogą potrzebować więcej czasu na przetwarzanie.", + "settings.newTaskRequireTodos.description": "Wymagaj parametru todos podczas tworzenia nowych zadań za pomocą narzędzia new_task", "settings.codeIndex.embeddingBatchSize.description": "Rozmiar partii dla operacji osadzania podczas indeksowania kodu. Dostosuj to w oparciu o limity twojego dostawcy API. Domyślnie to 60." } diff --git a/src/package.nls.pt-BR.json b/src/package.nls.pt-BR.json index 7f904d98df0..1843bc476b3 100644 --- a/src/package.nls.pt-BR.json +++ b/src/package.nls.pt-BR.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Prefixos de comandos que serão automaticamente negados sem solicitar aprovação. Em caso de conflitos com comandos permitidos, a correspondência de prefixo mais longa tem precedência. Adicione * para negar todos os comandos.", "commands.commandExecutionTimeout.description": "Tempo máximo em segundos para aguardar a conclusão da execução do comando antes do timeout (0 = sem timeout, 1-600s, padrão: 0s)", "commands.commandTimeoutAllowlist.description": "Prefixos de comandos que são excluídos do timeout de execução de comandos. Comandos que correspondem a esses prefixos serão executados sem restrições de timeout.", + "commands.preventCompletionWithOpenTodos.description": "Impedir a conclusão de tarefas quando há todos incompletos na lista de todos", "settings.vsCodeLmModelSelector.description": "Configurações para a API do modelo de linguagem do VSCode", "settings.vsCodeLmModelSelector.vendor.description": "O fornecedor do modelo de linguagem (ex: copilot)", "settings.vsCodeLmModelSelector.family.description": "A família do modelo de linguagem (ex: gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Caminho para um arquivo de configuração do RooCode para importar automaticamente na inicialização da extensão. Suporta caminhos absolutos e caminhos relativos ao diretório inicial (por exemplo, '~/Documents/roo-code-settings.json'). Deixe em branco para desativar a importação automática.", "settings.useAgentRules.description": "Habilita o carregamento de arquivos AGENTS.md para regras específicas do agente (consulte https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Tempo máximo em segundos de espera pelas respostas da API (0 = sem tempo limite, 1-3600s, padrão: 600s). Valores mais altos são recomendados para provedores locais como LM Studio e Ollama que podem precisar de mais tempo de processamento.", + "settings.newTaskRequireTodos.description": "Exigir parâmetro todos ao criar novas tarefas com a ferramenta new_task", "settings.codeIndex.embeddingBatchSize.description": "O tamanho do lote para operações de embedding durante a indexação de código. Ajuste isso com base nos limites do seu provedor de API. O padrão é 60." } diff --git a/src/package.nls.ru.json b/src/package.nls.ru.json index 46ce4b95c98..8a50af73894 100644 --- a/src/package.nls.ru.json +++ b/src/package.nls.ru.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Префиксы команд, которые будут автоматически отклонены без запроса подтверждения. В случае конфликтов с разрешенными командами приоритет имеет самое длинное совпадение префикса. Добавьте * чтобы отклонить все команды.", "commands.commandExecutionTimeout.description": "Максимальное время в секундах для ожидания завершения выполнения команды до истечения времени ожидания (0 = без тайм-аута, 1-600с, по умолчанию: 0с)", "commands.commandTimeoutAllowlist.description": "Префиксы команд, которые исключены из тайм-аута выполнения команд. Команды, соответствующие этим префиксам, будут выполняться без ограничений по времени.", + "commands.preventCompletionWithOpenTodos.description": "Предотвращать завершение задачи при наличии незавершенных задач в списке задач", "settings.vsCodeLmModelSelector.description": "Настройки для VSCode Language Model API", "settings.vsCodeLmModelSelector.vendor.description": "Поставщик языковой модели (например, copilot)", "settings.vsCodeLmModelSelector.family.description": "Семейство языковой модели (например, gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Путь к файлу конфигурации RooCode для автоматического импорта при запуске расширения. Поддерживает абсолютные пути и пути относительно домашнего каталога (например, '~/Documents/roo-code-settings.json'). Оставьте пустым, чтобы отключить автоматический импорт.", "settings.useAgentRules.description": "Включить загрузку файлов AGENTS.md для специфичных для агента правил (см. https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Максимальное время в секундах для ожидания ответов API (0 = нет тайм-аута, 1-3600 с, по умолчанию: 600 с). Рекомендуются более высокие значения для локальных провайдеров, таких как LM Studio и Ollama, которым может потребоваться больше времени на обработку.", + "settings.newTaskRequireTodos.description": "Требовать параметр todos при создании новых задач с помощью инструмента new_task", "settings.codeIndex.embeddingBatchSize.description": "Размер пакета для операций встраивания во время индексации кода. Настройте это в соответствии с ограничениями вашего API-провайдера. По умолчанию 60." } diff --git a/src/package.nls.tr.json b/src/package.nls.tr.json index 9606822a1ce..4eec2c70a02 100644 --- a/src/package.nls.tr.json +++ b/src/package.nls.tr.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Onay istenmeden otomatik olarak reddedilecek komut önekleri. İzin verilen komutlarla çakışma durumunda en uzun önek eşleşmesi öncelik alır. Tüm komutları reddetmek için * ekleyin.", "commands.commandExecutionTimeout.description": "Komut yürütmesinin tamamlanmasını beklemek için maksimum süre (saniye), zaman aşımından önce (0 = zaman aşımı yok, 1-600s, varsayılan: 0s)", "commands.commandTimeoutAllowlist.description": "Komut yürütme zaman aşımından hariç tutulan komut önekleri. Bu öneklerle eşleşen komutlar zaman aşımı kısıtlamaları olmadan çalışacaktır.", + "commands.preventCompletionWithOpenTodos.description": "Todo listesinde tamamlanmamış todolar olduğunda görev tamamlanmasını engelle", "settings.vsCodeLmModelSelector.description": "VSCode dil modeli API'si için ayarlar", "settings.vsCodeLmModelSelector.vendor.description": "Dil modelinin sağlayıcısı (örn: copilot)", "settings.vsCodeLmModelSelector.family.description": "Dil modelinin ailesi (örn: gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Uzantı başlangıcında otomatik olarak içe aktarılacak bir RooCode yapılandırma dosyasının yolu. Mutlak yolları ve ana dizine göreli yolları destekler (ör. '~/Documents/roo-code-settings.json'). Otomatik içe aktarmayı devre dışı bırakmak için boş bırakın.", "settings.useAgentRules.description": "Aracıya özgü kurallar için AGENTS.md dosyalarının yüklenmesini etkinleştirin (bkz. https://agent-rules.org/)", "settings.apiRequestTimeout.description": "API yanıtları için beklenecek maksimum süre (saniye cinsinden) (0 = zaman aşımı yok, 1-3600s, varsayılan: 600s). LM Studio ve Ollama gibi daha fazla işlem süresi gerektirebilecek yerel sağlayıcılar için daha yüksek değerler önerilir.", + "settings.newTaskRequireTodos.description": "new_task aracıyla yeni görevler oluştururken todos parametresini gerekli kıl", "settings.codeIndex.embeddingBatchSize.description": "Kod indeksleme sırasında gömme işlemleri için toplu iş boyutu. Bunu API sağlayıcınızın sınırlarına göre ayarlayın. Varsayılan 60'tır." } diff --git a/src/package.nls.vi.json b/src/package.nls.vi.json index b25e9d74f80..a0c9614dd2f 100644 --- a/src/package.nls.vi.json +++ b/src/package.nls.vi.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "Các tiền tố lệnh sẽ được tự động từ chối mà không yêu cầu phê duyệt. Trong trường hợp xung đột với các lệnh được phép, việc khớp tiền tố dài nhất sẽ được ưu tiên. Thêm * để từ chối tất cả các lệnh.", "commands.commandExecutionTimeout.description": "Thời gian tối đa tính bằng giây để chờ việc thực thi lệnh hoàn thành trước khi hết thời gian chờ (0 = không có thời gian chờ, 1-600s, mặc định: 0s)", "commands.commandTimeoutAllowlist.description": "Các tiền tố lệnh được loại trừ khỏi thời gian chờ thực thi lệnh. Các lệnh khớp với những tiền tố này sẽ chạy mà không có giới hạn thời gian chờ.", + "commands.preventCompletionWithOpenTodos.description": "Ngăn hoàn thành nhiệm vụ khi có các todos chưa hoàn thành trong danh sách todos", "settings.vsCodeLmModelSelector.description": "Cài đặt cho API mô hình ngôn ngữ VSCode", "settings.vsCodeLmModelSelector.vendor.description": "Nhà cung cấp mô hình ngôn ngữ (ví dụ: copilot)", "settings.vsCodeLmModelSelector.family.description": "Họ mô hình ngôn ngữ (ví dụ: gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "Đường dẫn đến tệp cấu hình RooCode để tự động nhập khi khởi động tiện ích mở rộng. Hỗ trợ đường dẫn tuyệt đối và đường dẫn tương đối đến thư mục chính (ví dụ: '~/Documents/roo-code-settings.json'). Để trống để tắt tính năng tự động nhập.", "settings.useAgentRules.description": "Bật tải tệp AGENTS.md cho các quy tắc dành riêng cho tác nhân (xem https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Thời gian tối đa tính bằng giây để đợi phản hồi API (0 = không có thời gian chờ, 1-3600 giây, mặc định: 600 giây). Nên sử dụng các giá trị cao hơn cho các nhà cung cấp cục bộ như LM Studio và Ollama có thể cần thêm thời gian xử lý.", + "settings.newTaskRequireTodos.description": "Yêu cầu tham số todos khi tạo nhiệm vụ mới với công cụ new_task", "settings.codeIndex.embeddingBatchSize.description": "Kích thước lô cho các hoạt động nhúng trong quá trình lập chỉ mục mã. Điều chỉnh điều này dựa trên giới hạn của nhà cung cấp API của bạn. Mặc định là 60." } diff --git a/src/package.nls.zh-CN.json b/src/package.nls.zh-CN.json index 64684443fc2..caab1a633d7 100644 --- a/src/package.nls.zh-CN.json +++ b/src/package.nls.zh-CN.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "将自动拒绝而无需请求批准的命令前缀。与允许命令冲突时,最长前缀匹配优先。添加 * 拒绝所有命令。", "commands.commandExecutionTimeout.description": "等待命令执行完成的最大时间(秒),超时前(0 = 无超时,1-600秒,默认:0秒)", "commands.commandTimeoutAllowlist.description": "从命令执行超时中排除的命令前缀。匹配这些前缀的命令将在没有超时限制的情况下运行。", + "commands.preventCompletionWithOpenTodos.description": "当待办事项列表中有未完成的待办事项时阻止任务完成", "settings.vsCodeLmModelSelector.description": "VSCode 语言模型 API 的设置", "settings.vsCodeLmModelSelector.vendor.description": "语言模型的供应商(例如:copilot)", "settings.vsCodeLmModelSelector.family.description": "语言模型的系列(例如:gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "RooCode 配置文件的路径,用于在扩展启动时自动导入。支持绝对路径和相对于主目录的路径(例如 '~/Documents/roo-code-settings.json')。留空以禁用自动导入。", "settings.useAgentRules.description": "为特定于代理的规则启用 AGENTS.md 文件的加载(请参阅 https://agent-rules.org/)", "settings.apiRequestTimeout.description": "等待 API 响应的最长时间(秒)(0 = 无超时,1-3600秒,默认值:600秒)。对于像 LM Studio 和 Ollama 这样可能需要更多处理时间的本地提供商,建议使用更高的值。", + "settings.newTaskRequireTodos.description": "使用 new_task 工具创建新任务时需要 todos 参数", "settings.codeIndex.embeddingBatchSize.description": "代码索引期间嵌入操作的批处理大小。根据 API 提供商的限制调整此设置。默认值为 60。" } diff --git a/src/package.nls.zh-TW.json b/src/package.nls.zh-TW.json index cc095664ccf..8ad1011bb48 100644 --- a/src/package.nls.zh-TW.json +++ b/src/package.nls.zh-TW.json @@ -32,6 +32,7 @@ "commands.deniedCommands.description": "將自動拒絕而無需請求批准的命令前綴。與允許命令衝突時,最長前綴匹配優先。新增 * 拒絕所有命令。", "commands.commandExecutionTimeout.description": "等待命令執行完成的最大時間(秒),逾時前(0 = 無逾時,1-600秒,預設:0秒)", "commands.commandTimeoutAllowlist.description": "從命令執行逾時中排除的命令前綴。符合這些前綴的命令將在沒有逾時限制的情況下執行。", + "commands.preventCompletionWithOpenTodos.description": "當待辦事項清單中有未完成的待辦事項時阻止工作完成", "settings.vsCodeLmModelSelector.description": "VSCode 語言模型 API 的設定", "settings.vsCodeLmModelSelector.vendor.description": "語言模型供應商(例如:copilot)", "settings.vsCodeLmModelSelector.family.description": "語言模型系列(例如:gpt-4)", @@ -40,5 +41,6 @@ "settings.autoImportSettingsPath.description": "RooCode 設定檔案的路徑,用於在擴充功能啟動時自動匯入。支援絕對路徑和相對於主目錄的路徑(例如 '~/Documents/roo-code-settings.json')。留空以停用自動匯入。", "settings.useAgentRules.description": "為特定於代理的規則啟用 AGENTS.md 檔案的載入(請參閱 https://agent-rules.org/)", "settings.apiRequestTimeout.description": "等待 API 回應的最長時間(秒)(0 = 無超時,1-3600秒,預設值:600秒)。對於像 LM Studio 和 Ollama 這樣可能需要更多處理時間的本地提供商,建議使用更高的值。", + "settings.newTaskRequireTodos.description": "使用 new_task 工具建立新工作時需要 todos 參數", "settings.codeIndex.embeddingBatchSize.description": "程式碼索引期間嵌入操作的批次大小。根據 API 提供商的限制調整此設定。預設值為 60。" }