mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 11:00:42 +00:00
fix(ui): gate control ui raw copy
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
import { spawn } from "node:child_process";
|
||||
import { createHash } from "node:crypto";
|
||||
import { existsSync } from "node:fs";
|
||||
import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
||||
import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
|
||||
import { homedir } from "node:os";
|
||||
import path from "node:path";
|
||||
import { createInterface } from "node:readline";
|
||||
import { fileURLToPath, pathToFileURL } from "node:url";
|
||||
import * as ts from "typescript";
|
||||
import { formatErrorMessage } from "../src/infra/errors.ts";
|
||||
|
||||
interface TranslationMap {
|
||||
@@ -57,6 +58,27 @@ type TranslationBatchItem = {
|
||||
textHash: string;
|
||||
};
|
||||
|
||||
type RawCopyFinding = {
|
||||
kind: "html-attribute" | "html-text" | "object-property";
|
||||
line: number;
|
||||
name: string;
|
||||
path: string;
|
||||
text: string;
|
||||
};
|
||||
|
||||
type RawCopyBaselineEntry = {
|
||||
count: number;
|
||||
kind: RawCopyFinding["kind"];
|
||||
name: string;
|
||||
path: string;
|
||||
text: string;
|
||||
};
|
||||
|
||||
type RawCopyBaseline = {
|
||||
version: number;
|
||||
entries: RawCopyBaselineEntry[];
|
||||
};
|
||||
|
||||
const CONTROL_UI_I18N_WORKFLOW = 1;
|
||||
const DEFAULT_OPENAI_MODEL = "gpt-5.5";
|
||||
const DEFAULT_ANTHROPIC_MODEL = "claude-opus-4-6";
|
||||
@@ -68,6 +90,9 @@ const LOCALES_DIR = path.join(ROOT, "ui", "src", "i18n", "locales");
|
||||
const I18N_ASSETS_DIR = path.join(ROOT, "ui", "src", "i18n", ".i18n");
|
||||
const SOURCE_LOCALE_PATH = path.join(LOCALES_DIR, "en.ts");
|
||||
const SOURCE_LOCALE = "en";
|
||||
const CONTROL_UI_SOURCE_DIR = path.join(ROOT, "ui", "src", "ui");
|
||||
const RAW_COPY_BASELINE_PATH = path.join(I18N_ASSETS_DIR, "raw-copy-baseline.json");
|
||||
const RAW_COPY_BASELINE_VERSION = 1;
|
||||
const MAX_BATCH_ITEMS = 20;
|
||||
const DEFAULT_BATCH_CHAR_BUDGET = 2_000;
|
||||
const TRANSLATE_MAX_ATTEMPTS = 2;
|
||||
@@ -422,6 +447,20 @@ function renderTranslationMemory(entries: Map<string, TranslationMemoryEntry>):
|
||||
return `${ordered.map((entry) => JSON.stringify(entry)).join("\n")}\n`;
|
||||
}
|
||||
|
||||
function buildTranslationMemoryByTextHash(
|
||||
entries: Map<string, TranslationMemoryEntry>,
|
||||
locale: string,
|
||||
): Map<string, TranslationMemoryEntry> {
|
||||
const byTextHash = new Map<string, TranslationMemoryEntry>();
|
||||
for (const entry of entries.values()) {
|
||||
if (entry.tgt_lang !== locale || !entry.text_hash || !entry.translated.trim()) {
|
||||
continue;
|
||||
}
|
||||
byTextHash.set(entry.text_hash, entry);
|
||||
}
|
||||
return byTextHash;
|
||||
}
|
||||
|
||||
function buildGlossaryPrompt(glossary: readonly GlossaryEntry[]): string {
|
||||
if (glossary.length === 0) {
|
||||
return "";
|
||||
@@ -488,6 +527,283 @@ function logProgress(message: string) {
|
||||
process.stdout.write(`control-ui-i18n: ${message}\n`);
|
||||
}
|
||||
|
||||
function toRepoPath(filePath: string): string {
|
||||
return path.relative(ROOT, filePath).split(path.sep).join("/");
|
||||
}
|
||||
|
||||
function normalizeRawCopyText(raw: string): string {
|
||||
return raw
|
||||
.replace(/\\n/g, " ")
|
||||
.replace(/\s+/g, " ")
|
||||
.replace(/·/giu, "·")
|
||||
.trim();
|
||||
}
|
||||
|
||||
function hasHumanLetters(text: string): boolean {
|
||||
return /\p{L}/u.test(text);
|
||||
}
|
||||
|
||||
function lineNumberForOffset(source: string, offset: number): number {
|
||||
let line = 1;
|
||||
for (let index = 0; index < offset && index < source.length; index += 1) {
|
||||
if (source.charCodeAt(index) === 10) {
|
||||
line += 1;
|
||||
}
|
||||
}
|
||||
return line;
|
||||
}
|
||||
|
||||
function parseDoubleQuotedString(raw: string): string {
|
||||
try {
|
||||
return JSON.parse(`"${raw}"`) as string;
|
||||
} catch {
|
||||
return raw;
|
||||
}
|
||||
}
|
||||
|
||||
function pushRawCopyFinding(
|
||||
findings: RawCopyFinding[],
|
||||
params: Omit<RawCopyFinding, "text"> & { text: string },
|
||||
) {
|
||||
const text = normalizeRawCopyText(params.text);
|
||||
if (!text || !hasHumanLetters(text)) {
|
||||
return;
|
||||
}
|
||||
findings.push({
|
||||
...params,
|
||||
text,
|
||||
});
|
||||
}
|
||||
|
||||
async function walkControlUiSourceFiles(dir: string): Promise<string[]> {
|
||||
const entries = await readdir(dir, { withFileTypes: true });
|
||||
const files: string[] = [];
|
||||
for (const entry of entries) {
|
||||
if (entry.name === "test-helpers") {
|
||||
continue;
|
||||
}
|
||||
const fullPath = path.join(dir, entry.name);
|
||||
if (entry.isDirectory()) {
|
||||
files.push(...(await walkControlUiSourceFiles(fullPath)));
|
||||
continue;
|
||||
}
|
||||
if (!entry.isFile() || !/\.tsx?$/u.test(entry.name)) {
|
||||
continue;
|
||||
}
|
||||
if (/\.(?:test|browser\.test|node\.test)\.tsx?$/u.test(entry.name)) {
|
||||
continue;
|
||||
}
|
||||
files.push(fullPath);
|
||||
}
|
||||
return files;
|
||||
}
|
||||
|
||||
function collectRawCopyFromSource(params: {
|
||||
filePath: string;
|
||||
source: string;
|
||||
sourceFile: ts.SourceFile;
|
||||
}): RawCopyFinding[] {
|
||||
const { filePath, source, sourceFile } = params;
|
||||
const repoPath = toRepoPath(filePath);
|
||||
const findings: RawCopyFinding[] = [];
|
||||
const attrPattern =
|
||||
/\b(aria-label|placeholder|title)\s*=\s*"((?:(?!\$\{)[^"\\]|\\.)*?\p{L}(?:(?!\$\{)[^"\\]|\\.)*?)"/gu;
|
||||
for (const match of source.matchAll(attrPattern)) {
|
||||
const rawText = match[2];
|
||||
if (!rawText) {
|
||||
continue;
|
||||
}
|
||||
pushRawCopyFinding(findings, {
|
||||
kind: "html-attribute",
|
||||
line: lineNumberForOffset(source, match.index ?? 0),
|
||||
name: match[1] ?? "attribute",
|
||||
path: repoPath,
|
||||
text: parseDoubleQuotedString(rawText),
|
||||
});
|
||||
}
|
||||
|
||||
const propertyPattern =
|
||||
/\b(label|title|subtitle|description|help|placeholder)\s*:\s*"((?:[^"\\]|\\.)*?\p{L}(?:[^"\\]|\\.)*?)"/gu;
|
||||
for (const match of source.matchAll(propertyPattern)) {
|
||||
const rawText = match[2];
|
||||
if (!rawText) {
|
||||
continue;
|
||||
}
|
||||
pushRawCopyFinding(findings, {
|
||||
kind: "object-property",
|
||||
line: lineNumberForOffset(source, match.index ?? 0),
|
||||
name: match[1] ?? "property",
|
||||
path: repoPath,
|
||||
text: parseDoubleQuotedString(rawText),
|
||||
});
|
||||
}
|
||||
|
||||
const textPattern = />\s*([^<>{}]*?\p{L}[^<>{}]*?)\s*</gu;
|
||||
const visit = (node: ts.Node) => {
|
||||
if (ts.isTaggedTemplateExpression(node) && node.tag.getText(sourceFile) === "html") {
|
||||
const template = node.template;
|
||||
const chunks: Array<{ offset: number; text: string }> = [];
|
||||
if (ts.isNoSubstitutionTemplateLiteral(template)) {
|
||||
chunks.push({
|
||||
offset: template.getStart(sourceFile) + 1,
|
||||
text: template.text,
|
||||
});
|
||||
} else {
|
||||
chunks.push({
|
||||
offset: template.head.getStart(sourceFile) + 1,
|
||||
text: template.head.text,
|
||||
});
|
||||
for (const span of template.templateSpans) {
|
||||
chunks.push({
|
||||
offset: span.literal.getStart(sourceFile) + 1,
|
||||
text: span.literal.text,
|
||||
});
|
||||
}
|
||||
}
|
||||
for (const chunk of chunks) {
|
||||
for (const match of chunk.text.matchAll(textPattern)) {
|
||||
const rawText = match[1];
|
||||
if (!rawText) {
|
||||
continue;
|
||||
}
|
||||
pushRawCopyFinding(findings, {
|
||||
kind: "html-text",
|
||||
line: lineNumberForOffset(source, chunk.offset + (match.index ?? 0)),
|
||||
name: "text",
|
||||
path: repoPath,
|
||||
text: rawText,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
ts.forEachChild(node, visit);
|
||||
};
|
||||
visit(sourceFile);
|
||||
|
||||
return findings;
|
||||
}
|
||||
|
||||
async function collectControlUiRawCopyFindings(): Promise<RawCopyFinding[]> {
|
||||
const files = await walkControlUiSourceFiles(CONTROL_UI_SOURCE_DIR);
|
||||
const findings: RawCopyFinding[] = [];
|
||||
for (const filePath of files.toSorted((left, right) => left.localeCompare(right))) {
|
||||
const source = await readFile(filePath, "utf8");
|
||||
const sourceFile = ts.createSourceFile(
|
||||
filePath,
|
||||
source,
|
||||
ts.ScriptTarget.Latest,
|
||||
true,
|
||||
filePath.endsWith(".tsx") ? ts.ScriptKind.TSX : ts.ScriptKind.TS,
|
||||
);
|
||||
findings.push(...collectRawCopyFromSource({ filePath, source, sourceFile }));
|
||||
}
|
||||
return findings;
|
||||
}
|
||||
|
||||
function summarizeRawCopyFindings(findings: RawCopyFinding[]): RawCopyBaselineEntry[] {
|
||||
const counts = new Map<string, RawCopyBaselineEntry>();
|
||||
for (const finding of findings) {
|
||||
const key = [finding.path, finding.kind, finding.name, finding.text].join("\u0000");
|
||||
const existing = counts.get(key);
|
||||
if (existing) {
|
||||
existing.count += 1;
|
||||
continue;
|
||||
}
|
||||
counts.set(key, {
|
||||
count: 1,
|
||||
kind: finding.kind,
|
||||
name: finding.name,
|
||||
path: finding.path,
|
||||
text: finding.text,
|
||||
});
|
||||
}
|
||||
return [...counts.values()].toSorted(
|
||||
(left, right) =>
|
||||
left.path.localeCompare(right.path) ||
|
||||
left.kind.localeCompare(right.kind) ||
|
||||
left.name.localeCompare(right.name) ||
|
||||
left.text.localeCompare(right.text),
|
||||
);
|
||||
}
|
||||
|
||||
function formatRawCopyBaseline(entries: RawCopyBaselineEntry[]): string {
|
||||
return `${JSON.stringify(
|
||||
{
|
||||
version: RAW_COPY_BASELINE_VERSION,
|
||||
entries,
|
||||
} satisfies RawCopyBaseline,
|
||||
null,
|
||||
2,
|
||||
)}\n`;
|
||||
}
|
||||
|
||||
function formatRawCopyBaselineDiff(
|
||||
current: RawCopyBaselineEntry[],
|
||||
expected: RawCopyBaselineEntry[],
|
||||
) {
|
||||
const keyFor = (entry: RawCopyBaselineEntry) =>
|
||||
[entry.path, entry.kind, entry.name, entry.text].join("\u0000");
|
||||
const currentByKey = new Map(current.map((entry) => [keyFor(entry), entry]));
|
||||
const expectedByKey = new Map(expected.map((entry) => [keyFor(entry), entry]));
|
||||
const added = current.filter((entry) => {
|
||||
const expectedEntry = expectedByKey.get(keyFor(entry));
|
||||
return !expectedEntry || expectedEntry.count !== entry.count;
|
||||
});
|
||||
const removed = expected.filter((entry) => {
|
||||
const currentEntry = currentByKey.get(keyFor(entry));
|
||||
return !currentEntry || currentEntry.count !== entry.count;
|
||||
});
|
||||
const lines: string[] = [];
|
||||
for (const entry of added.slice(0, 20)) {
|
||||
lines.push(
|
||||
`+ ${entry.path} ${entry.kind}:${entry.name} x${entry.count} ${JSON.stringify(entry.text)}`,
|
||||
);
|
||||
}
|
||||
for (const entry of removed.slice(0, 20)) {
|
||||
lines.push(
|
||||
`- ${entry.path} ${entry.kind}:${entry.name} x${entry.count} ${JSON.stringify(entry.text)}`,
|
||||
);
|
||||
}
|
||||
const extra = added.length + removed.length - lines.length;
|
||||
if (extra > 0) {
|
||||
lines.push(`... ${extra} more baseline delta(s)`);
|
||||
}
|
||||
return lines.join("\n");
|
||||
}
|
||||
|
||||
async function syncControlUiRawCopyBaseline(options: { checkOnly: boolean; write: boolean }) {
|
||||
const findings = await collectControlUiRawCopyFindings();
|
||||
const entries = summarizeRawCopyFindings(findings);
|
||||
const expected = formatRawCopyBaseline(entries);
|
||||
const current = existsSync(RAW_COPY_BASELINE_PATH)
|
||||
? await readFile(RAW_COPY_BASELINE_PATH, "utf8")
|
||||
: "";
|
||||
if (!options.checkOnly && options.write && current !== expected) {
|
||||
await mkdir(I18N_ASSETS_DIR, { recursive: true });
|
||||
await writeFile(RAW_COPY_BASELINE_PATH, expected, "utf8");
|
||||
}
|
||||
if (options.checkOnly && current !== expected) {
|
||||
let currentEntries: RawCopyBaselineEntry[] = [];
|
||||
try {
|
||||
const parsed = JSON.parse(current) as Partial<RawCopyBaseline>;
|
||||
currentEntries = Array.isArray(parsed.entries) ? parsed.entries : [];
|
||||
} catch {
|
||||
currentEntries = [];
|
||||
}
|
||||
const diff = formatRawCopyBaselineDiff(entries, currentEntries);
|
||||
throw new Error(
|
||||
[
|
||||
"control-ui raw-copy baseline drift detected.",
|
||||
diff,
|
||||
"Move user-facing strings into ui/src/i18n/locales/en.ts, or update the baseline with `node --import tsx scripts/control-ui-i18n.ts sync --write` when the raw string is intentional.",
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join("\n"),
|
||||
);
|
||||
}
|
||||
logProgress(`raw-copy: baseline entries=${entries.length}`);
|
||||
}
|
||||
|
||||
function isPromptTimeoutError(error: Error): boolean {
|
||||
return error.message.toLowerCase().includes("timed out");
|
||||
}
|
||||
@@ -1030,6 +1346,7 @@ async function syncLocale(
|
||||
const glossaryFilePath = glossaryPath(entry);
|
||||
const glossary = await loadGlossary(glossaryFilePath);
|
||||
const tm = await loadTranslationMemory(tmPath(entry));
|
||||
const tmByTextHash = buildTranslationMemoryByTextHash(tm, entry.locale);
|
||||
const allowTranslate = hasTranslationProvider();
|
||||
|
||||
const nextFlat = new Map<string, string>();
|
||||
@@ -1040,6 +1357,7 @@ async function syncLocale(
|
||||
const textHash = hashText(text);
|
||||
const segmentCacheKey = cacheKey(key, textHash, entry.locale);
|
||||
const cached = tm.get(segmentCacheKey);
|
||||
const cachedByText = tmByTextHash.get(textHash);
|
||||
const existing = existingFlat.get(key);
|
||||
const shouldRefreshFallback = previousFallbackKeys.has(key);
|
||||
|
||||
@@ -1051,6 +1369,17 @@ async function syncLocale(
|
||||
continue;
|
||||
}
|
||||
|
||||
if (cachedByText && (shouldRefreshFallback || existing === undefined)) {
|
||||
nextFlat.set(key, cachedByText.translated);
|
||||
tm.set(segmentCacheKey, {
|
||||
...cachedByText,
|
||||
cache_key: segmentCacheKey,
|
||||
segment_id: key,
|
||||
source_path: `ui/src/i18n/locales/${entry.fileName}`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
if (existing !== undefined && !(allowTranslate && shouldRefreshFallback)) {
|
||||
nextFlat.set(key, existing);
|
||||
if (shouldRefreshFallback) {
|
||||
@@ -1281,6 +1610,12 @@ async function verifyRuntimeLocaleConfig() {
|
||||
async function main() {
|
||||
const args = parseArgs(process.argv.slice(2));
|
||||
await verifyRuntimeLocaleConfig();
|
||||
if (args.command === "check" || (args.command === "sync" && args.write && !args.localeFilter)) {
|
||||
await syncControlUiRawCopyBaseline({
|
||||
checkOnly: args.command === "check",
|
||||
write: args.write,
|
||||
});
|
||||
}
|
||||
|
||||
const entries = args.localeFilter
|
||||
? LOCALE_ENTRIES.filter((entry) => entry.locale === args.localeFilter)
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:26:43.775Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:41.033Z",
|
||||
"locale": "ar",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:24:36.089Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:33.970Z",
|
||||
"locale": "de",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,109 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:25:04.646Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.next",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.thinking",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.unknown",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:35.408Z",
|
||||
"locale": "es",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 889,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:29:06.276Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:55.119Z",
|
||||
"locale": "fa",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:25:34.318Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:39.587Z",
|
||||
"locale": "fr",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:27:41.106Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:46.741Z",
|
||||
"locale": "id",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:26:51.753Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:42.451Z",
|
||||
"locale": "it",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:25:24.869Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:36.798Z",
|
||||
"locale": "ja-JP",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:25:40.100Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:38.201Z",
|
||||
"locale": "ko",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:28:57.177Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:53.618Z",
|
||||
"locale": "nl",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:27:39.429Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:48.420Z",
|
||||
"locale": "pl",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,107 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:24:26.140Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.defaultName",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:32.446Z",
|
||||
"locale": "pt-BR",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 891,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
4443
ui/src/i18n/.i18n/raw-copy-baseline.json
Normal file
4443
ui/src/i18n/.i18n/raw-copy-baseline.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:27:45.085Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:50.212Z",
|
||||
"locale": "th",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:26:27.062Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:43.889Z",
|
||||
"locale": "tr",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:26:42.042Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:45.305Z",
|
||||
"locale": "uk",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,106 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:28:22.314Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:51.949Z",
|
||||
"locale": "vi",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 892,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,110 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:08:28.139Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.next",
|
||||
"common.none",
|
||||
"cron.quickCreate.defaultName",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.thinking",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.unknown",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:29.270Z",
|
||||
"locale": "zh-CN",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 888,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -1,11 +1,107 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-04-29T19:24:31.857Z",
|
||||
"fallbackKeys": [
|
||||
"chat.commandPaletteTitle",
|
||||
"chat.dismissUpdateBanner",
|
||||
"chat.docsOpensInNewTab",
|
||||
"chat.gatewayStatus",
|
||||
"chat.openCommandPalette",
|
||||
"chat.runningVersion",
|
||||
"chat.settings",
|
||||
"chat.updateAvailable",
|
||||
"chat.updateNow",
|
||||
"chat.updating",
|
||||
"common.back",
|
||||
"common.colorMode",
|
||||
"common.colorModeOption",
|
||||
"common.copied",
|
||||
"common.copyCode",
|
||||
"common.create",
|
||||
"common.dark",
|
||||
"common.delete",
|
||||
"common.dismiss",
|
||||
"common.none",
|
||||
"cron.quickCreate.defaultName",
|
||||
"cron.quickCreate.delivery.isolated.description",
|
||||
"cron.quickCreate.delivery.isolated.label",
|
||||
"cron.quickCreate.delivery.notify.description",
|
||||
"cron.quickCreate.delivery.notify.label",
|
||||
"cron.quickCreate.delivery.silent.description",
|
||||
"cron.quickCreate.delivery.silent.label",
|
||||
"cron.quickCreate.howHeading",
|
||||
"cron.quickCreate.howHint",
|
||||
"cron.quickCreate.nameOptional",
|
||||
"cron.quickCreate.namePlaceholder",
|
||||
"cron.quickCreate.promptPlaceholder",
|
||||
"cron.quickCreate.schedules.everyEvening.description",
|
||||
"cron.quickCreate.schedules.everyEvening.label",
|
||||
"cron.quickCreate.schedules.everyMorning.description",
|
||||
"cron.quickCreate.schedules.everyMorning.label",
|
||||
"cron.quickCreate.schedules.hourly.description",
|
||||
"cron.quickCreate.schedules.hourly.label",
|
||||
"cron.quickCreate.schedules.once.description",
|
||||
"cron.quickCreate.schedules.once.label",
|
||||
"cron.quickCreate.schedules.weekdays.description",
|
||||
"cron.quickCreate.schedules.weekdays.label",
|
||||
"cron.quickCreate.schedules.weekly.description",
|
||||
"cron.quickCreate.schedules.weekly.label",
|
||||
"cron.quickCreate.steps.how",
|
||||
"cron.quickCreate.steps.what",
|
||||
"cron.quickCreate.steps.when",
|
||||
"cron.quickCreate.title",
|
||||
"cron.quickCreate.whatHeading",
|
||||
"cron.quickCreate.whatHint",
|
||||
"cron.quickCreate.whenHeading",
|
||||
"cron.quickCreate.whenHint",
|
||||
"sessionsView.autoThreshold",
|
||||
"sessionsView.branchFromCheckpoint",
|
||||
"sessionsView.checkpoint",
|
||||
"sessionsView.checkpoints",
|
||||
"sessionsView.compaction",
|
||||
"sessionsView.customOption",
|
||||
"sessionsView.defaultOption",
|
||||
"sessionsView.deleteSelected",
|
||||
"sessionsView.fast",
|
||||
"sessionsView.full",
|
||||
"sessionsView.global",
|
||||
"sessionsView.hideCheckpoints",
|
||||
"sessionsView.inherit",
|
||||
"sessionsView.key",
|
||||
"sessionsView.kind",
|
||||
"sessionsView.label",
|
||||
"sessionsView.limit",
|
||||
"sessionsView.loadingCheckpoints",
|
||||
"sessionsView.manual",
|
||||
"sessionsView.minutesPlaceholder",
|
||||
"sessionsView.noCheckpoints",
|
||||
"sessionsView.noSessions",
|
||||
"sessionsView.noSummary",
|
||||
"sessionsView.offExplicit",
|
||||
"sessionsView.on",
|
||||
"sessionsView.optionalPlaceholder",
|
||||
"sessionsView.overflowRetry",
|
||||
"sessionsView.reasoning",
|
||||
"sessionsView.restoreCheckpoint",
|
||||
"sessionsView.searchPlaceholder",
|
||||
"sessionsView.selectAllOnPage",
|
||||
"sessionsView.selected",
|
||||
"sessionsView.selectSession",
|
||||
"sessionsView.showCheckpoints",
|
||||
"sessionsView.store",
|
||||
"sessionsView.stream",
|
||||
"sessionsView.subtitle",
|
||||
"sessionsView.timeoutRetry",
|
||||
"sessionsView.tokenDeltaUnavailable",
|
||||
"sessionsView.tokenRange",
|
||||
"sessionsView.tokensBefore",
|
||||
"sessionsView.updated",
|
||||
"sessionsView.verbose"
|
||||
],
|
||||
"generatedAt": "2026-04-29T19:56:30.746Z",
|
||||
"locale": "zh-TW",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a6a1060fe4eda88e0261e78c7c635df6e579a56cc539595a331da79dc7ca832b",
|
||||
"totalKeys": 881,
|
||||
"translatedKeys": 881,
|
||||
"sourceHash": "c7d0317c304e6a9d3505e9058a0a0aeb2a3a0eb1fc45d31d12b2602be4cbddcf",
|
||||
"totalKeys": 986,
|
||||
"translatedKeys": 891,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
@@ -21,15 +21,27 @@ export const ar: TranslationMap = {
|
||||
call: "اتصال",
|
||||
confirm: "تأكيد",
|
||||
cancel: "إلغاء",
|
||||
next: "التالي",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "نسخ",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "إلغاء التحديد",
|
||||
enabled: "مفعّل",
|
||||
disabled: "معطّل",
|
||||
none: "none",
|
||||
na: "غير متوفر",
|
||||
never: "أبدًا",
|
||||
configured: "مهيأ",
|
||||
running: "قيد التشغيل",
|
||||
linked: "مرتبط",
|
||||
mode: "الوضع",
|
||||
system: "النظام",
|
||||
light: "خفيف",
|
||||
dark: "Dark",
|
||||
baseUrl: "عنوان URL الأساسي",
|
||||
lastStart: "آخر بدء",
|
||||
lastProbe: "آخر فحص",
|
||||
@@ -49,6 +61,8 @@ export const ar: TranslationMap = {
|
||||
version: "الإصدار",
|
||||
docs: "المستندات",
|
||||
theme: "السمة",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "الموارد",
|
||||
search: "بحث",
|
||||
save: "حفظ",
|
||||
@@ -139,6 +153,57 @@ export const ar: TranslationMap = {
|
||||
lastInput: "آخر إدخال {time}",
|
||||
reason: "السبب {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "الجلسات",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "نشط",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "غير معروف",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "الرموز",
|
||||
compaction: "Compaction",
|
||||
thinking: "التفكير",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "متوقف",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "لا توجد وكلاء",
|
||||
copyId: "نسخ المعرّف",
|
||||
@@ -823,6 +888,7 @@ export const ar: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "تم قطع الاتصال بـ Gateway.",
|
||||
refreshTitle: "تحديث بيانات الدردشة",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "تبديل مخرجات تفكير/عمل المساعد",
|
||||
toolCallsToggle: "تبديل استدعاءات الأدوات ونتائج الأدوات",
|
||||
focusToggle: "تبديل وضع التركيز (إخفاء الشريط الجانبي + رأس الصفحة)",
|
||||
@@ -830,6 +896,15 @@ export const ar: TranslationMap = {
|
||||
showCronSessions: "إظهار جلسات cron",
|
||||
showCronSessionsHidden: "إظهار جلسات cron ({count} مخفية)",
|
||||
onboardingDisabled: "معطل أثناء الإعداد",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "English (الإنجليزية)",
|
||||
@@ -853,6 +928,64 @@ export const ar: TranslationMap = {
|
||||
fa: "فارسی (الفارسية)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "الأتمتة",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "مفعّل",
|
||||
yes: "نعم",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const de: TranslationMap = {
|
||||
connected: "Verbunden",
|
||||
refresh: "Aktualisieren",
|
||||
reload: "Neu laden",
|
||||
reset: "Reset",
|
||||
reset: "Zurücksetzen",
|
||||
probe: "Prüfen",
|
||||
call: "Anrufen",
|
||||
confirm: "Bestätigen",
|
||||
cancel: "Abbrechen",
|
||||
next: "Nächste",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Kopieren",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Auswahl aufheben",
|
||||
enabled: "Aktiviert",
|
||||
disabled: "Deaktiviert",
|
||||
none: "none",
|
||||
na: "k. A.",
|
||||
never: "never",
|
||||
configured: "Konfiguriert",
|
||||
running: "Wird ausgeführt",
|
||||
linked: "Verknüpft",
|
||||
mode: "Modus",
|
||||
system: "System",
|
||||
light: "Leicht",
|
||||
dark: "Dark",
|
||||
baseUrl: "Basis-URL",
|
||||
lastStart: "Letzter Start",
|
||||
lastProbe: "Letzte Prüfung",
|
||||
@@ -49,6 +61,8 @@ export const de: TranslationMap = {
|
||||
version: "Version",
|
||||
docs: "Dokumentation",
|
||||
theme: "Design",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Ressourcen",
|
||||
search: "Suchen",
|
||||
save: "Speichern",
|
||||
@@ -143,6 +157,57 @@ export const de: TranslationMap = {
|
||||
lastInput: "Letzte Eingabe {time}",
|
||||
reason: "Grund {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sitzungen",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Aktiv",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Unbekannt",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Tokens",
|
||||
compaction: "Compaction",
|
||||
thinking: "Denken",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "aus",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -155,7 +220,7 @@ export const de: TranslationMap = {
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
files: "Dateien",
|
||||
tools: "Tools",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
@@ -191,7 +256,7 @@ export const de: TranslationMap = {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
nextWake: "Nächstes Aufwachen",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -239,7 +304,7 @@ export const de: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "Ausführen",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -249,7 +314,7 @@ export const de: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "Ereignisprotokoll",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -265,7 +330,7 @@ export const de: TranslationMap = {
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
session: "Sitzung",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -298,7 +363,7 @@ export const de: TranslationMap = {
|
||||
sessions: "Sitzungen",
|
||||
usage: "Nutzung",
|
||||
cron: "Cron-Aufgaben",
|
||||
skills: "Fähigkeiten",
|
||||
skills: "Skills",
|
||||
nodes: "Geräte",
|
||||
chat: "Chat",
|
||||
config: "Konfiguration",
|
||||
@@ -349,7 +414,7 @@ export const de: TranslationMap = {
|
||||
toggleTokenVisibility: "Token-Sichtbarkeit umschalten",
|
||||
showPassword: "Passwort anzeigen",
|
||||
hidePassword: "Passwort ausblenden",
|
||||
togglePasswordVisibility: "Passwort-Sichtbarkeit umschalten",
|
||||
togglePasswordVisibility: "Sichtbarkeit des Passworts umschalten",
|
||||
},
|
||||
snapshot: {
|
||||
title: "Aufnahme",
|
||||
@@ -829,7 +894,7 @@ export const de: TranslationMap = {
|
||||
passwordPlaceholder: "optional",
|
||||
showToken: "Token anzeigen",
|
||||
hideToken: "Token ausblenden",
|
||||
toggleTokenVisibility: "Sichtbarkeit des Tokens umschalten",
|
||||
toggleTokenVisibility: "Token-Sichtbarkeit umschalten",
|
||||
showPassword: "Passwort anzeigen",
|
||||
hidePassword: "Passwort ausblenden",
|
||||
togglePasswordVisibility: "Sichtbarkeit des Passworts umschalten",
|
||||
@@ -837,6 +902,7 @@ export const de: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Verbindung zum Gateway getrennt.",
|
||||
refreshTitle: "Chat-Daten aktualisieren",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Ausgabe des Assistenten ein-/ausblenden",
|
||||
toolCallsToggle: "Tool-Aufrufe und Tool-Ergebnisse umschalten",
|
||||
focusToggle: "Fokusmodus ein-/ausschalten (Seitenleiste + Kopfzeile ausblenden)",
|
||||
@@ -844,6 +910,15 @@ export const de: TranslationMap = {
|
||||
showCronSessions: "Cron-Sitzungen anzeigen",
|
||||
showCronSessionsHidden: "Cron-Sitzungen anzeigen ({count} ausgeblendet)",
|
||||
onboardingDisabled: "Während der Einrichtung deaktiviert",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "Englisch",
|
||||
@@ -867,6 +942,64 @@ export const de: TranslationMap = {
|
||||
fa: "فارسی (Persisch)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automatisierung",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Aktiviert",
|
||||
yes: "Ja",
|
||||
|
||||
@@ -20,15 +20,27 @@ export const en: TranslationMap = {
|
||||
call: "Call",
|
||||
confirm: "Confirm",
|
||||
cancel: "Cancel",
|
||||
next: "Next",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Copy",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Unselect",
|
||||
enabled: "Enabled",
|
||||
disabled: "Disabled",
|
||||
none: "none",
|
||||
na: "n/a",
|
||||
never: "never",
|
||||
configured: "Configured",
|
||||
running: "Running",
|
||||
linked: "Linked",
|
||||
mode: "Mode",
|
||||
system: "System",
|
||||
light: "Light",
|
||||
dark: "Dark",
|
||||
baseUrl: "Base URL",
|
||||
lastStart: "Last start",
|
||||
lastProbe: "Last probe",
|
||||
@@ -48,6 +60,8 @@ export const en: TranslationMap = {
|
||||
version: "Version",
|
||||
docs: "Docs",
|
||||
theme: "Theme",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Resources",
|
||||
search: "Search",
|
||||
save: "Save",
|
||||
@@ -138,6 +152,57 @@ export const en: TranslationMap = {
|
||||
lastInput: "Last input {time}",
|
||||
reason: "Reason {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sessions",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Active",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Unknown",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Tokens",
|
||||
compaction: "Compaction",
|
||||
thinking: "Thinking",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "off",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -825,6 +890,7 @@ export const en: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Disconnected from gateway.",
|
||||
refreshTitle: "Refresh chat data",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Toggle assistant thinking/working output",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "Toggle focus mode (hide sidebar + page header)",
|
||||
@@ -832,6 +898,15 @@ export const en: TranslationMap = {
|
||||
showCronSessions: "Show cron sessions",
|
||||
showCronSessionsHidden: "Show cron sessions ({count} hidden)",
|
||||
onboardingDisabled: "Disabled during setup",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
@@ -855,6 +930,64 @@ export const en: TranslationMap = {
|
||||
fa: "فارسی (Persian)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automation",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Enabled",
|
||||
yes: "Yes",
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { TranslationMap } from "../lib/types.ts";
|
||||
export const es: TranslationMap = {
|
||||
common: {
|
||||
health: "Estado",
|
||||
ok: "Correcto",
|
||||
ok: "OK",
|
||||
yes: "Sí",
|
||||
no: "No",
|
||||
active: "Activo",
|
||||
@@ -16,20 +16,32 @@ export const es: TranslationMap = {
|
||||
connected: "Conectado",
|
||||
refresh: "Actualizar",
|
||||
reload: "Recargar",
|
||||
reset: "Reset",
|
||||
reset: "Restablecer",
|
||||
probe: "Probar",
|
||||
call: "Llamada",
|
||||
confirm: "Confirmar",
|
||||
cancel: "Cancelar",
|
||||
next: "Next",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Copiar",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Deseleccionar",
|
||||
enabled: "Habilitado",
|
||||
disabled: "Deshabilitado",
|
||||
none: "none",
|
||||
na: "n/d",
|
||||
never: "never",
|
||||
configured: "Configurado",
|
||||
running: "En ejecución",
|
||||
linked: "Vinculado",
|
||||
mode: "Modo",
|
||||
system: "Sistema",
|
||||
light: "Ligero",
|
||||
dark: "Dark",
|
||||
baseUrl: "URL base",
|
||||
lastStart: "Último inicio",
|
||||
lastProbe: "Última prueba",
|
||||
@@ -49,6 +61,8 @@ export const es: TranslationMap = {
|
||||
version: "Versión",
|
||||
docs: "Documentación",
|
||||
theme: "Tema",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Recursos",
|
||||
search: "Buscar",
|
||||
save: "Guardar",
|
||||
@@ -140,6 +154,57 @@ export const es: TranslationMap = {
|
||||
lastInput: "Última entrada {time}",
|
||||
reason: "Motivo {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sesiones",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Activo",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Unknown",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Tokens",
|
||||
compaction: "Compaction",
|
||||
thinking: "Thinking",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "apagado",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -152,8 +217,8 @@ export const es: TranslationMap = {
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
files: "Archivos",
|
||||
tools: "Herramientas",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
@@ -246,7 +311,7 @@ export const es: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "Registro de eventos",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -261,8 +326,8 @@ export const es: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "Agente",
|
||||
session: "Sesión",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -295,7 +360,7 @@ export const es: TranslationMap = {
|
||||
sessions: "Sesiones",
|
||||
usage: "Uso",
|
||||
cron: "Tareas Cron",
|
||||
skills: "Habilidades",
|
||||
skills: "Skills",
|
||||
nodes: "Nodos",
|
||||
chat: "Chat",
|
||||
config: "Configuración",
|
||||
@@ -635,7 +700,7 @@ export const es: TranslationMap = {
|
||||
clear: "Borrar",
|
||||
clearAll: "Borrar todo",
|
||||
remove: "Quitar filtro",
|
||||
all: "Todos",
|
||||
all: "Todas",
|
||||
days: "Días",
|
||||
hours: "Horas",
|
||||
session: "Sesión",
|
||||
@@ -836,6 +901,7 @@ export const es: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Desconectado de la puerta de enlace.",
|
||||
refreshTitle: "Actualizar datos del chat",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Alternar salida de pensamiento/trabajo del asistente",
|
||||
toolCallsToggle: "Alternar llamadas a herramientas y resultados de herramientas",
|
||||
focusToggle: "Alternar modo de enfoque (ocultar barra lateral + cabecera)",
|
||||
@@ -843,6 +909,15 @@ export const es: TranslationMap = {
|
||||
showCronSessions: "Mostrar sesiones de cron",
|
||||
showCronSessionsHidden: "Mostrar sesiones de cron ({count} ocultas)",
|
||||
onboardingDisabled: "Deshabilitado durante el inicio guiado",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "Inglés (English)",
|
||||
@@ -866,6 +941,64 @@ export const es: TranslationMap = {
|
||||
fa: "فارسی (persa)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automatización",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Habilitado",
|
||||
yes: "Sí",
|
||||
@@ -910,7 +1043,7 @@ export const es: TranslationMap = {
|
||||
oldestFirst: "Más antiguas primero",
|
||||
status: "Estado",
|
||||
delivery: "Entrega",
|
||||
clear: "Limpiar",
|
||||
clear: "Borrar",
|
||||
allStatuses: "Todos los estados",
|
||||
allDelivery: "Todas las entregas",
|
||||
selectJobHint: "Selecciona una tarea para ver su historial de ejecuciones.",
|
||||
|
||||
@@ -21,15 +21,27 @@ export const fa: TranslationMap = {
|
||||
call: "فراخوانی",
|
||||
confirm: "تأیید",
|
||||
cancel: "لغو",
|
||||
next: "بعدی",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "کپی",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "لغو انتخاب",
|
||||
enabled: "فعال",
|
||||
disabled: "غیرفعال",
|
||||
none: "none",
|
||||
na: "n/a",
|
||||
never: "هرگز",
|
||||
configured: "پیکربندیشده",
|
||||
running: "در حال اجرا",
|
||||
linked: "پیوندشده",
|
||||
mode: "حالت",
|
||||
system: "سیستم",
|
||||
light: "سبک",
|
||||
dark: "Dark",
|
||||
baseUrl: "URL پایه",
|
||||
lastStart: "آخرین شروع",
|
||||
lastProbe: "آخرین بررسی",
|
||||
@@ -49,6 +61,8 @@ export const fa: TranslationMap = {
|
||||
version: "نسخه",
|
||||
docs: "مستندات",
|
||||
theme: "پوسته",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "منابع",
|
||||
search: "جستجو",
|
||||
save: "ذخیره",
|
||||
@@ -141,6 +155,57 @@ export const fa: TranslationMap = {
|
||||
lastInput: "آخرین ورودی {time}",
|
||||
reason: "دلیل {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "نشستها",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "فعال",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "نامشخص",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "توکنها",
|
||||
compaction: "Compaction",
|
||||
thinking: "تفکر",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "خاموش",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "هیچ عاملی وجود ندارد",
|
||||
copyId: "کپی شناسه",
|
||||
@@ -832,6 +897,7 @@ export const fa: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "اتصال از Gateway قطع شد.",
|
||||
refreshTitle: "تازهسازی دادههای چت",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "تغییر وضعیت خروجی فکر/کار دستیار",
|
||||
toolCallsToggle: "تغییر وضعیت نمایش فراخوانیهای ابزار و نتایج ابزار",
|
||||
focusToggle: "تغییر وضعیت حالت تمرکز (پنهان کردن نوار کناری + سرصفحه صفحه)",
|
||||
@@ -839,6 +905,15 @@ export const fa: TranslationMap = {
|
||||
showCronSessions: "نمایش نشستهای cron",
|
||||
showCronSessionsHidden: "نمایش نشستهای cron ({count} پنهان)",
|
||||
onboardingDisabled: "در طول راهاندازی غیرفعال است",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "English (انگلیسی)",
|
||||
@@ -862,6 +937,64 @@ export const fa: TranslationMap = {
|
||||
fa: "فارسی",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "اتوماسیون",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "فعال",
|
||||
yes: "بله",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const fr: TranslationMap = {
|
||||
connected: "Connecté",
|
||||
refresh: "Actualiser",
|
||||
reload: "Recharger",
|
||||
reset: "Reset",
|
||||
reset: "Réinitialiser",
|
||||
probe: "Sonder",
|
||||
call: "Appeler",
|
||||
confirm: "Confirmer",
|
||||
cancel: "Annuler",
|
||||
next: "Prochaine",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Copier",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Désélectionner",
|
||||
enabled: "Activé",
|
||||
disabled: "Désactivé",
|
||||
none: "none",
|
||||
na: "n/d",
|
||||
never: "never",
|
||||
configured: "Configuré",
|
||||
running: "En cours d’exécution",
|
||||
linked: "Lié",
|
||||
mode: "Mode",
|
||||
system: "Système",
|
||||
light: "Léger",
|
||||
dark: "Dark",
|
||||
baseUrl: "URL de base",
|
||||
lastStart: "Dernier démarrage",
|
||||
lastProbe: "Dernière sonde",
|
||||
@@ -49,6 +61,8 @@ export const fr: TranslationMap = {
|
||||
version: "Version",
|
||||
docs: "Documentation",
|
||||
theme: "Thème",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Ressources",
|
||||
search: "Rechercher",
|
||||
save: "Enregistrer",
|
||||
@@ -142,6 +156,57 @@ export const fr: TranslationMap = {
|
||||
lastInput: "Dernière entrée {time}",
|
||||
reason: "Raison {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sessions",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Actif",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Inconnu",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Jetons",
|
||||
compaction: "Compaction",
|
||||
thinking: "Réflexion",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "désactivé",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -153,12 +218,12 @@ export const fr: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
overview: "Aperçu",
|
||||
files: "Fichiers",
|
||||
tools: "Outils",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
channels: "Canaux",
|
||||
cronJobs: "Tâches cron",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -174,7 +239,7 @@ export const fr: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "Canaux",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -189,8 +254,8 @@ export const fr: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "Tâches",
|
||||
nextWake: "Prochain réveil",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -229,8 +294,8 @@ export const fr: TranslationMap = {
|
||||
debug: {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
status: "Statut",
|
||||
health: "Santé",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -238,7 +303,7 @@ export const fr: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "Exécuter",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -248,7 +313,7 @@ export const fr: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "Journal des événements",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -458,12 +523,12 @@ export const fr: TranslationMap = {
|
||||
placeholder: "Saisissez une commande…",
|
||||
noResults: "Aucun résultat",
|
||||
categories: {
|
||||
search: "Recherche",
|
||||
search: "Rechercher",
|
||||
navigation: "Navigation",
|
||||
skills: "Skills",
|
||||
},
|
||||
items: {
|
||||
overview: "Vue d’ensemble",
|
||||
overview: "Aperçu",
|
||||
sessions: "Sessions",
|
||||
scheduled: "Planifié",
|
||||
skills: "Skills",
|
||||
@@ -516,7 +581,7 @@ export const fr: TranslationMap = {
|
||||
reset: "Réinitialiser",
|
||||
clearGrounded: "Effacer les éléments ancrés",
|
||||
repairCache: "Réparer le cache des rêves",
|
||||
working: "En cours…",
|
||||
working: "Traitement…",
|
||||
},
|
||||
phase: {
|
||||
light: "Léger",
|
||||
@@ -746,7 +811,7 @@ export const fr: TranslationMap = {
|
||||
shown: "{count} affichées",
|
||||
total: "{count} au total",
|
||||
avg: "moy.",
|
||||
all: "Toutes",
|
||||
all: "Tous",
|
||||
recent: "Consultées récemment",
|
||||
recentShort: "Récentes",
|
||||
sort: "Trier",
|
||||
@@ -830,14 +895,15 @@ export const fr: TranslationMap = {
|
||||
passwordPlaceholder: "facultatif",
|
||||
showToken: "Afficher le jeton",
|
||||
hideToken: "Masquer le jeton",
|
||||
toggleTokenVisibility: "Afficher/masquer la visibilité du jeton",
|
||||
toggleTokenVisibility: "Basculer la visibilité du jeton",
|
||||
showPassword: "Afficher le mot de passe",
|
||||
hidePassword: "Masquer le mot de passe",
|
||||
togglePasswordVisibility: "Afficher/masquer la visibilité du mot de passe",
|
||||
togglePasswordVisibility: "Basculer la visibilité du mot de passe",
|
||||
},
|
||||
chat: {
|
||||
disconnected: "Déconnecté du Gateway.",
|
||||
refreshTitle: "Actualiser les données du chat",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Afficher/masquer la sortie de réflexion/travail de l’assistant",
|
||||
toolCallsToggle: "Afficher/masquer les appels d’outil et les résultats d’outil",
|
||||
focusToggle: "Activer/désactiver le mode focus (masquer la barre latérale + l’en-tête de page)",
|
||||
@@ -845,6 +911,15 @@ export const fr: TranslationMap = {
|
||||
showCronSessions: "Afficher les sessions cron",
|
||||
showCronSessionsHidden: "Afficher les sessions cron ({count} masquées)",
|
||||
onboardingDisabled: "Désactivé pendant la configuration",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "Anglais",
|
||||
@@ -868,6 +943,64 @@ export const fr: TranslationMap = {
|
||||
fa: "فارسی (persan)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automatisation",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Activé",
|
||||
yes: "Oui",
|
||||
@@ -886,7 +1019,7 @@ export const fr: TranslationMap = {
|
||||
enabled: "Activé",
|
||||
schedule: "Planification",
|
||||
lastRun: "Dernière exécution",
|
||||
all: "Toutes",
|
||||
all: "Tous",
|
||||
sort: "Trier",
|
||||
nextRun: "Prochaine exécution",
|
||||
recentlyUpdated: "Récemment mises à jour",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const id: TranslationMap = {
|
||||
connected: "Terhubung",
|
||||
refresh: "Muat ulang",
|
||||
reload: "Muat ulang",
|
||||
reset: "Reset",
|
||||
reset: "Atur Ulang",
|
||||
probe: "Probe",
|
||||
call: "Panggil",
|
||||
confirm: "Konfirmasi",
|
||||
cancel: "Batal",
|
||||
next: "Berikutnya",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Salin",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Batalkan pilihan",
|
||||
enabled: "Diaktifkan",
|
||||
disabled: "Dinonaktifkan",
|
||||
none: "none",
|
||||
na: "t/a",
|
||||
never: "never",
|
||||
configured: "Dikonfigurasi",
|
||||
running: "Berjalan",
|
||||
linked: "Ditautkan",
|
||||
mode: "Mode",
|
||||
system: "Sistem",
|
||||
light: "Ringan",
|
||||
dark: "Dark",
|
||||
baseUrl: "URL Dasar",
|
||||
lastStart: "Terakhir dimulai",
|
||||
lastProbe: "Probe terakhir",
|
||||
@@ -49,6 +61,8 @@ export const id: TranslationMap = {
|
||||
version: "Versi",
|
||||
docs: "Dokumen",
|
||||
theme: "Tema",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Sumber daya",
|
||||
search: "Cari",
|
||||
save: "Simpan",
|
||||
@@ -60,7 +74,7 @@ export const id: TranslationMap = {
|
||||
hideAdvanced: "Sembunyikan Lanjutan",
|
||||
unsavedChanges: "Anda memiliki perubahan yang belum disimpan",
|
||||
secondsAgo: "{count} dtk lalu",
|
||||
working: "Memproses…",
|
||||
working: "Sedang bekerja…",
|
||||
showQr: "Tampilkan QR",
|
||||
relink: "Tautkan ulang",
|
||||
waitForScan: "Tunggu pemindaian",
|
||||
@@ -140,6 +154,57 @@ export const id: TranslationMap = {
|
||||
lastInput: "Input terakhir {time}",
|
||||
reason: "Alasan {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sesi",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Aktif",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Tidak diketahui",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Token",
|
||||
compaction: "Compaction",
|
||||
thinking: "Thinking",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "nonaktif",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -151,12 +216,12 @@ export const id: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
overview: "Ikhtisar",
|
||||
files: "File",
|
||||
tools: "Alat",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
channels: "Saluran",
|
||||
cronJobs: "Tugas Cron",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -172,7 +237,7 @@ export const id: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "Saluran",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -187,8 +252,8 @@ export const id: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "Tugas",
|
||||
nextWake: "Bangun berikutnya",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -228,7 +293,7 @@ export const id: TranslationMap = {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
health: "Kesehatan",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -236,7 +301,7 @@ export const id: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "Jalankan",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -246,7 +311,7 @@ export const id: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "Log Peristiwa",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -261,8 +326,8 @@ export const id: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "Agen",
|
||||
session: "Sesi",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -486,7 +551,7 @@ export const id: TranslationMap = {
|
||||
advanced: "Lanjutan",
|
||||
},
|
||||
header: {
|
||||
refresh: "Segarkan",
|
||||
refresh: "Muat ulang",
|
||||
refreshing: "Menyegarkan…",
|
||||
on: "Dreaming Aktif",
|
||||
off: "Dreaming Nonaktif",
|
||||
@@ -509,7 +574,7 @@ export const id: TranslationMap = {
|
||||
scene: {
|
||||
backfill: "Isi ulang",
|
||||
dedupeDiary: "Buku Harian Dedupe",
|
||||
reset: "Setel ulang",
|
||||
reset: "Atur Ulang",
|
||||
clearGrounded: "Hapus yang Ditahankan",
|
||||
repairCache: "Perbaiki Cache Mimpi",
|
||||
working: "Sedang bekerja…",
|
||||
@@ -765,7 +830,7 @@ export const id: TranslationMap = {
|
||||
noTimeline: "Tidak ada data linimasa",
|
||||
noDataInRange: "Tidak ada data dalam rentang",
|
||||
usageOverTime: "Penggunaan dari Waktu ke Waktu",
|
||||
reset: "Reset",
|
||||
reset: "Atur Ulang",
|
||||
perTurn: "Per Giliran",
|
||||
cumulative: "Kumulatif",
|
||||
turnRange: "Giliran {start}–{end} dari {total}",
|
||||
@@ -831,6 +896,7 @@ export const id: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Terputus dari gateway.",
|
||||
refreshTitle: "Refresh data chat",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Alihkan output berpikir/bekerja asisten",
|
||||
toolCallsToggle: "Alihkan panggilan alat dan hasil alat",
|
||||
focusToggle: "Alihkan mode fokus (sembunyikan bilah samping + header halaman)",
|
||||
@@ -838,6 +904,15 @@ export const id: TranslationMap = {
|
||||
showCronSessions: "Tampilkan sesi cron",
|
||||
showCronSessionsHidden: "Tampilkan sesi cron ({count} disembunyikan)",
|
||||
onboardingDisabled: "Dinonaktifkan selama penyiapan",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "Inggris",
|
||||
@@ -861,6 +936,64 @@ export const id: TranslationMap = {
|
||||
fa: "فارسی (Persia)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Otomatisasi",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Diaktifkan",
|
||||
yes: "Ya",
|
||||
@@ -1046,7 +1179,7 @@ export const id: TranslationMap = {
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "Tidak ada ringkasan.",
|
||||
runAt: "Dijalankan pada",
|
||||
runAt: "Jalankan pada",
|
||||
openRunChat: "Buka chat proses",
|
||||
next: "Berikutnya {rel}",
|
||||
due: "Jatuh tempo {rel}",
|
||||
|
||||
@@ -21,15 +21,27 @@ export const it: TranslationMap = {
|
||||
call: "Chiama",
|
||||
confirm: "Conferma",
|
||||
cancel: "Annulla",
|
||||
next: "Prossimo",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Copia",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Deseleziona",
|
||||
enabled: "Abilitato",
|
||||
disabled: "Disabilitato",
|
||||
none: "none",
|
||||
na: "n/d",
|
||||
never: "mai",
|
||||
configured: "Configurato",
|
||||
running: "In esecuzione",
|
||||
linked: "Collegato",
|
||||
mode: "Modalità",
|
||||
system: "Sistema",
|
||||
light: "Leggera",
|
||||
dark: "Dark",
|
||||
baseUrl: "URL di base",
|
||||
lastStart: "Ultimo avvio",
|
||||
lastProbe: "Ultimo probe",
|
||||
@@ -49,6 +61,8 @@ export const it: TranslationMap = {
|
||||
version: "Versione",
|
||||
docs: "Docs",
|
||||
theme: "Tema",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Risorse",
|
||||
search: "Cerca",
|
||||
save: "Salva",
|
||||
@@ -140,6 +154,57 @@ export const it: TranslationMap = {
|
||||
lastInput: "Ultimo input {time}",
|
||||
reason: "Motivo {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sessioni",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Attivo",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Sconosciuto",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Token",
|
||||
compaction: "Compaction",
|
||||
thinking: "Thinking",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "off",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "Nessun agente",
|
||||
copyId: "Copia ID",
|
||||
@@ -836,6 +901,7 @@ export const it: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Disconnesso dal gateway.",
|
||||
refreshTitle: "Aggiorna dati chat",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Attiva/disattiva output di pensiero/elaborazione dell'assistente",
|
||||
toolCallsToggle: "Attiva/disattiva chiamate agli strumenti e risultati strumenti",
|
||||
focusToggle: "Attiva/disattiva modalità focus (nascondi barra laterale + intestazione pagina)",
|
||||
@@ -843,6 +909,15 @@ export const it: TranslationMap = {
|
||||
showCronSessions: "Mostra sessioni cron",
|
||||
showCronSessionsHidden: "Mostra sessioni cron ({count} nascoste)",
|
||||
onboardingDisabled: "Disabilitato durante la configurazione",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "English (Inglese)",
|
||||
@@ -866,6 +941,64 @@ export const it: TranslationMap = {
|
||||
fa: "فارسی (Persiano)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automazione",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Abilitato",
|
||||
yes: "Sì",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const ja_JP: TranslationMap = {
|
||||
connected: "接続済み",
|
||||
refresh: "更新",
|
||||
reload: "再読み込み",
|
||||
reset: "Reset",
|
||||
reset: "リセット",
|
||||
probe: "プローブ",
|
||||
call: "通話",
|
||||
confirm: "確認",
|
||||
cancel: "キャンセル",
|
||||
next: "次回",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "コピー",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "選択解除",
|
||||
enabled: "有効",
|
||||
disabled: "無効",
|
||||
none: "none",
|
||||
na: "n/a",
|
||||
never: "never",
|
||||
configured: "設定済み",
|
||||
running: "実行中",
|
||||
linked: "リンク済み",
|
||||
mode: "モード",
|
||||
system: "システム",
|
||||
light: "浅い",
|
||||
dark: "Dark",
|
||||
baseUrl: "ベース URL",
|
||||
lastStart: "前回の起動",
|
||||
lastProbe: "前回のプローブ",
|
||||
@@ -49,6 +61,8 @@ export const ja_JP: TranslationMap = {
|
||||
version: "バージョン",
|
||||
docs: "ドキュメント",
|
||||
theme: "テーマ",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "リソース",
|
||||
search: "検索",
|
||||
save: "保存",
|
||||
@@ -91,7 +105,7 @@ export const ja_JP: TranslationMap = {
|
||||
name: "名前",
|
||||
displayName: "表示名",
|
||||
about: "概要",
|
||||
advanced: "詳細設定",
|
||||
advanced: "詳細",
|
||||
profilePicturePreview: "プロフィール画像のプレビュー",
|
||||
account: "アカウント",
|
||||
username: "ユーザー名",
|
||||
@@ -143,6 +157,57 @@ export const ja_JP: TranslationMap = {
|
||||
lastInput: "最後の入力 {time}",
|
||||
reason: "理由 {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "セッション",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "有効",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "不明",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "トークン",
|
||||
compaction: "Compaction",
|
||||
thinking: "Thinking",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "オフ",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -154,12 +219,12 @@ export const ja_JP: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
overview: "概要",
|
||||
files: "ファイル",
|
||||
tools: "ツール",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
channels: "チャンネル",
|
||||
cronJobs: "Cron ジョブ",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -175,7 +240,7 @@ export const ja_JP: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "チャンネル",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -190,8 +255,8 @@ export const ja_JP: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "ジョブ",
|
||||
nextWake: "次回のウェイク",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -230,8 +295,8 @@ export const ja_JP: TranslationMap = {
|
||||
debug: {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
status: "ステータス",
|
||||
health: "健全性",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -239,7 +304,7 @@ export const ja_JP: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "実行",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -249,7 +314,7 @@ export const ja_JP: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "イベントログ",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -264,8 +329,8 @@ export const ja_JP: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "エージェント",
|
||||
session: "セッション",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -278,7 +343,7 @@ export const ja_JP: TranslationMap = {
|
||||
connectedSource: "接続済み: {id}",
|
||||
connected: "接続済み",
|
||||
channelSource: "チャネル: {id}",
|
||||
channel: "チャネル",
|
||||
channel: "チャンネル",
|
||||
builtIn: "組み込み",
|
||||
},
|
||||
nav: {
|
||||
@@ -834,6 +899,7 @@ export const ja_JP: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Gateway から切断されました。",
|
||||
refreshTitle: "チャットデータを更新",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "アシスタントの思考 / 作業出力の表示を切り替え",
|
||||
toolCallsToggle: "ツール呼び出しとツール結果の表示を切り替え",
|
||||
focusToggle: "フォーカスモードを切り替え(サイドバー + ページヘッダーを非表示)",
|
||||
@@ -841,6 +907,15 @@ export const ja_JP: TranslationMap = {
|
||||
showCronSessions: "Cron セッションを表示",
|
||||
showCronSessionsHidden: "Cron セッションを表示({count} 件を非表示中)",
|
||||
onboardingDisabled: "セットアップ中は無効",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "英語",
|
||||
@@ -864,6 +939,64 @@ export const ja_JP: TranslationMap = {
|
||||
fa: "فارسی(ペルシア語)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "自動化",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "有効",
|
||||
yes: "はい",
|
||||
@@ -944,7 +1077,7 @@ export const ja_JP: TranslationMap = {
|
||||
every: "毎",
|
||||
at: "時刻",
|
||||
cronOption: "Cron",
|
||||
runAt: "実行時刻",
|
||||
runAt: "実行日時",
|
||||
unit: "単位",
|
||||
minutes: "分",
|
||||
hours: "時間",
|
||||
@@ -997,7 +1130,7 @@ export const ja_JP: TranslationMap = {
|
||||
to: "宛先",
|
||||
toPlaceholder: "+1555... または chat id",
|
||||
toHelp: "任意の受信者上書きです(chat id、電話番号、または user id)。",
|
||||
advanced: "詳細設定",
|
||||
advanced: "詳細",
|
||||
advancedHelp: "配信保証、スケジュールのジッター、モデル制御の任意の上書き設定。",
|
||||
deleteAfterRun: "実行後に削除",
|
||||
deleteAfterRunHelp: "自動でクリーンアップしたい単発のリマインダーに最適です。",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const ko: TranslationMap = {
|
||||
connected: "연결됨",
|
||||
refresh: "새로고침",
|
||||
reload: "다시 로드",
|
||||
reset: "Reset",
|
||||
reset: "재설정",
|
||||
probe: "프로브",
|
||||
call: "호출",
|
||||
confirm: "확인",
|
||||
cancel: "취소",
|
||||
next: "다음",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "복사",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "선택 해제",
|
||||
enabled: "사용",
|
||||
disabled: "사용 안 함",
|
||||
none: "none",
|
||||
na: "해당 없음",
|
||||
never: "never",
|
||||
configured: "구성됨",
|
||||
running: "실행 중",
|
||||
linked: "연결됨",
|
||||
mode: "모드",
|
||||
system: "시스템",
|
||||
light: "얕음",
|
||||
dark: "Dark",
|
||||
baseUrl: "기본 URL",
|
||||
lastStart: "마지막 시작",
|
||||
lastProbe: "마지막 프로브",
|
||||
@@ -49,6 +61,8 @@ export const ko: TranslationMap = {
|
||||
version: "버전",
|
||||
docs: "문서",
|
||||
theme: "테마",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "리소스",
|
||||
search: "검색",
|
||||
save: "저장",
|
||||
@@ -139,6 +153,57 @@ export const ko: TranslationMap = {
|
||||
lastInput: "마지막 입력 {time}",
|
||||
reason: "사유 {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "세션",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "활성",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "알 수 없음",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "토큰",
|
||||
compaction: "Compaction",
|
||||
thinking: "생각 수준",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "꺼짐",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -150,12 +215,12 @@ export const ko: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
overview: "개요",
|
||||
files: "파일",
|
||||
tools: "도구",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
channels: "채널",
|
||||
cronJobs: "Cron 작업",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -171,7 +236,7 @@ export const ko: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "채널",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -186,8 +251,8 @@ export const ko: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "작업",
|
||||
nextWake: "다음 실행",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -226,8 +291,8 @@ export const ko: TranslationMap = {
|
||||
debug: {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
status: "상태",
|
||||
health: "상태",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -235,7 +300,7 @@ export const ko: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "실행",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -245,7 +310,7 @@ export const ko: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "이벤트 로그",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -260,8 +325,8 @@ export const ko: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "에이전트",
|
||||
session: "세션",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -485,7 +550,7 @@ export const ko: TranslationMap = {
|
||||
advanced: "고급",
|
||||
},
|
||||
header: {
|
||||
refresh: "새로 고침",
|
||||
refresh: "새로고침",
|
||||
refreshing: "새로 고치는 중…",
|
||||
on: "드리밍 켜짐",
|
||||
off: "드리밍 꺼짐",
|
||||
@@ -827,6 +892,7 @@ export const ko: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Gateway와 연결이 끊어졌습니다.",
|
||||
refreshTitle: "채팅 데이터 새로고침",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "어시스턴트 생각/작업 출력 전환",
|
||||
toolCallsToggle: "도구 호출 및 도구 결과 전환",
|
||||
focusToggle: "집중 모드 전환(사이드바 + 페이지 헤더 숨기기)",
|
||||
@@ -834,6 +900,15 @@ export const ko: TranslationMap = {
|
||||
showCronSessions: "Cron 세션 표시",
|
||||
showCronSessionsHidden: "Cron 세션 표시({count}개 숨김)",
|
||||
onboardingDisabled: "설정 중에는 비활성화됨",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "영어",
|
||||
@@ -857,6 +932,64 @@ export const ko: TranslationMap = {
|
||||
fa: "فارسی (페르시아어)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "자동화",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "사용",
|
||||
yes: "예",
|
||||
@@ -937,7 +1070,7 @@ export const ko: TranslationMap = {
|
||||
every: "매",
|
||||
at: "시간",
|
||||
cronOption: "Cron",
|
||||
runAt: "실행 시간",
|
||||
runAt: "실행 시각",
|
||||
unit: "단위",
|
||||
minutes: "분",
|
||||
hours: "시간",
|
||||
|
||||
@@ -21,15 +21,27 @@ export const nl: TranslationMap = {
|
||||
call: "Aanroepen",
|
||||
confirm: "Bevestigen",
|
||||
cancel: "Annuleren",
|
||||
next: "Volgende",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Kopiëren",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Deselecteren",
|
||||
enabled: "Ingeschakeld",
|
||||
disabled: "Uitgeschakeld",
|
||||
none: "none",
|
||||
na: "n.v.t.",
|
||||
never: "nooit",
|
||||
configured: "Geconfigureerd",
|
||||
running: "Actief",
|
||||
linked: "Gekoppeld",
|
||||
mode: "Modus",
|
||||
system: "Systeem",
|
||||
light: "Licht",
|
||||
dark: "Dark",
|
||||
baseUrl: "Basis-URL",
|
||||
lastStart: "Laatste start",
|
||||
lastProbe: "Laatste probe",
|
||||
@@ -49,6 +61,8 @@ export const nl: TranslationMap = {
|
||||
version: "Versie",
|
||||
docs: "Docs",
|
||||
theme: "Thema",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Bronnen",
|
||||
search: "Zoeken",
|
||||
save: "Opslaan",
|
||||
@@ -142,6 +156,57 @@ export const nl: TranslationMap = {
|
||||
lastInput: "Laatste invoer {time}",
|
||||
reason: "Reden {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sessies",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Actief",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Onbekend",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Tokens",
|
||||
compaction: "Compaction",
|
||||
thinking: "Denken",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "uit",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "Geen agents",
|
||||
copyId: "ID kopiëren",
|
||||
@@ -834,6 +899,7 @@ export const nl: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Verbinding met Gateway verbroken.",
|
||||
refreshTitle: "Chatgegevens vernieuwen",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Denken-/werken-output van assistent schakelen",
|
||||
toolCallsToggle: "Tool-aanroepen en toolresultaten schakelen",
|
||||
focusToggle: "Focusmodus schakelen (zijbalk + paginakop verbergen)",
|
||||
@@ -841,6 +907,15 @@ export const nl: TranslationMap = {
|
||||
showCronSessions: "Cron-sessies weergeven",
|
||||
showCronSessionsHidden: "Cron-sessies weergeven ({count} verborgen)",
|
||||
onboardingDisabled: "Uitgeschakeld tijdens configuratie",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "English (Engels)",
|
||||
@@ -864,6 +939,64 @@ export const nl: TranslationMap = {
|
||||
fa: "فارسی (Perzisch)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automatisering",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Ingeschakeld",
|
||||
yes: "Ja",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const pl: TranslationMap = {
|
||||
connected: "Połączono",
|
||||
refresh: "Odśwież",
|
||||
reload: "Przeładuj",
|
||||
reset: "Reset",
|
||||
reset: "Resetuj",
|
||||
probe: "Sprawdź",
|
||||
call: "Połączenie",
|
||||
confirm: "Potwierdź",
|
||||
cancel: "Anuluj",
|
||||
next: "Następne",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Kopiuj",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Odznacz",
|
||||
enabled: "Włączone",
|
||||
disabled: "Wyłączone",
|
||||
none: "none",
|
||||
na: "n/d",
|
||||
never: "never",
|
||||
configured: "Skonfigurowano",
|
||||
running: "Uruchomiono",
|
||||
linked: "Połączono",
|
||||
mode: "Tryb",
|
||||
system: "System",
|
||||
light: "Lekki",
|
||||
dark: "Dark",
|
||||
baseUrl: "Bazowy URL",
|
||||
lastStart: "Ostatnie uruchomienie",
|
||||
lastProbe: "Ostatnie sprawdzenie",
|
||||
@@ -49,6 +61,8 @@ export const pl: TranslationMap = {
|
||||
version: "Wersja",
|
||||
docs: "Dokumentacja",
|
||||
theme: "Motyw",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Zasoby",
|
||||
search: "Szukaj",
|
||||
save: "Zapisz",
|
||||
@@ -87,7 +101,7 @@ export const pl: TranslationMap = {
|
||||
profilePicture: "Zdjęcie profilowe",
|
||||
noProfile: "Nie ustawiono profilu.",
|
||||
noProfileHint: "Kliknij „Edytuj profil”, aby dodać swoje imię, bio i awatar.",
|
||||
name: "Imię",
|
||||
name: "Nazwa",
|
||||
displayName: "Nazwa wyświetlana",
|
||||
about: "O mnie",
|
||||
advanced: "Zaawansowane",
|
||||
@@ -141,6 +155,57 @@ export const pl: TranslationMap = {
|
||||
lastInput: "Ostatnie wejście {time}",
|
||||
reason: "Powód {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sesje",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Aktywny",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Nieznane",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Tokeny",
|
||||
compaction: "Compaction",
|
||||
thinking: "Myślenie",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "wył.",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -152,12 +217,12 @@ export const pl: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
overview: "Przegląd",
|
||||
files: "Pliki",
|
||||
tools: "Narzędzia",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
channels: "Kanały",
|
||||
cronJobs: "Zadania Cron",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -173,7 +238,7 @@ export const pl: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "Kanały",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -188,8 +253,8 @@ export const pl: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "Zadania",
|
||||
nextWake: "Następne wybudzenie",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -229,7 +294,7 @@ export const pl: TranslationMap = {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
health: "Stan",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -237,7 +302,7 @@ export const pl: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "Uruchom",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -247,7 +312,7 @@ export const pl: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "Dziennik zdarzeń",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -263,7 +328,7 @@ export const pl: TranslationMap = {
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
session: "Sesja",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -514,7 +579,7 @@ export const pl: TranslationMap = {
|
||||
reset: "Resetuj",
|
||||
clearGrounded: "Wyczyść uziemione",
|
||||
repairCache: "Napraw pamięć podręczną snów",
|
||||
working: "Przetwarzanie…",
|
||||
working: "Praca…",
|
||||
},
|
||||
phase: {
|
||||
light: "Lekki",
|
||||
@@ -836,6 +901,7 @@ export const pl: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Rozłączono z Gateway.",
|
||||
refreshTitle: "Odśwież dane czatu",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Przełącz wyświetlanie myślenia/pracy asystenta",
|
||||
toolCallsToggle: "Przełącz wyświetlanie wywołań narzędzi i wyników narzędzi",
|
||||
focusToggle: "Przełącz tryb skupienia (ukryj pasek boczny i nagłówek strony)",
|
||||
@@ -843,6 +909,15 @@ export const pl: TranslationMap = {
|
||||
showCronSessions: "Pokaż sesje Cron",
|
||||
showCronSessionsHidden: "Pokaż sesje Cron ({count} ukrytych)",
|
||||
onboardingDisabled: "Wyłączone podczas konfiguracji",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "Angielski (English)",
|
||||
@@ -866,6 +941,64 @@ export const pl: TranslationMap = {
|
||||
fa: "فارسی (perski)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automatyzacja",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Włączone",
|
||||
yes: "Tak",
|
||||
@@ -909,7 +1042,7 @@ export const pl: TranslationMap = {
|
||||
newestFirst: "Od najnowszych",
|
||||
oldestFirst: "Od najstarszych",
|
||||
status: "Status",
|
||||
delivery: "Dostarczenie",
|
||||
delivery: "Dostarczanie",
|
||||
clear: "Wyczyść",
|
||||
allStatuses: "Wszystkie statusy",
|
||||
allDelivery: "Wszystkie stany dostarczenia",
|
||||
@@ -919,7 +1052,7 @@ export const pl: TranslationMap = {
|
||||
runStatusOk: "OK",
|
||||
runStatusError: "Błąd",
|
||||
runStatusSkipped: "Pominięto",
|
||||
runStatusUnknown: "Nieznany",
|
||||
runStatusUnknown: "Nieznane",
|
||||
deliveryDelivered: "Dostarczono",
|
||||
deliveryNotDelivered: "Nie dostarczono",
|
||||
deliveryUnknown: "Nieznane",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const pt_BR: TranslationMap = {
|
||||
connected: "Conectado",
|
||||
refresh: "Atualizar",
|
||||
reload: "Recarregar",
|
||||
reset: "Reset",
|
||||
reset: "Redefinir",
|
||||
probe: "Sondar",
|
||||
call: "Ligar",
|
||||
confirm: "Confirmar",
|
||||
cancel: "Cancelar",
|
||||
next: "Próxima",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Copiar",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Desmarcar",
|
||||
enabled: "Ativado",
|
||||
disabled: "Desativado",
|
||||
none: "none",
|
||||
na: "n/d",
|
||||
never: "never",
|
||||
configured: "Configurado",
|
||||
running: "Em execução",
|
||||
linked: "Vinculado",
|
||||
mode: "Modo",
|
||||
system: "Sistema",
|
||||
light: "Leve",
|
||||
dark: "Dark",
|
||||
baseUrl: "URL base",
|
||||
lastStart: "Última inicialização",
|
||||
lastProbe: "Última sondagem",
|
||||
@@ -49,6 +61,8 @@ export const pt_BR: TranslationMap = {
|
||||
version: "Versão",
|
||||
docs: "Documentação",
|
||||
theme: "Tema",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Recursos",
|
||||
search: "Pesquisar",
|
||||
save: "Salvar",
|
||||
@@ -140,6 +154,57 @@ export const pt_BR: TranslationMap = {
|
||||
lastInput: "Última entrada {time}",
|
||||
reason: "Motivo {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Sessões",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Ativo",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Desconhecido",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Tokens",
|
||||
compaction: "Compaction",
|
||||
thinking: "Pensamento",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "desligado",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -152,8 +217,8 @@ export const pt_BR: TranslationMap = {
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
files: "Arquivos",
|
||||
tools: "Ferramentas",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
@@ -187,8 +252,8 @@ export const pt_BR: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "Tarefas",
|
||||
nextWake: "Próxima ativação",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -236,7 +301,7 @@ export const pt_BR: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "Executar",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -261,8 +326,8 @@ export const pt_BR: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "Agente",
|
||||
session: "Sessão",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -295,7 +360,7 @@ export const pt_BR: TranslationMap = {
|
||||
sessions: "Sessões",
|
||||
usage: "Uso",
|
||||
cron: "Tarefas Cron",
|
||||
skills: "Habilidades",
|
||||
skills: "Skills",
|
||||
nodes: "Nós",
|
||||
chat: "Chat",
|
||||
config: "Configuração",
|
||||
@@ -421,7 +486,7 @@ export const pt_BR: TranslationMap = {
|
||||
},
|
||||
cards: {
|
||||
cost: "Custo",
|
||||
skills: "Habilidades",
|
||||
skills: "Skills",
|
||||
recentSessions: "Sessões Recentes",
|
||||
modelAuth: "Autenticação de modelo",
|
||||
modelAuthOk: "{count} ok",
|
||||
@@ -512,7 +577,7 @@ export const pt_BR: TranslationMap = {
|
||||
reset: "Redefinir",
|
||||
clearGrounded: "Limpar Grounded",
|
||||
repairCache: "Reparar cache de sonhos",
|
||||
working: "Trabalhando…",
|
||||
working: "Processando…",
|
||||
},
|
||||
phase: {
|
||||
light: "Leve",
|
||||
@@ -632,7 +697,7 @@ export const pt_BR: TranslationMap = {
|
||||
clear: "Limpar",
|
||||
clearAll: "Limpar tudo",
|
||||
remove: "Remover filtro",
|
||||
all: "Todos",
|
||||
all: "Todas",
|
||||
days: "Dias",
|
||||
hours: "Horas",
|
||||
session: "Sessão",
|
||||
@@ -833,6 +898,7 @@ export const pt_BR: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Desconectado do gateway.",
|
||||
refreshTitle: "Atualizar dados do chat",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Alternar saída de pensamento/trabalho do assistente",
|
||||
toolCallsToggle: "Alternar chamadas de ferramenta e resultados de ferramenta",
|
||||
focusToggle: "Alternar modo de foco (ocultar barra lateral + cabeçalho da página)",
|
||||
@@ -840,6 +906,15 @@ export const pt_BR: TranslationMap = {
|
||||
showCronSessions: "Mostrar sessões de cron",
|
||||
showCronSessionsHidden: "Mostrar sessões de cron ({count} ocultas)",
|
||||
onboardingDisabled: "Desativado durante a integração",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "Inglês",
|
||||
@@ -863,6 +938,64 @@ export const pt_BR: TranslationMap = {
|
||||
fa: "فارسی (Persa)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automation",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Ativado",
|
||||
yes: "Sim",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const th: TranslationMap = {
|
||||
connected: "เชื่อมต่อแล้ว",
|
||||
refresh: "รีเฟรช",
|
||||
reload: "โหลดใหม่",
|
||||
reset: "Reset",
|
||||
reset: "รีเซ็ต",
|
||||
probe: "ตรวจสอบ",
|
||||
call: "โทร",
|
||||
confirm: "ยืนยัน",
|
||||
cancel: "ยกเลิก",
|
||||
next: "ถัดไป",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "คัดลอก",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "ยกเลิกการเลือก",
|
||||
enabled: "เปิดใช้งาน",
|
||||
disabled: "ปิดใช้งาน",
|
||||
none: "none",
|
||||
na: "n/a",
|
||||
never: "never",
|
||||
configured: "กำหนดค่าแล้ว",
|
||||
running: "กำลังทำงาน",
|
||||
linked: "เชื่อมโยงแล้ว",
|
||||
mode: "โหมด",
|
||||
system: "ระบบ",
|
||||
light: "ตื้น",
|
||||
dark: "Dark",
|
||||
baseUrl: "Base URL",
|
||||
lastStart: "เริ่มต้นล่าสุด",
|
||||
lastProbe: "ตรวจสอบล่าสุด",
|
||||
@@ -49,6 +61,8 @@ export const th: TranslationMap = {
|
||||
version: "เวอร์ชัน",
|
||||
docs: "เอกสาร",
|
||||
theme: "ธีม",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "ทรัพยากร",
|
||||
search: "ค้นหา",
|
||||
save: "บันทึก",
|
||||
@@ -138,6 +152,57 @@ export const th: TranslationMap = {
|
||||
lastInput: "อินพุตล่าสุด {time}",
|
||||
reason: "เหตุผล {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "เซสชัน",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "ใช้งานอยู่",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "ไม่ทราบ",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "โทเค็น",
|
||||
compaction: "Compaction",
|
||||
thinking: "Thinking",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "ปิด",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -149,12 +214,12 @@ export const th: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
overview: "ภาพรวม",
|
||||
files: "ไฟล์",
|
||||
tools: "Tools",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
skills: "ทักษะ",
|
||||
channels: "ช่องทาง",
|
||||
cronJobs: "งาน Cron",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -170,7 +235,7 @@ export const th: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "ช่องทาง",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -185,8 +250,8 @@ export const th: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "งาน",
|
||||
nextWake: "ปลุกครั้งถัดไป",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -225,8 +290,8 @@ export const th: TranslationMap = {
|
||||
debug: {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
status: "สถานะ",
|
||||
health: "สถานะ",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -234,7 +299,7 @@ export const th: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "รัน",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -244,7 +309,7 @@ export const th: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "บันทึกเหตุการณ์",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -259,8 +324,8 @@ export const th: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "เอเจนต์",
|
||||
session: "เซสชัน",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -729,7 +794,7 @@ export const th: TranslationMap = {
|
||||
total: "ทั้งหมด {count}",
|
||||
avg: "เฉลี่ย",
|
||||
all: "ทั้งหมด",
|
||||
recent: "ดูล่า<EFBFBD><EFBFBD>ุด",
|
||||
recent: "ดูล่าสุด",
|
||||
recentShort: "ล่าสุด",
|
||||
sort: "เรียงลำดับ",
|
||||
ascending: "น้อยไปมาก",
|
||||
@@ -818,6 +883,7 @@ export const th: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "ตัดการเชื่อมต่อจากเกตเวย์แล้ว",
|
||||
refreshTitle: "รีเฟรชข้อมูลแชต",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "สลับการแสดงผลการคิด/การทำงานของผู้ช่วย",
|
||||
toolCallsToggle: "สลับการแสดงการเรียกใช้ tool และผลลัพธ์ของ tool",
|
||||
focusToggle: "สลับโหมดโฟกัส (ซ่อนแถบด้านข้าง + ส่วนหัวหน้า)",
|
||||
@@ -825,6 +891,15 @@ export const th: TranslationMap = {
|
||||
showCronSessions: "แสดงเซสชัน cron",
|
||||
showCronSessionsHidden: "แสดงเซสชัน cron (ซ่อนอยู่ {count})",
|
||||
onboardingDisabled: "ปิดใช้งานระหว่างการตั้งค่า",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "อังกฤษ",
|
||||
@@ -848,6 +923,64 @@ export const th: TranslationMap = {
|
||||
fa: "فارسی (เปอร์เซีย)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "ระบบอัตโนมัติ",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "เปิดใช้งาน",
|
||||
yes: "ใช่",
|
||||
@@ -987,7 +1120,7 @@ export const th: TranslationMap = {
|
||||
staggerUnit: "หน่วย stagger",
|
||||
staggerPlaceholder: "30",
|
||||
seconds: "วินาที",
|
||||
model: "โมเดล",
|
||||
model: "Model",
|
||||
modelPlaceholder: "openai/gpt-5.2",
|
||||
modelHelp: "เริ่มพิมพ์เพื่อเลือกโมเดลที่รู้จัก หรือป้อนโมเดลแบบกำหนดเอง",
|
||||
thinking: "Thinking",
|
||||
@@ -1030,7 +1163,7 @@ export const th: TranslationMap = {
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "ไม่มีสรุป",
|
||||
runAt: "รันเมื่อ",
|
||||
runAt: "ทำงานเมื่อ",
|
||||
openRunChat: "เปิดแชตการรัน",
|
||||
next: "ถัดไป {rel}",
|
||||
due: "ครบกำหนด {rel}",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const tr: TranslationMap = {
|
||||
connected: "Bağlandı",
|
||||
refresh: "Yenile",
|
||||
reload: "Yeniden yükle",
|
||||
reset: "Reset",
|
||||
reset: "Sıfırla",
|
||||
probe: "Sına",
|
||||
call: "Ara",
|
||||
confirm: "Onayla",
|
||||
cancel: "İptal",
|
||||
next: "Sonraki",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Kopyala",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Seçimi kaldır",
|
||||
enabled: "Etkin",
|
||||
disabled: "Devre dışı",
|
||||
none: "none",
|
||||
na: "yok",
|
||||
never: "never",
|
||||
configured: "Yapılandırıldı",
|
||||
running: "Çalışıyor",
|
||||
linked: "Bağlandı",
|
||||
mode: "Mod",
|
||||
system: "Sistem",
|
||||
light: "Hafif",
|
||||
dark: "Dark",
|
||||
baseUrl: "Temel URL",
|
||||
lastStart: "Son başlatma",
|
||||
lastProbe: "Son sınama",
|
||||
@@ -49,6 +61,8 @@ export const tr: TranslationMap = {
|
||||
version: "Sürüm",
|
||||
docs: "Dokümanlar",
|
||||
theme: "Tema",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Kaynaklar",
|
||||
search: "Ara",
|
||||
save: "Kaydet",
|
||||
@@ -142,6 +156,57 @@ export const tr: TranslationMap = {
|
||||
lastInput: "Son giriş {time}",
|
||||
reason: "Neden {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Oturumlar",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Etkin",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Bilinmiyor",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Tokenlar",
|
||||
compaction: "Compaction",
|
||||
thinking: "Düşünme",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "kapalı",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -153,12 +218,12 @@ export const tr: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
overview: "Genel Bakış",
|
||||
files: "Dosyalar",
|
||||
tools: "Araçlar",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
channels: "Kanallar",
|
||||
cronJobs: "Cron İşleri",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -174,7 +239,7 @@ export const tr: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "Kanallar",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -189,8 +254,8 @@ export const tr: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "İşler",
|
||||
nextWake: "Sonraki uyandırma",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -229,8 +294,8 @@ export const tr: TranslationMap = {
|
||||
debug: {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
status: "Durum",
|
||||
health: "Sağlık",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -238,7 +303,7 @@ export const tr: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "Çalıştır",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -248,7 +313,7 @@ export const tr: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "Olay Günlüğü",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -263,8 +328,8 @@ export const tr: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "Aracı",
|
||||
session: "Oturum",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -275,7 +340,7 @@ export const tr: TranslationMap = {
|
||||
},
|
||||
agentTools: {
|
||||
connectedSource: "Bağlı: {id}",
|
||||
connected: "Bağlı",
|
||||
connected: "Bağlandı",
|
||||
channelSource: "Kanal: {id}",
|
||||
channel: "Kanal",
|
||||
builtIn: "Yerleşik",
|
||||
@@ -343,7 +408,7 @@ export const tr: TranslationMap = {
|
||||
language: "Dil",
|
||||
connectHint: "Bağlantı değişikliklerini uygulamak için Bağlan'a tıklayın.",
|
||||
trustedProxy: "Güvenilir proxy üzerinden kimlik doğrulandı.",
|
||||
showToken: "Token'ı göster",
|
||||
showToken: "Tokenı göster",
|
||||
hideToken: "Token'ı gizle",
|
||||
toggleTokenVisibility: "Token görünürlüğünü değiştir",
|
||||
showPassword: "Parolayı göster",
|
||||
@@ -459,7 +524,7 @@ export const tr: TranslationMap = {
|
||||
placeholder: "Bir komut yazın…",
|
||||
noResults: "Sonuç yok",
|
||||
categories: {
|
||||
search: "Arama",
|
||||
search: "Ara",
|
||||
navigation: "Navigation",
|
||||
skills: "Skills",
|
||||
},
|
||||
@@ -469,7 +534,7 @@ export const tr: TranslationMap = {
|
||||
scheduled: "Zamanlanmış",
|
||||
skills: "Skills",
|
||||
settings: "Ayarlar",
|
||||
agents: "Ajanlar",
|
||||
agents: "Aracılar",
|
||||
shellCommand: "Shell Komutu",
|
||||
debugMode: "Hata Ayıklama Modu",
|
||||
},
|
||||
@@ -551,7 +616,7 @@ export const tr: TranslationMap = {
|
||||
},
|
||||
stats: {
|
||||
shortTerm: "Kısa vadeli",
|
||||
grounded: "Temellendirililmiş",
|
||||
grounded: "Temellendirilmiş",
|
||||
signals: "Sinyaller",
|
||||
promoted: "Yükseltilenler",
|
||||
phaseHits: "Aşama İsabetleri",
|
||||
@@ -639,7 +704,7 @@ export const tr: TranslationMap = {
|
||||
remove: "Filtreyi kaldır",
|
||||
all: "Tümü",
|
||||
days: "Günler",
|
||||
hours: "Saatler",
|
||||
hours: "Saat",
|
||||
session: "Oturum",
|
||||
agent: "Aracı",
|
||||
channel: "Kanal",
|
||||
@@ -827,7 +892,7 @@ export const tr: TranslationMap = {
|
||||
subtitle: "Gateway Kontrol Paneli",
|
||||
passwordPlaceholder: "isteğe bağlı",
|
||||
showToken: "Tokenı göster",
|
||||
hideToken: "Tokenı gizle",
|
||||
hideToken: "Token'ı gizle",
|
||||
toggleTokenVisibility: "Token görünürlüğünü değiştir",
|
||||
showPassword: "Parolayı göster",
|
||||
hidePassword: "Parolayı gizle",
|
||||
@@ -836,6 +901,7 @@ export const tr: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Gateway bağlantısı kesildi.",
|
||||
refreshTitle: "Sohbet verilerini yenile",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Asistanın düşünme/çalışma çıktısını aç/kapat",
|
||||
toolCallsToggle: "Araç çağrılarını ve araç sonuçlarını aç/kapat",
|
||||
focusToggle: "Odak modunu aç/kapat (kenar çubuğunu + sayfa başlığını gizle)",
|
||||
@@ -843,6 +909,15 @@ export const tr: TranslationMap = {
|
||||
showCronSessions: "Cron oturumlarını göster",
|
||||
showCronSessionsHidden: "Cron oturumlarını göster ({count} gizli)",
|
||||
onboardingDisabled: "Kurulum sırasında devre dışı",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "İngilizce",
|
||||
@@ -866,6 +941,64 @@ export const tr: TranslationMap = {
|
||||
fa: "فارسی (Farsça)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Otomasyon",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Etkin",
|
||||
yes: "Evet",
|
||||
@@ -950,7 +1083,7 @@ export const tr: TranslationMap = {
|
||||
unit: "Birim",
|
||||
minutes: "Dakika",
|
||||
hours: "Saat",
|
||||
days: "Gün",
|
||||
days: "Günler",
|
||||
expression: "İfade",
|
||||
expressionPlaceholder: "0 7 * * *",
|
||||
everyAmountPlaceholder: "30",
|
||||
@@ -1069,7 +1202,7 @@ export const tr: TranslationMap = {
|
||||
agentMessageRequired: "Aracı mesajı gerekli.",
|
||||
timeoutInvalid: "Ayarlanırsa zaman aşımı 0 saniyeden büyük olmalıdır.",
|
||||
webhookUrlRequired: "Webhook URL gerekli.",
|
||||
webhookUrlInvalid: "Webhook URL http:// veya https:// ile ba<EFBFBD><EFBFBD>lamalıdır.",
|
||||
webhookUrlInvalid: "Webhook URL http:// veya https:// ile başlamalıdır.",
|
||||
invalidRunTime: "Geçersiz çalıştırma zamanı.",
|
||||
invalidIntervalAmount: "Geçersiz aralık miktarı.",
|
||||
cronExprRequiredShort: "Cron ifadesi gerekli.",
|
||||
|
||||
@@ -16,20 +16,32 @@ export const uk: TranslationMap = {
|
||||
connected: "Підключено",
|
||||
refresh: "Оновити",
|
||||
reload: "Перезавантажити",
|
||||
reset: "Reset",
|
||||
reset: "Скинути",
|
||||
probe: "Перевірити",
|
||||
call: "Виклик",
|
||||
confirm: "Підтвердити",
|
||||
cancel: "Скасувати",
|
||||
next: "Наступний",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Копіювати",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Зняти вибір",
|
||||
enabled: "Увімкнено",
|
||||
disabled: "Вимкнено",
|
||||
none: "none",
|
||||
na: "н/д",
|
||||
never: "never",
|
||||
configured: "Налаштовано",
|
||||
running: "Запущено",
|
||||
linked: "Пов’язано",
|
||||
mode: "Режим",
|
||||
system: "Система",
|
||||
light: "Легкий",
|
||||
dark: "Dark",
|
||||
baseUrl: "Базовий URL",
|
||||
lastStart: "Останній запуск",
|
||||
lastProbe: "Остання перевірка",
|
||||
@@ -49,6 +61,8 @@ export const uk: TranslationMap = {
|
||||
version: "Версія",
|
||||
docs: "Документація",
|
||||
theme: "Тема",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Ресурси",
|
||||
search: "Пошук",
|
||||
save: "Зберегти",
|
||||
@@ -60,7 +74,7 @@ export const uk: TranslationMap = {
|
||||
hideAdvanced: "Сховати додаткові",
|
||||
unsavedChanges: "У вас є незбережені зміни",
|
||||
secondsAgo: "{count} с тому",
|
||||
working: "Виконується…",
|
||||
working: "Обробка…",
|
||||
showQr: "Показати QR",
|
||||
relink: "Пов’язати знову",
|
||||
waitForScan: "Очікування сканування",
|
||||
@@ -87,7 +101,7 @@ export const uk: TranslationMap = {
|
||||
profilePicture: "Зображення профілю",
|
||||
noProfile: "Профіль не налаштовано.",
|
||||
noProfileHint: 'Натисніть "Edit Profile", щоб додати своє ім’я, біографію та аватар.',
|
||||
name: "Ім’я",
|
||||
name: "Назва",
|
||||
displayName: "Відображуване ім’я",
|
||||
about: "Про себе",
|
||||
advanced: "Додатково",
|
||||
@@ -141,6 +155,57 @@ export const uk: TranslationMap = {
|
||||
lastInput: "Останнє введення {time}",
|
||||
reason: "Причина {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Сеанси",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Активно",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Невідомо",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Токени",
|
||||
compaction: "Compaction",
|
||||
thinking: "Обмірковування",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "вимкнено",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -152,12 +217,12 @@ export const uk: TranslationMap = {
|
||||
selectTitle: "Select an agent",
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
overview: "Огляд",
|
||||
files: "Файли",
|
||||
tools: "Інструменти",
|
||||
skills: "Навички",
|
||||
channels: "Канали",
|
||||
cronJobs: "Завдання Cron",
|
||||
},
|
||||
context: {
|
||||
title: "Agent Context",
|
||||
@@ -173,7 +238,7 @@ export const uk: TranslationMap = {
|
||||
schedulingSubtitle: "Workspace and scheduling targets.",
|
||||
},
|
||||
channels: {
|
||||
title: "Channels",
|
||||
title: "Канали",
|
||||
subtitle: "Gateway-wide channel status snapshot.",
|
||||
lastRefresh: "Last refresh: {time}",
|
||||
loadHint: "Load channels to see live status.",
|
||||
@@ -188,8 +253,8 @@ export const uk: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "Завдання",
|
||||
nextWake: "Наступне пробудження",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -228,8 +293,8 @@ export const uk: TranslationMap = {
|
||||
debug: {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
health: "Health",
|
||||
status: "Статус",
|
||||
health: "Стан",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
audit: "Security audit",
|
||||
@@ -237,7 +302,7 @@ export const uk: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "Запустити",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -247,7 +312,7 @@ export const uk: TranslationMap = {
|
||||
paramsJson: "Params (JSON)",
|
||||
modelsTitle: "Models",
|
||||
modelsSubtitle: "Catalog from models.list.",
|
||||
eventLogTitle: "Event Log",
|
||||
eventLogTitle: "Журнал подій",
|
||||
eventLogSubtitle: "Latest gateway events.",
|
||||
noEvents: "No events yet.",
|
||||
},
|
||||
@@ -262,8 +327,8 @@ export const uk: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "Агент",
|
||||
session: "Сеанс",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -352,7 +417,7 @@ export const uk: TranslationMap = {
|
||||
snapshot: {
|
||||
title: "Знімок",
|
||||
subtitle: "Остання інформація рукостискання шлюзу.",
|
||||
status: "Стан",
|
||||
status: "Статус",
|
||||
uptime: "Час роботи",
|
||||
tickInterval: "Інтервал тіку",
|
||||
lastChannelsRefresh: "Останнє оновлення каналів",
|
||||
@@ -486,7 +551,7 @@ export const uk: TranslationMap = {
|
||||
tabs: {
|
||||
scene: "Сцена",
|
||||
diary: "Щоденник",
|
||||
advanced: "Розширені",
|
||||
advanced: "Додатково",
|
||||
},
|
||||
header: {
|
||||
refresh: "Оновити",
|
||||
@@ -557,7 +622,7 @@ export const uk: TranslationMap = {
|
||||
phaseHits: "Збіги фаз",
|
||||
},
|
||||
trace: {
|
||||
shortTerm: "Короткострокові",
|
||||
shortTerm: "Короткостроково",
|
||||
grounded: "Заземлене",
|
||||
signals: "Сигнали",
|
||||
promoted: "Підвищено",
|
||||
@@ -835,6 +900,7 @@ export const uk: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Відключено від шлюзу.",
|
||||
refreshTitle: "Оновити дані чату",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Перемкнути показ мислення/роботи асистента",
|
||||
toolCallsToggle: "Перемкнути виклики інструментів і результати інструментів",
|
||||
focusToggle: "Перемкнути режим фокусу (сховати бічну панель і заголовок сторінки)",
|
||||
@@ -842,6 +908,15 @@ export const uk: TranslationMap = {
|
||||
showCronSessions: "Показати сеанси Cron",
|
||||
showCronSessionsHidden: "Показати сеанси Cron ({count} приховано)",
|
||||
onboardingDisabled: "Вимкнено під час налаштування",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "Англійська",
|
||||
@@ -865,6 +940,64 @@ export const uk: TranslationMap = {
|
||||
fa: "فارسی (перська)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Автоматизація",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Увімкнено",
|
||||
yes: "Так",
|
||||
@@ -1054,7 +1187,7 @@ export const uk: TranslationMap = {
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "Немає підсумку.",
|
||||
runAt: "Час запуску",
|
||||
runAt: "Запустити о",
|
||||
openRunChat: "Відкрити чат запуску",
|
||||
next: "Наступний {rel}",
|
||||
due: "Має відбутися {rel}",
|
||||
|
||||
@@ -21,15 +21,27 @@ export const vi: TranslationMap = {
|
||||
call: "Gọi",
|
||||
confirm: "Xác nhận",
|
||||
cancel: "Hủy",
|
||||
next: "Tiếp theo",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "Sao chép",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "Bỏ chọn",
|
||||
enabled: "Đã bật",
|
||||
disabled: "Đã tắt",
|
||||
none: "none",
|
||||
na: "n/a",
|
||||
never: "không bao giờ",
|
||||
configured: "Đã cấu hình",
|
||||
running: "Đang chạy",
|
||||
linked: "Đã liên kết",
|
||||
mode: "Chế độ",
|
||||
system: "Hệ thống",
|
||||
light: "Nhẹ",
|
||||
dark: "Dark",
|
||||
baseUrl: "URL cơ sở",
|
||||
lastStart: "Lần khởi động gần nhất",
|
||||
lastProbe: "Lần thăm dò gần nhất",
|
||||
@@ -49,6 +61,8 @@ export const vi: TranslationMap = {
|
||||
version: "Phiên bản",
|
||||
docs: "Tài liệu",
|
||||
theme: "Giao diện",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "Tài nguyên",
|
||||
search: "Tìm kiếm",
|
||||
save: "Lưu",
|
||||
@@ -140,6 +154,57 @@ export const vi: TranslationMap = {
|
||||
lastInput: "Đầu vào gần nhất {time}",
|
||||
reason: "Lý do {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "Phiên",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "Đang hoạt động",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Không rõ",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Token",
|
||||
compaction: "Compaction",
|
||||
thinking: "Suy nghĩ",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "tắt",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "Không có agent",
|
||||
copyId: "Sao chép ID",
|
||||
@@ -828,6 +893,7 @@ export const vi: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "Đã ngắt kết nối khỏi gateway.",
|
||||
refreshTitle: "Làm mới dữ liệu trò chuyện",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "Bật/tắt đầu ra suy nghĩ/đang xử lý của trợ lý",
|
||||
toolCallsToggle: "Bật/tắt lượt gọi công cụ và kết quả công cụ",
|
||||
focusToggle: "Bật/tắt chế độ tập trung (ẩn thanh bên + tiêu đề trang)",
|
||||
@@ -835,6 +901,15 @@ export const vi: TranslationMap = {
|
||||
showCronSessions: "Hiển thị phiên cron",
|
||||
showCronSessionsHidden: "Hiển thị phiên cron ({count} bị ẩn)",
|
||||
onboardingDisabled: "Đã tắt trong quá trình thiết lập",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "English (Tiếng Anh)",
|
||||
@@ -858,6 +933,64 @@ export const vi: TranslationMap = {
|
||||
fa: "فارسی (Tiếng Ba Tư)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Tự động hóa",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "Đã bật",
|
||||
yes: "Có",
|
||||
|
||||
@@ -21,15 +21,27 @@ export const zh_CN: TranslationMap = {
|
||||
call: "调用",
|
||||
confirm: "确认",
|
||||
cancel: "取消",
|
||||
next: "Next",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "复制",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "取消选择",
|
||||
enabled: "已启用",
|
||||
disabled: "已禁用",
|
||||
none: "none",
|
||||
na: "不适用",
|
||||
never: "从未",
|
||||
configured: "已配置",
|
||||
running: "运行中",
|
||||
linked: "已关联",
|
||||
mode: "模式",
|
||||
system: "系统",
|
||||
light: "浅睡",
|
||||
dark: "Dark",
|
||||
baseUrl: "基础 URL",
|
||||
lastStart: "上次启动",
|
||||
lastProbe: "上次探测",
|
||||
@@ -49,6 +61,8 @@ export const zh_CN: TranslationMap = {
|
||||
version: "版本",
|
||||
docs: "文档",
|
||||
theme: "主题",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "资源",
|
||||
search: "搜索",
|
||||
save: "保存",
|
||||
@@ -138,6 +152,57 @@ export const zh_CN: TranslationMap = {
|
||||
lastInput: "上次输入 {time}",
|
||||
reason: "原因 {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "会话",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "活跃",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "Unknown",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Token",
|
||||
compaction: "Compaction",
|
||||
thinking: "Thinking",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "关闭",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "无代理",
|
||||
copyId: "复制 ID",
|
||||
@@ -152,7 +217,7 @@ export const zh_CN: TranslationMap = {
|
||||
overview: "概览",
|
||||
files: "文件",
|
||||
tools: "工具",
|
||||
skills: "技能",
|
||||
skills: "Skills",
|
||||
channels: "频道",
|
||||
cronJobs: "Cron Jobs",
|
||||
},
|
||||
@@ -273,7 +338,7 @@ export const zh_CN: TranslationMap = {
|
||||
connectedSource: "已连接:{id}",
|
||||
connected: "已连接",
|
||||
channelSource: "频道:{id}",
|
||||
channel: "频道",
|
||||
channel: "渠道",
|
||||
builtIn: "内置",
|
||||
},
|
||||
nav: {
|
||||
@@ -293,7 +358,7 @@ export const zh_CN: TranslationMap = {
|
||||
sessions: "会话",
|
||||
usage: "使用情况",
|
||||
cron: "定时任务",
|
||||
skills: "技能",
|
||||
skills: "Skills",
|
||||
nodes: "节点",
|
||||
chat: "聊天",
|
||||
config: "配置",
|
||||
@@ -360,7 +425,7 @@ export const zh_CN: TranslationMap = {
|
||||
instancesHint: "过去 5 分钟内的在线信号。",
|
||||
sessions: "会话",
|
||||
sessionsHint: "网关跟踪的最近会话密钥。",
|
||||
cron: "定时任务",
|
||||
cron: "Cron",
|
||||
cronNext: "下次唤醒 {time}",
|
||||
},
|
||||
notes: {
|
||||
@@ -412,8 +477,8 @@ export const zh_CN: TranslationMap = {
|
||||
copyCommandAria: "复制命令:{command}",
|
||||
},
|
||||
cards: {
|
||||
cost: "费用",
|
||||
skills: "技能",
|
||||
cost: "成本",
|
||||
skills: "Skills",
|
||||
recentSessions: "最近会话",
|
||||
modelAuth: "模型认证",
|
||||
modelAuthOk: "{count} 正常",
|
||||
@@ -448,13 +513,13 @@ export const zh_CN: TranslationMap = {
|
||||
categories: {
|
||||
search: "搜索",
|
||||
navigation: "导航",
|
||||
skills: "技能",
|
||||
skills: "Skills",
|
||||
},
|
||||
items: {
|
||||
overview: "概览",
|
||||
sessions: "会话",
|
||||
scheduled: "已计划",
|
||||
skills: "技能",
|
||||
skills: "Skills",
|
||||
settings: "设置",
|
||||
agents: "代理",
|
||||
shellCommand: "Shell 命令",
|
||||
@@ -817,6 +882,7 @@ export const zh_CN: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "已断开与网关的连接。",
|
||||
refreshTitle: "刷新聊天数据",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "切换助手思考/工作输出",
|
||||
toolCallsToggle: "切换工具调用和工具结果",
|
||||
focusToggle: "切换专注模式 (隐藏侧边栏 + 页面页眉)",
|
||||
@@ -824,6 +890,15 @@ export const zh_CN: TranslationMap = {
|
||||
showCronSessions: "显示定时任务会话",
|
||||
showCronSessionsHidden: "显示定时任务会话 (已隐藏 {count} 个)",
|
||||
onboardingDisabled: "引导期间禁用",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "英语",
|
||||
@@ -847,6 +922,64 @@ export const zh_CN: TranslationMap = {
|
||||
fa: "فارسی(波斯语)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automation",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "已启用",
|
||||
yes: "是",
|
||||
@@ -869,7 +1002,7 @@ export const zh_CN: TranslationMap = {
|
||||
sort: "排序",
|
||||
nextRun: "下次运行",
|
||||
recentlyUpdated: "最近更新",
|
||||
name: "名称",
|
||||
name: "姓名",
|
||||
direction: "方向",
|
||||
ascending: "升序",
|
||||
descending: "降序",
|
||||
@@ -915,14 +1048,14 @@ export const zh_CN: TranslationMap = {
|
||||
requiredSr: "必填",
|
||||
basics: "基本信息",
|
||||
basicsSub: "命名、选择助手并设置启用状态。",
|
||||
fieldName: "名称",
|
||||
fieldName: "姓名",
|
||||
description: "描述",
|
||||
agentId: "代理 ID",
|
||||
namePlaceholder: "晨间简报",
|
||||
descriptionPlaceholder: "此任务的可选说明",
|
||||
agentPlaceholder: "main 或 ops",
|
||||
agentHelp: "输入以选择已知代理,或输入自定义 ID。",
|
||||
schedule: "调度",
|
||||
schedule: "计划",
|
||||
scheduleSub: "控制任务运行时间。",
|
||||
every: "每隔",
|
||||
at: "指定时间",
|
||||
@@ -967,7 +1100,7 @@ export const zh_CN: TranslationMap = {
|
||||
noneInternal: "无(仅内部)",
|
||||
deliveryHelp: "发布将摘要发送到聊天。无保持执行仅内部。",
|
||||
webhookUrl: "Webhook URL",
|
||||
channel: "频道",
|
||||
channel: "渠道",
|
||||
webhookPlaceholder: "https://example.com/cron",
|
||||
channelHelp: "选择接收摘要的已连接频道。",
|
||||
webhookHelp: "将运行摘要发送到 Webhook 端点。",
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { TranslationMap } from "../lib/types.ts";
|
||||
export const zh_TW: TranslationMap = {
|
||||
common: {
|
||||
health: "健康狀況",
|
||||
ok: "正常",
|
||||
ok: "OK",
|
||||
yes: "是",
|
||||
no: "否",
|
||||
active: "啟用中",
|
||||
@@ -14,22 +14,34 @@ export const zh_TW: TranslationMap = {
|
||||
offline: "離線",
|
||||
connect: "連接",
|
||||
connected: "已連線",
|
||||
refresh: "刷新",
|
||||
refresh: "重新整理",
|
||||
reload: "重新載入",
|
||||
reset: "Reset",
|
||||
reset: "重設",
|
||||
probe: "探測",
|
||||
call: "呼叫",
|
||||
confirm: "確認",
|
||||
cancel: "取消",
|
||||
next: "下一次",
|
||||
back: "Back",
|
||||
create: "Create",
|
||||
copy: "複製",
|
||||
copied: "Copied!",
|
||||
copyCode: "Copy code",
|
||||
delete: "Delete",
|
||||
dismiss: "Dismiss",
|
||||
unselect: "取消選取",
|
||||
enabled: "已啟用",
|
||||
disabled: "已禁用",
|
||||
none: "none",
|
||||
na: "不適用",
|
||||
never: "never",
|
||||
configured: "已設定",
|
||||
running: "執行中",
|
||||
linked: "已連結",
|
||||
mode: "模式",
|
||||
system: "系統",
|
||||
light: "淺層",
|
||||
dark: "Dark",
|
||||
baseUrl: "基礎 URL",
|
||||
lastStart: "上次啟動",
|
||||
lastProbe: "上次探測",
|
||||
@@ -49,6 +61,8 @@ export const zh_TW: TranslationMap = {
|
||||
version: "版本",
|
||||
docs: "文檔",
|
||||
theme: "主題",
|
||||
colorMode: "Color mode",
|
||||
colorModeOption: "Color mode: {mode}",
|
||||
resources: "資源",
|
||||
search: "搜尋",
|
||||
save: "儲存",
|
||||
@@ -138,6 +152,57 @@ export const zh_TW: TranslationMap = {
|
||||
lastInput: "上次輸入 {time}",
|
||||
reason: "原因 {reason}",
|
||||
},
|
||||
sessionsView: {
|
||||
title: "工作階段",
|
||||
subtitle: "Active session keys and per-session overrides.",
|
||||
store: "Store: {path}",
|
||||
active: "啟用中",
|
||||
limit: "Limit",
|
||||
global: "Global",
|
||||
unknown: "未知",
|
||||
minutesPlaceholder: "min",
|
||||
searchPlaceholder: "Filter by key, agent, label, kind…",
|
||||
selected: "{count} selected",
|
||||
deleteSelected: "Delete",
|
||||
selectAllOnPage: "Select all on page",
|
||||
selectSession: "Select session",
|
||||
optionalPlaceholder: "(optional)",
|
||||
key: "Key",
|
||||
label: "Label",
|
||||
kind: "Kind",
|
||||
updated: "Updated",
|
||||
tokens: "Token",
|
||||
compaction: "Compaction",
|
||||
thinking: "思考",
|
||||
fast: "Fast",
|
||||
verbose: "Verbose",
|
||||
reasoning: "Reasoning",
|
||||
noSessions: "No sessions found.",
|
||||
inherit: "inherit",
|
||||
defaultOption: "Default ({value})",
|
||||
offExplicit: "off (explicit)",
|
||||
on: "on",
|
||||
off: "關閉",
|
||||
full: "full",
|
||||
stream: "stream",
|
||||
customOption: "{value} (custom)",
|
||||
manual: "manual",
|
||||
autoThreshold: "auto-threshold",
|
||||
overflowRetry: "overflow retry",
|
||||
timeoutRetry: "timeout retry",
|
||||
tokenRange: "{before} → {after} tokens",
|
||||
tokensBefore: "{count} tokens before",
|
||||
tokenDeltaUnavailable: "token delta unavailable",
|
||||
checkpoints: "{count} checkpoints",
|
||||
checkpoint: "{count} checkpoint",
|
||||
showCheckpoints: "Show checkpoints",
|
||||
hideCheckpoints: "Hide checkpoints",
|
||||
loadingCheckpoints: "Loading checkpoints…",
|
||||
noCheckpoints: "No compaction checkpoints recorded for this session.",
|
||||
noSummary: "No summary captured.",
|
||||
branchFromCheckpoint: "Branch from checkpoint",
|
||||
restoreCheckpoint: "Restore checkpoint",
|
||||
},
|
||||
agents: {
|
||||
noAgents: "No agents",
|
||||
copyId: "Copy ID",
|
||||
@@ -150,8 +215,8 @@ export const zh_TW: TranslationMap = {
|
||||
selectSubtitle: "Pick an agent to inspect its workspace and tools.",
|
||||
tabs: {
|
||||
overview: "Overview",
|
||||
files: "Files",
|
||||
tools: "Tools",
|
||||
files: "檔案",
|
||||
tools: "工具",
|
||||
skills: "Skills",
|
||||
channels: "Channels",
|
||||
cronJobs: "Cron Jobs",
|
||||
@@ -185,8 +250,8 @@ export const zh_TW: TranslationMap = {
|
||||
cronPanel: {
|
||||
schedulerTitle: "Scheduler",
|
||||
schedulerSubtitle: "Gateway cron status.",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
jobs: "工作",
|
||||
nextWake: "下次喚醒",
|
||||
agentJobsTitle: "Agent Cron Jobs",
|
||||
agentJobsSubtitle: "Scheduled jobs targeting this agent.",
|
||||
noJobs: "No jobs assigned.",
|
||||
@@ -225,7 +290,7 @@ export const zh_TW: TranslationMap = {
|
||||
debug: {
|
||||
snapshotsTitle: "Snapshots",
|
||||
snapshotsSubtitle: "Status, health, and heartbeat data.",
|
||||
status: "Status",
|
||||
status: "狀態",
|
||||
health: "Health",
|
||||
lastHeartbeat: "Last heartbeat",
|
||||
security: {
|
||||
@@ -234,7 +299,7 @@ export const zh_TW: TranslationMap = {
|
||||
warnings: "{count} warnings",
|
||||
noCriticalIssues: "No critical issues",
|
||||
info: "{count} info",
|
||||
runPrefix: "Run",
|
||||
runPrefix: "執行",
|
||||
runSuffix: "for details.",
|
||||
},
|
||||
manualRpcTitle: "Manual RPC",
|
||||
@@ -259,8 +324,8 @@ export const zh_TW: TranslationMap = {
|
||||
deny: "Deny",
|
||||
labels: {
|
||||
host: "Host",
|
||||
agent: "Agent",
|
||||
session: "Session",
|
||||
agent: "代理",
|
||||
session: "工作階段",
|
||||
cwd: "CWD",
|
||||
resolved: "Resolved",
|
||||
security: "Security",
|
||||
@@ -290,10 +355,10 @@ export const zh_TW: TranslationMap = {
|
||||
overview: "概覽",
|
||||
channels: "頻道",
|
||||
instances: "實例",
|
||||
sessions: "會話",
|
||||
sessions: "工作階段",
|
||||
usage: "使用情況",
|
||||
cron: "定時任務",
|
||||
skills: "技能",
|
||||
skills: "Skills",
|
||||
nodes: "節點",
|
||||
chat: "聊天",
|
||||
config: "配置",
|
||||
@@ -358,9 +423,9 @@ export const zh_TW: TranslationMap = {
|
||||
stats: {
|
||||
instances: "實例",
|
||||
instancesHint: "過去 5 分鐘內的在線信號。",
|
||||
sessions: "會話",
|
||||
sessions: "工作階段",
|
||||
sessionsHint: "網關跟蹤的最近會話密鑰。",
|
||||
cron: "定時任務",
|
||||
cron: "Cron",
|
||||
cronNext: "下次喚醒 {time}",
|
||||
},
|
||||
notes: {
|
||||
@@ -412,8 +477,8 @@ export const zh_TW: TranslationMap = {
|
||||
copyCommandAria: "複製指令:{command}",
|
||||
},
|
||||
cards: {
|
||||
cost: "費用",
|
||||
skills: "技能",
|
||||
cost: "成本",
|
||||
skills: "Skills",
|
||||
recentSessions: "最近會話",
|
||||
modelAuth: "模型驗證",
|
||||
modelAuthOk: "{count} 正常",
|
||||
@@ -448,13 +513,13 @@ export const zh_TW: TranslationMap = {
|
||||
categories: {
|
||||
search: "搜尋",
|
||||
navigation: "導覽",
|
||||
skills: "技能",
|
||||
skills: "Skills",
|
||||
},
|
||||
items: {
|
||||
overview: "概覽",
|
||||
sessions: "工作階段",
|
||||
scheduled: "已排程",
|
||||
skills: "技能",
|
||||
skills: "Skills",
|
||||
settings: "設定",
|
||||
agents: "代理",
|
||||
shellCommand: "Shell 指令",
|
||||
@@ -818,6 +883,7 @@ export const zh_TW: TranslationMap = {
|
||||
chat: {
|
||||
disconnected: "已斷開與網關的連接。",
|
||||
refreshTitle: "刷新聊天數據",
|
||||
settings: "Chat settings",
|
||||
thinkingToggle: "切換助手思考/工作輸出",
|
||||
toolCallsToggle: "切換工具呼叫與工具結果",
|
||||
focusToggle: "切換專注模式 (隱藏側邊欄 + 頁面頁眉)",
|
||||
@@ -825,6 +891,15 @@ export const zh_TW: TranslationMap = {
|
||||
showCronSessions: "顯示定時任務會話",
|
||||
showCronSessionsHidden: "顯示定時任務會話 (已隱藏 {count} 個)",
|
||||
onboardingDisabled: "引導期間禁用",
|
||||
gatewayStatus: "Gateway status: {status}",
|
||||
commandPaletteTitle: "Search or jump to… (⌘K)",
|
||||
openCommandPalette: "Open command palette",
|
||||
docsOpensInNewTab: "{label} (opens in new tab)",
|
||||
updateAvailable: "Update available:",
|
||||
runningVersion: "running v{version}",
|
||||
updating: "Updating…",
|
||||
updateNow: "Update now",
|
||||
dismissUpdateBanner: "Dismiss update banner",
|
||||
},
|
||||
languages: {
|
||||
en: "英文",
|
||||
@@ -848,6 +923,64 @@ export const zh_TW: TranslationMap = {
|
||||
fa: "فارسی(波斯文)",
|
||||
},
|
||||
cron: {
|
||||
quickCreate: {
|
||||
schedules: {
|
||||
everyMorning: {
|
||||
label: "Every morning",
|
||||
description: "Daily at 8:00 AM",
|
||||
},
|
||||
everyEvening: {
|
||||
label: "Every evening",
|
||||
description: "Daily at 6:00 PM",
|
||||
},
|
||||
hourly: {
|
||||
label: "Hourly",
|
||||
description: "Every hour",
|
||||
},
|
||||
weekdays: {
|
||||
label: "Weekdays",
|
||||
description: "Mon–Fri at 9:00 AM",
|
||||
},
|
||||
weekly: {
|
||||
label: "Weekly",
|
||||
description: "Every Monday at 9:00 AM",
|
||||
},
|
||||
once: {
|
||||
label: "Run once",
|
||||
description: "One-time, delete after run",
|
||||
},
|
||||
},
|
||||
delivery: {
|
||||
notify: {
|
||||
label: "Notify me",
|
||||
description: "Deliver results to chat",
|
||||
},
|
||||
silent: {
|
||||
label: "Silent",
|
||||
description: "Run without notification",
|
||||
},
|
||||
isolated: {
|
||||
label: "Independent session",
|
||||
description: "Run in its own session",
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
},
|
||||
defaultName: "Automation",
|
||||
whatHeading: "What should it do?",
|
||||
whatHint: "Describe the task in natural language. The agent will run this prompt each time.",
|
||||
promptPlaceholder: "e.g., Check my inbox for urgent emails and summarize them...",
|
||||
nameOptional: "Name (optional)",
|
||||
namePlaceholder: "e.g., Morning inbox check",
|
||||
whenHeading: "When should it run?",
|
||||
whenHint: "Pick a schedule. You can fine-tune it later.",
|
||||
howHeading: "How should it work?",
|
||||
howHint: "Choose how results are delivered.",
|
||||
title: "New Automation",
|
||||
},
|
||||
summary: {
|
||||
enabled: "已啟用",
|
||||
yes: "是",
|
||||
|
||||
@@ -437,8 +437,8 @@ export function renderChatMobileToggle(state: AppViewState) {
|
||||
trigger: e.currentTarget as HTMLElement,
|
||||
});
|
||||
}}
|
||||
title="Chat settings"
|
||||
aria-label="Chat settings"
|
||||
title=${t("chat.settings")}
|
||||
aria-label=${t("chat.settings")}
|
||||
aria-expanded=${mobileControlsOpen}
|
||||
aria-controls=${controlsDropdownId}
|
||||
>
|
||||
@@ -599,11 +599,11 @@ function countHiddenCronSessions(sessionKey: string, sessions: SessionsListResul
|
||||
return sessions.sessions.filter((s) => isCronSessionKey(s.key) && s.key !== sessionKey).length;
|
||||
}
|
||||
|
||||
type ThemeModeOption = { id: ThemeMode; label: string; short: string };
|
||||
type ThemeModeOption = { id: ThemeMode; labelKey: string; short: string };
|
||||
const THEME_MODE_OPTIONS: ThemeModeOption[] = [
|
||||
{ id: "system", label: "System", short: "SYS" },
|
||||
{ id: "light", label: "Light", short: "LIGHT" },
|
||||
{ id: "dark", label: "Dark", short: "DARK" },
|
||||
{ id: "system", labelKey: "common.system", short: "SYS" },
|
||||
{ id: "light", labelKey: "common.light", short: "LIGHT" },
|
||||
{ id: "dark", labelKey: "common.dark", short: "DARK" },
|
||||
];
|
||||
|
||||
export function renderTopbarThemeModeToggle(state: AppViewState) {
|
||||
@@ -625,23 +625,24 @@ export function renderTopbarThemeModeToggle(state: AppViewState) {
|
||||
};
|
||||
|
||||
return html`
|
||||
<div class="topbar-theme-mode" role="group" aria-label="Color mode">
|
||||
${THEME_MODE_OPTIONS.map(
|
||||
(opt) => html`
|
||||
<div class="topbar-theme-mode" role="group" aria-label=${t("common.colorMode")}>
|
||||
${THEME_MODE_OPTIONS.map((opt) => {
|
||||
const label = t(opt.labelKey);
|
||||
return html`
|
||||
<button
|
||||
type="button"
|
||||
class="topbar-theme-mode__btn ${opt.id === state.themeMode
|
||||
? "topbar-theme-mode__btn--active"
|
||||
: ""}"
|
||||
title=${opt.label}
|
||||
aria-label="Color mode: ${opt.label}"
|
||||
title=${label}
|
||||
aria-label=${t("common.colorModeOption", { mode: label })}
|
||||
aria-pressed=${opt.id === state.themeMode}
|
||||
@click=${(e: Event) => applyMode(opt.id, e)}
|
||||
>
|
||||
${modeIcon(opt.id)}
|
||||
</button>
|
||||
`,
|
||||
)}
|
||||
`;
|
||||
})}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
@@ -657,8 +658,8 @@ export function renderSidebarConnectionStatus(state: AppViewState) {
|
||||
class="sidebar-version__status ${toneClass}"
|
||||
role="img"
|
||||
aria-live="polite"
|
||||
aria-label="Gateway status: ${label}"
|
||||
title="Gateway status: ${label}"
|
||||
aria-label=${t("chat.gatewayStatus", { status: label })}
|
||||
title=${t("chat.gatewayStatus", { status: label })}
|
||||
></span>
|
||||
`;
|
||||
}
|
||||
|
||||
@@ -1366,8 +1366,8 @@ export function renderApp(state: AppViewState) {
|
||||
@click=${() => {
|
||||
state.paletteOpen = !state.paletteOpen;
|
||||
}}
|
||||
title="Search or jump to… (⌘K)"
|
||||
aria-label="Open command palette"
|
||||
title=${t("chat.commandPaletteTitle")}
|
||||
aria-label=${t("chat.openCommandPalette")}
|
||||
>
|
||||
<span class="topbar-search__label">${t("common.search")}</span>
|
||||
<kbd class="topbar-search__kbd">⌘K</kbd>
|
||||
@@ -1461,7 +1461,7 @@ export function renderApp(state: AppViewState) {
|
||||
href="https://docs.openclaw.ai"
|
||||
target=${EXTERNAL_LINK_TARGET}
|
||||
rel=${buildExternalLinkRel()}
|
||||
title="${t("common.docs")} (opens in new tab)"
|
||||
title=${t("chat.docsOpensInNewTab", { label: t("common.docs") })}
|
||||
>
|
||||
<span class="nav-item__icon" aria-hidden="true">${icons.book}</span>
|
||||
${!navCollapsed
|
||||
@@ -1503,20 +1503,20 @@ export function renderApp(state: AppViewState) {
|
||||
state.updateAvailable.latestVersion !== state.updateAvailable.currentVersion &&
|
||||
!isUpdateBannerDismissed(state.updateAvailable)
|
||||
? html`<div class="update-banner callout danger" role="alert">
|
||||
<strong>Update available:</strong> v${state.updateAvailable.latestVersion} (running
|
||||
v${state.updateAvailable.currentVersion}).
|
||||
<strong>${t("chat.updateAvailable")}</strong> v${state.updateAvailable.latestVersion}
|
||||
(${t("chat.runningVersion", { version: state.updateAvailable.currentVersion })}).
|
||||
<button
|
||||
class="btn btn--sm update-banner__btn"
|
||||
?disabled=${state.updateRunning || !state.connected}
|
||||
@click=${() => runUpdate(state)}
|
||||
>
|
||||
${state.updateRunning ? "Updating…" : "Update now"}
|
||||
${state.updateRunning ? t("chat.updating") : t("chat.updateNow")}
|
||||
</button>
|
||||
<button
|
||||
class="update-banner__close"
|
||||
type="button"
|
||||
title="Dismiss"
|
||||
aria-label="Dismiss update banner"
|
||||
title=${t("common.dismiss")}
|
||||
aria-label=${t("chat.dismissUpdateBanner")}
|
||||
@click=${() => {
|
||||
dismissUpdateBanner(state.updateAvailable);
|
||||
state.updateAvailable = null;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import DOMPurify from "dompurify";
|
||||
import MarkdownIt from "markdown-it";
|
||||
import markdownItTaskLists from "markdown-it-task-lists";
|
||||
import { t } from "../i18n/index.ts";
|
||||
import { truncateText } from "./format.ts";
|
||||
import { normalizeLowercaseStringOrEmpty } from "./string-coerce.ts";
|
||||
|
||||
@@ -431,7 +432,7 @@ md.renderer.rules.fence = (tokens, idx) => {
|
||||
const codeBlock = `<pre><code${langClass}>${safeText}</code></pre>`;
|
||||
const langLabel = lang ? `<span class="code-block-lang">${escapeHtml(lang)}</span>` : "";
|
||||
const attrSafe = escapeHtml(text);
|
||||
const copyBtn = `<button type="button" class="code-block-copy" data-code="${attrSafe}" aria-label="Copy code"><span class="code-block-copy__idle">Copy</span><span class="code-block-copy__done">Copied!</span></button>`;
|
||||
const copyBtn = `<button type="button" class="code-block-copy" data-code="${attrSafe}" aria-label="${escapeHtml(t("common.copyCode"))}"><span class="code-block-copy__idle">${escapeHtml(t("common.copy"))}</span><span class="code-block-copy__done">${escapeHtml(t("common.copied"))}</span></button>`;
|
||||
const header = `<div class="code-block-header">${langLabel}${copyBtn}</div>`;
|
||||
|
||||
const trimmed = text.trim();
|
||||
@@ -457,7 +458,7 @@ md.renderer.rules.code_block = (tokens, idx) => {
|
||||
const safeText = escapeHtml(text);
|
||||
const codeBlock = `<pre><code>${safeText}</code></pre>`;
|
||||
const attrSafe = escapeHtml(text);
|
||||
const copyBtn = `<button type="button" class="code-block-copy" data-code="${attrSafe}" aria-label="Copy code"><span class="code-block-copy__idle">Copy</span><span class="code-block-copy__done">Copied!</span></button>`;
|
||||
const copyBtn = `<button type="button" class="code-block-copy" data-code="${attrSafe}" aria-label="${escapeHtml(t("common.copyCode"))}"><span class="code-block-copy__idle">${escapeHtml(t("common.copy"))}</span><span class="code-block-copy__done">${escapeHtml(t("common.copied"))}</span></button>`;
|
||||
const header = `<div class="code-block-header">${copyBtn}</div>`;
|
||||
|
||||
const trimmed = text.trim();
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
import { html, nothing } from "lit";
|
||||
import { t } from "../../i18n/index.ts";
|
||||
import { icons } from "../icons.ts";
|
||||
import type { CronFormState } from "../ui-types.ts";
|
||||
|
||||
@@ -45,30 +46,72 @@ type DeliveryPresetId = "notify" | "silent" | "isolated";
|
||||
|
||||
type SchedulePreset = {
|
||||
id: SchedulePresetId;
|
||||
label: string;
|
||||
labelKey: string;
|
||||
icon: string;
|
||||
description: string;
|
||||
descriptionKey: string;
|
||||
};
|
||||
|
||||
const SCHEDULE_PRESETS: SchedulePreset[] = [
|
||||
{ id: "every-morning", label: "Every morning", icon: "🌅", description: "Daily at 8:00 AM" },
|
||||
{ id: "every-evening", label: "Every evening", icon: "🌙", description: "Daily at 6:00 PM" },
|
||||
{ id: "hourly", label: "Hourly", icon: "🔄", description: "Every hour" },
|
||||
{ id: "weekdays", label: "Weekdays", icon: "📅", description: "Mon–Fri at 9:00 AM" },
|
||||
{ id: "weekly", label: "Weekly", icon: "📆", description: "Every Monday at 9:00 AM" },
|
||||
{ id: "once", label: "Run once", icon: "⚡", description: "One-time, delete after run" },
|
||||
{
|
||||
id: "every-morning",
|
||||
labelKey: "cron.quickCreate.schedules.everyMorning.label",
|
||||
icon: "🌅",
|
||||
descriptionKey: "cron.quickCreate.schedules.everyMorning.description",
|
||||
},
|
||||
{
|
||||
id: "every-evening",
|
||||
labelKey: "cron.quickCreate.schedules.everyEvening.label",
|
||||
icon: "🌙",
|
||||
descriptionKey: "cron.quickCreate.schedules.everyEvening.description",
|
||||
},
|
||||
{
|
||||
id: "hourly",
|
||||
labelKey: "cron.quickCreate.schedules.hourly.label",
|
||||
icon: "🔄",
|
||||
descriptionKey: "cron.quickCreate.schedules.hourly.description",
|
||||
},
|
||||
{
|
||||
id: "weekdays",
|
||||
labelKey: "cron.quickCreate.schedules.weekdays.label",
|
||||
icon: "📅",
|
||||
descriptionKey: "cron.quickCreate.schedules.weekdays.description",
|
||||
},
|
||||
{
|
||||
id: "weekly",
|
||||
labelKey: "cron.quickCreate.schedules.weekly.label",
|
||||
icon: "📆",
|
||||
descriptionKey: "cron.quickCreate.schedules.weekly.description",
|
||||
},
|
||||
{
|
||||
id: "once",
|
||||
labelKey: "cron.quickCreate.schedules.once.label",
|
||||
icon: "⚡",
|
||||
descriptionKey: "cron.quickCreate.schedules.once.description",
|
||||
},
|
||||
];
|
||||
|
||||
type DeliveryPreset = {
|
||||
id: DeliveryPresetId;
|
||||
label: string;
|
||||
description: string;
|
||||
labelKey: string;
|
||||
descriptionKey: string;
|
||||
};
|
||||
|
||||
const DELIVERY_PRESETS: DeliveryPreset[] = [
|
||||
{ id: "notify", label: "Notify me", description: "Deliver results to chat" },
|
||||
{ id: "silent", label: "Silent", description: "Run without notification" },
|
||||
{ id: "isolated", label: "Independent session", description: "Run in its own session" },
|
||||
{
|
||||
id: "notify",
|
||||
labelKey: "cron.quickCreate.delivery.notify.label",
|
||||
descriptionKey: "cron.quickCreate.delivery.notify.description",
|
||||
},
|
||||
{
|
||||
id: "silent",
|
||||
labelKey: "cron.quickCreate.delivery.silent.label",
|
||||
descriptionKey: "cron.quickCreate.delivery.silent.description",
|
||||
},
|
||||
{
|
||||
id: "isolated",
|
||||
labelKey: "cron.quickCreate.delivery.isolated.label",
|
||||
descriptionKey: "cron.quickCreate.delivery.isolated.description",
|
||||
},
|
||||
];
|
||||
|
||||
// ── Default draft ──
|
||||
@@ -97,7 +140,7 @@ function buildDefaultScheduleAt(now = new Date()): string {
|
||||
|
||||
export function draftToCronFormPatch(draft: CronQuickCreateDraft): Partial<CronFormState> {
|
||||
const patch: Partial<CronFormState> = {
|
||||
name: draft.name || "Automation",
|
||||
name: draft.name || t("cron.quickCreate.defaultName"),
|
||||
payloadKind: "agentTurn",
|
||||
deleteAfterRun: false,
|
||||
scheduleAt: "",
|
||||
@@ -163,9 +206,9 @@ export function draftToCronFormPatch(draft: CronQuickCreateDraft): Partial<CronF
|
||||
|
||||
const STEPS: CronQuickCreateStep[] = ["what", "when", "how"];
|
||||
const STEP_LABELS: Record<CronQuickCreateStep, string> = {
|
||||
what: "What",
|
||||
when: "When",
|
||||
how: "How",
|
||||
what: "cron.quickCreate.steps.what",
|
||||
when: "cron.quickCreate.steps.when",
|
||||
how: "cron.quickCreate.steps.how",
|
||||
};
|
||||
|
||||
function renderStepIndicator(current: CronQuickCreateStep) {
|
||||
@@ -177,7 +220,7 @@ function renderStepIndicator(current: CronQuickCreateStep) {
|
||||
return html`
|
||||
<div class="cqc-step cqc-step--${state}">
|
||||
<span class="cqc-step__dot">${state === "done" ? "✓" : idx + 1}</span>
|
||||
<span class="cqc-step__label">${STEP_LABELS[step]}</span>
|
||||
<span class="cqc-step__label">${t(STEP_LABELS[step])}</span>
|
||||
</div>
|
||||
${idx < STEPS.length - 1
|
||||
? html`<div class="cqc-step__line cqc-step__line--${state}"></div>`
|
||||
@@ -193,24 +236,22 @@ function renderStepIndicator(current: CronQuickCreateStep) {
|
||||
function renderWhatStep(props: CronQuickCreateProps) {
|
||||
return html`
|
||||
<div class="cqc-body">
|
||||
<h3 class="cqc-body__heading">What should it do?</h3>
|
||||
<p class="cqc-body__hint muted">
|
||||
Describe the task in natural language. The agent will run this prompt each time.
|
||||
</p>
|
||||
<h3 class="cqc-body__heading">${t("cron.quickCreate.whatHeading")}</h3>
|
||||
<p class="cqc-body__hint muted">${t("cron.quickCreate.whatHint")}</p>
|
||||
<textarea
|
||||
class="cqc-textarea"
|
||||
placeholder="e.g., Check my inbox for urgent emails and summarize them..."
|
||||
placeholder=${t("cron.quickCreate.promptPlaceholder")}
|
||||
rows="4"
|
||||
.value=${props.draft.prompt}
|
||||
@input=${(e: Event) =>
|
||||
props.onDraftChange({ prompt: (e.target as HTMLTextAreaElement).value })}
|
||||
></textarea>
|
||||
<div class="cqc-field">
|
||||
<label class="cqc-field__label">Name (optional)</label>
|
||||
<label class="cqc-field__label">${t("cron.quickCreate.nameOptional")}</label>
|
||||
<input
|
||||
class="cqc-input"
|
||||
type="text"
|
||||
placeholder="e.g., Morning inbox check"
|
||||
placeholder=${t("cron.quickCreate.namePlaceholder")}
|
||||
.value=${props.draft.name}
|
||||
@input=${(e: Event) =>
|
||||
props.onDraftChange({ name: (e.target as HTMLInputElement).value })}
|
||||
@@ -218,13 +259,13 @@ function renderWhatStep(props: CronQuickCreateProps) {
|
||||
</div>
|
||||
</div>
|
||||
<div class="cqc-actions">
|
||||
<button class="btn" @click=${props.onCancel}>Cancel</button>
|
||||
<button class="btn" @click=${props.onCancel}>${t("common.cancel")}</button>
|
||||
<button
|
||||
class="btn primary"
|
||||
?disabled=${!props.draft.prompt.trim()}
|
||||
@click=${() => props.onStepChange("when")}
|
||||
>
|
||||
Next ${icons.chevronRight}
|
||||
${t("common.next")} ${icons.chevronRight}
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
@@ -233,8 +274,8 @@ function renderWhatStep(props: CronQuickCreateProps) {
|
||||
function renderWhenStep(props: CronQuickCreateProps) {
|
||||
return html`
|
||||
<div class="cqc-body">
|
||||
<h3 class="cqc-body__heading">When should it run?</h3>
|
||||
<p class="cqc-body__hint muted">Pick a schedule. You can fine-tune it later.</p>
|
||||
<h3 class="cqc-body__heading">${t("cron.quickCreate.whenHeading")}</h3>
|
||||
<p class="cqc-body__hint muted">${t("cron.quickCreate.whenHint")}</p>
|
||||
<div class="cqc-preset-grid">
|
||||
${SCHEDULE_PRESETS.map(
|
||||
(preset) => html`
|
||||
@@ -245,17 +286,17 @@ function renderWhenStep(props: CronQuickCreateProps) {
|
||||
@click=${() => props.onDraftChange({ schedulePreset: preset.id })}
|
||||
>
|
||||
<span class="cqc-preset-card__icon">${preset.icon}</span>
|
||||
<span class="cqc-preset-card__label">${preset.label}</span>
|
||||
<span class="cqc-preset-card__desc muted">${preset.description}</span>
|
||||
<span class="cqc-preset-card__label">${t(preset.labelKey)}</span>
|
||||
<span class="cqc-preset-card__desc muted">${t(preset.descriptionKey)}</span>
|
||||
</button>
|
||||
`,
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cqc-actions">
|
||||
<button class="btn" @click=${() => props.onStepChange("what")}>Back</button>
|
||||
<button class="btn" @click=${() => props.onStepChange("what")}>${t("common.back")}</button>
|
||||
<button class="btn primary" @click=${() => props.onStepChange("how")}>
|
||||
Next ${icons.chevronRight}
|
||||
${t("common.next")} ${icons.chevronRight}
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
@@ -264,8 +305,8 @@ function renderWhenStep(props: CronQuickCreateProps) {
|
||||
function renderHowStep(props: CronQuickCreateProps) {
|
||||
return html`
|
||||
<div class="cqc-body">
|
||||
<h3 class="cqc-body__heading">How should it work?</h3>
|
||||
<p class="cqc-body__hint muted">Choose how results are delivered.</p>
|
||||
<h3 class="cqc-body__heading">${t("cron.quickCreate.howHeading")}</h3>
|
||||
<p class="cqc-body__hint muted">${t("cron.quickCreate.howHint")}</p>
|
||||
<div class="cqc-delivery-options">
|
||||
${DELIVERY_PRESETS.map(
|
||||
(preset) => html`
|
||||
@@ -280,16 +321,18 @@ function renderHowStep(props: CronQuickCreateProps) {
|
||||
.checked=${props.draft.deliveryPreset === preset.id}
|
||||
@change=${() => props.onDraftChange({ deliveryPreset: preset.id })}
|
||||
/>
|
||||
<span class="cqc-radio-card__label">${preset.label}</span>
|
||||
<span class="cqc-radio-card__desc muted">${preset.description}</span>
|
||||
<span class="cqc-radio-card__label">${t(preset.labelKey)}</span>
|
||||
<span class="cqc-radio-card__desc muted">${t(preset.descriptionKey)}</span>
|
||||
</label>
|
||||
`,
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cqc-actions">
|
||||
<button class="btn" @click=${() => props.onStepChange("when")}>Back</button>
|
||||
<button class="btn primary" @click=${props.onCreate}>Create ${icons.check}</button>
|
||||
<button class="btn" @click=${() => props.onStepChange("when")}>${t("common.back")}</button>
|
||||
<button class="btn primary" @click=${props.onCreate}>
|
||||
${t("common.create")} ${icons.check}
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
@@ -304,7 +347,7 @@ export function renderCronQuickCreate(props: CronQuickCreateProps) {
|
||||
return html`
|
||||
<div class="cqc-container">
|
||||
<div class="cqc-header">
|
||||
<h2 class="cqc-header__title">${icons.zap} New Automation</h2>
|
||||
<h2 class="cqc-header__title">${icons.zap} ${t("cron.quickCreate.title")}</h2>
|
||||
<button class="cqc-header__close" @click=${props.onCancel}>${icons.x}</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -68,17 +68,8 @@ export type SessionsProps = {
|
||||
};
|
||||
|
||||
const DEFAULT_THINK_LEVELS = ["off", "minimal", "low", "medium", "high"] as const;
|
||||
const VERBOSE_LEVELS = [
|
||||
{ value: "", label: "inherit" },
|
||||
{ value: "off", label: "off (explicit)" },
|
||||
{ value: "on", label: "on" },
|
||||
{ value: "full", label: "full" },
|
||||
] as const;
|
||||
const FAST_LEVELS = [
|
||||
{ value: "", label: "inherit" },
|
||||
{ value: "on", label: "on" },
|
||||
{ value: "off", label: "off" },
|
||||
] as const;
|
||||
const VERBOSE_LEVEL_VALUES = ["", "off", "on", "full"] as const;
|
||||
const FAST_LEVEL_VALUES = ["", "on", "off"] as const;
|
||||
const REASONING_LEVELS = ["", "off", "on", "stream"] as const;
|
||||
const PAGE_SIZES = [10, 25, 50, 100] as const;
|
||||
|
||||
@@ -98,7 +89,9 @@ function normalizeThinkingOptionValue(raw: string): string {
|
||||
function resolveThinkLevelOptions(
|
||||
row: GatewaySessionRow,
|
||||
): readonly { value: string; label: string }[] {
|
||||
const defaultLabel = row.thinkingDefault ? `Default (${row.thinkingDefault})` : "inherit";
|
||||
const defaultLabel = row.thinkingDefault
|
||||
? t("sessionsView.defaultOption", { value: row.thinkingDefault })
|
||||
: t("sessionsView.inherit");
|
||||
const options: readonly GatewayThinkingLevelOption[] = row.thinkingLevels?.length
|
||||
? row.thinkingLevels
|
||||
: (row.thinkingOptions?.length ? row.thinkingOptions : DEFAULT_THINK_LEVELS).map((label) => ({
|
||||
@@ -134,7 +127,29 @@ function withCurrentLabeledOption(
|
||||
if (options.some((option) => option.value === current)) {
|
||||
return [...options];
|
||||
}
|
||||
return [...options, { value: current, label: `${current} (custom)` }];
|
||||
return [
|
||||
...options,
|
||||
{ value: current, label: t("sessionsView.customOption", { value: current }) },
|
||||
];
|
||||
}
|
||||
|
||||
function buildVerboseLevelOptions(): Array<{ value: string; label: string }> {
|
||||
return VERBOSE_LEVEL_VALUES.map((value) => ({
|
||||
value,
|
||||
label:
|
||||
value === ""
|
||||
? t("sessionsView.inherit")
|
||||
: value === "off"
|
||||
? t("sessionsView.offExplicit")
|
||||
: t(`sessionsView.${value}`),
|
||||
}));
|
||||
}
|
||||
|
||||
function buildFastLevelOptions(): Array<{ value: string; label: string }> {
|
||||
return FAST_LEVEL_VALUES.map((value) => ({
|
||||
value,
|
||||
label: value === "" ? t("sessionsView.inherit") : t(`sessionsView.${value}`),
|
||||
}));
|
||||
}
|
||||
|
||||
function resolveThinkLevelPatchValue(value: string): string | null {
|
||||
@@ -209,13 +224,13 @@ function paginateRows<T>(rows: T[], page: number, pageSize: number): T[] {
|
||||
function formatCheckpointReason(reason: SessionCompactionCheckpoint["reason"]): string {
|
||||
switch (reason) {
|
||||
case "manual":
|
||||
return "manual";
|
||||
return t("sessionsView.manual");
|
||||
case "auto-threshold":
|
||||
return "auto-threshold";
|
||||
return t("sessionsView.autoThreshold");
|
||||
case "overflow-retry":
|
||||
return "overflow retry";
|
||||
return t("sessionsView.overflowRetry");
|
||||
case "timeout-retry":
|
||||
return "timeout retry";
|
||||
return t("sessionsView.timeoutRetry");
|
||||
default:
|
||||
return reason;
|
||||
}
|
||||
@@ -228,12 +243,15 @@ function formatCheckpointDelta(checkpoint: SessionCompactionCheckpoint): string
|
||||
Number.isFinite(checkpoint.tokensBefore) &&
|
||||
Number.isFinite(checkpoint.tokensAfter)
|
||||
) {
|
||||
return `${checkpoint.tokensBefore.toLocaleString()} → ${checkpoint.tokensAfter.toLocaleString()} tokens`;
|
||||
return t("sessionsView.tokenRange", {
|
||||
before: checkpoint.tokensBefore.toLocaleString(),
|
||||
after: checkpoint.tokensAfter.toLocaleString(),
|
||||
});
|
||||
}
|
||||
if (typeof checkpoint.tokensBefore === "number" && Number.isFinite(checkpoint.tokensBefore)) {
|
||||
return `${checkpoint.tokensBefore.toLocaleString()} tokens before`;
|
||||
return t("sessionsView.tokensBefore", { count: checkpoint.tokensBefore.toLocaleString() });
|
||||
}
|
||||
return "token delta unavailable";
|
||||
return t("sessionsView.tokenDeltaUnavailable");
|
||||
}
|
||||
|
||||
export function renderSessions(props: SessionsProps) {
|
||||
@@ -269,11 +287,11 @@ export function renderSessions(props: SessionsProps) {
|
||||
<section class="card">
|
||||
<div class="row" style="justify-content: space-between; margin-bottom: 12px;">
|
||||
<div>
|
||||
<div class="card-title">Sessions</div>
|
||||
<div class="card-title">${t("sessionsView.title")}</div>
|
||||
<div class="card-sub">
|
||||
${props.result
|
||||
? `Store: ${props.result.path}`
|
||||
: "Active session keys and per-session overrides."}
|
||||
? t("sessionsView.store", { path: props.result.path })
|
||||
: t("sessionsView.subtitle")}
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn" ?disabled=${props.loading} @click=${props.onRefresh}>
|
||||
@@ -283,10 +301,10 @@ export function renderSessions(props: SessionsProps) {
|
||||
|
||||
<div class="filters" style="margin-bottom: 12px;">
|
||||
<label class="field-inline">
|
||||
<span>Active</span>
|
||||
<span>${t("sessionsView.active")}</span>
|
||||
<input
|
||||
style="width: 72px;"
|
||||
placeholder="min"
|
||||
placeholder=${t("sessionsView.minutesPlaceholder")}
|
||||
.value=${props.activeMinutes}
|
||||
@input=${(e: Event) =>
|
||||
props.onFiltersChange({
|
||||
@@ -298,7 +316,7 @@ export function renderSessions(props: SessionsProps) {
|
||||
/>
|
||||
</label>
|
||||
<label class="field-inline">
|
||||
<span>Limit</span>
|
||||
<span>${t("sessionsView.limit")}</span>
|
||||
<input
|
||||
style="width: 64px;"
|
||||
.value=${props.limit}
|
||||
@@ -323,7 +341,7 @@ export function renderSessions(props: SessionsProps) {
|
||||
includeUnknown: props.includeUnknown,
|
||||
})}
|
||||
/>
|
||||
<span>Global</span>
|
||||
<span>${t("sessionsView.global")}</span>
|
||||
</label>
|
||||
<label class="field-inline checkbox">
|
||||
<input
|
||||
@@ -337,7 +355,7 @@ export function renderSessions(props: SessionsProps) {
|
||||
includeUnknown: (e.target as HTMLInputElement).checked,
|
||||
})}
|
||||
/>
|
||||
<span>Unknown</span>
|
||||
<span>${t("sessionsView.unknown")}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@@ -350,7 +368,7 @@ export function renderSessions(props: SessionsProps) {
|
||||
<div class="data-table-search">
|
||||
<input
|
||||
type="text"
|
||||
placeholder="Filter by key, agent, label, kind…"
|
||||
placeholder=${t("sessionsView.searchPlaceholder")}
|
||||
.value=${props.searchQuery}
|
||||
@input=${(e: Event) => props.onSearchChange((e.target as HTMLInputElement).value)}
|
||||
/>
|
||||
@@ -360,7 +378,9 @@ export function renderSessions(props: SessionsProps) {
|
||||
${props.selectedKeys.size > 0
|
||||
? html`
|
||||
<div class="data-table-bulk-bar">
|
||||
<span>${props.selectedKeys.size} selected</span>
|
||||
<span
|
||||
>${t("sessionsView.selected", { count: String(props.selectedKeys.size) })}</span
|
||||
>
|
||||
<button class="btn btn--sm" @click=${props.onDeselectAll}>
|
||||
${t("common.unselect")}
|
||||
</button>
|
||||
@@ -369,7 +389,7 @@ export function renderSessions(props: SessionsProps) {
|
||||
?disabled=${props.loading}
|
||||
@click=${props.onDeleteSelected}
|
||||
>
|
||||
${icons.trash} Delete
|
||||
${icons.trash} ${t("sessionsView.deleteSelected")}
|
||||
</button>
|
||||
</div>
|
||||
`
|
||||
@@ -395,19 +415,20 @@ export function renderSessions(props: SessionsProps) {
|
||||
props.onSelectPage(paginated.map((r) => r.key));
|
||||
}
|
||||
}}
|
||||
aria-label="Select all on page"
|
||||
aria-label=${t("sessionsView.selectAllOnPage")}
|
||||
/>`
|
||||
: nothing}
|
||||
</th>
|
||||
${sortHeader("key", "Key", "data-table-key-col")}
|
||||
<th>Label</th>
|
||||
${sortHeader("kind", "Kind")} ${sortHeader("updated", "Updated")}
|
||||
${sortHeader("tokens", "Tokens")}
|
||||
<th>Compaction</th>
|
||||
<th>Thinking</th>
|
||||
<th>Fast</th>
|
||||
<th>Verbose</th>
|
||||
<th>Reasoning</th>
|
||||
${sortHeader("key", t("sessionsView.key"), "data-table-key-col")}
|
||||
<th>${t("sessionsView.label")}</th>
|
||||
${sortHeader("kind", t("sessionsView.kind"))}
|
||||
${sortHeader("updated", t("sessionsView.updated"))}
|
||||
${sortHeader("tokens", t("sessionsView.tokens"))}
|
||||
<th>${t("sessionsView.compaction")}</th>
|
||||
<th>${t("sessionsView.thinking")}</th>
|
||||
<th>${t("sessionsView.fast")}</th>
|
||||
<th>${t("sessionsView.verbose")}</th>
|
||||
<th>${t("sessionsView.reasoning")}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -418,7 +439,7 @@ export function renderSessions(props: SessionsProps) {
|
||||
colspan="11"
|
||||
style="text-align: center; padding: 48px 16px; color: var(--muted)"
|
||||
>
|
||||
No sessions found.
|
||||
${t("sessionsView.noSessions")}
|
||||
</td>
|
||||
</tr>
|
||||
`
|
||||
@@ -450,7 +471,7 @@ export function renderSessions(props: SessionsProps) {
|
||||
?disabled=${page >= totalPages - 1}
|
||||
@click=${() => props.onPageChange(page + 1)}
|
||||
>
|
||||
Next
|
||||
${t("common.next")}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -467,9 +488,9 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
const thinking = rawThinking ? normalizeThinkingOptionValue(rawThinking) : "";
|
||||
const thinkLevels = withCurrentLabeledOption(resolveThinkLevelOptions(row), thinking);
|
||||
const fastMode = row.fastMode === true ? "on" : row.fastMode === false ? "off" : "";
|
||||
const fastLevels = withCurrentLabeledOption(FAST_LEVELS, fastMode);
|
||||
const fastLevels = withCurrentLabeledOption(buildFastLevelOptions(), fastMode);
|
||||
const verbose = row.verboseLevel ?? "";
|
||||
const verboseLevels = withCurrentLabeledOption(VERBOSE_LEVELS, verbose);
|
||||
const verboseLevels = withCurrentLabeledOption(buildVerboseLevelOptions(), verbose);
|
||||
const reasoning = row.reasoningLevel ?? "";
|
||||
const reasoningLevels = withCurrentOption(REASONING_LEVELS, reasoning);
|
||||
const latestCheckpoint = row.latestCompactionCheckpoint;
|
||||
@@ -513,7 +534,7 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
type="checkbox"
|
||||
.checked=${props.selectedKeys.has(row.key)}
|
||||
@change=${() => props.onToggleSelect(row.key)}
|
||||
aria-label="Select session"
|
||||
aria-label=${t("sessionsView.selectSession")}
|
||||
/>
|
||||
</td>
|
||||
<td class="data-table-key-col">
|
||||
@@ -553,7 +574,7 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
<input
|
||||
.value=${row.label ?? ""}
|
||||
?disabled=${props.loading}
|
||||
placeholder="(optional)"
|
||||
placeholder=${t("sessionsView.optionalPlaceholder")}
|
||||
style="width: 100%; max-width: 140px; padding: 6px 10px; font-size: 13px; border: 1px solid var(--border); border-radius: var(--radius-sm);"
|
||||
@change=${(e: Event) => {
|
||||
const value = normalizeOptionalString((e.target as HTMLInputElement).value) ?? null;
|
||||
@@ -570,8 +591,10 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
<div style="display: grid; gap: 6px;">
|
||||
<span class="muted" style="font-size: 12px;">
|
||||
${checkpointCount > 0
|
||||
? `${checkpointCount} checkpoint${checkpointCount === 1 ? "" : "s"}`
|
||||
: "none"}
|
||||
? checkpointCount === 1
|
||||
? t("sessionsView.checkpoint", { count: String(checkpointCount) })
|
||||
: t("sessionsView.checkpoints", { count: String(checkpointCount) })
|
||||
: t("common.none")}
|
||||
</span>
|
||||
${latestCheckpoint
|
||||
? html`
|
||||
@@ -586,7 +609,7 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
?disabled=${props.checkpointLoadingKey === row.key}
|
||||
@click=${() => props.onToggleCheckpointDetails(row.key)}
|
||||
>
|
||||
${isExpanded ? "Hide checkpoints" : "Show checkpoints"}
|
||||
${isExpanded ? t("sessionsView.hideCheckpoints") : t("sessionsView.showCheckpoints")}
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
@@ -655,7 +678,7 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
${reasoningLevels.map(
|
||||
(level) =>
|
||||
html`<option value=${level} ?selected=${reasoning === level}>
|
||||
${level || "inherit"}
|
||||
${level || t("sessionsView.inherit")}
|
||||
</option>`,
|
||||
)}
|
||||
</select>
|
||||
@@ -669,13 +692,11 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
style="padding: 14px 16px; border-top: 1px solid var(--border); background: var(--surface-2, rgba(127, 127, 127, 0.05));"
|
||||
>
|
||||
${props.checkpointLoadingKey === row.key
|
||||
? html`<div class="muted">Loading checkpoints…</div>`
|
||||
? html`<div class="muted">${t("sessionsView.loadingCheckpoints")}</div>`
|
||||
: checkpointError
|
||||
? html`<div class="callout danger">${checkpointError}</div>`
|
||||
: checkpointItems.length === 0
|
||||
? html`<div class="muted">
|
||||
No compaction checkpoints recorded for this session.
|
||||
</div>`
|
||||
? html`<div class="muted">${t("sessionsView.noCheckpoints")}</div>`
|
||||
: html`
|
||||
<div style="display: grid; gap: 10px;">
|
||||
${checkpointItems.map(
|
||||
@@ -698,7 +719,7 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
? html`<div style="white-space: pre-wrap;">
|
||||
${checkpoint.summary}
|
||||
</div>`
|
||||
: html`<div class="muted">No summary captured.</div>`}
|
||||
: html`<div class="muted">${t("sessionsView.noSummary")}</div>`}
|
||||
<div style="display: flex; gap: 8px; flex-wrap: wrap;">
|
||||
<button
|
||||
class="btn btn--sm"
|
||||
@@ -710,7 +731,7 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
checkpoint.checkpointId,
|
||||
)}
|
||||
>
|
||||
Branch from checkpoint
|
||||
${t("sessionsView.branchFromCheckpoint")}
|
||||
</button>
|
||||
<button
|
||||
class="btn btn--sm"
|
||||
@@ -719,7 +740,7 @@ function renderRows(row: GatewaySessionRow, props: SessionsProps) {
|
||||
@click=${() =>
|
||||
props.onRestoreCheckpoint(row.key, checkpoint.checkpointId)}
|
||||
>
|
||||
Restore
|
||||
${t("sessionsView.restoreCheckpoint")}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user