From c5614cc54ed16e90151cbe1ceed5213b472383ff Mon Sep 17 00:00:00 2001 From: Marius Date: Mon, 27 Apr 2026 12:00:14 +0200 Subject: [PATCH] feat(vscode): open config files from settings (#9548) * feat(vscode): open config files from settings * fix(vscode): localize config file picker * chore(kilo-docs): update source links * fix(vscode): reuse settings translations for config picker * chore: update kilo-vscode visual regression baselines --------- Co-authored-by: github-actions[bot] --- .changeset/open-config-files.md | 5 + .../settings-panel-chromium-linux.png | 4 +- packages/kilo-docs/source-links.md | 1 + packages/kilo-vscode/src/KiloProvider.ts | 4 + .../src/kilo-provider/config-file.ts | 117 ++++++++++++++++++ .../src/kilo-provider/open-config.ts | 72 +++++++++++ .../src/components/settings/Settings.tsx | 42 ++++++- .../kilo-vscode/webview-ui/src/i18n/ar.ts | 23 ++++ .../kilo-vscode/webview-ui/src/i18n/br.ts | 25 ++++ .../kilo-vscode/webview-ui/src/i18n/bs.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/da.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/de.ts | 25 ++++ .../kilo-vscode/webview-ui/src/i18n/en.ts | 23 ++++ .../kilo-vscode/webview-ui/src/i18n/es.ts | 25 ++++ .../kilo-vscode/webview-ui/src/i18n/fr.ts | 25 ++++ .../kilo-vscode/webview-ui/src/i18n/ja.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/ko.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/nl.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/no.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/pl.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/ru.ts | 25 ++++ .../kilo-vscode/webview-ui/src/i18n/th.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/tr.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/uk.ts | 24 ++++ .../kilo-vscode/webview-ui/src/i18n/zh.ts | 23 ++++ .../kilo-vscode/webview-ui/src/i18n/zht.ts | 23 ++++ .../src/types/messages/webview-messages.ts | 28 +++++ 27 files changed, 727 insertions(+), 3 deletions(-) create mode 100644 .changeset/open-config-files.md create mode 100644 packages/kilo-vscode/src/kilo-provider/config-file.ts create mode 100644 packages/kilo-vscode/src/kilo-provider/open-config.ts diff --git a/.changeset/open-config-files.md b/.changeset/open-config-files.md new file mode 100644 index 0000000000..48e9bbf158 --- /dev/null +++ b/.changeset/open-config-files.md @@ -0,0 +1,5 @@ +--- +"kilo-code": minor +--- + +Add Settings header buttons to open the project and global Kilo config files directly in VS Code. diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/settings/settings-panel-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/settings/settings-panel-chromium-linux.png index 1f474da348..2a9f410b3b 100644 --- a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/settings/settings-panel-chromium-linux.png +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/settings/settings-panel-chromium-linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4524d1fe8b44cf2cce15bdf3ad100572b57fa479fefe456f1c141ebca8d5187d -size 28078 +oid sha256:16e602e6a870e4b66a466a0895f92e9df117f6137809c79ed797f24d2b6a1e88 +size 31028 diff --git a/packages/kilo-docs/source-links.md b/packages/kilo-docs/source-links.md index dd97d3bdfe..15ae05f7e3 100644 --- a/packages/kilo-docs/source-links.md +++ b/packages/kilo-docs/source-links.md @@ -16,6 +16,7 @@ - + - diff --git a/packages/kilo-vscode/src/KiloProvider.ts b/packages/kilo-vscode/src/KiloProvider.ts index a37424bcb8..4c7f6a324f 100644 --- a/packages/kilo-vscode/src/KiloProvider.ts +++ b/packages/kilo-vscode/src/KiloProvider.ts @@ -64,6 +64,7 @@ import { } from "./services/autocomplete/settings" import * as ModelState from "./kilo-provider/model-state" import { handleForkSession } from "./kilo-provider/fork-session" +import { openConfig } from "./kilo-provider/open-config" import { retryable, backoff, MAX_RETRIES } from "./util/retry" import { hasGit } from "./kilo-provider/git-status" // legacy-migration start @@ -697,6 +698,9 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper case "openVSCodeSettings": vscode.commands.executeCommand("workbench.action.openSettings", message.query) break + case "openConfigFile": + await openConfig(message.scope, message.labels, this.getProjectDirectory(this.currentSession?.id)) + break case "openMarketplacePanel": vscode.commands.executeCommand("kilo-code.new.marketplaceButtonClicked", this.projectDirectory) break diff --git a/packages/kilo-vscode/src/kilo-provider/config-file.ts b/packages/kilo-vscode/src/kilo-provider/config-file.ts new file mode 100644 index 0000000000..f943ebb5d7 --- /dev/null +++ b/packages/kilo-vscode/src/kilo-provider/config-file.ts @@ -0,0 +1,117 @@ +import { existsSync } from "fs" +import * as os from "os" +import * as path from "path" + +export type Scope = "global" | "local" + +export type Source = + | "sourceXdg" + | "sourceHomeKilo" + | "sourceHomeKilocode" + | "sourceHomeOpencode" + | "sourceEnvFile" + | "sourceEnvDir" + | "sourceEnvContent" + | "sourceProjectKilo" + | "sourceProjectRoot" + | "sourceProjectKilocode" + | "sourceProjectOpencode" + +export interface Entry { + file?: string + name: string + source: Source + exists: boolean + loaded: boolean + legacy?: boolean + recommended?: boolean + virtual?: boolean +} + +const SCHEMA = "https://app.kilo.ai/config.json" + +const MODERN = ["kilo.jsonc", "kilo.json"] +const LEGACY = ["opencode.jsonc", "opencode.json"] +const FILES = [...MODERN, ...LEGACY] +const GLOBAL = ["kilo.jsonc", "kilo.json", "opencode.jsonc", "opencode.json", "config.json"] +const HOME = [".kilo", ".kilocode", ".opencode"] +const SOURCES: Record = { + ".kilo": "sourceHomeKilo", + ".kilocode": "sourceHomeKilocode", + ".opencode": "sourceHomeOpencode", +} + +function row(file: string, source: Source, loaded = true, recommended = false): Entry { + const name = path.basename(file) + return { + file, + name, + source, + exists: existsSync(file), + loaded: loaded && existsSync(file), + legacy: name.startsWith("opencode") || name === "config.json" || file.includes(`${path.sep}.kilocode${path.sep}`), + recommended, + } +} + +function ensure(list: Entry[], file: string, source: Source) { + if (list.some((item) => item.file === file)) return list + return [...list, row(file, source, true, true)] +} + +export function globalFiles() { + const root = path.join(process.env.XDG_CONFIG_HOME || path.join(os.homedir(), ".config"), "kilo") + const base = GLOBAL.map((file) => row(path.join(root, file), "sourceXdg")).filter((item) => item.exists) + const dirs = HOME.flatMap((dir) => { + const base = path.join(os.homedir(), dir) + if (!existsSync(base)) return [] + return FILES.map((file) => row(path.join(base, file), SOURCES[dir])).filter((item) => item.exists) + }) + const env = process.env.KILO_CONFIG ? [row(process.env.KILO_CONFIG, "sourceEnvFile")] : [] + const extra = process.env.KILO_CONFIG_DIR + const dir = extra + ? ensure( + FILES.map((file) => row(path.join(extra, file), "sourceEnvDir")).filter((item) => item.exists), + path.join(extra, "kilo.jsonc"), + "sourceEnvDir", + ) + : [] + const virtual: Entry[] = process.env.KILO_CONFIG_CONTENT + ? [ + { + name: "KILO_CONFIG_CONTENT", + source: "sourceEnvContent", + exists: true, + loaded: true, + virtual: true, + }, + ] + : [] + + return ensure([...base, ...dirs, ...env, ...dir, ...virtual], path.join(root, "kilo.jsonc"), "sourceXdg") +} + +export function localFiles(root: string) { + const enabled = !process.env.KILO_DISABLE_PROJECT_CONFIG + const dirs = [path.join(root, ".kilo"), root, path.join(root, ".kilocode"), path.join(root, ".opencode")] + const list = dirs.flatMap((dir) => FILES.map((file) => row(path.join(dir, file), localSource(root, dir), enabled))) + return ensure( + list.filter((item) => item.exists), + path.join(root, ".kilo", "kilo.jsonc"), + "sourceProjectKilo", + ).map((item) => (enabled ? item : { ...item, loaded: false })) +} + +function localSource(root: string, dir: string) { + if (dir === root) return "sourceProjectRoot" + if (dir.endsWith(`${path.sep}.kilo`)) return "sourceProjectKilo" + if (dir.endsWith(`${path.sep}.kilocode`)) return "sourceProjectKilocode" + return "sourceProjectOpencode" +} + +export function content() { + return `{ + "$schema": "${SCHEMA}" +} +` +} diff --git a/packages/kilo-vscode/src/kilo-provider/open-config.ts b/packages/kilo-vscode/src/kilo-provider/open-config.ts new file mode 100644 index 0000000000..e30ee9d51b --- /dev/null +++ b/packages/kilo-vscode/src/kilo-provider/open-config.ts @@ -0,0 +1,72 @@ +import * as path from "path" +import * as vscode from "vscode" +import { content, globalFiles, localFiles, type Entry, type Scope, type Source } from "./config-file" + +interface Labels extends Record { + scope: string + statusLoaded: string + statusLoadedLegacy: string + statusNotLoaded: string + statusCreate: string + title: string + placeholder: string + noWorkspace: string + openFailed: string +} + +export async function openConfig(scope: Scope, labels: Labels, root?: string): Promise { + if (scope === "local" && !root) { + void vscode.window.showWarningMessage(labels.noWorkspace) + return + } + + const list = scope === "global" ? globalFiles() : localFiles(root!) + const picked = await pick(list, labels) + if (!picked?.file) return + + await open(picked.file, labels) +} + +async function pick(list: Entry[], labels: Labels) { + const editable = list.filter((item) => !item.virtual) + if (editable.length === 1) return editable[0] + + const picked = await vscode.window.showQuickPick( + editable.map((item) => ({ + label: item.recommended && !item.exists ? `$(add) ${item.name}` : `$(json) ${item.name}`, + description: item.exists ? status(item, labels) : labels.statusCreate, + detail: `${labels[item.source]} - ${item.file}`, + item, + })), + { + title: labels.title, + placeHolder: labels.placeholder, + }, + ) + + return picked?.item +} + +function status(item: Entry, labels: Labels) { + if (!item.loaded) return labels.statusNotLoaded + if (item.legacy) return labels.statusLoadedLegacy + return labels.statusLoaded +} + +async function open(file: string, labels: Labels) { + const uri = vscode.Uri.file(file) + try { + await vscode.workspace.fs.createDirectory(vscode.Uri.file(path.dirname(file))) + const exists = await vscode.workspace.fs.stat(uri).then( + () => true, + () => false, + ) + if (!exists) await vscode.workspace.fs.writeFile(uri, Buffer.from(content())) + const doc = await vscode.workspace.openTextDocument(uri) + await vscode.window.showTextDocument(doc, { preview: false }) + } catch (err) { + const msg = err instanceof Error ? err.message : String(err) + console.error("[Kilo New] Failed to open config file:", file, err) + void vscode.window.showErrorMessage(labels.openFailed.replace("{{message}}", () => msg)) + } +} diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/Settings.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/Settings.tsx index 00baf09c9e..a754532ed4 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/Settings.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/Settings.tsx @@ -59,6 +59,37 @@ const Settings: Component = (props) => { }) } + const open = (scope: "local" | "global") => { + const label = + scope === "global" ? language.t("settings.config.scope.global") : language.t("settings.config.scope.local") + vscode.postMessage({ + type: "openConfigFile", + scope, + labels: { + scope: label, + statusLoaded: language.t("settings.config.status.loaded"), + statusLoadedLegacy: language.t("settings.config.status.loadedLegacy"), + statusNotLoaded: language.t("settings.config.status.notLoaded"), + statusCreate: language.t("settings.config.status.create"), + title: language.t("settings.config.title", { scope: label }), + placeholder: language.t("settings.config.placeholder"), + noWorkspace: language.t("settings.config.noWorkspace"), + openFailed: language.t("settings.config.openFailed", { scope: label, message: "{{message}}" }), + sourceXdg: language.t("settings.config.source.xdg"), + sourceHomeKilo: language.t("settings.config.source.homeKilo"), + sourceHomeKilocode: language.t("settings.config.source.homeKilocode"), + sourceHomeOpencode: language.t("settings.config.source.homeOpencode"), + sourceEnvFile: language.t("settings.config.source.envFile"), + sourceEnvDir: language.t("settings.config.source.envDir"), + sourceEnvContent: language.t("settings.config.source.envContent"), + sourceProjectKilo: language.t("settings.config.source.projectKilo"), + sourceProjectRoot: language.t("settings.config.source.projectRoot"), + sourceProjectKilocode: language.t("settings.config.source.projectKilocode"), + sourceProjectOpencode: language.t("settings.config.source.projectOpencode"), + }, + }) + } + // Sync when the parent changes the tab prop (e.g. via navigate message) createEffect( on( @@ -84,10 +115,19 @@ const Settings: Component = (props) => { "border-bottom": "1px solid var(--border-weak-base)", display: "flex", "align-items": "center", + "flex-wrap": "wrap", gap: "8px", }} > -

{language.t("sidebar.settings")}

+

+ {language.t("sidebar.settings")} +

+ + {/* Settings tabs */} diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index be5ce50e02..9bc5cbe6ff 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -822,6 +822,29 @@ export const dict = { "provider.custom.error.baseURL.format": "يجب أن يبدأ بـ http:// أو https://", "provider.custom.error.required": "مطلوب", "provider.custom.error.duplicate": "مكرر", + "settings.openLocalConfig": "تكوين محلي", + "settings.openGlobalConfig": "تكوين عام", + "settings.config.scope.local": "محلي", + "settings.config.scope.global": "عالمي", + "settings.config.status.loaded": "محمل", + "settings.config.status.loadedLegacy": "محمل تكوين قديم", + "settings.config.status.notLoaded": "غير محمل", + "settings.config.status.create": "غير موجود - قم بإنشاء هذا الملف", + "settings.config.title": "فتح ملف تكوين Kilo {{scope}}", + "settings.config.placeholder": "يتم دمج ملفات التكوين بالترتيب؛ الملفات المحددة كمحملة تؤثر حاليًا على الإعدادات.", + "settings.config.noWorkspace": "افتح مجلد مساحة عمل لتحرير ملف تكوين Kilo المحلي.", + "settings.config.openFailed": "فشل فتح ملف تكوين Kilo {{scope}}: {{message}}", + "settings.config.source.xdg": "تكوين XDG العالمي", + "settings.config.source.homeKilo": "تكوين .kilo في Home", + "settings.config.source.homeKilocode": "تكوين .kilocode في Home", + "settings.config.source.homeOpencode": "تكوين .opencode في Home", + "settings.config.source.envFile": "ملف بيئة KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "تكوين البيئة المضمن", + "settings.config.source.projectKilo": "تكوين .kilo للمشروع", + "settings.config.source.projectRoot": "تكوين جذر المشروع", + "settings.config.source.projectKilocode": "تكوين .kilocode القديم", + "settings.config.source.projectOpencode": "تكوين .opencode القديم", "settings.models.title": "النماذج", "settings.models.description": "ستكون إعدادات النموذج قابلة للتكوين هنا.", "settings.agents.title": "الوكلاء", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index 5389b1b5c9..689075b2d2 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -830,6 +830,31 @@ export const dict = { "provider.custom.error.baseURL.format": "Deve começar com http:// ou https://", "provider.custom.error.required": "Obrigatório", "provider.custom.error.duplicate": "Duplicado", + "settings.openLocalConfig": "Config Local", + "settings.openGlobalConfig": "Config Global", + "settings.config.scope.local": "Local", + "settings.config.scope.global": "Global", + "settings.config.status.loaded": "carregado", + "settings.config.status.loadedLegacy": "configuração legada carregada", + "settings.config.status.notLoaded": "não carregado", + "settings.config.status.create": "não encontrado - criar este arquivo", + "settings.config.title": "Abrir arquivo de configuração {{scope}} do Kilo", + "settings.config.placeholder": + "Os arquivos de configuração são mesclados em ordem; os arquivos marcados como carregados afetam atualmente as configurações.", + "settings.config.noWorkspace": + "Abra uma pasta de espaço de trabalho para editar o arquivo de configuração local do Kilo.", + "settings.config.openFailed": "Falha ao abrir o arquivo de configuração {{scope}} do Kilo: {{message}}", + "settings.config.source.xdg": "Configuração global do XDG", + "settings.config.source.homeKilo": "Configuração .kilo da Home", + "settings.config.source.homeKilocode": "Configuração .kilocode da Home", + "settings.config.source.homeOpencode": "Configuração .opencode da Home", + "settings.config.source.envFile": "Arquivo de ambiente KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Configuração de ambiente embutida", + "settings.config.source.projectKilo": "Configuração .kilo do projeto", + "settings.config.source.projectRoot": "Configuração raiz do projeto", + "settings.config.source.projectKilocode": "Configuração .kilocode legada", + "settings.config.source.projectOpencode": "Configuração .opencode legada", "settings.models.title": "Modelos", "settings.models.description": "Configurações de modelos estarão disponíveis aqui.", "settings.agents.title": "Agentes", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index 3c038f654d..6f062fca48 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -836,6 +836,30 @@ export const dict = { "provider.custom.error.baseURL.format": "Mora početi sa http:// ili https://", "provider.custom.error.required": "Obavezno", "provider.custom.error.duplicate": "Duplikat", + "settings.openLocalConfig": "Lokalna konfig.", + "settings.openGlobalConfig": "Globalna konfig.", + "settings.config.scope.local": "Lokalno", + "settings.config.scope.global": "Globalno", + "settings.config.status.loaded": "učitano", + "settings.config.status.loadedLegacy": "učitana zastarjela konfiguracija", + "settings.config.status.notLoaded": "nije učitano", + "settings.config.status.create": "nije pronađeno - kreiraj ovu datoteku", + "settings.config.title": "Otvori {{scope}} Kilo konfiguracijsku datoteku", + "settings.config.placeholder": + "Konfiguracijske datoteke se spajaju po redu; datoteke označene kao učitane trenutno utiču na postavke.", + "settings.config.noWorkspace": "Otvorite fasciklu radnog prostora da uredite lokalnu Kilo konfiguracijsku datoteku.", + "settings.config.openFailed": "Nije uspjelo otvaranje {{scope}} Kilo konfiguracijske datoteke: {{message}}", + "settings.config.source.xdg": "XDG globalna konfiguracija", + "settings.config.source.homeKilo": "Home .kilo konfiguracija", + "settings.config.source.homeKilocode": "Home .kilocode konfiguracija", + "settings.config.source.homeOpencode": "Home .opencode konfiguracija", + "settings.config.source.envFile": "KILO_CONFIG datoteka okruženja", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Ugrađena konfiguracija okruženja", + "settings.config.source.projectKilo": "Projektna .kilo konfiguracija", + "settings.config.source.projectRoot": "Konfiguracija korijena projekta", + "settings.config.source.projectKilocode": "Zastarjela .kilocode konfiguracija", + "settings.config.source.projectOpencode": "Zastarjela .opencode konfiguracija", "settings.models.title": "Modeli", "settings.models.description": "Postavke modela će se ovdje moći podešavati.", "settings.agents.title": "Agenti", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index ffcb52175d..c04fef2ea7 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -829,6 +829,30 @@ export const dict = { "provider.custom.error.baseURL.format": "Skal starte med http:// eller https://", "provider.custom.error.required": "Påkrævet", "provider.custom.error.duplicate": "Duplikat", + "settings.openLocalConfig": "Lokal konfig", + "settings.openGlobalConfig": "Global konfig", + "settings.config.scope.local": "Lokal", + "settings.config.scope.global": "Global", + "settings.config.status.loaded": "indlæst", + "settings.config.status.loadedLegacy": "indlæst forældet konfiguration", + "settings.config.status.notLoaded": "ikke indlæst", + "settings.config.status.create": "ikke fundet - opret denne fil", + "settings.config.title": "Åbn {{scope}} Kilo konfigurationsfil", + "settings.config.placeholder": + "Konfigurationsfiler flettes i rækkefølge; filer markeret som indlæst påvirker i øjeblikket indstillingerne.", + "settings.config.noWorkspace": "Åbn en arbejdsområdemappe for at redigere den lokale Kilo konfigurationsfil.", + "settings.config.openFailed": "Kunne ikke åbne {{scope}} Kilo konfigurationsfil: {{message}}", + "settings.config.source.xdg": "XDG global konfiguration", + "settings.config.source.homeKilo": "Home .kilo konfiguration", + "settings.config.source.homeKilocode": "Home .kilocode konfiguration", + "settings.config.source.homeOpencode": "Home .opencode konfiguration", + "settings.config.source.envFile": "KILO_CONFIG miljøfil", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Indbygget miljøkonfiguration", + "settings.config.source.projectKilo": "Projekt .kilo konfiguration", + "settings.config.source.projectRoot": "Projekt rodkonfiguration", + "settings.config.source.projectKilocode": "Forældet .kilocode konfiguration", + "settings.config.source.projectOpencode": "Forældet .opencode konfiguration", "settings.models.title": "Modeller", "settings.models.description": "Modelindstillinger vil kunne konfigureres her.", "settings.agents.title": "Agenter", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index 9c949294e1..a2d9e5e835 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -841,6 +841,31 @@ export const dict = { "provider.custom.error.baseURL.format": "Muss mit http:// oder https:// beginnen", "provider.custom.error.required": "Erforderlich", "provider.custom.error.duplicate": "Duplikat", + "settings.openLocalConfig": "Lokale Config", + "settings.openGlobalConfig": "Globale Config", + "settings.config.scope.local": "Lokal", + "settings.config.scope.global": "Global", + "settings.config.status.loaded": "geladen", + "settings.config.status.loadedLegacy": "veraltete Konfiguration geladen", + "settings.config.status.notLoaded": "nicht geladen", + "settings.config.status.create": "nicht gefunden - diese Datei erstellen", + "settings.config.title": "{{scope}} Kilo-Konfigurationsdatei öffnen", + "settings.config.placeholder": + "Konfigurationsdateien werden der Reihe nach zusammengeführt; als geladen markierte Dateien wirken sich aktuell auf die Einstellungen aus.", + "settings.config.noWorkspace": + "Öffnen Sie einen Arbeitsbereichsordner, um die lokale Kilo-Konfigurationsdatei zu bearbeiten.", + "settings.config.openFailed": "Fehler beim Öffnen der {{scope}} Kilo-Konfigurationsdatei: {{message}}", + "settings.config.source.xdg": "Globale XDG-Konfiguration", + "settings.config.source.homeKilo": "Home .kilo-Konfiguration", + "settings.config.source.homeKilocode": "Home .kilocode-Konfiguration", + "settings.config.source.homeOpencode": "Home .opencode-Konfiguration", + "settings.config.source.envFile": "KILO_CONFIG Umgebungsdatei", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Inline-Umgebungskonfiguration", + "settings.config.source.projectKilo": "Projekt .kilo-Konfiguration", + "settings.config.source.projectRoot": "Projektstamm-Konfiguration", + "settings.config.source.projectKilocode": "Veraltete .kilocode-Konfiguration", + "settings.config.source.projectOpencode": "Veraltete .opencode-Konfiguration", "settings.models.title": "Modelle", "settings.models.description": "Modelleinstellungen können hier konfiguriert werden.", "settings.agents.title": "Agenten", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index 24766d4bd4..7ba66354a2 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -830,6 +830,29 @@ export const dict = { "provider.custom.error.baseURL.format": "Must start with http:// or https://", "provider.custom.error.required": "Required", "provider.custom.error.duplicate": "Duplicate", + "settings.openLocalConfig": "Local Config", + "settings.openGlobalConfig": "Global Config", + "settings.config.scope.local": "Local", + "settings.config.scope.global": "Global", + "settings.config.status.loaded": "loaded", + "settings.config.status.loadedLegacy": "loaded legacy config", + "settings.config.status.notLoaded": "not loaded", + "settings.config.status.create": "not found - create this file", + "settings.config.title": "Open {{scope}} Kilo config file", + "settings.config.placeholder": "Config files are merged in order; files marked loaded currently affect settings.", + "settings.config.noWorkspace": "Open a workspace folder to edit the local Kilo config file.", + "settings.config.openFailed": "Failed to open {{scope}} Kilo config file: {{message}}", + "settings.config.source.xdg": "XDG global config", + "settings.config.source.homeKilo": "Home .kilo config", + "settings.config.source.homeKilocode": "Home .kilocode config", + "settings.config.source.homeOpencode": "Home .opencode config", + "settings.config.source.envFile": "KILO_CONFIG environment file", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Inline environment config", + "settings.config.source.projectKilo": "Project .kilo config", + "settings.config.source.projectRoot": "Project root config", + "settings.config.source.projectKilocode": "Legacy .kilocode config", + "settings.config.source.projectOpencode": "Legacy .opencode config", "settings.models.title": "Models", "settings.models.description": "Model settings will be configurable here.", "settings.agents.title": "Agents", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index dbedbd02f9..54ee3b50a6 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -836,6 +836,31 @@ export const dict = { "provider.custom.error.baseURL.format": "Debe empezar con http:// o https://", "provider.custom.error.required": "Obligatorio", "provider.custom.error.duplicate": "Duplicado", + "settings.openLocalConfig": "Config local", + "settings.openGlobalConfig": "Config global", + "settings.config.scope.local": "Local", + "settings.config.scope.global": "Global", + "settings.config.status.loaded": "cargado", + "settings.config.status.loadedLegacy": "configuración heredada cargada", + "settings.config.status.notLoaded": "no cargado", + "settings.config.status.create": "no encontrado - crear este archivo", + "settings.config.title": "Abrir archivo de configuración Kilo {{scope}}", + "settings.config.placeholder": + "Los archivos de configuración se combinan en orden; los archivos marcados como cargados afectan actualmente a los ajustes.", + "settings.config.noWorkspace": + "Abre una carpeta de espacio de trabajo para editar el archivo de configuración Kilo local.", + "settings.config.openFailed": "Error al abrir el archivo de configuración Kilo {{scope}}: {{message}}", + "settings.config.source.xdg": "Configuración global XDG", + "settings.config.source.homeKilo": "Configuración .kilo de Home", + "settings.config.source.homeKilocode": "Configuración .kilocode de Home", + "settings.config.source.homeOpencode": "Configuración .opencode de Home", + "settings.config.source.envFile": "Archivo de entorno KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Configuración de entorno en línea", + "settings.config.source.projectKilo": "Configuración .kilo del proyecto", + "settings.config.source.projectRoot": "Configuración raíz del proyecto", + "settings.config.source.projectKilocode": "Configuración heredada .kilocode", + "settings.config.source.projectOpencode": "Configuración heredada .opencode", "settings.models.title": "Modelos", "settings.models.description": "La configuración de modelos estará disponible aquí.", "settings.agents.title": "Agentes", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index 5b996d033c..aa8fe2cc26 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -841,6 +841,31 @@ export const dict = { "provider.custom.error.baseURL.format": "Doit commencer par http:// ou https://", "provider.custom.error.required": "Requis", "provider.custom.error.duplicate": "Doublon", + "settings.openLocalConfig": "Config locale", + "settings.openGlobalConfig": "Config globale", + "settings.config.scope.local": "Local", + "settings.config.scope.global": "Global", + "settings.config.status.loaded": "chargé", + "settings.config.status.loadedLegacy": "configuration obsolète chargée", + "settings.config.status.notLoaded": "non chargé", + "settings.config.status.create": "introuvable - créer ce fichier", + "settings.config.title": "Ouvrir le fichier de configuration Kilo {{scope}}", + "settings.config.placeholder": + "Les fichiers de configuration sont fusionnés dans l'ordre ; les fichiers marqués comme chargés affectent actuellement les paramètres.", + "settings.config.noWorkspace": + "Ouvrez un dossier d'espace de travail pour modifier le fichier de configuration Kilo local.", + "settings.config.openFailed": "Échec de l'ouverture du fichier de configuration Kilo {{scope}} : {{message}}", + "settings.config.source.xdg": "Configuration globale XDG", + "settings.config.source.homeKilo": "Configuration .kilo de Home", + "settings.config.source.homeKilocode": "Configuration .kilocode de Home", + "settings.config.source.homeOpencode": "Configuration .opencode de Home", + "settings.config.source.envFile": "Fichier d'environnement KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Configuration d'environnement en ligne", + "settings.config.source.projectKilo": "Configuration .kilo du projet", + "settings.config.source.projectRoot": "Configuration racine du projet", + "settings.config.source.projectKilocode": "Configuration obsolète .kilocode", + "settings.config.source.projectOpencode": "Configuration obsolète .opencode", "settings.models.title": "Modèles", "settings.models.description": "Les paramètres des modèles seront configurables ici.", "settings.agents.title": "Agents", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index 105b8b3e4a..7d9b53544e 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -827,6 +827,30 @@ export const dict = { "provider.custom.error.baseURL.format": "http:// または https:// で始まる必要があります", "provider.custom.error.required": "必須", "provider.custom.error.duplicate": "重複", + "settings.openLocalConfig": "ローカル設定", + "settings.openGlobalConfig": "グローバル設定", + "settings.config.scope.local": "ローカル", + "settings.config.scope.global": "グローバル", + "settings.config.status.loaded": "読み込み済み", + "settings.config.status.loadedLegacy": "旧構成を読み込み済み", + "settings.config.status.notLoaded": "読み込まれていません", + "settings.config.status.create": "見つかりません - このファイルを作成する", + "settings.config.title": "{{scope}}のKilo構成ファイルを開く", + "settings.config.placeholder": + "構成ファイルは順番にマージされます。読み込み済みとしてマークされているファイルが現在設定に影響しています。", + "settings.config.noWorkspace": "ローカルのKilo構成ファイルを編集するには、ワークスペースフォルダーを開いてください。", + "settings.config.openFailed": "{{scope}}のKilo構成ファイルを開けませんでした: {{message}}", + "settings.config.source.xdg": "XDGグローバル構成", + "settings.config.source.homeKilo": "Homeの.kilo構成", + "settings.config.source.homeKilocode": "Homeの.kilocode構成", + "settings.config.source.homeOpencode": "Homeの.opencode構成", + "settings.config.source.envFile": "KILO_CONFIG環境ファイル", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "インライン環境構成", + "settings.config.source.projectKilo": "プロジェクトの.kilo構成", + "settings.config.source.projectRoot": "プロジェクトルート構成", + "settings.config.source.projectKilocode": "旧.kilocode構成", + "settings.config.source.projectOpencode": "旧.opencode構成", "settings.models.title": "モデル", "settings.models.description": "モデル設定はここで構成できます。", "settings.agents.title": "エージェント", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index 2930df9476..6ed9333c84 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -827,6 +827,30 @@ export const dict = { "provider.custom.error.baseURL.format": "http:// 또는 https://로 시작해야 합니다", "provider.custom.error.required": "필수", "provider.custom.error.duplicate": "중복", + "settings.openLocalConfig": "로컬 설정", + "settings.openGlobalConfig": "전역 설정", + "settings.config.scope.local": "로컬", + "settings.config.scope.global": "글로벌", + "settings.config.status.loaded": "로드됨", + "settings.config.status.loadedLegacy": "레거시 구성 로드됨", + "settings.config.status.notLoaded": "로드되지 않음", + "settings.config.status.create": "찾을 수 없음 - 이 파일 만들기", + "settings.config.title": "{{scope}} Kilo 구성 파일 열기", + "settings.config.placeholder": + "구성 파일은 순서대로 병합됩니다. 로드됨으로 표시된 파일이 현재 설정에 영향을 미칩니다.", + "settings.config.noWorkspace": "로컬 Kilo 구성 파일을 편집하려면 작업 영역 폴더를 엽니다.", + "settings.config.openFailed": "{{scope}} Kilo 구성 파일을 열지 못했습니다: {{message}}", + "settings.config.source.xdg": "XDG 글로벌 구성", + "settings.config.source.homeKilo": "Home .kilo 구성", + "settings.config.source.homeKilocode": "Home .kilocode 구성", + "settings.config.source.homeOpencode": "Home .opencode 구성", + "settings.config.source.envFile": "KILO_CONFIG 환경 파일", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "인라인 환경 구성", + "settings.config.source.projectKilo": "프로젝트 .kilo 구성", + "settings.config.source.projectRoot": "프로젝트 루트 구성", + "settings.config.source.projectKilocode": "레거시 .kilocode 구성", + "settings.config.source.projectOpencode": "레거시 .opencode 구성", "settings.models.title": "모델", "settings.models.description": "모델 설정은 여기서 구성할 수 있습니다.", "settings.agents.title": "에이전트", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index d6d957996b..39d2c68d24 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -830,6 +830,30 @@ export const dict = { "provider.custom.error.baseURL.format": "Moet beginnen met http:// of https://", "provider.custom.error.required": "Vereist", "provider.custom.error.duplicate": "Duplicaat", + "settings.openLocalConfig": "Lokale config", + "settings.openGlobalConfig": "Globale config", + "settings.config.scope.local": "Lokaal", + "settings.config.scope.global": "Globaal", + "settings.config.status.loaded": "geladen", + "settings.config.status.loadedLegacy": "verouderde configuratie geladen", + "settings.config.status.notLoaded": "niet geladen", + "settings.config.status.create": "niet gevonden - maak dit bestand", + "settings.config.title": "Open {{scope}} Kilo-configuratiebestand", + "settings.config.placeholder": + "Configuratiebestanden worden op volgorde samengevoegd; bestanden gemarkeerd als geladen hebben momenteel invloed op de instellingen.", + "settings.config.noWorkspace": "Open een werkruimtemap om het lokale Kilo-configuratiebestand te bewerken.", + "settings.config.openFailed": "Kan {{scope}} Kilo-configuratiebestand niet openen: {{message}}", + "settings.config.source.xdg": "XDG globale configuratie", + "settings.config.source.homeKilo": "Home .kilo-configuratie", + "settings.config.source.homeKilocode": "Home .kilocode-configuratie", + "settings.config.source.homeOpencode": "Home .opencode-configuratie", + "settings.config.source.envFile": "KILO_CONFIG omgevingsbestand", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Inline omgevingsconfiguratie", + "settings.config.source.projectKilo": "Project .kilo-configuratie", + "settings.config.source.projectRoot": "Project root configuratie", + "settings.config.source.projectKilocode": "Verouderde .kilocode-configuratie", + "settings.config.source.projectOpencode": "Verouderde .opencode-configuratie", "settings.models.title": "Modellen", "settings.models.description": "Model-instellingen zullen hier configureerbaar zijn.", "settings.agents.title": "Agenten", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index 0c2cff6778..e10af3a4d1 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -833,6 +833,30 @@ export const dict = { "provider.custom.error.baseURL.format": "Må starte med http:// eller https://", "provider.custom.error.required": "Påkrevd", "provider.custom.error.duplicate": "Duplikat", + "settings.openLocalConfig": "Lokal konfig", + "settings.openGlobalConfig": "Global konfig", + "settings.config.scope.local": "Lokal", + "settings.config.scope.global": "Global", + "settings.config.status.loaded": "lastet", + "settings.config.status.loadedLegacy": "lastet inn eldre konfigurasjon", + "settings.config.status.notLoaded": "ikke lastet", + "settings.config.status.create": "ikke funnet - opprett denne filen", + "settings.config.title": "Åpne {{scope}} Kilo-konfigurasjonsfil", + "settings.config.placeholder": + "Konfigurasjonsfiler slås sammen i rekkefølge; filer merket som lastet påvirker for øyeblikket innstillingene.", + "settings.config.noWorkspace": "Åpne en arbeidsområdemappe for å redigere den lokale Kilo-konfigurasjonsfilen.", + "settings.config.openFailed": "Klarte ikke å åpne {{scope}} Kilo-konfigurasjonsfil: {{message}}", + "settings.config.source.xdg": "XDG global konfigurasjon", + "settings.config.source.homeKilo": "Home .kilo-konfigurasjon", + "settings.config.source.homeKilocode": "Home .kilocode-konfigurasjon", + "settings.config.source.homeOpencode": "Home .opencode-konfigurasjon", + "settings.config.source.envFile": "KILO_CONFIG miljøfil", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Innebygd miljøkonfigurasjon", + "settings.config.source.projectKilo": "Prosjekt .kilo-konfigurasjon", + "settings.config.source.projectRoot": "Prosjektets rotkonfigurasjon", + "settings.config.source.projectKilocode": "Eldre .kilocode-konfigurasjon", + "settings.config.source.projectOpencode": "Eldre .opencode-konfigurasjon", "settings.models.title": "Modeller", "settings.models.description": "Modellinnstillinger vil kunne konfigureres her.", "settings.agents.title": "Agenter", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index de4250f852..87698039de 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -834,6 +834,30 @@ export const dict = { "provider.custom.error.baseURL.format": "Musi zaczynać się od http:// lub https://", "provider.custom.error.required": "Wymagane", "provider.custom.error.duplicate": "Duplikat", + "settings.openLocalConfig": "Konfig. lokalna", + "settings.openGlobalConfig": "Konfig. globalna", + "settings.config.scope.local": "Lokalne", + "settings.config.scope.global": "Globalne", + "settings.config.status.loaded": "wczytano", + "settings.config.status.loadedLegacy": "wczytano przestarzałą konfigurację", + "settings.config.status.notLoaded": "nie wczytano", + "settings.config.status.create": "nie znaleziono - utwórz ten plik", + "settings.config.title": "Otwórz plik konfiguracyjny Kilo ({{scope}})", + "settings.config.placeholder": + "Pliki konfiguracyjne są scalane po kolei; pliki oznaczone jako wczytane mają obecnie wpływ na ustawienia.", + "settings.config.noWorkspace": "Otwórz folder obszaru roboczego, aby edytować lokalny plik konfiguracyjny Kilo.", + "settings.config.openFailed": "Nie udało się otworzyć pliku konfiguracyjnego Kilo ({{scope}}): {{message}}", + "settings.config.source.xdg": "Globalna konfiguracja XDG", + "settings.config.source.homeKilo": "Konfiguracja .kilo (Home)", + "settings.config.source.homeKilocode": "Konfiguracja .kilocode (Home)", + "settings.config.source.homeOpencode": "Konfiguracja .opencode (Home)", + "settings.config.source.envFile": "Plik środowiskowy KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Wbudowana konfiguracja środowiska", + "settings.config.source.projectKilo": "Konfiguracja .kilo projektu", + "settings.config.source.projectRoot": "Konfiguracja główna projektu", + "settings.config.source.projectKilocode": "Przestarzała konfiguracja .kilocode", + "settings.config.source.projectOpencode": "Przestarzała konfiguracja .opencode", "settings.models.title": "Modele", "settings.models.description": "Ustawienia modeli będą tutaj konfigurowalne.", "settings.agents.title": "Agenci", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index 118ba47c57..044f41c99d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -835,6 +835,31 @@ export const dict = { "provider.custom.error.baseURL.format": "Должен начинаться с http:// или https://", "provider.custom.error.required": "Обязательно", "provider.custom.error.duplicate": "Дубликат", + "settings.openLocalConfig": "Локальный конфиг", + "settings.openGlobalConfig": "Глобальный конфиг", + "settings.config.scope.local": "Локальный", + "settings.config.scope.global": "Глобальный", + "settings.config.status.loaded": "загружено", + "settings.config.status.loadedLegacy": "загружена устаревшая конфигурация", + "settings.config.status.notLoaded": "не загружено", + "settings.config.status.create": "не найдено - создать этот файл", + "settings.config.title": "Открыть файл конфигурации Kilo ({{scope}})", + "settings.config.placeholder": + "Файлы конфигурации объединяются по порядку; файлы, отмеченные как загруженные, в данный момент влияют на настройки.", + "settings.config.noWorkspace": + "Откройте папку рабочей области для редактирования локального файла конфигурации Kilo.", + "settings.config.openFailed": "Не удалось открыть файл конфигурации Kilo ({{scope}}): {{message}}", + "settings.config.source.xdg": "Глобальная конфигурация XDG", + "settings.config.source.homeKilo": "Конфигурация .kilo (Home)", + "settings.config.source.homeKilocode": "Конфигурация .kilocode (Home)", + "settings.config.source.homeOpencode": "Конфигурация .opencode (Home)", + "settings.config.source.envFile": "Файл среды KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Встроенная конфигурация среды", + "settings.config.source.projectKilo": "Конфигурация .kilo проекта", + "settings.config.source.projectRoot": "Корневая конфигурация проекта", + "settings.config.source.projectKilocode": "Устаревшая конфигурация .kilocode", + "settings.config.source.projectOpencode": "Устаревшая конфигурация .opencode", "settings.models.title": "Модели", "settings.models.description": "Настройки моделей будут доступны здесь.", "settings.agents.title": "Агенты", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index 62334e9e10..2b6bd97efb 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -826,6 +826,30 @@ export const dict = { "provider.custom.error.baseURL.format": "ต้องขึ้นต้นด้วย http:// หรือ https://", "provider.custom.error.required": "จำเป็น", "provider.custom.error.duplicate": "ซ้ำ", + "settings.openLocalConfig": "คอนฟิก Local", + "settings.openGlobalConfig": "คอนฟิก Global", + "settings.config.scope.local": "ภายใน", + "settings.config.scope.global": "ทั่วโลก", + "settings.config.status.loaded": "โหลดแล้ว", + "settings.config.status.loadedLegacy": "โหลดการตั้งค่าแบบเก่าแล้ว", + "settings.config.status.notLoaded": "ยังไม่ได้โหลด", + "settings.config.status.create": "ไม่พบ - สร้างไฟล์นี้", + "settings.config.title": "เปิดไฟล์การตั้งค่า Kilo ({{scope}})", + "settings.config.placeholder": + "ไฟล์การตั้งค่าจะถูกผสานตามลำดับ ไฟล์ที่ถูกทำเครื่องหมายว่าโหลดแล้วจะมีผลกับการตั้งค่าในปัจจุบัน", + "settings.config.noWorkspace": "เปิดโฟลเดอร์พื้นที่ทำงานเพื่อแก้ไขไฟล์การตั้งค่า Kilo ภายใน", + "settings.config.openFailed": "ไม่สามารถเปิดไฟล์การตั้งค่า Kilo ({{scope}}): {{message}}", + "settings.config.source.xdg": "การตั้งค่า XDG ทั่วโลก", + "settings.config.source.homeKilo": "การตั้งค่า .kilo ของ Home", + "settings.config.source.homeKilocode": "การตั้งค่า .kilocode ของ Home", + "settings.config.source.homeOpencode": "การตั้งค่า .opencode ของ Home", + "settings.config.source.envFile": "ไฟล์สภาพแวดล้อม KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "การตั้งค่าสภาพแวดล้อมแบบอินไลน์", + "settings.config.source.projectKilo": "การตั้งค่า .kilo ของโปรเจกต์", + "settings.config.source.projectRoot": "การตั้งค่ารูทของโปรเจกต์", + "settings.config.source.projectKilocode": "การตั้งค่า .kilocode แบบเก่า", + "settings.config.source.projectOpencode": "การตั้งค่า .opencode แบบเก่า", "settings.models.title": "โมเดล", "settings.models.description": "การตั้งค่าโมเดลจะสามารถกำหนดค่าได้ที่นี่", "settings.agents.title": "เอเจนต์", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index 50f1ec6a10..d82eeed6aa 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -832,6 +832,30 @@ export const dict = { "provider.custom.error.baseURL.format": "http:// veya https:// ile başlamalı", "provider.custom.error.required": "Gerekli", "provider.custom.error.duplicate": "Tekrar", + "settings.openLocalConfig": "Yerel Config", + "settings.openGlobalConfig": "Global Config", + "settings.config.scope.local": "Yerel", + "settings.config.scope.global": "Küresel", + "settings.config.status.loaded": "yüklendi", + "settings.config.status.loadedLegacy": "eski yapılandırma yüklendi", + "settings.config.status.notLoaded": "yüklenmedi", + "settings.config.status.create": "bulunamadı - bu dosyayı oluştur", + "settings.config.title": "{{scope}} Kilo yapılandırma dosyasını aç", + "settings.config.placeholder": + "Yapılandırma dosyaları sırayla birleştirilir; yüklendi olarak işaretlenen dosyalar şu anda ayarları etkiler.", + "settings.config.noWorkspace": "Yerel Kilo yapılandırma dosyasını düzenlemek için bir çalışma alanı klasörü açın.", + "settings.config.openFailed": "{{scope}} Kilo yapılandırma dosyası açılamadı: {{message}}", + "settings.config.source.xdg": "XDG küresel yapılandırma", + "settings.config.source.homeKilo": "Home .kilo yapılandırması", + "settings.config.source.homeKilocode": "Home .kilocode yapılandırması", + "settings.config.source.homeOpencode": "Home .opencode yapılandırması", + "settings.config.source.envFile": "KILO_CONFIG ortam dosyası", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Satır içi ortam yapılandırması", + "settings.config.source.projectKilo": "Proje .kilo yapılandırması", + "settings.config.source.projectRoot": "Proje kök yapılandırması", + "settings.config.source.projectKilocode": "Eski .kilocode yapılandırması", + "settings.config.source.projectOpencode": "Eski .opencode yapılandırması", "settings.models.title": "Modeller", "settings.models.description": "Model ayarları burada yapılandırılabilecek.", "settings.agents.title": "Ajanlar", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index 6b3451745b..fc9df54b4d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -832,6 +832,30 @@ export const dict = { "provider.custom.error.baseURL.format": "Має починатися з http:// або https://", "provider.custom.error.required": "Обов'язкове поле", "provider.custom.error.duplicate": "Дублікат", + "settings.openLocalConfig": "Локальний конфіг", + "settings.openGlobalConfig": "Глобальний конфіг", + "settings.config.scope.local": "Локальний", + "settings.config.scope.global": "Глобальний", + "settings.config.status.loaded": "завантажено", + "settings.config.status.loadedLegacy": "завантажено застарілу конфігурацію", + "settings.config.status.notLoaded": "не завантажено", + "settings.config.status.create": "не знайдено - створити цей файл", + "settings.config.title": "Відкрити файл конфігурації Kilo ({{scope}})", + "settings.config.placeholder": + "Файли конфігурації об'єднуються по порядку; файли, позначені як завантажені, наразі впливають на налаштування.", + "settings.config.noWorkspace": "Відкрийте папку робочої області, щоб відредагувати локальний файл конфігурації Kilo.", + "settings.config.openFailed": "Не вдалося відкрити файл конфігурації Kilo ({{scope}}): {{message}}", + "settings.config.source.xdg": "Глобальна конфігурація XDG", + "settings.config.source.homeKilo": "Конфігурація .kilo (Home)", + "settings.config.source.homeKilocode": "Конфігурація .kilocode (Home)", + "settings.config.source.homeOpencode": "Конфігурація .opencode (Home)", + "settings.config.source.envFile": "Файл середовища KILO_CONFIG", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "Вбудована конфігурація середовища", + "settings.config.source.projectKilo": "Конфігурація .kilo проєкту", + "settings.config.source.projectRoot": "Коренева конфігурація проєкту", + "settings.config.source.projectKilocode": "Застаріла конфігурація .kilocode", + "settings.config.source.projectOpencode": "Застаріла конфігурація .opencode", "settings.models.title": "Моделі", "settings.models.description": "Тут можна буде налаштовувати параметри моделей.", "settings.agents.title": "Агенти", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index a19caa48c6..9c94a897dd 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -816,6 +816,29 @@ export const dict = { "provider.custom.error.baseURL.format": "必须以 http:// 或 https:// 开头", "provider.custom.error.required": "必填", "provider.custom.error.duplicate": "重复", + "settings.openLocalConfig": "本地配置", + "settings.openGlobalConfig": "全局配置", + "settings.config.scope.local": "本地", + "settings.config.scope.global": "全局", + "settings.config.status.loaded": "已加载", + "settings.config.status.loadedLegacy": "已加载旧版配置", + "settings.config.status.notLoaded": "未加载", + "settings.config.status.create": "未找到 - 创建此文件", + "settings.config.title": "打开 {{scope}} Kilo 配置文件", + "settings.config.placeholder": "配置文件按顺序合并;标记为已加载的文件目前会影响设置。", + "settings.config.noWorkspace": "打开工作区文件夹以编辑本地 Kilo 配置文件。", + "settings.config.openFailed": "无法打开 {{scope}} Kilo 配置文件:{{message}}", + "settings.config.source.xdg": "XDG 全局配置", + "settings.config.source.homeKilo": "主目录 .kilo 配置", + "settings.config.source.homeKilocode": "主目录 .kilocode 配置", + "settings.config.source.homeOpencode": "主目录 .opencode 配置", + "settings.config.source.envFile": "KILO_CONFIG 环境变量文件", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "内联环境配置", + "settings.config.source.projectKilo": "项目 .kilo 配置", + "settings.config.source.projectRoot": "项目根目录配置", + "settings.config.source.projectKilocode": "旧版 .kilocode 配置", + "settings.config.source.projectOpencode": "旧版 .opencode 配置", "settings.models.title": "模型", "settings.models.description": "模型设置将在此处可配置。", "settings.agents.title": "智能体", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index a02b3ac96f..636431ec80 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -818,6 +818,29 @@ export const dict = { "provider.custom.error.baseURL.format": "必須以 http:// 或 https:// 開頭", "provider.custom.error.required": "必填", "provider.custom.error.duplicate": "重複", + "settings.openLocalConfig": "本機設定", + "settings.openGlobalConfig": "全域設定", + "settings.config.scope.local": "本地", + "settings.config.scope.global": "全域", + "settings.config.status.loaded": "已載入", + "settings.config.status.loadedLegacy": "已載入舊版設定", + "settings.config.status.notLoaded": "未載入", + "settings.config.status.create": "找不到 - 建立此檔案", + "settings.config.title": "開啟 {{scope}} Kilo 設定檔", + "settings.config.placeholder": "設定檔會按順序合併;標記為已載入的檔案目前會影響設定。", + "settings.config.noWorkspace": "開啟工作區資料夾以編輯本地 Kilo 設定檔。", + "settings.config.openFailed": "無法開啟 {{scope}} Kilo 設定檔:{{message}}", + "settings.config.source.xdg": "XDG 全域設定", + "settings.config.source.homeKilo": "主目錄 .kilo 設定", + "settings.config.source.homeKilocode": "主目錄 .kilocode 設定", + "settings.config.source.homeOpencode": "主目錄 .opencode 設定", + "settings.config.source.envFile": "KILO_CONFIG 環境變數檔案", + "settings.config.source.envDir": "KILO_CONFIG_DIR", + "settings.config.source.envContent": "內聯環境設定", + "settings.config.source.projectKilo": "專案 .kilo 設定", + "settings.config.source.projectRoot": "專案根目錄設定", + "settings.config.source.projectKilocode": "舊版 .kilocode 設定", + "settings.config.source.projectOpencode": "舊版 .opencode 設定", "settings.models.title": "模型", "settings.models.description": "可在此調整模型設定。", "settings.agents.title": "代理程式", diff --git a/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts b/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts index 6d67b01ab8..2aeab467d7 100644 --- a/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts +++ b/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts @@ -163,6 +163,33 @@ export interface OpenVSCodeSettingsRequest { query: string } +export interface OpenConfigFileRequest { + type: "openConfigFile" + scope: "local" | "global" + labels: { + scope: string + statusLoaded: string + statusLoadedLegacy: string + statusNotLoaded: string + statusCreate: string + title: string + placeholder: string + noWorkspace: string + openFailed: string + sourceXdg: string + sourceHomeKilo: string + sourceHomeKilocode: string + sourceHomeOpencode: string + sourceEnvFile: string + sourceEnvDir: string + sourceEnvContent: string + sourceProjectKilo: string + sourceProjectRoot: string + sourceProjectKilocode: string + sourceProjectOpencode: string + } +} + export interface OpenMarketplacePanelRequest { type: "openMarketplacePanel" } @@ -901,6 +928,7 @@ export type WebviewMessage = | OpenExternalRequest | OpenSettingsPanelRequest | OpenVSCodeSettingsRequest + | OpenConfigFileRequest | OpenMarketplacePanelRequest | OpenFileRequest | CancelLoginRequest