mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-23 19:08:22 -06:00
feat: session menu adds Open PR, Open in editor, and numbered group shortcuts (#104154)
* feat(ui): add Open PR, Open in editor, and numbered group shortcuts to the session menu * fix(ui): lift session menu to popover top layer and use shadow tokens
This commit is contained in:
committed by
GitHub
parent
487ab99dc2
commit
cb64117416
@@ -28,8 +28,10 @@ import "./theme-mode-toggle.ts";
|
||||
import "./tooltip.ts";
|
||||
import type { ThemeMode } from "../app/theme.ts";
|
||||
import { t } from "../i18n/index.ts";
|
||||
import { editorOpenUrl } from "../lib/editor-links.ts";
|
||||
import { buildExternalLinkRel, EXTERNAL_LINK_TARGET } from "../lib/external-link.ts";
|
||||
import { formatRelativeTimestamp } from "../lib/format.ts";
|
||||
import { isGatewayMethodAdvertised } from "../lib/gateway-methods.ts";
|
||||
import { startHoverMarquee, stopHoverMarquee } from "../lib/hover-marquee.ts";
|
||||
import {
|
||||
channelDisplayLabel,
|
||||
@@ -72,7 +74,8 @@ import { getSafeLocalStorage } from "../local-storage.ts";
|
||||
import { pluginTabKey, pluginTabSearch } from "../pages/plugin/route.ts";
|
||||
import { icons, type IconName } from "./icons.ts";
|
||||
import { lobsterPetSeed, resolveLobsterPetMode, resolveLobsterRunOutcome } from "./lobster-pet.ts";
|
||||
import type { SessionMenuAction } from "./session-menu.ts";
|
||||
import { fetchSessionMenuWork } from "./session-menu-work.ts";
|
||||
import type { SessionMenuAction, SessionMenuWork } from "./session-menu.ts";
|
||||
|
||||
type SidebarRecentSession = {
|
||||
key: string;
|
||||
@@ -90,6 +93,7 @@ type SidebarRecentSession = {
|
||||
channel?: string;
|
||||
channelSession?: boolean;
|
||||
workSession?: boolean;
|
||||
worktreeId?: string;
|
||||
unread: boolean;
|
||||
};
|
||||
|
||||
@@ -198,6 +202,7 @@ class AppSidebar extends OpenClawLightDomContentsElement {
|
||||
private context?: ApplicationContext<RouteId>;
|
||||
@state() private customizeMenuPosition: { x: number; y: number } | null = null;
|
||||
@state() private sessionMenu: SidebarSessionMenuState | null = null;
|
||||
@state() private sessionMenuWork: SessionMenuWork | null = null;
|
||||
@state() private sessionGroupMenu: SidebarSessionGroupMenuState | null = null;
|
||||
@state() private draggingSessionKey: string | null = null;
|
||||
@state() private draggingSessionGroup: string | null = null;
|
||||
@@ -214,6 +219,9 @@ class AppSidebar extends OpenClawLightDomContentsElement {
|
||||
private readonly subscriptions = new SubscriptionsController(this);
|
||||
private customizeMenuTrigger: HTMLElement | null = null;
|
||||
private sessionMenuTrigger: HTMLElement | null = null;
|
||||
// Guards the async work fetch: a menu reopened for another session must not
|
||||
// adopt a stale response.
|
||||
private sessionMenuWorkVersion = 0;
|
||||
private sessionGroupMenuTrigger: HTMLElement | null = null;
|
||||
private sessionSortMenuTrigger: HTMLElement | null = null;
|
||||
private sessionRowsByAgent: Record<string, SessionsListResult["sessions"]> = {};
|
||||
@@ -456,6 +464,7 @@ class AppSidebar extends OpenClawLightDomContentsElement {
|
||||
channel: channelInfo.channel,
|
||||
channelSession: channelInfo.channelSession,
|
||||
workSession: Boolean(row.worktree || row.execNode),
|
||||
worktreeId: row.worktree?.id,
|
||||
unread: row.unread === true,
|
||||
};
|
||||
};
|
||||
@@ -620,11 +629,43 @@ class AppSidebar extends OpenClawLightDomContentsElement {
|
||||
this.closeSessionSortMenu();
|
||||
this.sessionMenuTrigger = trigger;
|
||||
this.sessionMenu = { session, x, y };
|
||||
this.loadSessionMenuWork(session);
|
||||
}
|
||||
|
||||
private closeSessionMenu() {
|
||||
this.sessionMenuTrigger = null;
|
||||
this.sessionMenu = null;
|
||||
this.sessionMenuWorkVersion += 1;
|
||||
this.sessionMenuWork = null;
|
||||
}
|
||||
|
||||
private loadSessionMenuWork(session: SidebarRecentSession) {
|
||||
const version = ++this.sessionMenuWorkVersion;
|
||||
if (!session.worktreeId) {
|
||||
this.sessionMenuWork = null;
|
||||
return;
|
||||
}
|
||||
this.sessionMenuWork = { loading: true, pullRequestUrl: null, worktreePath: null };
|
||||
const context = this.context;
|
||||
const client = context?.gateway.snapshot.client;
|
||||
if (!context || !client) {
|
||||
this.sessionMenuWork = { loading: false, pullRequestUrl: null, worktreePath: null };
|
||||
return;
|
||||
}
|
||||
const { selectedAgentId } = this.getSessionNavigationState();
|
||||
void fetchSessionMenuWork({
|
||||
client,
|
||||
pullRequestsAvailable:
|
||||
isGatewayMethodAdvertised(context.gateway.snapshot, "controlUi.sessionPullRequests") ===
|
||||
true,
|
||||
sessionKey: session.key,
|
||||
agentId: parseAgentSessionKey(session.key)?.agentId ?? selectedAgentId,
|
||||
worktreeId: session.worktreeId,
|
||||
}).then((work) => {
|
||||
if (version === this.sessionMenuWorkVersion) {
|
||||
this.sessionMenuWork = { loading: false, ...work };
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private openSessionGroupMenu(group: string, x: number, y: number, trigger: HTMLElement | null) {
|
||||
@@ -1127,6 +1168,7 @@ class AppSidebar extends OpenClawLightDomContentsElement {
|
||||
.archiveAllowed=${archiveAllowed}
|
||||
.groups=${this.knownSessionGroups()}
|
||||
.canOpenChat=${true}
|
||||
.work=${this.sessionMenuWork}
|
||||
.workboard=${null}
|
||||
.onClose=${() => this.closeSessionMenu()}
|
||||
.onAction=${(action: SessionMenuAction) => {
|
||||
@@ -1134,6 +1176,13 @@ class AppSidebar extends OpenClawLightDomContentsElement {
|
||||
case "open-chat":
|
||||
this.selectSession(session.key);
|
||||
break;
|
||||
case "open-pr":
|
||||
window.open(action.url, "_blank", "noopener");
|
||||
break;
|
||||
case "open-in":
|
||||
// A custom-scheme window hands off to the OS without navigating this page.
|
||||
window.open(editorOpenUrl(action.editor, action.path));
|
||||
break;
|
||||
case "toggle-pin":
|
||||
void this.patchSession(session, { pinned: !session.pinned });
|
||||
break;
|
||||
|
||||
@@ -12,9 +12,10 @@ export function activateMenuShortcut(root: ParentNode, event: KeyboardEvent): bo
|
||||
return false;
|
||||
}
|
||||
const key = event.key.toLowerCase();
|
||||
// Letters only: keeps the querySelector below safe and leaves navigation
|
||||
// keys (arrows, Tab, Enter) to native menu focus handling.
|
||||
if (!/^[a-z]$/.test(key)) {
|
||||
// Letters and digits only (digits number submenu entries): keeps the
|
||||
// querySelector below safe and leaves navigation keys (arrows, Tab, Enter)
|
||||
// to native menu focus handling.
|
||||
if (!/^[a-z0-9]$/.test(key)) {
|
||||
return false;
|
||||
}
|
||||
const item = root.querySelector<HTMLButtonElement>(`button[data-shortcut="${key}"]`);
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import type { ControlUiSessionPullRequest } from "../../../src/gateway/control-ui-contract.js";
|
||||
import { fetchSessionMenuWork, pickSessionMenuPullRequestUrl } from "./session-menu-work.ts";
|
||||
|
||||
function pullRequest(overrides: Partial<ControlUiSessionPullRequest>): ControlUiSessionPullRequest {
|
||||
return {
|
||||
number: 1,
|
||||
owner: "openclaw",
|
||||
repo: "openclaw",
|
||||
branch: "feature/demo",
|
||||
title: "Demo",
|
||||
url: "https://github.com/openclaw/openclaw/pull/1",
|
||||
state: "open",
|
||||
...overrides,
|
||||
};
|
||||
}
|
||||
|
||||
describe("pickSessionMenuPullRequestUrl", () => {
|
||||
it("prefers active PRs over merged and closed ones", () => {
|
||||
expect(
|
||||
pickSessionMenuPullRequestUrl([
|
||||
pullRequest({ state: "closed", url: "https://example.test/closed" }),
|
||||
pullRequest({ state: "merged", url: "https://example.test/merged" }),
|
||||
pullRequest({ state: "draft", url: "https://example.test/draft" }),
|
||||
]),
|
||||
).toBe("https://example.test/draft");
|
||||
expect(pickSessionMenuPullRequestUrl([])).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe("fetchSessionMenuWork", () => {
|
||||
it("resolves the PR URL and worktree path in one pass", async () => {
|
||||
const request = vi.fn((method: string) => {
|
||||
if (method === "controlUi.sessionPullRequests") {
|
||||
return Promise.resolve({
|
||||
pullRequests: [pullRequest({ url: "https://example.test/pr" })],
|
||||
rateLimited: false,
|
||||
});
|
||||
}
|
||||
return Promise.resolve({
|
||||
worktrees: [
|
||||
{
|
||||
id: "wt-1",
|
||||
path: "/work/trees/demo",
|
||||
removedAt: undefined,
|
||||
},
|
||||
{
|
||||
id: "wt-removed",
|
||||
path: "/work/trees/stale",
|
||||
removedAt: 123,
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
await expect(
|
||||
fetchSessionMenuWork({
|
||||
client: { request: request as never },
|
||||
pullRequestsAvailable: true,
|
||||
sessionKey: "agent:main:demo",
|
||||
agentId: "main",
|
||||
worktreeId: "wt-1",
|
||||
}),
|
||||
).resolves.toEqual({
|
||||
pullRequestUrl: "https://example.test/pr",
|
||||
worktreePath: "/work/trees/demo",
|
||||
});
|
||||
expect(request).toHaveBeenCalledWith("controlUi.sessionPullRequests", {
|
||||
sessionKey: "agent:main:demo",
|
||||
agentId: "main",
|
||||
});
|
||||
});
|
||||
|
||||
it("returns nulls when the PR surface is absent, the worktree is removed, or requests fail", async () => {
|
||||
const failing = vi.fn(() => Promise.reject(new Error("offline")));
|
||||
await expect(
|
||||
fetchSessionMenuWork({
|
||||
client: { request: failing as never },
|
||||
pullRequestsAvailable: true,
|
||||
sessionKey: "agent:main:demo",
|
||||
worktreeId: "wt-1",
|
||||
}),
|
||||
).resolves.toEqual({ pullRequestUrl: null, worktreePath: null });
|
||||
|
||||
const request = vi.fn(() =>
|
||||
Promise.resolve({ worktrees: [{ id: "wt-1", path: "/gone", removedAt: 5 }] }),
|
||||
);
|
||||
await expect(
|
||||
fetchSessionMenuWork({
|
||||
client: { request: request as never },
|
||||
pullRequestsAvailable: false,
|
||||
sessionKey: "agent:main:demo",
|
||||
worktreeId: "wt-1",
|
||||
}),
|
||||
).resolves.toEqual({ pullRequestUrl: null, worktreePath: null });
|
||||
expect(request).toHaveBeenCalledTimes(1);
|
||||
expect(request).toHaveBeenCalledWith("worktrees.list", {});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,92 @@
|
||||
import type { WorktreeRecord } from "../../../packages/gateway-protocol/src/index.js";
|
||||
import type {
|
||||
ControlUiSessionPullRequest,
|
||||
ControlUiSessionPullRequests,
|
||||
} from "../../../src/gateway/control-ui-contract.js";
|
||||
|
||||
// Shared by the app sidebar and the Sessions page: both hosts resolve the
|
||||
// same worktree-session extras (PR link, checkout path) when opening the
|
||||
// session context menu, after the menu is already visible.
|
||||
export type SessionMenuWorkClient = {
|
||||
request: <T>(method: string, params?: unknown) => Promise<T>;
|
||||
};
|
||||
|
||||
export type SessionMenuWorkParams = {
|
||||
client: SessionMenuWorkClient;
|
||||
/** controlUi.sessionPullRequests is optional gateway surface; skip when absent. */
|
||||
pullRequestsAvailable: boolean;
|
||||
sessionKey: string;
|
||||
agentId?: string;
|
||||
worktreeId?: string;
|
||||
};
|
||||
|
||||
export type SessionMenuWorkResult = {
|
||||
pullRequestUrl: string | null;
|
||||
worktreePath: string | null;
|
||||
};
|
||||
|
||||
// Menu offers a single Open PR action; prefer the PR a maintainer most
|
||||
// likely wants: active first, merged history next, closed last.
|
||||
const PR_STATE_ORDER: ReadonlyArray<ControlUiSessionPullRequest["state"]> = [
|
||||
"open",
|
||||
"draft",
|
||||
"merged",
|
||||
"closed",
|
||||
];
|
||||
|
||||
export function pickSessionMenuPullRequestUrl(
|
||||
pullRequests: readonly ControlUiSessionPullRequest[],
|
||||
): string | null {
|
||||
for (const state of PR_STATE_ORDER) {
|
||||
const match = pullRequests.find((pullRequest) => pullRequest.state === state);
|
||||
if (match) {
|
||||
return match.url;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
async function loadPullRequestUrl(params: SessionMenuWorkParams): Promise<string | null> {
|
||||
if (!params.pullRequestsAvailable) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
const result = await params.client.request<ControlUiSessionPullRequests>(
|
||||
"controlUi.sessionPullRequests",
|
||||
{ sessionKey: params.sessionKey, ...(params.agentId ? { agentId: params.agentId } : {}) },
|
||||
);
|
||||
return pickSessionMenuPullRequestUrl(result.pullRequests);
|
||||
} catch {
|
||||
// Optional affordance: a GitHub or gateway hiccup just leaves Open PR disabled.
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async function loadWorktreePath(params: SessionMenuWorkParams): Promise<string | null> {
|
||||
const worktreeId = params.worktreeId;
|
||||
if (!worktreeId) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
const result = await params.client.request<{ worktrees: WorktreeRecord[] }>(
|
||||
"worktrees.list",
|
||||
{},
|
||||
);
|
||||
const record = result.worktrees.find(
|
||||
(candidate) => candidate.id === worktreeId && candidate.removedAt === undefined,
|
||||
);
|
||||
return record?.path ?? null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export async function fetchSessionMenuWork(
|
||||
params: SessionMenuWorkParams,
|
||||
): Promise<SessionMenuWorkResult> {
|
||||
const [pullRequestUrl, worktreePath] = await Promise.all([
|
||||
loadPullRequestUrl(params),
|
||||
loadWorktreePath(params),
|
||||
]);
|
||||
return { pullRequestUrl, worktreePath };
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
import { html, render } from "lit";
|
||||
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||
import "./session-menu.ts";
|
||||
import type { SessionMenuAction, SessionMenuData } from "./session-menu.ts";
|
||||
import type { SessionMenuAction, SessionMenuData, SessionMenuWork } from "./session-menu.ts";
|
||||
|
||||
type SessionMenuElement = HTMLElement & { updateComplete: Promise<boolean> };
|
||||
|
||||
@@ -19,6 +19,7 @@ async function mountMenu(
|
||||
options: {
|
||||
session?: Partial<SessionMenuData>;
|
||||
canOpenChat?: boolean;
|
||||
work?: SessionMenuWork | null;
|
||||
workboard?: { captured: boolean; busy: boolean } | null;
|
||||
archiveAllowed?: boolean;
|
||||
groups?: readonly string[];
|
||||
@@ -50,6 +51,7 @@ async function mountMenu(
|
||||
.archiveAllowed=${options.archiveAllowed ?? true}
|
||||
.groups=${options.groups ?? []}
|
||||
.canOpenChat=${options.canOpenChat ?? true}
|
||||
.work=${options.work ?? null}
|
||||
.workboard=${options.workboard === undefined
|
||||
? { captured: false, busy: false }
|
||||
: options.workboard}
|
||||
@@ -172,6 +174,102 @@ describe("session menu", () => {
|
||||
expect(menuItemLabels(menu)).not.toContain("Remove from group");
|
||||
});
|
||||
|
||||
it("numbers group submenu entries and dispatches them from digit keys", async () => {
|
||||
const onAction = vi.fn<(action: SessionMenuAction) => void>();
|
||||
const menu = await mountMenu({
|
||||
session: { category: "Research" },
|
||||
groups: ["Research", "Projects"],
|
||||
onAction,
|
||||
});
|
||||
|
||||
const closedDigit = new KeyboardEvent("keydown", { key: "1", bubbles: true, cancelable: true });
|
||||
document.dispatchEvent(closedDigit);
|
||||
expect(onAction).not.toHaveBeenCalled();
|
||||
|
||||
menuItem(menu, "Move to group").click();
|
||||
await menu.updateComplete;
|
||||
|
||||
const submenu = menu.querySelector<HTMLElement>(".session-menu__submenu");
|
||||
if (!submenu) {
|
||||
throw new Error("Expected group submenu");
|
||||
}
|
||||
expect(menuItemLabels(submenu)).toEqual([
|
||||
"Research",
|
||||
"Projects",
|
||||
"Remove from group",
|
||||
"New group…",
|
||||
]);
|
||||
const shortcuts = Array.from(submenu.querySelectorAll<HTMLElement>('[role="menuitem"]')).map(
|
||||
(item) => item.dataset.shortcut,
|
||||
);
|
||||
expect(shortcuts).toEqual(["1", "2", "3", "4"]);
|
||||
expect(
|
||||
menuItem(submenu, "Projects").querySelector(".session-menu__shortcut")?.textContent,
|
||||
).toBe("2");
|
||||
|
||||
const keydown = new KeyboardEvent("keydown", { key: "2", bubbles: true, cancelable: true });
|
||||
document.dispatchEvent(keydown);
|
||||
expect(onAction).toHaveBeenCalledWith({ kind: "move-to-group", category: "Projects" });
|
||||
expect(keydown.defaultPrevented).toBe(true);
|
||||
});
|
||||
|
||||
it("omits Open PR and Open in for sessions without a worktree", async () => {
|
||||
const menu = await mountMenu();
|
||||
|
||||
expect(menuItemLabels(menu)).not.toContain("Open PR");
|
||||
expect(menuItemLabels(menu)).not.toContain("Open in");
|
||||
});
|
||||
|
||||
it("keeps Open PR and Open in disabled while the work context loads", async () => {
|
||||
const menu = await mountMenu({
|
||||
work: { loading: true, pullRequestUrl: null, worktreePath: null },
|
||||
});
|
||||
|
||||
expect(menuItem(menu, "Open PR").disabled).toBe(true);
|
||||
expect(menuItem(menu, "Open in").disabled).toBe(true);
|
||||
});
|
||||
|
||||
it("dispatches open-pr with the resolved URL from click or the G shortcut", async () => {
|
||||
const url = "https://github.com/openclaw/openclaw/pull/12345";
|
||||
const calls: SessionMenuAction[] = [];
|
||||
const menu = await mountMenu({
|
||||
work: { loading: false, pullRequestUrl: url, worktreePath: null },
|
||||
onAction: (action) => calls.push(action),
|
||||
});
|
||||
|
||||
const openPr = menuItem(menu, "Open PR");
|
||||
expect(openPr.disabled).toBe(false);
|
||||
expect(openPr.querySelector(".session-menu__shortcut")?.textContent).toBe("G");
|
||||
expect(menuItem(menu, "Open in").disabled).toBe(true);
|
||||
|
||||
document.dispatchEvent(
|
||||
new KeyboardEvent("keydown", { key: "g", bubbles: true, cancelable: true }),
|
||||
);
|
||||
expect(calls).toEqual([{ kind: "open-pr", url }]);
|
||||
});
|
||||
|
||||
it("opens the editor submenu and dispatches open-in with the worktree path", async () => {
|
||||
const onAction = vi.fn<(action: SessionMenuAction) => void>();
|
||||
const menu = await mountMenu({
|
||||
work: { loading: false, pullRequestUrl: null, worktreePath: "/work/trees/demo" },
|
||||
onAction,
|
||||
});
|
||||
|
||||
expect(menuItem(menu, "Open PR").disabled).toBe(true);
|
||||
menuItem(menu, "Open in").click();
|
||||
await menu.updateComplete;
|
||||
|
||||
expect(menuItemLabels(menu)).toEqual(
|
||||
expect.arrayContaining(["Cursor", "VS Code", "Windsurf", "Zed"]),
|
||||
);
|
||||
menuItem(menu, "VS Code").click();
|
||||
expect(onAction).toHaveBeenCalledWith({
|
||||
kind: "open-in",
|
||||
editor: "vscode",
|
||||
path: "/work/trees/demo",
|
||||
});
|
||||
});
|
||||
|
||||
it("renders shortcut hints and dispatches actions from bare letter keys", async () => {
|
||||
const calls: string[] = [];
|
||||
const menu = await mountMenu({
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { html, nothing, type PropertyValues } from "lit";
|
||||
import { property, state } from "lit/decorators.js";
|
||||
import { t } from "../i18n/index.ts";
|
||||
import { EDITOR_IDS, EDITOR_LABELS, type EditorId } from "../lib/editor-links.ts";
|
||||
import { OpenClawLightDomElement } from "../lit/openclaw-element.ts";
|
||||
import { icons } from "./icons.ts";
|
||||
import { activateMenuShortcut, menuShortcutHint } from "./menu-shortcuts.ts";
|
||||
@@ -14,8 +15,21 @@ export type SessionMenuData = {
|
||||
category: string | null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Worktree-session extras resolved lazily by the menu host after open; null
|
||||
* hides the block entirely (plain chat sessions), loading keeps the items
|
||||
* rendered-but-disabled so the menu layout never shifts under the pointer.
|
||||
*/
|
||||
export type SessionMenuWork = {
|
||||
loading: boolean;
|
||||
pullRequestUrl: string | null;
|
||||
worktreePath: string | null;
|
||||
};
|
||||
|
||||
export type SessionMenuAction =
|
||||
| { kind: "open-chat" }
|
||||
| { kind: "open-pr"; url: string }
|
||||
| { kind: "open-in"; editor: EditorId; path: string }
|
||||
| { kind: "toggle-pin" }
|
||||
| { kind: "toggle-unread" }
|
||||
| { kind: "rename" }
|
||||
@@ -47,16 +61,31 @@ class SessionMenu extends OpenClawLightDomElement {
|
||||
@property({ attribute: false }) archiveAllowed = false;
|
||||
@property({ attribute: false }) groups: readonly string[] = [];
|
||||
@property({ attribute: false }) canOpenChat = false;
|
||||
@property({ attribute: false }) work: SessionMenuWork | null = null;
|
||||
@property({ attribute: false }) workboard: { captured: boolean; busy: boolean } | null = null;
|
||||
@property({ attribute: false }) onAction: (action: SessionMenuAction) => void = () => {};
|
||||
@property({ attribute: false }) onClose: () => void = () => {};
|
||||
|
||||
@state() private submenuOpen = false;
|
||||
@state() private openSubmenu: "editor" | "group" | null = null;
|
||||
|
||||
override connectedCallback() {
|
||||
super.connectedCallback();
|
||||
document.addEventListener("pointerdown", this.handleDocumentPointerDown, true);
|
||||
document.addEventListener("keydown", this.handleDocumentKeydown, true);
|
||||
// Sidebar-hosted menus live inside the nav stacking context (z-index 10),
|
||||
// which paints below the sidebar resizer divider (z-index 20); promoting
|
||||
// the menu to the popover top layer keeps app chrome from bleeding
|
||||
// through it (same pattern as openclaw-native-link-menu).
|
||||
this.setAttribute("popover", "manual");
|
||||
if (typeof this.showPopover === "function") {
|
||||
try {
|
||||
this.showPopover();
|
||||
return;
|
||||
} catch {
|
||||
// Fall through to in-flow rendering when the top-layer API is unavailable.
|
||||
}
|
||||
}
|
||||
this.removeAttribute("popover");
|
||||
}
|
||||
|
||||
override disconnectedCallback() {
|
||||
@@ -69,7 +98,7 @@ class SessionMenu extends OpenClawLightDomElement {
|
||||
if (changed.has("session")) {
|
||||
const previous = changed.get("session") as SessionMenuData | undefined;
|
||||
if (previous?.key !== this.session.key) {
|
||||
this.submenuOpen = false;
|
||||
this.openSubmenu = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -107,6 +136,144 @@ class SessionMenu extends OpenClawLightDomElement {
|
||||
this.onAction(action);
|
||||
}
|
||||
|
||||
private renderWorkItems(submenuLeft: boolean) {
|
||||
const work = this.work;
|
||||
if (!work) {
|
||||
return nothing;
|
||||
}
|
||||
const pullRequestUrl = work.pullRequestUrl;
|
||||
const worktreePath = work.worktreePath;
|
||||
return html`
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
data-shortcut="g"
|
||||
aria-keyshortcuts="G"
|
||||
?disabled=${this.disabled || !pullRequestUrl}
|
||||
@click=${() => {
|
||||
if (pullRequestUrl) {
|
||||
this.runAction({ kind: "open-pr", url: pullRequestUrl });
|
||||
}
|
||||
}}
|
||||
>
|
||||
<span class="session-menu__icon" aria-hidden="true">${icons.gitPullRequest}</span>
|
||||
<span class="session-menu__text">${t("sessionsView.openPullRequest")}</span>
|
||||
${menuShortcutHint("g")}
|
||||
</button>
|
||||
<div
|
||||
class="session-menu__submenu-host"
|
||||
@pointerenter=${() => {
|
||||
if (worktreePath) {
|
||||
this.openSubmenu = "editor";
|
||||
}
|
||||
}}
|
||||
@pointerleave=${() => {
|
||||
this.openSubmenu = null;
|
||||
}}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
aria-haspopup="menu"
|
||||
aria-expanded=${String(this.openSubmenu === "editor")}
|
||||
?disabled=${this.disabled || !worktreePath}
|
||||
@click=${() => {
|
||||
if (worktreePath) {
|
||||
this.openSubmenu = this.openSubmenu === "editor" ? null : "editor";
|
||||
}
|
||||
}}
|
||||
>
|
||||
<span class="session-menu__icon" aria-hidden="true">${icons.externalLink}</span>
|
||||
<span class="session-menu__text">${t("sessionsView.openInEditorMenu")}</span>
|
||||
<span class="session-menu__chevron" aria-hidden="true">${icons.chevronRight}</span>
|
||||
</button>
|
||||
${this.openSubmenu === "editor" && worktreePath
|
||||
? this.renderEditorSubmenu(worktreePath, submenuLeft)
|
||||
: nothing}
|
||||
</div>
|
||||
<div class="session-menu__separator" role="separator"></div>
|
||||
`;
|
||||
}
|
||||
|
||||
private renderEditorSubmenu(path: string, submenuLeft: boolean) {
|
||||
return html`
|
||||
<div
|
||||
class="session-menu session-menu__submenu ${submenuLeft
|
||||
? "session-menu__submenu--left"
|
||||
: ""}"
|
||||
role="menu"
|
||||
aria-label=${t("sessionsView.openInEditorMenu")}
|
||||
>
|
||||
${EDITOR_IDS.map(
|
||||
(editor) => html`
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
?disabled=${this.disabled}
|
||||
@click=${() => this.runAction({ kind: "open-in", editor, path })}
|
||||
>
|
||||
<span class="session-menu__check" aria-hidden="true"></span>
|
||||
<span class="session-menu__text">${EDITOR_LABELS[editor]}</span>
|
||||
</button>
|
||||
`,
|
||||
)}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
private renderGroupSubmenu(submenuLeft: boolean) {
|
||||
const session = this.session;
|
||||
// Entries are numbered like the digits users see: existing groups first,
|
||||
// then the ungroup entry, then New group…; entries past 9 stay unnumbered
|
||||
// rather than reusing digits.
|
||||
let nextDigit = 1;
|
||||
const takeDigit = () => (nextDigit <= 9 ? String(nextDigit++) : null);
|
||||
const entry = (label: string, checked: boolean, action: SessionMenuAction) => {
|
||||
const digit = takeDigit();
|
||||
return html`
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
data-shortcut=${digit ?? nothing}
|
||||
aria-keyshortcuts=${digit ?? nothing}
|
||||
?disabled=${this.disabled}
|
||||
@click=${() => this.runAction(action)}
|
||||
>
|
||||
<span class="session-menu__check" aria-hidden="true"
|
||||
>${checked ? icons.check : nothing}</span
|
||||
>
|
||||
<span class="session-menu__text">${label}</span>
|
||||
${digit ? menuShortcutHint(digit) : nothing}
|
||||
</button>
|
||||
`;
|
||||
};
|
||||
return html`
|
||||
<div
|
||||
class="session-menu session-menu__submenu ${submenuLeft
|
||||
? "session-menu__submenu--left"
|
||||
: ""}"
|
||||
role="menu"
|
||||
aria-label=${t("sessionsView.moveToGroupMenu")}
|
||||
>
|
||||
${this.groups.map((group) =>
|
||||
entry(group, session.category === group, { kind: "move-to-group", category: group }),
|
||||
)}
|
||||
${session.category
|
||||
? entry(t("sessionsView.removeFromGroup"), false, {
|
||||
kind: "move-to-group",
|
||||
category: null,
|
||||
})
|
||||
: nothing}
|
||||
<div class="session-menu__separator" role="separator"></div>
|
||||
${entry(t("sessionsView.newGroup"), false, { kind: "new-group" })}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
override render() {
|
||||
const menuWidth = 240;
|
||||
const menuMaxHeight = 460;
|
||||
@@ -138,6 +305,7 @@ class SessionMenu extends OpenClawLightDomElement {
|
||||
</button>
|
||||
`
|
||||
: nothing}
|
||||
${this.renderWorkItems(submenuLeft)}
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
@@ -224,10 +392,10 @@ class SessionMenu extends OpenClawLightDomElement {
|
||||
<div
|
||||
class="session-menu__submenu-host"
|
||||
@pointerenter=${() => {
|
||||
this.submenuOpen = true;
|
||||
this.openSubmenu = "group";
|
||||
}}
|
||||
@pointerleave=${() => {
|
||||
this.submenuOpen = false;
|
||||
this.openSubmenu = null;
|
||||
}}
|
||||
>
|
||||
<button
|
||||
@@ -235,71 +403,17 @@ class SessionMenu extends OpenClawLightDomElement {
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
aria-haspopup="menu"
|
||||
aria-expanded=${String(this.submenuOpen)}
|
||||
aria-expanded=${String(this.openSubmenu === "group")}
|
||||
?disabled=${this.disabled}
|
||||
@click=${() => {
|
||||
this.submenuOpen = !this.submenuOpen;
|
||||
this.openSubmenu = this.openSubmenu === "group" ? null : "group";
|
||||
}}
|
||||
>
|
||||
<span class="session-menu__icon" aria-hidden="true">${icons.folder}</span>
|
||||
<span class="session-menu__text">${t("sessionsView.moveToGroupMenu")}</span>
|
||||
<span class="session-menu__chevron" aria-hidden="true">${icons.chevronRight}</span>
|
||||
</button>
|
||||
${this.submenuOpen
|
||||
? html`
|
||||
<div
|
||||
class="session-menu session-menu__submenu ${submenuLeft
|
||||
? "session-menu__submenu--left"
|
||||
: ""}"
|
||||
role="menu"
|
||||
aria-label=${t("sessionsView.moveToGroupMenu")}
|
||||
>
|
||||
${this.groups.map(
|
||||
(group) => html`
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
?disabled=${this.disabled}
|
||||
@click=${() => this.runAction({ kind: "move-to-group", category: group })}
|
||||
>
|
||||
<span class="session-menu__check" aria-hidden="true"
|
||||
>${session.category === group ? icons.check : nothing}</span
|
||||
>
|
||||
<span class="session-menu__text">${group}</span>
|
||||
</button>
|
||||
`,
|
||||
)}
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
?disabled=${this.disabled}
|
||||
@click=${() => this.runAction({ kind: "new-group" })}
|
||||
>
|
||||
<span class="session-menu__check" aria-hidden="true"></span>
|
||||
<span class="session-menu__text">${t("sessionsView.newGroup")}</span>
|
||||
</button>
|
||||
${session.category
|
||||
? html`
|
||||
<div class="session-menu__separator" role="separator"></div>
|
||||
<button
|
||||
type="button"
|
||||
class="session-menu__item"
|
||||
role="menuitem"
|
||||
?disabled=${this.disabled}
|
||||
@click=${() => this.runAction({ kind: "move-to-group", category: null })}
|
||||
>
|
||||
<span class="session-menu__check" aria-hidden="true"></span>
|
||||
<span class="session-menu__text"
|
||||
>${t("sessionsView.removeFromGroup")}</span
|
||||
>
|
||||
</button>
|
||||
`
|
||||
: nothing}
|
||||
</div>
|
||||
`
|
||||
: nothing}
|
||||
${this.openSubmenu === "group" ? this.renderGroupSubmenu(submenuLeft) : nothing}
|
||||
</div>
|
||||
<div class="session-menu__separator" role="separator"></div>
|
||||
<button
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:03.003Z",
|
||||
"generatedAt": "2026-07-11T04:04:41.324Z",
|
||||
"locale": "ar",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -101,6 +101,7 @@
|
||||
{"cache_key":"4f59bc6df25e2495ede201a5cd831658d42000f5f645df19553afc9be514e0b2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archiveSession","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Archive session","text_hash":"740ded37480365eae8bf833ccaaa58350fc9434a77b7bb65b5516eba476fbec3","tgt_lang":"ar","translated":"أرشفة الجلسة","updated_at":"2026-07-02T14:30:22.962Z"}
|
||||
{"cache_key":"4f5df68126b4a7506e392871313afb6007b65be723d33e6f1dd1c395d43635c7","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.contextWindow","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Context window","text_hash":"7696d0855331622dc12438057f5509348f9d6f0ec2eb3580e18a99d31eba86db","tgt_lang":"ar","translated":"نافذة السياق","updated_at":"2026-07-05T10:16:14.365Z"}
|
||||
{"cache_key":"51c230ab687ba027ff013718b13ce69541910ed472bd5a11f23a58bcc61c3fba","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.dropSplit","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Split","text_hash":"32afaa784333648025e24b162bece7474051bcaaa29e98e19922b400b4ceb04b","tgt_lang":"ar","translated":"تقسيم","updated_at":"2026-07-06T22:56:27.100Z"}
|
||||
{"cache_key":"537756dc80bd7f4d8902b8c825bb75050ff81d575e4ace1c6609c8b0d57b842c","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"ar","translated":"فتح PR","updated_at":"2026-07-11T04:04:41.313Z"}
|
||||
{"cache_key":"5377d70b50292ec6d0fc885eb6f3d7f1efb8161fa360c6d28887da2b48b0477a","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.recentSub","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Latest completed, failed, and cancelled tasks.","text_hash":"44280ebc1ef9ff6ae709f96c5d262b1818e8c580d877fb7f9885344e102eba59","tgt_lang":"ar","translated":"أحدث المهام المكتملة والفاشلة والملغاة.","updated_at":"2026-07-09T21:53:23.244Z"}
|
||||
{"cache_key":"53e198dd40fa26c62fced943845107d4b96229b043fd9f523e571a4b62d77a1f","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.label","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Link actions","text_hash":"bffef58c5284b351b41a353b723845cca19cf29bf817f7b74c2e77e74d282a20","tgt_lang":"ar","translated":"إجراءات الرابط","updated_at":"2026-07-09T11:02:53.077Z"}
|
||||
{"cache_key":"541a93bf518e064a9d0a79ea654c4cd71be771dd6471b4ec3c8fd33041577938","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneAccessFailed","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Unable to access microphone inputs.","text_hash":"5125ca209d6d3c763713490ec0de3a44db42aeab03cb21dcf4b047a1a4970669","tgt_lang":"ar","translated":"تعذّر الوصول إلى مدخلات الميكروفون.","updated_at":"2026-07-06T17:56:46.696Z"}
|
||||
@@ -212,6 +213,7 @@
|
||||
{"cache_key":"93d711e20bc256368454d5f7f237378bfa6645ee87ec006f1339260f8ba38aa2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateYesterday","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Yesterday","text_hash":"566181254b293aa66653e43313be9e39c12d44f9ac4fcd3236ef1e9c50a2903f","tgt_lang":"ar","translated":"أمس","updated_at":"2026-07-05T14:39:56.977Z"}
|
||||
{"cache_key":"943994434b0be021e44bbdbe663cdb7ce01774b0bf1f7006cb0da2748fb08c52","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.emptyFilteredTitle","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"No cards match this view","text_hash":"a272617e183ba1dff3f7f140d0851b64baf95f4827ff729d23dfeb05c2069875","tgt_lang":"ar","translated":"لا توجد بطاقات تطابق هذا العرض","updated_at":"2026-06-17T14:15:04.326Z"}
|
||||
{"cache_key":"947f5522672bd922f9bc9f46ba10fcc9885a74bd8164905d0084a7046b197360","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthLabel","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Workboard health","text_hash":"85416c4a6d64e35611bdd9747b82815936c38b41d820796ba1fbfbb7539d906b","tgt_lang":"ar","translated":"حالة لوحة العمل","updated_at":"2026-06-17T14:15:04.326Z"}
|
||||
{"cache_key":"949f55dacdc41ae267f8979ec815bd579bdfe55e23506d6e8c78e7c7a42687eb","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"ar","translated":"فتح في","updated_at":"2026-07-11T04:04:41.313Z"}
|
||||
{"cache_key":"977c628419aff69238ae35e54fae6bdead66b5fc0afdbd6a7b1325b1ce656f6e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationBoard","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Board: {board}","text_hash":"96d7493589e40e17803b3bf643dff1b891a4ebf57f5d2b36af0a7ddd09e64b84","tgt_lang":"ar","translated":"اللوحة: {board}","updated_at":"2026-06-16T14:15:27.039Z"}
|
||||
{"cache_key":"97c8194ec517dca6ce86789d7788021a6e4e9528bde1ba7eec256b070a052c58","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSummary","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Summary: {summary}","text_hash":"3a2270b3cd47b523936c13efec489f36112e0a64fe763dbe972d21fef029e814","tgt_lang":"ar","translated":"الملخص: {summary}","updated_at":"2026-06-16T14:15:27.039Z"}
|
||||
{"cache_key":"982419eff9958b8cd6ad5d8bddede615f91aa2199cedfb19ce70d88f9c7aeb2e","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.outputTokens","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{count} output","text_hash":"e433f6601aaa1a1cce63c5ca6b15fddd247bf53697d09171d25592f70f2e949a","tgt_lang":"ar","translated":"{count} رموز إخراج","updated_at":"2026-07-06T06:40:15.357Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:01.795Z",
|
||||
"generatedAt": "2026-07-11T04:04:32.483Z",
|
||||
"locale": "de",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -126,6 +126,7 @@
|
||||
{"cache_key":"537bb0ffdddf752b257a000a97ab9fae16848b3e3e2fd9919b320e4c9b29d3d9","model":"gpt-5.5","provider":"openai","segment_id":"chat.backgroundTasks.loading","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Loading background tasks…","text_hash":"b8f8eaea7ccdee15740c7daa3d290a534fd3db2b4f0b2835243a6627d9ff7ff6","tgt_lang":"de","translated":"Hintergrundaufgaben werden geladen…","updated_at":"2026-07-11T00:44:58.681Z"}
|
||||
{"cache_key":"555797a869800fe5bbd48323276e0559980a1b3bb69c1d68310c4a902051cc5c","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.systemError","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"System error","text_hash":"b9564eaf21a9356d06f7f3c67a5b9cb7e6538687c33bebbf1e1b64715018f310","tgt_lang":"de","translated":"Systemfehler","updated_at":"2026-07-09T10:01:43.726Z"}
|
||||
{"cache_key":"557aa579ebe429c27dc39a744d8ea95e062b2724d9c899e4845231b55314a13a","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortBy","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Sort by","text_hash":"c9129025bd3ff6522a7eeebc1abf1481f36e4ac9d74524a473ac1c3be1c6fc2f","tgt_lang":"de","translated":"Sortieren nach","updated_at":"2026-07-06T23:40:48.838Z"}
|
||||
{"cache_key":"56028cfc5b2841b18d6950ca20f01351706415b449843ec29f0d8d5b58e66d64","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"de","translated":"Öffnen in","updated_at":"2026-07-11T04:04:32.478Z"}
|
||||
{"cache_key":"563460816d3948dc9e063429950fd02b7f97ccd41ea95b4f82aef2639ca3c805","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSkills","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Skills: {skills}","text_hash":"4788d5f9db66e1421a762bbd942c64450c73d2145a6ef929ce32a919a0f2e3a1","tgt_lang":"de","translated":"Skills: {skills}","updated_at":"2026-06-16T14:12:53.111Z"}
|
||||
{"cache_key":"572e2afe19d85123f2dff48b8d4260addf927720c8e60995d3bf92ed971a4140","model":"gpt-5.5","provider":"openai","segment_id":"chat.pullRequests.closed","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Closed","text_hash":"c21ead0614e7e1b70edb3759e1d19ca1e12e6036980d10bfb73052fb1a018efa","tgt_lang":"de","translated":"Geschlossen","updated_at":"2026-07-10T17:03:42.358Z"}
|
||||
{"cache_key":"57473c8a09374714eceaf4b6a43a37ce1d388c4b12e5d78f1d569698095651fb","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.truncated","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Showing the first matching files. Refine the search to narrow results.","text_hash":"62005877ff0fc1f73ce05ca4c459157c57a8c57a3443245b1df4d3b033df98e9","tgt_lang":"de","translated":"Es werden die ersten passenden Dateien angezeigt. Verfeinern Sie die Suche, um die Ergebnisse einzugrenzen.","updated_at":"2026-06-16T14:13:06.672Z"}
|
||||
@@ -194,6 +195,7 @@
|
||||
{"cache_key":"7c487658d1333c0af906ea1e9829964a34be7c7ff142fe79b6de18c62df4def4","model":"gpt-5.5","provider":"openai","segment_id":"tabs.skillWorkshop","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Skill Workshop","text_hash":"3912c65bdd0a43563438762a43ecbd4b14637844a18decbf9249df73d21152a0","tgt_lang":"de","translated":"Skill Workshop","updated_at":"2026-05-31T21:48:18.221Z"}
|
||||
{"cache_key":"7c542f028ebfcd1ee4752119908bf0b2530a11baca08896e516d5e85a575430a","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.selectedMicrophoneUnavailable","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"The selected microphone is unavailable. Choose another input or System default.","text_hash":"7ae3ae7c3179e22942d5b6f911a3de37085b7753814c65e58be50989987bb00f","tgt_lang":"de","translated":"Das ausgewählte Mikrofon ist nicht verfügbar. Wähle einen anderen Eingang oder die Systemvorgabe.","updated_at":"2026-07-06T17:56:14.727Z"}
|
||||
{"cache_key":"7c58ca2293eaf447f1ce2d3fe3a30c7ec2fb1e954866b495b5b54530c859e2ac","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.loadingMicrophones","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Loading microphones…","text_hash":"042a481c407f31b97b0cc8ff4e6c8b8f3f6e85d798cba8549c348d6d33a9945c","tgt_lang":"de","translated":"Mikrofone werden geladen…","updated_at":"2026-07-06T17:33:36.716Z"}
|
||||
{"cache_key":"7ceb255b99064b7a4060a6d126de5de19e4767d3d629ffa4c7987f257f4b0d90","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"de","translated":"PR öffnen","updated_at":"2026-07-11T04:04:32.478Z"}
|
||||
{"cache_key":"7d0b9749b0659d7d812d9b72f14a70c8b1ec24d8fd71d4636fdd1504f955e942","model":"claude-opus-4-8","provider":"anthropic","segment_id":"modelProviders.updated","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Updated {time}","text_hash":"2f87419441e6111b4d62893d3c4ef5ddeb2c8e1af82fabab6132856faf77f907","tgt_lang":"de","translated":"Aktualisiert {time}","updated_at":"2026-06-17T14:13:12.251Z"}
|
||||
{"cache_key":"7e1d9a4dd60f4d2ca91763a1c9ce2f8d4361afbcea8924c2309c116a5cdddcae","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailDiagnostics","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Diagnostics","text_hash":"268f14bbfe119c1e92150583af960a086d7db9619a097f8aa72ff6779842f610","tgt_lang":"de","translated":"Diagnose","updated_at":"2026-06-16T14:12:53.111Z"}
|
||||
{"cache_key":"7e8cc90c110e7cec31a05284502f25691d4492f7b53b8064d857c678947466cb","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.workSessions","source_path":"ui/src/i18n/locales/de.ts","src_lang":"en","text":"Work","text_hash":"104ab9213e28e4ff5ba0b4086457503e8a4656815cfec7bcf2799d76a3db081d","tgt_lang":"de","translated":"Arbeit","updated_at":"2026-07-10T15:20:45.759Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:01.992Z",
|
||||
"generatedAt": "2026-07-11T04:04:33.545Z",
|
||||
"locale": "es",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -41,6 +41,7 @@
|
||||
{"cache_key":"13a74e79c18ebf8425496f4784d57dc48a34f9c3b092c8a0143a31c7fe512d1f","model":"gpt-5.5","provider":"openai","segment_id":"chat.toolCards.toolError","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Tool error","text_hash":"a6c64c286a8795034ac5030b74633d3b476b5375e094485698b982879b0bb617","tgt_lang":"es","translated":"Error de herramienta","updated_at":"2026-05-31T06:43:51.095Z"}
|
||||
{"cache_key":"1413f554af6a832a652fac0e0277347524c2a7d9f3bb207879f1d75f2c249c9a","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.costCategories","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Cost categories","text_hash":"cc320c9a0f62d2c1cf4b7214592b89080ffb035c5692463c7c514b2350814382","tgt_lang":"es","translated":"Categorías de coste","updated_at":"2026-07-06T06:40:15.357Z"}
|
||||
{"cache_key":"1482f6a413957a91eeb65c664229b28145f0edd16d1f5554da496c17283a2219","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.mcpMissing","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"MCP server “{name}” was not found in the configuration.","text_hash":"0fcf0028371340306f34d196f8069514ce59ebc4da45c4fe9bf64811420cde62","tgt_lang":"es","translated":"No se encontró el servidor MCP “{name}” en la configuración.","updated_at":"2026-07-10T02:23:49.860Z"}
|
||||
{"cache_key":"14ac01e57e8970a4ea4175041616fab24fab682e4dd71435fc4920cd36df79e0","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"es","translated":"Abrir en","updated_at":"2026-07-11T04:04:33.540Z"}
|
||||
{"cache_key":"155ea7acf4ab1ca8bafbef77149c9d003908575f9c495c7031149db5a1359063","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summary.onlineHosts","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"online","text_hash":"f6fc84c9f21c24907d6bee6eec38cabab5fa9a7be8c4a7827fe9e56f245bd2d5","tgt_lang":"es","translated":"en línea","updated_at":"2026-07-09T10:01:43.721Z"}
|
||||
{"cache_key":"15e8f9aba31f108ff2a859e0f48fe1879ac2fdb22720d2ffd6faa2f040e618eb","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.working","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Working…","text_hash":"5474eef8d0f179c707cf418e2bbb468c77cc24edc5e9f5f4e137e85e06a8eea0","tgt_lang":"es","translated":"Procesando…","updated_at":"2026-07-10T04:28:16.685Z"}
|
||||
{"cache_key":"1607b905341a2f410b56987930eb556121bddd0fe25ebc52fbebaa708fed9fd9","model":"claude-opus-4-8","provider":"anthropic","segment_id":"cron.jobDetail.command","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Command","text_hash":"713166971d730f81fcf8b757f2ea239d1a0360d9f74e8f5afe60fba97105879c","tgt_lang":"es","translated":"Comando","updated_at":"2026-06-16T14:14:26.057Z"}
|
||||
@@ -490,6 +491,7 @@
|
||||
{"cache_key":"ec929dec9194676f475ed317c0a9efeb3ad36ad41a9b44aced199d885d32fee9","model":"gpt-5.5","provider":"openai","segment_id":"browser.inspectHint","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Hover to inspect; click to send the element to your chat.","text_hash":"eee42900227737c5b30d3497a2ea7831e46f089ca301e9ebcf301c985f96b1d2","tgt_lang":"es","translated":"Pasa el cursor para inspeccionar; haz clic para enviar el elemento a tu chat.","updated_at":"2026-07-11T02:17:54.112Z"}
|
||||
{"cache_key":"ed78e6315f84d06d2adf853190c03178d9521ac1e0e0d1cd425ca3f36dfd2f84","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.confirmDelete","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Snapshot and delete {name}?","text_hash":"3c3ee9b4dd86ac95d852528c6fd78c214c61cbb434f857051d8f0d73a615bd2f","tgt_lang":"es","translated":"¿Crear snapshot y eliminar {name}?","updated_at":"2026-07-05T21:00:41.074Z"}
|
||||
{"cache_key":"edea18aa163b5af9c1c0c9a251bfb268dd1186f24567bcbe7408bbae9da8f6a2","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.artifactCount","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"{count} artifacts","text_hash":"022b6b55a10f1864b7aff7c307e49ab37e11e6999111fb87349f040d100abba3","tgt_lang":"es","translated":"{count} artefactos","updated_at":"2026-06-16T14:14:23.912Z"}
|
||||
{"cache_key":"ef6070339fa070f95f9ba1043d3f7a43f761a29f4bf42d8b7ea4c7168b78011a","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"es","translated":"Abrir PR","updated_at":"2026-07-11T04:04:33.540Z"}
|
||||
{"cache_key":"f0c3f9afe83ef51ca9833a8de96256ae03097b3d32b50632e8607a6eec9abd99","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.root","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"Root","text_hash":"44cb005ee2e65d9cc817b0a083579369fb6c24a4be728cb43fd9d4c3ca7f4c2e","tgt_lang":"es","translated":"Raíz","updated_at":"2026-06-16T14:14:23.912Z"}
|
||||
{"cache_key":"f1efa318c89caf41fdfd4ebea9ee61d765fd3430586fd8d22ae8a263fe90be56","model":"gpt-5.5","provider":"openai","segment_id":"terminal.detached","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"detached","text_hash":"88e34e4cdbb5c6066cb1b0d0abe74714bd72f86259433bc8287614e4ae052605","tgt_lang":"es","translated":"desconectado","updated_at":"2026-07-04T21:23:51.151Z"}
|
||||
{"cache_key":"f238999882f1f940ed502e03a6db7cf33e12dfafa0daf963f0ec11368a2675f4","model":"gpt-5.5","provider":"openai","segment_id":"newSession.draftRow","source_path":"ui/src/i18n/locales/es.ts","src_lang":"en","text":"New session","text_hash":"cffdba22adf299e8fc6f937ef63ca4352ca9db3022d4634004c0a9bd10aa0dfe","tgt_lang":"es","translated":"Nueva sesión","updated_at":"2026-07-10T15:20:51.018Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:04.783Z",
|
||||
"generatedAt": "2026-07-11T04:04:54.042Z",
|
||||
"locale": "fa",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -152,6 +152,7 @@
|
||||
{"cache_key":"5efe077a47da32377d03bbfc99eff19de42c5b5947317df410c0b5c81b7760c5","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.label","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Link actions","text_hash":"bffef58c5284b351b41a353b723845cca19cf29bf817f7b74c2e77e74d282a20","tgt_lang":"fa","translated":"اقدامات پیوند","updated_at":"2026-07-09T11:03:16.390Z"}
|
||||
{"cache_key":"604759b69ecb40fc0facc317775f0798f0ded8d565e07bbb0422fe9641380aba","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.dependencyStatusMissing","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Missing","text_hash":"6be36ca49ee85210c5d1ad9c377d90a9859c66d889110a2a5b0dccd390d12e20","tgt_lang":"fa","translated":"موجود نیست","updated_at":"2026-06-16T14:18:40.803Z"}
|
||||
{"cache_key":"6166886b96a12220c55e021fe5dfbcb01cb33f734b66131661b4d60f5f5a9366","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthMissingProof","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"missing proof","text_hash":"748797f5ab1c31c8aeeaf7f76bce76064b175a1d1f530849ec683cacbe6555eb","tgt_lang":"fa","translated":"بدون اثبات","updated_at":"2026-06-17T14:17:52.321Z"}
|
||||
{"cache_key":"621ece5e5fe8259bc8a909aa64a9f928db6ff2f93e512f500f9404500afca2b2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"fa","translated":"باز کردن در","updated_at":"2026-07-11T04:04:54.036Z"}
|
||||
{"cache_key":"62bf97a37d8fce155de13dcc7ef7f77c4ed9748f4edf876ddcc4dac7caff6f08","model":"gpt-5.5","provider":"openai","segment_id":"tabs.worktrees","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Worktrees","text_hash":"aec2f93d67b7c4c5fd9b94042f33299f7a0e55cdcb7e8e35feb9d0f6da697f3d","tgt_lang":"fa","translated":"Worktreeها","updated_at":"2026-07-05T21:01:42.282Z"}
|
||||
{"cache_key":"6323efb81eaac52f9640ff5fe5290c1c15e05dd2d065ecc224a1b874fb1fcf83","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotatePrompt.introTitled","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"I annotated the page at {url} (page-reported title: \"{title}\") — the attached screenshot shows my markup.","text_hash":"07238283d91897e6c5c97bdb7ceb4dfdf021d3c4de2cf2cb3844e93517cd60d7","tgt_lang":"fa","translated":"من صفحه را در {url} حاشیهنویسی کردم (عنوان گزارششده از صفحه: \"{title}\") — اسکرینشات پیوست نشانهگذاری من را نشان میدهد.","updated_at":"2026-07-11T02:20:28.644Z"}
|
||||
{"cache_key":"6333407525350a140f79b877b4d0ad7615f69fa188b8d7e135bd517b71756a4d","model":"gpt-5.5","provider":"openai","segment_id":"workboard.badgeWorkerLogs","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"{count} worker logs","text_hash":"2923e2a84e6ed0ca048d280206198b156da6148859e474498d335a44e323e0a8","tgt_lang":"fa","translated":"{count} گزارش کارگر","updated_at":"2026-05-30T15:38:53.293Z"}
|
||||
@@ -163,6 +164,7 @@
|
||||
{"cache_key":"6acf68c26aafd00f81ddfacaeed9c9ba4ef0a759cef3a6b9a284efeafc2d3421","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.empty","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"No managed worktrees.","text_hash":"67f97698da5ed0bb1cc4cadd157e403c0fcd22fc4735d8f39bcf27ea6dd612c8","tgt_lang":"fa","translated":"هیچ worktree مدیریتشدهای وجود ندارد.","updated_at":"2026-07-05T21:01:42.282Z"}
|
||||
{"cache_key":"6b2877bff7513e753f4072c979be10735d325720a1819ef736aa1357850707b7","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.summary","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Session context usage: {used} of {limit} ({pct}%)","text_hash":"a62b97af0e5d02b8722725e2be0a936dd3d317a1f506ea15c766e87413b66a0d","tgt_lang":"fa","translated":"استفاده از زمینهٔ جلسه: {used} از {limit} ({pct}٪)","updated_at":"2026-07-05T10:16:36.046Z"}
|
||||
{"cache_key":"6bca5b0ad3ad40192974d625c9521600018a08d3a4018d5b50cb9528b2996b08","model":"gpt-5.5","provider":"openai","segment_id":"profilePage.channelChipTitle","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"{tokens} tokens on this channel","text_hash":"2f961c917719fceaa0b9fd222ea8590637986dce227e23deeeaf63b6cf11e9f8","tgt_lang":"fa","translated":"{tokens} توکن در این کانال","updated_at":"2026-07-09T11:29:07.982Z"}
|
||||
{"cache_key":"6c91024a4cfefd1c3462f990d5ae31444f656d6c0aecab780581aba1238210e2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"fa","translated":"باز کردن PR","updated_at":"2026-07-11T04:04:54.036Z"}
|
||||
{"cache_key":"6cb4e2778c55baeda3aff2d90126dbd43cb8f967113ab9dd25fae121647ad280","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotatePrompt.region","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Marked region {index}: centered around {x}% across / {y}% down, spanning about {width}% × {height}% of the view.","text_hash":"e2e51195aefb95748b2c7f794b41b042d70dfeab5de6420e196824eb7780a2ba","tgt_lang":"fa","translated":"ناحیهٔ نشانهگذاریشده {index}: با مرکز در حدود {x}% از عرض / {y}% از بالا، و گستردگی حدود {width}% × {height}% از نما.","updated_at":"2026-07-11T02:20:28.644Z"}
|
||||
{"cache_key":"6cc20a81aa5f0f568c50d432a86fd0e96c8bd9ea1b35d1211ad064ede00e7b03","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.today","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Today","text_hash":"2b065c7c9ce466e5ebcad757987d5d660ee4c9ea708bc62c43444b53334738ba","tgt_lang":"fa","translated":"امروز","updated_at":"2026-07-05T14:40:24.519Z"}
|
||||
{"cache_key":"6e3f54b8e3bcbde213c3d56867a41e7beb31c8adc28684a83a1f32dc9bfe9de0","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailTitle","source_path":"ui/src/i18n/locales/fa.ts","src_lang":"en","text":"Card details","text_hash":"93985f84673405070ffdf7e6f64175caff0f2c489c10e40627718525e79af631","tgt_lang":"fa","translated":"جزئیات کارت","updated_at":"2026-06-16T14:18:33.052Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:02.586Z",
|
||||
"generatedAt": "2026-07-11T04:04:37.547Z",
|
||||
"locale": "fr",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -78,6 +78,7 @@
|
||||
{"cache_key":"27af86067f7a59ff630ef633654ee9ea6de45b27b042f506b2f81310398f98ee","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotationSent","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Annotation added to the chat composer.","text_hash":"d68fff7737c5145c3ac6dc95a99ff8f6cb205c0220dcdd8f7e602d14aef37f23","tgt_lang":"fr","translated":"Annotation ajoutée au compositeur de chat.","updated_at":"2026-07-11T02:18:20.344Z"}
|
||||
{"cache_key":"27b184f337a178771c99c0442b612dd016a70edce2b7af9344bab0c17a810a56","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotatePrompt.outro","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Please look at the marked area and tell me what you make of it.","text_hash":"fdf6ad77887cf4668105f142e42a6fc67d025d92f7852d80c352e2fbacebd9bf","tgt_lang":"fr","translated":"Veuillez regarder la zone marquée et me dire ce que vous en pensez.","updated_at":"2026-07-11T02:18:20.344Z"}
|
||||
{"cache_key":"27ce8e37b65777b3f85840ba03dfb77e82253f310a0add1db17653d9e7649bec","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.session","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Session","text_hash":"6959b4159575d8dd76d9f3bbe2c6437904f861e7860c35abd18deffb1c3425a0","tgt_lang":"fr","translated":"Session","updated_at":"2026-06-16T14:14:38.496Z"}
|
||||
{"cache_key":"2814f27d535662c94616b306645f44b4e4997e710651714520ec47eb45260e26","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"fr","translated":"Ouvrir la PR","updated_at":"2026-07-11T04:04:37.542Z"}
|
||||
{"cache_key":"29543289b89e37bfcf5463f542622dbc78302bfc7b168de33bc9c12a4a75a80b","model":"gpt-5.5","provider":"openai","segment_id":"subtitles.skillWorkshop","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Review, refine, and apply proposals before they become live skills.","text_hash":"f907c72e9f18a205027257cd6fecdd52b03732227a17dcec0db038e11de3f8cc","tgt_lang":"fr","translated":"Examinez, affinez et appliquez les propositions avant qu’elles ne deviennent des skills actives.","updated_at":"2026-05-31T21:48:25.015Z"}
|
||||
{"cache_key":"2bdc5152de290d48705998872b49290e693b03d6b62920d6aee2ceb8a0475454","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.available","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Available","text_hash":"e674447337e83c1346f6122ed69f35bf5526e2a11842b2f2b788f3fb67d714ca","tgt_lang":"fr","translated":"Disponible","updated_at":"2026-07-10T02:24:53.076Z"}
|
||||
{"cache_key":"2ca7b9aa28d0799f801f0c4fa89f28332fd2eb104134440ae12f9db7288f0e57","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.statMcpServers","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"MCP servers","text_hash":"22a7559f09bf8f82c510280f934bf50db4c45cc611fd4dd47d7cbf7c7d4f5b82","tgt_lang":"fr","translated":"Serveurs MCP","updated_at":"2026-07-10T02:24:49.792Z"}
|
||||
@@ -466,6 +467,7 @@
|
||||
{"cache_key":"d8b82816b2447f9cdf8c1f6e790726787cc313c2e9369bee4b5573e70acc0dad","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh30s","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"30s","text_hash":"d3382a4f0e03f8b14cf99424376886c236f1503d4b332137667484fc96d58fc4","tgt_lang":"fr","translated":"30s","updated_at":"2026-06-17T14:14:37.466Z"}
|
||||
{"cache_key":"d91fc8a6cd1dfd882eb426a9dc0c6708ff2d30d7c8b3d1cb33fc29c6631472e5","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.connectorAddedReady","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Added {name}. New agent sessions can use it right away.","text_hash":"6e83577bc322cd89c4cff10d5809e54136075fcb9efce925fb9adc7fc2380695","tgt_lang":"fr","translated":"{name} ajouté. Les nouvelles sessions d’agent peuvent l’utiliser immédiatement.","updated_at":"2026-07-10T05:22:13.016Z"}
|
||||
{"cache_key":"da650b9260f6b27e154267e9d924e26b85d7ae77f5f4e94614c28ed081136229","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.mcpEmpty","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"No MCP servers configured yet. Add one here or pick a connector from Discover.","text_hash":"7ab46c2b4a5b1ec66b137d12a68fd0f024cf3582b9ee94bdee781086acd4c54c","tgt_lang":"fr","translated":"Aucun serveur MCP n’est encore configuré. Ajoutez-en un ici ou choisissez un connecteur depuis Découvrir.","updated_at":"2026-07-10T02:24:49.792Z"}
|
||||
{"cache_key":"da7af5e35a801daa12b1cc60a14041e17c004082f1ed4696e61bd1d4a0b0a23e","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"fr","translated":"Ouvrir dans","updated_at":"2026-07-11T04:04:37.542Z"}
|
||||
{"cache_key":"dba4de5b395e649c53c56af6e8683b3ec249196ff14953ec51d61e7dd68914e7","model":"gpt-5","provider":"openai","segment_id":"usage.costWindows.lastDays","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Last {count} days","text_hash":"4aa456a0fa9b73dcc14766740b19fc52c452950ccb7bc892499c3c29a4122162","tgt_lang":"fr","translated":"{count} derniers jours","updated_at":"2026-07-05T20:24:32.108Z"}
|
||||
{"cache_key":"dbcc1e6ff0588e27c2292f68df4039426a50b65b151a4cd043db53a9476c8090","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.runtime.unknown","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Task","text_hash":"4bc74b21357c6cf5cca8f66b4d4ee948be64d0396feb434c9645e168ad61ceaf","tgt_lang":"fr","translated":"Tâche","updated_at":"2026-07-06T08:42:32.187Z"}
|
||||
{"cache_key":"dc0cde6fbb2257f11c231f7bc2f1d44e21fb2e2e475249d41f4353ce177c6d58","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.copy","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Copy Link","text_hash":"724e78a3254c899d16ef6324a7abc9a8f5240ffce8bff74976df397c68ce9d78","tgt_lang":"fr","translated":"Copier le lien","updated_at":"2026-07-09T11:02:48.820Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:02.784Z",
|
||||
"generatedAt": "2026-07-11T04:04:40.139Z",
|
||||
"locale": "hi",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -53,6 +53,7 @@
|
||||
{"cache_key":"070652a6ee0f33878872817c77dc6c968c9ea228981de1b47b0dbb5c92741974","model":"gpt-5.5","provider":"openai","segment_id":"agents.channels.noAccounts","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"no accounts","text_hash":"11397ad5e7303cdd127ac98987b3c52e35c06a11428c6e7503a128dd96749dbd","tgt_lang":"hi","translated":"कोई खाते नहीं","updated_at":"2026-06-26T21:30:49.011Z"}
|
||||
{"cache_key":"073b8e84c8972cf054e26880ea2881b51801a2c11abd4a6b0631a8e8648edbe7","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.closePane","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Close pane","text_hash":"7fa0f9613d919e167b0f9aa03c22809d446af293eb6c3bac6866bae66d2656c9","tgt_lang":"hi","translated":"पैन बंद करें","updated_at":"2026-07-06T07:23:39.104Z"}
|
||||
{"cache_key":"07549bd3add7af955ce8527904a04f6751bd74a15909f5a0639e0228a201c4df","model":"gpt-5.5","provider":"openai","segment_id":"usage.overview.noChannelData","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"No channel data","text_hash":"28b65b08b938c27634e6f67a7d8835da8b4e8cbbcc5413da8b6a24afd9c767f2","tgt_lang":"hi","translated":"कोई चैनल डेटा नहीं","updated_at":"2026-06-26T21:35:13.036Z"}
|
||||
{"cache_key":"0755be952857dcdc7daef7338530ea66b53f35f816984a374e44fbc06d6fd25b","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"hi","translated":"PR खोलें","updated_at":"2026-07-11T04:04:40.129Z"}
|
||||
{"cache_key":"0778cb58d11b5944cbc3e3120b0a386dae25072ba734f8fbff1d658918835415","model":"gpt-5.5","provider":"openai","segment_id":"browser.inspect","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Inspect element","text_hash":"f6493a99c5a31183042eaccd03bf7df3cb81d9f07f277fb114c1e4ccf8661675","tgt_lang":"hi","translated":"एलिमेंट का निरीक्षण करें","updated_at":"2026-07-11T02:18:28.211Z"}
|
||||
{"cache_key":"078bfe1a33b18dac3f66bc9b249b9fcc63203507525a352698b1e1d69acce3b7","model":"gpt-5.5","provider":"openai","segment_id":"usage.overview.cached","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"cached","text_hash":"3673014e72b67383be302485694555a57ad393afdebaed6ded110a775bd0556d","tgt_lang":"hi","translated":"कैश्ड","updated_at":"2026-06-26T21:35:07.144Z"}
|
||||
{"cache_key":"07a8a85018a03dfac64bef5dc9ba97a32aaaf76b71445b92f33fcdfb83d1cf13","model":"gpt-5.5","provider":"openai","segment_id":"agents.files.minRead","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"{count} min read","text_hash":"ba43151afaf01bf1e02c6edad8da835d0dedf91b7f2f572fcdea186c5dc353f9","tgt_lang":"hi","translated":"{count} मिनट पढ़ने का समय","updated_at":"2026-06-26T21:30:58.804Z"}
|
||||
@@ -405,6 +406,7 @@
|
||||
{"cache_key":"36b4ccdaf9b1c6cbecd412c0e9f6fea4a14128838f6a58c94198180cb5668206","model":"gpt-5.5","provider":"openai","segment_id":"workboard.badgeTenant","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"tenant {tenant}","text_hash":"d9baa0533dfc0139ba37c970d4bf816c5687dbb50b15a13a374dfc93f01a0e42","tgt_lang":"hi","translated":"tenant {tenant}","updated_at":"2026-06-26T21:32:45.360Z"}
|
||||
{"cache_key":"36b69a43d1677868f08e64d03eb6d248b48fbf5ed6e5fd40dcda0d6b8cd1f4a6","model":"gpt-5.5","provider":"openai","segment_id":"browser.loading","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Loading page…","text_hash":"ba7d61388ac8c05b7eca9e4eb40049222eb87f904783a718c148392b7538b29f","tgt_lang":"hi","translated":"पेज लोड हो रहा है…","updated_at":"2026-07-11T02:18:39.926Z"}
|
||||
{"cache_key":"36c9bb42561547d157d3702cf19c61916363a26316ea07c57507e7bcc9effc59","model":"gpt-5.5","provider":"openai","segment_id":"dreaming.status.idle","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Dreaming Idle","text_hash":"bb633a8129a7ecd9922ff32833ba5d6f74fff826bd83aa15af0aafc9ba8de863","tgt_lang":"hi","translated":"Dreaming निष्क्रिय","updated_at":"2026-06-26T21:33:54.151Z"}
|
||||
{"cache_key":"36d38ff53bb701166ac98755caf32d9b893990b3751d858071ac88946d9751d2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"hi","translated":"में खोलें","updated_at":"2026-07-11T04:04:40.129Z"}
|
||||
{"cache_key":"36f24a5c5903ee889297b4f541187fa9c38d0b305876a8040b6f3cf6467359c3","model":"gpt-5.5","provider":"openai","segment_id":"workboard.agentFilterUnassignedHelp","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Cards without an explicit agent.","text_hash":"f716a36252b33511df056fe7d1092be598eca17ea76bedc5d6d3532ec6b0ffea","tgt_lang":"hi","translated":"बिना स्पष्ट एजेंट वाले कार्ड।","updated_at":"2026-06-26T21:32:18.718Z"}
|
||||
{"cache_key":"3713127b35c746e8bd137d122ce57bc4f2ef8b4d33c264642deefea3a29e9a57","model":"gpt-5.5","provider":"openai","segment_id":"cron.quickCreate.whenHeading","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"When should it run?","text_hash":"272d37d4ef0408390f6b30ab3362cb5a85990c228cd26a176d5b7b3c337463b4","tgt_lang":"hi","translated":"इसे कब चलना चाहिए?","updated_at":"2026-06-26T21:36:59.582Z"}
|
||||
{"cache_key":"3754bb51c74fe8bb91cc9a7dc4dbf6e3dcd892be4699c347ba779894f8af1667","model":"gpt-5.5","provider":"openai","segment_id":"usage.details.tool","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Tool","text_hash":"2e53bdcd0740867b597599e733c04a994f55fb17c89a61595183a001742e5705","tgt_lang":"hi","translated":"टूल","updated_at":"2026-06-26T21:35:26.182Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:03.830Z",
|
||||
"generatedAt": "2026-07-11T04:04:47.103Z",
|
||||
"locale": "id",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -54,6 +54,7 @@
|
||||
{"cache_key":"1ca16289a1c9ee2d9bc5ede8a75396e8d9356dfdc6d0984fb331101587d4f422","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.lastRefreshed","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Updated {time}","text_hash":"2f87419441e6111b4d62893d3c4ef5ddeb2c8e1af82fabab6132856faf77f907","tgt_lang":"id","translated":"Diperbarui {time}","updated_at":"2026-06-17T14:16:03.086Z"}
|
||||
{"cache_key":"1e575f21e4b5bad1a0669038c53673ae26721b967599fd634483562dc92a5637","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewAll","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"All cards","text_hash":"2306120917506b5998ec702f3661068b102dac538ba4c9e4634d65fe33eea98a","tgt_lang":"id","translated":"Semua kartu","updated_at":"2026-06-17T14:15:58.283Z"}
|
||||
{"cache_key":"1f2ef4f2d5f224910a592dccf648f7d331068ac67822786dd6dd71138f3ecc8d","model":"gpt-5","provider":"openai","segment_id":"codexSessions.untitled","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Untitled Codex session","text_hash":"c70b89c47992206d82993f9d295c9d3368a993fbc0899eef1bafb25277e5c88d","tgt_lang":"id","translated":"Sesi Codex tanpa judul","updated_at":"2026-07-09T10:01:43.737Z"}
|
||||
{"cache_key":"1f6dd39512af46296191fe06a789ad211fa3facfeca9d462e14c76442effe373","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"id","translated":"Buka PR","updated_at":"2026-07-11T04:04:47.096Z"}
|
||||
{"cache_key":"20cfe99188b63ff3d814604ce6a2b05a535ae2ff5743ce49cc4d83a2d5e111f1","model":"gpt-5","provider":"openai","segment_id":"codexSessions.title","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Sessions across your computers","text_hash":"23b30c777a12daeb3e5471cd51530189b621db9fdec4e6ea976e5a97516fac22","tgt_lang":"id","translated":"Sesi di semua komputer Anda","updated_at":"2026-07-09T10:01:43.737Z"}
|
||||
{"cache_key":"21b97ab6117399c517ac47d142a20c85b89e5969eb7af8b3c187053b0bc7eda4","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.unavailable","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Session catalog unavailable","text_hash":"7214837a3c6e83c01215e8128a4f7ac095be446b09dc0bd464178c9d1f03a039","tgt_lang":"id","translated":"Katalog sesi tidak tersedia","updated_at":"2026-07-09T10:01:43.737Z"}
|
||||
{"cache_key":"2214a5eb361fa9f77286505dddbb064637bcc50091600ea9f47a0c146b15e737","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.commentaryLabel","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Commentary","text_hash":"4a7a75ab79cde05b0b1baa8f7a704c991586ea44d7e7793e57178ef56f778ff8","tgt_lang":"id","translated":"Komentar","updated_at":"2026-07-01T01:07:58.622Z"}
|
||||
@@ -252,6 +253,7 @@
|
||||
{"cache_key":"9797ccab3e346656b3370be9687fe5b93d676c4f44c2a8929c615989fee9645d","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.confirmForceDelete","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Snapshot failed: {error}\n\nDelete without a snapshot?","text_hash":"200ce9b8fb04659df79e1d26e69ec1014631ad5a85a92130dbdb9fcb550ba34f","tgt_lang":"id","translated":"Snapshot gagal: {error}\n\nHapus tanpa snapshot?","updated_at":"2026-07-05T21:01:23.086Z"}
|
||||
{"cache_key":"97ba33ecbfaa2cbd383f3cb530d18ce868d04fae1f09e21568f57c21f94782f3","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.costCategories","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Cost categories","text_hash":"cc320c9a0f62d2c1cf4b7214592b89080ffb035c5692463c7c514b2350814382","tgt_lang":"id","translated":"Kategori biaya","updated_at":"2026-07-06T06:40:15.357Z"}
|
||||
{"cache_key":"97f2e34e7a1cb411225dd19628d27901aada735125e0b110021d65c6ad58afc1","model":"gpt-5.5","provider":"openai","segment_id":"browser.refresh","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Refresh view","text_hash":"112b4ddb82dac7080c1c85de7475cd9754b2ac7e0a89fbb38126923180d76ec2","tgt_lang":"id","translated":"Segarkan tampilan","updated_at":"2026-07-11T02:19:28.776Z"}
|
||||
{"cache_key":"98309a636947e1cdcac676ac3cc3ff6a36d813ef08663414d4274d0cde33bb29","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"id","translated":"Buka di","updated_at":"2026-07-11T04:04:47.096Z"}
|
||||
{"cache_key":"9904fcedb8f389c643e499148caae987d1dd229b635df4306a7cacee975c1716","model":"gpt-5","provider":"openai","segment_id":"codexSessions.refresh","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Refresh","text_hash":"0e91610117029a62a478b7fa7df0b8598bebe3ab1e192d4b1882e310719c9671","tgt_lang":"id","translated":"Muat ulang","updated_at":"2026-07-09T10:01:43.737Z"}
|
||||
{"cache_key":"9a23aa0c564bb15c0e2ac193098e972c245dbe7b2e3bd6d544fb00c4409aece4","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh60s","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"60s","text_hash":"f79f071ab5b033ca8fb42c077f39708930d194b18f4608eb26ac1d9665a8836f","tgt_lang":"id","translated":"60d","updated_at":"2026-06-17T14:16:03.086Z"}
|
||||
{"cache_key":"9a6094400e4e615f25ae9be31a688ef81fcac72ff43d806803f6ca759765c64d","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.files","source_path":"ui/src/i18n/locales/id.ts","src_lang":"en","text":"Workspace","text_hash":"87bb59ba2f92f2a5a9f13e021fd58dd14ae5c065b1046146875e6e68d5ebc8b7","tgt_lang":"id","translated":"Workspace","updated_at":"2026-06-16T14:16:50.406Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:03.206Z",
|
||||
"generatedAt": "2026-07-11T04:04:42.491Z",
|
||||
"locale": "it",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -153,6 +153,7 @@
|
||||
{"cache_key":"527f7b455533c166625ce1dbeabc38f4490c46b0cf1bb0b128695c75c682c024","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.noSearchResults","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"No matching files.","text_hash":"6ba2ede6c6019b640f63e7e48c5ee8238e701c6e539ce9abb5a7a9d9c71d8a73","tgt_lang":"it","translated":"Nessun file corrispondente.","updated_at":"2026-06-16T14:15:52.375Z"}
|
||||
{"cache_key":"538a0ced1101af2e1eb9a4b4b126cc8313eea778cf7267e794427cfd22bb3829","model":"gpt-5.5","provider":"openai","segment_id":"chat.workspaceFiles.dragToDock","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Drag to dock right or bottom","text_hash":"3fae26368a3c23df2e4e25691983c2a56efdbf92d5b970101e0aa432db9c48f6","tgt_lang":"it","translated":"Trascina per agganciare a destra o in basso","updated_at":"2026-07-10T06:08:23.266Z"}
|
||||
{"cache_key":"54c6837f7eb486aae64084dc4a1e60d76d596509c9f7718183261478bd1b365d","model":"gpt-5.5","provider":"openai","segment_id":"browser.loading","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Loading page…","text_hash":"ba7d61388ac8c05b7eca9e4eb40049222eb87f904783a718c148392b7538b29f","tgt_lang":"it","translated":"Caricamento pagina…","updated_at":"2026-07-11T02:19:01.933Z"}
|
||||
{"cache_key":"56ed50e4eecc5cdf964e7b65d43a1beacf9e76ec5013ca47ae255b8657fac60d","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"it","translated":"Apri PR","updated_at":"2026-07-11T04:04:42.484Z"}
|
||||
{"cache_key":"572c7a98a9f57b4ff64396ca773ca90a152197053ca0202fbeaa39afa9e7c4ab","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotatePrompt.region","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Marked region {index}: centered around {x}% across / {y}% down, spanning about {width}% × {height}% of the view.","text_hash":"e2e51195aefb95748b2c7f794b41b042d70dfeab5de6420e196824eb7780a2ba","tgt_lang":"it","translated":"Regione contrassegnata {index}: centrata circa a {x}% in orizzontale / {y}% in verticale, copre circa {width}% × {height}% della vista.","updated_at":"2026-07-11T02:19:01.933Z"}
|
||||
{"cache_key":"57450b74a7695e29b9627733d68e7f7cd2b8bf7b7757f82206839be9cfb42568","model":"gpt-5.5","provider":"openai","segment_id":"profilePage.heatmapCellTokens","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"{tokens} tokens","text_hash":"507a17952dbcbb44f1b9ffff34ec5fc71563ca5d60c07c5fa9ab68339e462139","tgt_lang":"it","translated":"{tokens} token","updated_at":"2026-07-09T11:27:54.209Z"}
|
||||
{"cache_key":"5774b6a2f1f2ca7dbcde887793ff11b42858176e3768594ec28f6b0dd52d1d11","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.deleteGroupConfirm","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Delete group \"{group}\"? Its sessions move to Ungrouped.","text_hash":"8efc8cb301bca2d82627c05eb36558e603c1b1ad0d58a2bd6584aa1c3a01c710","tgt_lang":"it","translated":"Eliminare il gruppo \"{group}\"? Le sue sessioni verranno spostate in Senza gruppo.","updated_at":"2026-07-06T23:41:05.438Z"}
|
||||
@@ -389,6 +390,7 @@
|
||||
{"cache_key":"e46ec9eee700a9a153d4c046b2a558c48108f2a76ebf7968b8f5bbc12329e6b8","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameSession","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Rename session","text_hash":"2cad0766accc2d3f70f007068524cea983e0d53f54543e9e82a4e73b2a07987f","tgt_lang":"it","translated":"Rinomina sessione","updated_at":"2026-07-02T14:30:25.278Z"}
|
||||
{"cache_key":"e472ffa060374ac1bb242992b43d84b17e341e6bd6df33f5780ac16f453f3c09","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.repo","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Repository","text_hash":"13d6ff07b8a5d792ec87d5ec83bff2730ee77fa8f4fcd89ca5f1d688f64b4c73","tgt_lang":"it","translated":"Repository","updated_at":"2026-07-05T21:01:11.440Z"}
|
||||
{"cache_key":"e552b26b36ca7c9e317b1082c05dee0e2c897286d8875176cd954cedb565ce3a","model":"gpt-5.5","provider":"openai","segment_id":"newSession.worktree","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Worktree","text_hash":"c893ba3003855aabfee294479c03266349e97e1675ade569b480e56ce4c2bde3","tgt_lang":"it","translated":"Worktree","updated_at":"2026-07-10T17:59:26.805Z"}
|
||||
{"cache_key":"e5d2588b07b08cfa50eefae02e0071d012cd00c3de5144f99dbdf937033b54b6","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"it","translated":"Apri in","updated_at":"2026-07-11T04:04:42.484Z"}
|
||||
{"cache_key":"e71bb63f05f640f5b58d638138a1d20b3c5e44040623ac88230fe4ad50f697a6","model":"gpt-5.5","provider":"openai","segment_id":"quickSettings.appearance.lobsterVisitsOn","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Drops by occasionally","text_hash":"620c90596deb02d1164d4036d540b11c780b61cb04e4825230efed1cd8a45e6e","tgt_lang":"it","translated":"Passa ogni tanto","updated_at":"2026-07-09T20:51:38.844Z"}
|
||||
{"cache_key":"e73d23872261649106291ad0797021f11272f286362b5cbf4e6488170d056891","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivityLow","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Low","text_hash":"f793de205ead5ac302c4a1627829dea41f176b1068b993a32373fc869918374b","tgt_lang":"it","translated":"Bassa","updated_at":"2026-07-06T20:20:02.809Z"}
|
||||
{"cache_key":"e74a9e62f15f324f58f971cc5c8c4d4f5c9590b7e478fb8c5d19b0cd07c17998","model":"gpt-5.5","provider":"openai","segment_id":"browser.refresh","source_path":"ui/src/i18n/locales/it.ts","src_lang":"en","text":"Refresh view","text_hash":"112b4ddb82dac7080c1c85de7475cd9754b2ac7e0a89fbb38126923180d76ec2","tgt_lang":"it","translated":"Aggiorna vista","updated_at":"2026-07-11T02:19:01.933Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:02.187Z",
|
||||
"generatedAt": "2026-07-11T04:04:34.747Z",
|
||||
"locale": "ja-JP",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -167,6 +167,7 @@
|
||||
{"cache_key":"680d8cfcc46f5bf79ff5ea1b57b5f7fed47326f0aff56b5e3709fa088fd1bb2c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewReady","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Ready","text_hash":"5fa7aac5375c5815787fba3f49559f9b45b14023147ce0652803387974144e5f","tgt_lang":"ja-JP","translated":"準備完了","updated_at":"2026-06-17T14:14:04.173Z"}
|
||||
{"cache_key":"6a7c80b8ac5cc4e50402774387213fa9a63c4f7eefea44affad653d6dcd95564","model":"gpt-5.5","provider":"openai","segment_id":"browser.inspectFocusable","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Focusable","text_hash":"18ab85b65c8401162517e0abde980c12b0d32027eaae9a7dec2334cea85d881e","tgt_lang":"ja-JP","translated":"フォーカス可能","updated_at":"2026-07-11T02:18:03.820Z"}
|
||||
{"cache_key":"6ad2f935e6a8871cb8e911873a191e855af56310ce17d07da563fa96743c6dfd","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotateSend","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Send to chat","text_hash":"6798b9b16e4afc73651eded2e3b69b7dd695a12d03e813fab7b73ebda01bab5b","tgt_lang":"ja-JP","translated":"チャットに送信","updated_at":"2026-07-11T02:17:57.654Z"}
|
||||
{"cache_key":"6b4f1580cd0bbba8272fc4f210fe57dea3817937f774314d6386ea5b646dd603","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"ja-JP","translated":"PRを開く","updated_at":"2026-07-11T04:04:34.741Z"}
|
||||
{"cache_key":"6b711c539f0b4ce2c514744260c62dc22ce17d14cc18529d40c1d1af5ff2f4c5","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.newGroup","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"New group…","text_hash":"ce58c189f2045434c28a50c9875a7362d28c79fb34d4b365c09f59180ca2712a","tgt_lang":"ja-JP","translated":"新しいグループ…","updated_at":"2026-07-05T14:39:44.116Z"}
|
||||
{"cache_key":"6dcca3b4c171d37fba32b5c359c51c96ac79643612c1aceda8eadc9093e81b27","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCount","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{count} sessions","text_hash":"27de9b3be346a2abd2cb67f9f93abfe8100d7ce996e1204b75fc84670c7818e6","tgt_lang":"ja-JP","translated":"{count} 件のセッション","updated_at":"2026-07-05T14:39:44.116Z"}
|
||||
{"cache_key":"6e4f79ebbfb53c3f4eb49db29420c9d78cc6ebf467b17a2862e68da80bf66197","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.contextUsage","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{percent}% of context used ({used} / {context} tokens)","text_hash":"f626ed78b8aca81f039ef64637bbdd4cffe0a289b402fd0c6039e977040aba72","tgt_lang":"ja-JP","translated":"コンテキストの {percent}% を使用中({used} / {context} トークン)","updated_at":"2026-07-09T07:06:17.887Z"}
|
||||
@@ -218,6 +219,7 @@
|
||||
{"cache_key":"8fb588b6b5e3c2da65abd9016c94517733e86b4a3286dfed1b05bc71a89637f3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.commentaryToggle","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Keep commentary after the final answer","text_hash":"febdff0791d1ceeddb2b7596da8282f4dcfd5cff4cad11dea4c0a23944cd8ffe","tgt_lang":"ja-JP","translated":"最終回答の後にコメントを残す","updated_at":"2026-07-01T01:06:53.045Z"}
|
||||
{"cache_key":"8fc12c1c70a06c3a12afa5ae2521ba58a98bbf2dd9147a047deffc31df076c86","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.today","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Today","text_hash":"2b065c7c9ce466e5ebcad757987d5d660ee4c9ea708bc62c43444b53334738ba","tgt_lang":"ja-JP","translated":"今日","updated_at":"2026-07-05T14:39:44.116Z"}
|
||||
{"cache_key":"903a2b117a7966a36f48e043f1925ac4eaa8c62a53388b0d1d967eaed4b85f2e","model":"gpt-5.5","provider":"openai","segment_id":"browser.toggle","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Toggle browser panel","text_hash":"cfd0e6c787d9b0fd9341c1bc377dca3a0987588b1fdb68ef23b5d0ce3bced9bc","tgt_lang":"ja-JP","translated":"ブラウザパネルを切り替える","updated_at":"2026-07-11T02:17:57.654Z"}
|
||||
{"cache_key":"90db3fbf51571700c2c337a29c4011b3006a1f6c1b1caf0b9bd8a98732cbe27e","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"ja-JP","translated":"開く","updated_at":"2026-07-11T04:04:34.741Z"}
|
||||
{"cache_key":"9182bd9f8c396e9816aeac9e137bd8bae0d451e4ec8fb9139032491c4e5d5354","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthStale","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"stale","text_hash":"a03f2386ae06b21109577020844df367857b72c2fcce384c1896fed98a89c82b","tgt_lang":"ja-JP","translated":"古い","updated_at":"2026-06-17T14:14:09.255Z"}
|
||||
{"cache_key":"93309fb097ac6115ffa01bb8a34c155ed43cae5a9c78fc137d45bb1d1bd13c0a","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChatTooltip","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Send revision requests to the current chat session instead of the proposal's workshop session.","text_hash":"9db782d40e88750d4faed33c8a73c24552070f101483881c60af8cf446c674a6","tgt_lang":"ja-JP","translated":"修正リクエストを提案のワークショップセッションではなく現在のチャットセッションに送信します。","updated_at":"2026-06-16T14:14:04.101Z"}
|
||||
{"cache_key":"93aa12fedaab987305f07af92bc0269591826006609125f17a2dc90afd7e6db8","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailNotePlaceholder","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Add a decision, blocker, or proof note...","text_hash":"0e40ea8371be2fcbd8379458b0da541ca0dce5dc86357dea64a4d8fac1c742dc","tgt_lang":"ja-JP","translated":"決定事項、ブロッカー、証跡メモを追加...","updated_at":"2026-06-16T14:14:13.256Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:02.392Z",
|
||||
"generatedAt": "2026-07-11T04:04:35.919Z",
|
||||
"locale": "ko",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -172,9 +172,11 @@
|
||||
{"cache_key":"6a3e291885d700c68ed23e57b1d77a80ebe7034566fc083eec30668c58a69f23","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.offline","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Offline","text_hash":"a1794783aab72d205dc532b1170d1be63ebdce8816b57c21acb451c15dab969a","tgt_lang":"ko","translated":"오프라인","updated_at":"2026-07-09T10:01:43.732Z"}
|
||||
{"cache_key":"6a662ca48b599a619312dd3e580a9351113f19d7787285a064f32608882c871a","model":"gpt-5.5","provider":"openai","segment_id":"browser.inspectRole","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Role","text_hash":"14736a2eb9f4159f4b6b86f192c3c222243fd9659aadf2ecc0139e3d72bed85c","tgt_lang":"ko","translated":"역할","updated_at":"2026-07-11T02:18:12.376Z"}
|
||||
{"cache_key":"6aa0c48e467ffeeeb2f4c2c5ebde0c38d70f49d779a73c2e0b8b72b74b7d87c2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByCategory","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Custom groups","text_hash":"9636b3c175d0e2a9fb982785a84275d191a8b4ef28e4d842a9e35a38e3c12f10","tgt_lang":"ko","translated":"사용자 지정 그룹","updated_at":"2026-07-05T14:39:46.951Z"}
|
||||
{"cache_key":"6c06de6711d5a46b24e4024df8c4e07d781e5b10503c71e99bb796d8c46f323c","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"ko","translated":"다음에서 열기","updated_at":"2026-07-11T04:04:35.915Z"}
|
||||
{"cache_key":"6c2c490ea3016befc0d5e801018f9149b0fe3b7e32e4016b60c0d3b6d3858b94","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.refreshError","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Refresh failed","text_hash":"8fa7e6d90bef4e5cb735233347bf6a71b5b30d96e7c1a50b73f10cb441b275c2","tgt_lang":"ko","translated":"새로 고침 실패","updated_at":"2026-06-17T14:14:20.553Z"}
|
||||
{"cache_key":"6c3dad2e8e5c699a70510fbe20f8ffe95e9be31e1aaa4a5c6fafdf5bc744cf2e","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateNoActivity","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"No activity","text_hash":"0cf9505f9f97c8359cc143ba3e88bedaba3a4ae92c2794ffd1b097270732ed18","tgt_lang":"ko","translated":"활동 없음","updated_at":"2026-07-05T14:39:46.951Z"}
|
||||
{"cache_key":"6c62aedf9dd62ed196939ed6e378abcf9ae48d3b0c93ba6f4d6e4b51d3c360b8","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupMenu","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Group options for {group}","text_hash":"29456bfd0f10cfa1b3b0c005e2202221ff66aafe6b72ee05f7cfc93ce9e79af7","tgt_lang":"ko","translated":"{group}의 그룹 옵션","updated_at":"2026-07-06T23:40:54.646Z"}
|
||||
{"cache_key":"6d75d611749be23a3485e00d9b9f6fc7990b2e0bef48f9841ac12e615160b692","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"ko","translated":"PR 열기","updated_at":"2026-07-11T04:04:35.915Z"}
|
||||
{"cache_key":"6f693f0f565677639f0d9ee2d890fdc3fa6b8bf362856e467054bdd89326d023","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkAdvancedSettingsRequiresAdmin","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Advanced settings require admin","text_hash":"021f44198c7c7935a112e55150d2daaebe388ac9e529460d64c2f8f3ba3b9d82","tgt_lang":"ko","translated":"고급 설정에는 관리자 권한이 필요합니다","updated_at":"2026-07-06T20:20:02.809Z"}
|
||||
{"cache_key":"700959a290ccc2935eb2574af4b772e98dc8276a0d57d4a0261bebde2b48654d","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkVoice","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Voice","text_hash":"87bf2bc08589f0bd4a078db145c34ad5e14b8fda53c3ae65b78601294913df95","tgt_lang":"ko","translated":"음성","updated_at":"2026-07-06T20:20:02.809Z"}
|
||||
{"cache_key":"7040c46ba452a9c4dc32ea59c9a5c7732e6b47923e105b18a8e97581ab1cf47b","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.active","source_path":"ui/src/i18n/locales/ko.ts","src_lang":"en","text":"Active","text_hash":"92340695899bd2d86223e4a007620e0d6502fc0e08809773634c7e0743764a9c","tgt_lang":"ko","translated":"활성","updated_at":"2026-07-09T10:01:43.732Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:04.587Z",
|
||||
"generatedAt": "2026-07-11T04:04:52.332Z",
|
||||
"locale": "nl",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -170,6 +170,7 @@
|
||||
{"cache_key":"58f812d0933fb33ee8960d56b1c1353581c218761017a33653387d600a314f4b","model":"gpt-5.5","provider":"openai","segment_id":"chat.backgroundTasks.label","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Background tasks","text_hash":"c6907e94a3b7ea1b0e9cb7bb3c674bbaddb0216cab132a2bfa63507afebbc888","tgt_lang":"nl","translated":"Achtergrondtaken","updated_at":"2026-07-11T00:45:39.382Z"}
|
||||
{"cache_key":"5951df87e80cde2c1bedb2cabb423e0a893f0b65752fc4ed085241bf99265191","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.disableAction","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Disable","text_hash":"b7e3e4aa4257b9a11a82f59faf34c8450ca10d4116885b0a29fedf60842d81d5","tgt_lang":"nl","translated":"Uitschakelen","updated_at":"2026-07-10T04:28:53.665Z"}
|
||||
{"cache_key":"597a853f6941544fc46c9011e1b2bae5f2d3ec65bf76dd2dbbb9d2e8a39627f3","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.installNamed","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Install {name}","text_hash":"15d27e180bc64b4b3219b11337fa5e748c69724a16fc7b9918b5994ddaad2e9f","tgt_lang":"nl","translated":"{name} installeren","updated_at":"2026-07-10T02:29:07.297Z"}
|
||||
{"cache_key":"59d06d0db2c4a4da698fca438dca869aafe8f5daf8f019097492df2483e945cb","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"nl","translated":"PR openen","updated_at":"2026-07-11T04:04:52.324Z"}
|
||||
{"cache_key":"5a170a8c096ee3cb506ec25c49fc2ba22e6bf1ede7edc67a72dbef2e2bc5f068","model":"gpt-5.5","provider":"openai","segment_id":"chat.backgroundTasks.collapse","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Collapse background tasks","text_hash":"e793371743248cb45412e03ad89929c99a0018f1c517a1d71f11bdc9c854f357","tgt_lang":"nl","translated":"Achtergrondtaken samenvouwen","updated_at":"2026-07-11T00:45:39.382Z"}
|
||||
{"cache_key":"5a27922924ddd4f02b334ac7f0ead736956ae252d00ccdfd2c6561e071a5a199","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.removing","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Removing…","text_hash":"d4b09919ec929f15c19802296a06e97a0d0862e29e23c453d638fc0c3b87c641","tgt_lang":"nl","translated":"Verwijderen…","updated_at":"2026-07-10T02:29:02.639Z"}
|
||||
{"cache_key":"5aabc8f1bb457c23d3f11c53696e6eca1efcbb7c07f9752da95cebdfe467f8fe","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailTask","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Gateway task","text_hash":"6696e7c592238747dd39d7ba000db600a92f843add73ee90b028c72a2dfd37dd","tgt_lang":"nl","translated":"Gateway-taak","updated_at":"2026-06-16T14:18:09.152Z"}
|
||||
@@ -418,6 +419,7 @@
|
||||
{"cache_key":"c8d61dca76466bb54228631589843770110edbfb5f40977fe8b538a3b4336c16","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.officialGroup","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Official plugins","text_hash":"ddafbb5b037b9cdde061e3e0c4a6dadc0c45517048f4bb3aa8101b4ec3367982","tgt_lang":"nl","translated":"Officiële plugins","updated_at":"2026-07-10T02:28:53.502Z"}
|
||||
{"cache_key":"c9489eaef379f58a90787a918869737c4fa14fe8d1816f136a296dcc553f0d03","model":"gpt-5.5","provider":"openai","segment_id":"browser.dockRight","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Dock to right","text_hash":"df50a8c47b03e86a5edfdfaf2cd7289a22f9ce8dc0f91a80d71438bc887c964e","tgt_lang":"nl","translated":"Rechts vastzetten","updated_at":"2026-07-11T02:20:04.385Z"}
|
||||
{"cache_key":"c963b850e470017bd7b21b96dfa1cfbeab0034e054d86d9ba813a8408288b651","model":"gpt-5.5","provider":"openai","segment_id":"pluginsPage.statEnabled","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Enabled","text_hash":"92c1cdfdf4cb9cf6fcca962f206de36fd5d60db1178bc9461052f8de703a0e06","tgt_lang":"nl","translated":"Ingeschakeld","updated_at":"2026-07-10T02:28:53.502Z"}
|
||||
{"cache_key":"c9f5ec8ae2d8f9a1748c4cc4a483b328ea66af956cee637f578c8f8edccd3d91","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"nl","translated":"Openen in","updated_at":"2026-07-11T04:04:52.324Z"}
|
||||
{"cache_key":"cb6c84443ca09ca66b9cc3bebc2538399e0634bbb3214579aa84fe99ee311828","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSummary","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Summary: {summary}","text_hash":"3a2270b3cd47b523936c13efec489f36112e0a64fe763dbe972d21fef029e814","tgt_lang":"nl","translated":"Samenvatting: {summary}","updated_at":"2026-06-16T14:18:09.152Z"}
|
||||
{"cache_key":"cb8038b94c017757920e8ad341143e8bc172fb9e33794542b1702bccc2245756","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Auto-refresh","text_hash":"9ea4d7fd1550f0866089d18b1344546bfed91502b41c0484d6023ceb0fdeb75c","tgt_lang":"nl","translated":"Automatisch vernieuwen","updated_at":"2026-06-17T14:17:30.702Z"}
|
||||
{"cache_key":"cc5a2c41cabfb561da4374ca484c2367fdb978335927d638b45b393fdec29be9","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.connected","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Connected","text_hash":"22965568d22a14ee17af055d2870b50afcfe9fd94a83eec3196e266932297bb2","tgt_lang":"nl","translated":"Verbonden","updated_at":"2026-07-09T10:01:43.729Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:04.030Z",
|
||||
"generatedAt": "2026-07-11T04:04:48.426Z",
|
||||
"locale": "pl",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -127,6 +127,7 @@
|
||||
{"cache_key":"4710777b6338e7e28164a625a1250b744f5519d5ac45bc41fac8ddef205965c9","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.splitDown","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Split down","text_hash":"8730b89df7caaf5b5090f9b7365a0a03e0a13d9682dc6418f556b8a676d9e98f","tgt_lang":"pl","translated":"Podziel w dół","updated_at":"2026-07-06T07:24:08.404Z"}
|
||||
{"cache_key":"47675dad8a992cf72c82b4f62c0a4cc6d33b03d4b8bee80a9b8c36e328113092","model":"gpt-5.5","provider":"openai","segment_id":"chat.runControls.newSessionDisconnected","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Connect to create a new session","text_hash":"8a024c2e0f9dafb9be5a92fb2050bab969c42847a1123de55d465deafb9282e4","tgt_lang":"pl","translated":"Połącz, aby utworzyć nową sesję","updated_at":"2026-07-10T15:21:42.639Z"}
|
||||
{"cache_key":"48dcc6f3c228debf1796ac582c1f59a51f0a196547267b8f997de35013712895","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.connected","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Connected","text_hash":"22965568d22a14ee17af055d2870b50afcfe9fd94a83eec3196e266932297bb2","tgt_lang":"pl","translated":"Połączono","updated_at":"2026-07-09T10:01:43.766Z"}
|
||||
{"cache_key":"497efdefe1c6075105dd2377d4905a7a22462a78cbe9dd4c98b4f4ad88604915","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"pl","translated":"Otwórz w","updated_at":"2026-07-11T04:04:48.420Z"}
|
||||
{"cache_key":"4a3eade8e0edfab9754da7c2afd9dec4519e971ef51ce28aef958221f9286e5d","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailUpdated","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Updated","text_hash":"3a5ecca188c0579c00ee24cf3cab21bd02c15a06f7a70cc8e0a8ff2381dcbbfd","tgt_lang":"pl","translated":"Zaktualizowano","updated_at":"2026-06-16T14:17:07.423Z"}
|
||||
{"cache_key":"4a996ea93b1e7024b900c95391420e37636e7ed64abfc25acfbe69acf795558f","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.ageHours","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"{count}h","text_hash":"5828ef1c1e95e0bae1c98548d1795a2482cc8e14a8b161b183960a06018ce10d","tgt_lang":"pl","translated":"{count} h","updated_at":"2026-06-17T14:16:37.628Z"}
|
||||
{"cache_key":"4acdfe31e8047d41d43d4cf3cd2b5b242ae752cc4aff345f3ed1a96505b21182","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.estimatedCost","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Est. cost","text_hash":"3199f14286736527bfc6ad9165629415a5aa087517acd2c0e9b1ae8bb5d26766","tgt_lang":"pl","translated":"Szac. koszt","updated_at":"2026-07-05T16:00:24.695Z"}
|
||||
@@ -404,6 +405,7 @@
|
||||
{"cache_key":"eef389637b5d0a54653ef77928535138e9f7972a8319260be761dd3a40496613","model":"gpt-5.5","provider":"openai","segment_id":"profilePage.insightSessions","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Sessions tracked","text_hash":"b1b77d34c51bc94340e818faacf7b2271593f409d75d7be9be7a5a12047775f0","tgt_lang":"pl","translated":"Śledzone sesje","updated_at":"2026-07-09T11:28:32.832Z"}
|
||||
{"cache_key":"f0e9d4e25d1e9ecf35e6702b493458cedb488b8ddbc95f84d5be1d3036e3af06","model":"gpt-5.5","provider":"openai","segment_id":"profilePage.insightToolCalls","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Tool calls","text_hash":"da5122dc0f97b158bfbd27c5bd479322f34e0916a0cd4626d42c03bb0000e4b4","tgt_lang":"pl","translated":"Wywołania narzędzi","updated_at":"2026-07-09T11:28:32.832Z"}
|
||||
{"cache_key":"f1186d4236abd51e41a6027ad54f77c8bd85f8db7b2ae67e5fd7d9465a9441d1","model":"gpt-5.5","provider":"openai","segment_id":"chat.workspaceFiles.dockRight","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Dock to the right","text_hash":"87c5f43da74bf2aa5a575b34361abb7ef9c5eb57a2665369aed6f802eb28c376","tgt_lang":"pl","translated":"Zadokuj po prawej","updated_at":"2026-07-10T06:08:36.073Z"}
|
||||
{"cache_key":"f225bc5bc050a0d2265a5153e16d5ef37e991c752df764b7fa75f93e33698c59","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"pl","translated":"Otwórz PR","updated_at":"2026-07-11T04:04:48.420Z"}
|
||||
{"cache_key":"f34e1c9bcf19707b6ed6f890e14d7e0c463894a94e940ab93fcd5558077be10b","model":"gpt-5.5","provider":"openai","segment_id":"browser.loading","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Loading page…","text_hash":"ba7d61388ac8c05b7eca9e4eb40049222eb87f904783a718c148392b7538b29f","tgt_lang":"pl","translated":"Ładowanie strony…","updated_at":"2026-07-11T02:19:38.200Z"}
|
||||
{"cache_key":"f430940afa721ad84ad215f9d88d0f90ea8a7c1d168e47f0c0817185fddfa29b","model":"gpt-5.5","provider":"openai","segment_id":"browser.noChatTarget","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Open a chat session first so the annotation has somewhere to go.","text_hash":"bf1e692535065c056cf58dcc36302ccb93b479cea40984dc57a823d3e40cfd5f","tgt_lang":"pl","translated":"Najpierw otwórz sesję czatu, aby adnotacja miała dokąd trafić.","updated_at":"2026-07-11T02:19:38.200Z"}
|
||||
{"cache_key":"f46ca3da5e1380ff5d60b94c6c9e60579d0a7446481c1ce16d8282e1f066d9a2","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePageInactive","source_path":"ui/src/i18n/locales/pl.ts","src_lang":"en","text":"Microphone inputs are unavailable while this page is inactive.","text_hash":"775110f07819e48dc96203ed710c4df3546892e5672d7c469dedeb1e0e163882","tgt_lang":"pl","translated":"Wejścia mikrofonu są niedostępne, gdy ta strona jest nieaktywna.","updated_at":"2026-07-06T17:57:07.854Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:01.595Z",
|
||||
"generatedAt": "2026-07-11T04:04:31.387Z",
|
||||
"locale": "pt-BR",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -167,6 +167,7 @@
|
||||
{"cache_key":"659b01d3919b07b4973be8e47f5f482c712369db0c50178c538f9c2e679278d7","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.open","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Open split view","text_hash":"51e50f7be73433216ae62f58fdbc586372f5a6063ee9978cec96793ef75fa554","tgt_lang":"pt-BR","translated":"Abrir visualização dividida","updated_at":"2026-07-06T07:23:13.378Z"}
|
||||
{"cache_key":"6647c5abd27a864d10572e7fbe6b451093ae21ed6eac7c56eda75ed693f9cc47","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.empty","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"No managed worktrees.","text_hash":"67f97698da5ed0bb1cc4cadd157e403c0fcd22fc4735d8f39bcf27ea6dd612c8","tgt_lang":"pt-BR","translated":"Nenhuma worktree gerenciada.","updated_at":"2026-07-05T21:00:34.411Z"}
|
||||
{"cache_key":"675a9c80fafd60ad91b2873a489ff28ad9c5a43c8898713e638dac1bc0b26851","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortCreated","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Created","text_hash":"d70b9e24bca26b409b9458ceca6c9e5c2b5c3171c37ff050c6f6a0d7a4420d2a","tgt_lang":"pt-BR","translated":"Criado","updated_at":"2026-07-06T15:07:02.499Z"}
|
||||
{"cache_key":"6779d346f66b29bb89564a061d4d8b290caf7d71b16ca645d8d310ee26e1b2d1","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"pt-BR","translated":"Abrir em","updated_at":"2026-07-11T04:04:31.381Z"}
|
||||
{"cache_key":"67d032f8dd9ade60e9e0ac5dc332822dc17140e456a6e4c87e1de9b3ae926b80","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.systemError","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"System error","text_hash":"b9564eaf21a9356d06f7f3c67a5b9cb7e6538687c33bebbf1e1b64715018f310","tgt_lang":"pt-BR","translated":"Erro de sistema","updated_at":"2026-07-09T10:01:43.718Z"}
|
||||
{"cache_key":"681a65bf65fc3a38c13a12f8e68c0b6c0918e2c92aaf13990c6674376d8a7c60","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.recentSub","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Latest completed, failed, and cancelled tasks.","text_hash":"44280ebc1ef9ff6ae709f96c5d262b1818e8c580d877fb7f9885344e102eba59","tgt_lang":"pt-BR","translated":"Tarefas mais recentes concluídas, com falha e canceladas.","updated_at":"2026-07-09T21:53:07.275Z"}
|
||||
{"cache_key":"6a74017e37f35472190c4f57ee1fc5aaa5329be4ade6526b43a597993a5ab067","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterUnassignedHelp","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Cards without an explicit agent.","text_hash":"f716a36252b33511df056fe7d1092be598eca17ea76bedc5d6d3532ec6b0ffea","tgt_lang":"pt-BR","translated":"Cards sem um agente explícito.","updated_at":"2026-06-17T14:13:15.046Z"}
|
||||
@@ -288,6 +289,7 @@
|
||||
{"cache_key":"b63c30a48830f23686493bf9a2252702565019ce828af0403fb832cbf551e55d","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortSessions","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Sort sessions","text_hash":"6680f07d3df817d60180acbbc6e207689d28caaa27ac23749f93261b8111a38d","tgt_lang":"pt-BR","translated":"Ordenar sessões","updated_at":"2026-07-06T15:07:02.499Z"}
|
||||
{"cache_key":"b64b64cd25840603cc59b6e64edee450b7c822bbc56e5cd261980b1a4cb3e906","model":"gpt-5.5","provider":"openai","segment_id":"terminal.detached","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"detached","text_hash":"88e34e4cdbb5c6066cb1b0d0abe74714bd72f86259433bc8287614e4ae052605","tgt_lang":"pt-BR","translated":"desanexado","updated_at":"2026-07-04T21:23:49.285Z"}
|
||||
{"cache_key":"b65bdce4e71ce28444509ba524111356b2a35f4f2fe7970390fc4a908355117b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.browser","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Project files","text_hash":"2a3d9a240c9206964ee7237a1d99fda05ed501a485262e18f33c446c9f735d1c","tgt_lang":"pt-BR","translated":"Arquivos do projeto","updated_at":"2026-06-16T14:13:25.058Z"}
|
||||
{"cache_key":"b71b8b198961fe6b94c17cbaa912b2e6d574429fc79e98b776195fe4137be175","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"pt-BR","translated":"Abrir PR","updated_at":"2026-07-11T04:04:31.381Z"}
|
||||
{"cache_key":"b7e0d3670497eadf0f79edd7a87081f6e5fe131ee063832911ddf941eb089681","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthStale","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"stale","text_hash":"a03f2386ae06b21109577020844df367857b72c2fcce384c1896fed98a89c82b","tgt_lang":"pt-BR","translated":"obsoleto","updated_at":"2026-06-17T14:13:19.801Z"}
|
||||
{"cache_key":"b9ac968e00d3b327d9d0a6638a6a9484990139c5b17a98c10947e4225f85812d","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summary.sessions","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"sessions","text_hash":"1225ae6c1ae69dcb4ee4781b703e12206f3b549cd3ca151070a8d8d8f371dd71","tgt_lang":"pt-BR","translated":"sessões","updated_at":"2026-07-09T10:01:43.718Z"}
|
||||
{"cache_key":"bb1fe91b350457aa5e7e78afe309d992fa7f4e443cf9ed3484fe103e4883c3a5","model":"gpt-5.5","provider":"openai","segment_id":"chat.pullRequests.checksSkipped","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Skipped","text_hash":"12698ce1ea5cd4ab13ff4b7e6b1239908c41a4b2dfa0c2661cfb53fc2aa71bd0","tgt_lang":"pt-BR","translated":"Ignoradas","updated_at":"2026-07-10T23:12:24.535Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:04.970Z",
|
||||
"generatedAt": "2026-07-11T04:04:55.381Z",
|
||||
"locale": "ru",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -682,6 +682,7 @@
|
||||
{"cache_key":"60f5d30d0aa0b633a4e4616537033190f39e19f3aa093bb4a90f3219b001e899","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.compactionHistory","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Compaction history","text_hash":"cc9c4ee1ed1297d8e380e11a4526c3f5906a58bd263cd3294c6b95ec200e25b2","tgt_lang":"ru","translated":"История уплотнения","updated_at":"2026-06-26T21:38:57.762Z"}
|
||||
{"cache_key":"60f9d2e8aa8414e5df6ecd0dc99cedccf7f19451bd09f8c97621771aa8031480","model":"gpt-5.5","provider":"openai","segment_id":"channels.health.noSnapshotYet","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"No snapshot yet.","text_hash":"3b578b0bf270913e649934e72f7ef6584ed56b1e10dc563b541384ff660bbfbc","tgt_lang":"ru","translated":"Снимков пока нет.","updated_at":"2026-06-26T21:38:34.337Z"}
|
||||
{"cache_key":"61074c253bc865b43cf2da4560ecb7e228536d53d86c528f6d78a4ef8b7e9cf7","model":"gpt-5.5","provider":"openai","segment_id":"overview.pairing.scopeUpgradeTitle","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Scope upgrade pending approval.","text_hash":"01f51310417022d876b39bac2b047896b7a52e4be59e9ea7ce5416ae0c9010b3","tgt_lang":"ru","translated":"Расширение области доступа ожидает подтверждения.","updated_at":"2026-06-26T21:40:23.750Z"}
|
||||
{"cache_key":"610f5a9552a022b77dc2663d35c84f9525e2ae9bf8c90ed0b3a5cb607e7e173e","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"ru","translated":"Открыть PR","updated_at":"2026-07-11T04:04:55.372Z"}
|
||||
{"cache_key":"615432233823e4648f8a4b39d2a72da42a0a35a0415afa6d823ef355b766f3b7","model":"gpt-5.5","provider":"openai","segment_id":"usage.details.systemShort","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Sys","text_hash":"a34a3472060a7340185039557366a9dee34a3d929efabfbde16828e94d9b5924","tgt_lang":"ru","translated":"Сист.","updated_at":"2026-06-26T21:41:28.060Z"}
|
||||
{"cache_key":"6154970ea8ebff823935a26023b19b1453ded64ed1fdf90abbf87964d98a2167","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateNoActivity","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"No activity","text_hash":"0cf9505f9f97c8359cc143ba3e88bedaba3a4ae92c2794ffd1b097270732ed18","tgt_lang":"ru","translated":"Нет активности","updated_at":"2026-07-05T14:40:26.836Z"}
|
||||
{"cache_key":"61ae14d37e8e96736643a6e97e4c43d75e94e564eecf385d6797bbc2ad6d850e","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.actions","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Actions","text_hash":"ff8059dc6752afdd30d275932b1d5031a2ec854b387a8c57ecc6689915293a43","tgt_lang":"ru","translated":"Действия","updated_at":"2026-06-26T21:38:54.164Z"}
|
||||
@@ -1249,6 +1250,7 @@
|
||||
{"cache_key":"af7ddd1f53dd6ac0715e5e972cba84db1ff2e8857fbdf2c0371d6690d9281baf","model":"gpt-5.5","provider":"openai","segment_id":"chat.workspaceFiles.session","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Session","text_hash":"6959b4159575d8dd76d9f3bbe2c6437904f861e7860c35abd18deffb1c3425a0","tgt_lang":"ru","translated":"Сеанс","updated_at":"2026-06-26T21:42:06.902Z"}
|
||||
{"cache_key":"af91b1c347cbc61a53991aa318ab7668a4bf3d302308be955972b098c94f020d","model":"gpt-5.5","provider":"openai","segment_id":"login.failure.authFailed.stepDashboard","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Run openclaw dashboard --no-open and open the fresh URL or paste its token.","text_hash":"8332142ce650399926258b23bb7b6fd279cdde999caf9afcb27a92713624e085","tgt_lang":"ru","translated":"Запустите openclaw dashboard --no-open и откройте новый URL или вставьте его токен.","updated_at":"2026-06-26T21:41:40.878Z"}
|
||||
{"cache_key":"af99f19bda6db438af5bfb41e36aec5877070779f4e5ed938ad4b0a564f68449","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.agentId","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Agent ID","text_hash":"510bce732db77286d6622dfb5f99f59f346efd77c3746ab3474d6be2ab684c32","tgt_lang":"ru","translated":"ID агента","updated_at":"2026-06-26T21:42:28.070Z"}
|
||||
{"cache_key":"af9da397567dbb4e3eda81b9f007f90ab97dcc93243e98a2f476211f892378e7","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"ru","translated":"Открыть в","updated_at":"2026-07-11T04:04:55.372Z"}
|
||||
{"cache_key":"afa4977d2009245af9ea508fb81a23e4579aea4223982a6b986353eb643256ca","model":"gpt-5.5","provider":"openai","segment_id":"chat.pullRequests.showMore","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Show {count} more","text_hash":"e372f20a52883cff2eb03f97aba6383ccd70805457f928bba33da9129c405739","tgt_lang":"ru","translated":"Показать еще {count}","updated_at":"2026-07-10T23:12:58.797Z"}
|
||||
{"cache_key":"afc85dcc0c59bd45b4d3f2ecd73ca177b9d4d95cb4c2029d476136069f3e7785","model":"gpt-5.5","provider":"openai","segment_id":"usage.filters.hours","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Hours","text_hash":"21e8492938abc179410c21f3598f141c4c59a8bf2d3b4e475b7d83e10adfc00f","tgt_lang":"ru","translated":"Часы","updated_at":"2026-06-26T21:40:59.486Z"}
|
||||
{"cache_key":"afd72568dbf3ec8c6b156b6e276f89918fd9d5beec857a68bf94b75358d2afac","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.fillRequired","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Fill the required fields below to enable submit.","text_hash":"d11119bbb0930624a8967cf51effd219f1ce09dd9263ddd22c892687ce771b04","tgt_lang":"ru","translated":"Заполните обязательные поля ниже, чтобы включить отправку.","updated_at":"2026-06-26T21:42:44.768Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:04.200Z",
|
||||
"generatedAt": "2026-07-11T04:04:49.722Z",
|
||||
"locale": "th",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -317,6 +317,7 @@
|
||||
{"cache_key":"d0a581aa47fd0fcde92d1b2f192a7522ad0579598a12f48f8e0159b4c86f2024","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneFallback","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Microphone {number}","text_hash":"357eae20db9739dfdbb59ec21db70200f6ca9ee257c28ed637712f147af419ec","tgt_lang":"th","translated":"ไมโครโฟน {number}","updated_at":"2026-07-06T17:57:13.451Z"}
|
||||
{"cache_key":"d0ca894e09baf65d20460e9ddd8d11f8d5dc1a8b35c24798eb2b806c52be5ce9","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.chats","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Chats","text_hash":"ef5b4049bb367b05531fa2c2982dbc5b710c3dde724d9a2683747c1da9b61eac","tgt_lang":"th","translated":"แชท","updated_at":"2026-07-10T17:59:54.736Z"}
|
||||
{"cache_key":"d1e35dc7d865f022e920797efb6d3d9decdbf233cd0fa3c3b89862ad63a634ca","model":"gpt-5.5","provider":"openai","segment_id":"nodes.pairing.generating","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Creating a secure setup code…","text_hash":"eca7942aeec595e3a1ebf01564b7dfc4ad90868636da4337f0470dcf1d97bc52","tgt_lang":"th","translated":"กำลังสร้างรหัสตั้งค่าที่ปลอดภัย…","updated_at":"2026-07-04T16:48:49.478Z"}
|
||||
{"cache_key":"d2427bfd3552fbc24b135398abc1d98b7a2e2c63f7a95a4636229ab68219c7fc","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"th","translated":"เปิดใน","updated_at":"2026-07-11T04:04:49.717Z"}
|
||||
{"cache_key":"d38715e01600fd694106d65dac8e0e1264f2b9430548cd0d9971f174d344a6ae","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateThisWeek","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"This week","text_hash":"8c4eef5ab2532515ef24a662db70f6e5b8063c7f924342b2a463f763f1091634","tgt_lang":"th","translated":"สัปดาห์นี้","updated_at":"2026-07-05T14:40:13.915Z"}
|
||||
{"cache_key":"d3ab03509c5cc49660f6e84e4de88cf90c37de0d4a8a2a895a548c328a21e63f","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneBusy","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Microphone inputs are busy or unavailable to the browser.","text_hash":"9f33c30cb2370916f2edd079ad5cabab6a94dd185a89f4f7db357b4f31d1f3dd","tgt_lang":"th","translated":"อินพุตไมโครโฟนกำลังใช้งานอยู่หรือไม่พร้อมใช้งานสำหรับเบราว์เซอร์","updated_at":"2026-07-06T17:57:13.451Z"}
|
||||
{"cache_key":"d3d5b6074020205f2f56ed1989620c2d645b6b8a706c64f3585b1ff73d525963","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.empty","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"No managed worktrees.","text_hash":"67f97698da5ed0bb1cc4cadd157e403c0fcd22fc4735d8f39bcf27ea6dd612c8","tgt_lang":"th","translated":"ไม่มี worktrees ที่จัดการ","updated_at":"2026-07-05T21:01:30.011Z"}
|
||||
@@ -396,6 +397,7 @@
|
||||
{"cache_key":"f8858923a8d3a2986391108644f83c16a727bbfd2f1a1fdbedd37ed621171697","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByNone","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"None","text_hash":"dc937b59892604f5a86ac96936cd7ff09e25f18ae6b758e8014a24c7fa039e91","tgt_lang":"th","translated":"ไม่มี","updated_at":"2026-07-05T14:40:13.915Z"}
|
||||
{"cache_key":"f89a9de135a72cdddcbc342c5bf46726d7c4e7a68de740805ffa8cb08a1c7bb6","model":"gpt-5.5","provider":"openai","segment_id":"browser.back","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Back","text_hash":"76900f1bfd16c8d4dd3d25e6f46638d7165aee23883ccea6bfe071c514421769","tgt_lang":"th","translated":"ย้อนกลับ","updated_at":"2026-07-11T02:19:42.169Z"}
|
||||
{"cache_key":"f9ddddd00076d402f4e5eaf957562f3ff0232d5a2ff76724e998edba6f03353b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.pullRequests.checksRunning","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Running","text_hash":"f4ccae29e1bb0c20a124570a1b43f4347ea94bba9f84ffdfddd9c7445b126128","tgt_lang":"th","translated":"กำลังทำงาน","updated_at":"2026-06-17T14:16:47.316Z"}
|
||||
{"cache_key":"f9e110c56acd010a91fa0cd3c352a256444631750e74f6ce08b812c6832364ae","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"th","translated":"เปิด PR","updated_at":"2026-07-11T04:04:49.717Z"}
|
||||
{"cache_key":"f9e87a281611ef72a66713d4d35b27d4405756e004b08a16a2019d698573b912","model":"gpt-5.5","provider":"openai","segment_id":"nav.settingsGroupSystem","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"System","text_hash":"6725e7bbcd28f3a8a586fa34bf191fd72dde8b61756932cd3237c17a6f196f1a","tgt_lang":"th","translated":"ระบบ","updated_at":"2026-07-09T08:08:10.509Z"}
|
||||
{"cache_key":"faa733d0af2c77b6b9c2126fb4875772052f99c1c33ef2057dad8551827923ec","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.readCount","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"{count} read","text_hash":"b3c6c64f1153fb7b2672d2894f532d3f7adea1dd1c473363587fc520be35998e","tgt_lang":"th","translated":"อ่าน {count}","updated_at":"2026-06-16T14:17:36.173Z"}
|
||||
{"cache_key":"fab05841719102870b5783a760ccda59549dadba2a8424c5d0d048b975b48c5e","model":"gpt-5.5","provider":"openai","segment_id":"browser.hide","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Hide browser panel","text_hash":"9addb46dd1c2c965fc79703cb42b245c24a1745ff662cf67c255ad840e576b72","tgt_lang":"th","translated":"ซ่อนแผงเบราว์เซอร์","updated_at":"2026-07-11T02:19:42.169Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:03.418Z",
|
||||
"generatedAt": "2026-07-11T04:04:43.940Z",
|
||||
"locale": "tr",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -117,10 +117,12 @@
|
||||
{"cache_key":"495b1324128c4e347510c73cb4ff14d90edf94c617372c4f5049cc427f5ba0fb","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCountOne","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"{count} session","text_hash":"c0975b42c84d7da963f4c962d1e2c1ee78eb18efc7ebec75fb3ce761ce9a40db","tgt_lang":"tr","translated":"{count} oturum","updated_at":"2026-07-05T14:40:02.505Z"}
|
||||
{"cache_key":"49600d3e11a0d4398c96cb495e14031dec519b26739de6d44a9b18bf9d8dadbc","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailUpdatedValue","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Updated: {time}","text_hash":"5e72d5445f018c9d08aa34ae0178fb9aa49eea6a0afd0c8d379f20b7af3e8aa0","tgt_lang":"tr","translated":"Güncellendi: {time}","updated_at":"2026-06-16T14:15:38.462Z"}
|
||||
{"cache_key":"4a4da5d58c9550a5d99a28954968b773278c813ba4c908edea1bfc05e38763b7","model":"gpt-5.5","provider":"openai","segment_id":"common.colorModeOption","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Color mode: {mode}","text_hash":"d5b61a3af66f845d2ab32795685ca0b37889374de15f66ae3f848abf83169a43","tgt_lang":"tr","translated":"Renk modu: {mode}","updated_at":"2026-07-07T08:47:34.967Z"}
|
||||
{"cache_key":"4a9e3ccc66a3785cb71409c2833f23809c23057932d8149475b5127b3418582f","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"tr","translated":"Şurada aç","updated_at":"2026-07-11T04:04:43.934Z"}
|
||||
{"cache_key":"4bdecaf52f9ec5e39f32f030b654bd181fefdbd429910b0084f396db2829b852","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.topModels","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Top models","text_hash":"79489561d9efe32b89add781323318355ae49e3d71f9c5a45a34c21825778663","tgt_lang":"tr","translated":"En çok kullanılan modeller","updated_at":"2026-07-06T06:40:15.357Z"}
|
||||
{"cache_key":"4be03d8a44f9a21694f206231c150fe8716997534e86101ffe7379fe4258e068","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Auto-refresh","text_hash":"9ea4d7fd1550f0866089d18b1344546bfed91502b41c0484d6023ceb0fdeb75c","tgt_lang":"tr","translated":"Otomatik yenileme","updated_at":"2026-06-17T14:15:34.754Z"}
|
||||
{"cache_key":"4beae23919439f69e2733c599a6546322d4d57814b2c386f8b9ec48884dbb9aa","model":"gpt-5.5","provider":"openai","segment_id":"languages.hi","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"हिन्दी (Hindi)","text_hash":"fab2abfce45382f3031c59477017700a8cb5dfaf8d15379dc24304809b97c7d5","tgt_lang":"tr","translated":"हिन्दी (Hintçe)","updated_at":"2026-06-26T21:43:35.090Z"}
|
||||
{"cache_key":"4c0dc3ff962e671322ac1a4f903a007a979d79b36b718e8900e3fa60c2e3afc4","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.pairingQrExpired.reason","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Run /pair qr again to generate a fresh setup code.","text_hash":"876a304827f54ae5996c4e804aa72953f43568d31e8a15dd2a5b5a40d91c13d3","tgt_lang":"tr","translated":"Yeni bir kurulum kodu oluşturmak için /pair qr komutunu tekrar çalıştırın.","updated_at":"2026-07-01T10:32:46.731Z"}
|
||||
{"cache_key":"4c3879e31d28cf0884cbd2a223132677bb954a50f61adf516346bc9e3aefc9d5","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"tr","translated":"PR'yi aç","updated_at":"2026-07-11T04:04:43.934Z"}
|
||||
{"cache_key":"4c8422a0f909944c0263b23daa336086ddabe6a6793d56d47a353d7da22b1bb3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.emptyFilteredHint","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Change the view, search, priority, agent, or archive filter.","text_hash":"049dfae940263ace9707334af06b298c1223c38a449b1cec5a712553badebbd0","tgt_lang":"tr","translated":"Görünümü, aramayı, önceliği, ajanı veya arşiv filtresini değiştirin.","updated_at":"2026-06-17T14:15:40.711Z"}
|
||||
{"cache_key":"4d7f793812d970ffdf2dc56cb42f5cf2a584c6bfadf157a07d71e9cc72952c3b","model":"gpt-5.5","provider":"openai","segment_id":"profilePage.toolRun","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"{count} run","text_hash":"269b72554d7e530ba9a8a05270baba9af1ea6a9f02bb4889bf75ef0b3bb20c44","tgt_lang":"tr","translated":"{count} çalıştırma","updated_at":"2026-07-09T11:28:06.616Z"}
|
||||
{"cache_key":"4f478d602258323a6affdd398539670902f15dcefe7a644a51da98d64bcec874","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.idle","source_path":"ui/src/i18n/locales/tr.ts","src_lang":"en","text":"Idle","text_hash":"ab0171ca0494d441cb6fe96e2efbe1c2a129f1d87cd6c17f03613cfd111149dd","tgt_lang":"tr","translated":"Boşta","updated_at":"2026-07-09T10:01:43.764Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:03.644Z",
|
||||
"generatedAt": "2026-07-11T04:04:45.105Z",
|
||||
"locale": "uk",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -370,6 +370,7 @@
|
||||
{"cache_key":"daad459d126be4e2c1c23c8fd93aa5a6bf5672673704f601ac46c8b5c239f065","model":"gpt-5.5","provider":"openai","segment_id":"chat.archivedSessionDisabled","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Restore this session to send messages.","text_hash":"c21bd35c2bef2266f419cbb4214cfd7b0af89386aef88ec8b11837844240e0d9","tgt_lang":"uk","translated":"Відновіть цей сеанс, щоб надсилати повідомлення.","updated_at":"2026-07-02T14:30:30.852Z"}
|
||||
{"cache_key":"db2bfe31afc3fb44571f26559c3006023e26d066ae9ebd0f96224ac572c4ab44","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewPreset","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Workboard view","text_hash":"cc2b05179ad742029156bb45578e880c46599fd28e1c2ab66f5a6f9e7f8fa08e","tgt_lang":"uk","translated":"Вигляд дошки","updated_at":"2026-06-17T14:15:28.579Z"}
|
||||
{"cache_key":"db5d8fca69427232500422a1a3e301c90bfff4852cf2167a5973e0e637df256e","model":"gpt-5","provider":"openai","segment_id":"usage.costWindows.perDay","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"/ day","text_hash":"122faff7033fbaa4fac55b95788a16f370e13ab272d734f33bfcf15021170fe7","tgt_lang":"uk","translated":"/ день","updated_at":"2026-07-05T20:24:32.108Z"}
|
||||
{"cache_key":"dc4eee4c1ad5f753cbda39d1346ff7ef3fc858cd9b5ca56ff916d031f5371332","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"uk","translated":"Відкрити в","updated_at":"2026-07-11T04:04:45.098Z"}
|
||||
{"cache_key":"de31599c15d62e0e9528cd63ef650bbf1fdc8d07a1bea8272006091dcd08ff55","model":"gpt-5","provider":"openai","segment_id":"modelProviders.status.ok","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Connected","text_hash":"22965568d22a14ee17af055d2870b50afcfe9fd94a83eec3196e266932297bb2","tgt_lang":"uk","translated":"Підключено","updated_at":"2026-07-09T10:01:43.750Z"}
|
||||
{"cache_key":"dedb11177207212fde54d00e08984d4382e7da9912cd9bdba88b37f4512eaa3d","model":"gpt-5.5","provider":"openai","segment_id":"workboard.dispatch","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Nudge dispatcher","text_hash":"c3d20147447cc75f5e1e8cc895af0bc287a4a720372aec4795c5dfbfa9eeda67","tgt_lang":"uk","translated":"Підштовхнути диспетчер","updated_at":"2026-05-30T15:38:37.442Z"}
|
||||
{"cache_key":"e04d63cac77bde1918d9886eb6c7544ca2e7cc692d269f320cd1275d335c5cee","model":"gpt-5.5","provider":"openai","segment_id":"common.colorModeOption","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Color mode: {mode}","text_hash":"d5b61a3af66f845d2ab32795685ca0b37889374de15f66ae3f848abf83169a43","tgt_lang":"uk","translated":"Режим кольору: {mode}","updated_at":"2026-07-07T08:47:35.916Z"}
|
||||
@@ -413,6 +414,7 @@
|
||||
{"cache_key":"f9e957cebd511cff7144b3cf3e3c5c916d3a24373135219c6b2660a7fdfe0e6c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSummary","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Summary: {summary}","text_hash":"3a2270b3cd47b523936c13efec489f36112e0a64fe763dbe972d21fef029e814","tgt_lang":"uk","translated":"Підсумок: {summary}","updated_at":"2026-06-16T14:15:40.204Z"}
|
||||
{"cache_key":"faa6c56903bc4e133a2026f3b4085cb993bfa5d86e9b6b5185683b5eddcb8046","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotatePrompt.region","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Marked region {index}: centered around {x}% across / {y}% down, spanning about {width}% × {height}% of the view.","text_hash":"e2e51195aefb95748b2c7f794b41b042d70dfeab5de6420e196824eb7780a2ba","tgt_lang":"uk","translated":"Позначена область {index}: центр приблизно на {x}% по горизонталі / {y}% вниз, займає близько {width}% × {height}% подання.","updated_at":"2026-07-11T02:19:21.035Z"}
|
||||
{"cache_key":"fab03774a8d15f9ff6336f6376e16f4cf87decaa85b823c1abf44541440d66b0","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSkills","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Skills: {skills}","text_hash":"4788d5f9db66e1421a762bbd942c64450c73d2145a6ef929ce32a919a0f2e3a1","tgt_lang":"uk","translated":"Skills: {skills}","updated_at":"2026-06-16T14:15:40.204Z"}
|
||||
{"cache_key":"faf9ddc7844ee6380de3e3a530e654193063a2bcc7aa0427ce6e2f05b5e9d491","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"uk","translated":"Відкрити PR","updated_at":"2026-07-11T04:04:45.098Z"}
|
||||
{"cache_key":"fb744e5ebb0780de8f2312d9fbb0d5bb8086f2658ae0aad3798f97cdf7acd741","model":"gpt-5.5","provider":"openai","segment_id":"browser.hide","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Hide browser panel","text_hash":"9addb46dd1c2c965fc79703cb42b245c24a1745ff662cf67c255ad840e576b72","tgt_lang":"uk","translated":"Приховати панель браузера","updated_at":"2026-07-11T02:19:15.247Z"}
|
||||
{"cache_key":"fbab015da18dabfe5cef65c2661cac017f15cd7869ab4ffb2479dd80c35288dc","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePermissionBlocked","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Microphone access is blocked. Allow it in browser site settings to list inputs.","text_hash":"707f9594b092cf816d6d7a74381665a74acfecbe32d859d0a4adac9e9c9ff77b","tgt_lang":"uk","translated":"Доступ до мікрофона заблоковано. Дозвольте його в налаштуваннях сайту браузера, щоб показати список входів.","updated_at":"2026-07-06T17:57:00.020Z"}
|
||||
{"cache_key":"fc24d5796f0d84e84daa8dd5cc8b15bdac7f4a6f9d0d6e4cfd146e1c9205021f","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.missing","source_path":"ui/src/i18n/locales/uk.ts","src_lang":"en","text":"Missing","text_hash":"6be36ca49ee85210c5d1ad9c377d90a9859c66d889110a2a5b0dccd390d12e20","tgt_lang":"uk","translated":"Відсутній","updated_at":"2026-06-16T14:16:00.845Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:04.398Z",
|
||||
"generatedAt": "2026-07-11T04:04:51.025Z",
|
||||
"locale": "vi",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -12,6 +12,7 @@
|
||||
{"cache_key":"04f55207bfa2f94a9e19b96024adf794e0fc75eeb4f4147fc1bfa57315c153fa","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.lastActive","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Last active","text_hash":"bcdf701c4dfbaee3a2162f9b9affd87a23a13426c391f95e964d983851b58a05","tgt_lang":"vi","translated":"Hoạt động lần cuối","updated_at":"2026-07-05T21:01:34.014Z"}
|
||||
{"cache_key":"0540f1a14efa4a6c5d730a69cb6226c52bc299d47f4ff4d21810999f80306fc7","model":"gpt-5.5","provider":"openai","segment_id":"chat.toolCards.toolError","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Tool error","text_hash":"a6c64c286a8795034ac5030b74633d3b476b5375e094485698b982879b0bb617","tgt_lang":"vi","translated":"Lỗi công cụ","updated_at":"2026-05-31T06:44:08.415Z"}
|
||||
{"cache_key":"05d07261ed17e5085ddbdfb55487b82b6c17963a214eebf4f971986a570d89dd","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSummary","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Summary: {summary}","text_hash":"3a2270b3cd47b523936c13efec489f36112e0a64fe763dbe972d21fef029e814","tgt_lang":"vi","translated":"Tóm tắt: {summary}","updated_at":"2026-06-16T14:17:10.180Z"}
|
||||
{"cache_key":"079f9fb9b50ad07147752e14427ad120576ffbcce422cda04032d72723ea2d49","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"vi","translated":"Mở PR","updated_at":"2026-07-11T04:04:51.020Z"}
|
||||
{"cache_key":"08e922edc6103cda010ad39cd476c2490f730886ae5a44e86383b39de9d08f55","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneNoneFound","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"No microphone inputs were found.","text_hash":"3aa0952aa2a5987227a12656a28131c7e153b5efe3fca4043c742fb289eeb37c","tgt_lang":"vi","translated":"Không tìm thấy đầu vào micrô nào.","updated_at":"2026-07-06T17:57:16.954Z"}
|
||||
{"cache_key":"0909d1b89b2f7a8e0189816e79e40b759bbb6db383723cdeeff0455c2bd253b2","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.layoutComfortable","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Comfortable card density","text_hash":"bfaaf4553fd254bf24431ebabf62faebfd862685e9e7a52f5e799b11488dc7fe","tgt_lang":"vi","translated":"Mật độ thẻ thoải mái","updated_at":"2026-06-17T14:17:26.553Z"}
|
||||
{"cache_key":"09379c0dbaefdc1966986a72e1755a1f7dbc418e024014bb9666bdcd12df05bf","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"vi","translated":"Mở bảng điều khiển mức sử dụng","updated_at":"2026-07-09T11:49:52.117Z"}
|
||||
@@ -395,6 +396,7 @@
|
||||
{"cache_key":"f6b143fd2d4dce2c17190813b4194c25d0ed8878ed0f33a53ec9606b219d884f","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summaryLabel","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Codex session summary","text_hash":"667dedf7bd0ebc80d4e312cc52f824e6a5307c1c6210f2e72e5b93da824da502","tgt_lang":"vi","translated":"Tóm tắt phiên Codex","updated_at":"2026-07-09T10:01:43.734Z"}
|
||||
{"cache_key":"f6c99245164ae45d358e15636e0beedf7affb9bbcb5479adf2db53678a1a7e3b","model":"gpt-5.5","provider":"openai","segment_id":"quickSettings.appearance.lobsterVisitsOn","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Drops by occasionally","text_hash":"620c90596deb02d1164d4036d540b11c780b61cb04e4825230efed1cd8a45e6e","tgt_lang":"vi","translated":"Thỉnh thoảng ghé qua","updated_at":"2026-07-09T20:51:54.489Z"}
|
||||
{"cache_key":"f72ea7ba7b70a1dac852f601584cc4241b3fa6d1957165fe8c7a8ea0319b48f0","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationWorkspace","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Workspace: {workspace}","text_hash":"17f5e696e557a646a9003fc8448f6f6761f5fe6bdf7478f750f471496e87c17b","tgt_lang":"vi","translated":"Không gian làm việc: {workspace}","updated_at":"2026-06-16T14:17:10.180Z"}
|
||||
{"cache_key":"f8a3e599679104f4130b9cca6bf9fda698acb8ddaefb09f5f003409b8a5c240a","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"vi","translated":"Mở trong","updated_at":"2026-07-11T04:04:51.020Z"}
|
||||
{"cache_key":"f8d03c4549894c75be61fd875211c285579d2a96a4a6c4004c94f121fe75371b","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByChannel","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Channel","text_hash":"ce4683e7013a18cdf3d224bfcb4e9594ea8f559e946a837c633defe7d3c32172","tgt_lang":"vi","translated":"Kênh","updated_at":"2026-07-05T14:40:16.834Z"}
|
||||
{"cache_key":"f92cbf45c9890def4c9343bd98bd2ab2c6e1f7eec5b8f3cbda2789767c5c0e28","model":"gpt-5","provider":"openai","segment_id":"usage.costWindows.title","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Cost Windows","text_hash":"d085ca9b7dffb14e13dd359e697260f29a1201cc065356abc06b7e3ed3fafd64","tgt_lang":"vi","translated":"Khoảng chi phí","updated_at":"2026-07-05T20:24:32.108Z"}
|
||||
{"cache_key":"fa7ebbc1597579e8cf71da37f7e3fc1aab898ed704d9384b23780d6201aed7d8","model":"gpt-5.5","provider":"openai","segment_id":"chat.pullRequests.draft","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Draft","text_hash":"ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174","tgt_lang":"vi","translated":"Bản nháp","updated_at":"2026-07-10T17:04:30.321Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:01.124Z",
|
||||
"generatedAt": "2026-07-11T04:04:28.858Z",
|
||||
"locale": "zh-CN",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -135,6 +135,7 @@
|
||||
{"cache_key":"52efd1cfee466f374422e77ece583302bf3dd2cf8356e5f61a3aebed5ac6c2a1","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.dropSplit","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Split","text_hash":"32afaa784333648025e24b162bece7474051bcaaa29e98e19922b400b4ceb04b","tgt_lang":"zh-CN","translated":"拆分","updated_at":"2026-07-06T22:56:12.834Z"}
|
||||
{"cache_key":"5356a9f6f47f5129ee37bd3ae010770df44a360feefff6cb06b78ad8183927d9","model":"gpt-5.5","provider":"openai","segment_id":"chat.backgroundTasks.finished","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Finished ({count})","text_hash":"075b0ee69a685d3a0fbf0b009794675b56ea66104ee5c931cd909140194f6be9","tgt_lang":"zh-CN","translated":"已完成 ({count})","updated_at":"2026-07-11T00:44:51.874Z"}
|
||||
{"cache_key":"548926c75acac40d2a773f7d655718179f95df584cf387009ed205c5b4264c78","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotatePrompt.elementDetail","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Marked element (page-reported): {descriptor} — {width}×{height}px at ({x}, {y}).","text_hash":"26f6a06bb620377485f379992db59e348653f7dd09db7ebbad9984c6da3c1d37","tgt_lang":"zh-CN","translated":"标记元素(页面报告):{descriptor} — 位于 ({x}, {y}),大小为 {width}×{height}px。","updated_at":"2026-07-11T02:17:17.686Z"}
|
||||
{"cache_key":"55dd383898ec37f55578173ae713e652397082bd9b4b507ac8623b6aa1adc0b1","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"zh-CN","translated":"打开方式","updated_at":"2026-07-11T04:04:28.845Z"}
|
||||
{"cache_key":"5644303cd0b9f4812ff2f792dd0cd80041ca5cae312af731fc94cbae0d88e4ef","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.lastDays","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{count} days","text_hash":"e9f0a85930cc6fa61b7ac01763893020adc4c712d1b8e8897bdd13971637d529","tgt_lang":"zh-CN","translated":"{count} 天","updated_at":"2026-07-06T06:40:15.357Z"}
|
||||
{"cache_key":"566c749d2a13bfa6bf24553ae9d0d7ea1b4fdc9ee9c06af7ca21dda461d56d04","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateToday","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Today","text_hash":"2b065c7c9ce466e5ebcad757987d5d660ee4c9ea708bc62c43444b53334738ba","tgt_lang":"zh-CN","translated":"今天","updated_at":"2026-07-05T14:39:29.129Z"}
|
||||
{"cache_key":"57628f1023df1a1470b9753bcbdbfc70c7cec0565f4ab84bab87e24620e2184c","model":"gpt-5.5","provider":"openai","segment_id":"tabs.worktrees","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Worktrees","text_hash":"aec2f93d67b7c4c5fd9b94042f33299f7a0e55cdcb7e8e35feb9d0f6da697f3d","tgt_lang":"zh-CN","translated":"Worktrees","updated_at":"2026-07-05T21:00:21.877Z"}
|
||||
@@ -165,6 +166,7 @@
|
||||
{"cache_key":"6d61929e58115a5a1bbd6f7b2afe51d6731fdb264aaec1d6c1d6f4a4e90afbbf","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.estimatedCost","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Est. cost","text_hash":"3199f14286736527bfc6ad9165629415a5aa087517acd2c0e9b1ae8bb5d26766","tgt_lang":"zh-CN","translated":"预估成本","updated_at":"2026-07-05T16:00:04.301Z"}
|
||||
{"cache_key":"6d767e3e20ef8132fc57f53910bb0c0e9abcad4496547766042873eba6b514b7","model":"gpt-5.5","provider":"openai","segment_id":"chat.backgroundTasks.running","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Running ({count})","text_hash":"f59b64ba4fbd9531b500ab543433c50f6edba4b1f5bf17435988dbc9fb2d42a5","tgt_lang":"zh-CN","translated":"正在运行 ({count})","updated_at":"2026-07-11T00:44:51.874Z"}
|
||||
{"cache_key":"6d7858d346c3a1482d66c28dce11c3978320ffb7c1a74c3ef45eb89bcead5af4","model":"gpt-5.5","provider":"openai","segment_id":"browser.annotationSent","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Annotation added to the chat composer.","text_hash":"d68fff7737c5145c3ac6dc95a99ff8f6cb205c0220dcdd8f7e602d14aef37f23","tgt_lang":"zh-CN","translated":"注释已添加到聊天输入框。","updated_at":"2026-07-11T02:17:17.686Z"}
|
||||
{"cache_key":"6dd04d19db3741ea6a312476309fd590c0b7b2f7317a17f32c28942335333ec4","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"zh-CN","translated":"打开 PR","updated_at":"2026-07-11T04:04:28.845Z"}
|
||||
{"cache_key":"6e20d3f3b2c728e81d94ab2663555cda610f2e130140e290a282a0a082bef307","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentCurrentUnconfigured","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{agent} (not configured)","text_hash":"d138ab0079dea760c723d7c947d0c31178252e28e7dd70a40b9d3d85e5549b1d","tgt_lang":"zh-CN","translated":"{agent}(未配置)","updated_at":"2026-06-17T14:13:12.872Z"}
|
||||
{"cache_key":"6e649a391515d299448c4aac993af0ab39d8d63af4bf8e253db920d010cbbda3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.preview","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Preview","text_hash":"324b134f57c70c729ae3dc4d298bb451656717d70523e942c1ce667b8024ea07","tgt_lang":"zh-CN","translated":"预览","updated_at":"2026-06-16T14:13:09.659Z"}
|
||||
{"cache_key":"6e768d666e6610b6e66ef852ac09a2d08621dd76f5d8014ee822e143fbbd05e5","model":"gpt-5.5","provider":"openai","segment_id":"nav.settingsGroupAgents","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Agents & Tools","text_hash":"493e2edea6e1c48892128656867eab52c07c16ec4f3b59e995b329a18e920328","tgt_lang":"zh-CN","translated":"代理与工具","updated_at":"2026-07-09T08:07:43.962Z"}
|
||||
|
||||
Generated
+4
-4
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"fallbackKeys": [],
|
||||
"generatedAt": "2026-07-11T02:46:01.400Z",
|
||||
"generatedAt": "2026-07-11T04:04:30.104Z",
|
||||
"locale": "zh-TW",
|
||||
"model": "gpt-5.5",
|
||||
"provider": "openai",
|
||||
"sourceHash": "a4207d45c6b44e9e192dd5d5a2540f569979f3b5824fbff4df38dbdd72831e1d",
|
||||
"totalKeys": 2065,
|
||||
"translatedKeys": 2065,
|
||||
"sourceHash": "05240e98e3e1c00aec023151dd8c5b104764e9a339987c52b94fcc78ec64173f",
|
||||
"totalKeys": 2067,
|
||||
"translatedKeys": 2067,
|
||||
"workflow": 1
|
||||
}
|
||||
|
||||
Generated
+2
@@ -313,6 +313,7 @@
|
||||
{"cache_key":"bdb97aab9d3a44dfd2ee445bc9bc00353619bcc3cd20b9455b3647b77163eb1b","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.taskCount","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} tasks","text_hash":"1d43774da9d4e2aabcff69b02e03591836a632f430121f8ecdaf2f115a250233","tgt_lang":"zh-TW","translated":"{count} 個任務","updated_at":"2026-07-06T08:41:46.878Z"}
|
||||
{"cache_key":"be6b1590029094dafcfef53b3b27bf4aeabbc26851596ab4ffc91d6415762822","model":"gpt-5.5","provider":"openai","segment_id":"subtitles.tasks","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Background tasks: subagents, cron runs, CLI.","text_hash":"86b1cdd143e0bee775431403456aa967dad1c7f0a952e10200c332d8ba382d35","tgt_lang":"zh-TW","translated":"背景任務:子代理、cron 執行、CLI。","updated_at":"2026-07-06T08:41:46.878Z"}
|
||||
{"cache_key":"bf6cd22d093ceb33e2ce995a234bbb8c2c4a8509c7e889c083a2224033f60a05","model":"gpt-5.5","provider":"openai","segment_id":"terminal.detached","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"detached","text_hash":"88e34e4cdbb5c6066cb1b0d0abe74714bd72f86259433bc8287614e4ae052605","tgt_lang":"zh-TW","translated":"已分離","updated_at":"2026-07-04T21:23:47.359Z"}
|
||||
{"cache_key":"bfb22f8b7d7075faeef7b87f6e314232cb63ed819d2df9c2dbc7bb95b6d6ad19","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openPullRequest","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Open PR","text_hash":"04c24026b2f00d817b610318ab2e984393c65576e67b591fb8fb0467f5aef0cb","tgt_lang":"zh-TW","translated":"開啟 PR","updated_at":"2026-07-11T04:04:30.096Z"}
|
||||
{"cache_key":"bffed8728f756538e28717df9ac74271da13c0ab1491608221766b3f75061383","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.idle","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Idle","text_hash":"ab0171ca0494d441cb6fe96e2efbe1c2a129f1d87cd6c17f03613cfd111149dd","tgt_lang":"zh-TW","translated":"閒置","updated_at":"2026-07-09T10:01:43.713Z"}
|
||||
{"cache_key":"c1a5246dbc4879565438e3e13a508b5bf5fe7bd6bbb92b5761125e823203c963","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loadingMore","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Loading…","text_hash":"ba3bbbe10d8bef66441c88536ce7b8e724e2829b59a3da658654f4961cd61ae5","tgt_lang":"zh-TW","translated":"正在載入…","updated_at":"2026-07-09T10:01:43.713Z"}
|
||||
{"cache_key":"c20cc2ff3ab94fcc24c756c342147ea2b144f46eeafa70f7ca4ceca08d4dd3cc","model":"gpt-5.5","provider":"openai","segment_id":"browser.forward","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Forward","text_hash":"f1c65e14817efef2b77973a4f63446a7d462cd2636bbe721207107b7d126a001","tgt_lang":"zh-TW","translated":"前進","updated_at":"2026-07-11T02:17:22.209Z"}
|
||||
@@ -357,6 +358,7 @@
|
||||
{"cache_key":"d9d3a7b83e5aab70ef62035ba8803d7efeb28755d6e53f88a4e3075ddca8f827","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.status","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Status","text_hash":"920e413c7d411b61ef3e8c63b1cb6ad058d5f95f8b481dbafe60248387d8c355","tgt_lang":"zh-TW","translated":"狀態","updated_at":"2026-07-05T21:00:31.397Z"}
|
||||
{"cache_key":"dad14b4854ecbd2f8afc7bf6c30f20ba0b8f35409d9c6463c1c41be586ef8dc1","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupBy","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Group by","text_hash":"956a51f6b098a41b7c3108015f0790bb24af7693717b07cee39d5df6a5da1826","tgt_lang":"zh-TW","translated":"分組依據","updated_at":"2026-07-05T14:39:31.777Z"}
|
||||
{"cache_key":"db1226d21f6389282bf00466ab686fc8c8c9db2cd43592526d2b3656c7b8b6ec","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"zh-TW","translated":"開啟用量儀表板","updated_at":"2026-07-09T11:48:50.643Z"}
|
||||
{"cache_key":"db771b9957f2ae0c3034961f88f6e9e0fff64293ddd72b02444dbebe45ee8d45","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.openInEditorMenu","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Open in","text_hash":"2c8f3f64efd200a85a49bbc846102cf550c005f95ecd54dea063941c2967a3ba","tgt_lang":"zh-TW","translated":"開啟於","updated_at":"2026-07-11T04:04:30.096Z"}
|
||||
{"cache_key":"dbcf383778e5ebc132bbd307e5ac1f3f73927d0b969a9d6cdddd14ee4eb0a54a","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.gateway","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Gateway","text_hash":"41ed52921661c7f0d68d92511589cc9d7aaeab2b5db49fb27f0be336cbfdb7df","tgt_lang":"zh-TW","translated":"Gateway","updated_at":"2026-07-09T10:01:43.713Z"}
|
||||
{"cache_key":"dc462ffb8289768c0c92e288fea11e917f720de62cae9f53d6193120306a9a74","model":"gpt-5.5","provider":"openai","segment_id":"chat.backgroundTasks.title","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Background tasks","text_hash":"c6907e94a3b7ea1b0e9cb7bb3c674bbaddb0216cab132a2bfa63507afebbc888","tgt_lang":"zh-TW","translated":"背景任務","updated_at":"2026-07-11T00:44:54.328Z"}
|
||||
{"cache_key":"dcff1d348d60fe8ce6188f38ddcaae85d8b89793af57310efc2a8224630da543","model":"gpt-5.5","provider":"openai","segment_id":"chat.pullRequests.rateLimited","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"GitHub API rate limit reached. Pull request status may be out of date until the limit resets.","text_hash":"312059c23083ca0a15fdf51232ff632d96149e734d8cecb5db8295163c7a33a5","tgt_lang":"zh-TW","translated":"已達 GitHub API 速率限制。在限制重設前,pull request 狀態可能不是最新的。","updated_at":"2026-07-10T17:03:35.848Z"}
|
||||
|
||||
Generated
+2
@@ -321,6 +321,8 @@ export const ar: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "فتح الدردشة",
|
||||
openPullRequest: "فتح PR",
|
||||
openInEditorMenu: "فتح في",
|
||||
archiveSession: "أرشفة الجلسة",
|
||||
restoreSession: "استعادة الجلسة",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -325,6 +325,8 @@ export const de: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Chat öffnen",
|
||||
openPullRequest: "PR öffnen",
|
||||
openInEditorMenu: "Öffnen in",
|
||||
archiveSession: "Sitzung archivieren",
|
||||
restoreSession: "Sitzung wiederherstellen",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
@@ -320,6 +320,8 @@ export const en: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Open chat",
|
||||
openPullRequest: "Open PR",
|
||||
openInEditorMenu: "Open in",
|
||||
archiveSession: "Archive session",
|
||||
restoreSession: "Restore session",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -323,6 +323,8 @@ export const es: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Abrir chat",
|
||||
openPullRequest: "Abrir PR",
|
||||
openInEditorMenu: "Abrir en",
|
||||
archiveSession: "Archivar sesión",
|
||||
restoreSession: "Restaurar sesión",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -323,6 +323,8 @@ export const fa: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "باز کردن چت",
|
||||
openPullRequest: "باز کردن PR",
|
||||
openInEditorMenu: "باز کردن در",
|
||||
archiveSession: "بایگانی کردن نشست",
|
||||
restoreSession: "بازیابی نشست",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -328,6 +328,8 @@ export const fr: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Ouvrir le chat",
|
||||
openPullRequest: "Ouvrir la PR",
|
||||
openInEditorMenu: "Ouvrir dans",
|
||||
archiveSession: "Archiver la session",
|
||||
restoreSession: "Restaurer la session",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -322,6 +322,8 @@ export const hi: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "चैट खोलें",
|
||||
openPullRequest: "PR खोलें",
|
||||
openInEditorMenu: "में खोलें",
|
||||
archiveSession: "सत्र संग्रहीत करें",
|
||||
restoreSession: "सत्र बहाल करें",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -322,6 +322,8 @@ export const id: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Buka obrolan",
|
||||
openPullRequest: "Buka PR",
|
||||
openInEditorMenu: "Buka di",
|
||||
archiveSession: "Arsipkan sesi",
|
||||
restoreSession: "Pulihkan sesi",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -325,6 +325,8 @@ export const it: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Apri chat",
|
||||
openPullRequest: "Apri PR",
|
||||
openInEditorMenu: "Apri in",
|
||||
archiveSession: "Archivia sessione",
|
||||
restoreSession: "Ripristina sessione",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -327,6 +327,8 @@ export const ja_JP: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "チャットを開く",
|
||||
openPullRequest: "PRを開く",
|
||||
openInEditorMenu: "開く",
|
||||
archiveSession: "セッションをアーカイブ",
|
||||
restoreSession: "セッションを復元",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -321,6 +321,8 @@ export const ko: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "채팅 열기",
|
||||
openPullRequest: "PR 열기",
|
||||
openInEditorMenu: "다음에서 열기",
|
||||
archiveSession: "세션 보관",
|
||||
restoreSession: "세션 복원",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -325,6 +325,8 @@ export const nl: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Chat openen",
|
||||
openPullRequest: "PR openen",
|
||||
openInEditorMenu: "Openen in",
|
||||
archiveSession: "Sessie archiveren",
|
||||
restoreSession: "Sessie herstellen",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -324,6 +324,8 @@ export const pl: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Otwórz czat",
|
||||
openPullRequest: "Otwórz PR",
|
||||
openInEditorMenu: "Otwórz w",
|
||||
archiveSession: "Zarchiwizuj sesję",
|
||||
restoreSession: "Przywróć sesję",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -322,6 +322,8 @@ export const pt_BR: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Abrir chat",
|
||||
openPullRequest: "Abrir PR",
|
||||
openInEditorMenu: "Abrir em",
|
||||
archiveSession: "Arquivar sessão",
|
||||
restoreSession: "Restaurar sessão",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -325,6 +325,8 @@ export const ru: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Открыть чат",
|
||||
openPullRequest: "Открыть PR",
|
||||
openInEditorMenu: "Открыть в",
|
||||
archiveSession: "Архивировать сеанс",
|
||||
restoreSession: "Восстановить сеанс",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -320,6 +320,8 @@ export const th: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "เปิดแชท",
|
||||
openPullRequest: "เปิด PR",
|
||||
openInEditorMenu: "เปิดใน",
|
||||
archiveSession: "เก็บเซสชันถาวร",
|
||||
restoreSession: "กู้คืนเซสชัน",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -326,6 +326,8 @@ export const tr: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Sohbeti aç",
|
||||
openPullRequest: "PR'yi aç",
|
||||
openInEditorMenu: "Şurada aç",
|
||||
archiveSession: "Oturumu arşivle",
|
||||
restoreSession: "Oturumu geri yükle",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -323,6 +323,8 @@ export const uk: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Відкрити чат",
|
||||
openPullRequest: "Відкрити PR",
|
||||
openInEditorMenu: "Відкрити в",
|
||||
archiveSession: "Архівувати сеанс",
|
||||
restoreSession: "Відновити сеанс",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -322,6 +322,8 @@ export const vi: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "Mở cuộc trò chuyện",
|
||||
openPullRequest: "Mở PR",
|
||||
openInEditorMenu: "Mở trong",
|
||||
archiveSession: "Lưu trữ phiên",
|
||||
restoreSession: "Khôi phục phiên",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -320,6 +320,8 @@ export const zh_CN: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "打开聊天",
|
||||
openPullRequest: "打开 PR",
|
||||
openInEditorMenu: "打开方式",
|
||||
archiveSession: "归档会话",
|
||||
restoreSession: "恢复会话",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
Generated
+2
@@ -320,6 +320,8 @@ export const zh_TW: TranslationMap = {
|
||||
markRead: "Mark as read",
|
||||
forkSession: "Fork",
|
||||
openChat: "開啟聊天",
|
||||
openPullRequest: "開啟 PR",
|
||||
openInEditorMenu: "開啟於",
|
||||
archiveSession: "封存工作階段",
|
||||
restoreSession: "還原工作階段",
|
||||
deleteSessionMenu: "Delete…",
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// Desktop editors reachable from the browser UI via custom URL schemes; a
|
||||
// window.open on these hands off to the OS without navigating the page.
|
||||
export const EDITOR_IDS = ["cursor", "vscode", "windsurf", "zed"] as const;
|
||||
export type EditorId = (typeof EDITOR_IDS)[number];
|
||||
|
||||
// Product names, not translatable copy.
|
||||
export const EDITOR_LABELS: Record<EditorId, string> = {
|
||||
cursor: "Cursor",
|
||||
vscode: "VS Code",
|
||||
windsurf: "Windsurf",
|
||||
zed: "Zed",
|
||||
};
|
||||
|
||||
export function editorOpenUrl(editor: EditorId, absPath: string, line?: number | null): string {
|
||||
const normalizedPath = absPath.replaceAll("\\", "/");
|
||||
const urlPath = normalizedPath.startsWith("/") ? normalizedPath : `/${normalizedPath}`;
|
||||
const encodedPath = urlPath
|
||||
.split("/")
|
||||
.map((segment, index) =>
|
||||
index === 1 && /^[a-z]:$/i.test(segment) ? segment : encodeURIComponent(segment),
|
||||
)
|
||||
.join("/");
|
||||
return `${editor}://file${encodedPath}${line ? `:${line}` : ""}`;
|
||||
}
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
import { render } from "lit";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { editorOpenUrl } from "../../../lib/editor-links.ts";
|
||||
import {
|
||||
computeFileSearchMatches,
|
||||
editorOpenUrl,
|
||||
renderMarkdownSidebar,
|
||||
splitHighlightedHtmlIntoLines,
|
||||
} from "./chat-sidebar.ts";
|
||||
|
||||
@@ -18,6 +18,12 @@ import {
|
||||
type EmbedSandboxMode,
|
||||
} from "../../../lib/chat/tool-display.ts";
|
||||
import { copyToClipboard } from "../../../lib/clipboard.ts";
|
||||
import {
|
||||
EDITOR_IDS,
|
||||
EDITOR_LABELS,
|
||||
type EditorId,
|
||||
editorOpenUrl,
|
||||
} from "../../../lib/editor-links.ts";
|
||||
import { OpenClawLightDomElement } from "../../../lit/openclaw-element.ts";
|
||||
|
||||
export const CHAT_DETAIL_FULL_MESSAGE_MAX_CHARS = 500_000;
|
||||
@@ -193,22 +199,6 @@ export function computeFileSearchMatches(content: string, query: string): number
|
||||
);
|
||||
}
|
||||
|
||||
export function editorOpenUrl(
|
||||
editor: "cursor" | "vscode" | "windsurf" | "zed",
|
||||
absPath: string,
|
||||
line?: number | null,
|
||||
): string {
|
||||
const normalizedPath = absPath.replaceAll("\\", "/");
|
||||
const urlPath = normalizedPath.startsWith("/") ? normalizedPath : `/${normalizedPath}`;
|
||||
const encodedPath = urlPath
|
||||
.split("/")
|
||||
.map((segment, index) =>
|
||||
index === 1 && /^[a-z]:$/i.test(segment) ? segment : encodeURIComponent(segment),
|
||||
)
|
||||
.join("/");
|
||||
return `${editor}://file${encodedPath}${line ? `:${line}` : ""}`;
|
||||
}
|
||||
|
||||
function absoluteFilePath(content: FileSidebarContent): string | null {
|
||||
if (
|
||||
content.path.startsWith("/") ||
|
||||
@@ -264,7 +254,7 @@ type FileViewControls = {
|
||||
searchOpen: boolean;
|
||||
onCopyContents: () => void;
|
||||
onNextMatch: () => void;
|
||||
onOpenEditor: (editor: "cursor" | "vscode" | "windsurf" | "zed") => void;
|
||||
onOpenEditor: (editor: EditorId) => void;
|
||||
onPreviousMatch: () => void;
|
||||
onReveal?: (path: string) => void;
|
||||
onSearchInput: (query: string) => void;
|
||||
@@ -351,7 +341,7 @@ function renderFileSidebarContent(
|
||||
${controls.editorMenuOpen && absolutePath
|
||||
? html`
|
||||
<div class="sidebar-file-view__editor-menu" role="menu">
|
||||
${(["cursor", "vscode", "windsurf", "zed"] as const).map(
|
||||
${EDITOR_IDS.map(
|
||||
(editor) => html`
|
||||
<button
|
||||
class="sidebar-file-view__editor-item"
|
||||
@@ -359,12 +349,7 @@ function renderFileSidebarContent(
|
||||
role="menuitem"
|
||||
@click=${() => controls.onOpenEditor(editor)}
|
||||
>
|
||||
${{
|
||||
cursor: "Cursor",
|
||||
vscode: "VS Code",
|
||||
windsurf: "Windsurf",
|
||||
zed: "Zed",
|
||||
}[editor]}
|
||||
${EDITOR_LABELS[editor]}
|
||||
</button>
|
||||
`,
|
||||
)}
|
||||
@@ -747,7 +732,7 @@ class ChatDetailPanel extends OpenClawLightDomElement {
|
||||
}
|
||||
};
|
||||
|
||||
private readonly openInEditor = (editor: "cursor" | "vscode" | "windsurf" | "zed") => {
|
||||
private readonly openInEditor = (editor: EditorId) => {
|
||||
const content = this.visibleContent;
|
||||
if (content?.kind !== "file") {
|
||||
return;
|
||||
|
||||
@@ -12,8 +12,11 @@ import { subtitleForRoute, titleForRoute } from "../../app-navigation.ts";
|
||||
import { applicationContext, type ApplicationContext } from "../../app/context.ts";
|
||||
import { hasOperatorWriteAccess } from "../../app/operator-access.ts";
|
||||
import "../../components/session-menu.ts";
|
||||
import type { SessionMenuAction } from "../../components/session-menu.ts";
|
||||
import { fetchSessionMenuWork } from "../../components/session-menu-work.ts";
|
||||
import type { SessionMenuAction, SessionMenuWork } from "../../components/session-menu.ts";
|
||||
import { t } from "../../i18n/index.ts";
|
||||
import { editorOpenUrl } from "../../lib/editor-links.ts";
|
||||
import { isGatewayMethodAdvertised } from "../../lib/gateway-methods.ts";
|
||||
import { isWorkboardEnabledInConfigSnapshot } from "../../lib/plugin-activation.ts";
|
||||
import { normalizeSessionsGroupBy, type SessionsGroupBy } from "../../lib/sessions/grouping.ts";
|
||||
import {
|
||||
@@ -87,6 +90,7 @@ class SessionsPage extends OpenClawLightDomElement {
|
||||
@state() private pageSize = 25;
|
||||
@state() private selectedKeys = new Set<string>();
|
||||
@state() private sessionMenu: { key: string; x: number; y: number } | null = null;
|
||||
@state() private sessionMenuWork: SessionMenuWork | null = null;
|
||||
@state() private expandedSessionKey: string | null = null;
|
||||
// Route deep-link target (?session=...); unlike expandedSessionKey it also
|
||||
// narrows sessionListOptions so the linked session is guaranteed to load.
|
||||
@@ -112,6 +116,9 @@ class SessionsPage extends OpenClawLightDomElement {
|
||||
private gatewayClient: GatewayBrowserClient | null = null;
|
||||
private gatewayConnected = false;
|
||||
private sessionMenuTrigger: HTMLElement | null = null;
|
||||
// Guards the async work fetch: a menu reopened for another session must not
|
||||
// adopt a stale response.
|
||||
private sessionMenuWorkVersion = 0;
|
||||
private hasBoundGatewaySource = false;
|
||||
private sessionsSource?: ApplicationContext["sessions"];
|
||||
private hasBoundSessionsSource = false;
|
||||
@@ -235,8 +242,7 @@ class SessionsPage extends OpenClawLightDomElement {
|
||||
this.checkpointLoadingKey = null;
|
||||
this.checkpointBusyKey = null;
|
||||
this.sessionMutationPending = false;
|
||||
this.sessionMenu = null;
|
||||
this.sessionMenuTrigger = null;
|
||||
this.closeSessionMenu();
|
||||
}
|
||||
|
||||
private resetProviderState() {
|
||||
@@ -895,12 +901,48 @@ class SessionsPage extends OpenClawLightDomElement {
|
||||
trigger: HTMLElement | null,
|
||||
) {
|
||||
if (this.sessionMenu?.key === row.key && trigger) {
|
||||
this.sessionMenu = null;
|
||||
this.sessionMenuTrigger = null;
|
||||
this.closeSessionMenu();
|
||||
return;
|
||||
}
|
||||
this.sessionMenu = { key: row.key, ...position };
|
||||
this.sessionMenuTrigger = trigger;
|
||||
this.loadSessionMenuWork(row);
|
||||
}
|
||||
|
||||
private closeSessionMenu() {
|
||||
this.sessionMenu = null;
|
||||
this.sessionMenuTrigger = null;
|
||||
this.sessionMenuWorkVersion += 1;
|
||||
this.sessionMenuWork = null;
|
||||
}
|
||||
|
||||
private loadSessionMenuWork(row: GatewaySessionRow) {
|
||||
const version = ++this.sessionMenuWorkVersion;
|
||||
if (!row.worktree) {
|
||||
this.sessionMenuWork = null;
|
||||
return;
|
||||
}
|
||||
this.sessionMenuWork = { loading: true, pullRequestUrl: null, worktreePath: null };
|
||||
const scope = this.captureRequestScope();
|
||||
if (!scope) {
|
||||
this.sessionMenuWork = { loading: false, pullRequestUrl: null, worktreePath: null };
|
||||
return;
|
||||
}
|
||||
void fetchSessionMenuWork({
|
||||
client: scope.client,
|
||||
pullRequestsAvailable:
|
||||
isGatewayMethodAdvertised(
|
||||
scope.context.gateway.snapshot,
|
||||
"controlUi.sessionPullRequests",
|
||||
) === true,
|
||||
sessionKey: row.key,
|
||||
agentId: this.sessionAgentId(row.key, scope.context),
|
||||
worktreeId: row.worktree.id,
|
||||
}).then((work) => {
|
||||
if (version === this.sessionMenuWorkVersion) {
|
||||
this.sessionMenuWork = { loading: false, ...work };
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private renderSessionMenu() {
|
||||
@@ -945,21 +987,26 @@ class SessionsPage extends OpenClawLightDomElement {
|
||||
.archiveAllowed=${archiveAllowed}
|
||||
.groups=${this.knownCategories()}
|
||||
.canOpenChat=${row.kind !== "global"}
|
||||
.work=${this.sessionMenuWork}
|
||||
.workboard=${canCapture && row.kind !== "global"
|
||||
? {
|
||||
captured: capturedSessionKeys.has(row.key),
|
||||
busy: [...workboardState.capturingSessionKeys][0] === row.key,
|
||||
}
|
||||
: null}
|
||||
.onClose=${() => {
|
||||
this.sessionMenu = null;
|
||||
this.sessionMenuTrigger = null;
|
||||
}}
|
||||
.onClose=${() => this.closeSessionMenu()}
|
||||
.onAction=${(action: SessionMenuAction) => {
|
||||
switch (action.kind) {
|
||||
case "open-chat":
|
||||
context.navigate("chat", { search: searchForSession(row.key), hash: "" });
|
||||
break;
|
||||
case "open-pr":
|
||||
window.open(action.url, "_blank", "noopener");
|
||||
break;
|
||||
case "open-in":
|
||||
// A custom-scheme window hands off to the OS without navigating this page.
|
||||
window.open(editorOpenUrl(action.editor, action.path));
|
||||
break;
|
||||
case "toggle-pin":
|
||||
void this.patchSession(row.key, { pinned: row.pinned !== true });
|
||||
break;
|
||||
|
||||
@@ -3938,7 +3938,7 @@ td.data-table-key-col {
|
||||
border: 1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);
|
||||
border-radius: var(--radius-lg);
|
||||
background: var(--bg-elevated);
|
||||
box-shadow: 0 18px 40px color-mix(in srgb, black 26%, transparent);
|
||||
box-shadow: var(--shadow-lg);
|
||||
}
|
||||
|
||||
.agent-select__option {
|
||||
|
||||
@@ -1322,7 +1322,7 @@ html.openclaw-native-macos .shell-nav-expand {
|
||||
border: 1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);
|
||||
border-radius: var(--radius-lg);
|
||||
background: var(--bg-elevated);
|
||||
box-shadow: 0 18px 40px color-mix(in srgb, black 26%, transparent);
|
||||
box-shadow: var(--shadow-lg);
|
||||
}
|
||||
|
||||
.sidebar-customize-menu__title {
|
||||
@@ -1394,10 +1394,11 @@ html.openclaw-native-macos .shell-nav-expand {
|
||||
border: 1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);
|
||||
border-radius: var(--radius-lg);
|
||||
background: var(--bg-elevated);
|
||||
box-shadow: 0 18px 40px color-mix(in srgb, black 26%, transparent);
|
||||
box-shadow: var(--shadow-lg);
|
||||
}
|
||||
|
||||
openclaw-native-link-menu[popover] {
|
||||
openclaw-native-link-menu[popover],
|
||||
openclaw-session-menu[popover] {
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0;
|
||||
@@ -1416,7 +1417,7 @@ openclaw-native-link-menu[popover] {
|
||||
border: 1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);
|
||||
border-radius: var(--radius-lg);
|
||||
background: var(--bg-elevated);
|
||||
box-shadow: 0 18px 40px color-mix(in srgb, black 26%, transparent);
|
||||
box-shadow: var(--shadow-lg);
|
||||
}
|
||||
|
||||
.sidebar-session-sort-menu__title {
|
||||
|
||||
Reference in New Issue
Block a user