diff --git a/docs/concepts/usage-tracking.md b/docs/concepts/usage-tracking.md index aff8b00c711..89ba19693be 100644 --- a/docs/concepts/usage-tracking.md +++ b/docs/concepts/usage-tracking.md @@ -20,6 +20,7 @@ title: "Usage tracking" - CLI: `openclaw status --usage` prints a full per-provider usage/quota breakdown. - CLI: `openclaw models status` lists OAuth/token auth profiles and shows a usage-window summary next to each provider that has one. - Control UI: **Usage** shows provider plan and billing cards above OpenClaw's session-derived token and estimated-cost analysis. Anthropic and OpenAI Admin API credentials add provider-reported today, 7-day, and 30-day spend, daily trends, token totals, top models, and cost categories. +- Control UI: the chat composer's context ring popover shows **plan usage** for subscription providers — per-window bars (5-hour, weekly, model-scoped) with reset times, the provider plan when known (for example `Max (20x)`), and extra-usage credits. Sessions billed through a plan hide per-token dollar estimates; API-billed sessions keep `Est. cost` and the cost-by-type breakdown. Claude Code CLI (`claude-cli`) setups reuse the same Anthropic subscription usage. - macOS menu bar: a root "Usage" section appears below Context when provider usage snapshots are available. See [Menu bar](/platforms/mac/menu-bar). `openclaw channels list` no longer prints provider usage; it points users to `openclaw status` or `openclaw models list` instead. diff --git a/docs/plugins/architecture-internals.md b/docs/plugins/architecture-internals.md index c77f9d28c56..67ab30e16e8 100644 --- a/docs/plugins/architecture-internals.md +++ b/docs/plugins/architecture-internals.md @@ -325,7 +325,9 @@ that still runs on OpenClaw's normal inference loop. `resolveUsageAuth` decides whether OpenClaw should call `fetchUsageSnapshot` or fall back to generic credential resolution for usage/status surfaces. Return -`{ token, accountId? }` when the provider has a usage credential, return +`{ token, accountId?, subscriptionType?, rateLimitTier? }` when the provider +has a usage credential (the optional plan metadata flows into +`fetchUsageSnapshot`), return `{ handled: true }` when provider-owned usage auth has handled the request and must suppress generic API-key/OAuth fallback, and return `null` or `undefined` when the provider did not handle usage auth. diff --git a/docs/plugins/sdk-provider-plugins.md b/docs/plugins/sdk-provider-plugins.md index 25d2a6df6e7..f4e40d761f3 100644 --- a/docs/plugins/sdk-provider-plugins.md +++ b/docs/plugins/sdk-provider-plugins.md @@ -600,8 +600,11 @@ catalog, API-key auth, and dynamic model resolution. }, ``` - `resolveUsageAuth` has three outcomes. Return `{ token, accountId? }` - when the provider has a usage/billing credential. Return + `resolveUsageAuth` has three outcomes. Return + `{ token, accountId?, subscriptionType?, rateLimitTier? }` when the + provider has a usage/billing credential (the optional fields carry + non-secret plan metadata from the resolved profile into + `fetchUsageSnapshot`). Return `{ handled: true }` only when the provider has definitively handled usage auth but has no usable usage token, and OpenClaw must skip generic API-key/OAuth fallback. Return `null` or `undefined` when the provider did diff --git a/extensions/anthropic/usage.test.ts b/extensions/anthropic/usage.test.ts index 4167cd0dd5b..182ce2ec2fc 100644 --- a/extensions/anthropic/usage.test.ts +++ b/extensions/anthropic/usage.test.ts @@ -1,5 +1,26 @@ import { describe, expect, it, vi } from "vitest"; -import { fetchAnthropicAdminUsage, resolveAnthropicUsageAuth } from "./usage.js"; +import { + fetchAnthropicAdminUsage, + fetchAnthropicUsage, + formatClaudePlanLabel, + resolveAnthropicUsageAuth, +} from "./usage.js"; + +vi.mock("openclaw/plugin-sdk/provider-auth", async (importActual) => { + const actual = await importActual(); + return { + ...actual, + readClaudeCliCredentialsCached: vi.fn(() => ({ + type: "oauth", + provider: "anthropic", + access: "cli-access", + refresh: "cli-refresh", + expires: Date.now() + 3_600_000, + subscriptionType: "max", + rateLimitTier: "default_max_20x", + })), + }; +}); function requestUrl(input: string | URL | Request): URL { return new URL(input instanceof Request ? input.url : input); @@ -132,4 +153,83 @@ describe("Anthropic provider usage", () => { token: 'openclaw:anthropic-admin:v1:{"token":"sk-ant-admin-billing"}', }); }); + + it("falls back to the synced claude-cli OAuth profile when anthropic has none", async () => { + const resolveOAuthToken = vi.fn(async (params?: { provider?: string }) => + params?.provider === "claude-cli" ? { token: "claude-cli-token" } : null, + ); + const result = await resolveAnthropicUsageAuth({ + config: {}, + env: {}, + provider: "anthropic", + resolveApiKeyFromConfigAndStore: () => undefined, + resolveOAuthToken, + }); + expect(result).toEqual({ token: "claude-cli-token" }); + expect(resolveOAuthToken).toHaveBeenNthCalledWith(1); + expect(resolveOAuthToken).toHaveBeenNthCalledWith(2, { provider: "claude-cli" }); + }); + + it.each([ + { subscription: "max", tier: "default_max_20x", expected: "Max (20x)" }, + { subscription: "pro", tier: undefined, expected: "Pro" }, + { subscription: "max", tier: "default", expected: "Max" }, + { subscription: undefined, tier: "default_max_20x", expected: undefined }, + { subscription: " ", tier: undefined, expected: undefined }, + ])("formats plan label for $subscription/$tier", ({ subscription, tier, expected }) => { + expect(formatClaudePlanLabel(subscription, tier)).toBe(expected); + }); + + it("prefers plan metadata from the resolved auth profile over CLI reads", async () => { + const fetchFn = vi.fn( + async () => new Response(JSON.stringify({ five_hour: { utilization: 10 } }), { status: 200 }), + ); + const snapshot = await fetchAnthropicUsage({ + config: {}, + env: {}, + provider: "anthropic", + token: "oauth-token", + subscriptionType: "pro", + rateLimitTier: "default_pro", + timeoutMs: 5000, + fetchFn, + }); + expect(snapshot.plan).toBe("Pro"); + }); + + it("labels OAuth usage snapshots with the local Claude CLI plan", async () => { + const fetchFn = vi.fn( + async () => + new Response( + JSON.stringify({ + five_hour: { utilization: 22, resets_at: "2026-07-09T18:00:00Z" }, + seven_day: { utilization: 25 }, + }), + { status: 200 }, + ), + ); + const snapshot = await fetchAnthropicUsage({ + config: {}, + env: {}, + provider: "anthropic", + token: "oauth-token", + timeoutMs: 5000, + fetchFn, + }); + expect(snapshot.plan).toBe("Max (20x)"); + expect(snapshot.windows).toHaveLength(2); + }); + + it("does not attach a plan label when usage has no windows", async () => { + const fetchFn = vi.fn(async () => new Response(JSON.stringify({}), { status: 200 })); + const snapshot = await fetchAnthropicUsage({ + config: {}, + env: {}, + provider: "anthropic", + token: "oauth-token", + timeoutMs: 5000, + fetchFn, + }); + expect(snapshot.plan).toBeUndefined(); + }); }); diff --git a/extensions/anthropic/usage.ts b/extensions/anthropic/usage.ts index d75fb9b959e..4188162480e 100644 --- a/extensions/anthropic/usage.ts +++ b/extensions/anthropic/usage.ts @@ -3,7 +3,10 @@ import type { ProviderResolveUsageAuthContext, ProviderResolvedUsageAuth, } from "openclaw/plugin-sdk/plugin-entry"; -import { validateAnthropicSetupToken } from "openclaw/plugin-sdk/provider-auth"; +import { + readClaudeCliCredentialsCached, + validateAnthropicSetupToken, +} from "openclaw/plugin-sdk/provider-auth"; import { buildUsageHttpErrorSnapshot, fetchClaudeUsage, @@ -12,6 +15,7 @@ import { type ProviderUsageSnapshot, } from "openclaw/plugin-sdk/provider-usage"; import { readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime"; +import { CLAUDE_CLI_BACKEND_ID } from "./cli-constants.js"; const ANTHROPIC_COST_URL = "https://api.anthropic.com/v1/organizations/cost_report"; const ANTHROPIC_MESSAGES_USAGE_URL = @@ -435,6 +439,17 @@ export async function resolveAnthropicUsageAuth( return oauthToken; } + // Claude CLI-only setups have their keychain login synced under the + // claude-cli profile, not anthropic; without this fallback those setups + // never surface subscription usage windows. Usage snapshots are keyed per + // provider, so when a native anthropic OAuth account and a different Claude + // Code account coexist, the native account wins and both auth rows display + // its quota. Per-profile usage attribution is tracked in #102807. + const claudeCliToken = await ctx.resolveOAuthToken({ provider: CLAUDE_CLI_BACKEND_ID }); + if (claudeCliToken) { + return claudeCliToken; + } + const apiKey = ctx.resolveApiKeyFromConfigAndStore(); const adminKey = normalizeAdminKey(apiKey); if (adminKey) { @@ -446,15 +461,57 @@ export async function resolveAnthropicUsageAuth( return { handled: true }; } +/** Formats keychain plan metadata like ("max", "default_max_20x") as "Max (20x)". */ +export function formatClaudePlanLabel( + subscriptionType?: string, + rateLimitTier?: string, +): string | undefined { + const base = subscriptionType?.trim(); + if (!base) { + return undefined; + } + const label = base.charAt(0).toUpperCase() + base.slice(1); + const tier = rateLimitTier?.trim().match(/_(\d+x)$/i)?.[1]; + return tier ? `${label} (${tier})` : label; +} + +// Best-effort plan label. Preferred source is plan metadata on the resolved +// auth profile (captured when the external CLI login was synced — the only +// prompt-free source on keychain-backed macOS installs). Fallback reads the +// Claude CLI credential file without keychain prompts for file-based logins. +// When multiple Claude accounts are in play the CLI login may differ from the +// profile that fetched usage; a mislabeled plan chip is acceptable, a second +// network call is not. +function resolveClaudePlanLabel(ctx: ProviderFetchUsageSnapshotContext): string | undefined { + const fromAuth = formatClaudePlanLabel(ctx.subscriptionType, ctx.rateLimitTier); + if (fromAuth) { + return fromAuth; + } + const credential = readClaudeCliCredentialsCached({ + allowKeychainPrompt: false, + ttlMs: 5 * 60_000, + }); + if (!credential || credential.type !== "oauth") { + return undefined; + } + return formatClaudePlanLabel(credential.subscriptionType, credential.rateLimitTier); +} + export async function fetchAnthropicUsage( ctx: ProviderFetchUsageSnapshotContext, ): Promise { const adminKey = decodeAdminToken(ctx.token); - return adminKey - ? await fetchAnthropicAdminUsage({ - apiKey: adminKey, - timeoutMs: ctx.timeoutMs, - fetchFn: ctx.fetchFn, - }) - : await fetchClaudeUsage(ctx.token, ctx.timeoutMs, ctx.fetchFn); + if (adminKey) { + return await fetchAnthropicAdminUsage({ + apiKey: adminKey, + timeoutMs: ctx.timeoutMs, + fetchFn: ctx.fetchFn, + }); + } + const snapshot = await fetchClaudeUsage(ctx.token, ctx.timeoutMs, ctx.fetchFn); + if (snapshot.error || snapshot.plan || snapshot.windows.length === 0) { + return snapshot; + } + const plan = resolveClaudePlanLabel(ctx); + return plan ? { ...snapshot, plan } : snapshot; } diff --git a/src/agents/auth-profiles/types.ts b/src/agents/auth-profiles/types.ts index a4db58f1c76..4e6297ff9a9 100644 --- a/src/agents/auth-profiles/types.ts +++ b/src/agents/auth-profiles/types.ts @@ -21,6 +21,10 @@ export type OAuthCredentials = { projectId?: string; accountId?: string; chatgptPlanType?: string; + /** Non-secret subscription plan captured from external CLI logins (e.g. "max"). */ + subscriptionType?: string; + /** Non-secret rate-limit tier captured from external CLI logins (e.g. "default_max_20x"). */ + rateLimitTier?: string; idToken?: string; }; diff --git a/src/agents/cli-credentials.test.ts b/src/agents/cli-credentials.test.ts index 777a7285cf3..ce471c17d33 100644 --- a/src/agents/cli-credentials.test.ts +++ b/src/agents/cli-credentials.test.ts @@ -36,6 +36,8 @@ function mockClaudeCliCredentialRead() { accessToken: `token-${Date.now()}`, refreshToken: "cached-refresh", expiresAt: Date.now() + 60_000, + subscriptionType: "max", + rateLimitTier: "default_max_20x", }, }), ); @@ -110,6 +112,8 @@ describe("cli credentials", () => { provider: "anthropic", access: "token-1735689600000", refresh: "cached-refresh", + subscriptionType: "max", + rateLimitTier: "default_max_20x", }); expectFields(second, { type: "oauth", diff --git a/src/agents/cli-credentials.ts b/src/agents/cli-credentials.ts index 3b2ffc229d9..75d4d8bdf75 100644 --- a/src/agents/cli-credentials.ts +++ b/src/agents/cli-credentials.ts @@ -53,12 +53,16 @@ export type ClaudeCliCredential = access: string; refresh: string; expires: number; + subscriptionType?: string; + rateLimitTier?: string; } | { type: "token"; provider: "anthropic"; token: string; expires: number; + subscriptionType?: string; + rateLimitTier?: string; }; /** Credential shape parsed from Codex CLI storage. */ @@ -103,9 +107,24 @@ function parseClaudeCliOauthCredential(claudeOauth: unknown): ClaudeCliCredentia if (!claudeOauth || typeof claudeOauth !== "object") { return null; } - const accessToken = (claudeOauth as Record).accessToken; - const refreshToken = (claudeOauth as Record).refreshToken; - const expiresAt = (claudeOauth as Record).expiresAt; + const data = claudeOauth as Record; + const accessToken = data.accessToken; + const refreshToken = data.refreshToken; + const expiresAt = data.expiresAt; + // Plan metadata (e.g. subscriptionType "max", rateLimitTier "default_max_20x") + // lets usage surfaces label subscription windows without another API call. + const subscriptionType = + typeof data.subscriptionType === "string" && data.subscriptionType.trim() + ? data.subscriptionType.trim() + : undefined; + const rateLimitTier = + typeof data.rateLimitTier === "string" && data.rateLimitTier.trim() + ? data.rateLimitTier.trim() + : undefined; + const planFields = { + ...(subscriptionType ? { subscriptionType } : {}), + ...(rateLimitTier ? { rateLimitTier } : {}), + }; if (typeof accessToken !== "string" || !accessToken) { return null; @@ -120,6 +139,7 @@ function parseClaudeCliOauthCredential(claudeOauth: unknown): ClaudeCliCredentia access: accessToken, refresh: refreshToken, expires: expiresAt, + ...planFields, }; } return { @@ -127,6 +147,7 @@ function parseClaudeCliOauthCredential(claudeOauth: unknown): ClaudeCliCredentia provider: "anthropic", token: accessToken, expires: expiresAt, + ...planFields, }; } diff --git a/src/gateway/server-methods/models-auth-status.test.ts b/src/gateway/server-methods/models-auth-status.test.ts index 9db5aeb1585..c4e2bb98af7 100644 --- a/src/gateway/server-methods/models-auth-status.test.ts +++ b/src/gateway/server-methods/models-auth-status.test.ts @@ -414,6 +414,53 @@ describe("models.authStatus", () => { expect(mocks.loadProviderUsageSummary).not.toHaveBeenCalled(); }); + it("routes claude-cli OAuth profiles to Anthropic usage with plan and billing", async () => { + const profile = { + profileId: "claude-cli", + provider: "claude-cli", + type: "oauth", + status: "ok", + source: "store", + label: "claude-cli", + } satisfies AuthHealthSummary["profiles"][number]; + mocks.buildAuthHealthSummary.mockReturnValue({ + now: 0, + warnAfterMs: 0, + profiles: [profile], + providers: [{ provider: "claude-cli", status: "ok", profiles: [profile] }], + }); + mocks.loadProviderUsageSummary.mockResolvedValue({ + updatedAt: 0, + providers: [ + { + provider: "anthropic", + displayName: "Claude", + plan: "Max (20x)", + windows: [{ label: "5h", usedPercent: 22 }], + billing: [{ type: "budget", used: 157.85, limit: 400, unit: "USD", period: "month" }], + }, + ], + }); + + const opts = createOptions(); + await handler(opts); + + expect(mocks.loadProviderUsageSummary).toHaveBeenCalledWith({ + providers: ["anthropic"], + agentDir: "/tmp/agent", + timeoutMs: 3500, + }); + const [, payload] = firstRespondCall(opts) ?? []; + const result = payload as ModelAuthStatusResult; + expect(result.providers[0]?.displayName).toBe("Claude"); + expect(result.providers[0]?.usage).toEqual({ + providerId: "anthropic", + windows: [{ label: "5h", usedPercent: 22 }], + plan: "Max (20x)", + billing: [{ type: "budget", used: 157.85, limit: 400, unit: "USD", period: "month" }], + }); + }); + it("adds DeepSeek API-key balance summaries to auth status usage", async () => { mocks.buildAuthHealthSummary.mockReturnValue({ now: 0, @@ -444,6 +491,7 @@ describe("models.authStatus", () => { const [, payload] = firstRespondCall(opts) ?? []; const result = payload as ModelAuthStatusResult; expect(result.providers[0]?.usage).toEqual({ + providerId: "deepseek", windows: [], summary: "Balance ¥42.50", }); diff --git a/src/gateway/server-methods/models-auth-status.ts b/src/gateway/server-methods/models-auth-status.ts index 088a55436a7..dd480a886e8 100644 --- a/src/gateway/server-methods/models-auth-status.ts +++ b/src/gateway/server-methods/models-auth-status.ts @@ -31,6 +31,7 @@ import { isSecretRef } from "../../config/types.secrets.js"; import { loadProviderUsageSummary } from "../../infra/provider-usage.load.js"; import { PROVIDER_LABELS, resolveUsageProviderId } from "../../infra/provider-usage.shared.js"; import type { + ProviderUsageBilling, ProviderUsageSnapshot, UsageProviderId, UsageWindow, @@ -45,7 +46,7 @@ import type { GatewayRequestContext, GatewayRequestHandlers } from "./types.js"; const log = createSubsystemLogger("models-auth-status"); const apiKeyUsageStatusProviders = new Set(["clawrouter", "deepseek"]); -type ProviderUsageStatus = Pick; +type ProviderUsageStatus = Pick; /** * Models-auth status wire types. Mirrored in ui/src/ui/types.ts via an @@ -78,9 +79,16 @@ export type ModelAuthStatusProvider = { expiry?: ModelAuthExpiry; profiles: ModelAuthStatusProfile[]; usage?: { + /** + * Normalized usage provider id this payload was fetched under (e.g. + * "anthropic" for a claude-cli auth row). Session rows report canonical + * model providers, so consumers must match against both ids. + */ + providerId: UsageProviderId; windows: UsageWindow[]; summary?: string; plan?: string; + billing?: ProviderUsageBilling[]; }; }; @@ -291,13 +299,16 @@ function mapProvider( reasonCode: prof.reasonCode, expiry: buildExpiry(prof.remainingMs, prof.expiresAt), })), - usage: usage - ? { - windows: usage.windows, - ...(usage.summary ? { summary: usage.summary } : {}), - ...(usage.plan ? { plan: usage.plan } : {}), - } - : undefined, + usage: + usage && usageKey + ? { + providerId: usageKey, + windows: usage.windows, + ...(usage.summary ? { summary: usage.summary } : {}), + ...(usage.plan ? { plan: usage.plan } : {}), + ...(usage.billing?.length ? { billing: usage.billing } : {}), + } + : undefined, }; } @@ -512,6 +523,7 @@ export const modelsAuthStatusHandlers: GatewayRequestHandlers = { windows: snap.windows, ...(snap.summary ? { summary: snap.summary } : {}), ...(snap.plan ? { plan: snap.plan } : {}), + ...(snap.billing?.length ? { billing: snap.billing } : {}), }); } } catch (err) { diff --git a/src/infra/provider-usage.auth.ts b/src/infra/provider-usage.auth.ts index 2ceafd4360e..8203f985a65 100644 --- a/src/infra/provider-usage.auth.ts +++ b/src/infra/provider-usage.auth.ts @@ -32,6 +32,9 @@ export type ProviderAuth = { accountId?: string; authProfileId?: string; hookProvider?: string; + /** Non-secret plan metadata from the resolved credential (e.g. Claude "max"). */ + subscriptionType?: string; + rateLimitTier?: string; }; type AuthStore = ReturnType; @@ -325,6 +328,15 @@ async function resolveOAuthToken(params: { cred.type === "oauth" && "accountId" in cred ? (cred as { accountId?: string }).accountId : undefined, + // Plan metadata is captured at external CLI sync time; runtime usage + // fetches must not re-read CLI keychains, so the stored profile is the + // only prompt-free source for plan labels. + ...(cred.type === "oauth" && cred.subscriptionType + ? { subscriptionType: cred.subscriptionType } + : {}), + ...(cred.type === "oauth" && cred.rateLimitTier + ? { rateLimitTier: cred.rateLimitTier } + : {}), }; } catch { // ignore @@ -370,6 +382,8 @@ async function resolveProviderUsageAuthViaPlugin(params: { ? { token: auth.token, ...(auth.accountId ? { accountId: auth.accountId } : {}), + ...(auth.subscriptionType ? { subscriptionType: auth.subscriptionType } : {}), + ...(auth.rateLimitTier ? { rateLimitTier: auth.rateLimitTier } : {}), } : null; }, @@ -387,6 +401,8 @@ async function resolveProviderUsageAuthViaPlugin(params: { provider: params.provider, token: resolved.token, ...(resolved.accountId ? { accountId: resolved.accountId } : {}), + ...(resolved.subscriptionType ? { subscriptionType: resolved.subscriptionType } : {}), + ...(resolved.rateLimitTier ? { rateLimitTier: resolved.rateLimitTier } : {}), }, }; } diff --git a/src/infra/provider-usage.fetch.claude.test.ts b/src/infra/provider-usage.fetch.claude.test.ts index 1758b890f09..40599288798 100644 --- a/src/infra/provider-usage.fetch.claude.test.ts +++ b/src/infra/provider-usage.fetch.claude.test.ts @@ -135,15 +135,32 @@ describe("fetchClaudeUsage", () => { const result = await fetchClaudeUsage("token", 5000, mockFetch); + // Extra usage renders as the budget billing entry only; a duplicate + // window row for the same credits would double-display in usage surfaces. expect(result.windows).toEqual([ { label: "Fable", usedPercent: 27, resetAt: new Date(reset).getTime() }, - { label: "Extra usage", usedPercent: 4.132 }, ]); expect(result.billing).toEqual([ { type: "budget", used: 41.32, limit: 1000, unit: "USD", period: "month" }, ]); }); + it("keeps the extra usage window when credit amounts are missing", async () => { + const mockFetch = createProviderUsageFetch(async () => + makeResponse(200, { + extra_usage: { + is_enabled: true, + utilization: 12, + }, + }), + ); + + const result = await fetchClaudeUsage("token", 5000, mockFetch); + + expect(result.windows).toEqual([{ label: "Extra usage", usedPercent: 12 }]); + expect(result.billing).toBeUndefined(); + }); + it("clamps oauth usage windows and prefers sonnet over opus when both exist", async () => { const mockFetch = createProviderUsageFetch(async () => makeResponse(200, { diff --git a/src/infra/provider-usage.fetch.claude.ts b/src/infra/provider-usage.fetch.claude.ts index 54cc7ea113d..4f3a58e9657 100644 --- a/src/infra/provider-usage.fetch.claude.ts +++ b/src/infra/provider-usage.fetch.claude.ts @@ -34,7 +34,10 @@ type ClaudeWebOrganizationsResponse = Array<{ name?: string; }>; -function buildClaudeUsageWindows(data: ClaudeUsageResponse): UsageWindow[] { +function buildClaudeUsageWindows( + data: ClaudeUsageResponse, + options?: { skipExtraUsage?: boolean }, +): UsageWindow[] { const windows: UsageWindow[] = []; if (data.five_hour?.utilization !== undefined) { @@ -79,7 +82,13 @@ function buildClaudeUsageWindows(data: ClaudeUsageResponse): UsageWindow[] { }); } - if (data.extra_usage?.is_enabled && Number.isFinite(data.extra_usage.utilization)) { + // Skipped when the caller also emits an extra-usage budget billing entry; + // rendering both would duplicate the same credits as window and budget. + if ( + !options?.skipExtraUsage && + data.extra_usage?.is_enabled && + Number.isFinite(data.extra_usage.utilization) + ) { windows.push({ label: "Extra usage", usedPercent: clampPercent(data.extra_usage.utilization ?? 0), @@ -224,7 +233,6 @@ export async function fetchClaudeUsage( return parsed.snapshot; } const data = parsed.data as ClaudeUsageResponse; - const windows = buildClaudeUsageWindows(data); const extra = data.extra_usage; const unit = extra?.currency?.trim().toUpperCase() || "USD"; const billing = @@ -246,6 +254,7 @@ export async function fetchClaudeUsage( }, ] : undefined; + const windows = buildClaudeUsageWindows(data, { skipExtraUsage: Boolean(billing) }); return { provider: "anthropic", diff --git a/src/infra/provider-usage.load.ts b/src/infra/provider-usage.load.ts index 30d79671d6a..00d1fa97013 100644 --- a/src/infra/provider-usage.load.ts +++ b/src/infra/provider-usage.load.ts @@ -72,6 +72,8 @@ async function fetchProviderUsageSnapshot(params: { token: params.auth.token, accountId: params.auth.accountId, authProfileId: params.auth.authProfileId, + subscriptionType: params.auth.subscriptionType, + rateLimitTier: params.auth.rateLimitTier, timeoutMs: params.timeoutMs, fetchFn: params.fetchFn, }, diff --git a/src/infra/provider-usage.shared.test.ts b/src/infra/provider-usage.shared.test.ts index 7573e6e2607..9947ef246cc 100644 --- a/src/infra/provider-usage.shared.test.ts +++ b/src/infra/provider-usage.shared.test.ts @@ -18,6 +18,8 @@ describe("provider-usage.shared", () => { { value: "minimax-portal", expected: "minimax" }, { value: "minimax-cn", expected: "minimax" }, { value: "minimax-portal-cn", expected: "minimax" }, + { value: "claude-cli", expected: "anthropic" }, + { value: " CLAUDE-CLI ", expected: "anthropic" }, { value: " XIAOMI-TOKEN-PLAN ", expected: "xiaomi-token-plan" }, { value: "unknown-provider", expected: "unknown-provider" }, { value: undefined, expected: undefined }, diff --git a/src/infra/provider-usage.shared.ts b/src/infra/provider-usage.shared.ts index a3d23a92f25..26556ee33dd 100644 --- a/src/infra/provider-usage.shared.ts +++ b/src/infra/provider-usage.shared.ts @@ -48,6 +48,12 @@ export function resolveUsageProviderId( if (normalized === "openai") { return undefined; } + // Claude CLI-backed models bill against the same Anthropic subscription as + // native anthropic OAuth; without this mapping claude-cli-only setups get + // "Unsupported provider" instead of plan usage windows. + if (normalized === "claude-cli") { + return "anthropic"; + } if ( normalized === "minimax-portal" || normalized === "minimax-cn" || diff --git a/src/plugins/types.ts b/src/plugins/types.ts index 0055269f0b7..69bce266fed 100644 --- a/src/plugins/types.ts +++ b/src/plugins/types.ts @@ -655,7 +655,13 @@ export type ProviderResolveUsageAuthContext = { resolveOAuthToken: (params?: { provider?: string }) => Promise; }; -export type ProviderUsageAuthToken = { token: string; accountId?: string }; +export type ProviderUsageAuthToken = { + token: string; + accountId?: string; + /** Non-secret plan metadata from the resolved credential (e.g. Claude "max"). */ + subscriptionType?: string; + rateLimitTier?: string; +}; /** * Result of `resolveUsageAuth`. @@ -688,6 +694,9 @@ export type ProviderFetchUsageSnapshotContext = { token: string; accountId?: string; authProfileId?: string; + /** Non-secret plan metadata from the resolved credential (e.g. Claude "max"). */ + subscriptionType?: string; + rateLimitTier?: string; timeoutMs: number; fetchFn: typeof fetch; }; diff --git a/ui/src/components/provider-quota-pill.ts b/ui/src/components/provider-quota-pill.ts deleted file mode 100644 index 2f5c9bed43b..00000000000 --- a/ui/src/components/provider-quota-pill.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { html, nothing } from "lit"; -import type { ModelAuthStatusResult } from "../api/types.ts"; -import { normalizeBasePath } from "../app-route-paths.ts"; -import { t } from "../i18n/index.ts"; -import { isMonitoredAuthProvider } from "../lib/model-auth.ts"; -import { - collectQuotaWindowsFromAuthStatus, - formatQuotaReset, -} from "../lib/provider-quota-summary.ts"; - -export type ProviderQuotaPillProps = { - basePath?: string; - modelAuthStatusResult?: ModelAuthStatusResult | null; -}; - -export function renderProviderQuotaPill(props: ProviderQuotaPillProps) { - const windows = collectQuotaWindowsFromAuthStatus( - props.modelAuthStatusResult ?? null, - isMonitoredAuthProvider, - ); - const primary = windows[0]; - if (!primary) { - return nothing; - } - const secondary = windows.find( - (entry) => entry.displayName !== primary.displayName || entry.label !== primary.label, - ); - const reset = formatQuotaReset(primary.resetAt); - const detail = [primary.displayName, primary.label, reset ? `resets ${reset}` : null] - .filter(Boolean) - .join(" · "); - const secondaryDetail = secondary - ? `${secondary.displayName}${secondary.label ? ` ${secondary.label}` : ""} ${secondary.remaining}% left` - : null; - const title = [detail, secondaryDetail].filter(Boolean).join(" · "); - const severity = primary.remaining <= 10 ? "danger" : primary.remaining <= 25 ? "warn" : "ok"; - const href = `${normalizeBasePath(props.basePath ?? "")}/usage`; - - return html` - - ${t("chat.usageRemaining")} - ${primary.remaining}% - - `; -} diff --git a/ui/src/e2e/chat-composer-redesign.e2e.test.ts b/ui/src/e2e/chat-composer-redesign.e2e.test.ts index 88df249c5ad..7baceca9ae0 100644 --- a/ui/src/e2e/chat-composer-redesign.e2e.test.ts +++ b/ui/src/e2e/chat-composer-redesign.e2e.test.ts @@ -61,7 +61,7 @@ describeControlUiE2e("Control UI chat composer redesign", () => { displayName: "Codex", status: "ok", profiles: [{ profileId: "codex", type: "oauth", status: "ok" }], - usage: { windows: [{ label: "Week", usedPercent: 72 }] }, + usage: { providerId: "openai", windows: [{ label: "Week", usedPercent: 72 }] }, }, ], }, @@ -165,8 +165,12 @@ describeControlUiE2e("Control UI chat composer redesign", () => { await contextUsage.click(); await expect.poll(() => usage.isVisible()).toBe(true); await expect - .poll(async () => (await usage.textContent())?.replace(/\s+/g, " ").trim()) - .toBe("Usage Remaining 28%"); + .poll(async () => + (await composer.locator(".context-usage__limit").first().textContent()) + ?.replace(/\s+/g, " ") + .trim(), + ) + .toBe("Weekly · all models 72%"); await contextUsage.click(); await model.click(); diff --git a/ui/src/e2e/chat-quota-pill-93041.e2e.test.ts b/ui/src/e2e/chat-quota-pill-93041.e2e.test.ts index 5c76a405c17..5cf95d13cf2 100644 --- a/ui/src/e2e/chat-quota-pill-93041.e2e.test.ts +++ b/ui/src/e2e/chat-quota-pill-93041.e2e.test.ts @@ -27,18 +27,76 @@ const authStatusWithUsage = { status: "ok", profiles: [{ profileId: "codex", type: "oauth", status: "ok" }], usage: { + providerId: "openai", windows: [ - { label: "5h", usedPercent: 42, resetAt: baseTime + 3 * 3_600_000 }, - { label: "Week", usedPercent: 71, resetAt: baseTime + 4 * 86_400_000 }, + { label: "5h", usedPercent: 42, resetAt: Date.now() + 3 * 3_600_000 }, + { label: "Week", usedPercent: 71, resetAt: Date.now() + 4 * 86_400_000 }, ], }, }, ], }; +const claudeSubscriptionAuthStatus = { + ts: baseTime, + providers: [ + { + provider: "claude-cli", + displayName: "Claude", + status: "ok", + profiles: [{ profileId: "claude-cli", type: "oauth", status: "ok" }], + usage: { + providerId: "anthropic", + plan: "Max (20x)", + windows: [ + { label: "5h", usedPercent: 22, resetAt: Date.now() + 4 * 3_600_000 + 48 * 60_000 }, + { label: "Week", usedPercent: 25, resetAt: Date.now() + 2 * 86_400_000 }, + { label: "Fable", usedPercent: 45 }, + ], + billing: [{ type: "budget", used: 157.85, limit: 400, unit: "USD", period: "month" }], + }, + }, + ], +}; + +const claudeSubscriptionSessions = { + count: 1, + defaults: { + contextTokens: 1_000_000, + model: "claude-fable-5", + modelProvider: "anthropic", + }, + path: "", + sessions: [ + { + contextTokens: 1_000_000, + displayName: "Main", + estimatedCostUsd: 0.02, + hasActiveRun: false, + inputTokens: 2_400, + key: "main", + kind: "direct", + label: "Main", + model: "claude-fable-5", + // sessions.list canonicalizes CLI aliases; plan matching goes through + // the auth row's usage.providerId. + modelProvider: "anthropic", + outputTokens: 830, + status: "done", + totalTokens: 78_700, + totalTokensFresh: true, + updatedAt: Date.now(), + }, + ], + ts: Date.now(), +}; + let server: ControlUiE2eServer; -async function openChat(authStatus: unknown): Promise<{ +async function openChat( + authStatus: unknown, + extraMethodResponses: Record = {}, +): Promise<{ browser: Browser; context: BrowserContext; page: Page; @@ -54,7 +112,9 @@ async function openChat(authStatus: unknown): Promise<{ }); page = await context.newPage(); page.setDefaultTimeout(15_000); - await installMockGateway(page, { methodResponses: { "models.authStatus": authStatus } }); + await installMockGateway(page, { + methodResponses: { "models.authStatus": authStatus, ...extraMethodResponses }, + }); await page.goto(`${server.baseUrl}chat`); return { browser, context, page }; } catch (error) { @@ -89,26 +149,58 @@ describeE2e("Control UI #93041 desktop chat quota popover (mocked Gateway E2E)", const { page } = fixture; try { const contextRing = page.locator(".context-ring"); - const pill = page.locator('[data-chat-provider-usage="true"]'); + const usageLink = page.locator('[data-chat-provider-usage="true"]'); await contextRing.waitFor({ state: "visible" }); - expect(await pill.isVisible()).toBe(false); + expect(await usageLink.isVisible()).toBe(false); await contextRing.click(); - await pill.waitFor({ state: "visible" }); + await usageLink.waitFor({ state: "visible" }); await page.screenshot({ path: path.join(artifactDir, "01-chat-with-context-usage.png") }); await page.locator(".context-usage__popover").screenshot({ path: path.join(artifactDir, "02-context-usage-popover.png"), }); - const text = (await pill.textContent())?.replace(/\s+/g, " ").trim(); - expect(text).toBe("Usage Remaining 29%"); - expect(await pill.getAttribute("href")).toBe("/usage"); - expect(await pill.getAttribute("title")).toContain("Codex"); + expect(await usageLink.getAttribute("href")).toBe("/usage"); + const rows = await page.locator(".context-usage__limit").allTextContents(); + const normalized = rows.map((row) => row.replace(/\s+/g, " ").trim()); + expect(normalized[0]).toMatch(/^5-hour limit Resets .+ 42%$/); + expect(normalized[1]).toMatch(/^Weekly · all models Resets .+ 71%$/); } finally { await closeChat(fixture); } }); - it("shows no pill when no provider usage windows are present", async () => { + it("shows plan bars, credits, and no dollar estimates for subscription sessions", async () => { + const fixture = await openChat(claudeSubscriptionAuthStatus, { + "sessions.list": claudeSubscriptionSessions, + }); + const { page } = fixture; + try { + const contextRing = page.locator(".context-ring"); + await contextRing.waitFor({ state: "visible" }); + await contextRing.click(); + await page.locator(".context-usage__popover").waitFor({ state: "visible" }); + await page.locator(".context-usage__popover").screenshot({ + path: path.join(artifactDir, "03-claude-subscription-popover.png"), + }); + + expect(await page.locator(".context-usage__plan-badge").textContent()).toBe("Max (20x)"); + const rows = await page.locator(".context-usage__limit").allTextContents(); + const normalized = rows.map((row) => row.replace(/\s+/g, " ").trim()); + expect(normalized[0]).toMatch(/^5-hour limit Resets .+ 22%$/); + expect(normalized[1]).toMatch(/^Weekly · all models Resets .+ 25%$/); + expect(normalized[2]).toBe("Fable 45%"); + expect(normalized[3]).toBe("Usage credits $157.85 of $400.00"); + + const popoverText = (await page.locator(".context-usage__popover").textContent()) ?? ""; + expect(popoverText).not.toContain("Est. cost"); + expect(popoverText).not.toContain("Cost by Type"); + expect(popoverText).toContain("Latest run tokens"); + } finally { + await closeChat(fixture); + } + }); + + it("shows no plan usage when no provider usage windows are present", async () => { const fixture = await openChat({ ts: baseTime, providers: [] }); const { page } = fixture; try { diff --git a/ui/src/i18n/.i18n/ar.meta.json b/ui/src/i18n/.i18n/ar.meta.json index 1d58826838f..bbf2a2ceb56 100644 --- a/ui/src/i18n/.i18n/ar.meta.json +++ b/ui/src/i18n/.i18n/ar.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:34.634Z", + "generatedAt": "2026-07-09T14:24:54.348Z", "locale": "ar", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/ar.tm.jsonl b/ui/src/i18n/.i18n/ar.tm.jsonl index 20a53a40d4c..e5290bd704f 100644 --- a/ui/src/i18n/.i18n/ar.tm.jsonl +++ b/ui/src/i18n/.i18n/ar.tm.jsonl @@ -23,12 +23,14 @@ {"cache_key":"1bb67bd03a5259003cb18979044f40ee96d0b50a449e65065f33ddb5ba15a1fa","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterUnassignedHelp","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Cards without an explicit agent.","text_hash":"f716a36252b33511df056fe7d1092be598eca17ea76bedc5d6d3532ec6b0ffea","tgt_lang":"ar","translated":"البطاقات بدون وكيل محدد.","updated_at":"2026-06-17T14:14:58.728Z"} {"cache_key":"1bd8f67f18826f980f39e9cd83bafa4c8e11fb79603071d334d8311ed446971a","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.newGroup","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"New group…","text_hash":"ce58c189f2045434c28a50c9875a7362d28c79fb34d4b365c09f59180ca2712a","tgt_lang":"ar","translated":"مجموعة جديدة…","updated_at":"2026-07-05T14:39:56.977Z"} {"cache_key":"1ca31c085b829006f2c0713326907b2e728a9c62bc97911ac7a7bf41cfa36375","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.title","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"No Codex hosts found","text_hash":"aaad17f2d1d59a936c7882613d1eb75ad6e82d0e82ec79837a587a43352ce24e","tgt_lang":"ar","translated":"لم يتم العثور على أي مضيف لـ Codex","updated_at":"2026-07-09T10:01:43.759Z"} +{"cache_key":"1d61c0f2237a46a943f0ddf2ccdb77902dad701745e2822408ccde811c9e44de","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"ar","translated":"الحد اليومي","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"1de1f729171e18967f76a207f15eaca44b44fa087edb9eb78548516b09ff2197","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.artifactCount","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{count} artifacts","text_hash":"022b6b55a10f1864b7aff7c307e49ab37e11e6999111fb87349f040d100abba3","tgt_lang":"ar","translated":"{count} عنصرًا","updated_at":"2026-06-16T14:15:41.761Z"} {"cache_key":"1e7ea327bf33ad8c6f3b51d23863e11c01e212250d19915511436339f4f46bbb","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dragSessionHint","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Drag to move between groups","text_hash":"3e8692b1cd1c1f9a606a779f1037aa390c885fde224ddb841df9259e8aab03ae","tgt_lang":"ar","translated":"اسحب للنقل بين المجموعات","updated_at":"2026-07-05T14:39:56.977Z"} {"cache_key":"20b2e88b33793df99629daf65b657cb666cb9b4a71ea30e2c05f943939c49565","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.commentaryLabel","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Commentary","text_hash":"4a7a75ab79cde05b0b1baa8f7a704c991586ea44d7e7793e57178ef56f778ff8","tgt_lang":"ar","translated":"التعليق","updated_at":"2026-07-01T01:07:19.841Z"} {"cache_key":"20f98bac595afb3715bf5acbd1e087d08570280150e8d7e0649e378a98ac0489","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.noSearchResults","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"No matching files.","text_hash":"6ba2ede6c6019b640f63e7e48c5ee8238e701c6e539ce9abb5a7a9d9c71d8a73","tgt_lang":"ar","translated":"لا توجد ملفات مطابقة.","updated_at":"2026-06-16T14:15:41.761Z"} {"cache_key":"21e708bf2a649c6c85f13ae73d538beb322a208c4f1d8e61a03e691acd687948","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.copy","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Copy Link","text_hash":"724e78a3254c899d16ef6324a7abc9a8f5240ffce8bff74976df397c68ce9d78","tgt_lang":"ar","translated":"نسخ الرابط","updated_at":"2026-07-09T11:02:53.077Z"} {"cache_key":"222a52155c00d9125472c178e688a19fba317aa89a0fabcd3e6a77c0b930f30c","model":"gpt-5.5","provider":"openai","segment_id":"workboard.eventProtocolViolation","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Protocol violation","text_hash":"367bb2052963f7d75beb672d3ca0430d7d49ac48a2759d578c7df933178fe564","tgt_lang":"ar","translated":"انتهاك البروتوكول","updated_at":"2026-05-30T15:38:27.116Z"} +{"cache_key":"2263bf3748d399ba08fa62c430fa83ebff303b5e44cd0de60e5f89cae3c5d5e8","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"ar","translated":"أسبوعي · كل النماذج","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"240cd908be616bcfb10d98fe41913fa9b82ada7d176dfb173c13031d1ad7d6d2","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkModel","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Model","text_hash":"5e2c614c23f02239bc03c6c04fcb681950f9e72bf8fdff6be79c79841cbb10c0","tgt_lang":"ar","translated":"النموذج","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"25a056bd4b886ccb8f4654ecd699dbf97c57eb061d3a00d912a4ac5394a5f4b0","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.requests","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{count} requests","text_hash":"1e23ff6956124091cd470f5091cee8108c3766314b69871b3ff792eaf506455f","tgt_lang":"ar","translated":"{count} طلبات","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"25fb434c4859d9333235890db97d7b3568a95d07485fea34393128c75196a55c","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.status","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Status","text_hash":"920e413c7d411b61ef3e8c63b1cb6ad058d5f95f8b481dbafe60248387d8c355","tgt_lang":"ar","translated":"الحالة","updated_at":"2026-07-05T21:01:06.223Z"} @@ -43,11 +45,13 @@ {"cache_key":"3515f034c8cb91215ff250241e5e237534a1179950249389bdfb384779b1727e","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.inputTokens","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{count} input","text_hash":"f24231cff78fed82d155712973ede6f9369e96b015acc30d5de2b740677edce9","tgt_lang":"ar","translated":"{count} رموز إدخال","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"38d65b9265e825fb4e4d866593792c1abdda80934818a0b9aecf22306d48a86f","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneInput","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Microphone input","text_hash":"5c8a6025b9d96fb0c090d33c9def15ee64aa520a83cf5d64c784b4f0699bb15e","tgt_lang":"ar","translated":"إدخال الميكروفون","updated_at":"2026-07-06T17:33:50.709Z"} {"cache_key":"3b5a4d5bde77f68a213cc7fe8fa99301db21f7abfec8869f1c0289416583907b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.empty","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"No files touched in this session yet","text_hash":"6b295e4e11bcdd52340c4cc7987565f848cf477a1f0b96c0f47a2b718418298e","tgt_lang":"ar","translated":"لم يتم التعامل مع أي ملفات في هذه الجلسة بعد","updated_at":"2026-06-16T14:15:34.787Z"} +{"cache_key":"3b6787543beee7694de71aa8d49d6e2eea6fe0536e54447f6fd6eb436cea5854","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"ar","translated":"فتح لوحة معلومات الاستخدام","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"3ca80b331543f04c445a8ce07de0f9a1c090b9e3fbe1764aa3b634b1603735fa","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summary.onlineHosts","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"online","text_hash":"f6fc84c9f21c24907d6bee6eec38cabab5fa9a7be8c4a7827fe9e56f245bd2d5","tgt_lang":"ar","translated":"متصل","updated_at":"2026-07-09T10:01:43.759Z"} {"cache_key":"3ce657cfb652d75a1f4f23ecb7bf00ef63fd1515a859e36e485d84752a73f9e4","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortBy","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Sort by","text_hash":"c9129025bd3ff6522a7eeebc1abf1481f36e4ac9d74524a473ac1c3be1c6fc2f","tgt_lang":"ar","translated":"ترتيب حسب","updated_at":"2026-07-06T23:41:03.547Z"} {"cache_key":"3d6682af16bb417d5a1877053f7bd3f74da5a314c36c848003e9b306e0c3d41e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.noBrowserFiles","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"No files in this folder.","text_hash":"3847020c79b1c74e28aa550f0ae53838b764e87f1daf1480dd6aae45ae0529d6","tgt_lang":"ar","translated":"لا توجد ملفات في هذا المجلد.","updated_at":"2026-06-16T14:15:41.761Z"} {"cache_key":"3e8c3ea6c3806eee880fd7047a747d93025a592a34bfda7838d5f999b58edd39","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.latestRunTokens","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Latest run tokens","text_hash":"969b6403862b70df744bc747c801663034a7837cd04b55973b7ee6c051e2e5ca","tgt_lang":"ar","translated":"رموز التشغيل الأخير","updated_at":"2026-07-05T10:16:14.365Z"} {"cache_key":"41c103a08f5a327446e04ebae794357e17495c4e250132819b10e7936f06790d","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summaryLabel","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Codex session summary","text_hash":"667dedf7bd0ebc80d4e312cc52f824e6a5307c1c6210f2e72e5b93da824da502","tgt_lang":"ar","translated":"ملخص جلسات Codex","updated_at":"2026-07-09T10:01:43.759Z"} +{"cache_key":"423a8ec9bb2af0c14259060fbe22f72db99edc2e7ea13db7d21a1cf212cf5cd0","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"ar","translated":"استخدام الخطة","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"42c03e1e3e3005a2e468c0aeeba4ccecedd2f571bacc359b4b6d2a0ec096247c","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneBusy","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Microphone inputs are busy or unavailable to the browser.","text_hash":"9f33c30cb2370916f2edd079ad5cabab6a94dd185a89f4f7db357b4f31d1f3dd","tgt_lang":"ar","translated":"مدخلات الميكروفون مشغولة أو غير متاحة للمتصفح.","updated_at":"2026-07-06T17:56:46.696Z"} {"cache_key":"4415183ca5d503c746da2130e2417c474c438a474ec03e1b2603f1222109239e","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.confirmForceDelete","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Snapshot failed: {error}\n\nDelete without a snapshot?","text_hash":"200ce9b8fb04659df79e1d26e69ec1014631ad5a85a92130dbdb9fcb550ba34f","tgt_lang":"ar","translated":"فشل أخذ اللقطة: {error}\n\nهل تريد الحذف دون لقطة؟","updated_at":"2026-07-05T21:01:06.223Z"} {"cache_key":"4426f55144297880b6ce87734b56bfeb86339200fa7cd76544e89a5d0a1c447b","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.repo","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Repository","text_hash":"13d6ff07b8a5d792ec87d5ec83bff2730ee77fa8f4fcd89ca5f1d688f64b4c73","tgt_lang":"ar","translated":"المستودع","updated_at":"2026-07-05T21:01:06.223Z"} @@ -188,9 +192,11 @@ {"cache_key":"b80afa17567a8c5806f1129caba069ff41dea009a93792c025c520ee06cfa228","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCountOne","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{count} session","text_hash":"c0975b42c84d7da963f4c962d1e2c1ee78eb18efc7ebec75fb3ce761ce9a40db","tgt_lang":"ar","translated":"جلسة واحدة ({count})","updated_at":"2026-07-05T14:39:56.977Z"} {"cache_key":"b83a08557f604af51d1d904a15fd37755f3e3f311e32b5dff3c7218cfd75183d","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.goal","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Goal","text_hash":"cdbf6975e8a35b0d03558be6822dfae166482c24fb86b0433f60e8167f5c91e4","tgt_lang":"ar","translated":"الهدف","updated_at":"2026-05-29T21:01:05.553Z"} {"cache_key":"b84ec53f5ac3ff7d7992501ca91dd2ea49ea440be2bf3eacd63dfc8bc20675eb","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loadingMore","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Loading…","text_hash":"ba3bbbe10d8bef66441c88536ce7b8e724e2829b59a3da658654f4961cd61ae5","tgt_lang":"ar","translated":"جارٍ التحميل…","updated_at":"2026-07-09T10:01:43.759Z"} +{"cache_key":"b8b8fb0fde2fdce3dbdf7e6bb50c5e87d42ec15c1587173410f87a1d9f053ae3","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"ar","translated":"حد {hours} ساعات","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"b8c8602198735a6229accf0602a034fc082a9c521983621ff212ff34ef34487c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.actions","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Workspace file actions","text_hash":"461817d921bc7672e95fe4a3b23f4ac2a4a20e35b3d6eef3f02e8f5ba4201050","tgt_lang":"ar","translated":"إجراءات ملفات مساحة العمل","updated_at":"2026-06-16T14:15:41.761Z"} {"cache_key":"b9b9312d679a7b0cfd1daed768c7de7e30d2a156e4604f75882527358d68bf82","model":"gpt-5.5","provider":"openai","segment_id":"nav.settingsGeneral","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"General","text_hash":"c910d474dcd724bff83ddedeb06bf1eceaf9fb3af7c76bb282be057f36e6dffa","tgt_lang":"ar","translated":"عام","updated_at":"2026-07-09T08:08:00.664Z"} {"cache_key":"b9c5c94dbaa634dbac503e381770ca3cb89587a3a3c0e8026d8515166ab4289e","model":"gpt-5","provider":"openai","segment_id":"codexSessions.eyebrow","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Codex fleet","text_hash":"64e0510e4f9e07ad1283b7c1d55e67b5b853081b6ca4013fc8d710aa658d5127","tgt_lang":"ar","translated":"أسطول Codex","updated_at":"2026-07-09T10:01:43.759Z"} +{"cache_key":"bab8f18cf29be0058967434cda9793006b5739d22282d47f9ac34e9a936205f2","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"ar","translated":"أرصدة الاستخدام","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"bb70868b0cc71bb35afbe7aa2ee6f6ccf7b7e5a0501350b5ceb427724b5dff8e","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByDate","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Date","text_hash":"99c40ab405926cb5ad1def9cff4d7ce624f8f8abfff4e85f655347fcb949d08e","tgt_lang":"ar","translated":"التاريخ","updated_at":"2026-07-05T14:39:56.977Z"} {"cache_key":"bcdc18bc7ba90848e3221dc5b890aefb28aeecb4bbc9e40d7fbc1bd313b02523","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.title","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Managed Worktrees","text_hash":"dde32010185098a47e873fb25dd99446b0cb1a75614068587f7cd0bffb5aed18","tgt_lang":"ar","translated":"مساحات العمل المُدارة","updated_at":"2026-07-05T21:01:06.223Z"} {"cache_key":"bce073f362e6f3bcf6e9ab20df099ef3158f516f51d81b56e61df5a72e6206b4","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewStale","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Stale","text_hash":"40c9e59c5e152b0ae9affc84d8461c29b75a7709e4506307eeedf246b526014e","tgt_lang":"ar","translated":"قديم","updated_at":"2026-06-17T14:14:58.728Z"} @@ -220,6 +226,7 @@ {"cache_key":"cd8eaebe82bca366a33579ca710ac5697ad6e9d443f6b88151aed6d76eaf572e","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.openExternal","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Open in Default Browser","text_hash":"fc4fd2b1f38c03d1a8bffe8ad5baf4d19e414bc2f0b8c319b3990d513de2aa05","tgt_lang":"ar","translated":"فتح في المتصفح الافتراضي","updated_at":"2026-07-09T11:02:53.077Z"} {"cache_key":"cdbbd4457bcc9e07450a6d7e0d7e3ad6957776bb7a2b3ba4623d522dd556523e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthFailedAttempts","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"failed attempts","text_hash":"fd9023af0795825a458100ddbe894a7a8f603324a2b7ad2305d4c9d2334cbd26","tgt_lang":"ar","translated":"محاولات فاشلة","updated_at":"2026-06-17T14:15:04.326Z"} {"cache_key":"ce4f953ca30562add25d39724fbd5b7265cff565e2f1919602bbcf28c4cb2c7f","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthBlocked","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"blocked","text_hash":"6973dddd3ef9cb6a2932702f31777faad9c9bf3124d147a84f31aadb6d139546","tgt_lang":"ar","translated":"محظور","updated_at":"2026-06-17T14:15:04.326Z"} +{"cache_key":"d0a595e1edec376075e2b2c00d0b406b5d5ea2d8ddb0ce6eb5c4ea8ea0595a2f","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"ar","translated":"{used} من {limit}","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"d16acabba16394e70e0cf025699227a9d237b67aaee2d60af30b738af02be8b3","model":"gpt-5","provider":"openai","segment_id":"codexSessions.title","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Sessions across your computers","text_hash":"23b30c777a12daeb3e5471cd51530189b621db9fdec4e6ea976e5a97516fac22","tgt_lang":"ar","translated":"الجلسات على جميع أجهزتك","updated_at":"2026-07-09T10:01:43.759Z"} {"cache_key":"d1c88b87eb9d246da3b4bd8b72ab2f2c953a8354fd17b57343ca057d076d93d5","model":"gpt-5.5","provider":"openai","segment_id":"chat.toolCards.toolError","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Tool error","text_hash":"a6c64c286a8795034ac5030b74633d3b476b5375e094485698b982879b0bb617","tgt_lang":"ar","translated":"خطأ في الأداة","updated_at":"2026-05-31T06:43:57.803Z"} {"cache_key":"d3f65bc2f28d2a47a2803589105f2532f2fecd3041a92822a0450147c672c170","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.dependenciesBlockedTitle","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Waiting on dependencies: {parents}.","text_hash":"50fb8f9b1326b69bd67d25583ddb4f70b9d75ae6e3ff8a9056a9361daa4b7d8b","tgt_lang":"ar","translated":"في انتظار التبعيات: {parents}.","updated_at":"2026-06-16T14:15:34.787Z"} @@ -237,6 +244,7 @@ {"cache_key":"dd91daeca04bb82d249aa3c4e37d428abea62442b176b84e6e38e38fce450cc4","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChat","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Use current chat","text_hash":"fbc1ffd63daa506e927c7a85f6e43acd11e0b8c9f52a3951fc782b236ce9a787","tgt_lang":"ar","translated":"استخدام المحادثة الحالية","updated_at":"2026-06-16T14:15:27.039Z"} {"cache_key":"dd91de2fa327547c02aa43bd3b4c2d75146d09cc6e1abce547b01b1cc9ed618b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.read","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Read","text_hash":"9b9a8d05a7ec353bda84f9c1bb3178c299de3001b5e970508ddc889c487f92ca","tgt_lang":"ar","translated":"تمت القراءة","updated_at":"2026-06-16T14:15:41.761Z"} {"cache_key":"ddb169dfbfdcf91ad52b810c9e72d18dae6e2e7444b3f676a3254cd01dde0161","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.browserCount","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{count} shown","text_hash":"e57b4adfe868fd74a183650103d820176d4960bd0bdb677d9985db09f9752867","tgt_lang":"ar","translated":"{count} معروضة","updated_at":"2026-06-16T14:15:41.761Z"} +{"cache_key":"dfd14bbfa82b66d62ce789a464bcac2e67ce94cb5608d6f9d12295bb5414c942","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"ar","translated":"تتم إعادة التعيين {time}","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"e23352876d234513223dd70fcd8f259938027b9a17c307142be450528006f6fe","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.files","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Workspace","text_hash":"87bb59ba2f92f2a5a9f13e021fd58dd14ae5c065b1046146875e6e68d5ebc8b7","tgt_lang":"ar","translated":"مساحة العمل","updated_at":"2026-06-16T14:15:34.787Z"} {"cache_key":"e2b798d7bec27d887656b055ab8643d959d1f5201d9aa70ead44f9f0450a442b","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.pinned","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Pinned","text_hash":"f20c879465551f0d1457a13d4390d0f1ece456b115d75463169c5d55341b9b1e","tgt_lang":"ar","translated":"مثبّتة","updated_at":"2026-07-02T14:30:22.961Z"} {"cache_key":"e3470e18bb46c41816c59f479ddf89b0cf0f27e8e7537347d052c34f1358cf14","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.contextUsage","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{percent}% of context used ({used} / {context} tokens)","text_hash":"f626ed78b8aca81f039ef64637bbdd4cffe0a289b402fd0c6039e977040aba72","tgt_lang":"ar","translated":"تم استخدام {percent}% من السياق ({used} / {context} رموز)","updated_at":"2026-07-09T07:06:24.564Z"} @@ -278,4 +286,5 @@ {"cache_key":"fbbebeaeb00675160d3e6b43b349ca1b0348f60d6ae9d6af656971a6a55a950e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailRun","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Run","text_hash":"00d60e31a4e6b8344d4201f25a6a7dee770713107f6d097abb01559d32b17f26","tgt_lang":"ar","translated":"تشغيل","updated_at":"2026-06-16T14:15:27.039Z"} {"cache_key":"fd62fbf939e7fcff810d10222fa51cf501598d19c82bb8028a3923f3a2220557","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.ageHours","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"{count}h","text_hash":"5828ef1c1e95e0bae1c98548d1795a2482cc8e14a8b161b183960a06018ce10d","tgt_lang":"ar","translated":"{count} س","updated_at":"2026-06-17T14:15:04.326Z"} {"cache_key":"fea1ecd677ce74afaa252fe48f1cf0808ae7d7b74fb139cdf0a690e020503927","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.subtitle","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Isolated repository checkouts owned by OpenClaw.","text_hash":"6a3984ca864c9188fa8c05e732f6831b501b4caed6bd61b60e48e9b0cf74bd0c","tgt_lang":"ar","translated":"نسخ مستودعات معزولة مملوكة لـ OpenClaw.","updated_at":"2026-07-05T21:01:06.223Z"} +{"cache_key":"ff61993016d180fd76c563cc1c99c68e824a81fec3d4e0a58badff530dad1771","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"ar","translated":"حد 5 ساعات","updated_at":"2026-07-09T11:49:31.150Z"} {"cache_key":"ffd3b3070e0971009df2808f9393e0e51e488f06d7581cd8709c40486de8d9eb","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.moveToGroup","source_path":"ui/src/i18n/locales/ar.ts","src_lang":"en","text":"Move session to a group","text_hash":"7db4b663aebb86158b454c49ad05115941c0411cb8ed6182bdc8fd5840f32dff","tgt_lang":"ar","translated":"نقل الجلسة إلى مجموعة","updated_at":"2026-07-05T14:39:56.977Z"} diff --git a/ui/src/i18n/.i18n/de.meta.json b/ui/src/i18n/.i18n/de.meta.json index 542754599b1..e7e6125758a 100644 --- a/ui/src/i18n/.i18n/de.meta.json +++ b/ui/src/i18n/.i18n/de.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:23.475Z", + "generatedAt": "2026-07-09T14:24:53.700Z", "locale": "de", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/es.meta.json b/ui/src/i18n/.i18n/es.meta.json index 0651bd2d472..26cdae73378 100644 --- a/ui/src/i18n/.i18n/es.meta.json +++ b/ui/src/i18n/.i18n/es.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:25.405Z", + "generatedAt": "2026-07-09T14:24:53.809Z", "locale": "es", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/fa.meta.json b/ui/src/i18n/.i18n/fa.meta.json index 978169c6d11..e0b9b175d8e 100644 --- a/ui/src/i18n/.i18n/fa.meta.json +++ b/ui/src/i18n/.i18n/fa.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:46.793Z", + "generatedAt": "2026-07-09T14:24:55.313Z", "locale": "fa", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/fr.meta.json b/ui/src/i18n/.i18n/fr.meta.json index 067b0df0de7..42159b2288c 100644 --- a/ui/src/i18n/.i18n/fr.meta.json +++ b/ui/src/i18n/.i18n/fr.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:31.315Z", + "generatedAt": "2026-07-09T14:24:54.130Z", "locale": "fr", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/fr.tm.jsonl b/ui/src/i18n/.i18n/fr.tm.jsonl index ce545883b31..14b51520a7d 100644 --- a/ui/src/i18n/.i18n/fr.tm.jsonl +++ b/ui/src/i18n/.i18n/fr.tm.jsonl @@ -20,6 +20,7 @@ {"cache_key":"127526bce2459285625f3d800371e550e4d1d76f82d98c4b50a42eb9584a4d0c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.refresh","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Refresh session workspace","text_hash":"c7a97b20a3a3ce348239c4893c99f1902d44877567cb32f752c30cdfbc9a2468","tgt_lang":"fr","translated":"Actualiser l'espace de travail de session","updated_at":"2026-06-16T14:14:33.243Z"} {"cache_key":"145f6ee918a43d1b18f1b804a46bcd53be629bf767c419bfa9d024df0078444a","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.status.failed","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Failed","text_hash":"031a8f0f659df890dfd53c92e45295b0f14c997185bae46e168831e403b273f7","tgt_lang":"fr","translated":"Échoué","updated_at":"2026-07-06T08:42:32.187Z"} {"cache_key":"16a93b1f00240d80d35b21351370279d6a3cf9c2a9df7129db4681c9d706e094","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.empty","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"No managed worktrees.","text_hash":"67f97698da5ed0bb1cc4cadd157e403c0fcd22fc4735d8f39bcf27ea6dd612c8","tgt_lang":"fr","translated":"Aucun worktree géré.","updated_at":"2026-07-05T21:00:55.929Z"} +{"cache_key":"16d4f32494008e2155d74568455778ced1700a1c62ac15dd3f2f314ea5cec066","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"fr","translated":"Crédits d’utilisation","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"178ac4dbab2ab70c12baccaba1e29af30254c564ca9c6ac42e589bea89e88ac2","model":"gpt-5","provider":"openai","segment_id":"codexSessions.scopeLabel","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Session archive filter","text_hash":"9b7ab0c41b678c43f34c5e4d5b27428141588466c5d14b68bd19bcc93d7b6c38","tgt_lang":"fr","translated":"Filtre d’archivage des sessions","updated_at":"2026-07-09T10:01:43.739Z"} {"cache_key":"193a027d27061ee7de015b356ae38b8e2b41f3d1b6c6c25b62bcf92b835cca1e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationTenant","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Tenant: {tenant}","text_hash":"e896dc96a6847d7aaa593069e890e7a712fd60d7be60280ee24e1942e10411b0","tgt_lang":"fr","translated":"Locataire : {tenant}","updated_at":"2026-06-16T14:14:26.985Z"} {"cache_key":"19a2dfca17792e57db3d8190d8446902ff7f995966691a370b575e79d84ac0f6","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailNotePlaceholder","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Add a decision, blocker, or proof note...","text_hash":"0e40ea8371be2fcbd8379458b0da541ca0dce5dc86357dea64a4d8fac1c742dc","tgt_lang":"fr","translated":"Ajouter une décision, un blocage ou une note de preuve...","updated_at":"2026-06-16T14:14:33.243Z"} @@ -40,6 +41,7 @@ {"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":"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":"2d02eda4cb1b2cf09f9d6fcd1f3071cb2fba7dd198185cb50b47c72e994096c6","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summary.hosts","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"hosts","text_hash":"4f8a2cc398d8664277a96a7843ab4958ab1d0a347cbe7c071fde0fcb58230793","tgt_lang":"fr","translated":"hôtes","updated_at":"2026-07-09T10:01:43.739Z"} +{"cache_key":"2d664c38a84db160608b83c689aa2128735a6b849459831f057675cf6f40c46b","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"fr","translated":"Limite de {hours} heures","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"2f5c0d4d98314b8109548a8930ca5a33f1fe4524fdb3732d3a0926367d414e0e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivityMedium","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Medium","text_hash":"8e588cd187741f1cd76f5fab77b7208782a8c21d764ce7d7a4cf3ac4e0968873","tgt_lang":"fr","translated":"Moyenne","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"2f7fb7335938fd29ef05e0ceb033a1a748e2d86d6c9937fb5f3200cf5d6bfc74","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.dropSplit","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Split","text_hash":"32afaa784333648025e24b162bece7474051bcaaa29e98e19922b400b4ceb04b","tgt_lang":"fr","translated":"Scinder","updated_at":"2026-07-06T22:56:24.145Z"} {"cache_key":"3191d7697e74cdb24a5cc32e85babed792d8d28fcf41a3752e7bcba4e9b082c3","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.contextUsageApprox","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"~{percent}% of context used ({used} / {context} tokens, approximate)","text_hash":"54007077673048ad26ff220971d2598fde53a34c33da9e1eaca0927ce80b2708","tgt_lang":"fr","translated":"~{percent} % du contexte utilisé ({used} / {context} tokens, approximatif)","updated_at":"2026-07-09T07:40:36.986Z"} @@ -51,6 +53,7 @@ {"cache_key":"3649ba8a2871d126143be5a4e1ac1f92245d45218aeed48e2a2ffacfafd18214","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loading","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Loading Codex sessions…","text_hash":"18a71c76786db89f928536e164096422e68e86db86fa3684bc3644f36df70300","tgt_lang":"fr","translated":"Chargement des sessions Codex…","updated_at":"2026-07-09T10:01:43.739Z"} {"cache_key":"36516569da22cb699e4e4cf9c2bcc57ef4ecd897559292191e79b6b5f23c4f51","model":"gpt-5","provider":"openai","segment_id":"codexSessions.subtitle","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"A read-only view of Codex sessions on this gateway and every connected computer that shares them.","text_hash":"ea7ea85488243bacdbe28edb2fba0617ec90ebcf587f8ecce6f62858ca85aed4","tgt_lang":"fr","translated":"Vue en lecture seule des sessions Codex sur ce Gateway et chaque ordinateur connecté qui les partage.","updated_at":"2026-07-09T10:01:43.739Z"} {"cache_key":"366d97e5504f39bb1cb1e1fa656024a34801377ef5fa7356b07b80cd48f480b7","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.summary","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Session context usage: {used} of {limit} ({pct}%)","text_hash":"a62b97af0e5d02b8722725e2be0a936dd3d317a1f506ea15c766e87413b66a0d","tgt_lang":"fr","translated":"Utilisation du contexte de session : {used} sur {limit} ({pct} %)","updated_at":"2026-07-05T10:16:09.189Z"} +{"cache_key":"38901d2baac04e7856a6d2e79c3cbe22fa97b1d281595ea4b15d85d604285bee","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"fr","translated":"Ouvrir le tableau de bord d’utilisation","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"3a1b658e2766ee33c4a8154d7d81cc7fcaefff6a4118e2e08ce5d29f41434b66","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.restoreSession","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Restore session","text_hash":"35e4dc9befd3b3a29b50938839af0efb41b08051988dde53e1c1e73d1c2a039f","tgt_lang":"fr","translated":"Restaurer la session","updated_at":"2026-07-02T14:30:13.470Z"} {"cache_key":"3b48c583025003c0cb0d4c3cf5855b3e8b958dc256f51b97d55fe50d4f377679","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.openExternal","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Open in Default Browser","text_hash":"fc4fd2b1f38c03d1a8bffe8ad5baf4d19e414bc2f0b8c319b3990d513de2aa05","tgt_lang":"fr","translated":"Ouvrir dans le navigateur par défaut","updated_at":"2026-07-09T11:02:48.820Z"} {"cache_key":"3bc46432de64f9d82a3e78b6cbc8170448add64ef00783823c1f0266d24ad3b8","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterConfiguredDefaultHelp","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Cards explicitly assigned to the configured default agent.","text_hash":"9bb80530da1dfd473936d94642b83cc668b7362cb65675a565f17569937af92f","tgt_lang":"fr","translated":"Cartes explicitement assignées à l'agent par défaut configuré.","updated_at":"2026-06-17T14:14:32.183Z"} @@ -66,6 +69,7 @@ {"cache_key":"4348d8b8b481e750f43855decc77578211c8b11edff0aab7474256f612664206","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.runtime.subagent","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Subagent","text_hash":"d6cb4188b8fa57aae3e4ca3a1210c9afe7ca995375c2fb36d90a1fa73529a44e","tgt_lang":"fr","translated":"Sous-agent","updated_at":"2026-07-06T08:42:32.187Z"} {"cache_key":"445667ee63b3998cda03cc9f148048d488fa2a70a04e052be534e751f9b86cc3","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.openInline","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Open in Sidebar","text_hash":"ee39dc2999ce3acefff3c4c5440266e6a044feb3fb0a405a754f3ee4f697b201","tgt_lang":"fr","translated":"Ouvrir dans la barre latérale","updated_at":"2026-07-09T11:02:48.820Z"} {"cache_key":"44af3c13b3d3654d758b55ff2be9d8ad98ef796691eaab42a796a2434baa2c7d","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByDate","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Date","text_hash":"99c40ab405926cb5ad1def9cff4d7ce624f8f8abfff4e85f655347fcb949d08e","tgt_lang":"fr","translated":"Date","updated_at":"2026-07-05T14:39:49.624Z"} +{"cache_key":"45a8d7c9e418e635734022b7e862febd2111b66de5bc2a44a5a4063b66691e50","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"fr","translated":"Hebdomadaire · tous les modèles","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"45f77c4535f74f1e1b676ac2ecc391404f91a9c8b4c84ffc37d34273717001c8","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.emptyFilteredHint","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Change the view, search, priority, agent, or archive filter.","text_hash":"049dfae940263ace9707334af06b298c1223c38a449b1cec5a712553badebbd0","tgt_lang":"fr","translated":"Modifiez la vue, la recherche, la priorité, l'agent ou le filtre d'archive.","updated_at":"2026-06-17T14:14:37.466Z"} {"cache_key":"4667b37b6fd6426af22fc905b46caad8f5b3f36ea33cf521c3e3ea151c9e0aeb","model":"gpt-5.5","provider":"openai","segment_id":"workboard.eventProtocolViolation","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Protocol violation","text_hash":"367bb2052963f7d75beb672d3ca0430d7d49ac48a2759d578c7df933178fe564","tgt_lang":"fr","translated":"Violation du protocole","updated_at":"2026-05-30T15:38:23.998Z"} {"cache_key":"466df8deac3e9fc53aad06b96fa1049818b2b4800029e9a7cd875c36b1157d30","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.emptyRecent","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"No recent completed tasks.","text_hash":"71aceaf6accb5308950898b4d2fd7d938fd190cc7cf6314f000466577ed8de24","tgt_lang":"fr","translated":"Aucune tâche terminée récemment.","updated_at":"2026-07-06T08:42:28.842Z"} @@ -117,6 +121,7 @@ {"cache_key":"6b3b656273d0f13e29ae1e0286cf8c5cba6662e46f6657d1108bb9230565cc7c","model":"gpt-5.5","provider":"openai","segment_id":"workboard.dispatch","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Nudge dispatcher","text_hash":"c3d20147447cc75f5e1e8cc895af0bc287a4a720372aec4795c5dfbfa9eeda67","tgt_lang":"fr","translated":"Relancer le répartiteur","updated_at":"2026-05-30T15:38:23.998Z"} {"cache_key":"6b5bc1b76cbb911552e1681c93aa43d7a30e0a9e0740ccbcffdf834a6fb51f73","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.openSession","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Open session","text_hash":"b205bb47f81a30968789eac28cefb848c4b849245d4d12f9311557c5f56ce770","tgt_lang":"fr","translated":"Ouvrir la session","updated_at":"2026-07-06T08:42:28.842Z"} {"cache_key":"6d131d2dce8bc8e9af357b9a64e8ec6fe700330113b8c99025101e2655f63607","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivityHigh","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"High","text_hash":"c4ebc6d4a5832cd9415f906ad03661110c705a72381c8b8b145761d02e2dd23a","tgt_lang":"fr","translated":"Élevée","updated_at":"2026-07-06T20:20:02.809Z"} +{"cache_key":"6d6454acd26ce0d2128b3b1d12ad85272a493ae9adf2e84709d8367506f70dca","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"fr","translated":"Réinitialisation {time}","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"6e9380a5fd9b07dc3d5af81793bd2f092f48aef97daad895270663e0e70a683d","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.archived","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Archived","text_hash":"bdb86505f8062d15f152cef71dd4ca89609d5bf8e98771dcd2c9f70d247403da","tgt_lang":"fr","translated":"Archivée","updated_at":"2026-07-09T10:01:43.739Z"} {"cache_key":"6ee4700695cb437e9ca635a8d61793548a701d4755daf6a71484698aa6533063","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.copyPath","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Copy path","text_hash":"720ff4160412b943370afdb8fc1c082ff057d54713d5fb4b4b7a9634bfabf5fe","tgt_lang":"fr","translated":"Copier le chemin","updated_at":"2026-06-16T14:14:40.922Z"} {"cache_key":"6ef2cd73b1ddfdd8b71f51ed60a7b9779cfdf83dc16cdd7bbc7ce8f8eff21759","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.runtime.acp","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"ACP","text_hash":"75ad69d7586c3d7e42c1ac14e80c7938dc0e7413f7f6f867c3be14d5304cc66b","tgt_lang":"fr","translated":"ACP","updated_at":"2026-07-06T08:42:32.187Z"} @@ -161,6 +166,7 @@ {"cache_key":"8fbe3ddaee1855b6f3532db5de8e15561946607e558f67713b5d697ef238891e","model":"gpt-5.5","provider":"openai","segment_id":"subtitles.tasks","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Background tasks: subagents, cron runs, CLI.","text_hash":"86b1cdd143e0bee775431403456aa967dad1c7f0a952e10200c332d8ba382d35","tgt_lang":"fr","translated":"Tâches en arrière-plan : sous-agents, exécutions cron, CLI.","updated_at":"2026-07-06T08:42:28.841Z"} {"cache_key":"907b09795789cf241ab4c1f560071c47dca23b82e4753a7a236f92801226603e","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.pinned","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Pinned","text_hash":"f20c879465551f0d1457a13d4390d0f1ece456b115d75463169c5d55341b9b1e","tgt_lang":"fr","translated":"Épinglée","updated_at":"2026-07-02T14:30:13.470Z"} {"cache_key":"912c845bf86c50b9569c3c3f425d1016695cd0c3897f1d7a178d7b943609248b","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.lastDays","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"{count} days","text_hash":"e9f0a85930cc6fa61b7ac01763893020adc4c712d1b8e8897bdd13971637d529","tgt_lang":"fr","translated":"{count} jours","updated_at":"2026-07-06T06:40:15.357Z"} +{"cache_key":"9244e32437a990b196d898ff7a014d7e789606a235c038141cdd2acd3e5a4ed1","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"fr","translated":"Limite de 5 heures","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"936fb9e00da2a3644614b5804c2efa72fde53cd398cfaea6daeb4f35ea5ac6da","model":"gpt-5","provider":"openai","segment_id":"codexSessions.partial","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Unavailable hosts: {count}. Other hosts remain available.","text_hash":"00ca17db32e78382e78e5877fd167f21e6baf40783b4cf581f34be5ffd1bd05b","tgt_lang":"fr","translated":"Hôtes indisponibles : {count}. Les autres hôtes restent disponibles.","updated_at":"2026-07-09T10:01:43.739Z"} {"cache_key":"95f90b7f222de72dd86b680cc5c17d4c88d2367c3de07c8111930b4cf901bf95","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.cleanNow","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Clean up now","text_hash":"da367b57478fe6da969f5ff3a78717074d7fca77a312ac2c8f77dc2f56032578","tgt_lang":"fr","translated":"Nettoyer maintenant","updated_at":"2026-07-05T21:00:55.929Z"} {"cache_key":"96116292d6f062e3ae27a509224a1119f36a5fc5849ca66bff3f8a2a20f1fa34","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.status.timedOut","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Timed out","text_hash":"9718cc761cfd5810041ef007ae258fa1308b8487d0f30c5f36a442f8fe5f76c5","tgt_lang":"fr","translated":"Expiration du délai","updated_at":"2026-07-06T08:42:32.187Z"} @@ -279,6 +285,7 @@ {"cache_key":"e7ce17017703abfa56accdea7fd8c7cec085be211a621f43e7cebff5f58ea654","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterUnassigned","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Unassigned (uses {agent})","text_hash":"2700af0c4ab5e86726f72a723ecdf50370b87690db35f00b83723d6457879c8e","tgt_lang":"fr","translated":"Non assigné (utilise {agent})","updated_at":"2026-06-17T14:14:32.183Z"} {"cache_key":"e8cc817b71a29e04910077228a6a2062cc9008e42829f503ef7198b9192efd69","model":"gpt-5.5","provider":"openai","segment_id":"subtitles.worktrees","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Isolated agent task checkouts and recovery snapshots.","text_hash":"bc794dc846493e3c5f88964268af19b7dd818eae942c596002ef4067ba5a3d0c","tgt_lang":"fr","translated":"Checkouts de tâches d’agent isolés et instantanés de récupération.","updated_at":"2026-07-05T21:00:55.929Z"} {"cache_key":"ea55fad91205f9fdce8210dea4000210abdc156e2a239dd2924bdf0e15302caa","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCount","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"{count} sessions","text_hash":"27de9b3be346a2abd2cb67f9f93abfe8100d7ce996e1204b75fc84670c7818e6","tgt_lang":"fr","translated":"{count} sessions","updated_at":"2026-07-05T14:39:49.624Z"} +{"cache_key":"eb03dee31268817aa1b689c74d3f10c797851b0c7e9296d541e24ff816c9be61","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"fr","translated":"Utilisation du forfait","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"eb18f6460240e23a168fc9de3dbdb8b9970724916a02c55a09ffda1b21e32eab","model":"gpt-5.5","provider":"openai","segment_id":"connection.lostTitle","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Gateway connection lost","text_hash":"ec6cd265976239ff6fc4f227bb25e8e6286fe38c3d1c64326dcdbb76c28b515e","tgt_lang":"fr","translated":"Connexion au Gateway perdue","updated_at":"2026-07-05T21:55:29.170Z"} {"cache_key":"eb92c189adec9deaf21232cb62bf6a5cd9121a33668346146a30513c4cb82c90","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkDefault","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Default","text_hash":"21b111cbfe6e8fca2d181c43f53ad548b22e38aca955b9824706a504b0a07a2d","tgt_lang":"fr","translated":"Par défaut","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"ebd11af87ca929f7d4411f7b722480a100b3f20d06385aea037839d6523dd608","model":"gpt-5","provider":"openai","segment_id":"codexSessions.scope.archived","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Archived","text_hash":"bdb86505f8062d15f152cef71dd4ca89609d5bf8e98771dcd2c9f70d247403da","tgt_lang":"fr","translated":"Archivées","updated_at":"2026-07-09T10:01:43.739Z"} @@ -297,12 +304,14 @@ {"cache_key":"f42654393355af2fd06a0ecd1454af48e9b41f59a0871b879a97a3cead5f6569","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupMenu","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Group options for {group}","text_hash":"29456bfd0f10cfa1b3b0c005e2202221ff66aafe6b72ee05f7cfc93ce9e79af7","tgt_lang":"fr","translated":"Options du groupe {group}","updated_at":"2026-07-06T23:40:56.800Z"} {"cache_key":"f64768f6c44cbc4669b202bd7e2326d8bdf394673bb741b50a6a7e547a7a4354","model":"claude-opus-4-8","provider":"anthropic","segment_id":"codexSessions.status.unknown","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Unknown","text_hash":"b764cdc0eab7137467211272fa539f1260d1bf2e71bcf6ff3bdc960f5c16aa14","tgt_lang":"fr","translated":"Inconnu","updated_at":"2026-06-16T14:14:33.243Z"} {"cache_key":"f66ed36e8fc5edf56e4c228748a9be1d51b2d4cac0e0a57fd3734517c956c69c","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameSessionPrompt","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Rename session","text_hash":"2cad0766accc2d3f70f007068524cea983e0d53f54543e9e82a4e73b2a07987f","tgt_lang":"fr","translated":"Renommer la session","updated_at":"2026-07-02T14:30:13.470Z"} +{"cache_key":"f76778ded0bc5824cc349859e9cd274784a88e1be021155600a37abc4b0c8d3e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"fr","translated":"{used} sur {limit}","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"f77ad88f824118b4b9c4d2bedd2fde2c6f82962461ee7c45c1ea641d958ca1b1","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailWorkerProtocol","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Worker protocol","text_hash":"e445d823cfa48c4e8fa1d8854771e9939955e772428be6d7957deec0f7968764","tgt_lang":"fr","translated":"Protocole du worker","updated_at":"2026-06-16T14:14:26.985Z"} {"cache_key":"f77f24dd6d1b674d31f32ba4a99d7f3b048128d54ce4f32e8e233027e17ed81f","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateThisWeek","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"This week","text_hash":"8c4eef5ab2532515ef24a662db70f6e5b8063c7f924342b2a463f763f1091634","tgt_lang":"fr","translated":"Cette semaine","updated_at":"2026-07-05T14:39:49.624Z"} {"cache_key":"f7e1debf3b2c92177c1c7427824e020fb2b4ecc68b1154a9a51525bfd68a849e","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortCreated","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Created","text_hash":"d70b9e24bca26b409b9458ceca6c9e5c2b5c3171c37ff050c6f6a0d7a4420d2a","tgt_lang":"fr","translated":"Créé","updated_at":"2026-07-06T15:07:02.499Z"} {"cache_key":"f83ba4dc2057d3bfdccc6094fd5c5c860646b941480b651ead8307dc37f75830","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneBusy","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Microphone inputs are busy or unavailable to the browser.","text_hash":"9f33c30cb2370916f2edd079ad5cabab6a94dd185a89f4f7db357b4f31d1f3dd","tgt_lang":"fr","translated":"Les entrées microphone sont occupées ou indisponibles pour le navigateur.","updated_at":"2026-07-06T17:56:30.924Z"} {"cache_key":"faa7f865d7b3bb036dd703281b2b8efb480fac88b07808dd4ca9a7e02563fd19","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.emptyActive","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"No queued or running tasks.","text_hash":"00db4a453c2e92f4d807847fc0d8d340708ed9ab547280ce376ba1d610bcb5a6","tgt_lang":"fr","translated":"Aucune tâche en file d’attente ou en cours d’exécution.","updated_at":"2026-07-06T08:42:28.842Z"} {"cache_key":"fb6686fd89bfeddf30898c0d757d0d1ddb8f99f0e963caa158bd53ad334abde1","model":"gpt-5","provider":"openai","segment_id":"usage.costWindows.selectedRange","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Selected Range","text_hash":"95917ae71066a19c266cd4530068f4bf775ed2401951ebf37ab0c91daa1a67d3","tgt_lang":"fr","translated":"Période sélectionnée","updated_at":"2026-07-05T20:24:32.108Z"} +{"cache_key":"fc609f266b51d6f0dd8c26007ba694f96d323b98a4ac2c83282a46b2d82c7b94","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"fr","translated":"Limite quotidienne","updated_at":"2026-07-09T11:49:23.923Z"} {"cache_key":"fdf35debad083bccc14e4150ddf0d3ea9d7ab588e70751112546b618fed7d928","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByNone","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"None","text_hash":"dc937b59892604f5a86ac96936cd7ff09e25f18ae6b758e8014a24c7fa039e91","tgt_lang":"fr","translated":"Aucun","updated_at":"2026-07-05T14:39:49.624Z"} {"cache_key":"fe4c7b853a38db3e5948fa65bf5a02558ce5960dfeecf7bedad12fdf808aca18","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.loading","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Loading tasks…","text_hash":"9ae9f7d835d95a2cf1362c130da3a0ebacae4331dbb431e60e1735477591bf7b","tgt_lang":"fr","translated":"Chargement des tâches…","updated_at":"2026-07-06T08:42:28.841Z"} {"cache_key":"feb2150897114b0cd2f0b0df4d5e4b4c1f34daf7966cb4eb60f6fc199d9df5f0","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortUpdated","source_path":"ui/src/i18n/locales/fr.ts","src_lang":"en","text":"Last updated","text_hash":"382ac5f308f76c24b2c981e2041943bc2be2229cbd285ad362b9af1cfc386ef8","tgt_lang":"fr","translated":"Dernière mise à jour","updated_at":"2026-07-06T15:07:02.499Z"} diff --git a/ui/src/i18n/.i18n/hi.meta.json b/ui/src/i18n/.i18n/hi.meta.json index 4e3acd3b6fb..45f99cce23f 100644 --- a/ui/src/i18n/.i18n/hi.meta.json +++ b/ui/src/i18n/.i18n/hi.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:32.997Z", + "generatedAt": "2026-07-09T14:24:54.243Z", "locale": "hi", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/hi.tm.jsonl b/ui/src/i18n/.i18n/hi.tm.jsonl index d9211065aee..a65b6ddae33 100644 --- a/ui/src/i18n/.i18n/hi.tm.jsonl +++ b/ui/src/i18n/.i18n/hi.tm.jsonl @@ -551,6 +551,7 @@ {"cache_key":"51433440cdb9ad26c252d8c670f01d019948cf45ee5555a9ce2b0e4b2c1d0a03","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.cancel","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Cancel","text_hash":"19766ed6ccb2f4a32778eed80d1928d2c87a18d7c275ccb163ec6709d3eb2e27","tgt_lang":"hi","translated":"रद्द करें","updated_at":"2026-06-26T21:38:06.735Z"} {"cache_key":"51c3619014925ccd36cef6ada14f997a52c805c15780e96f073237d8e29e0931","model":"gpt-5.5","provider":"openai","segment_id":"workboard.labelsPlaceholder","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"ui, docs","text_hash":"6530f03703b6ee82d66e67257d117cd8f0a87247ab7f66c631e19f7060dd361b","tgt_lang":"hi","translated":"ui, docs","updated_at":"2026-06-26T21:32:45.360Z"} {"cache_key":"51c5b6207a5309ec23faec1db824f5d078809ed971473f8d37e865c7cb2e1142","model":"gpt-5.5","provider":"openai","segment_id":"overview.snapshot.status","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Status","text_hash":"920e413c7d411b61ef3e8c63b1cb6ad058d5f95f8b481dbafe60248387d8c355","tgt_lang":"hi","translated":"स्थिति","updated_at":"2026-06-26T21:33:15.607Z"} +{"cache_key":"527ce4559b6b8f3a77cb389e75b0340a4289635a90bdb655ca7bba1c6cb210d4","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"hi","translated":"दैनिक सीमा","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"52a277944f3f3d2ac2e6f4951ac65c81421c0a7f6ff4e59c36c0ae11caa0b5d5","model":"gpt-5.5","provider":"openai","segment_id":"languages.pl","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Polski (Polish)","text_hash":"750f08518ed1cc9307a2ae14bc8123a7c8917e2a5da12342287752884db4922a","tgt_lang":"hi","translated":"Polski (Polish)","updated_at":"2026-06-26T21:36:51.337Z"} {"cache_key":"52a832db0ea15295dbb061e0fd4508d5433eec4a804a51472e75591ffbb24ba6","model":"gpt-5.5","provider":"openai","segment_id":"cron.errors.invalidIntervalAmount","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Invalid interval amount.","text_hash":"00547e12dda54278adb10d27e4d77113926832b609b0d0220c4614a4a223d636","tgt_lang":"hi","translated":"अमान्य अंतराल मात्रा।","updated_at":"2026-06-26T21:38:17.792Z"} {"cache_key":"52d02fb3de6e3bd1b2e73d9d9a8b97d3c0b60f4927a3e52142d3c048e1c347e2","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.placeholderWithAttachments","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Add a message or paste more images...","text_hash":"4cabcf4e1e36494c65fee305ac160a293ef89a096a6d78860f063f2da99ad9d0","tgt_lang":"hi","translated":"संदेश जोड़ें या और छवियाँ पेस्ट करें...","updated_at":"2026-06-26T21:36:30.561Z"} @@ -762,6 +763,7 @@ {"cache_key":"7775183369564dd2ee483e6ec59e09161868fd46155fbb35a3cfa96673d5114f","model":"gpt-5.5","provider":"openai","segment_id":"workboard.status.backlog","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Backlog","text_hash":"bf986e9a4f860eb0f3d2def12019dc81c8370e4fdd01940635c2265bae5791d0","tgt_lang":"hi","translated":"बैकलॉग","updated_at":"2026-06-26T21:31:58.515Z"} {"cache_key":"77836a509622c31a7b04e750ab96c184403b5f161968b113d592c84417c9781d","model":"gpt-5.5","provider":"openai","segment_id":"debug.health","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Health","text_hash":"55898449eb74fb2e348d13e5a5d84ab019bb87ea92687b50b3d3302eb409b784","tgt_lang":"hi","translated":"स्वास्थ्य","updated_at":"2026-06-26T21:31:05.913Z"} {"cache_key":"77a66a429ed4ad2dd4e73847d1f2afbcb210e6007736b9dbf2365d1eda9916aa","model":"gpt-5.5","provider":"openai","segment_id":"activity.argumentsHidden","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"{count} arguments hidden","text_hash":"b07c2a42573925aefc0b23619e69a34fef45b58350020a985e00a1bd343f7814","tgt_lang":"hi","translated":"{count} आर्ग्युमेंट छिपाए गए","updated_at":"2026-06-26T21:31:52.012Z"} +{"cache_key":"77c84130739d20797fbb724725622231c3b4f8d64b8f844463369fe6cae730e6","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"hi","translated":"{used} में से {limit}","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"77fa2b28ca6c3eeecbd3a40a2f9fd33de35570aa47e313b7c94db9937f5fb3a4","model":"gpt-5.5","provider":"openai","segment_id":"workboard.viewMissingProof","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Missing proof","text_hash":"b46debe888e32eec183dc5936c79d22ea43bec580c410c2b3c1aa24aaa75d677","tgt_lang":"hi","translated":"प्रमाण अनुपलब्ध","updated_at":"2026-06-26T21:32:18.718Z"} {"cache_key":"78004016319acf2228bd1b4354c4d01d0ee6671db3d6c4338b6496da465c433d","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.talkTranscript","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Talk transcript","text_hash":"b3a845b53c03efcdf581409dfe13d383dc387c32451325677a7dcc7d7402d48b","tgt_lang":"hi","translated":"Talk ट्रांसक्रिप्ट","updated_at":"2026-06-26T21:36:30.561Z"} {"cache_key":"78080d60f7c856ea0537ac27e5baeb272ee6d895fcf3dc1b4dd38eed2552570f","model":"gpt-5.5","provider":"openai","segment_id":"agents.context.schedulingSubtitle","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Workspace and scheduling targets.","text_hash":"60be94da29b49754cf5dcb995ada31d5fc2abead604a6f97740eaaf57c184545","tgt_lang":"hi","translated":"वर्कस्पेस और शेड्यूलिंग लक्ष्य।","updated_at":"2026-06-26T21:30:49.011Z"} @@ -819,6 +821,7 @@ {"cache_key":"810e86dee69763fad67b2e056b4f5db1164ea247f6602630aa2fd4a6ddd3e2be","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.everyAmountPlaceholder","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"30","text_hash":"624b60c58c9d8bfb6ff1886c2fd605d2adeb6ea4da576068201b6c6958ce93f4","tgt_lang":"hi","translated":"30","updated_at":"2026-06-26T21:37:38.564Z"} {"cache_key":"822cf47694c55df29f00bf2d80a8695ac00a3f9355f0c6e10f6eb797c930a796","model":"gpt-5.5","provider":"openai","segment_id":"dreaming.advanced.emptyShortTerm","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"No short-term entries to inspect.","text_hash":"2da0eeafc31b59fa5ff2c473c82b4d2589378ff500e4e06d5daad8ce3988a6e9","tgt_lang":"hi","translated":"जांचने के लिए कोई अल्पकालिक प्रविष्टियां नहीं हैं।","updated_at":"2026-06-26T21:34:11.503Z"} {"cache_key":"823062fcea18a66c8ed2203a54652e5f629b423102c85dce4c1cd9e26d250aaa","model":"gpt-5.5","provider":"openai","segment_id":"dreaming.advanced.originDailyLog","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"replayed","text_hash":"ae94da4c1a6fabab4512e07bd7f597adec85b16c801a4b69251f9c4165010495","tgt_lang":"hi","translated":"फिर से चलाया गया","updated_at":"2026-06-26T21:34:03.457Z"} +{"cache_key":"825e2998bfb7246549a18b5a9a87cd027ba1402c615dcc66f447f1094ace50f5","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"hi","translated":"{time} में रीसेट होता है","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"82a4aa903a8755faef3b62cff511e8b0e3936f489a8d6aca7d1d044fc88a3954","model":"gpt-5.5","provider":"openai","segment_id":"usage.common.unknown","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"unknown","text_hash":"b23a6a8439c0dde5515893e7c90c1e3233b8616e634470f20dc4928bcf3609bc","tgt_lang":"hi","translated":"अज्ञात","updated_at":"2026-06-26T21:34:31.303Z"} {"cache_key":"82fd3220fa61f284ead71381e07b2fdfb89a1235db440732d59fe71eacdd5f81","model":"gpt-5.5","provider":"openai","segment_id":"chat.toolCards.toolError","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Tool error","text_hash":"a6c64c286a8795034ac5030b74633d3b476b5375e094485698b982879b0bb617","tgt_lang":"hi","translated":"टूल त्रुटि","updated_at":"2026-06-26T21:36:39.137Z"} {"cache_key":"830aa664a3f5ee60657ab41fc5422f29859b862b0f3a7ec420e4881bc3e794fb","model":"gpt-5.5","provider":"openai","segment_id":"usage.overview.calls","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"calls","text_hash":"f46f5990ebfadcab199107258b9dadd8711bd7946d8d00091a1073effcf2a843","tgt_lang":"hi","translated":"कॉल","updated_at":"2026-06-26T21:35:07.144Z"} @@ -1038,6 +1041,7 @@ {"cache_key":"a2f53ed0d112e7a1cda4fd4bb669c55608ac80cd83a1665d7a522e8ace9e857d","model":"gpt-5.5","provider":"openai","segment_id":"overview.access.token","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Gateway Token","text_hash":"45941f516017d194e44801df82d8da6599b9b069c0ba6b0b67e9bd6524f999ca","tgt_lang":"hi","translated":"Gateway Token","updated_at":"2026-06-26T21:33:07.229Z"} {"cache_key":"a32fb7008a32e36533f8e0664b52aa57bbcd095647374d09688d60cdc8b25cc6","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.selectSession","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Select session","text_hash":"803814693885dfb92ec8373f4c02f31015541e0e97e437287cdd0db681e0dae6","tgt_lang":"hi","translated":"सेशन चुनें","updated_at":"2026-06-26T21:30:15.460Z"} {"cache_key":"a36750b397d7ca3e4c6538f7f293cb8a4095adb4001b2fe7cff0ab17f94fc8cf","model":"gpt-5.5","provider":"openai","segment_id":"nodes.binding.execNodeBindingSubtitle","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Pin agents to a specific node when using exec host=node.","text_hash":"62b94f448115db671d89cd6cbb1649576ab8435e99aabee84d4bf32e7882f65e","tgt_lang":"hi","translated":"exec host=node का उपयोग करते समय एजेंटों को किसी विशिष्ट नोड पर पिन करें।","updated_at":"2026-06-26T21:29:59.416Z"} +{"cache_key":"a3a0e075c5296df3024ebbf0135b5a2066cabc9120bfeb5fa1ab0fdaf289b4bd","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"hi","translated":"5-घंटे की सीमा","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"a3aaf57502cb737e6c0966fa7f5e6f050814f836adbf6cb3f9f1dbe6b81a93ee","model":"gpt-5.5","provider":"openai","segment_id":"overview.stats.sessionsHint","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Recent session keys tracked by the gateway.","text_hash":"83bd33680a568558e87978e9a13fac268dab203e5fc21ec61ecc04ee3b1c1fb5","tgt_lang":"hi","translated":"गेटवे द्वारा ट्रैक की गई हाल की सत्र कुंजियाँ.","updated_at":"2026-06-26T21:33:15.607Z"} {"cache_key":"a49615147421586fde602ed7a6d38af7d9d1f383554c1ec9a642a67d22697698","model":"gpt-5.5","provider":"openai","segment_id":"usage.cacheStatus.status.refreshing","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"refreshing","text_hash":"0b61ac5d9426518ad7908a62037255c6881f9a5fa404ef3b99c24baa2111a174","tgt_lang":"hi","translated":"रीफ़्रेश हो रहा है","updated_at":"2026-06-26T21:34:43.709Z"} {"cache_key":"a499cbb14cc64a92c85c56f3fe21c0458798fcf5d41c72ddfa191d928971b46e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePageInactive","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Microphone inputs are unavailable while this page is inactive.","text_hash":"775110f07819e48dc96203ed710c4df3546892e5672d7c469dedeb1e0e163882","tgt_lang":"hi","translated":"इस पेज के निष्क्रिय होने पर माइक्रोफ़ोन इनपुट उपलब्ध नहीं होते।","updated_at":"2026-07-06T17:56:41.735Z"} @@ -1145,6 +1149,7 @@ {"cache_key":"b43ceb970083b0af596dbef5c9d24278ea8f3c6cfb452bd8dec598a45c3bad2d","model":"gpt-5.5","provider":"openai","segment_id":"chat.updateNow","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Update now","text_hash":"63bf045213cebbafc438a7a79e633015cbd047b8864eb2f9dffc45b641607048","tgt_lang":"hi","translated":"अभी अपडेट करें","updated_at":"2026-06-26T21:36:23.330Z"} {"cache_key":"b48e94614620af867810a9b2024f8d8d3b85b19b0d9ab1220df7e6110c8cdba6","model":"gpt-5.5","provider":"openai","segment_id":"workboard.emptyFilteredTitle","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"No cards match this view","text_hash":"a272617e183ba1dff3f7f140d0851b64baf95f4827ff729d23dfeb05c2069875","tgt_lang":"hi","translated":"इस दृश्य से मेल खाने वाले कोई कार्ड नहीं हैं","updated_at":"2026-06-26T21:32:52.647Z"} {"cache_key":"b4bf7473b43c9cf3d33bcb61da5a72b3f1f274128ab7efbde6e7e391a51088f6","model":"gpt-5.5","provider":"openai","segment_id":"chat.updating","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Updating…","text_hash":"dfe40efe921fe88e332575a3516f4e8cd6bbb71437cf260b2bb9b947c65d1484","tgt_lang":"hi","translated":"अपडेट हो रहा है…","updated_at":"2026-06-26T21:36:23.330Z"} +{"cache_key":"b4ed08178fb990bc5cd59191943f9b8414b34cb6764274caa132175572b45d85","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"hi","translated":"साप्ताहिक · सभी मॉडल","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"b524d7485cfb4a29ea8e118177cabc46ffd21f54ba29c8fe1cd8d100441c3094","model":"gpt-5.5","provider":"openai","segment_id":"quickSettings.security.toolProfile","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Tool profile","text_hash":"7fddfc798851c46789ef9d249867eb179988e4ec4b48205b0e8871a92e5715ce","tgt_lang":"hi","translated":"टूल प्रोफ़ाइल","updated_at":"2026-06-26T21:31:12.170Z"} {"cache_key":"b5448590d098039bec6067c5cb105314349b2ac8d7107de8300a818c3353ef07","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.createSubtitle","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Create a scheduled wakeup or agent run.","text_hash":"63ed10abfd41f9a26d9630dfb564122e33a033a0abcee985c0c935076fa0e269","tgt_lang":"hi","translated":"एक शेड्यूल किया गया वेकअप या एजेंट रन बनाएँ।","updated_at":"2026-06-26T21:37:31.894Z"} {"cache_key":"b5549aca013edb55a73e8b2a7d41dad1ec58af849dcb660ff91acb597159e062","model":"gpt-5.5","provider":"openai","segment_id":"skillWorkshop.header.useCurrentChat","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Use current chat","text_hash":"fbc1ffd63daa506e927c7a85f6e43acd11e0b8c9f52a3951fc782b236ce9a787","tgt_lang":"hi","translated":"वर्तमान चैट का उपयोग करें","updated_at":"2026-06-26T21:31:44.582Z"} @@ -1266,6 +1271,7 @@ {"cache_key":"c8396176ebd202a64074cfdb23df9f09601ca5797f3b7718ac8a4fa370bf7d22","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.timezonePlaceholder","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"America/Los_Angeles","text_hash":"2d4bbedff807854084b7855fd6e0d49ab55b41e8c9395debd40d0e8e1d3390cf","tgt_lang":"hi","translated":"America/Los_Angeles","updated_at":"2026-06-26T21:37:38.564Z"} {"cache_key":"c851ee8e6f2c15ef1105534633ddb23f5d36b6c365e75f61cbe3cf6e67e8907e","model":"gpt-5.5","provider":"openai","segment_id":"agents.tabs.overview","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Overview","text_hash":"d4b1ea5708dd532930a85188b45aff6f0a3ed458500c7577e0127a538eb0d100","tgt_lang":"hi","translated":"ओवरव्यू","updated_at":"2026-06-26T21:30:41.032Z"} {"cache_key":"c86d6b043d9fb24a8dc7e328442e0e43adbd9fa6a958885064f77496a878e40a","model":"gpt-5.5","provider":"openai","segment_id":"workboard.taskStatus.failed","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Task failed","text_hash":"973420f51104f963609506a64b51b704ba83c43effbc68cdaeb52ef2928cf5ff","tgt_lang":"hi","translated":"कार्य विफल","updated_at":"2026-06-26T21:32:52.647Z"} +{"cache_key":"c88bfe613ae98e3e2b6ab4baa4ebe47a0899a1b8a12f4a081d6eb3c9cdaec355","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"hi","translated":"{hours}-घंटे की सीमा","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"c8911f329b9b2052aebaea320995deb23b4a04856414b33d9fa5a9ee3ed52ead","model":"gpt-5.5","provider":"openai","segment_id":"usage.metrics.sessions","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"sessions","text_hash":"1225ae6c1ae69dcb4ee4781b703e12206f3b549cd3ca151070a8d8d8f371dd71","tgt_lang":"hi","translated":"सेशन","updated_at":"2026-06-26T21:34:31.303Z"} {"cache_key":"c8922f33bbe32c460504d2fa947bf4907501957e6a095f1d6c4e2c7dd0cebb3c","model":"gpt-5.5","provider":"openai","segment_id":"usage.breakdown.costByType","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Cost by Type","text_hash":"191407927e3b9ed0accd8cc9d2b8952704dfd9a8cc6edfe8c04a722e146fe612","tgt_lang":"hi","translated":"प्रकार के अनुसार लागत","updated_at":"2026-06-26T21:34:59.501Z"} {"cache_key":"c8cf6e21e48d287c4e0fe369249b3df9e454b4b02fb0c1e20b5f7f4794b87890","model":"gpt-5","provider":"openai","segment_id":"usage.costWindows.lastDays","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Last {count} days","text_hash":"4aa456a0fa9b73dcc14766740b19fc52c452950ccb7bc892499c3c29a4122162","tgt_lang":"hi","translated":"पिछले {count} दिन","updated_at":"2026-07-05T20:24:32.108Z"} @@ -1329,6 +1335,7 @@ {"cache_key":"d0bc85545364b5bda44d3a460089045e90e3e8db49c90117d204d390bfdeddb0","model":"gpt-5.5","provider":"openai","segment_id":"debug.manualRpcSubtitle","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Send a raw gateway method with JSON params.","text_hash":"21ff33425efbda80bc90ede3a293768d63220ac7937401575b1e0e5e00861685","tgt_lang":"hi","translated":"JSON पैराम्स के साथ एक raw gateway method भेजें।","updated_at":"2026-06-26T21:31:12.170Z"} {"cache_key":"d0d40414e1db2d0d7c5049e041fa87e41a3dbe4e30e6f79dfd0dc2f2dd805ceb","model":"gpt-5.5","provider":"openai","segment_id":"cron.jobList.edit","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Edit","text_hash":"464c4ffd019e1e9691dcf0537c797353ef2b1c1d4833d3d463e5b74ae4547344","tgt_lang":"hi","translated":"संपादित करें","updated_at":"2026-06-26T21:38:12.145Z"} {"cache_key":"d16b6ca06361efd2d55288963c612655ec5b84d8c43129a7131fb87ab31aa0a0","model":"gpt-5.5","provider":"openai","segment_id":"overview.cards.modelAuthExpiring","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"{count} expiring","text_hash":"298971eb0ed2f10fc60cc7fbb1a4e8e011952584f223d6edfc3df6b0f4136df5","tgt_lang":"hi","translated":"{count} समाप्त हो रहे हैं","updated_at":"2026-06-26T21:33:40.484Z"} +{"cache_key":"d1761acccede692a5310b50dbcfb27cd68fa085d97ad0048e584c5e14b333564","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"hi","translated":"उपयोग क्रेडिट","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"d18a72c3315677bb23c9deedb4d718dc49ed27048ebc76d89fa70f48000fc8cb","model":"gpt-5.5","provider":"openai","segment_id":"workboard.start","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Start","text_hash":"e4bb9f1ece9af9264a3b9e3913bbdb2cf497457167b14ced5f85688bfde74644","tgt_lang":"hi","translated":"शुरू करें","updated_at":"2026-06-26T21:32:25.929Z"} {"cache_key":"d1c402ec42bfeb782d6ff49a2fe9bdf0c2cdb947821d380a28e4fd39f720a12e","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.branchFromCheckpoint","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Branch from checkpoint","text_hash":"b7f6b6e858bc0c8427ee4f341701811e8f291595c1b95a56b5a3a100827310cd","tgt_lang":"hi","translated":"चेकपॉइंट से ब्रांच बनाएँ","updated_at":"2026-06-26T21:30:33.640Z"} {"cache_key":"d1c678c91c65fa6227f685c46e834698ce0711d9c1c64e047c85b89bf8d7b1ab","model":"gpt-5.5","provider":"openai","segment_id":"login.failure.network.title","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Could not connect","text_hash":"8630b4dd33f22d2f1b078dea49c0066b309f8da78647e0ccf80cfc946cf1a30e","tgt_lang":"hi","translated":"कनेक्ट नहीं हो सका","updated_at":"2026-06-26T21:36:08.721Z"} @@ -1347,6 +1354,7 @@ {"cache_key":"d4aa21fafa6479ae23a45de5d7977cb6cad3fc1e130642f29d4f39f14326cd05","model":"gpt-5.5","provider":"openai","segment_id":"overview.snapshot.uptime","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Uptime","text_hash":"d63ab4711473b0398feb4b56622605d5d2ec7ecd3b1bb5070a7dd56de96aaf88","tgt_lang":"hi","translated":"अपटाइम","updated_at":"2026-06-26T21:33:15.607Z"} {"cache_key":"d4d8a267478896d30c69f36f8511604fe7114c3a987e2b4466efb5cc1d6450d2","model":"gpt-5.5","provider":"openai","segment_id":"cron.jobs.enabled","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Enabled","text_hash":"92c1cdfdf4cb9cf6fcca962f206de36fd5d60db1178bc9461052f8de703a0e06","tgt_lang":"hi","translated":"सक्षम","updated_at":"2026-06-26T21:37:06.965Z"} {"cache_key":"d4dbcf82e4d6d5d005e317d0a0d252d6a7445ec92ce9d7387d3b8e906f55955c","model":"gpt-5.5","provider":"openai","segment_id":"languages.zhTW","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"繁體中文 (Traditional Chinese)","text_hash":"a21d536382a8b56b077e1606933c7e417e5b66cb6333275b7ad3132ae393a2ab","tgt_lang":"hi","translated":"繁體中文 (पारंपरिक चीनी)","updated_at":"2026-06-26T21:36:47.054Z"} +{"cache_key":"d507b06334f048262fa16e1169a22d3b3ddafea8d6ef5d3c96bc64ebcb1a2c51","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"hi","translated":"प्लान उपयोग","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"d50fc0d903b978cd85b89b65c8a160771fda69fa6131141fcaae218c33f55fbf","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneListUnsupported","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"This browser cannot list microphone inputs.","text_hash":"fa99f66cc346509afe8c5e3437ad299409a60be69d8b2b70138d8c42176052d9","tgt_lang":"hi","translated":"यह ब्राउज़र माइक्रोफ़ोन इनपुट की सूची नहीं दिखा सकता।","updated_at":"2026-07-06T17:56:41.735Z"} {"cache_key":"d53def5335593fb9cc3d28bd0cb2c6ac5415d3c421c46109eabe414c493ab550","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortCreated","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Created","text_hash":"d70b9e24bca26b409b9458ceca6c9e5c2b5c3171c37ff050c6f6a0d7a4420d2a","tgt_lang":"hi","translated":"बनाया गया","updated_at":"2026-07-06T15:07:02.499Z"} {"cache_key":"d5a981477ccb0ba1b00e844bffac538386bb0a661c62a40afe9f1df23fd29f8a","model":"gpt-5.5","provider":"openai","segment_id":"usage.details.collapse","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Collapse","text_hash":"be6eb1fc3b05bf9dceebad2eac7841d1b2f40bda9aa2da34df8ca22af02bc3ed","tgt_lang":"hi","translated":"संक्षिप्त करें","updated_at":"2026-06-26T21:35:26.182Z"} @@ -1410,6 +1418,7 @@ {"cache_key":"df89a8a7c791d1e951ebe125e3bde43761dfdc780ce1d0c9cf6e967f38f1647a","model":"gpt-5.5","provider":"openai","segment_id":"agents.files.words","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"{count} words","text_hash":"caab2939348211270cf707c28b881251d4cf42057fc19cfee56211dbd7b28eb1","tgt_lang":"hi","translated":"{count} शब्द","updated_at":"2026-06-26T21:31:05.913Z"} {"cache_key":"e01b88dddc07623853ce679ea7bcbfd809e3585f16ded039f65e13208fcb0f3a","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.systemEventHelp","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Sends your text to the gateway main timeline (good for reminders/triggers).","text_hash":"284a601bd74ca50e61fcf8ec9749af44936ad445a6098d38c63090b731b46508","tgt_lang":"hi","translated":"आपका टेक्स्ट gateway मुख्य timeline पर भेजता है (रिमाइंडर/ट्रिगर के लिए अच्छा)।","updated_at":"2026-06-26T21:37:46.380Z"} {"cache_key":"e035d879b7ff7bf0fa506f24c4195ebeb46d7b2d20d8742f0fda670470391475","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateOlder","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Older","text_hash":"03281c889c2869e091390f9ad5dd13f0f0e46b42c9c4698f857902451deb3450","tgt_lang":"hi","translated":"पुराना","updated_at":"2026-06-26T21:34:24.815Z"} +{"cache_key":"e062f53468df638d98b04bb8870f8dfdcd3a4f19f0024603761b1121ce66d510","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"hi","translated":"उपयोग डैशबोर्ड खोलें","updated_at":"2026-07-09T11:49:28.360Z"} {"cache_key":"e06b98a0f1d464252b167227186c05fbf5d5666827be9ecef630adcbf0d481ca","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.space","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Space","text_hash":"20eac5aae274985fd88629d19eddccbbec21dacd82a8c7a7dd99661f2135be02","tgt_lang":"hi","translated":"स्पेस","updated_at":"2026-06-26T21:30:33.640Z"} {"cache_key":"e093a445393a2fe2e9156bbcbb6f079785ac10aee0f6d95752a57f75cdf3fd54","model":"gpt-5.5","provider":"openai","segment_id":"usage.mosaic.mon","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"Mon","text_hash":"f40d7f51f69edfaffa29c42910fbc6af6a822f1279162d486b4a7e11c3e0ae9b","tgt_lang":"hi","translated":"सोम","updated_at":"2026-06-26T21:35:33.329Z"} {"cache_key":"e0b3e628032f6bc2117e4bf0083b76e84c9fc5e3f1918018f59113246d4cbe48","model":"gpt-5.5","provider":"openai","segment_id":"usage.mosaic.eightAm","source_path":"ui/src/i18n/locales/hi.ts","src_lang":"en","text":"8am","text_hash":"e30c8b1920cbd73bb28b87bc0292e424df7a26513eb87b2ca9a8bca7f9a6b2ee","tgt_lang":"hi","translated":"सुबह 8 बजे","updated_at":"2026-06-26T21:35:33.329Z"} diff --git a/ui/src/i18n/.i18n/id.meta.json b/ui/src/i18n/.i18n/id.meta.json index 0b6f30984d6..20ee657ef33 100644 --- a/ui/src/i18n/.i18n/id.meta.json +++ b/ui/src/i18n/.i18n/id.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:40.074Z", + "generatedAt": "2026-07-09T14:24:54.776Z", "locale": "id", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/it.meta.json b/ui/src/i18n/.i18n/it.meta.json index b93d0b2393a..0c7b5c4606f 100644 --- a/ui/src/i18n/.i18n/it.meta.json +++ b/ui/src/i18n/.i18n/it.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:35.669Z", + "generatedAt": "2026-07-09T14:24:54.452Z", "locale": "it", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/ja-JP.meta.json b/ui/src/i18n/.i18n/ja-JP.meta.json index 9835db106aa..a2c644866d2 100644 --- a/ui/src/i18n/.i18n/ja-JP.meta.json +++ b/ui/src/i18n/.i18n/ja-JP.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:26.721Z", + "generatedAt": "2026-07-09T14:24:53.916Z", "locale": "ja-JP", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/ja-JP.tm.jsonl b/ui/src/i18n/.i18n/ja-JP.tm.jsonl index d429f4fd45a..14135be659d 100644 --- a/ui/src/i18n/.i18n/ja-JP.tm.jsonl +++ b/ui/src/i18n/.i18n/ja-JP.tm.jsonl @@ -3,6 +3,7 @@ {"cache_key":"0081ea8ee7d7e32dc6e881b69c0dcfa32b7b33f30e0afe1d183a565c5711a671","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summary.sessions","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"sessions","text_hash":"1225ae6c1ae69dcb4ee4781b703e12206f3b549cd3ca151070a8d8d8f371dd71","tgt_lang":"ja-JP","translated":"セッション","updated_at":"2026-07-09T10:01:43.715Z"} {"cache_key":"0085d8808eeb05adc17f1991603d424b5de6bba9f02435dd3bf7c5a2e693f05a","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archivedOnly","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Archived only","text_hash":"da7ebd8c482f38dc2a5b693a0ec25aaa04ea7b5fa3713cce9fa41a28f2201a6b","tgt_lang":"ja-JP","translated":"アーカイブ済みのみ","updated_at":"2026-07-02T14:30:08.823Z"} {"cache_key":"0192fed79b8c0890e0dcb98b66341fa1720abaf549aa7713fb6e6dc3e7eedca9","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.subtitle","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Isolated repository checkouts owned by OpenClaw.","text_hash":"6a3984ca864c9188fa8c05e732f6831b501b4caed6bd61b60e48e9b0cf74bd0c","tgt_lang":"ja-JP","translated":"OpenClaw が所有する分離されたリポジトリのチェックアウト。","updated_at":"2026-07-05T21:00:44.514Z"} +{"cache_key":"01da09e37e865b4ee7054b246d130d8f2c2bbb9fdf9ae078e5d4b49935fba6f2","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"ja-JP","translated":"使用状況ダッシュボードを開く","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"01e35e79010ce3bb0b4ec1261d75952f5cbc18eaf6ad9fd832698881853d13b8","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSummary","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Summary: {summary}","text_hash":"3a2270b3cd47b523936c13efec489f36112e0a64fe763dbe972d21fef029e814","tgt_lang":"ja-JP","translated":"概要: {summary}","updated_at":"2026-06-16T14:14:04.101Z"} {"cache_key":"021ef74a883eb57eee66395b69faa99471af46b59970a74cea7b03948f6e4312","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChatAria","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Use current chat for revision requests","text_hash":"9c551a423ae74aedaaa90e4df9899dbdc02f846d6ee058bf2576a812e2c52119","tgt_lang":"ja-JP","translated":"修正リクエストに現在のチャットを使用","updated_at":"2026-06-16T14:14:04.101Z"} {"cache_key":"026b0c38529e0d7f9f3c4fb0015cf447d0f61d583dac4d372a3380e7e15107fc","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.lastActive","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Last active","text_hash":"bcdf701c4dfbaee3a2162f9b9affd87a23a13426c391f95e964d983851b58a05","tgt_lang":"ja-JP","translated":"最終アクティブ","updated_at":"2026-07-05T21:00:44.514Z"} @@ -13,6 +14,7 @@ {"cache_key":"06e8bce15cd73bea68d1502512f1c838bd658a7e3bdf0698cab0613673a1f70b","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dragSessionHint","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Drag to move between groups","text_hash":"3e8692b1cd1c1f9a606a779f1037aa390c885fde224ddb841df9259e8aab03ae","tgt_lang":"ja-JP","translated":"ドラッグしてグループ間を移動","updated_at":"2026-07-05T14:39:44.116Z"} {"cache_key":"07475f9ec877b92dd20e0fdee833a97a9338761e363b73bade56266b0769f933","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkMoreInSettings","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"More in Settings","text_hash":"87f1e602d68bdc42ae3fddc0c1541d323adc718b7b9b3f889b2ca71823e319b9","tgt_lang":"ja-JP","translated":"設定でさらに表示","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"074b46b271a1d6c09a4360c74e4e5ff0d134e5c7909ec66b5f54f29cf4eb7931","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.noMicrophones","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"No additional microphones found","text_hash":"a6e4a20dda44dead8daa06da30fca7e7d90fa5aa4c15cbada30af1f52874d347","tgt_lang":"ja-JP","translated":"追加のマイクが見つかりません","updated_at":"2026-07-06T17:33:41.956Z"} +{"cache_key":"07e00ac9c90f155d40a62a539c41b033010c913155c4576018cbc9a85943c058","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"ja-JP","translated":"5時間制限","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"09124221295fdeb3724f25d7dcb59d631c6da05808d24986ff758869c4188a49","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.readCount","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{count} read","text_hash":"b3c6c64f1153fb7b2672d2894f532d3f7adea1dd1c473363587fc520be35998e","tgt_lang":"ja-JP","translated":"{count} 件読み取り","updated_at":"2026-06-16T14:14:19.257Z"} {"cache_key":"0a4097692c71f05f346a30fe10c6ec2e7dbc12bfbf8cbeb17e6cbbc629e09f84","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCountOne","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{count} session","text_hash":"c0975b42c84d7da963f4c962d1e2c1ee78eb18efc7ebec75fb3ce761ce9a40db","tgt_lang":"ja-JP","translated":"{count} 件のセッション","updated_at":"2026-07-05T14:39:44.116Z"} {"cache_key":"0a8a9cdabf5314038b163d124dc468e64c3a1a4e9adeb004acc9c134be364cae","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.emptyFilteredTitle","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"No cards match this view","text_hash":"a272617e183ba1dff3f7f140d0851b64baf95f4827ff729d23dfeb05c2069875","tgt_lang":"ja-JP","translated":"このビューに一致するカードはありません","updated_at":"2026-06-17T14:14:09.255Z"} @@ -134,6 +136,7 @@ {"cache_key":"735bfed72bdf080b0cfec7018cff618eb5b84cde206d7cc309ba10a4351ab467","model":"gpt-5.5","provider":"openai","segment_id":"nav.settingsGeneral","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"General","text_hash":"c910d474dcd724bff83ddedeb06bf1eceaf9fb3af7c76bb282be057f36e6dffa","tgt_lang":"ja-JP","translated":"一般","updated_at":"2026-07-09T08:07:52.803Z"} {"cache_key":"75682e1767f63d191ad8fc15fca7ed6bef12d6b1dec3eb6a4f2684d3ed05febd","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortBy","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Sort by","text_hash":"c9129025bd3ff6522a7eeebc1abf1481f36e4ac9d74524a473ac1c3be1c6fc2f","tgt_lang":"ja-JP","translated":"並べ替え","updated_at":"2026-07-06T23:40:52.793Z"} {"cache_key":"776974fa30249e86f5fdcd23557646de8af10155c3210e4c6cb8bf55c4d8d714","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.moveToGroup","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Move session to a group","text_hash":"7db4b663aebb86158b454c49ad05115941c0411cb8ed6182bdc8fd5840f32dff","tgt_lang":"ja-JP","translated":"セッションをグループに移動","updated_at":"2026-07-05T14:39:44.116Z"} +{"cache_key":"777ec9c31265f665368b5e75d2ab4f53c3fd5874b79530d56a8ee4ff7efba192","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"ja-JP","translated":"使用クレジット","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"7a805e49dd5b20f9b92d98c5001a31aa3eb357c6eaee8a9819e881abb4999e9a","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh5s","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"5s","text_hash":"93e3d8c5b10657d2884f177488b689aadf82a83f962237cb602b3314386ab3b7","tgt_lang":"ja-JP","translated":"5秒","updated_at":"2026-06-17T14:14:09.255Z"} {"cache_key":"7bb05575fca6bd71d81a7f765b29bf12727a860bc43487431194d0cda4f51209","model":"gpt-5.5","provider":"openai","segment_id":"workboard.eventAttachmentAdded","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Attachment added","text_hash":"f39a309fb0054d8e6c512733d6f3a4791c6b63157a388d72f635574d98b49b3e","tgt_lang":"ja-JP","translated":"添付ファイルが追加されました","updated_at":"2026-05-30T15:38:16.645Z"} {"cache_key":"7e0fafe9210a70cd3b7aeed4be6a6432ea3fd5787d235d42e27b89eb1ae0a7dc","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.session","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Session","text_hash":"6959b4159575d8dd76d9f3bbe2c6437904f861e7860c35abd18deffb1c3425a0","tgt_lang":"ja-JP","translated":"セッション","updated_at":"2026-06-16T14:14:19.257Z"} @@ -190,14 +193,17 @@ {"cache_key":"ae01058a8b3400423fa86d187aba35a4a1872cc1264ba8d82667f798abe8d849","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.badgeHeartbeat","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"heartbeat {age}","text_hash":"000637b3800ae069edbbe207cfad0a3f5037f06e9661ee89d70a1dfe6f404485","tgt_lang":"ja-JP","translated":"ハートビート {age}","updated_at":"2026-06-17T14:14:09.255Z"} {"cache_key":"ae5da90a4769e7006bb4e19908c99b26fb516df1844195f74b6fb2ecd56960d4","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortUpdated","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Last updated","text_hash":"382ac5f308f76c24b2c981e2041943bc2be2229cbd285ad362b9af1cfc386ef8","tgt_lang":"ja-JP","translated":"最終更新","updated_at":"2026-07-06T15:07:02.499Z"} {"cache_key":"aea7e364aea6b528af7568f8325c3c651e979129c47c01b48ef20cbe62201c2a","model":"gpt-5","provider":"openai","segment_id":"codexSessions.threadId","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Thread","text_hash":"5373c7f8a5a69019e959540ef127be3302afdd5e2313244e6d08cbd5e975d06d","tgt_lang":"ja-JP","translated":"スレッド","updated_at":"2026-07-09T10:01:43.715Z"} +{"cache_key":"b0a4cf599373061f793cf5a1dc29a49d429727dc843ed28c0927ad15256b61a0","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"ja-JP","translated":"{time}にリセット","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"b11292c6f62f41a9920279fa6d03abee682b5ee4aaf71a451534a701d16a23a9","model":"gpt-5.5","provider":"openai","segment_id":"connection.reconnecting","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Reconnecting…","text_hash":"27b80374e1151af6df7824a358606c77502548bff4d467e4ae2e146801f601ce","tgt_lang":"ja-JP","translated":"再接続中…","updated_at":"2026-07-05T21:55:21.364Z"} {"cache_key":"b2726a577da1eb6db36c759bdd2cec75437597229a66a19d642ecfea1e80584e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePageInactive","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Microphone inputs are unavailable while this page is inactive.","text_hash":"775110f07819e48dc96203ed710c4df3546892e5672d7c469dedeb1e0e163882","tgt_lang":"ja-JP","translated":"このページが非アクティブな間は、マイク入力を利用できません。","updated_at":"2026-07-06T17:56:23.525Z"} {"cache_key":"b2dc9d621db88db44d7206960889314f33a753087845344c3e36dcd58c4cdcba","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailTitle","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Card details","text_hash":"93985f84673405070ffdf7e6f64175caff0f2c489c10e40627718525e79af631","tgt_lang":"ja-JP","translated":"カードの詳細","updated_at":"2026-06-16T14:14:04.101Z"} {"cache_key":"b3072d01c33a39ff3f7aa269bd6d835b5ec57f05016def728caa2eff07444153","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.summary","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Session workspace summary","text_hash":"1ed422c34dc1802d4c7366164ae810c496e206fe82e8e6565cefc38230b56bb4","tgt_lang":"ja-JP","translated":"セッションワークスペースの概要","updated_at":"2026-06-16T14:14:19.257Z"} +{"cache_key":"b34ab4fbe3ece512441e6100e002a0a5b361e907935c111f6b22052350dee5da","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"ja-JP","translated":"プランの使用状況","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"b39d4e971d960fbdaa4a3fe94ad603a9be59dd76e74abbf7d22dac2d552ff23e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneBusy","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Microphone inputs are busy or unavailable to the browser.","text_hash":"9f33c30cb2370916f2edd079ad5cabab6a94dd185a89f4f7db357b4f31d1f3dd","tgt_lang":"ja-JP","translated":"マイク入力は使用中、またはブラウザで利用できません。","updated_at":"2026-07-06T17:56:23.525Z"} {"cache_key":"b43ab66ae49bbf8796c0e9b1ffb62fd2a7e3a23b01326c673a410254a2843be0","model":"gpt-5.5","provider":"openai","segment_id":"subtitles.mcp","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"MCP servers, auth, tools, and diagnostics.","text_hash":"3eb7bf08a81e00ed41da1b60096320c5b90ff4d4e78b3f84ecd9ce45a62eaea1","tgt_lang":"ja-JP","translated":"MCP サーバー、認証、ツール、診断。","updated_at":"2026-05-31T05:36:37.677Z"} {"cache_key":"b46b2acc862d0948e844784517f3be207ada2bc1c3d57be75e5ab22abc54e47c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailProof","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Proof","text_hash":"7fbb3ccf9640651f69af3626de6836fb302a0a088c7cd27721c367b8b530e502","tgt_lang":"ja-JP","translated":"証跡","updated_at":"2026-06-16T14:14:04.101Z"} {"cache_key":"b48cdfa2b31c7ba33aa225a2ec2267aadd978996af05094c34813360367a3988","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkModel","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Model","text_hash":"5e2c614c23f02239bc03c6c04fcb681950f9e72bf8fdff6be79c79841cbb10c0","tgt_lang":"ja-JP","translated":"モデル","updated_at":"2026-07-06T20:20:02.809Z"} +{"cache_key":"b5da5df9f05841310e48272ac3b3a7010f1fbc69cb9f6eec02824640751960f7","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"ja-JP","translated":"週次 · すべてのモデル","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"b5da6546178ab3f19c2c262a7935d841b4823835bd11468f524ae11c50c20a21","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summaryLabel","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Codex session summary","text_hash":"667dedf7bd0ebc80d4e312cc52f824e6a5307c1c6210f2e72e5b93da824da502","tgt_lang":"ja-JP","translated":"Codex セッションの概要","updated_at":"2026-07-09T10:01:43.715Z"} {"cache_key":"b87bc6805d1174940ff2f06ebc4e5561e91020c0c1917103cd5884cd7425cadd","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailWorkerLogs","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Worker logs","text_hash":"67766b9f222a7ccdae6beb7d6e7877d1a13abb8a346a8c5c803a4380bdf851b1","tgt_lang":"ja-JP","translated":"ワーカーログ","updated_at":"2026-06-16T14:14:04.101Z"} {"cache_key":"ba4829fd39076cb6778b49cd1c44bc3f9e850fcc8e5a06734278623daf7903ca","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.connected","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Connected","text_hash":"22965568d22a14ee17af055d2870b50afcfe9fd94a83eec3196e266932297bb2","tgt_lang":"ja-JP","translated":"接続済み","updated_at":"2026-07-09T10:01:43.715Z"} @@ -232,6 +238,7 @@ {"cache_key":"cd0d813d43d7b61d13e0ccf95ad3a2ae3b80f3f80964596324d5e5b86fac360e","model":"gpt-5.5","provider":"openai","segment_id":"workboard.badgeAttachments","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{count} attachments","text_hash":"7bb1847693bc91e6e4624d996a96840396a71052786ab143ccb47fbdaa77cf41","tgt_lang":"ja-JP","translated":"{count} 件の添付ファイル","updated_at":"2026-05-30T15:38:16.645Z"} {"cache_key":"cd6caa1e1b37847f1a6d0faa44f6f60821d2a451b66077f335c4bf6e7601481b","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.label","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Link actions","text_hash":"bffef58c5284b351b41a353b723845cca19cf29bf817f7b74c2e77e74d282a20","tgt_lang":"ja-JP","translated":"リンクのアクション","updated_at":"2026-07-09T11:02:45.719Z"} {"cache_key":"d0b56050176fa6d32b3e216097f41856a87dd23aedce798f0ece4013f3dfb26e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.search","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Search files","text_hash":"179fed85ec50a433bb23932745d18f1ade2f84a6ebe145b0025ed3ce5f89fd5a","tgt_lang":"ja-JP","translated":"ファイルを検索","updated_at":"2026-06-16T14:14:19.257Z"} +{"cache_key":"d148b5dfa71ec4d55e3803d78bc187910523ff02810d7f71286ad4d07356b96b","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"ja-JP","translated":"{limit}中{used}","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"d18570791fe4a33cac91265fb875e2e15cb4c0172d17e4ba14bd8208a1df3401","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.goalNote","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Goal note","text_hash":"1afb7855a394ef7078728de1c804d6b995413db4eafe7d74190076cb9ed2c9f5","tgt_lang":"ja-JP","translated":"目標メモ","updated_at":"2026-05-29T21:00:25.945Z"} {"cache_key":"d3f51a005ad211f5ed6854805c9f3c353fc594a7627978897fa93914be8319b4","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.realtimeTalkRequiresMicrophone","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Realtime Talk requires browser microphone access.","text_hash":"e082e85327dc5d2905a34ca4ca60e76836f9b4d7e3b1834b821c81a9c456b39d","tgt_lang":"ja-JP","translated":"Realtime Talk にはブラウザのマイクアクセスが必要です。","updated_at":"2026-07-06T17:56:23.525Z"} {"cache_key":"d5ac4b6430074b9e7b7250c0a9057ccc8f44bebd743b3459fec634d0ee8a7a78","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewStale","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Stale","text_hash":"40c9e59c5e152b0ae9affc84d8461c29b75a7709e4506307eeedf246b526014e","tgt_lang":"ja-JP","translated":"古い","updated_at":"2026-06-17T14:14:04.173Z"} @@ -248,6 +255,7 @@ {"cache_key":"df1d1fa4c746a4060c48f6be7015279ad79fb30f46953038521cf39f82bc8868","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archiveSession","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Archive session","text_hash":"740ded37480365eae8bf833ccaaa58350fc9434a77b7bb65b5516eba476fbec3","tgt_lang":"ja-JP","translated":"セッションをアーカイブ","updated_at":"2026-07-02T14:30:08.823Z"} {"cache_key":"e08e79f316a4fd82f22f2bd3c654b9c58d5668efa50a0e664ee48e3c1e4a8db2","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivityMedium","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Medium","text_hash":"8e588cd187741f1cd76f5fab77b7208782a8c21d764ce7d7a4cf3ac4e0968873","tgt_lang":"ja-JP","translated":"中","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"e262d4df8dd57e1a46568fea5ff14777657a0f37808ef9cf8a40095beed20964","model":"gpt-5","provider":"openai","segment_id":"codexSessions.title","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Sessions across your computers","text_hash":"23b30c777a12daeb3e5471cd51530189b621db9fdec4e6ea976e5a97516fac22","tgt_lang":"ja-JP","translated":"すべてのコンピューター上のセッション","updated_at":"2026-07-09T10:01:43.715Z"} +{"cache_key":"e27719267bae39448ac82ff0c3373d72f9b6546188286386c2cc151d41c803de","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"ja-JP","translated":"{hours}時間制限","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"e3f73b9e2011ce63da0fe336072b6647e3a83c0dbe732a802303833b251046d0","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.newGroupPrompt","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"New group name","text_hash":"cee9e709525c90b1a97dff72c62082602b199b54036ed573926d1b11c6d54ec7","tgt_lang":"ja-JP","translated":"新しいグループ名","updated_at":"2026-07-05T14:39:44.116Z"} {"cache_key":"e555cff9d58775fd59213d3b007940d366b501c4e4e25e3fadcb60710466d027","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.refresh","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Refresh session workspace","text_hash":"c7a97b20a3a3ce348239c4893c99f1902d44877567cb32f752c30cdfbc9a2468","tgt_lang":"ja-JP","translated":"セッションワークスペースを更新","updated_at":"2026-06-16T14:14:13.256Z"} {"cache_key":"e7a4c4b64c803f4f6be208599748d8e9e438b741fd85301436b596fd58bba136","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.noSearchResults","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"No matching files.","text_hash":"6ba2ede6c6019b640f63e7e48c5ee8238e701c6e539ce9abb5a7a9d9c71d8a73","tgt_lang":"ja-JP","translated":"一致するファイルはありません。","updated_at":"2026-06-16T14:14:19.257Z"} @@ -260,6 +268,7 @@ {"cache_key":"f09f36d698609441c589c7a19094c9bd2e944448c872b1a744e84bb64c83bf8c","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.active","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"No active sessions on this host.","text_hash":"27d1aa12b4e3732d0bceff36b848ab16fb1bad91386e509cd2a7eeecbf1551ca","tgt_lang":"ja-JP","translated":"このホストにアクティブなセッションはありません。","updated_at":"2026-07-09T10:01:43.715Z"} {"cache_key":"f0d183feb2e9a1d27960b98a12f8312fe7e49a0a5663bcdcfceb5722cc303b3d","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.subtitle","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Enable Codex session sharing on the gateway or a paired computer, then refresh this view.","text_hash":"608ae8a39625a0da1b6804480e57835af5a1e566af2095d11cca8bf0a6e421a9","tgt_lang":"ja-JP","translated":"Gateway またはペアリング済みのコンピューターで Codex セッション共有を有効にしてから、このビューを更新してください。","updated_at":"2026-07-09T10:01:43.715Z"} {"cache_key":"f26f913eb167dc4d8b05c79a72a1d81f156ac1c2ad7e293cb853d8d128ae9cbe","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.expand","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Expand session workspace","text_hash":"ac1d210db40c5026879774849ad74a9e1247523192a795ac33965b3ee72691c2","tgt_lang":"ja-JP","translated":"セッションワークスペースを展開","updated_at":"2026-06-16T14:14:13.256Z"} +{"cache_key":"f37b15fb13748df9e7d09e5d9000a0b42a8a7956c97e25161e001fcd402cb4b7","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"ja-JP","translated":"日次制限","updated_at":"2026-07-09T11:49:17.247Z"} {"cache_key":"f3a84aa7b52e71f51872587f6089462d8f09d662e0a0f1ca62d3925969f3de90","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.browserCount","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"{count} shown","text_hash":"e57b4adfe868fd74a183650103d820176d4960bd0bdb677d9985db09f9752867","tgt_lang":"ja-JP","translated":"{count} 件表示","updated_at":"2026-06-16T14:14:19.257Z"} {"cache_key":"f538112a8e1ee15076779ffc935336a76a8d573b2e93f6e3bc6ba8e5f748e9e9","model":"gpt-5.5","provider":"openai","segment_id":"connection.lostTitle","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Gateway connection lost","text_hash":"ec6cd265976239ff6fc4f227bb25e8e6286fe38c3d1c64326dcdbb76c28b515e","tgt_lang":"ja-JP","translated":"Gateway 接続が失われました","updated_at":"2026-07-05T21:55:21.364Z"} {"cache_key":"f6db4db51f902e337c87e46c35596d920b934fce9fa224609e75759cb795eec0","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailRun","source_path":"ui/src/i18n/locales/ja-JP.ts","src_lang":"en","text":"Run","text_hash":"00d60e31a4e6b8344d4201f25a6a7dee770713107f6d097abb01559d32b17f26","tgt_lang":"ja-JP","translated":"実行","updated_at":"2026-06-16T14:14:04.101Z"} diff --git a/ui/src/i18n/.i18n/ko.meta.json b/ui/src/i18n/.i18n/ko.meta.json index 2d3e919a8cc..0aa3a8716eb 100644 --- a/ui/src/i18n/.i18n/ko.meta.json +++ b/ui/src/i18n/.i18n/ko.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:28.446Z", + "generatedAt": "2026-07-09T14:24:54.025Z", "locale": "ko", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/nl.meta.json b/ui/src/i18n/.i18n/nl.meta.json index f5aa9b31251..4a2d8fddce0 100644 --- a/ui/src/i18n/.i18n/nl.meta.json +++ b/ui/src/i18n/.i18n/nl.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:45.348Z", + "generatedAt": "2026-07-09T14:24:55.210Z", "locale": "nl", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/nl.tm.jsonl b/ui/src/i18n/.i18n/nl.tm.jsonl index b463a380a46..ceecdb846c0 100644 --- a/ui/src/i18n/.i18n/nl.tm.jsonl +++ b/ui/src/i18n/.i18n/nl.tm.jsonl @@ -20,6 +20,7 @@ {"cache_key":"0f908cd4beaa7cc2ce524216fa33931a67b377d626846a6b5f34a49cc87196c4","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupBy","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Group by","text_hash":"956a51f6b098a41b7c3108015f0790bb24af7693717b07cee39d5df6a5da1826","tgt_lang":"nl","translated":"Groeperen op","updated_at":"2026-07-05T14:40:20.847Z"} {"cache_key":"12f5afc47047a6fa8937d715bba8defd94ed3a6095776cfb5a3b1f1e2986fdaf","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.summary","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Session context usage: {used} of {limit} ({pct}%)","text_hash":"a62b97af0e5d02b8722725e2be0a936dd3d317a1f506ea15c766e87413b66a0d","tgt_lang":"nl","translated":"Contextgebruik van sessie: {used} van {limit} ({pct}%)","updated_at":"2026-07-05T10:16:33.214Z"} {"cache_key":"1522947a9173e3850fa454f8408fae11e749600fedbb604c4bc14b5468b7e656","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summaryLabel","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Codex session summary","text_hash":"667dedf7bd0ebc80d4e312cc52f824e6a5307c1c6210f2e72e5b93da824da502","tgt_lang":"nl","translated":"Overzicht van Codex-sessies","updated_at":"2026-07-09T10:01:43.729Z"} +{"cache_key":"16b879f7043139ea5339428c27e33b9151b087e62cd085150fec06632aeb744b","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"nl","translated":"Wekelijks · alle modellen","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"17f367198a1420756107234b6e1cfd6a46ba6c9636d7f9a34ace0568f50bafeb","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.files","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Workspace","text_hash":"87bb59ba2f92f2a5a9f13e021fd58dd14ae5c065b1046146875e6e68d5ebc8b7","tgt_lang":"nl","translated":"Werkruimte","updated_at":"2026-06-16T14:18:17.492Z"} {"cache_key":"19e2791d9f9649d4ca944f2858a4bd3efdc8c0ca6ed4481aed37bea60e8e24df","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.dependenciesBlocked","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"{count} blocked","text_hash":"fb39869b0fb3b8933126014e5c3739d7d67a620b8369781ca27e7395c595bde8","tgt_lang":"nl","translated":"{count} geblokkeerd","updated_at":"2026-06-16T14:18:17.492Z"} {"cache_key":"1a2639adabeacd4106d6af3e7c3a01e48572ee0a4c35f53fa23c841bbf155d9c","model":"gpt-5","provider":"openai","segment_id":"codexSessions.subtitle","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"A read-only view of Codex sessions on this gateway and every connected computer that shares them.","text_hash":"ea7ea85488243bacdbe28edb2fba0617ec90ebcf587f8ecce6f62858ca85aed4","tgt_lang":"nl","translated":"Een alleen-lezen weergave van Codex-sessies op deze Gateway en elke verbonden computer die ze deelt.","updated_at":"2026-07-09T10:01:43.729Z"} @@ -38,6 +39,7 @@ {"cache_key":"28ff0ea3118a65f1f95122331feacae0d31c24bc8f91051571f2abbe9a179e2d","model":"gpt-5.5","provider":"openai","segment_id":"nav.exitSettings","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Back to app","text_hash":"a6989680b3528cd399ebaea75e660da6ce8d155d24226532180f90ab37c05e9e","tgt_lang":"nl","translated":"Terug naar app","updated_at":"2026-07-09T08:08:14.439Z"} {"cache_key":"298e599aba134ecc70bec73fa6dde6bdcd5bcbfe86f49abede4e843ebb45c19f","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.node","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Node","text_hash":"e93372533f323b2f12783aa3a586135cf421486439c2cdcde47411b78f9839ec","tgt_lang":"nl","translated":"Node","updated_at":"2026-07-09T10:01:43.729Z"} {"cache_key":"2a690fd1141828516db2e958cb8157275d46b1588ce2ce186414cdc9f1897468","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameSessionPrompt","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Rename session","text_hash":"2cad0766accc2d3f70f007068524cea983e0d53f54543e9e82a4e73b2a07987f","tgt_lang":"nl","translated":"Sessie hernoemen","updated_at":"2026-07-02T14:31:07.310Z"} +{"cache_key":"2bb2d5570e67cee0b69501aa4a3f29f815e270d3d31dcdfd5c3db27c1e2aedca","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"nl","translated":"Wordt gereset {time}","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"2be26df94f517d8a47c7b006703bee0af0b80f664a71c00101cb5664c0cd91a5","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailUpdatedValue","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Updated: {time}","text_hash":"5e72d5445f018c9d08aa34ae0178fb9aa49eea6a0afd0c8d379f20b7af3e8aa0","tgt_lang":"nl","translated":"Bijgewerkt: {time}","updated_at":"2026-06-16T14:18:09.152Z"} {"cache_key":"2ccf12118a667c7829f8b0a23762c7d760e7f29678616b1219e26175827e1c75","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archivedOnlyTooltip","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Show only archived sessions.","text_hash":"de4c6803e169c7f2d3116da6fa5b95417d952edf88f69b0b279d5d17e9e34e87","tgt_lang":"nl","translated":"Toon alleen gearchiveerde sessies.","updated_at":"2026-07-02T14:31:07.310Z"} {"cache_key":"2ccf2b386bfd0a06683a27b0627c8e4b86f60e59d63662885797f94dbe400c5f","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summary.hosts","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"hosts","text_hash":"4f8a2cc398d8664277a96a7843ab4958ab1d0a347cbe7c071fde0fcb58230793","tgt_lang":"nl","translated":"hosts","updated_at":"2026-07-09T10:01:43.729Z"} @@ -110,7 +112,9 @@ {"cache_key":"68e52ea4d559f2b45ac155da5a3f054e76dff935d6c7811a562b1718b138383d","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.parentFolder","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Parent folder","text_hash":"158f5a01ef8cfb1e6d91f8c321dd3a63f5e457f9650eecd662857701762bd31d","tgt_lang":"nl","translated":"Bovenliggende map","updated_at":"2026-06-16T14:18:24.009Z"} {"cache_key":"69d682aa3ca552c7a2e3f92a8d064fcb1b01d7536c333081de267d7d2f37ef54","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.last7Days","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"7 days","text_hash":"7f920bb639c9307589b65e5f639391d65dcb86b0611ac47f58f7c769215326ee","tgt_lang":"nl","translated":"7 dagen","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"6a98a729a69de33ff55be4aed77d8cd78a0f9ac56f66ab0b24dd5e6ebdd006f5","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.cacheTokens","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"{count} cache","text_hash":"9d5f9230d1dea8b0d5b0f0705199920c0be54b3087c4f9d7fb4014284623eb49","tgt_lang":"nl","translated":"{count} cachetokens","updated_at":"2026-07-06T06:40:15.357Z"} +{"cache_key":"6b0198986b1bdac29cf06c54f8e7c2cff6dd1a3345135f9d3b3b56db149b6d58","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"nl","translated":"Gebruikstegoeden","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"6b8e2e778bf041ffbbfec20e9aaa7bec507ef90784023e890ae9ec020b2d7017","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkModelAuto","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Auto","text_hash":"0286249762f7c94349cdc0ba3bb2255baf9a80036e2193ead1d77696f888582f","tgt_lang":"nl","translated":"Automatisch","updated_at":"2026-07-06T20:20:02.809Z"} +{"cache_key":"6d3fef6e6c14e56be857d26ac78d78d04ed38d7c5c2eb5481a53f57a77971773","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"nl","translated":"Dagelijkse limiet","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"6e4741d69b99e5ad3585d39bcb07f581cd2150079d2ce03af5c02ba0e824f4fa","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.searchResults","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Search results","text_hash":"e978b00de465a271a13bf2f6b9d74d67fdfaa7d973a37378fa32f988c3280599","tgt_lang":"nl","translated":"Zoekresultaten","updated_at":"2026-06-16T14:18:24.009Z"} {"cache_key":"7134a0e648f67fd07a3220c24dac1a91e75960a98f70275b0fba72dade9f78e2","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewReady","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Ready","text_hash":"5fa7aac5375c5815787fba3f49559f9b45b14023147ce0652803387974144e5f","tgt_lang":"nl","translated":"Gereed","updated_at":"2026-06-17T14:17:30.702Z"} {"cache_key":"71688859f623a804209932ab8dde6e8236af40982a9a834e2a9b9880e552b2d3","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.realtimeTalkRequiresMicrophone","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Realtime Talk requires browser microphone access.","text_hash":"e082e85327dc5d2905a34ca4ca60e76836f9b4d7e3b1834b821c81a9c456b39d","tgt_lang":"nl","translated":"Realtime Talk vereist microfoontoegang in de browser.","updated_at":"2026-07-06T17:57:20.999Z"} @@ -156,6 +160,7 @@ {"cache_key":"93ccbda24ad07471d70ad20b286bb3227ab19df9dc20226003ab2ac5667d82dc","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.active","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"No active sessions on this host.","text_hash":"27d1aa12b4e3732d0bceff36b848ab16fb1bad91386e509cd2a7eeecbf1551ca","tgt_lang":"nl","translated":"Geen actieve sessies op deze host.","updated_at":"2026-07-09T10:01:43.729Z"} {"cache_key":"94c9fb7b1a6a8535c9de1e1091cd59b85f7bbc2f3a537589049651a7a70dcd8b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewRecentlyDone","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Recently done","text_hash":"46b889592a2f5e79197f62b5f96c76993545626bf207740ea58632ceed9623be","tgt_lang":"nl","translated":"Recent voltooid","updated_at":"2026-06-17T14:17:30.702Z"} {"cache_key":"96138da1d80964f55d26ed28f5f2f2fc85974a4e7b854589da17d160e6b29674","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archivedOnly","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Archived only","text_hash":"da7ebd8c482f38dc2a5b693a0ec25aaa04ea7b5fa3713cce9fa41a28f2201a6b","tgt_lang":"nl","translated":"Alleen gearchiveerd","updated_at":"2026-07-02T14:31:07.310Z"} +{"cache_key":"97156f2eea507bb639716521cb73cec769de5e19cb5e3e6efd9e2ed5f1c9a077","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"nl","translated":"Plangebruik","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"97c4aa6469b5dd56acb63e183a546d8e5523c2e5c318e7b5c0a03a400564e96f","model":"gpt-5.5","provider":"openai","segment_id":"subtitles.worktrees","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Isolated agent task checkouts and recovery snapshots.","text_hash":"bc794dc846493e3c5f88964268af19b7dd818eae942c596002ef4067ba5a3d0c","tgt_lang":"nl","translated":"Geïsoleerde agenttaak-checkouts en herstelsnapshots.","updated_at":"2026-07-05T21:01:37.071Z"} {"cache_key":"98842ecee006cfb2a808c54f9fad7f8871367333521dd82fdbf27fc67ba1db2a","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.restorable","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Restorable","text_hash":"bc97d2ddd2dba3ab2391f21314316556111065c4b870bc05679fadd60a754c01","tgt_lang":"nl","translated":"Herstelbaar","updated_at":"2026-07-05T21:01:37.071Z"} {"cache_key":"99781546706761f8ef14a871264bf6c055e06c3d536cb523476ddf80bf7cb552","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneInput","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Microphone input","text_hash":"5c8a6025b9d96fb0c090d33c9def15ee64aa520a83cf5d64c784b4f0699bb15e","tgt_lang":"nl","translated":"Microfooninvoer","updated_at":"2026-07-06T17:34:05.382Z"} @@ -208,6 +213,7 @@ {"cache_key":"c13bde4c03cc44274c7dfb74e31a7592f92a6c3e5395c9cd7550de40b7f873b5","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.subtitle","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Isolated repository checkouts owned by OpenClaw.","text_hash":"6a3984ca864c9188fa8c05e732f6831b501b4caed6bd61b60e48e9b0cf74bd0c","tgt_lang":"nl","translated":"Geïsoleerde repository-checkouts beheerd door OpenClaw.","updated_at":"2026-07-05T21:01:37.071Z"} {"cache_key":"c210b3270e9de05dfe8ac280e9c022cb999e3c88276570f2fffb3b25fd3de70e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewMissingProof","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Missing proof","text_hash":"b46debe888e32eec183dc5936c79d22ea43bec580c410c2b3c1aa24aaa75d677","tgt_lang":"nl","translated":"Bewijs ontbreekt","updated_at":"2026-06-17T14:17:30.702Z"} {"cache_key":"c28a55c0e83a85cb889ac379ee45fc79dd32f3172a04886b2eccc28bfe50625b","model":"gpt-5","provider":"openai","segment_id":"codexSessions.refresh","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Refresh","text_hash":"0e91610117029a62a478b7fa7df0b8598bebe3ab1e192d4b1882e310719c9671","tgt_lang":"nl","translated":"Vernieuwen","updated_at":"2026-07-09T10:01:43.729Z"} +{"cache_key":"c36487ab13d5a0b0227354b2aadabf79b93bad364f3d0764b1777a652ade6d92","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"nl","translated":"Gebruiksdashboard openen","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"c3adb0fbf9360a046f9d3444994643f49b2b4f09a0c66bef8fbfc2fb472b6f60","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkDefault","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Default","text_hash":"21b111cbfe6e8fca2d181c43f53ad548b22e38aca955b9824706a504b0a07a2d","tgt_lang":"nl","translated":"Standaard","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"c49261726e5d83a3356c6d4b6d0b36e0377639cc6a38d30d6242d3209df6c029","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCount","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"{count} sessions","text_hash":"27de9b3be346a2abd2cb67f9f93abfe8100d7ce996e1204b75fc84670c7818e6","tgt_lang":"nl","translated":"{count} sessies","updated_at":"2026-07-05T14:40:20.847Z"} {"cache_key":"c5edf205f0db62230f81ff33164d4210ab2c436eafc761c81c618b2f5fe04467","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneBusy","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Microphone inputs are busy or unavailable to the browser.","text_hash":"9f33c30cb2370916f2edd079ad5cabab6a94dd185a89f4f7db357b4f31d1f3dd","tgt_lang":"nl","translated":"Microfooningangen zijn bezet of niet beschikbaar voor de browser.","updated_at":"2026-07-06T17:57:20.999Z"} @@ -218,6 +224,7 @@ {"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"} +{"cache_key":"cc766ea6f382662443981215aafce4f39de3a69a1f120f533e32bf70644490d1","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"nl","translated":"{used} van {limit}","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"cc892a4e0b4cd13f6e0b169e9d8022784147ed4acb37eb7c235dae21be53930e","model":"gpt-5","provider":"openai","segment_id":"codexSessions.searchPlaceholder","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Search session titles","text_hash":"9a6bdede84234fa08d6294e1636a34d26cbdd8eca425248f8d3c6cf8844a0cf9","tgt_lang":"nl","translated":"Sessietitels zoeken","updated_at":"2026-07-09T10:01:43.729Z"} {"cache_key":"ccbb3082801b225c7dcfa386897983fe5030a274e3725112da01a906ed9936c3","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.pinSession","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Pin session","text_hash":"813273b54d2df112a0fa1903110e9386779f8848ae288142d3f91d7a5891c8ff","tgt_lang":"nl","translated":"Sessie vastzetten","updated_at":"2026-07-02T14:31:07.310Z"} {"cache_key":"cdea82f7653bc8517eda938aff4ce8bf0855ebc6f1fa8444a272cb1c7f97210f","model":"gpt-5.5","provider":"openai","segment_id":"nav.settingsGroupConnections","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Connections","text_hash":"dc273117482b4429ada500ecd2e0c75532454194892cb901ca64cc7df369fdf6","tgt_lang":"nl","translated":"Verbindingen","updated_at":"2026-07-09T08:08:14.439Z"} @@ -245,6 +252,7 @@ {"cache_key":"e4e874ab6146a84360fcc8161f7f1a489b55cbfc4345abe258c57a7ce4303e39","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameGroupPrompt","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Rename group","text_hash":"98d254a311d0e820bb8739eb28d4e1eb5fc1cfc34f755167759864cd15504b4c","tgt_lang":"nl","translated":"Groep hernoemen","updated_at":"2026-07-06T23:41:19.182Z"} {"cache_key":"e569c8edeeec6e027dd3013a5e1add94707c6771ad3c1ae7eed07fbb9373afb7","model":"gpt-5.5","provider":"openai","segment_id":"workboard.eventOrchestration","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Orchestration","text_hash":"ed4fdd1721677737cffb2862fe34d5b63901c7cc76b8c67c51e92a467b31a5e7","tgt_lang":"nl","translated":"Orkestratie","updated_at":"2026-05-30T15:38:50.257Z"} {"cache_key":"e61e41ab27f49511a34b708f31d8c0834687057b9cd79a3a0f1f81a8b9cb8ee6","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortCreated","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Created","text_hash":"d70b9e24bca26b409b9458ceca6c9e5c2b5c3171c37ff050c6f6a0d7a4420d2a","tgt_lang":"nl","translated":"Aangemaakt","updated_at":"2026-07-06T15:07:02.499Z"} +{"cache_key":"e6e87bf091b33ae7d4bbc45fa78be568c88ba6fdee7f80c7c3b70ee012262854","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"nl","translated":"Limiet van 5 uur","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"e6f48f62b167833335d714cc2380e3b71081a01e7888678832b137bde4f4a747","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.goal","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Goal","text_hash":"cdbf6975e8a35b0d03558be6822dfae166482c24fb86b0433f60e8167f5c91e4","tgt_lang":"nl","translated":"Doel","updated_at":"2026-05-29T21:02:33.311Z"} {"cache_key":"e7b1e2d29045f3b78b45da6f754417e5e82928b4b9889f4d084ba17e6c47afdd","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.unpinSession","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Unpin session","text_hash":"f4c582ee4d7a87bf069d05a49bb0211759d3db8366daab4ba7024425961af5dc","tgt_lang":"nl","translated":"Sessie losmaken","updated_at":"2026-07-02T14:31:07.310Z"} {"cache_key":"e7b5d8bc7926048628a8552c9eb53822eec42b7fd30223690e9dbc1ea08f6829","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSkills","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Skills: {skills}","text_hash":"4788d5f9db66e1421a762bbd942c64450c73d2145a6ef929ce32a919a0f2e3a1","tgt_lang":"nl","translated":"Skills: {skills}","updated_at":"2026-06-16T14:18:09.152Z"} @@ -261,6 +269,7 @@ {"cache_key":"f072b45537bd11ae936b4b6a6e2116b3558e92f678fd4157dee5c9a9e9fa3a5d","model":"gpt-5.5","provider":"openai","segment_id":"chat.toolCards.toolError","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Tool error","text_hash":"a6c64c286a8795034ac5030b74633d3b476b5375e094485698b982879b0bb617","tgt_lang":"nl","translated":"Toolfout","updated_at":"2026-05-31T06:44:10.180Z"} {"cache_key":"f0e8ac4f8d4197c46be5b4d8e346306d2d56173a8965954c88c35fafe47c67a2","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.dailyCost","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Daily provider cost","text_hash":"0d03078a4d1fba12122e32e9abbc929ea64b948445810cf1e0d29cbdfd5cb18d","tgt_lang":"nl","translated":"Dagelijkse providerkosten","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"f447e9cd0d2da5751f7602b2acc2acda662ed7105c02a8aa14a388ef344660e6","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.dismissTalkError","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Dismiss Talk error","text_hash":"72f032a5a37e7197cc94ea95f5da0829abb2262396cdcc35229bd8ce9a52de1e","tgt_lang":"nl","translated":"Talk-fout sluiten","updated_at":"2026-06-16T14:18:17.492Z"} +{"cache_key":"f4df69f6b4db7a82f258a7153a1f502a4c8651c6ed3da57aec1a2bf93a8f8a78","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"nl","translated":"Limiet van {hours} uur","updated_at":"2026-07-09T11:49:55.613Z"} {"cache_key":"f56bc7ac16e892ffecc5d676bc8864c65762305c3ed1eddce994592e7a24b5f2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByDate","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Date","text_hash":"99c40ab405926cb5ad1def9cff4d7ce624f8f8abfff4e85f655347fcb949d08e","tgt_lang":"nl","translated":"Datum","updated_at":"2026-07-05T14:40:20.847Z"} {"cache_key":"f7088f37548ce33b12d21c16182c30c4d3a85099fc28161866e0967a632a952f","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChatAria","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Use current chat for revision requests","text_hash":"9c551a423ae74aedaaa90e4df9899dbdc02f846d6ee058bf2576a812e2c52119","tgt_lang":"nl","translated":"Huidige chat gebruiken voor revisieverzoeken","updated_at":"2026-06-16T14:18:09.152Z"} {"cache_key":"f75819b456837e36558521b0a04f21385a36f8aff0f8b2c08288c6615096c636","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChat","source_path":"ui/src/i18n/locales/nl.ts","src_lang":"en","text":"Use current chat","text_hash":"fbc1ffd63daa506e927c7a85f6e43acd11e0b8c9f52a3951fc782b236ce9a787","tgt_lang":"nl","translated":"Huidige chat gebruiken","updated_at":"2026-06-16T14:18:09.152Z"} diff --git a/ui/src/i18n/.i18n/pl.meta.json b/ui/src/i18n/.i18n/pl.meta.json index 64a50d294f6..95cab219464 100644 --- a/ui/src/i18n/.i18n/pl.meta.json +++ b/ui/src/i18n/.i18n/pl.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:41.317Z", + "generatedAt": "2026-07-09T14:24:54.887Z", "locale": "pl", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/pt-BR.meta.json b/ui/src/i18n/.i18n/pt-BR.meta.json index 09ed13bc104..c3f8d5c7f58 100644 --- a/ui/src/i18n/.i18n/pt-BR.meta.json +++ b/ui/src/i18n/.i18n/pt-BR.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:21.814Z", + "generatedAt": "2026-07-09T14:24:53.593Z", "locale": "pt-BR", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/pt-BR.tm.jsonl b/ui/src/i18n/.i18n/pt-BR.tm.jsonl index e763704bc03..01a3ff83dfc 100644 --- a/ui/src/i18n/.i18n/pt-BR.tm.jsonl +++ b/ui/src/i18n/.i18n/pt-BR.tm.jsonl @@ -27,6 +27,7 @@ {"cache_key":"157f47dacadc72698e7aacc146098c8f6af3940ae17c60604e05eb6f0028a75f","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.title","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"No Codex hosts found","text_hash":"aaad17f2d1d59a936c7882613d1eb75ad6e82d0e82ec79837a587a43352ce24e","tgt_lang":"pt-BR","translated":"Nenhum host do Codex encontrado","updated_at":"2026-07-09T10:01:43.718Z"} {"cache_key":"160ef9a5963d2c85d043f9fe2e6452b3de2d0de0199a32d1aef6d411dcb3cffd","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.refreshError","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Refresh failed","text_hash":"8fa7e6d90bef4e5cb735233347bf6a71b5b30d96e7c1a50b73f10cb441b275c2","tgt_lang":"pt-BR","translated":"Falha na atualização","updated_at":"2026-06-17T14:13:19.801Z"} {"cache_key":"17111a46ebef85957bf42e2afb1a608b1f5f097c92fa8f883ed65fdc2d0266b7","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.newGroupPrompt","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"New group name","text_hash":"cee9e709525c90b1a97dff72c62082602b199b54036ed573926d1b11c6d54ec7","tgt_lang":"pt-BR","translated":"Nome do novo grupo","updated_at":"2026-07-05T14:39:34.196Z"} +{"cache_key":"17422ecf0bc90c153382b8990b7134262e501bdaf0aec7a105e1fd5f75a6e609","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"pt-BR","translated":"Uso do plano","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"179ff53453e338a4a508f8623a8cd80e1fcbf425786ad6a22da05aba53bf211e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthLabel","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Workboard health","text_hash":"85416c4a6d64e35611bdd9747b82815936c38b41d820796ba1fbfbb7539d906b","tgt_lang":"pt-BR","translated":"Integridade do workboard","updated_at":"2026-06-17T14:13:19.801Z"} {"cache_key":"17a7dba7d4ec0b80f44d268faa9c7bc381231e03b271d04d11f33dd3f211a040","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.unavailable","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Session catalog unavailable","text_hash":"7214837a3c6e83c01215e8128a4f7ac095be446b09dc0bd464178c9d1f03a039","tgt_lang":"pt-BR","translated":"Catálogo de sessões indisponível","updated_at":"2026-07-09T10:01:43.718Z"} {"cache_key":"17c4bf108f22b3623556e0a280ee06c459e988a9dcfb05698622e9b4648054f0","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.group","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Group","text_hash":"34ca0e76608842ff3e7d924a455a396a82f471052c15e3f2ed7f090ac702e5c1","tgt_lang":"pt-BR","translated":"Grupo","updated_at":"2026-07-05T14:39:34.196Z"} @@ -85,6 +86,7 @@ {"cache_key":"3d781ed9fcf319f3503349999a113070f1527991f450a98d6cc0abe66e894afa","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.archived","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"No archived sessions on this host.","text_hash":"5de6bb0c0036228e8732a675c33ab05843952419ef985706e349bb761da87c40","tgt_lang":"pt-BR","translated":"Nenhuma sessão arquivada neste host.","updated_at":"2026-07-09T10:01:43.718Z"} {"cache_key":"3db3fde74d93d13f98149ab002d27ece9388777dcc3fc0f77734ff269253f1d0","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivityHigh","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"High","text_hash":"c4ebc6d4a5832cd9415f906ad03661110c705a72381c8b8b145761d02e2dd23a","tgt_lang":"pt-BR","translated":"Alta","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"3f27693b80940c2c981ec597589a533cf36e8a73a2d5bc016297e1290a9dbbb6","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneListUnsupported","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"This browser cannot list microphone inputs.","text_hash":"fa99f66cc346509afe8c5e3437ad299409a60be69d8b2b70138d8c42176052d9","tgt_lang":"pt-BR","translated":"Este navegador não consegue listar as entradas de microfone.","updated_at":"2026-07-06T17:56:11.051Z"} +{"cache_key":"3f9f57b8ae0a5e634b80c74fd8470fa6296dc94732e00204bb84035566b050a8","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"pt-BR","translated":"Limite diário","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"402277477557b54c4b799fd1e7c5033b98e9106d14ecd965fd57f75dc2b26950","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePermissionBlocked","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Microphone access is blocked. Allow it in browser site settings to list inputs.","text_hash":"707f9594b092cf816d6d7a74381665a74acfecbe32d859d0a4adac9e9c9ff77b","tgt_lang":"pt-BR","translated":"O acesso ao microfone está bloqueado. Permita-o nas configurações de site do navegador para listar as entradas.","updated_at":"2026-07-06T17:56:11.051Z"} {"cache_key":"4095fa6a940b359f59f4cd489eac14132119c6001821588edbe20d3d64910224","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailTask","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Gateway task","text_hash":"6696e7c592238747dd39d7ba000db600a92f843add73ee90b028c72a2dfd37dd","tgt_lang":"pt-BR","translated":"Tarefa do Gateway","updated_at":"2026-06-16T14:13:11.260Z"} {"cache_key":"4284eb25805f8f928e11fd4308af0a017f0b23dff895472807fdffc9d94adc3e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewPresetCount","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"{count} cards","text_hash":"4b3e5442ebd2f839d45fddf95b2c2a18427dbd6ac06c8b57f9d9e996dcb73607","tgt_lang":"pt-BR","translated":"{count} cards","updated_at":"2026-06-17T14:13:15.046Z"} @@ -105,6 +107,7 @@ {"cache_key":"4d57a0fba3cfedfd987e9b2cc324617c02de402d44fafce0682c5e9d137df51b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.noSearchResults","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"No matching files.","text_hash":"6ba2ede6c6019b640f63e7e48c5ee8238e701c6e539ce9abb5a7a9d9c71d8a73","tgt_lang":"pt-BR","translated":"Nenhum arquivo correspondente.","updated_at":"2026-06-16T14:13:25.058Z"} {"cache_key":"4f015b7247310e7db6d80de0129d60608a832a0ca6aef5811070e485355ff03a","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.emptyFilteredHint","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Change the view, search, priority, agent, or archive filter.","text_hash":"049dfae940263ace9707334af06b298c1223c38a449b1cec5a712553badebbd0","tgt_lang":"pt-BR","translated":"Altere a visualização, a busca, a prioridade, o agente ou o filtro de arquivamento.","updated_at":"2026-06-17T14:13:19.801Z"} {"cache_key":"509311a7820bce56b08c1b5cd0d453c5990fd3e51a75e12a44b29fec538828a3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivityLow","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Low","text_hash":"f793de205ead5ac302c4a1627829dea41f176b1068b993a32373fc869918374b","tgt_lang":"pt-BR","translated":"Baixa","updated_at":"2026-07-06T20:20:02.809Z"} +{"cache_key":"51bbd963ad611486b06c0752c6bb9cc30116028ffe990fa1e86774ea9818e8fc","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"pt-BR","translated":"Limite de {hours} horas","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"52a9feec0c469310241b70cb9eb738808938cc679594311dca976d59e9b03eef","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSummary","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Summary: {summary}","text_hash":"3a2270b3cd47b523936c13efec489f36112e0a64fe763dbe972d21fef029e814","tgt_lang":"pt-BR","translated":"Resumo: {summary}","updated_at":"2026-06-16T14:13:11.260Z"} {"cache_key":"538528394e7d3162c1612f25896eb6830e5124d73a5773188041612e25e80507","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.connected","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Connected","text_hash":"22965568d22a14ee17af055d2870b50afcfe9fd94a83eec3196e266932297bb2","tgt_lang":"pt-BR","translated":"Conectado","updated_at":"2026-07-09T10:01:43.718Z"} {"cache_key":"5404d80ea119717cb979cc07112f14dd22d6135bef3b2116db406277f85f9f5d","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.idle","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Idle","text_hash":"ab0171ca0494d441cb6fe96e2efbe1c2a129f1d87cd6c17f03613cfd111149dd","tgt_lang":"pt-BR","translated":"Ociosa","updated_at":"2026-07-09T10:01:43.718Z"} @@ -128,6 +131,7 @@ {"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":"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":"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"} +{"cache_key":"6ab5ef14a8bb6844ec275afe3e70ee5979960a5cf83efb7b095ca349c897f3d6","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"pt-BR","translated":"Semanal · todos os modelos","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"6ab671a864dd54de5b1c3d2b9a0f071ecbc114a47151e7f90f57b301d8a543e0","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthBlocked","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"blocked","text_hash":"6973dddd3ef9cb6a2932702f31777faad9c9bf3124d147a84f31aadb6d139546","tgt_lang":"pt-BR","translated":"bloqueado","updated_at":"2026-06-17T14:13:19.801Z"} {"cache_key":"6bd3eef6e1978232e97b68dd337256f651d59a337d8f94586abd38d3f8fed72e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.ageHours","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"{count}h","text_hash":"5828ef1c1e95e0bae1c98548d1795a2482cc8e14a8b161b183960a06018ce10d","tgt_lang":"pt-BR","translated":"{count}h","updated_at":"2026-06-17T14:13:19.801Z"} {"cache_key":"6cd236863099df01cab0d3187fdc065b6d8ddd65eef4bf799b7c2ea3c83d9d39","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.lastDays","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"{count} days","text_hash":"e9f0a85930cc6fa61b7ac01763893020adc4c712d1b8e8897bdd13971637d529","tgt_lang":"pt-BR","translated":"{count} dias","updated_at":"2026-07-06T06:40:15.357Z"} @@ -156,12 +160,14 @@ {"cache_key":"85cb4e6c4de65570dd4475c45d5dba088ff2f3357fbff1e733d3ab8faea26343","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.splitDown","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Split down","text_hash":"8730b89df7caaf5b5090f9b7365a0a03e0a13d9682dc6418f556b8a676d9e98f","tgt_lang":"pt-BR","translated":"Dividir para baixo","updated_at":"2026-07-06T07:23:13.378Z"} {"cache_key":"8626b07aa9a791dc6a5438a7bad1b0b86ce826ee1f24ea14c96e5d3daad755f7","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneFallback","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Microphone {number}","text_hash":"357eae20db9739dfdbb59ec21db70200f6ca9ee257c28ed637712f147af419ec","tgt_lang":"pt-BR","translated":"Microfone {number}","updated_at":"2026-07-06T17:56:11.051Z"} {"cache_key":"869adaaf933f58ebce0de74cca77566e54c11d15467234708b2838d31d125536","model":"gpt-5","provider":"openai","segment_id":"codexSessions.searchPlaceholder","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Search session titles","text_hash":"9a6bdede84234fa08d6294e1636a34d26cbdd8eca425248f8d3c6cf8844a0cf9","tgt_lang":"pt-BR","translated":"Pesquisar títulos de sessões","updated_at":"2026-07-09T10:01:43.718Z"} +{"cache_key":"86fa07b1257cbd171d5a8324393b9a00a3ed0e5676d6e48331ef01a07cae7777","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"pt-BR","translated":"{used} de {limit}","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"8922f38063d15d1416eff0fcb59469c7166aee8fd3af92db2d14d752d91ecb0c","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.restoreSession","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Restore session","text_hash":"35e4dc9befd3b3a29b50938839af0efb41b08051988dde53e1c1e73d1c2a039f","tgt_lang":"pt-BR","translated":"Restaurar sessão","updated_at":"2026-07-02T14:30:01.256Z"} {"cache_key":"89e202d7c5e0861b81ecba36f93dd58e1302098e882651cf808dad1fdf94ee20","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortBy","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Sort by","text_hash":"c9129025bd3ff6522a7eeebc1abf1481f36e4ac9d74524a473ac1c3be1c6fc2f","tgt_lang":"pt-BR","translated":"Ordenar por","updated_at":"2026-07-06T23:40:46.278Z"} {"cache_key":"8a4c1ba0dde3db6bc2fe7eec30bedcd565b85ccd6326c09ac27446d62d1c8d64","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.root","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Root","text_hash":"44cb005ee2e65d9cc817b0a083579369fb6c24a4be728cb43fd9d4c3ca7f4c2e","tgt_lang":"pt-BR","translated":"Raiz","updated_at":"2026-06-16T14:13:25.058Z"} {"cache_key":"8a5394bf53b38de5b08d8c7fb25c98d145b9f8808056b2b3e181824fb52f5888","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.unknownStatus","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Unknown","text_hash":"b764cdc0eab7137467211272fa539f1260d1bf2e71bcf6ff3bdc960f5c16aa14","tgt_lang":"pt-BR","translated":"Desconhecido","updated_at":"2026-06-16T14:13:17.394Z"} {"cache_key":"8b46b3a9420a33cc7c0da76ddcfba982382f4aea1e048f6ed070572051f2a5ae","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.restorable","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Restorable","text_hash":"bc97d2ddd2dba3ab2391f21314316556111065c4b870bc05679fadd60a754c01","tgt_lang":"pt-BR","translated":"Restaurável","updated_at":"2026-07-05T21:00:34.411Z"} {"cache_key":"8b913e04cb18c20446ee3e359176c63f12f6e7a43aa80223ae7b217a04bd9486","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.systemDefaultMicrophone","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"System default","text_hash":"b0459211f9f76871059135050a2afd9a01e7e41dc32ea58006c51483b9ceab6d","tgt_lang":"pt-BR","translated":"Padrão do sistema","updated_at":"2026-07-06T17:33:35.115Z"} +{"cache_key":"8ccf14b416212eb4ea46f6ffe079d7e843ba58066274fe7bc0cc80799408e026","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"pt-BR","translated":"Abrir painel de uso","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"8d75c4bcf08133241fdbdd59d14dc525c86bd22b603fb8ec3a5a21368c887e5a","model":"gpt-5","provider":"openai","segment_id":"codexSessions.scope.active","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Active","text_hash":"92340695899bd2d86223e4a007620e0d6502fc0e08809773634c7e0743764a9c","tgt_lang":"pt-BR","translated":"Ativas","updated_at":"2026-07-09T10:01:43.718Z"} {"cache_key":"8dba3e3b066e7ea0004b8f2311e9913c0d068575ac584e3f5b52d5763a4cbcaa","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByDate","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Date","text_hash":"99c40ab405926cb5ad1def9cff4d7ce624f8f8abfff4e85f655347fcb949d08e","tgt_lang":"pt-BR","translated":"Data","updated_at":"2026-07-05T14:39:34.196Z"} {"cache_key":"8dc397b6b255a6c5f4942112a5f5062eb723d8408b8b13405d49354d2d660afe","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.workspace","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Session","text_hash":"6959b4159575d8dd76d9f3bbe2c6437904f861e7860c35abd18deffb1c3425a0","tgt_lang":"pt-BR","translated":"Sessão","updated_at":"2026-06-16T14:13:17.394Z"} @@ -171,6 +177,7 @@ {"cache_key":"90ccb537cd248496ee547476b10bec0e580cdaf3cf1ddb4726e64f95e14cd072","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthReadyUnassigned","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"ready unassigned","text_hash":"1e1a31a02e9da6ffa99a459bfd82e5af723794c2175405a5a0d6a32afa955167","tgt_lang":"pt-BR","translated":"pronto não atribuído","updated_at":"2026-06-17T14:13:19.801Z"} {"cache_key":"911b56a2b8e2d77c6e1557404f7bb7c2bfd2f8a379f4bce680596df600808d83","model":"gpt-5","provider":"openai","segment_id":"codexSessions.eyebrow","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Codex fleet","text_hash":"64e0510e4f9e07ad1283b7c1d55e67b5b853081b6ca4013fc8d710aa658d5127","tgt_lang":"pt-BR","translated":"Frota do Codex","updated_at":"2026-07-09T10:01:43.718Z"} {"cache_key":"91a9cfbbe6b8d1cab7ee71cf5a3479fbc95226eee06490a8e1ccf1c52050256f","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewStale","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Stale","text_hash":"40c9e59c5e152b0ae9affc84d8461c29b75a7709e4506307eeedf246b526014e","tgt_lang":"pt-BR","translated":"Obsoleto","updated_at":"2026-06-17T14:13:15.046Z"} +{"cache_key":"936c9592ff4ec8fa573cf76fa03fa84c01e98c03e244d2926f69b4d1aa735270","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"pt-BR","translated":"Limite de 5 horas","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"937af4172e5b08ee8da5d350ac2b59f3eeeeb4706dd58ddedc959a315b71bb2b","model":"gpt-5","provider":"openai","segment_id":"codexSessions.scopeLabel","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Session archive filter","text_hash":"9b7ab0c41b678c43f34c5e4d5b27428141588466c5d14b68bd19bcc93d7b6c38","tgt_lang":"pt-BR","translated":"Filtro de arquivamento de sessões","updated_at":"2026-07-09T10:01:43.718Z"} {"cache_key":"93b768ff784841bdfdc538358fa42ed51e1710f59942037a3436d5cd70638bd8","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePageInactive","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Microphone inputs are unavailable while this page is inactive.","text_hash":"775110f07819e48dc96203ed710c4df3546892e5672d7c469dedeb1e0e163882","tgt_lang":"pt-BR","translated":"As entradas de microfone ficam indisponíveis enquanto esta página está inativa.","updated_at":"2026-07-06T17:56:11.051Z"} {"cache_key":"945fb4725e382dbce447cf68c998e902cd347429a820c41057cf46d5c3707fa6","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailWorkerLogs","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Worker logs","text_hash":"67766b9f222a7ccdae6beb7d6e7877d1a13abb8a346a8c5c803a4380bdf851b1","tgt_lang":"pt-BR","translated":"Logs do worker","updated_at":"2026-06-16T14:13:11.260Z"} @@ -196,6 +203,7 @@ {"cache_key":"aae3e4c2771dadd4bb5ed4c32f94e44a13ec9e97b00f864b54bcb255a760cadc","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.readCount","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"{count} read","text_hash":"b3c6c64f1153fb7b2672d2894f532d3f7adea1dd1c473363587fc520be35998e","tgt_lang":"pt-BR","translated":"{count} lido(s)","updated_at":"2026-06-16T14:13:25.058Z"} {"cache_key":"aae437b6a949776a04a7903a6847200de96d1e4e52a4b7ad02df6f11b068f82f","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.badgeHeartbeat","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"heartbeat {age}","text_hash":"000637b3800ae069edbbe207cfad0a3f5037f06e9661ee89d70a1dfe6f404485","tgt_lang":"pt-BR","translated":"heartbeat {age}","updated_at":"2026-06-17T14:13:19.801Z"} {"cache_key":"ab5cdcb2290b3fa0305107f2aa4b8b46dba91270e042b2df0ca869f6d5a387d3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthFailedAttempts","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"failed attempts","text_hash":"fd9023af0795825a458100ddbe894a7a8f603324a2b7ad2305d4c9d2334cbd26","tgt_lang":"pt-BR","translated":"tentativas com falha","updated_at":"2026-06-17T14:13:19.801Z"} +{"cache_key":"abd11f2c4e4dd7656dffc572cb915a9a60866de169bdee86b1827eea173845c6","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"pt-BR","translated":"Redefine em {time}","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"acc6c8c3fc33923523ab66513541bd3b1a4a5c9fb44ba33b88da97be210b7e3a","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateYesterday","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Yesterday","text_hash":"566181254b293aa66653e43313be9e39c12d44f9ac4fcd3236ef1e9c50a2903f","tgt_lang":"pt-BR","translated":"Ontem","updated_at":"2026-07-05T14:39:34.196Z"} {"cache_key":"ad8ed5de23d762dd82e7cc56247cf1e9fe3183b020433004d2c35f9472fdb6e9","model":"gpt-5.5","provider":"openai","segment_id":"tabs.mcp","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"MCP","text_hash":"53f13ae99ed53bd346eb8e1c8cefb7ef8260683b50401caf101360967ea052aa","tgt_lang":"pt-BR","translated":"MCP","updated_at":"2026-05-31T05:36:33.676Z"} {"cache_key":"b42f47158cd5593f085bf82670134b024167a2ab5bc9c49a62f4cea6e83c034c","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loading","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Loading Codex sessions…","text_hash":"18a71c76786db89f928536e164096422e68e86db86fa3684bc3644f36df70300","tgt_lang":"pt-BR","translated":"Carregando sessões do Codex…","updated_at":"2026-07-09T10:01:43.718Z"} @@ -222,6 +230,7 @@ {"cache_key":"d23a8d2922fc9bd7f120a8394f1b53bfa74808430b8a94127987450d6a574592","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archiveSession","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Archive session","text_hash":"740ded37480365eae8bf833ccaaa58350fc9434a77b7bb65b5516eba476fbec3","tgt_lang":"pt-BR","translated":"Arquivar sessão","updated_at":"2026-07-02T14:30:01.256Z"} {"cache_key":"d2938a4d955ba9e9de4328296f5203fd6bf6e83656539a2463236aefb575c857","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.estimatedCost","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Est. cost","text_hash":"3199f14286736527bfc6ad9165629415a5aa087517acd2c0e9b1ae8bb5d26766","tgt_lang":"pt-BR","translated":"Custo estimado","updated_at":"2026-07-05T16:00:07.193Z"} {"cache_key":"d50ec3d6cdda5e85f94e7ffb61547f3f5696d9b39d9612ffd7221d90ab11d005","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailNoNotes","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"No operator notes yet.","text_hash":"497e07f47e33851483b6fb1254e88dc640d9fb25525c51f89934a7d39d7b2b9c","tgt_lang":"pt-BR","translated":"Nenhuma nota do operador ainda.","updated_at":"2026-06-16T14:13:17.394Z"} +{"cache_key":"d53ff5244d91ad975a6a9456c61a132022d022391883f9703524f240e769ac93","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"pt-BR","translated":"Créditos de uso","updated_at":"2026-07-09T11:48:56.309Z"} {"cache_key":"d54e130ea95e9c4b23bac3149fe4730de8ecf8c063e278d8e8eb59daf59382ab","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewMissingProof","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Missing proof","text_hash":"b46debe888e32eec183dc5936c79d22ea43bec580c410c2b3c1aa24aaa75d677","tgt_lang":"pt-BR","translated":"Sem comprovação","updated_at":"2026-06-17T14:13:15.046Z"} {"cache_key":"d66ada3975a18ef7bef1ec6f4cdc3944b4a9b1ee5cd97a3d591ebb62dc0389da","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationTenant","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Tenant: {tenant}","text_hash":"e896dc96a6847d7aaa593069e890e7a712fd60d7be60280ee24e1942e10411b0","tgt_lang":"pt-BR","translated":"Tenant: {tenant}","updated_at":"2026-06-16T14:13:11.260Z"} {"cache_key":"d77c54c95fde6661931fa9c02f685997d8bd8a47ede33c9e4c9a78b209eeb86b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.path","source_path":"ui/src/i18n/locales/pt-BR.ts","src_lang":"en","text":"Workspace path","text_hash":"1fddb73e40f0f5cc6fbf747930a11f857b7a37991caeb4d8677433bbc50a2a38","tgt_lang":"pt-BR","translated":"Caminho do workspace","updated_at":"2026-06-16T14:13:25.058Z"} diff --git a/ui/src/i18n/.i18n/ru.meta.json b/ui/src/i18n/.i18n/ru.meta.json index 176a8a39ae6..6ce50061baf 100644 --- a/ui/src/i18n/.i18n/ru.meta.json +++ b/ui/src/i18n/.i18n/ru.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:48.339Z", + "generatedAt": "2026-07-09T14:24:55.424Z", "locale": "ru", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/ru.tm.jsonl b/ui/src/i18n/.i18n/ru.tm.jsonl index aad68d867f4..30fa42183ec 100644 --- a/ui/src/i18n/.i18n/ru.tm.jsonl +++ b/ui/src/i18n/.i18n/ru.tm.jsonl @@ -27,6 +27,7 @@ {"cache_key":"0315d04952a7882e7c7c2cba458d59fd5d126831e8e1cb9e7288ab6825447878","model":"gpt-5.5","provider":"openai","segment_id":"usage.overview.perMinute","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"/ min","text_hash":"ede1804d815f1fc5f7a6975db537261fea2fe5e95e58eb82e088af45aa525acc","tgt_lang":"ru","translated":"/ мин","updated_at":"2026-06-26T21:41:16.423Z"} {"cache_key":"0332ae0aca36d5470188638ee6ba21ea2fa6ed6ee4028524b01215297a459cb4","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.requests","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"{count} requests","text_hash":"1e23ff6956124091cd470f5091cee8108c3766314b69871b3ff792eaf506455f","tgt_lang":"ru","translated":"{count} запросов","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"035e9cc9e14b61950d828963f83565adf4bd18755a069ee6c1d9ac0ee122f1e6","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.talkAdvancedSettingsRequiresAdmin","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Advanced settings require admin","text_hash":"021f44198c7c7935a112e55150d2daaebe388ac9e529460d64c2f8f3ba3b9d82","tgt_lang":"ru","translated":"Для расширенных настроек требуется доступ администратора","updated_at":"2026-07-06T20:20:02.809Z"} +{"cache_key":"0380457dfb6cb6146a141f2d7e01a6b40f6f90e6b3ad604d9d57c856e67b3657","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"ru","translated":"Дневной лимит","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"038c18a1b1482a7ca09f097772603f9d1459e358284c42f5d5ab9150bc04e6f5","model":"gpt-5.5","provider":"openai","segment_id":"workboard.badgeDiagnostics","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"{count} diagnostics","text_hash":"ffc15749e420a111c30c3127911144bc733aabce2795c173587b0ad7c3320536","tgt_lang":"ru","translated":"{count} диагностик","updated_at":"2026-06-26T21:40:03.947Z"} {"cache_key":"038dca6f392cf4bb281dc9e885b8f1541f9ca08a85adc3a6d30e576b38a4854c","model":"gpt-5.5","provider":"openai","segment_id":"common.refresh","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Refresh","text_hash":"0e91610117029a62a478b7fa7df0b8598bebe3ab1e192d4b1882e310719c9671","tgt_lang":"ru","translated":"Обновить","updated_at":"2026-06-26T21:38:25.777Z"} {"cache_key":"038f218754d1ee5e5ce55c39c65ab02bc92bb5a23f72deccc878fb901e3300f4","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.open","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Open split view","text_hash":"51e50f7be73433216ae62f58fdbc586372f5a6063ee9978cec96793ef75fa554","tgt_lang":"ru","translated":"Открыть разделенный вид","updated_at":"2026-07-06T07:24:46.448Z"} @@ -58,6 +59,7 @@ {"cache_key":"06f773ea73ff994ad569e98f53e502d777d8b9626e1fd27fe73b8d954ec60de4","model":"gpt-5.5","provider":"openai","segment_id":"chat.showCronSessions","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Show cron sessions","text_hash":"0cc0314eb8ffe4f1b14e774b3eec8f0433cc0ab073f396ca789d6ee35cb37385","tgt_lang":"ru","translated":"Показать сеансы cron","updated_at":"2026-06-26T21:41:50.918Z"} {"cache_key":"0715993e201e0273ea20ac9e22da88961eb271d3af41a9b8e21972b86eed9d9a","model":"gpt-5.5","provider":"openai","segment_id":"nav.resize","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Resize sidebar","text_hash":"243854b4d0c709a06e41005bc74a72d6b49463cc2d9ac5bc2967666f6b988c88","tgt_lang":"ru","translated":"Изменить размер боковой панели","updated_at":"2026-06-26T21:39:23.906Z"} {"cache_key":"07219434fa5dfd4138a76536de3dd5633dddb58e1673b49a5c8ff29b2cc97f43","model":"gpt-5.5","provider":"openai","segment_id":"agents.tabs.channels","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Channels","text_hash":"4c8906cf76f5740ab8792aef9f0033fe21a92045e90b357816064e9f6860a03e","tgt_lang":"ru","translated":"Каналы","updated_at":"2026-06-26T21:39:04.015Z"} +{"cache_key":"07481acd04f6928cc816da80a72924f193935ad214ddfe22adf12b751e82e210","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"ru","translated":"Кредиты использования","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"075a33a7bf523bab144a9a26b0506f61953a75bd05396e6c5bc1716357200c18","model":"gpt-5.5","provider":"openai","segment_id":"agents.channels.connectedCount","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"{connected}/{total} connected","text_hash":"6729df072a594588965877e7cd93c8bc996861680ea407de026e042f432778ce","tgt_lang":"ru","translated":"{connected}/{total} подключено","updated_at":"2026-06-26T21:39:07.415Z"} {"cache_key":"075a425765d4891125567bcca9001e10a41e154658f626bc5532cebd7045ec03","model":"gpt-5.5","provider":"openai","segment_id":"channels.nostr.usernameHelp","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Short username (e.g., satoshi)","text_hash":"5e91f6b09039a459d4574c826d4280878ff019aeb382aa65e96c108472df0acf","tgt_lang":"ru","translated":"Короткое имя пользователя (например, satoshi)","updated_at":"2026-06-26T21:38:40.558Z"} {"cache_key":"075d222120bb7d0d5ac9c4cef17ff7fcb758a714b3cfec8fc94c5b475dd2d965","model":"gpt-5.5","provider":"openai","segment_id":"common.search","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Search","text_hash":"49c266baaaa70981ea188fa714d5c40cf13830d786a861c9943ae0d26a7f3fe9","tgt_lang":"ru","translated":"Поиск","updated_at":"2026-06-26T21:38:34.337Z"} @@ -110,6 +112,7 @@ {"cache_key":"0ea0cba4925099451535cf48b8a968ce8938a40702e3d40486cfd0567166ef04","model":"gpt-5.5","provider":"openai","segment_id":"workboard.status.done","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Done","text_hash":"11a6767d5674c7e45f7e00dc525762275b3a48491ad6045427d2609cc496c516","tgt_lang":"ru","translated":"Выполнено","updated_at":"2026-06-26T21:39:43.912Z"} {"cache_key":"0ec26a3de981a155e73bb7af87d59e6dc2fa4430a828f26424eb38a6d48b3367","model":"gpt-5.5","provider":"openai","segment_id":"dreaming.trace.grounded","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Grounded","text_hash":"5b6f73f04fe1a6af2dc43bebb45478862b0bd1fe079eed12f8bc2000a59bf68c","tgt_lang":"ru","translated":"Закрепленные","updated_at":"2026-06-26T21:40:48.120Z"} {"cache_key":"0ef65685f36e01ffc550b844b355d78f6d452409f2bf9cdc7f405c3ead618973","model":"gpt-5.5","provider":"openai","segment_id":"agents.context.schedulingSubtitle","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Workspace and scheduling targets.","text_hash":"60be94da29b49754cf5dcb995ada31d5fc2abead604a6f97740eaaf57c184545","tgt_lang":"ru","translated":"Рабочая область и целевые объекты расписания.","updated_at":"2026-06-26T21:39:07.415Z"} +{"cache_key":"0f02c79e1b9f18d5ca775d8cc6810abebab45e82a598a691af9102924c7385ae","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"ru","translated":"Еженедельно · все модели","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"0f0907305aecc9f34afceeb0e0d7c933888db63a58aa110d4fe2186279e1c0b0","model":"gpt-5.5","provider":"openai","segment_id":"agents.files.extensionPreview","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"{ext} Preview","text_hash":"6368a3f430920120daf8a7f60cad5598b853ca1bff83f5126021216afe09533b","tgt_lang":"ru","translated":"Предпросмотр {ext}","updated_at":"2026-06-26T21:39:11.166Z"} {"cache_key":"0f0b184cb2f6945b2a013f3aacb402876197792fe9d0017d5be2d06f3956414e","model":"gpt-5.5","provider":"openai","segment_id":"usage.filters.sessionsCount","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"{count} sessions","text_hash":"27de9b3be346a2abd2cb67f9f93abfe8100d7ce996e1204b75fc84670c7818e6","tgt_lang":"ru","translated":"{count} сеансов","updated_at":"2026-06-26T21:41:03.285Z"} {"cache_key":"0f1d6e22d9d633a1bc50ca97eb8257640204b3a67676d066e1239a5ee70547de","model":"gpt-5.5","provider":"openai","segment_id":"languages.es","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Español (Spanish)","text_hash":"b785e11e822c061a3a5368c55fbeb3f436766ef1e9b3448a605083d0b06ecddb","tgt_lang":"ru","translated":"Español (испанский)","updated_at":"2026-06-26T21:42:06.902Z"} @@ -423,6 +426,7 @@ {"cache_key":"3d30c57c59456f529edb63f11c81932546b1c04140f25bfd32ac3424c04804a0","model":"gpt-5.5","provider":"openai","segment_id":"usage.filters.pin","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Pin","text_hash":"ff1cee74414621d812efa8f77a6024850158c209fba6158772088703c2a02ff9","tgt_lang":"ru","translated":"Закрепить","updated_at":"2026-06-26T21:40:59.486Z"} {"cache_key":"3d4de78f5ed14e8a8a29503721cd4bc856b15aeea26882a9f4189542e5d27e05","model":"gpt-5.5","provider":"openai","segment_id":"workboard.lastRefreshed","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Updated {time}","text_hash":"2f87419441e6111b4d62893d3c4ef5ddeb2c8e1af82fabab6132856faf77f907","tgt_lang":"ru","translated":"Обновлено {time}","updated_at":"2026-06-26T21:39:57.757Z"} {"cache_key":"3d6d55e92a692e0e7a32ea1ee133bef9a1bea1be900310eff7d625c0478a93bb","model":"gpt-5.5","provider":"openai","segment_id":"chat.selectors.agentFilter","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Filter sessions by agent","text_hash":"7d8f5551ac875b8ddfae01209d2eb5e8f9c6db04d0808312765bcc5c6322a360","tgt_lang":"ru","translated":"Фильтр сеансов по агенту","updated_at":"2026-06-26T21:41:59.944Z"} +{"cache_key":"3d6facbcca4f5b5e42f2ff77c75bccff0579f5ea35fa11035845155f829be720","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"ru","translated":"{hours}-часовой лимит","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"3d7e6614e0eecddec183ee7e29d10c80926efb47639d9998f094c4c0d8c3b391","model":"gpt-5.5","provider":"openai","segment_id":"workboard.template.plugin","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Plugin","text_hash":"ab1173eed1d477d9e951c2316a74d1923220e64d1bbaeadf03c88e20576c7450","tgt_lang":"ru","translated":"Плагин","updated_at":"2026-06-26T21:40:00.644Z"} {"cache_key":"3dc88f8cc7e6aca4c287dd0bbfd1f277d714d78fc2ed108186172e319f34f8e9","model":"gpt-5.5","provider":"openai","segment_id":"common.connect","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Connect","text_hash":"1a2303ede07493acc7caaa7c737f3c52bcc9cf04372be19ed1b0af6b9f2c791e","tgt_lang":"ru","translated":"Подключить","updated_at":"2026-06-26T21:38:25.777Z"} {"cache_key":"3df395920c93c14dfb940dd1fd92dc3216edaae823f29b814ef2294efbd9c8dc","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.cantAddYet","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Can't add job yet","text_hash":"4044d5877dcb5b01039cb98c32106f3f3b91348355bbd0d784829e7fec115e61","tgt_lang":"ru","translated":"Пока нельзя добавить задание","updated_at":"2026-06-26T21:42:44.768Z"} @@ -498,6 +502,7 @@ {"cache_key":"47eae07939b92b91c9fff8d50b8e5f90f2cddd8a83bd631da67faa519f1cd9d4","model":"gpt-5","provider":"openai","segment_id":"codexSessions.searchPlaceholder","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Search session titles","text_hash":"9a6bdede84234fa08d6294e1636a34d26cbdd8eca425248f8d3c6cf8844a0cf9","tgt_lang":"ru","translated":"Поиск по названиям сеансов","updated_at":"2026-07-09T10:01:43.745Z"} {"cache_key":"4840ebf022e8b0b815dc02f19343108c78297d40380883321f9bb90381f7de04","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByKind","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Kind","text_hash":"f5387f9bb6ed70315a77fdcb9335facc27a9bf241f35955bd2755c55e0c016c7","tgt_lang":"ru","translated":"Тип","updated_at":"2026-06-26T21:38:51.115Z"} {"cache_key":"487afb3b4a58b8473e5b223e8147e0d1b54e66d7261314825c4cb72e12c60f4a","model":"gpt-5.5","provider":"openai","segment_id":"execApproval.labels.security","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Security","text_hash":"8f6fb4eb7f42c0e245e29e63f5b82cc3ba19852681d1ed9aed291f59cf75ec0e","tgt_lang":"ru","translated":"Безопасность","updated_at":"2026-06-26T21:39:20.621Z"} +{"cache_key":"48a206e55d4e8c05c4bf06476aa382c75c3eecea4da59a3c6f98e8363a8d0d8a","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"ru","translated":"{used} из {limit}","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"4964a69fca8d6848181a5bbf56cb4cc5ef41bcd26e4ddf31242b0a4b04e942de","model":"gpt-5.5","provider":"openai","segment_id":"logsView.truncated","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Log output truncated; showing latest chunk.","text_hash":"54cc74a976c9d17c5565753bb89162ee78bc5a028eb501586cfb443d9b54a794","tgt_lang":"ru","translated":"Вывод лога усечен; показан последний фрагмент.","updated_at":"2026-06-26T21:39:38.402Z"} {"cache_key":"496c1373e6989c30a5233381a9816ddd48afc97347115b5439a661b558119018","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameSession","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Rename session","text_hash":"2cad0766accc2d3f70f007068524cea983e0d53f54543e9e82a4e73b2a07987f","tgt_lang":"ru","translated":"Переименовать сеанс","updated_at":"2026-07-02T14:31:15.336Z"} {"cache_key":"498d60745e5596ef3824d4f3867eef775d0ca1e422c4a003c53091069ee66069","model":"gpt-5.5","provider":"openai","segment_id":"overview.connection.authDocsLink","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Docs: Control UI auth","text_hash":"2643725608b446e5c8c6810cb458b90d6d2d78437927acc96aa229615b2da336","tgt_lang":"ru","translated":"Документация: аутентификация Control UI","updated_at":"2026-06-26T21:40:28.260Z"} @@ -1300,6 +1305,7 @@ {"cache_key":"c9c34c8b4d118947c9e2aea28679143fb15203ba5b121ee52d032baf4938a0e5","model":"gpt-5.5","provider":"openai","segment_id":"chat.settings","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Chat settings","text_hash":"17de0faa9d2cb0c43e5e57f55bd0ae48f37e62d3a31dada7d77fbdaafc142944","tgt_lang":"ru","translated":"Настройки чата","updated_at":"2026-06-26T21:41:50.917Z"} {"cache_key":"c9c6f51fe817f8d8a95a5cea4fd8b31c27b840fa162d269e9ac85bcc2c4fe8f9","model":"gpt-5.5","provider":"openai","segment_id":"overview.connection.step4","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Or generate a reusable token:","text_hash":"e9512b115cf5e0471b6c45328a8c304ae1a1b5541c3bd9bd26f3c7d2dcbed14b","tgt_lang":"ru","translated":"Или создайте многоразовый токен:","updated_at":"2026-06-26T21:40:28.260Z"} {"cache_key":"c9f7cbd114a679cbc13c4cd981cc62e4f8f7351dd6ad36b0afb8acd28a25d0db","model":"gpt-5.5","provider":"openai","segment_id":"cron.errors.invalidIntervalAmount","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Invalid interval amount.","text_hash":"00547e12dda54278adb10d27e4d77113926832b609b0d0220c4614a4a223d636","tgt_lang":"ru","translated":"Недопустимое значение интервала.","updated_at":"2026-06-26T21:42:51.343Z"} +{"cache_key":"c9ffe81ddd71269f3ef35949a6a61b882f05b6c5900d6bbf5337eb3014f1820d","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"ru","translated":"Использование плана","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"ca9e7dd810964197f78d3594df698f1ebb9c7a65ed1c3df3deebc21a53d36290","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.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"} {"cache_key":"cac3b04be4eb40dd77377570c608c524c3b58fc0ffa3991763a83862efb918c6","model":"gpt-5.5","provider":"openai","segment_id":"usage.overview.messages","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Messages","text_hash":"04d7b48339271ea67d3c8493e07e90bc68dc565485eebe5e0b67c21c1586e3c0","tgt_lang":"ru","translated":"Сообщения","updated_at":"2026-06-26T21:41:12.411Z"} {"cache_key":"cadb7277535ca8a7ff446d92159b60566452966ccdbe7bd3cd48dadc3ee72ea4","model":"gpt-5.5","provider":"openai","segment_id":"instances.hideHosts","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Hide hosts and IPs","text_hash":"89fb72b6105a014b77e71fac6fe4d6b492e4804db99e32e7c90ac1aa0c333a81","tgt_lang":"ru","translated":"Скрыть хосты и IP-адреса","updated_at":"2026-06-26T21:38:48.084Z"} @@ -1440,6 +1446,7 @@ {"cache_key":"e1994a5e28436b969d50c5459c620fee2a7c1748006e8678bbb0765d22ee0d94","model":"gpt-5.5","provider":"openai","segment_id":"dreaming.stats.promoted","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Promoted","text_hash":"0cf04463c4276a6276986c22155bd4a32ce81e8dd162a657dedfa9afb97a7371","tgt_lang":"ru","translated":"Повышенные","updated_at":"2026-06-26T21:40:48.120Z"} {"cache_key":"e2262364cef6e3cb7939fb988f02c5c18d304d01e0e849bdfec51081d363bb4b","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupMenu","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Group options for {group}","text_hash":"29456bfd0f10cfa1b3b0c005e2202221ff66aafe6b72ee05f7cfc93ce9e79af7","tgt_lang":"ru","translated":"Параметры группы {group}","updated_at":"2026-07-06T23:41:27.246Z"} {"cache_key":"e22f0f0cf1c07b880a470bfd7620077928b6dd2bc63d78de865a0a2bc3b6ff6f","model":"gpt-5.5","provider":"openai","segment_id":"cron.errors.staggerAmountInvalid","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Stagger must be greater than 0.","text_hash":"4d3aefc4b3c8f5972553b956e503e31933ad74ce6538e8561bf2068c4ab96f86","tgt_lang":"ru","translated":"Смещение должно быть больше 0.","updated_at":"2026-06-26T21:42:51.343Z"} +{"cache_key":"e23c344fa0b477b9ebb9801429ea0aa29e713279faa1b98b2c6e8fd206b011ab","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"ru","translated":"Открыть панель использования","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"e2522addbb0ad9f36dc9cd15bb5c41710cddc1135678ad9a8aa84b4e20d26986","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.assistantTaskPrompt","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Assistant task prompt","text_hash":"eae69a35d4c19250d0b7b64f79fc60a3e461cd02d085df3bf8079852fe42df91","tgt_lang":"ru","translated":"Запрос для задачи ассистента","updated_at":"2026-06-26T21:42:36.583Z"} {"cache_key":"e27871e743e989f00ea201d670abe038f8dc3c85b6e13314ccf80b3f44ebd54b","model":"gpt-5.5","provider":"openai","segment_id":"tabs.debug","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Debug","text_hash":"1a03bd2fd107c453f3183e30b9716f82200671e8270fbbefbe602f5a48705527","tgt_lang":"ru","translated":"Отладка","updated_at":"2026-06-26T21:39:27.659Z"} {"cache_key":"e2c7f9ec43057550ba971f25751b7efea4452b934a9466d7e99c8726d09b6a57","model":"gpt-5.5","provider":"openai","segment_id":"overview.access.subtitle","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Where the dashboard connects and how it authenticates.","text_hash":"2f6f51f66a943e8e3fc0204189b15b27a161e28fec528288dc8886c924b2ff51","tgt_lang":"ru","translated":"Где подключается панель мониторинга и как она проходит аутентификацию.","updated_at":"2026-06-26T21:40:14.690Z"} @@ -1479,6 +1486,7 @@ {"cache_key":"e877221b431e5669f0f97c0349ad3354058d3b3a0d03757110910e8b7af03b37","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.activeTooltip","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Loads sessions updated in the last {count} minutes.","text_hash":"7e8c0a32d33d65b9fbfd6173971736fc74a247637ad1ead7d712c628c6758936","tgt_lang":"ru","translated":"Загружает сеансы, обновленные за последние {count} минут.","updated_at":"2026-06-26T21:38:51.115Z"} {"cache_key":"e8a9f3dd22ab94f75259c2eedcdb063650ec7b8437f18046049570efe116277f","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.clearAgentHelp","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Force this job to use the gateway default assistant.","text_hash":"8e78752a8dff28cb0975c91d2244c582d27030801018a7f0101e1c6b82e59c0b","tgt_lang":"ru","translated":"Принудительно использовать для этого задания ассистента шлюза по умолчанию.","updated_at":"2026-06-26T21:42:41.136Z"} {"cache_key":"e8c5c31889e1a03429dbbbcfad6a1106636f47fefa58997a6735f4431310c6a9","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.restoreSession","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Restore session","text_hash":"35e4dc9befd3b3a29b50938839af0efb41b08051988dde53e1c1e73d1c2a039f","tgt_lang":"ru","translated":"Восстановить сеанс","updated_at":"2026-07-02T14:31:15.336Z"} +{"cache_key":"e8cfa6759138b84d2493db1c678851ac323a0dcd8f7d7df43aceef0ffd6623ec","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"ru","translated":"Сброс {time}","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"e8d248c10654093ade100a2f753a8310180736190a7e6cbcd9558668e8ab138c","model":"gpt-5.5","provider":"openai","segment_id":"cron.runs.scope","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Scope","text_hash":"b073f6c68ef8721107fd9815b19b2c35ec111d526b75c2123d1111ba64424000","tgt_lang":"ru","translated":"Область","updated_at":"2026-06-26T21:42:21.706Z"} {"cache_key":"e8e5b675bf2ca70cf366b76ef84ed5e7fb4c8e3752d09fc562c957abd0f68750","model":"gpt-5.5","provider":"openai","segment_id":"channels.nostr.account","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Account","text_hash":"7e1b0d5641f2640ce9a953ec231eea2c27a2a7633f7d3c273e5735e2b30c10b7","tgt_lang":"ru","translated":"Аккаунт","updated_at":"2026-06-26T21:38:40.558Z"} {"cache_key":"e8f258375267e55427da9b6da3062f49f338a0d3b7a2cc13f63dacbcb231534f","model":"gpt-5.5","provider":"openai","segment_id":"workboard.layoutComfortable","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Comfortable card density","text_hash":"bfaaf4553fd254bf24431ebabf62faebfd862685e9e7a52f5e799b11488dc7fe","tgt_lang":"ru","translated":"Комфортная плотность карточек","updated_at":"2026-06-26T21:39:57.757Z"} @@ -1486,6 +1494,7 @@ {"cache_key":"e9461f792ac6c139caae3a911dcc92bcec5247288cefde48e03a7fdd9ef67f41","model":"gpt-5.5","provider":"openai","segment_id":"workboard.eventMoved","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Moved","text_hash":"b11c9047f3512271a5cbbe3040a2628206e1d95765b288cf03affcae5edbb457","tgt_lang":"ru","translated":"Перемещено","updated_at":"2026-06-26T21:40:10.976Z"} {"cache_key":"e97925e8487b6f0b972a5844543bb1c6b6c2d91435fc26f6bf0e82156db3f17e","model":"gpt-5.5","provider":"openai","segment_id":"cron.form.agentTurnHelp","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Starts an assistant run in its own session using your prompt.","text_hash":"96fbd6ab75c8af8fb9a095827bf23510c72fcbd595d3a20a28ce389d8f288dd1","tgt_lang":"ru","translated":"Запускает ассистента в отдельной сессии с вашим запросом.","updated_at":"2026-06-26T21:42:36.583Z"} {"cache_key":"e9b34136679240daacb7cc9c3948634a50f76a7049d425ee31954cb09d7a9e10","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.hideFilters","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Hide filters","text_hash":"9e6ea475a2391a64e093d87c05083843ff734b128138c0ab0c277bf8c3bb6e14","tgt_lang":"ru","translated":"Скрыть фильтры","updated_at":"2026-06-26T21:38:48.084Z"} +{"cache_key":"e9e869ed73ea47458ec47d6d1c98ff7edb7120f1faba4277f5d773cd20769b02","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"ru","translated":"5-часовой лимит","updated_at":"2026-07-09T11:50:01.324Z"} {"cache_key":"ea3a290f9231bc950d139a8e14da709c74aae39093bd1913a4a76fe5e4ebaf83","model":"gpt-5.5","provider":"openai","segment_id":"agents.tabs.cronJobs","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Cron Jobs","text_hash":"043d5c96a8cd2805d6743faef29eaa7deb83ff3ed45f8cd42df1b75c257f8d65","tgt_lang":"ru","translated":"Cron Jobs","updated_at":"2026-06-26T21:39:04.015Z"} {"cache_key":"ea644ae5e87aa89b73dad33fa952281e313a6d44be479b4e0f3c2efc5312aa36","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.subject","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Subject","text_hash":"68971283841aecdf1da48428849b3b33164ec5c41d0f3c4d6cea624db5aff8f2","tgt_lang":"ru","translated":"Тема","updated_at":"2026-06-26T21:39:01.088Z"} {"cache_key":"ea6d45d2cc364f203ac5ab837e06278f1a82f96e04b79db49faa3fefb0d91737","model":"gpt-5.5","provider":"openai","segment_id":"debug.lastHeartbeat","source_path":"ui/src/i18n/locales/ru.ts","src_lang":"en","text":"Last heartbeat","text_hash":"40f7951c09dbc025eec26f753c21f5bd6a5dc65a2192d6a788594479b1437207","tgt_lang":"ru","translated":"Последний heartbeat","updated_at":"2026-06-26T21:39:14.470Z"} diff --git a/ui/src/i18n/.i18n/th.meta.json b/ui/src/i18n/.i18n/th.meta.json index 885e0975025..c3cf16970f1 100644 --- a/ui/src/i18n/.i18n/th.meta.json +++ b/ui/src/i18n/.i18n/th.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:42.588Z", + "generatedAt": "2026-07-09T14:24:54.997Z", "locale": "th", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/th.tm.jsonl b/ui/src/i18n/.i18n/th.tm.jsonl index f63dcc79356..7517d54c69e 100644 --- a/ui/src/i18n/.i18n/th.tm.jsonl +++ b/ui/src/i18n/.i18n/th.tm.jsonl @@ -3,6 +3,7 @@ {"cache_key":"02a03065c7f500754697eae4d4d3a6d4ab5fdd5c0b93932044590f3601d365df","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loadingMore","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Loading…","text_hash":"ba3bbbe10d8bef66441c88536ce7b8e724e2829b59a3da658654f4961cd61ae5","tgt_lang":"th","translated":"กำลังโหลด…","updated_at":"2026-07-09T10:01:43.768Z"} {"cache_key":"0416370cd59079f175bef46a208ff2e710e82732ed4e4325741f4a765afb3b25","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameSessionPrompt","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Rename session","text_hash":"2cad0766accc2d3f70f007068524cea983e0d53f54543e9e82a4e73b2a07987f","tgt_lang":"th","translated":"เปลี่ยนชื่อเซสชัน","updated_at":"2026-07-02T14:30:49.122Z"} {"cache_key":"0484da8e97f198de06d6e60292b6878b9dab343bacc79b35873515813df20b43","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.open","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Open split view","text_hash":"51e50f7be73433216ae62f58fdbc586372f5a6063ee9978cec96793ef75fa554","tgt_lang":"th","translated":"เปิดมุมมองแบบแบ่ง","updated_at":"2026-07-06T07:24:12.973Z"} +{"cache_key":"06734f1ecf70caa17c550088e328262e605109ba6c5bd99782ad7393fd999f47","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"th","translated":"รายสัปดาห์ · ทุกรุ่น","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"07f2d9fb15a802a2cfb871ebb4649d597039c451b8baa8b2e2731dafa050884d","model":"gpt-5.5","provider":"openai","segment_id":"workboard.eventAttachmentAdded","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Attachment added","text_hash":"f39a309fb0054d8e6c512733d6f3a4791c6b63157a388d72f635574d98b49b3e","tgt_lang":"th","translated":"เพิ่มไฟล์แนบแล้ว","updated_at":"2026-05-30T15:38:44.763Z"} {"cache_key":"0898d34ed3959d5ee042391a34a6896f5a7ff366e2960620197f13a4e596d248","model":"gpt-5.5","provider":"openai","segment_id":"nodes.pairing.pending","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Device requests waiting for review: {count}","text_hash":"0bc0822235b930faa4038f1d7859f695de2519c989595c438505f8ce100a5801","tgt_lang":"th","translated":"คำขออุปกรณ์ที่รอการตรวจสอบ: {count}","updated_at":"2026-07-04T16:48:49.478Z"} {"cache_key":"0a0ec19cae45a3fcea7db6c2eac7bf5fb31baad7bba06854b23057b7386e3794","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailNoNotes","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"No operator notes yet.","text_hash":"497e07f47e33851483b6fb1254e88dc640d9fb25525c51f89934a7d39d7b2b9c","tgt_lang":"th","translated":"ยังไม่มีบันทึกจากผู้ดำเนินการ","updated_at":"2026-06-16T14:17:26.503Z"} @@ -20,6 +21,7 @@ {"cache_key":"11c6d0520843253e44c7096600bbc2187c79ead01ed31f5da4fc85b4d643a0d1","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateYesterday","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Yesterday","text_hash":"566181254b293aa66653e43313be9e39c12d44f9ac4fcd3236ef1e9c50a2903f","tgt_lang":"th","translated":"เมื่อวาน","updated_at":"2026-07-05T14:40:13.915Z"} {"cache_key":"11d78cf7deb4dcf39534d098da1bf2a49e11f4bc148fabbf5bdbea0e7bd1da51","model":"gpt-5","provider":"openai","segment_id":"codexSessions.refresh","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Refresh","text_hash":"0e91610117029a62a478b7fa7df0b8598bebe3ab1e192d4b1882e310719c9671","tgt_lang":"th","translated":"รีเฟรช","updated_at":"2026-07-09T10:01:43.768Z"} {"cache_key":"12129c925e7e62bb39a3a851677ac36b6f55bc6fe39999fbf6db5a861274360a","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.dependenciesBlockedTitle","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Waiting on dependencies: {parents}.","text_hash":"50fb8f9b1326b69bd67d25583ddb4f70b9d75ae6e3ff8a9056a9361daa4b7d8b","tgt_lang":"th","translated":"กำลังรอการพึ่งพา: {parents}","updated_at":"2026-06-16T14:17:26.503Z"} +{"cache_key":"1263759495d4b53a4a9d9f890c2cbda9ff63e091774c230c4c74e20c7e3a60b0","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"th","translated":"เปิดแดชบอร์ดการใช้งาน","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"127c4e71a2eaf42c0551539993137cb382a2a7f705948d16275167f0d8836c54","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkModel","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Model","text_hash":"5e2c614c23f02239bc03c6c04fcb681950f9e72bf8fdff6be79c79841cbb10c0","tgt_lang":"th","translated":"โมเดล","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"133b040c3faa22c4b2ea6f5dce395bbc7b495874213ffa66fa96e7841d3f3f59","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.estimatedCost","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Est. cost","text_hash":"3199f14286736527bfc6ad9165629415a5aa087517acd2c0e9b1ae8bb5d26766","tgt_lang":"th","translated":"ค่าใช้จ่ายโดยประมาณ","updated_at":"2026-07-05T16:00:26.191Z"} {"cache_key":"16bdee3b5beb1bdbec8ef1fd59951841ae86af8f16407d87165782855d3ea940","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePageInactive","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Microphone inputs are unavailable while this page is inactive.","text_hash":"775110f07819e48dc96203ed710c4df3546892e5672d7c469dedeb1e0e163882","tgt_lang":"th","translated":"อินพุตไมโครโฟนไม่พร้อมใช้งานขณะที่หน้านี้ไม่ได้ใช้งาน","updated_at":"2026-07-06T17:57:13.451Z"} @@ -65,6 +67,7 @@ {"cache_key":"34ae64dd56cb5e314a6d331e4530513903bfd67d5f0fff88b6e107cc114ddaca","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewStale","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Stale","text_hash":"40c9e59c5e152b0ae9affc84d8461c29b75a7709e4506307eeedf246b526014e","tgt_lang":"th","translated":"ค้างนาน","updated_at":"2026-06-17T14:16:47.316Z"} {"cache_key":"3503804bd9e53db60e79e65d882be992624dcb6fe07cb5d0af8d730101dc546a","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePermissionBlocked","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Microphone access is blocked. Allow it in browser site settings to list inputs.","text_hash":"707f9594b092cf816d6d7a74381665a74acfecbe32d859d0a4adac9e9c9ff77b","tgt_lang":"th","translated":"การเข้าถึงไมโครโฟนถูกบล็อก อนุญาตในการตั้งค่าเว็บไซต์ของเบราว์เซอร์เพื่อแสดงรายการอินพุต","updated_at":"2026-07-06T17:57:13.451Z"} {"cache_key":"35642ccf610c7fdeb2f244866db69ecb0dcf4f509053b69741d31ecf3e66e2f3","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.last7Days","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"7 days","text_hash":"7f920bb639c9307589b65e5f639391d65dcb86b0611ac47f58f7c769215326ee","tgt_lang":"th","translated":"7 วัน","updated_at":"2026-07-06T06:40:15.357Z"} +{"cache_key":"379644ee30110295a75d95b49789db9849b5974e078627e5a708d7dce4205c5c","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"th","translated":"ขีดจำกัด {hours} ชั่วโมง","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"37c6502c7ab388f48be6282fad635c6bb506f4317d8595ace01882e03d938027","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summaryLabel","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Codex session summary","text_hash":"667dedf7bd0ebc80d4e312cc52f824e6a5307c1c6210f2e72e5b93da824da502","tgt_lang":"th","translated":"สรุปเซสชัน Codex","updated_at":"2026-07-09T10:01:43.768Z"} {"cache_key":"3a3adfc3708809554bbf0caa76d4cd9b7383690440bd9d468834971956d7e30b","model":"gpt-5.5","provider":"openai","segment_id":"nodes.pairing.failed","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Could not create a setup code.","text_hash":"bc3b0c8b6d41d7975d2ad4bd6c6b8603819d888916a2e87ca09ec575f23158c2","tgt_lang":"th","translated":"ไม่สามารถสร้างรหัสตั้งค่าได้","updated_at":"2026-07-04T16:48:49.478Z"} {"cache_key":"3ab6d6111f2f5922d79ed2e0d5555dbecb4ff8c324e632e3329b44a9b77169cc","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewAll","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"All cards","text_hash":"2306120917506b5998ec702f3661068b102dac538ba4c9e4634d65fe33eea98a","tgt_lang":"th","translated":"การ์ดทั้งหมด","updated_at":"2026-06-17T14:16:47.316Z"} @@ -76,6 +79,7 @@ {"cache_key":"3f63d0db1eeff1295fb4ac845945d539bdf97febd344e8b2c7be96e78a1c3191","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.layoutCompact","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Compact card density","text_hash":"2f532993d5a6ccda4d758c7ecdda8bebaa857218045a3d4a011fec73d9728785","tgt_lang":"th","translated":"ความหนาแน่นการ์ดแบบกระชับ","updated_at":"2026-06-17T14:16:47.317Z"} {"cache_key":"3fe663fc7adf33045965cface65a548f71d8ee03c3b6dc4677b97138bfb3ff35","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.restore","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Restore","text_hash":"a76e13b9839270eb73ed11417f7d8acca55df0ad52065799361631d0fff74f27","tgt_lang":"th","translated":"กู้คืน","updated_at":"2026-07-05T21:01:30.011Z"} {"cache_key":"409e7a32773ca4cfaad6040b79e08f395724751a56fca118fa183822811287ce","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAddNote","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Add note","text_hash":"63565c0485fec4f743719849734553a5d7947f5962ec9e831e3bce131b3c47fb","tgt_lang":"th","translated":"เพิ่มบันทึก","updated_at":"2026-06-16T14:17:26.503Z"} +{"cache_key":"40b441bfc3460c9046cdcf0afa49520cb94d7e914354b17a3528bc111d5baa4c","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"th","translated":"รีเซ็ต {time}","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"40b4dcea005f6f61d07fb943ba70904821dcc72fccea5b00ecd6e86bdc26cb73","model":"gpt-5.5","provider":"openai","segment_id":"nodes.pairing.showSetupCode","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Show setup code","text_hash":"dc4fa0026fedf726e622f08eafb87102dfe74b6f27a47c5bc3e78df69498296b","tgt_lang":"th","translated":"แสดงรหัสตั้งค่า","updated_at":"2026-07-04T16:48:49.478Z"} {"cache_key":"42589e427cf6d03dffac4a1bc56074e4134e27c2261cdc2df9dec24220b90b63","model":"gpt-5.5","provider":"openai","segment_id":"tabs.mcp","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"MCP","text_hash":"53f13ae99ed53bd346eb8e1c8cefb7ef8260683b50401caf101360967ea052aa","tgt_lang":"th","translated":"MCP","updated_at":"2026-05-31T05:36:53.074Z"} {"cache_key":"4292409a2003f4067eb24ba4a8815ac103316ba61ba50aad59967feacd1a40b3","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortSessions","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Sort sessions","text_hash":"6680f07d3df817d60180acbbc6e207689d28caaa27ac23749f93261b8111a38d","tgt_lang":"th","translated":"จัดเรียงเซสชัน","updated_at":"2026-07-06T15:07:02.499Z"} @@ -85,6 +89,7 @@ {"cache_key":"458d5f79ca3c3a42dc4f3ff021a62bf5596e20dbfd565d92d5ff44c0ace06b97","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.missing","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Missing","text_hash":"6be36ca49ee85210c5d1ad9c377d90a9859c66d889110a2a5b0dccd390d12e20","tgt_lang":"th","translated":"ขาดหายไป","updated_at":"2026-06-16T14:17:36.173Z"} {"cache_key":"45df5421547f480ce67973de1868b3a95c30dc4e5245d3e311818b1d6328a288","model":"gpt-5","provider":"openai","segment_id":"codexSessions.threadId","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Thread","text_hash":"5373c7f8a5a69019e959540ef127be3302afdd5e2313244e6d08cbd5e975d06d","tgt_lang":"th","translated":"เธรด","updated_at":"2026-07-09T10:01:43.768Z"} {"cache_key":"465bbbe2ed419c29b7dae2c9eeaacc0722d9f0f5cc3e6e316471781067137814","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.offline","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Offline","text_hash":"a1794783aab72d205dc532b1170d1be63ebdce8816b57c21acb451c15dab969a","tgt_lang":"th","translated":"ออฟไลน์","updated_at":"2026-07-09T10:01:43.768Z"} +{"cache_key":"46ee4670e7debaa36093b9265617e89875828e41884c21533fa289efd22d9e3c","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"th","translated":"ขีดจำกัดรายวัน","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"494deeecaeb4c217caee351b85d43d68c7336a7949291e358b07b1fe4f27dc59","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.cacheTokens","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"{count} cache","text_hash":"9d5f9230d1dea8b0d5b0f0705199920c0be54b3087c4f9d7fb4014284623eb49","tgt_lang":"th","translated":"โทเค็นแคช {count}","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"49fd0ac92802175ac5684421b46287b291f54f5a2d4d2f36681b92a8ce207041","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh5s","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"5s","text_hash":"93e3d8c5b10657d2884f177488b689aadf82a83f962237cb602b3314386ab3b7","tgt_lang":"th","translated":"5 วินาที","updated_at":"2026-06-17T14:16:55.187Z"} {"cache_key":"509defbafdfd12227921ae61d30ab8c09a8ba87ff32413c32bf6c1e098458449","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.commentaryLabel","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Commentary","text_hash":"4a7a75ab79cde05b0b1baa8f7a704c991586ea44d7e7793e57178ef56f778ff8","tgt_lang":"th","translated":"คำอธิบาย","updated_at":"2026-07-01T01:08:34.109Z"} @@ -104,6 +109,7 @@ {"cache_key":"5ddacc892c1409bd3ad5c981d296b785a911a616747b184ccf76995888165c09","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archiveSession","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Archive session","text_hash":"740ded37480365eae8bf833ccaaa58350fc9434a77b7bb65b5516eba476fbec3","tgt_lang":"th","translated":"เก็บเซสชันถาวร","updated_at":"2026-07-02T14:30:49.122Z"} {"cache_key":"5f8bfbd9a28aa730b16508c6024c2c21accdb27958503b83c4f9be0f22ae559b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.search","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Search files","text_hash":"179fed85ec50a433bb23932745d18f1ade2f84a6ebe145b0025ed3ce5f89fd5a","tgt_lang":"th","translated":"ค้นหาไฟล์","updated_at":"2026-06-16T14:17:36.173Z"} {"cache_key":"60125fdafaa5b7b3486e7104b5511ca6e737b2709233bb86f1c5d58ac06376e1","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.restoreSession","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Restore session","text_hash":"35e4dc9befd3b3a29b50938839af0efb41b08051988dde53e1c1e73d1c2a039f","tgt_lang":"th","translated":"กู้คืนเซสชัน","updated_at":"2026-07-02T14:30:49.122Z"} +{"cache_key":"61823d34a6c50803ae78d4777f34663a606e450252386e1e00c4bd2d07ecc53b","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"th","translated":"เครดิตการใช้งาน","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"6215378cddd31803cb7f5c14d3949bf3b86e6e18085a0f354b9f34220ffa5b85","model":"gpt-5.5","provider":"openai","segment_id":"languages.hi","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"हिन्दी (Hindi)","text_hash":"fab2abfce45382f3031c59477017700a8cb5dfaf8d15379dc24304809b97c7d5","tgt_lang":"th","translated":"हिन्दी (ฮินดี)","updated_at":"2026-06-26T21:43:41.993Z"} {"cache_key":"63425b218a1043b0a711c15ac5f1da1bd8b832dd73db12422cd274cd4feee608","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.systemError","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"System error","text_hash":"b9564eaf21a9356d06f7f3c67a5b9cb7e6538687c33bebbf1e1b64715018f310","tgt_lang":"th","translated":"ข้อผิดพลาดของระบบ","updated_at":"2026-07-09T10:01:43.768Z"} {"cache_key":"64fcb939f341d1abad95e9042de94e4fd78efeea7a236741eea23776c13ecabb","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewPresetCount","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"{count} cards","text_hash":"4b3e5442ebd2f839d45fddf95b2c2a18427dbd6ac06c8b57f9d9e996dcb73607","tgt_lang":"th","translated":"{count} การ์ด","updated_at":"2026-06-17T14:16:47.316Z"} @@ -145,6 +151,7 @@ {"cache_key":"8485e203bb7b42ff9c827427adb72cc92350f094433e98017b3163ef1887e2aa","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.artifacts","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Artifacts","text_hash":"314ae71b8c8dc9c952f0ffc58e35e6d9a41b5cf4756471c7cab0c9476cd5d20b","tgt_lang":"th","translated":"อาร์ติแฟกต์","updated_at":"2026-06-16T14:17:36.173Z"} {"cache_key":"858de1bf711f1a1dadb2cf125f8e6be407131bc818553cc28995613f4e943f45","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Auto-refresh","text_hash":"9ea4d7fd1550f0866089d18b1344546bfed91502b41c0484d6023ceb0fdeb75c","tgt_lang":"th","translated":"รีเฟรชอัตโนมัติ","updated_at":"2026-06-17T14:16:47.317Z"} {"cache_key":"86481482600a673d954795e85f771efdf2b2fd9a5012dceaf3383d9d3913512e","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.dailyCost","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Daily provider cost","text_hash":"0d03078a4d1fba12122e32e9abbc929ea64b948445810cf1e0d29cbdfd5cb18d","tgt_lang":"th","translated":"ค่าใช้จ่ายรายวันของผู้ให้บริการ","updated_at":"2026-07-06T06:40:15.357Z"} +{"cache_key":"86c4fd537c47f81c836ae0ad4a61c093fe500df50f6c21ae4f7c467c1fb3e2e2","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"th","translated":"ขีดจำกัด 5 ชั่วโมง","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"87092c38f185832024034e533a65686cffdcbf8c2ee34d994ed0e553a607c133","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewPreset","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Workboard view","text_hash":"cc2b05179ad742029156bb45578e880c46599fd28e1c2ab66f5a6f9e7f8fa08e","tgt_lang":"th","translated":"มุมมอง Workboard","updated_at":"2026-06-17T14:16:47.316Z"} {"cache_key":"87e113cf89de28fbd18bcde880f7c864f01b1c7c86f1464f4e86ef5b93d9e7cd","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneInput","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Microphone input","text_hash":"5c8a6025b9d96fb0c090d33c9def15ee64aa520a83cf5d64c784b4f0699bb15e","tgt_lang":"th","translated":"อินพุตไมโครโฟน","updated_at":"2026-07-06T17:34:01.837Z"} {"cache_key":"88924a87298cec0f3c7886e023a4ca4016447758d843b949b7626a50a6eb78f6","model":"gpt-5.5","provider":"openai","segment_id":"tabs.worktrees","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Worktrees","text_hash":"aec2f93d67b7c4c5fd9b94042f33299f7a0e55cdcb7e8e35feb9d0f6da697f3d","tgt_lang":"th","translated":"Worktrees","updated_at":"2026-07-05T21:01:30.011Z"} @@ -183,6 +190,7 @@ {"cache_key":"a21a37d46016b1e48a8e2688f3879c47026311185650da67094e135f6e5fd0d8","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameGroupMenu","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Rename group…","text_hash":"fe4e8d175e15f0a28c7c39b8bf3ea98b704e793c7efbc5231eb4a7448d0e675b","tgt_lang":"th","translated":"เปลี่ยนชื่อกลุ่ม…","updated_at":"2026-07-06T23:41:15.864Z"} {"cache_key":"a22e9b5d43731fec0c7dcbcd982d4aacb9936cda33d4cbf8d2a01e7302a993fe","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.files","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Workspace","text_hash":"87bb59ba2f92f2a5a9f13e021fd58dd14ae5c065b1046146875e6e68d5ebc8b7","tgt_lang":"th","translated":"พื้นที่ทำงาน","updated_at":"2026-06-16T14:17:26.503Z"} {"cache_key":"a30551d9a8a21ad81e3e758d2b96436e54f440d5e47250fc604dde1e09956e1c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.unknownStatus","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Unknown","text_hash":"b764cdc0eab7137467211272fa539f1260d1bf2e71bcf6ff3bdc960f5c16aa14","tgt_lang":"th","translated":"ไม่ทราบ","updated_at":"2026-06-16T14:17:26.503Z"} +{"cache_key":"a310ef2e829f41ca4a1e09db17f9ad3478a45cf5974f80436ace828daf56d80e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"th","translated":"{used} จาก {limit}","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"a495da1f724603689b7b7eb3df8d42d78f6aefea3299e9d6a62191a6627631ea","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.allSessions","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"All sessions","text_hash":"78648d4d66499d8dc19049a4e3bad87b404f99ea7a7f125ced52546e2d92bb79","tgt_lang":"th","translated":"เซสชันทั้งหมด","updated_at":"2026-07-03T07:40:31.873Z"} {"cache_key":"a4fe522a6e635775e7b93707d6e66242e24f03953f7135b321c746a2053bd578","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkMoreInSettings","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"More in Settings","text_hash":"87f1e602d68bdc42ae3fddc0c1541d323adc718b7b9b3f889b2ca71823e319b9","tgt_lang":"th","translated":"เพิ่มเติมในการตั้งค่า","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"a6f1dc20603629daf073eccc63bb00a2ee94514f216f0f73dbf1b532b633d7a7","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChatTooltip","source_path":"ui/src/i18n/locales/th.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":"th","translated":"ส่งคำขอแก้ไขไปยังเซสชันแชทปัจจุบันแทนเซสชัน workshop ของข้อเสนอ","updated_at":"2026-06-16T14:17:16.747Z"} @@ -270,6 +278,7 @@ {"cache_key":"ecd7f6d0913fa06b05632df1cc86c2c4e8c8d122f835aa320c953ad4a6fd7e89","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.pairingQrExpired.badge","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Expired","text_hash":"424a2551d356754c882d04ac16c63e6b50b80b159549d23231001f629455756e","tgt_lang":"th","translated":"หมดอายุ","updated_at":"2026-07-01T10:33:34.756Z"} {"cache_key":"ed5b5251ab2a8f84266bd9385c28d3d04c23617f0287086cbf020ad9afaa0bd4","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupByDate","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Date","text_hash":"99c40ab405926cb5ad1def9cff4d7ce624f8f8abfff4e85f655347fcb949d08e","tgt_lang":"th","translated":"วันที่","updated_at":"2026-07-05T14:40:13.915Z"} {"cache_key":"ed9561d68a711c3c22bbb751975f37b529b3101e939c1bf584d04459af8852b5","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.title","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Managed Worktrees","text_hash":"dde32010185098a47e873fb25dd99446b0cb1a75614068587f7cd0bffb5aed18","tgt_lang":"th","translated":"Worktrees ที่จัดการ","updated_at":"2026-07-05T21:01:30.011Z"} +{"cache_key":"f0262405f27b22a2a0dcba6aed40aa480f9db65e7b64fb4ea9b0f18d56dd96a6","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"th","translated":"การใช้งานของแผน","updated_at":"2026-07-09T11:49:48.608Z"} {"cache_key":"f043b3f843b93f7bd1d3c7b97166dd5ca0ed0eb34ca9d0e88379827ed915dee1","model":"gpt-5.5","provider":"openai","segment_id":"nav.settingsGroupAgents","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Agents & Tools","text_hash":"493e2edea6e1c48892128656867eab52c07c16ec4f3b59e995b329a18e920328","tgt_lang":"th","translated":"เอเจนต์และเครื่องมือ","updated_at":"2026-07-09T08:08:10.509Z"} {"cache_key":"f1760515d0770255904b29d020945cf00727982de51184762d2998dae7dd37bc","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationTenant","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Tenant: {tenant}","text_hash":"e896dc96a6847d7aaa593069e890e7a712fd60d7be60280ee24e1942e10411b0","tgt_lang":"th","translated":"ผู้เช่า: {tenant}","updated_at":"2026-06-16T14:17:16.747Z"} {"cache_key":"f1e51c2b8c1a0a868cd2c5a7c5586b5a3252658fce17c5cd5b5c34641f13169b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailWorkerProtocol","source_path":"ui/src/i18n/locales/th.ts","src_lang":"en","text":"Worker protocol","text_hash":"e445d823cfa48c4e8fa1d8854771e9939955e772428be6d7957deec0f7968764","tgt_lang":"th","translated":"โปรโตคอลของ Worker","updated_at":"2026-06-16T14:17:16.747Z"} diff --git a/ui/src/i18n/.i18n/tr.meta.json b/ui/src/i18n/.i18n/tr.meta.json index 088d3219b3b..491f0c859e8 100644 --- a/ui/src/i18n/.i18n/tr.meta.json +++ b/ui/src/i18n/.i18n/tr.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:37.545Z", + "generatedAt": "2026-07-09T14:24:54.560Z", "locale": "tr", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/uk.meta.json b/ui/src/i18n/.i18n/uk.meta.json index c98e7f3692c..d9506ffe69e 100644 --- a/ui/src/i18n/.i18n/uk.meta.json +++ b/ui/src/i18n/.i18n/uk.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:38.987Z", + "generatedAt": "2026-07-09T14:24:54.670Z", "locale": "uk", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/vi.meta.json b/ui/src/i18n/.i18n/vi.meta.json index 329eae8d3bc..e4ca9468280 100644 --- a/ui/src/i18n/.i18n/vi.meta.json +++ b/ui/src/i18n/.i18n/vi.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:44.024Z", + "generatedAt": "2026-07-09T14:24:55.106Z", "locale": "vi", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/vi.tm.jsonl b/ui/src/i18n/.i18n/vi.tm.jsonl index eac874c6b82..afdeda64595 100644 --- a/ui/src/i18n/.i18n/vi.tm.jsonl +++ b/ui/src/i18n/.i18n/vi.tm.jsonl @@ -8,7 +8,9 @@ {"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":"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"} {"cache_key":"09465a8b0457c8f057de14044b4d2dc8b69dc774d15823f25b62061ecaa48c4d","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.truncated","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Showing the first matching files. Refine the search to narrow results.","text_hash":"62005877ff0fc1f73ce05ca4c459157c57a8c57a3443245b1df4d3b033df98e9","tgt_lang":"vi","translated":"Đang hiển thị các tệp phù hợp đầu tiên. Tinh chỉnh tìm kiếm để thu hẹp kết quả.","updated_at":"2026-06-16T14:17:25.260Z"} +{"cache_key":"09895d1544337ba7697aec70d9eabaf6dd405340ecef728ad2009f8147847292","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"vi","translated":"Hàng tuần · tất cả mô hình","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"0a8606e7c0fededd74d8bd2d8f229325f0df9a3f13ec59a5d8600e5135926346","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.idle","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Idle","text_hash":"ab0171ca0494d441cb6fe96e2efbe1c2a129f1d87cd6c17f03613cfd111149dd","tgt_lang":"vi","translated":"Đang chờ","updated_at":"2026-07-09T10:01:43.734Z"} {"cache_key":"0a8fd2d0b38f3a09d8c7a146fad128e4c51b941068a80e031ebd6f3ea25fcfb3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChatTooltip","source_path":"ui/src/i18n/locales/vi.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":"vi","translated":"Gửi yêu cầu chỉnh sửa đến phiên trò chuyện hiện tại thay vì phiên workshop của đề xuất.","updated_at":"2026-06-16T14:17:10.180Z"} {"cache_key":"0b713612057f75462f3918c2fd80b79007ab646f4a9202121e441c375b203aef","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.archived","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Archived","text_hash":"bdb86505f8062d15f152cef71dd4ca89609d5bf8e98771dcd2c9f70d247403da","tgt_lang":"vi","translated":"Đã lưu trữ","updated_at":"2026-07-09T10:01:43.734Z"} @@ -43,6 +45,7 @@ {"cache_key":"1fd98e657e50be6b5bc8e307f98eaeb14c21192938e81d92fa51ca6e71d93ec0","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.dependencies","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Dependencies","text_hash":"2e41b118eb209c139f2bcbf690486f6e1509ab978aa96feb053877a70a1a5a09","tgt_lang":"vi","translated":"Phụ thuộc","updated_at":"2026-06-16T14:17:17.661Z"} {"cache_key":"21a88c314891be44781519fd6b3b6347f030f523b9820d4236c9a17c0e1ab1ca","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailUpdated","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Updated","text_hash":"3a5ecca188c0579c00ee24cf3cab21bd02c15a06f7a70cc8e0a8ff2381dcbbfd","tgt_lang":"vi","translated":"Đã cập nhật","updated_at":"2026-06-16T14:17:10.180Z"} {"cache_key":"21ff19bd0584a704efa8fd81922fdc04e4d8cce51679102eebd804f1b65f4bcc","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.dismissTalkError","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Dismiss Talk error","text_hash":"72f032a5a37e7197cc94ea95f5da0829abb2262396cdcc35229bd8ce9a52de1e","tgt_lang":"vi","translated":"Bỏ qua lỗi Talk","updated_at":"2026-06-16T14:17:17.661Z"} +{"cache_key":"2239306983ff58ec6e37da74a2130ae012023ac676f57f1d482145ced179e186","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"vi","translated":"Giới hạn {hours} giờ","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"261907465e05ba45d23b58fae6a406c96832110418d80622691c8e4cbf51836c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewPreset","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Workboard view","text_hash":"cc2b05179ad742029156bb45578e880c46599fd28e1c2ab66f5a6f9e7f8fa08e","tgt_lang":"vi","translated":"Chế độ xem Workboard","updated_at":"2026-06-17T14:17:26.553Z"} {"cache_key":"26d329290a42d303c5308bbd8874a1f271c3109f39d8726190c462b4ee753f78","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterConfiguredDefault","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"{agent} (default)","text_hash":"7e996234f0fa55605720f9dc954a58411795bd882e948c87c739d43bd02137c3","tgt_lang":"vi","translated":"{agent} (mặc định)","updated_at":"2026-06-17T14:17:26.553Z"} {"cache_key":"27020eca4194390c1d6c6d726f16773d20d636ebd555805d7fb8087695dfac3b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkMoreInSettings","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"More in Settings","text_hash":"87f1e602d68bdc42ae3fddc0c1541d323adc718b7b9b3f889b2ca71823e319b9","tgt_lang":"vi","translated":"Thêm trong phần Cài đặt","updated_at":"2026-07-06T20:20:02.809Z"} @@ -60,6 +63,7 @@ {"cache_key":"3018088bf994335e79a2ccc0d40b848fc15f74fce6d15379e623d436f771b384","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationBoard","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Board: {board}","text_hash":"96d7493589e40e17803b3bf643dff1b891a4ebf57f5d2b36af0a7ddd09e64b84","tgt_lang":"vi","translated":"Bảng: {board}","updated_at":"2026-06-16T14:17:10.180Z"} {"cache_key":"356b19869b1e2bf6eecb2fd221450379802c32d3234af567c267d65155ad3087","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.parentFolder","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Parent folder","text_hash":"158f5a01ef8cfb1e6d91f8c321dd3a63f5e457f9650eecd662857701762bd31d","tgt_lang":"vi","translated":"Thư mục cha","updated_at":"2026-06-16T14:17:25.260Z"} {"cache_key":"35e8a8360ba8180b7e8ed413260da6e5fd4e9bea353101b3abbe8e51939a84ad","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.systemDefaultMicrophone","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"System default","text_hash":"b0459211f9f76871059135050a2afd9a01e7e41dc32ea58006c51483b9ceab6d","tgt_lang":"vi","translated":"Mặc định hệ thống","updated_at":"2026-07-06T17:34:03.620Z"} +{"cache_key":"362f7c960bb1f6c90a15553b6e9e9994c1c7cef0f014484d05ec423789a0a05a","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"vi","translated":"Tín dụng sử dụng","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"3634972ad7d7d807b862631484b40f5730a2f710515e29c9cd9eeea00d8c79f5","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCountOne","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"{count} session","text_hash":"c0975b42c84d7da963f4c962d1e2c1ee78eb18efc7ebec75fb3ce761ce9a40db","tgt_lang":"vi","translated":"{count} phiên","updated_at":"2026-07-05T14:40:16.834Z"} {"cache_key":"364f0b235a275cee318660b3b1752b99c197a0317cc9e5e02de6215fcd552514","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.collapse","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Collapse session workspace","text_hash":"b6174b882c37a98e640339d728652a0c1fa70d28ed53d8ccfb6e99363e86973b","tgt_lang":"vi","translated":"Thu gọn không gian làm việc phiên","updated_at":"2026-06-16T14:17:17.661Z"} {"cache_key":"370919ad30d347a3e0f76e3389ab1da7cd3c0ff27f34b54ecd86af16b6edbfe7","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphonePageInactive","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Microphone inputs are unavailable while this page is inactive.","text_hash":"775110f07819e48dc96203ed710c4df3546892e5672d7c469dedeb1e0e163882","tgt_lang":"vi","translated":"Đầu vào micrô không khả dụng khi trang này không hoạt động.","updated_at":"2026-07-06T17:57:16.954Z"} @@ -72,6 +76,7 @@ {"cache_key":"3abda16ef2ec34f742c6c9ac3546f7e0e4dedf843af7fba25bfcc3365b1d9bee","model":"gpt-5.5","provider":"openai","segment_id":"nav.settingsGroupConnections","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Connections","text_hash":"dc273117482b4429ada500ecd2e0c75532454194892cb901ca64cc7df369fdf6","tgt_lang":"vi","translated":"Kết nối","updated_at":"2026-07-09T08:08:12.733Z"} {"cache_key":"3c55b509d2b7d4d4af2d96aa24ce93cccfe8dc5524ed4c057044896b8b402f41","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.session","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Session","text_hash":"6959b4159575d8dd76d9f3bbe2c6437904f861e7860c35abd18deffb1c3425a0","tgt_lang":"vi","translated":"Phiên","updated_at":"2026-06-16T14:17:25.260Z"} {"cache_key":"3db0d3a8795a25e261c1340ce03720dda9b84d43fef693adea1c4d425b672f2e","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.empty","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"No managed worktrees.","text_hash":"67f97698da5ed0bb1cc4cadd157e403c0fcd22fc4735d8f39bcf27ea6dd612c8","tgt_lang":"vi","translated":"Không có worktree được quản lý.","updated_at":"2026-07-05T21:01:34.014Z"} +{"cache_key":"3f7173ad7d25016c1709c66ceb34c6f2347503fde9ed638de2c558c1216a1bb8","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"vi","translated":"{used} trên {limit}","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"3faca6c079e1806d45c2701efe2a5d74cd24e183c62467548e9c8da220168eb2","model":"gpt-5.5","provider":"openai","segment_id":"tabs.skillWorkshop","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Skill Workshop","text_hash":"3912c65bdd0a43563438762a43ecbd4b14637844a18decbf9249df73d21152a0","tgt_lang":"vi","translated":"Xưởng kỹ năng","updated_at":"2026-05-31T21:48:40.396Z"} {"cache_key":"410164dfe55960ae6b69b11130219635d873542ce478b8c68726601922e07a1b","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.artifactCount","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"{count} artifacts","text_hash":"022b6b55a10f1864b7aff7c307e49ab37e11e6999111fb87349f040d100abba3","tgt_lang":"vi","translated":"{count} hiện vật","updated_at":"2026-06-16T14:17:25.260Z"} {"cache_key":"411f71155374284980fe2854055676fad0b3d61dd19eed2d4f4ff976e9f6e695","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.gateway","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Gateway","text_hash":"41ed52921661c7f0d68d92511589cc9d7aaeab2b5db49fb27f0be336cbfdb7df","tgt_lang":"vi","translated":"Gateway","updated_at":"2026-07-09T10:01:43.734Z"} @@ -142,6 +147,7 @@ {"cache_key":"7591901517ce8889e25ad2b69411b8145d3dbbb654ef5eb850408bb50c4dfabc","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.openInline","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Open in Sidebar","text_hash":"ee39dc2999ce3acefff3c4c5440266e6a044feb3fb0a405a754f3ee4f697b201","tgt_lang":"vi","translated":"Mở trong Thanh bên","updated_at":"2026-07-09T11:03:10.148Z"} {"cache_key":"75c917107a825f09925f41de47e9ddc7478b64978b2b98ad8772dd63cbee5a2e","model":"gpt-5","provider":"openai","segment_id":"codexSessions.threadId","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Thread","text_hash":"5373c7f8a5a69019e959540ef127be3302afdd5e2313244e6d08cbd5e975d06d","tgt_lang":"vi","translated":"Mã luồng","updated_at":"2026-07-09T10:01:43.734Z"} {"cache_key":"761cd159fca651bd58f97de7fc19cf26793e2a54cd4511c9d35d328eaf76f0d5","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.archivedOnly","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Archived only","text_hash":"da7ebd8c482f38dc2a5b693a0ec25aaa04ea7b5fa3713cce9fa41a28f2201a6b","tgt_lang":"vi","translated":"Chỉ đã lưu trữ","updated_at":"2026-07-02T14:31:04.850Z"} +{"cache_key":"766d8cd0a0db73b8dc57d664296683a7ef8ed2917fadad94246a2ca6e10cb54d","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"vi","translated":"Đặt lại {time}","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"769364f96de69375a4d3a4165b813900e469996e05af6a60bb526cbaf6ef0b46","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneInput","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Microphone input","text_hash":"5c8a6025b9d96fb0c090d33c9def15ee64aa520a83cf5d64c784b4f0699bb15e","tgt_lang":"vi","translated":"Đầu vào micrô","updated_at":"2026-07-06T17:34:03.620Z"} {"cache_key":"78516d2d73669f02772b158a096cde396288c1735ab77dc935854ac2b4fbb429","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.loading","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Loading session workspace…","text_hash":"bc6b2400fad20ee1d95d8de4ec6eef9ff1818ab080f86513384029519eaf4f4e","tgt_lang":"vi","translated":"Đang tải không gian làm việc phiên…","updated_at":"2026-06-16T14:17:17.661Z"} {"cache_key":"7af5f14251eb1ff4a30fd87fbb90658d5d02138ad9c713d0db6144b4ce7c7f65","model":"gpt-5.5","provider":"openai","segment_id":"workboard.eventOrchestration","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Orchestration","text_hash":"ed4fdd1721677737cffb2862fe34d5b63901c7cc76b8c67c51e92a467b31a5e7","tgt_lang":"vi","translated":"Điều phối","updated_at":"2026-05-30T15:38:47.755Z"} @@ -160,6 +166,7 @@ {"cache_key":"8a18b8b08125b3c0dca240f99a72ebc937cc8cb549f8044f036601f453ae6080","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.layoutCompact","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Compact card density","text_hash":"2f532993d5a6ccda4d758c7ecdda8bebaa857218045a3d4a011fec73d9728785","tgt_lang":"vi","translated":"Mật độ thẻ gọn","updated_at":"2026-06-17T14:17:26.553Z"} {"cache_key":"8b2cb3175fab20d1f0f424304d9bef3694acaf12c809fff1f64bbad91b3111c3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.lastRefreshed","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Updated {time}","text_hash":"2f87419441e6111b4d62893d3c4ef5ddeb2c8e1af82fabab6132856faf77f907","tgt_lang":"vi","translated":"Đã cập nhật {time}","updated_at":"2026-06-17T14:17:32.599Z"} {"cache_key":"8b9788ec98cee9412f3a11c66add5ffe0f382bd3293174c147a708a93277fe21","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkVoice","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Voice","text_hash":"87bf2bc08589f0bd4a078db145c34ad5e14b8fda53c3ae65b78601294913df95","tgt_lang":"vi","translated":"Giọng nói","updated_at":"2026-07-06T20:20:02.809Z"} +{"cache_key":"8c082a895e340da99f98a0cbc0967161386f0a9b7fc140f80d8bdfb05a29f71a","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"vi","translated":"Giới hạn hằng ngày","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"8c254d6c4b07c9d90e1becd74f6cad2f80dda6899e3b89037df2f511c96e7864","model":"claude-opus-4-8","provider":"anthropic","segment_id":"cron.jobDetail.command","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Command","text_hash":"713166971d730f81fcf8b757f2ea239d1a0360d9f74e8f5afe60fba97105879c","tgt_lang":"vi","translated":"Lệnh","updated_at":"2026-06-16T14:17:27.580Z"} {"cache_key":"8cc3e18cf3a7dc11a1df9f4c7ca32cb41b60f543b25f18579aa417d78c18aa0f","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.group","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Group","text_hash":"34ca0e76608842ff3e7d924a455a396a82f471052c15e3f2ed7f090ac702e5c1","tgt_lang":"vi","translated":"Nhóm","updated_at":"2026-07-05T14:40:16.834Z"} {"cache_key":"8ccf84f2ea4fdb5027c457f79dc63127fce88f7f75591d9a9beefe3690ae936d","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.realtimeTalkRequiresMicrophone","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Realtime Talk requires browser microphone access.","text_hash":"e082e85327dc5d2905a34ca4ca60e76836f9b4d7e3b1834b821c81a9c456b39d","tgt_lang":"vi","translated":"Realtime Talk yêu cầu quyền truy cập micrô của trình duyệt.","updated_at":"2026-07-06T17:57:16.954Z"} @@ -236,11 +243,13 @@ {"cache_key":"c79366c0fb5deb2ae3e5defc41f8b0d884ddae789182784b8af1c7d8ec40508d","model":"gpt-5.5","provider":"openai","segment_id":"chat.splitView.dropSplit","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Split","text_hash":"32afaa784333648025e24b162bece7474051bcaaa29e98e19922b400b4ceb04b","tgt_lang":"vi","translated":"Chia đôi","updated_at":"2026-07-06T22:56:36.739Z"} {"cache_key":"c8957a8ee0627f74ac54f2ad0f696bf8c9922d35fd381ff9ef8cd40b5ce2c6f9","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.actions","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Workspace file actions","text_hash":"461817d921bc7672e95fe4a3b23f4ac2a4a20e35b3d6eef3f02e8f5ba4201050","tgt_lang":"vi","translated":"Thao tác tệp workspace","updated_at":"2026-06-16T14:17:25.261Z"} {"cache_key":"c944edb2a38f76ff8b901c31fcc84f972d4c81f462bbaff2b1fd38ea2226adbb","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivityHigh","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"High","text_hash":"c4ebc6d4a5832cd9415f906ad03661110c705a72381c8b8b145761d02e2dd23a","tgt_lang":"vi","translated":"Cao","updated_at":"2026-07-06T20:20:02.809Z"} +{"cache_key":"c95b522206dce695d362bd0585e85c04255f12763885cf65d85d95bae29e99a3","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"vi","translated":"Giới hạn 5 giờ","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"c9c84c2bc40c83168861eee263c38ca3b752ccc5064d99038f842ec6c349c6f6","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.missing","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Missing","text_hash":"6be36ca49ee85210c5d1ad9c377d90a9859c66d889110a2a5b0dccd390d12e20","tgt_lang":"vi","translated":"Thiếu","updated_at":"2026-06-16T14:17:25.260Z"} {"cache_key":"ca3d9f0be854fde5d3d5f6623e51bbb605e95b2de51ad8bea8a7bc74e1a91c99","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameSessionPrompt","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Rename session","text_hash":"2cad0766accc2d3f70f007068524cea983e0d53f54543e9e82a4e73b2a07987f","tgt_lang":"vi","translated":"Đổi tên phiên","updated_at":"2026-07-02T14:31:04.850Z"} {"cache_key":"ca76a49fbc87df39cd3f52e5b0621e5d2003201283bd199d77b7ab2e1c87f274","model":"claude-opus-4-8","provider":"anthropic","segment_id":"codexSessions.host.sessionCount","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"{count} shown","text_hash":"e57b4adfe868fd74a183650103d820176d4960bd0bdb677d9985db09f9752867","tgt_lang":"vi","translated":"{count} hiển thị","updated_at":"2026-06-16T14:17:25.260Z"} {"cache_key":"cb51cda064a2694474632c6831a1f6277630f75f5ce4ace1c1c9d2f74dc71e45","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.status","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Status","text_hash":"920e413c7d411b61ef3e8c63b1cb6ad058d5f95f8b481dbafe60248387d8c355","tgt_lang":"vi","translated":"Trạng thái","updated_at":"2026-07-05T21:01:34.014Z"} {"cache_key":"cd277b7f128b2e75d08baa5507005214902279590bef84425c6f458abbbbe1bc","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.title","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"No Codex hosts found","text_hash":"aaad17f2d1d59a936c7882613d1eb75ad6e82d0e82ec79837a587a43352ce24e","tgt_lang":"vi","translated":"Không tìm thấy máy nào chia sẻ phiên Codex","updated_at":"2026-07-09T10:01:43.734Z"} +{"cache_key":"ce74675e22412140f979f2faac653c6a118f6d736437d858ba0463c4d40782da","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"vi","translated":"Mức sử dụng gói","updated_at":"2026-07-09T11:49:52.117Z"} {"cache_key":"cf03973b84d1a1a8564c8f35f354c3f21c52668936001a319ee2f9907f20b0b8","model":"gpt-5","provider":"openai","segment_id":"codexSessions.status.systemError","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"System error","text_hash":"b9564eaf21a9356d06f7f3c67a5b9cb7e6538687c33bebbf1e1b64715018f310","tgt_lang":"vi","translated":"Lỗi hệ thống","updated_at":"2026-07-09T10:01:43.734Z"} {"cache_key":"d009f2c33ba9c725ba973873382c712b8065730f793dead160aabe05e45ade80","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.files","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Workspace","text_hash":"87bb59ba2f92f2a5a9f13e021fd58dd14ae5c065b1046146875e6e68d5ebc8b7","tgt_lang":"vi","translated":"Không gian làm việc","updated_at":"2026-06-16T14:17:17.661Z"} {"cache_key":"d05a189c3cb6ffdc2798ba19a42f9f293105421fdf0c78a0a5762c36c5f635c1","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewReview","source_path":"ui/src/i18n/locales/vi.ts","src_lang":"en","text":"Review","text_hash":"aff0766a5290e117b8433c351bae7b7b23bed682b2369bd822d88a647cc58512","tgt_lang":"vi","translated":"Đánh giá","updated_at":"2026-06-17T14:17:26.553Z"} diff --git a/ui/src/i18n/.i18n/zh-CN.meta.json b/ui/src/i18n/.i18n/zh-CN.meta.json index 50687be6016..dde60fd5ce3 100644 --- a/ui/src/i18n/.i18n/zh-CN.meta.json +++ b/ui/src/i18n/.i18n/zh-CN.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:19.310Z", + "generatedAt": "2026-07-09T14:24:53.379Z", "locale": "zh-CN", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/zh-CN.tm.jsonl b/ui/src/i18n/.i18n/zh-CN.tm.jsonl index d7493fb4a97..8b529841713 100644 --- a/ui/src/i18n/.i18n/zh-CN.tm.jsonl +++ b/ui/src/i18n/.i18n/zh-CN.tm.jsonl @@ -109,6 +109,7 @@ {"cache_key":"604d40029923dadbbd9711e786263f195cd5563a0a8b5483758fdf39a7db0acc","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loading","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Loading Codex sessions…","text_hash":"18a71c76786db89f928536e164096422e68e86db86fa3684bc3644f36df70300","tgt_lang":"zh-CN","translated":"正在加载 Codex 会话…","updated_at":"2026-07-09T10:01:43.701Z"} {"cache_key":"6113645b638a7fb62ff326456800e6428a2b292929cca8fc9db8812251a4b39e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailRun","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Run","text_hash":"00d60e31a4e6b8344d4201f25a6a7dee770713107f6d097abb01559d32b17f26","tgt_lang":"zh-CN","translated":"运行","updated_at":"2026-06-16T14:12:56.348Z"} {"cache_key":"6188b9206488ef96f51e9a957a38d3d66aadf673d2d33a8b8bbce19804bce3e5","model":"gpt-5","provider":"openai","segment_id":"codexSessions.scope.archived","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Archived","text_hash":"bdb86505f8062d15f152cef71dd4ca89609d5bf8e98771dcd2c9f70d247403da","tgt_lang":"zh-CN","translated":"已归档","updated_at":"2026-07-09T10:01:43.701Z"} +{"cache_key":"61adcb02ca7435aa4622d2788ed14c8270bcbadeab1d9603f9cd67813f2cd098","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"zh-CN","translated":"{used} / {limit}","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"64b0db5ea1584729031fd90f0154c70887c0f66a64ad3f2225ebaaaaed11f08a","model":"gpt-5","provider":"openai","segment_id":"codexSessions.threadId","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Thread","text_hash":"5373c7f8a5a69019e959540ef127be3302afdd5e2313244e6d08cbd5e975d06d","tgt_lang":"zh-CN","translated":"线程","updated_at":"2026-07-09T10:01:43.701Z"} {"cache_key":"667fa13d3b3a513f5df3997dbefc06e2658bf35b198d4570c2f3fcd0007f5e1c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.session","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Session","text_hash":"6959b4159575d8dd76d9f3bbe2c6437904f861e7860c35abd18deffb1c3425a0","tgt_lang":"zh-CN","translated":"会话","updated_at":"2026-06-16T14:13:07.632Z"} {"cache_key":"67a96c36feb4ea74886d750fcf5fe5944b23d215cbc2bdfd55b057ba738c8104","model":"gpt-5","provider":"openai","segment_id":"codexSessions.empty.title","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"No Codex hosts found","text_hash":"aaad17f2d1d59a936c7882613d1eb75ad6e82d0e82ec79837a587a43352ce24e","tgt_lang":"zh-CN","translated":"未找到 Codex 主机","updated_at":"2026-07-09T10:01:43.701Z"} @@ -137,6 +138,7 @@ {"cache_key":"7d21e04f25e3eb5e84472b9ca2514e381798662054a685936b58204ff1a49068","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkModelAuto","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Auto","text_hash":"0286249762f7c94349cdc0ba3bb2255baf9a80036e2193ead1d77696f888582f","tgt_lang":"zh-CN","translated":"自动","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"7d719ac4e46bfc2a113fcf810d6b5b93eaa6ef1398afdf1aef33a8460c5937dd","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.restoreSession","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Restore session","text_hash":"35e4dc9befd3b3a29b50938839af0efb41b08051988dde53e1c1e73d1c2a039f","tgt_lang":"zh-CN","translated":"恢复会话","updated_at":"2026-07-02T14:29:55.120Z"} {"cache_key":"7e54b1034ef4308f3500aedb0f075b50121d3c355e3fa93b5393eb003ac1513f","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.cacheTokens","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{count} cache","text_hash":"9d5f9230d1dea8b0d5b0f0705199920c0be54b3087c4f9d7fb4014284623eb49","tgt_lang":"zh-CN","translated":"{count} 个缓存令牌","updated_at":"2026-07-06T06:40:15.357Z"} +{"cache_key":"7ecc102f28505976a27945fcd618acdd9e02bad34bcb8e8b7bebe159f09f41c3","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"zh-CN","translated":"{hours} 小时限制","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"80fb46ada1bdfad885dc5352cab2a62a36de308027367cb11269c689b1c6448a","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.searchResults","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Search results","text_hash":"e978b00de465a271a13bf2f6b9d74d67fdfaa7d973a37378fa32f988c3280599","tgt_lang":"zh-CN","translated":"搜索结果","updated_at":"2026-06-16T14:13:07.632Z"} {"cache_key":"83cb96fc210a24483fd16ea83fa4295ae364018c7b0e94d4418f48bee7651172","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.deleteGroupConfirm","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Delete group \"{group}\"? Its sessions move to Ungrouped.","text_hash":"8efc8cb301bca2d82627c05eb36558e603c1b1ad0d58a2bd6584aa1c3a01c710","tgt_lang":"zh-CN","translated":"要删除分组“{group}”吗?其会话将移至未分组。","updated_at":"2026-07-06T23:40:42.207Z"} {"cache_key":"83e6a198426627d98dd2adbe8d10a3d1c73dd13e687b6871f47be3d886545d25","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthStale","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"stale","text_hash":"a03f2386ae06b21109577020844df367857b72c2fcce384c1896fed98a89c82b","tgt_lang":"zh-CN","translated":"已过期","updated_at":"2026-06-17T14:13:17.789Z"} @@ -146,11 +148,14 @@ {"cache_key":"85d17e2530b7aae7b69ae9dfa5e55d0d7c06465be5db9773c6f93ab186ed5d76","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.autoRefresh15s","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"15s","text_hash":"21b5f52ded33ab19c16a680c4e280b8f9992395b514290163abf272f06394a6f","tgt_lang":"zh-CN","translated":"15秒","updated_at":"2026-06-17T14:13:17.789Z"} {"cache_key":"86c19e3da87db1491089a234aac58984d031ca793127ba63256b19aa9259a553","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkModel","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Model","text_hash":"5e2c614c23f02239bc03c6c04fcb681950f9e72bf8fdff6be79c79841cbb10c0","tgt_lang":"zh-CN","translated":"模型","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"86dced81359e00a0bbd6f7237fad8f5c1e94e06eb8a1c8aaa659d0d8d352cdc1","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterUnassignedHelp","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Cards without an explicit agent.","text_hash":"f716a36252b33511df056fe7d1092be598eca17ea76bedc5d6d3532ec6b0ffea","tgt_lang":"zh-CN","translated":"未明确指定 agent 的卡片。","updated_at":"2026-06-17T14:13:12.872Z"} +{"cache_key":"87ac87dcb43ec914975713e68201ce95254d3ed4007084c54e1190e13e7b237e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"zh-CN","translated":"用量额度","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"87ae12eb21f59263611833a66dcb31702dccbfba41bdb5c1b9f5650b5da14ac6","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.moveToGroup","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Move session to a group","text_hash":"7db4b663aebb86158b454c49ad05115941c0411cb8ed6182bdc8fd5840f32dff","tgt_lang":"zh-CN","translated":"将会话移动到分组","updated_at":"2026-07-05T14:39:29.129Z"} {"cache_key":"880fd4f479483976258410e957526190665655199903be2338371504e5f51847","model":"gpt-5","provider":"openai","segment_id":"codexSessions.disconnected","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Reconnect to the gateway to refresh Codex sessions.","text_hash":"e5f80a33fab5ee6ffa4d7e3c58e7deb8e078e04b7a12cb9a007913904cbdb0c5","tgt_lang":"zh-CN","translated":"请重新连接 Gateway 以刷新 Codex 会话。","updated_at":"2026-07-09T10:01:43.701Z"} {"cache_key":"88beeee8d7a6f46cf5403890e9b4d699d6d6c11990e3b9c565d3a8ebb02576f1","model":"gpt-5","provider":"openai","segment_id":"codexSessions.searchPlaceholder","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Search session titles","text_hash":"9a6bdede84234fa08d6294e1636a34d26cbdd8eca425248f8d3c6cf8844a0cf9","tgt_lang":"zh-CN","translated":"搜索会话标题","updated_at":"2026-07-09T10:01:43.701Z"} {"cache_key":"890b6f937f03bd9e02e4b8858f9f5ff19e571c94b20682cae0978d9f80be8312","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateOlder","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Older","text_hash":"03281c889c2869e091390f9ad5dd13f0f0e46b42c9c4698f857902451deb3450","tgt_lang":"zh-CN","translated":"更早","updated_at":"2026-07-05T14:39:29.129Z"} +{"cache_key":"8a17e722dd12b3f61aff7e2a5897dab070581678e12290349f939346a175ef27","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"zh-CN","translated":"{time}重置","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"8aadc762c89e6d542e79391f2f20ec1e0fe53ad0214b435ff3232e7ee8614411","model":"gpt-5.5","provider":"openai","segment_id":"nav.exitSettings","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Back to app","text_hash":"a6989680b3528cd399ebaea75e660da6ce8d155d24226532180f90ab37c05e9e","tgt_lang":"zh-CN","translated":"返回应用","updated_at":"2026-07-09T08:07:43.962Z"} +{"cache_key":"8bb245f232ef8206260a3e93a8eabd671e0c689dd12d72676a83e0b03361a492","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"zh-CN","translated":"每周 · 所有模型","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"8c4a9363b4253c0f1a0471adb5a63487ef8d11eecf15e2da62ad06c19d6f17c3","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewRecentlyDone","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Recently done","text_hash":"46b889592a2f5e79197f62b5f96c76993545626bf207740ea58632ceed9623be","tgt_lang":"zh-CN","translated":"最近完成","updated_at":"2026-06-17T14:13:12.872Z"} {"cache_key":"8d43a155d00742cc961984fda6a4e554020b7c72594d7d550c5ddaa9f7128895","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.runDuration","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Run duration","text_hash":"b5e9698b25697ec71f0947df28e6b08438033fe73b1b87ac7362766d77b45b97","tgt_lang":"zh-CN","translated":"运行时长","updated_at":"2026-07-09T10:13:07.809Z"} {"cache_key":"8e53a8a0ab4a78c328102f9f69906a4435905db7f71cfd14ea3a86635387dcce","model":"claude-opus-4-8","provider":"anthropic","segment_id":"cron.jobDetail.cwd","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"CWD","text_hash":"0217f1cb7725737f15a6710df3bcfa3bc10a239f0f7801ec3d7168e675f5ebd6","tgt_lang":"zh-CN","translated":"CWD","updated_at":"2026-06-16T14:13:09.659Z"} @@ -164,6 +169,7 @@ {"cache_key":"931bb31dc9e5fc62578d7b84cddc6c28d0a91462b1d70d91346f70d2f6c5bf46","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.files","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Workspace","text_hash":"87bb59ba2f92f2a5a9f13e021fd58dd14ae5c065b1046146875e6e68d5ebc8b7","tgt_lang":"zh-CN","translated":"工作区","updated_at":"2026-06-16T14:13:02.064Z"} {"cache_key":"94d027d3632d0b83dbad662a48213bff9192175966a3232a12fe80c0c3429d35","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.path","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Workspace path","text_hash":"1fddb73e40f0f5cc6fbf747930a11f857b7a37991caeb4d8677433bbc50a2a38","tgt_lang":"zh-CN","translated":"工作区路径","updated_at":"2026-06-16T14:13:07.632Z"} {"cache_key":"977f813911a330bb671b27ed6adabc6c366f250395bf3b05ca6450a9189226a2","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.contextUsage","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{percent}% of context used ({used} / {context} tokens)","text_hash":"f626ed78b8aca81f039ef64637bbdd4cffe0a289b402fd0c6039e977040aba72","tgt_lang":"zh-CN","translated":"已使用 {percent}% 的上下文({used} / {context} 个 token)","updated_at":"2026-07-09T07:06:10.579Z"} +{"cache_key":"9a146ba6cab54d6d511b1f33da5aab677cb124ba85c3bfcee674761410a3c87a","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"zh-CN","translated":"每日限制","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"9af9effc9d05b8b69b0ef3fc55b7aae6b1942cb2e2fb157e6de1781b20e3e909","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.refresh","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Refresh session workspace","text_hash":"c7a97b20a3a3ce348239c4893c99f1902d44877567cb32f752c30cdfbc9a2468","tgt_lang":"zh-CN","translated":"刷新会话工作区","updated_at":"2026-06-16T14:13:02.064Z"} {"cache_key":"9b3d188311193fa6069b9f08be7d3f4d27c457e7065abe4f1f6b52fd54f3cecd","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationBoard","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Board: {board}","text_hash":"96d7493589e40e17803b3bf643dff1b891a4ebf57f5d2b36af0a7ddd09e64b84","tgt_lang":"zh-CN","translated":"看板:{board}","updated_at":"2026-06-16T14:12:56.348Z"} {"cache_key":"9cdbb5a644a8bcc07b63ca91a9ca8a44ce573821e07e9b0c71a1696b3859027d","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneFallback","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Microphone {number}","text_hash":"357eae20db9739dfdbb59ec21db70200f6ca9ee257c28ed637712f147af419ec","tgt_lang":"zh-CN","translated":"麦克风 {number}","updated_at":"2026-07-06T17:56:04.250Z"} @@ -203,6 +209,7 @@ {"cache_key":"bc8de5c3147c2a650544490d0721eaffab55237b070092a0d63bad6f2f592fe6","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.pairingQrExpired.title","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Pairing QR expired","text_hash":"74e09eafc1d35cad5b62b7a9c321a4d090bb8fefdfa8b33913d6194186eadda6","tgt_lang":"zh-CN","translated":"配对二维码已过期","updated_at":"2026-07-01T10:31:03.966Z"} {"cache_key":"bdb340670df47cbae54025a5ec4856428df61d622ead9150c27a1068dc55e2fb","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChatAria","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Use current chat for revision requests","text_hash":"9c551a423ae74aedaaa90e4df9899dbdc02f846d6ee058bf2576a812e2c52119","tgt_lang":"zh-CN","translated":"将当前聊天用于修订请求","updated_at":"2026-06-16T14:12:56.348Z"} {"cache_key":"c090fc1c2de7a56fb0aa912c902092f18d463241874f3d3ceca44f7d48892897","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.emptyFilteredTitle","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"No cards match this view","text_hash":"a272617e183ba1dff3f7f140d0851b64baf95f4827ff729d23dfeb05c2069875","tgt_lang":"zh-CN","translated":"没有卡片符合此视图","updated_at":"2026-06-17T14:13:17.789Z"} +{"cache_key":"c236e7b14cc80a54b31ed3f1cbea83ee1528b62c05545d43824d53498071b693","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"zh-CN","translated":"5 小时限制","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"c268dbd9a6ff1bdb81405b1aa6e249a9781576aa4f55632323d1fa3d933e8f8a","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.inputTokens","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{count} input","text_hash":"f24231cff78fed82d155712973ede6f9369e96b015acc30d5de2b740677edce9","tgt_lang":"zh-CN","translated":"{count} 个输入令牌","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"c355864abe1010d20cb292cc3969f7d2af29d317136e2369ca404a45cedb7c84","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loadingMore","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Loading…","text_hash":"ba3bbbe10d8bef66441c88536ce7b8e724e2829b59a3da658654f4961cd61ae5","tgt_lang":"zh-CN","translated":"正在加载…","updated_at":"2026-07-09T10:01:43.701Z"} {"cache_key":"c3737355859b78b9222efcbfa3779cc9168eeeb1159a0dd9f5bde1b8682af781","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewDetails","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"View details","text_hash":"d1bf045bb524dae5b02c471c230958bcd1bf232d7a49367b1cdf977855a06b41","tgt_lang":"zh-CN","translated":"查看详情","updated_at":"2026-06-16T14:12:56.348Z"} @@ -235,6 +242,7 @@ {"cache_key":"dc924c18bea888d8a915f542c2b759d5a6ff221ca12869798aede279629bedfa","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.actions","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Workspace file actions","text_hash":"461817d921bc7672e95fe4a3b23f4ac2a4a20e35b3d6eef3f02e8f5ba4201050","tgt_lang":"zh-CN","translated":"工作区文件操作","updated_at":"2026-06-16T14:13:07.632Z"} {"cache_key":"dcbcde9aefceb81d5b5baaaaecb3011643afb5b9af2f45fa6dad4bfa817a1bc3","model":"gpt-5","provider":"openai","segment_id":"codexSessions.summary.onlineHosts","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"online","text_hash":"f6fc84c9f21c24907d6bee6eec38cabab5fa9a7be8c4a7827fe9e56f245bd2d5","tgt_lang":"zh-CN","translated":"在线","updated_at":"2026-07-09T10:01:43.701Z"} {"cache_key":"dd49f8ed874f61fcd6ef3e3d3d869426fd62aac2507318e53463c2bacdb9e29c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.browserCount","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{count} shown","text_hash":"e57b4adfe868fd74a183650103d820176d4960bd0bdb677d9985db09f9752867","tgt_lang":"zh-CN","translated":"已显示 {count} 个","updated_at":"2026-06-16T14:13:07.632Z"} +{"cache_key":"dd6dad49d6ab26541e33457aa008101752f61d1d423fdb5d16e4ebd58ba9354c","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"zh-CN","translated":"套餐用量","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"df533618a71d54ab47a3fab70cf1e1f928aee1837023b7bfb6e54e0cc4c2df38","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneInput","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Microphone input","text_hash":"5c8a6025b9d96fb0c090d33c9def15ee64aa520a83cf5d64c784b4f0699bb15e","tgt_lang":"zh-CN","translated":"麦克风输入","updated_at":"2026-07-06T17:33:17.802Z"} {"cache_key":"e17ad9eace2e7160e31c9e34007e0303ecf7cf73604209705936b698e083dd22","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkSensitivity","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Sensitivity","text_hash":"ebb57a260d58207c3cce2e12e8663ecdc0c74147d138655d6714bc577a0768f6","tgt_lang":"zh-CN","translated":"灵敏度","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"e2b04570ec37956ab09fdb3eda0bb1c6c0f0e4aa3e9fc54e7f90daf6d9b557ee","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameGroupPrompt","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Rename group","text_hash":"98d254a311d0e820bb8739eb28d4e1eb5fc1cfc34f755167759864cd15504b4c","tgt_lang":"zh-CN","translated":"重命名分组","updated_at":"2026-07-06T23:40:42.207Z"} @@ -261,6 +269,7 @@ {"cache_key":"f15d74d2cc3a4de34039e0f558cb3b01aa01f65e91d47e79ea8dd313c8343f95","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewMissingProof","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Missing proof","text_hash":"b46debe888e32eec183dc5936c79d22ea43bec580c410c2b3c1aa24aaa75d677","tgt_lang":"zh-CN","translated":"缺少凭证","updated_at":"2026-06-17T14:13:12.872Z"} {"cache_key":"f25fc84e3c6221a3ae051ed96508d750003607ea5fb1988315024cd6f6ea48dc","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.changed","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Changed","text_hash":"2a6141e43be0c2125e3b5d9f74b4ff1261a0b320ff927c83d4d9b1b65585bad7","tgt_lang":"zh-CN","translated":"已更改","updated_at":"2026-06-16T14:13:07.632Z"} {"cache_key":"f318c1548973587a0e98abf82aebb70929aa11141206f346b9dd5bfe7b6453fa","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.dateNoActivity","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"No activity","text_hash":"0cf9505f9f97c8359cc143ba3e88bedaba3a4ae92c2794ffd1b097270732ed18","tgt_lang":"zh-CN","translated":"无活动","updated_at":"2026-07-05T14:39:29.129Z"} +{"cache_key":"f33e4eb6ac34b6fd773777a4ece31f2645a1ce8cd53315b1aab1a936474d81bd","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.openUsage","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Open usage dashboard","text_hash":"bae5e40b055c195a780a0dc06042d60353da51ab582610096c5cb0d269484c00","tgt_lang":"zh-CN","translated":"打开用量仪表板","updated_at":"2026-07-09T11:48:45.932Z"} {"cache_key":"f3b89fd1435a423eef3ebc5293a4144439c54b739f78094c5e600e53eaba8433","model":"gpt-5.5","provider":"openai","segment_id":"workboard.badgeAttachments","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"{count} attachments","text_hash":"7bb1847693bc91e6e4624d996a96840396a71052786ab143ccb47fbdaa77cf41","tgt_lang":"zh-CN","translated":"{count} 个附件","updated_at":"2026-05-30T15:38:03.150Z"} {"cache_key":"f3e2350de6e160675bcc9622aabeb49160e5631a1357a328449248740b05b11a","model":"gpt-5.5","provider":"openai","segment_id":"nativeLinkMenu.openInline","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Open in Sidebar","text_hash":"ee39dc2999ce3acefff3c4c5440266e6a044feb3fb0a405a754f3ee4f697b201","tgt_lang":"zh-CN","translated":"在边栏中打开","updated_at":"2026-07-09T11:02:24.168Z"} {"cache_key":"f546087198af9c84715102ff9387620795f6b9ee46f90889cf2f7f325ed80b72","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupMenu","source_path":"ui/src/i18n/locales/zh-CN.ts","src_lang":"en","text":"Group options for {group}","text_hash":"29456bfd0f10cfa1b3b0c005e2202221ff66aafe6b72ee05f7cfc93ce9e79af7","tgt_lang":"zh-CN","translated":"{group} 的分组选项","updated_at":"2026-07-06T23:40:42.206Z"} diff --git a/ui/src/i18n/.i18n/zh-TW.meta.json b/ui/src/i18n/.i18n/zh-TW.meta.json index 7ce6fe33a5c..f5e25617bd4 100644 --- a/ui/src/i18n/.i18n/zh-TW.meta.json +++ b/ui/src/i18n/.i18n/zh-TW.meta.json @@ -1,11 +1,11 @@ { "fallbackKeys": [], - "generatedAt": "2026-07-09T14:10:20.289Z", + "generatedAt": "2026-07-09T14:24:53.504Z", "locale": "zh-TW", "model": "gpt-5.5", "provider": "openai", - "sourceHash": "3399b824b867a344d87b038202dd0203eba98be72bebb5dd65b504e054c74925", - "totalKeys": 1755, - "translatedKeys": 1755, + "sourceHash": "1cc4869bd2d34cadbdb88693afdab00ce06bd0bdebcc6c4e8778b0c8335ff412", + "totalKeys": 1764, + "translatedKeys": 1764, "workflow": 1 } diff --git a/ui/src/i18n/.i18n/zh-TW.tm.jsonl b/ui/src/i18n/.i18n/zh-TW.tm.jsonl index 9d2738b60b1..cf9cb4d2c9a 100644 --- a/ui/src/i18n/.i18n/zh-TW.tm.jsonl +++ b/ui/src/i18n/.i18n/zh-TW.tm.jsonl @@ -29,6 +29,7 @@ {"cache_key":"1454e5ea94bc2f88beca7253b08568494df2b89490ec2498b2220c7f1e2df2e2","model":"gpt-5","provider":"openai","segment_id":"codexSessions.searchLabel","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Search Codex sessions","text_hash":"9faac855b3f6714185ac7a410a5e3b039e8217588d32bdcf4084f50c90d8acb7","tgt_lang":"zh-TW","translated":"搜尋 Codex 工作階段","updated_at":"2026-07-09T10:01:43.713Z"} {"cache_key":"147bf0036bab269e4e76958c888d7a598be90be9639d930333cf15e4416702a9","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.emptyFilteredTitle","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"No cards match this view","text_hash":"a272617e183ba1dff3f7f140d0851b64baf95f4827ff729d23dfeb05c2069875","tgt_lang":"zh-TW","translated":"沒有符合此檢視的卡片","updated_at":"2026-06-17T14:13:23.259Z"} {"cache_key":"15b777d3c74a6aaefa88ea632e0db636dc1ca26a4c40943a08132573a89f4f3c","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.healthMissingProof","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"missing proof","text_hash":"748797f5ab1c31c8aeeaf7f76bce76064b175a1d1f530849ec683cacbe6555eb","tgt_lang":"zh-TW","translated":"缺少證明","updated_at":"2026-06-17T14:13:23.259Z"} +{"cache_key":"162841717c67db6b6f654af343ea287c7790d6da4c1cde9fe5dda6a01dea900e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.planUsage","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Plan usage","text_hash":"eb55e9232d2a7503c819491be60761e99458daf4947df9676c5cc86b653f59f4","tgt_lang":"zh-TW","translated":"方案用量","updated_at":"2026-07-09T11:48:50.643Z"} {"cache_key":"1642061a9f02b51059a1c355d8352ec0040c952e4cb590550bbe1e85c492929e","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.composer.talkAdvancedSettingsRequiresAdmin","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Advanced settings require admin","text_hash":"021f44198c7c7935a112e55150d2daaebe388ac9e529460d64c2f8f3ba3b9d82","tgt_lang":"zh-TW","translated":"進階設定需要管理員權限","updated_at":"2026-07-06T20:20:02.809Z"} {"cache_key":"1721597dddda5bdbcd49e85f8038348ca5f343e1ec730814a95aa85993633366","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewReady","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Ready","text_hash":"5fa7aac5375c5815787fba3f49559f9b45b14023147ce0652803387974144e5f","tgt_lang":"zh-TW","translated":"就緒","updated_at":"2026-06-17T14:13:17.815Z"} {"cache_key":"174fffd0f63f0ec52a7aefef498c252fc72e9ab966d5cbf7d0848613a1881113","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.ageHours","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count}h","text_hash":"5828ef1c1e95e0bae1c98548d1795a2482cc8e14a8b161b183960a06018ce10d","tgt_lang":"zh-TW","translated":"{count}小時","updated_at":"2026-06-17T14:13:23.259Z"} @@ -54,6 +55,7 @@ {"cache_key":"2aa479ea5662ceaf049d7b0e1f5bcaa30d0a1afaa1ebd401c19e6dbb769f4feb","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.renameSessionPrompt","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Rename session","text_hash":"2cad0766accc2d3f70f007068524cea983e0d53f54543e9e82a4e73b2a07987f","tgt_lang":"zh-TW","translated":"重新命名工作階段","updated_at":"2026-07-02T14:29:59.020Z"} {"cache_key":"2abfc76b0a5dd5d18efab28d8f168ee646bffbd4538dba8b772978ef3474b730","model":"gpt-5","provider":"openai","segment_id":"codexSessions.host.offline","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Offline","text_hash":"a1794783aab72d205dc532b1170d1be63ebdce8816b57c21acb451c15dab969a","tgt_lang":"zh-TW","translated":"離線","updated_at":"2026-07-09T10:01:43.713Z"} {"cache_key":"2b4270d6ba9f28986c52dcc245aa5e65c336f25d206447290983fcc04e0d7db7","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.newGroupPrompt","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"New group name","text_hash":"cee9e709525c90b1a97dff72c62082602b199b54036ed573926d1b11c6d54ec7","tgt_lang":"zh-TW","translated":"新增群組名稱","updated_at":"2026-07-05T14:39:31.777Z"} +{"cache_key":"2baca11243f583e35c3403aeee04a9a88023ceeb9be8e8a27b376d5dbf3cf73e","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitHours","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{hours}-hour limit","text_hash":"c9091350c3c5c4e3c54dae43eec58cd35555724276a0acc388b98239a573f9df","tgt_lang":"zh-TW","translated":"{hours} 小時限制","updated_at":"2026-07-09T11:48:50.643Z"} {"cache_key":"2dcadb6a56d4dae637c2be124e0077eaa96831f70abeafe9eeb50d47de750d67","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.layoutCompact","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Compact card density","text_hash":"2f532993d5a6ccda4d758c7ecdda8bebaa857218045a3d4a011fec73d9728785","tgt_lang":"zh-TW","translated":"精簡卡片密度","updated_at":"2026-06-17T14:13:17.815Z"} {"cache_key":"2e3c5d81d525ededb9f9fb2b74cd666a54ea490456bb465e19a4ca06dbf823d2","model":"gpt-5.5","provider":"openai","segment_id":"workboard.badgeAttachments","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} attachments","text_hash":"7bb1847693bc91e6e4624d996a96840396a71052786ab143ccb47fbdaa77cf41","tgt_lang":"zh-TW","translated":"{count} 個附件","updated_at":"2026-05-30T15:38:05.607Z"} {"cache_key":"2f98ec5fd8dc15ac7d5d7c2bae44629cebb69aab03283689f9f227dfcf48c5c6","model":"claude-opus-4-8","provider":"anthropic","segment_id":"codexSessions.host.sessionCount","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} shown","text_hash":"e57b4adfe868fd74a183650103d820176d4960bd0bdb677d9985db09f9752867","tgt_lang":"zh-TW","translated":"已顯示 {count} 個","updated_at":"2026-06-16T14:13:16.738Z"} @@ -152,6 +154,7 @@ {"cache_key":"8410fae784a09c9294f96c4597791082040559685ad1a99b1ace40492095a138","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.status.queued","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Queued","text_hash":"661ff40a07e037bbd5f7d4ec97a4df1503096ca910e7c9e2d7a4e9abd4e4e1a0","tgt_lang":"zh-TW","translated":"已排入佇列","updated_at":"2026-07-06T08:41:46.878Z"} {"cache_key":"84130e1d8009552c5e9556a925d32d97b60fa242a84364bcc860c09ee8b5ba46","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.microphoneAccessFailed","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Unable to access microphone inputs.","text_hash":"5125ca209d6d3c763713490ec0de3a44db42aeab03cb21dcf4b047a1a4970669","tgt_lang":"zh-TW","translated":"無法存取麥克風輸入。","updated_at":"2026-07-06T17:56:07.837Z"} {"cache_key":"84eb7f989a1b603c37cc3c034a3cefadddb7e2e5b4dd2594aacffc2699fbc507","model":"gpt-5.5","provider":"openai","segment_id":"chat.archivedSessionDisabled","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Restore this session to send messages.","text_hash":"c21bd35c2bef2266f419cbb4214cfd7b0af89386aef88ec8b11837844240e0d9","tgt_lang":"zh-TW","translated":"還原此工作階段以傳送訊息。","updated_at":"2026-07-02T14:29:59.020Z"} +{"cache_key":"856bd72086b1e942a87d6a300d580f7b7734dcbfa90050856d859c14a2568707","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitWeekly","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Weekly · all models","text_hash":"144f0e5ca031e40c0cba8a53a9dcb4d9534c74edd976587231da2cd14b4944df","tgt_lang":"zh-TW","translated":"每週 · 所有模型","updated_at":"2026-07-09T11:48:50.643Z"} {"cache_key":"8703e3f6174426ea308da95b235bace248f3029faaa6959e881257ec66bfca36","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.groupRowCountOne","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} session","text_hash":"c0975b42c84d7da963f4c962d1e2c1ee78eb18efc7ebec75fb3ce761ce9a40db","tgt_lang":"zh-TW","translated":"{count} 個工作階段","updated_at":"2026-07-05T14:39:31.777Z"} {"cache_key":"89177c7414a815aba0b43c4f1ba3b90adc797d170acc5724648356551a4a261f","model":"gpt-5.5","provider":"openai","segment_id":"tasksPage.runtime.subagent","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Subagent","text_hash":"d6cb4188b8fa57aae3e4ca3a1210c9afe7ca995375c2fb36d90a1fa73529a44e","tgt_lang":"zh-TW","translated":"子代理","updated_at":"2026-07-06T08:41:48.829Z"} {"cache_key":"892ea67d82274b90a2a037200cf74c6aafd1ee90ec43db2208517e488500c0c2","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.artifactCount","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} artifacts","text_hash":"022b6b55a10f1864b7aff7c307e49ab37e11e6999111fb87349f040d100abba3","tgt_lang":"zh-TW","translated":"{count} 個成品","updated_at":"2026-06-16T14:13:16.738Z"} @@ -230,6 +233,7 @@ {"cache_key":"c2b2d7476857ba2c76bf4af5fc6d0bbf8d93921250580da64b5acc9314a8dd23","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.lastDays","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} days","text_hash":"e9f0a85930cc6fa61b7ac01763893020adc4c712d1b8e8897bdd13971637d529","tgt_lang":"zh-TW","translated":"{count} 天","updated_at":"2026-07-06T06:40:15.357Z"} {"cache_key":"c2b674c569aa61cd0608286bf9e7a2cf3582e40f9a59151a99b2e8054f2fcc1f","model":"claude-opus-4-8","provider":"anthropic","segment_id":"skillWorkshop.header.useCurrentChatTooltip","source_path":"ui/src/i18n/locales/zh-TW.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":"zh-TW","translated":"將修訂請求傳送至目前的對話工作階段,而非提案的工作坊工作階段。","updated_at":"2026-06-16T14:12:59.400Z"} {"cache_key":"c2c2e45fc3581350cb2d0ed404cf96605a73c976ed106d79f0f259c7566e70e7","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.dependencyMissing","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{parent} (missing)","text_hash":"8daa419059727391c01e3b7021e05d8d70b4da67f9c57cd2d80f302af77aac53","tgt_lang":"zh-TW","translated":"{parent}(缺少)","updated_at":"2026-06-16T14:13:10.175Z"} +{"cache_key":"c2c7575eaf2795c40fe37580afefe838cb41e3d884c9bc2eaa176a66372866d8","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.usageCredits","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Usage credits","text_hash":"fbc841b791a14110e06a9913d3d69153b9cc4cf9542b856821b357a09a7c08a4","tgt_lang":"zh-TW","translated":"用量額度","updated_at":"2026-07-09T11:48:50.643Z"} {"cache_key":"c38e20ce158639649de7b4ea479cc4b1d764fcbefcbe7a2a56d4e591797dd315","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailWorkerProtocol","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Worker protocol","text_hash":"e445d823cfa48c4e8fa1d8854771e9939955e772428be6d7957deec0f7968764","tgt_lang":"zh-TW","translated":"Worker 通訊協定","updated_at":"2026-06-16T14:12:59.400Z"} {"cache_key":"c3e187d9e145c316c81e980cc61c7f3c1c20993690b0b0952b5b44819d0edd79","model":"gpt-5","provider":"openai","segment_id":"codexSessions.refresh","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Refresh","text_hash":"0e91610117029a62a478b7fa7df0b8598bebe3ab1e192d4b1882e310719c9671","tgt_lang":"zh-TW","translated":"重新整理","updated_at":"2026-07-09T10:01:43.713Z"} {"cache_key":"c40752a1bede44892603dced6ccd915360de537f3e3b2ca3e80fd2af2607eed0","model":"gpt-5.5","provider":"openai","segment_id":"sessionsView.moveToGroup","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Move session to a group","text_hash":"7db4b663aebb86158b454c49ad05115941c0411cb8ed6182bdc8fd5840f32dff","tgt_lang":"zh-TW","translated":"將工作階段移至群組","updated_at":"2026-07-05T14:39:31.777Z"} @@ -256,6 +260,7 @@ {"cache_key":"d92258d6c8d1491219a65f844b2fc4e3efc7a714602fc1ceef0bf41662c7e8cf","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.requests","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} requests","text_hash":"1e23ff6956124091cd470f5091cee8108c3766314b69871b3ff792eaf506455f","tgt_lang":"zh-TW","translated":"{count} 個請求","updated_at":"2026-07-06T06:40:15.357Z"} {"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":"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":"de30a91cd96b0c6054b0d6430b4e87693b5f85f443fcee040ece1fa617582706","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.viewReview","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Review","text_hash":"aff0766a5290e117b8433c351bae7b7b23bed682b2369bd822d88a647cc58512","tgt_lang":"zh-TW","translated":"審查","updated_at":"2026-06-17T14:13:17.815Z"} {"cache_key":"de54436908f6d2fd9df0c009a66b27614fc3f0ea242b416d07b12aabd6700d26","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentCurrentUnconfigured","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{agent} (not configured)","text_hash":"d138ab0079dea760c723d7c947d0c31178252e28e7dd70a40b9d3d85e5549b1d","tgt_lang":"zh-TW","translated":"{agent}(未設定)","updated_at":"2026-06-17T14:13:17.815Z"} @@ -278,13 +283,16 @@ {"cache_key":"eb1cc6412192b655a08bf7487b10178f19fdf1bb43cdfa8918224bec515f5d40","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.today","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Today","text_hash":"2b065c7c9ce466e5ebcad757987d5d660ee4c9ea708bc62c43444b53334738ba","tgt_lang":"zh-TW","translated":"今天","updated_at":"2026-07-05T14:39:31.777Z"} {"cache_key":"eb2f53c8c7ec2fadd7ff92828d314da255664c15c900ba8f2ce06694630a60be","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAutomationSkills","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Skills: {skills}","text_hash":"4788d5f9db66e1421a762bbd942c64450c73d2145a6ef929ce32a919a0f2e3a1","tgt_lang":"zh-TW","translated":"Skills:{skills}","updated_at":"2026-06-16T14:12:59.400Z"} {"cache_key":"eb5efd0a9c5046ef786387b7aa0cd5cb3f0b8cd872fa1d44dd01df149b109225","model":"gpt-5.5","provider":"openai","segment_id":"usage.providerUsage.topModels","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Top models","text_hash":"79489561d9efe32b89add781323318355ae49e3d71f9c5a45a34c21825778663","tgt_lang":"zh-TW","translated":"熱門模型","updated_at":"2026-07-06T06:40:15.357Z"} +{"cache_key":"eb9fef190cd93a65269f1022faabbf1a43a6266c2110cd5dea2728d0ef99e945","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitFiveHour","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"5-hour limit","text_hash":"26d04fad786b1e3a08fd957ec893b0457b72a2926da0ee63847aea9037951d24","tgt_lang":"zh-TW","translated":"5 小時限制","updated_at":"2026-07-09T11:48:50.643Z"} {"cache_key":"ebc88b7b4ea809cbb95681c81ec701aeb5d72d86526f22e6454329ccefcd90bd","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailTask","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Gateway task","text_hash":"6696e7c592238747dd39d7ba000db600a92f843add73ee90b028c72a2dfd37dd","tgt_lang":"zh-TW","translated":"Gateway 任務","updated_at":"2026-06-16T14:12:59.400Z"} {"cache_key":"eca2bd878e2ec5e890154a50cc31ee958df8db43898e9b6fc4a373740056b4e0","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.open","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Open context usage details","text_hash":"8765adde14aebe600e7c9c69196c5b4a9ccc654802a94626d0391d9eaed725b1","tgt_lang":"zh-TW","translated":"開啟上下文使用詳細資料","updated_at":"2026-07-05T10:15:56.105Z"} {"cache_key":"ed5b13f86ba6754ba9c9320b591b7f4dab51f0a76f3d1b10a90fffac13eb8b10","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterUnassignedHelp","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Cards without an explicit agent.","text_hash":"f716a36252b33511df056fe7d1092be598eca17ea76bedc5d6d3532ec6b0ffea","tgt_lang":"zh-TW","translated":"未明確指派代理人的卡片。","updated_at":"2026-06-17T14:13:17.815Z"} {"cache_key":"eeab87134e31ac0db534306fa8784c3618002e0dff86d9d2c3dd91cf348d5ca4","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.artifacts","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Artifacts","text_hash":"314ae71b8c8dc9c952f0ffc58e35e6d9a41b5cf4756471c7cab0c9476cd5d20b","tgt_lang":"zh-TW","translated":"成品","updated_at":"2026-06-16T14:13:16.738Z"} +{"cache_key":"eed32ebc5baa6dfcde013b4bf8110246759661ff9dc0cf2749c0bf6ed08ddf36","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.limitDaily","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Daily limit","text_hash":"1e4ce9cd955f07b1b79cddb1bec9df28d4033d4238c0e54b0b766239133afc8c","tgt_lang":"zh-TW","translated":"每日限制","updated_at":"2026-07-09T11:48:50.643Z"} {"cache_key":"f08ffbf66802ffd513e8dcdc0e9ef73aa9305902441f45c93c28270c02be1708","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.title","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Context usage details","text_hash":"0e04e44654b5a2abf769dcd2f82a32e0501a41689d6635d7f718978c160958f0","tgt_lang":"zh-TW","translated":"上下文使用詳細資料","updated_at":"2026-07-05T10:15:56.105Z"} {"cache_key":"f0a11a5e96a6cd9f0a67c23de6242a71436f69ef1a64dec39dbf0f69704ee2d6","model":"gpt-5","provider":"openai","segment_id":"codexSessions.title","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Sessions across your computers","text_hash":"23b30c777a12daeb3e5471cd51530189b621db9fdec4e6ea976e5a97516fac22","tgt_lang":"zh-TW","translated":"所有電腦上的工作階段","updated_at":"2026-07-09T10:01:43.713Z"} {"cache_key":"f1fc51b55dc6e3f5a6ab83f0bf252d3b941dd99ec72b1d6d3c64c3b272c14d3a","model":"claude-opus-4-8","provider":"anthropic","segment_id":"chat.workspaceFiles.browserCount","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} shown","text_hash":"e57b4adfe868fd74a183650103d820176d4960bd0bdb677d9985db09f9752867","tgt_lang":"zh-TW","translated":"已顯示 {count} 個","updated_at":"2026-06-16T14:13:16.738Z"} +{"cache_key":"f5202fcb93fa9677f6b334efdd05538a9404245381a2bab3a1a9444c9cabd982","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.resets","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Resets {time}","text_hash":"5a0f8c1b2755ee505e02e19fadc7377ad48df63cc7d3399c20228fe3edc37cb1","tgt_lang":"zh-TW","translated":"{time} 重設","updated_at":"2026-07-09T11:48:50.643Z"} {"cache_key":"f5d1f922c846ba4d8cbb864e1a790945e8d13feb67fc8fe60c90bbe02dc285fa","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.detailAddNote","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Add note","text_hash":"63565c0485fec4f743719849734553a5d7947f5962ec9e831e3bce131b3c47fb","tgt_lang":"zh-TW","translated":"新增備註","updated_at":"2026-06-16T14:13:10.175Z"} {"cache_key":"f5dfebffaf445b574685fda80f52b609123bc67bfe73bc674763c4c71a938497","model":"gpt-5.5","provider":"openai","segment_id":"worktrees.actions","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Actions","text_hash":"ff8059dc6752afdd30d275932b1d5031a2ec854b387a8c57ecc6689915293a43","tgt_lang":"zh-TW","translated":"操作","updated_at":"2026-07-05T21:00:31.397Z"} {"cache_key":"f725cc564ca677916917da2b7c52b1769a1588dfef4e9bb5f26eb3f75fcfbb82","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.agentFilterUnassigned","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Unassigned (uses {agent})","text_hash":"2700af0c4ab5e86726f72a723ecdf50370b87690db35f00b83723d6457879c8e","tgt_lang":"zh-TW","translated":"未指派(使用 {agent})","updated_at":"2026-06-17T14:13:17.814Z"} @@ -297,3 +305,4 @@ {"cache_key":"fbab9f22e08085b3fce1b0cc82547c65d206e1f2b402c3e9235e56200e610ebf","model":"gpt-5","provider":"openai","segment_id":"codexSessions.loading","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Loading Codex sessions…","text_hash":"18a71c76786db89f928536e164096422e68e86db86fa3684bc3644f36df70300","tgt_lang":"zh-TW","translated":"正在載入 Codex 工作階段…","updated_at":"2026-07-09T10:01:43.713Z"} {"cache_key":"fc674a3b686d207ed844d070088891a332ddecc90ec837b7b17ab4d776fc8311","model":"gpt-5.5","provider":"openai","segment_id":"chat.sidebar.sortBy","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"Sort by","text_hash":"c9129025bd3ff6522a7eeebc1abf1481f36e4ac9d74524a473ac1c3be1c6fc2f","tgt_lang":"zh-TW","translated":"排序依據","updated_at":"2026-07-06T23:40:44.295Z"} {"cache_key":"fc692a69e2adb5a42f774a5adde96dd42dd90a3b96312c263af731c4ed699872","model":"claude-opus-4-8","provider":"anthropic","segment_id":"workboard.dependenciesReady","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{count} ready","text_hash":"f5f5fd424d7c18f19a51ee147857efddc320a0ec6e1eeb4354be129425632f05","tgt_lang":"zh-TW","translated":"{count} 個就緒","updated_at":"2026-06-16T14:13:10.175Z"} +{"cache_key":"fe0ef7f21689b09072dc40a097bdc7f6b69f465221a8fa01f3674661fddb1075","model":"gpt-5.5","provider":"openai","segment_id":"chat.composer.contextUsage.budgetValue","source_path":"ui/src/i18n/locales/zh-TW.ts","src_lang":"en","text":"{used} of {limit}","text_hash":"e191398f92416f35cb6279f7206d2b67cdee04ce46932a1ece17c8c18ca3636e","tgt_lang":"zh-TW","translated":"{used} / {limit}","updated_at":"2026-07-09T11:48:50.643Z"} diff --git a/ui/src/i18n/locales/ar.ts b/ui/src/i18n/locales/ar.ts index a90cec87776..8510b1799b0 100644 --- a/ui/src/i18n/locales/ar.ts +++ b/ui/src/i18n/locales/ar.ts @@ -1744,6 +1744,15 @@ export const ar: TranslationMap = { contextWindow: "نافذة السياق", latestRunTokens: "رموز التشغيل الأخير", estimatedCost: "التكلفة المقدّرة", + planUsage: "استخدام الخطة", + openUsage: "فتح لوحة معلومات الاستخدام", + resets: "تتم إعادة التعيين {time}", + usageCredits: "أرصدة الاستخدام", + budgetValue: "{used} من {limit}", + limitFiveHour: "حد 5 ساعات", + limitWeekly: "أسبوعي · كل النماذج", + limitDaily: "الحد اليومي", + limitHours: "حد {hours} ساعات", }, takePhoto: "التقاط صورة", dismissVoiceInputError: "تجاهل خطأ الإدخال الصوتي", diff --git a/ui/src/i18n/locales/de.ts b/ui/src/i18n/locales/de.ts index 0a8e3e24241..d43795ac901 100644 --- a/ui/src/i18n/locales/de.ts +++ b/ui/src/i18n/locales/de.ts @@ -1778,6 +1778,15 @@ export const de: TranslationMap = { contextWindow: "Kontextfenster", latestRunTokens: "Tokens des letzten Laufs", estimatedCost: "Geschätzte Kosten", + planUsage: "Plannutzung", + openUsage: "Nutzungs-Dashboard öffnen", + resets: "Wird {time} zurückgesetzt", + usageCredits: "Nutzungsguthaben", + budgetValue: "{used} von {limit}", + limitFiveHour: "5-Stunden-Limit", + limitWeekly: "Wöchentlich · alle Modelle", + limitDaily: "Tägliches Limit", + limitHours: "{hours}-Stunden-Limit", }, takePhoto: "Foto aufnehmen", dismissVoiceInputError: "Fehler bei der Spracheingabe schließen", diff --git a/ui/src/i18n/locales/en.ts b/ui/src/i18n/locales/en.ts index c50a709d248..a9e62f8376e 100644 --- a/ui/src/i18n/locales/en.ts +++ b/ui/src/i18n/locales/en.ts @@ -1752,6 +1752,15 @@ export const en: TranslationMap = { contextWindow: "Context window", latestRunTokens: "Latest run tokens", estimatedCost: "Est. cost", + planUsage: "Plan usage", + openUsage: "Open usage dashboard", + resets: "Resets {time}", + usageCredits: "Usage credits", + budgetValue: "{used} of {limit}", + limitFiveHour: "5-hour limit", + limitWeekly: "Weekly · all models", + limitDaily: "Daily limit", + limitHours: "{hours}-hour limit", }, takePhoto: "Take photo", dismissVoiceInputError: "Dismiss voice input error", diff --git a/ui/src/i18n/locales/es.ts b/ui/src/i18n/locales/es.ts index 90b95dc6885..5847eda36fa 100644 --- a/ui/src/i18n/locales/es.ts +++ b/ui/src/i18n/locales/es.ts @@ -1775,6 +1775,15 @@ export const es: TranslationMap = { contextWindow: "Ventana de contexto", latestRunTokens: "Tokens de la ejecución más reciente", estimatedCost: "Costo est.", + planUsage: "Uso del plan", + openUsage: "Abrir panel de uso", + resets: "Se restablece {time}", + usageCredits: "Créditos de uso", + budgetValue: "{used} de {limit}", + limitFiveHour: "Límite de 5 horas", + limitWeekly: "Semanal · todos los modelos", + limitDaily: "Límite diario", + limitHours: "Límite de {hours} horas", }, takePhoto: "Tomar foto", dismissVoiceInputError: "Descartar error de entrada de voz", diff --git a/ui/src/i18n/locales/fa.ts b/ui/src/i18n/locales/fa.ts index 3ede156c287..792fe38a043 100644 --- a/ui/src/i18n/locales/fa.ts +++ b/ui/src/i18n/locales/fa.ts @@ -1765,6 +1765,15 @@ export const fa: TranslationMap = { contextWindow: "پنجرهٔ زمینه", latestRunTokens: "توکن‌های آخرین اجرا", estimatedCost: "هزینهٔ تخمینی", + planUsage: "مصرف طرح", + openUsage: "باز کردن داشبورد مصرف", + resets: "بازنشانی در {time}", + usageCredits: "اعتبارهای مصرف", + budgetValue: "{used} از {limit}", + limitFiveHour: "محدودیت ۵ ساعته", + limitWeekly: "هفتگی · همهٔ مدل‌ها", + limitDaily: "محدودیت روزانه", + limitHours: "محدودیت {hours} ساعته", }, takePhoto: "عکس گرفتن", dismissVoiceInputError: "بستن خطای ورودی صوتی", diff --git a/ui/src/i18n/locales/fr.ts b/ui/src/i18n/locales/fr.ts index cf8f8125ec8..3dbca27b390 100644 --- a/ui/src/i18n/locales/fr.ts +++ b/ui/src/i18n/locales/fr.ts @@ -1787,6 +1787,15 @@ export const fr: TranslationMap = { contextWindow: "Fenêtre de contexte", latestRunTokens: "Tokens de la dernière exécution", estimatedCost: "Coût estimé", + planUsage: "Utilisation du forfait", + openUsage: "Ouvrir le tableau de bord d’utilisation", + resets: "Réinitialisation {time}", + usageCredits: "Crédits d’utilisation", + budgetValue: "{used} sur {limit}", + limitFiveHour: "Limite de 5 heures", + limitWeekly: "Hebdomadaire · tous les modèles", + limitDaily: "Limite quotidienne", + limitHours: "Limite de {hours} heures", }, takePhoto: "Prendre une photo", dismissVoiceInputError: "Ignorer l’erreur de saisie vocale", diff --git a/ui/src/i18n/locales/hi.ts b/ui/src/i18n/locales/hi.ts index c01fba90cd9..d29a1476cd1 100644 --- a/ui/src/i18n/locales/hi.ts +++ b/ui/src/i18n/locales/hi.ts @@ -1747,6 +1747,15 @@ export const hi: TranslationMap = { contextWindow: "संदर्भ विंडो", latestRunTokens: "नवीनतम रन टोकन", estimatedCost: "अनुमानित लागत", + planUsage: "प्लान उपयोग", + openUsage: "उपयोग डैशबोर्ड खोलें", + resets: "{time} में रीसेट होता है", + usageCredits: "उपयोग क्रेडिट", + budgetValue: "{used} में से {limit}", + limitFiveHour: "5-घंटे की सीमा", + limitWeekly: "साप्ताहिक · सभी मॉडल", + limitDaily: "दैनिक सीमा", + limitHours: "{hours}-घंटे की सीमा", }, takePhoto: "फ़ोटो लें", dismissVoiceInputError: "वॉइस इनपुट त्रुटि बंद करें", diff --git a/ui/src/i18n/locales/id.ts b/ui/src/i18n/locales/id.ts index 88df2909854..60827b485a5 100644 --- a/ui/src/i18n/locales/id.ts +++ b/ui/src/i18n/locales/id.ts @@ -1765,6 +1765,15 @@ export const id: TranslationMap = { contextWindow: "Jendela konteks", latestRunTokens: "Token eksekusi terbaru", estimatedCost: "Perk. biaya", + planUsage: "Penggunaan paket", + openUsage: "Buka dasbor penggunaan", + resets: "Direset {time}", + usageCredits: "Kredit penggunaan", + budgetValue: "{used} dari {limit}", + limitFiveHour: "Batas 5 jam", + limitWeekly: "Mingguan · semua model", + limitDaily: "Batas harian", + limitHours: "Batas {hours} jam", }, takePhoto: "Ambil foto", dismissVoiceInputError: "Tutup kesalahan input suara", diff --git a/ui/src/i18n/locales/it.ts b/ui/src/i18n/locales/it.ts index a79c61f9cf8..a549194a69e 100644 --- a/ui/src/i18n/locales/it.ts +++ b/ui/src/i18n/locales/it.ts @@ -1778,6 +1778,15 @@ export const it: TranslationMap = { contextWindow: "Finestra di contesto", latestRunTokens: "Token dell'ultima esecuzione", estimatedCost: "Costo stim.", + planUsage: "Utilizzo del piano", + openUsage: "Apri dashboard di utilizzo", + resets: "Si reimposta {time}", + usageCredits: "Crediti di utilizzo", + budgetValue: "{used} di {limit}", + limitFiveHour: "Limite di 5 ore", + limitWeekly: "Settimanale · tutti i modelli", + limitDaily: "Limite giornaliero", + limitHours: "Limite di {hours} ore", }, takePhoto: "Scatta una foto", dismissVoiceInputError: "Ignora errore di input vocale", diff --git a/ui/src/i18n/locales/ja-JP.ts b/ui/src/i18n/locales/ja-JP.ts index 1b316911dc2..5773fb58f60 100644 --- a/ui/src/i18n/locales/ja-JP.ts +++ b/ui/src/i18n/locales/ja-JP.ts @@ -1772,6 +1772,15 @@ export const ja_JP: TranslationMap = { contextWindow: "コンテキストウィンドウ", latestRunTokens: "最新実行のトークン", estimatedCost: "推定コスト", + planUsage: "プランの使用状況", + openUsage: "使用状況ダッシュボードを開く", + resets: "{time}にリセット", + usageCredits: "使用クレジット", + budgetValue: "{limit}中{used}", + limitFiveHour: "5時間制限", + limitWeekly: "週次 · すべてのモデル", + limitDaily: "日次制限", + limitHours: "{hours}時間制限", }, takePhoto: "写真を撮る", dismissVoiceInputError: "音声入力エラーを閉じる", diff --git a/ui/src/i18n/locales/ko.ts b/ui/src/i18n/locales/ko.ts index acf47b4c75b..60b4945fcc7 100644 --- a/ui/src/i18n/locales/ko.ts +++ b/ui/src/i18n/locales/ko.ts @@ -1754,6 +1754,15 @@ export const ko: TranslationMap = { contextWindow: "컨텍스트 창", latestRunTokens: "최근 실행 토큰", estimatedCost: "예상 비용", + planUsage: "플랜 사용량", + openUsage: "사용량 대시보드 열기", + resets: "{time}에 재설정", + usageCredits: "사용 크레딧", + budgetValue: "{limit} 중 {used}", + limitFiveHour: "5시간 한도", + limitWeekly: "주간 · 모든 모델", + limitDaily: "일일 한도", + limitHours: "{hours}시간 한도", }, takePhoto: "사진 촬영", dismissVoiceInputError: "음성 입력 오류 닫기", diff --git a/ui/src/i18n/locales/nl.ts b/ui/src/i18n/locales/nl.ts index 2ab7a5d9300..afd502bcf5d 100644 --- a/ui/src/i18n/locales/nl.ts +++ b/ui/src/i18n/locales/nl.ts @@ -1771,6 +1771,15 @@ export const nl: TranslationMap = { contextWindow: "Contextvenster", latestRunTokens: "Tokens van laatste run", estimatedCost: "Geschatte kosten", + planUsage: "Plangebruik", + openUsage: "Gebruiksdashboard openen", + resets: "Wordt gereset {time}", + usageCredits: "Gebruikstegoeden", + budgetValue: "{used} van {limit}", + limitFiveHour: "Limiet van 5 uur", + limitWeekly: "Wekelijks · alle modellen", + limitDaily: "Dagelijkse limiet", + limitHours: "Limiet van {hours} uur", }, takePhoto: "Foto maken", dismissVoiceInputError: "Fout bij spraakinvoer sluiten", diff --git a/ui/src/i18n/locales/pl.ts b/ui/src/i18n/locales/pl.ts index 5b38b1610b1..e6cef0a7ada 100644 --- a/ui/src/i18n/locales/pl.ts +++ b/ui/src/i18n/locales/pl.ts @@ -1771,6 +1771,15 @@ export const pl: TranslationMap = { contextWindow: "Okno kontekstu", latestRunTokens: "Tokeny ostatniego uruchomienia", estimatedCost: "Szac. koszt", + planUsage: "Wykorzystanie planu", + openUsage: "Otwórz panel wykorzystania", + resets: "Resetuje się {time}", + usageCredits: "Kredyty wykorzystania", + budgetValue: "{used} z {limit}", + limitFiveHour: "Limit 5-godzinny", + limitWeekly: "Tygodniowo · wszystkie modele", + limitDaily: "Limit dzienny", + limitHours: "Limit {hours}-godzinny", }, takePhoto: "Zrób zdjęcie", dismissVoiceInputError: "Zamknij błąd wprowadzania głosowego", diff --git a/ui/src/i18n/locales/pt-BR.ts b/ui/src/i18n/locales/pt-BR.ts index c3f6408c4cd..e8660d2d2f9 100644 --- a/ui/src/i18n/locales/pt-BR.ts +++ b/ui/src/i18n/locales/pt-BR.ts @@ -1767,6 +1767,15 @@ export const pt_BR: TranslationMap = { contextWindow: "Janela de contexto", latestRunTokens: "Tokens da execução mais recente", estimatedCost: "Custo estimado", + planUsage: "Uso do plano", + openUsage: "Abrir painel de uso", + resets: "Redefine em {time}", + usageCredits: "Créditos de uso", + budgetValue: "{used} de {limit}", + limitFiveHour: "Limite de 5 horas", + limitWeekly: "Semanal · todos os modelos", + limitDaily: "Limite diário", + limitHours: "Limite de {hours} horas", }, takePhoto: "Tirar foto", dismissVoiceInputError: "Dispensar erro de entrada de voz", diff --git a/ui/src/i18n/locales/ru.ts b/ui/src/i18n/locales/ru.ts index 9bcf7c56770..a9b65b8d173 100644 --- a/ui/src/i18n/locales/ru.ts +++ b/ui/src/i18n/locales/ru.ts @@ -1780,6 +1780,15 @@ export const ru: TranslationMap = { contextWindow: "Окно контекста", latestRunTokens: "Токены последнего запуска", estimatedCost: "Оцен. стоимость", + planUsage: "Использование плана", + openUsage: "Открыть панель использования", + resets: "Сброс {time}", + usageCredits: "Кредиты использования", + budgetValue: "{used} из {limit}", + limitFiveHour: "5-часовой лимит", + limitWeekly: "Еженедельно · все модели", + limitDaily: "Дневной лимит", + limitHours: "{hours}-часовой лимит", }, takePhoto: "Сделать фото", dismissVoiceInputError: "Закрыть ошибку голосового ввода", diff --git a/ui/src/i18n/locales/th.ts b/ui/src/i18n/locales/th.ts index 678ac01b505..91eeeeb138e 100644 --- a/ui/src/i18n/locales/th.ts +++ b/ui/src/i18n/locales/th.ts @@ -1728,6 +1728,15 @@ export const th: TranslationMap = { contextWindow: "หน้าต่างบริบท", latestRunTokens: "โทเค็นของการรันล่าสุด", estimatedCost: "ค่าใช้จ่ายโดยประมาณ", + planUsage: "การใช้งานของแผน", + openUsage: "เปิดแดชบอร์ดการใช้งาน", + resets: "รีเซ็ต {time}", + usageCredits: "เครดิตการใช้งาน", + budgetValue: "{used} จาก {limit}", + limitFiveHour: "ขีดจำกัด 5 ชั่วโมง", + limitWeekly: "รายสัปดาห์ · ทุกรุ่น", + limitDaily: "ขีดจำกัดรายวัน", + limitHours: "ขีดจำกัด {hours} ชั่วโมง", }, takePhoto: "ถ่ายรูป", dismissVoiceInputError: "ปิดข้อผิดพลาดการป้อนข้อมูลด้วยเสียง", diff --git a/ui/src/i18n/locales/tr.ts b/ui/src/i18n/locales/tr.ts index a8b54f17126..5e723bfcae4 100644 --- a/ui/src/i18n/locales/tr.ts +++ b/ui/src/i18n/locales/tr.ts @@ -1773,6 +1773,15 @@ export const tr: TranslationMap = { contextWindow: "Bağlam penceresi", latestRunTokens: "En son çalıştırma token'ları", estimatedCost: "Tahmini maliyet", + planUsage: "Plan kullanımı", + openUsage: "Kullanım panosunu aç", + resets: "{time} içinde sıfırlanır", + usageCredits: "Kullanım kredileri", + budgetValue: "{limit} içinde {used}", + limitFiveHour: "5 saatlik sınır", + limitWeekly: "Haftalık · tüm modeller", + limitDaily: "Günlük sınır", + limitHours: "{hours} saatlik sınır", }, takePhoto: "Fotoğraf çek", dismissVoiceInputError: "Ses girişi hatasını kapat", diff --git a/ui/src/i18n/locales/uk.ts b/ui/src/i18n/locales/uk.ts index d8b2246d2e1..6275e0f4f3c 100644 --- a/ui/src/i18n/locales/uk.ts +++ b/ui/src/i18n/locales/uk.ts @@ -1768,6 +1768,15 @@ export const uk: TranslationMap = { contextWindow: "Контекстне вікно", latestRunTokens: "Токени останнього запуску", estimatedCost: "Орієнт. вартість", + planUsage: "Використання плану", + openUsage: "Відкрити панель використання", + resets: "Скидається {time}", + usageCredits: "Кредити використання", + budgetValue: "{used} з {limit}", + limitFiveHour: "5-годинний ліміт", + limitWeekly: "Щотижня · усі моделі", + limitDaily: "Добовий ліміт", + limitHours: "{hours}-годинний ліміт", }, takePhoto: "Зробити фото", dismissVoiceInputError: "Закрити помилку голосового введення", diff --git a/ui/src/i18n/locales/vi.ts b/ui/src/i18n/locales/vi.ts index 844a0e59e63..ffa29eec7ac 100644 --- a/ui/src/i18n/locales/vi.ts +++ b/ui/src/i18n/locales/vi.ts @@ -1756,6 +1756,15 @@ export const vi: TranslationMap = { contextWindow: "Cửa sổ ngữ cảnh", latestRunTokens: "Token của lần chạy gần nhất", estimatedCost: "Chi phí ước tính", + planUsage: "Mức sử dụng gói", + openUsage: "Mở bảng điều khiển mức sử dụng", + resets: "Đặt lại {time}", + usageCredits: "Tín dụng sử dụng", + budgetValue: "{used} trên {limit}", + limitFiveHour: "Giới hạn 5 giờ", + limitWeekly: "Hàng tuần · tất cả mô hình", + limitDaily: "Giới hạn hằng ngày", + limitHours: "Giới hạn {hours} giờ", }, takePhoto: "Chụp ảnh", dismissVoiceInputError: "Đóng lỗi nhập bằng giọng nói", diff --git a/ui/src/i18n/locales/zh-CN.ts b/ui/src/i18n/locales/zh-CN.ts index a0db9bc891e..53e1781a6f7 100644 --- a/ui/src/i18n/locales/zh-CN.ts +++ b/ui/src/i18n/locales/zh-CN.ts @@ -1723,6 +1723,15 @@ export const zh_CN: TranslationMap = { contextWindow: "上下文窗口", latestRunTokens: "最新运行令牌", estimatedCost: "预估成本", + planUsage: "套餐用量", + openUsage: "打开用量仪表板", + resets: "{time}重置", + usageCredits: "用量额度", + budgetValue: "{used} / {limit}", + limitFiveHour: "5 小时限制", + limitWeekly: "每周 · 所有模型", + limitDaily: "每日限制", + limitHours: "{hours} 小时限制", }, takePhoto: "拍照", dismissVoiceInputError: "关闭语音输入错误", diff --git a/ui/src/i18n/locales/zh-TW.ts b/ui/src/i18n/locales/zh-TW.ts index 731e7adc7a3..a51206a5b19 100644 --- a/ui/src/i18n/locales/zh-TW.ts +++ b/ui/src/i18n/locales/zh-TW.ts @@ -1725,6 +1725,15 @@ export const zh_TW: TranslationMap = { contextWindow: "上下文視窗", latestRunTokens: "最新執行權杖", estimatedCost: "預估費用", + planUsage: "方案用量", + openUsage: "開啟用量儀表板", + resets: "{time} 重設", + usageCredits: "用量額度", + budgetValue: "{used} / {limit}", + limitFiveHour: "5 小時限制", + limitWeekly: "每週 · 所有模型", + limitDaily: "每日限制", + limitHours: "{hours} 小時限制", }, takePhoto: "拍照", dismissVoiceInputError: "關閉語音輸入錯誤", diff --git a/ui/src/lib/provider-quota-summary.test.ts b/ui/src/lib/provider-quota-summary.test.ts index d1845c9b36f..938d79cc4ae 100644 --- a/ui/src/lib/provider-quota-summary.test.ts +++ b/ui/src/lib/provider-quota-summary.test.ts @@ -1,6 +1,7 @@ // Control UI tests cover provider quota summary behavior. import { afterEach, describe, expect, it, vi } from "vitest"; -import { formatQuotaReset } from "./provider-quota-summary.ts"; +import type { ModelAuthStatusProvider } from "../api/types.ts"; +import { collectProviderQuotaGroups, formatQuotaReset } from "./provider-quota-summary.ts"; describe("formatQuotaReset", () => { afterEach(() => { @@ -19,3 +20,94 @@ describe("formatQuotaReset", () => { expect(formatQuotaReset(Number.POSITIVE_INFINITY)).toBeNull(); }); }); + +describe("collectProviderQuotaGroups", () => { + const acceptAll = () => true; + + function providerWithUsage( + provider: string, + usage: ModelAuthStatusProvider["usage"], + ): ModelAuthStatusProvider { + return { + provider, + displayName: "Claude", + status: "ok", + profiles: [{ profileId: `${provider}:default`, type: "oauth", status: "ok" }], + usage, + }; + } + + it("collapses providers sharing identical usage into one group", () => { + const usage: ModelAuthStatusProvider["usage"] = { + providerId: "anthropic", + plan: "Max (20x)", + windows: [ + { label: "5h", usedPercent: 21.6, resetAt: 1_800_000_000_000 }, + { label: "Week", usedPercent: 25 }, + ], + billing: [{ type: "budget", used: 157.85, limit: 400, unit: "USD", period: "month" }], + }; + const groups = collectProviderQuotaGroups( + { + ts: 1, + providers: [providerWithUsage("anthropic", usage), providerWithUsage("claude-cli", usage)], + }, + acceptAll, + ); + + expect(groups).toEqual([ + { + providers: ["anthropic", "claude-cli"], + displayName: "Claude", + plan: "Max (20x)", + windows: [ + { label: "5h", usedPercent: 22, resetAt: 1_800_000_000_000 }, + { label: "Week", usedPercent: 25 }, + ], + budgets: [{ used: 157.85, limit: 400, unit: "USD" }], + }, + ]); + }); + + it("drops providers without windows or budgets and invalid budget shapes", () => { + const groups = collectProviderQuotaGroups( + { + ts: 1, + providers: [ + providerWithUsage("anthropic", { providerId: "anthropic", windows: [] }), + providerWithUsage("openrouter", { + providerId: "openrouter", + windows: [], + billing: [ + { type: "balance", amount: 10, unit: "USD" }, + { type: "budget", used: 5, limit: 0, unit: "USD" }, + ], + }), + providerWithUsage("openai", { + providerId: "openai", + windows: [{ label: "Week", usedPercent: 140 }], + }), + ], + }, + acceptAll, + ); + + expect(groups).toEqual([ + { + providers: ["openai"], + displayName: "Claude", + windows: [{ label: "Week", usedPercent: 100 }], + budgets: [], + }, + ]); + }); + + it("applies the provider filter", () => { + const usage = { providerId: "anthropic", windows: [{ label: "5h", usedPercent: 10 }] }; + const groups = collectProviderQuotaGroups( + { ts: 1, providers: [providerWithUsage("anthropic", usage)] }, + () => false, + ); + expect(groups).toEqual([]); + }); +}); diff --git a/ui/src/lib/provider-quota-summary.ts b/ui/src/lib/provider-quota-summary.ts index 4335042fd76..03419ac6eb3 100644 --- a/ui/src/lib/provider-quota-summary.ts +++ b/ui/src/lib/provider-quota-summary.ts @@ -56,3 +56,113 @@ export function collectQuotaWindowsFromAuthStatus( ): QuotaWindowSummary[] { return collectQuotaWindows((status?.providers ?? []).filter(filter)); } + +/** Auth-status source props for surfaces that render provider plan usage. */ +export type ProviderUsageDisplayProps = { + basePath?: string; + modelAuthStatusResult?: ModelAuthStatusResult | null; +}; + +export type QuotaLimitSummary = { + label: string; + usedPercent: number; + resetAt?: number; +}; + +export type QuotaBudgetSummary = { + label?: string; + used: number; + limit: number; + unit: string; +}; + +export type ProviderQuotaGroup = { + /** Auth provider ids sharing this usage payload (e.g. anthropic + claude-cli). */ + providers: string[]; + displayName: string; + plan?: string; + windows: QuotaLimitSummary[]; + budgets: QuotaBudgetSummary[]; +}; + +function clampPercent(value: number): number { + return Math.max(0, Math.min(100, Math.round(value))); +} + +/** + * Groups provider usage windows and budget billing into per-provider plan + * summaries. Rows that share one usage payload (the same subscription exposed + * through several auth provider ids) collapse into a single group so the + * popover never repeats identical bars. + */ +export function collectProviderQuotaGroups( + status: ModelAuthStatusResult | null, + filter: (provider: ModelAuthStatusProvider) => boolean, +): ProviderQuotaGroup[] { + const groups: Array<{ identity: string; group: ProviderQuotaGroup }> = []; + for (const provider of (status?.providers ?? []).filter(filter)) { + const usage = provider.usage; + if (!usage) { + continue; + } + const windows: QuotaLimitSummary[] = (usage.windows ?? []).map((limit) => { + const summary: QuotaLimitSummary = { + label: (limit.label || "").trim(), + usedPercent: clampPercent(limit.usedPercent), + }; + if (limit.resetAt !== undefined) { + summary.resetAt = limit.resetAt; + } + return summary; + }); + const budgets: QuotaBudgetSummary[] = (usage.billing ?? []).flatMap((entry) => { + if ( + entry.type !== "budget" || + !Number.isFinite(entry.used) || + !Number.isFinite(entry.limit) || + entry.used < 0 || + entry.limit <= 0 + ) { + return []; + } + const budget: QuotaBudgetSummary = { + used: entry.used, + limit: entry.limit, + unit: entry.unit, + }; + if (entry.label) { + budget.label = entry.label; + } + return [budget]; + }); + if (windows.length === 0 && budgets.length === 0) { + continue; + } + // Session rows report canonical model providers while auth rows may use + // CLI aliases (claude-cli vs anthropic); expose both ids for matching. + const providerIds = [ + ...new Set([provider.provider, usage.providerId].filter((id): id is string => Boolean(id))), + ]; + const identity = JSON.stringify([provider.displayName, windows, budgets]); + const existing = groups.find((group) => group.identity === identity); + if (existing) { + for (const id of providerIds) { + if (!existing.group.providers.includes(id)) { + existing.group.providers.push(id); + } + } + continue; + } + groups.push({ + identity, + group: { + providers: providerIds, + displayName: provider.displayName, + ...(usage.plan ? { plan: usage.plan } : {}), + windows, + budgets, + }, + }); + } + return groups.map((entry) => entry.group); +} diff --git a/ui/src/pages/chat/chat-composer.test.ts b/ui/src/pages/chat/chat-composer.test.ts index a492e5f954f..a3d2a401ce4 100644 --- a/ui/src/pages/chat/chat-composer.test.ts +++ b/ui/src/pages/chat/chat-composer.test.ts @@ -1,9 +1,8 @@ /* @vitest-environment jsdom */ -import { html, nothing, render } from "lit"; +import { html, render } from "lit"; import { afterEach, describe, expect, it, vi } from "vitest"; -import type { GatewaySessionRow } from "../../api/types.ts"; -import { renderProviderQuotaPill } from "../../components/provider-quota-pill.ts"; +import type { GatewaySessionRow, ModelAuthStatusResult } from "../../api/types.ts"; import { i18n, t } from "../../i18n/index.ts"; import { getContextNoticeViewModel, @@ -436,12 +435,10 @@ describe("context notice", () => { }); it("treats unavailable provider usage as absent content", () => { - expect(renderProviderQuotaPill({ modelAuthStatusResult: null })).toBe(nothing); - const container = document.createElement("div"); render( renderContextNotice(undefined, 200_000, { - providerQuota: { modelAuthStatusResult: null }, + providerUsage: { modelAuthStatusResult: null }, }), container, ); @@ -457,19 +454,19 @@ describe("context notice", () => { }; render( renderContextNotice(session, 200_000, { - providerQuota: { modelAuthStatusResult: null }, + providerUsage: { modelAuthStatusResult: null }, }), container, ); expect(container.querySelector(".context-usage")).not.toBeNull(); - expect(container.querySelector(".context-usage__quota")).toBeNull(); + expect(container.querySelector(".context-usage__plan-header")).toBeNull(); }); it("keeps provider usage available before context token metrics arrive", () => { const container = document.createElement("div"); render( renderContextNotice(undefined, 200_000, { - providerQuota: { + providerUsage: { basePath: "/rosita", modelAuthStatusResult: { ts: Date.now(), @@ -479,7 +476,7 @@ describe("context notice", () => { displayName: "OpenAI", status: "ok", profiles: [{ profileId: "openai", type: "oauth", status: "ok" }], - usage: { windows: [{ label: "Week", usedPercent: 72 }] }, + usage: { providerId: "openai", windows: [{ label: "Week", usedPercent: 72 }] }, }, ], }, @@ -494,16 +491,109 @@ describe("context notice", () => { expect(context?.querySelector(".context-ring__detail")).toBeNull(); expect(container.querySelector(".context-usage__bar")).toBeNull(); expect(container.querySelector(".context-usage__stats")).toBeNull(); - const quota = container.querySelector( + const planHeader = container.querySelector(".context-usage__plan-header"); + expect(planHeader?.textContent?.replace(/\s+/g, " ").trim()).toBe("Plan usage"); + const usageLink = container.querySelector( ".context-usage__popover [data-chat-provider-usage='true']", ); - expect(quota?.textContent?.replace(/\s+/g, " ").trim()).toBe("Usage Remaining 28%"); - expect(quota?.getAttribute("href")).toBe("/rosita/usage"); + expect(usageLink?.getAttribute("href")).toBe("/rosita/usage"); + const limitRow = container.querySelector(".context-usage__limit"); + expect(limitRow?.textContent?.replace(/\s+/g, " ").trim()).toBe("Weekly · all models 72%"); + const limitFill = container.querySelector(".context-usage__limit-bar span"); + expect(limitFill?.style.width).toBe("72%"); render(renderContextNotice(undefined, 200_000), container); expect(container.querySelector(".context-usage")).toBeNull(); }); + it("shows plan windows and hides cost sections for subscription-billed sessions", () => { + // Single shared timestamp: both auth rows must dedupe to one group, and the + // 45s pad keeps formatQuotaReset at exactly "2h" despite wall-clock drift. + const fiveHourReset = Date.now() + 2 * 3_600_000 + 45_000; + const authStatus: ModelAuthStatusResult = { + ts: Date.now(), + providers: [ + { + provider: "anthropic", + displayName: "Claude", + status: "ok", + profiles: [{ profileId: "anthropic:oauth", type: "oauth", status: "ok" }], + usage: { + providerId: "anthropic", + plan: "Max (20x)", + windows: [ + { label: "5h", usedPercent: 22, resetAt: fiveHourReset }, + { label: "Week", usedPercent: 25 }, + { label: "Fable", usedPercent: 92 }, + ], + billing: [{ type: "budget", used: 157.85, limit: 400, unit: "USD" }], + }, + }, + { + provider: "claude-cli", + displayName: "Claude", + status: "ok", + profiles: [{ profileId: "claude-cli", type: "oauth", status: "ok" }], + usage: { + providerId: "anthropic", + plan: "Max (20x)", + windows: [ + { label: "5h", usedPercent: 22, resetAt: fiveHourReset }, + { label: "Week", usedPercent: 25 }, + { label: "Fable", usedPercent: 92 }, + ], + billing: [{ type: "budget", used: 157.85, limit: 400, unit: "USD" }], + }, + }, + ], + }; + const session: GatewaySessionRow = { + key: "main", + kind: "direct", + updatedAt: null, + inputTokens: 2, + outputTokens: 3, + totalTokens: 78_700, + contextTokens: 1_000_000, + estimatedCostUsd: 0.02, + model: "claude-fable-5", + // sessions.list canonicalizes CLI aliases (claude-cli -> anthropic); the + // popover must match plan usage through usage.providerId, not the auth + // row's provider id. + modelProvider: "anthropic", + }; + const container = document.createElement("div"); + render( + renderContextNotice(session, 1_000_000, { + // Trailing user turn: no assistant cost stats to fall back on. + messages: [{ role: "user", content: "hi" }], + providerUsage: { modelAuthStatusResult: authStatus }, + }), + container, + ); + + // Identical usage exposed via anthropic + claude-cli rows collapses to one group. + expect(container.querySelectorAll(".context-usage__plan-header")).toHaveLength(1); + expect(container.querySelector(".context-usage__plan-badge")?.textContent).toBe("Max (20x)"); + const rows = [...container.querySelectorAll(".context-usage__limit")].map((row) => + row.textContent?.replace(/\s+/g, " ").trim(), + ); + expect(rows).toEqual([ + "5-hour limit Resets 2h 22%", + "Weekly · all models 25%", + "Fable 92%", + "Usage credits $157.85 of $400.00", + ]); + const fills = [...container.querySelectorAll(".context-usage__limit-bar span")]; + expect(fills.map((fill) => fill.style.width)).toEqual(["22%", "25%", "92%", "39%"]); + expect(fills[2]?.classList.contains("context-usage__limit-fill--danger")).toBe(true); + + // Subscription-billed: token stats stay, dollar estimates disappear. + expect(container.querySelector(".context-usage__stats")).not.toBeNull(); + expect(container.querySelector(".context-usage__stats--cost")).toBeNull(); + expect(container.textContent).not.toContain("Est. cost"); + }); + it("renders persistent fresh context usage and keeps high-usage warning behavior", () => { const container = document.createElement("div"); vi.spyOn(window, "getComputedStyle").mockReturnValue({ diff --git a/ui/src/pages/chat/chat-pane.ts b/ui/src/pages/chat/chat-pane.ts index b2968b5435b..cd626015c3b 100644 --- a/ui/src/pages/chat/chat-pane.ts +++ b/ui/src/pages/chat/chat-pane.ts @@ -1012,7 +1012,7 @@ class ChatPane extends OpenClawLightDomElement { disabledReason, error: state.lastError, sessions: state.sessionsResult, - providerQuota: { + providerUsage: { basePath: state.basePath, modelAuthStatusResult: state.modelAuthStatusResult, }, diff --git a/ui/src/pages/chat/chat-responsive.browser.test.ts b/ui/src/pages/chat/chat-responsive.browser.test.ts index cb9e5eaac18..3f557f2f23d 100644 --- a/ui/src/pages/chat/chat-responsive.browser.test.ts +++ b/ui/src/pages/chat/chat-responsive.browser.test.ts @@ -371,12 +371,21 @@ function chatHtml(opts: ChatFixtureOptions = {}) {
-
diff --git a/ui/src/pages/chat/chat-view.test.ts b/ui/src/pages/chat/chat-view.test.ts index 15ef73a5582..4e6959531a6 100644 --- a/ui/src/pages/chat/chat-view.test.ts +++ b/ui/src/pages/chat/chat-view.test.ts @@ -1530,7 +1530,7 @@ describe("chat loading skeleton", () => { it("places context usage after the composer controls in the bottom row", () => { const container = renderChatView({ - providerQuota: { + providerUsage: { basePath: "/rosita", modelAuthStatusResult: { ts: Date.now(), @@ -1540,7 +1540,7 @@ describe("chat loading skeleton", () => { displayName: "OpenAI", status: "ok", profiles: [{ profileId: "openai", type: "oauth", status: "ok" }], - usage: { windows: [{ label: "Week", usedPercent: 72 }] }, + usage: { providerId: "openai", windows: [{ label: "Week", usedPercent: 72 }] }, }, ], }, @@ -1578,16 +1578,17 @@ describe("chat loading skeleton", () => { expect(context).toBeInstanceOf(HTMLElement); expect(context?.closest(".agent-chat__composer-meta")).not.toBeNull(); expect(context?.closest(".agent-chat__composer-footer")).not.toBeNull(); - expect(container.querySelector(".context-usage__stats--cost")?.textContent).toContain( - "$0.0010", - ); + // The session provider matches a plan-usage group, so dollar estimates + // yield to the subscription windows. + expect(container.querySelector(".context-usage__stats--cost")).toBeNull(); expect(container.querySelector(".context-usage__model")?.textContent).toContain("openai"); expect(container.querySelector(".agent-chat__composer-header")).toBeNull(); - const quota = container.querySelector( + const limitRow = container.querySelector(".context-usage__limit"); + expect(limitRow?.textContent?.replace(/\s+/g, " ").trim()).toBe("Weekly · all models 72%"); + const usageLink = container.querySelector( ".context-usage__popover [data-chat-provider-usage='true']", ); - expect(quota?.textContent?.replace(/\s+/g, " ").trim()).toBe("Usage Remaining 28%"); - expect(quota?.getAttribute("href")).toBe("/rosita/usage"); + expect(usageLink?.getAttribute("href")).toBe("/rosita/usage"); }); it("does not show prompt-bar progress for another session send", () => { diff --git a/ui/src/pages/chat/chat-view.ts b/ui/src/pages/chat/chat-view.ts index 3b294c1143e..f61af0c52af 100644 --- a/ui/src/pages/chat/chat-view.ts +++ b/ui/src/pages/chat/chat-view.ts @@ -6,7 +6,6 @@ import type { TaskSuggestion } from "../../../../packages/gateway-protocol/src/i import type { SessionsListResult } from "../../api/types.ts"; import type { ChatSendShortcut } from "../../app/settings.ts"; import { icons } from "../../components/icons.ts"; -import type { ProviderQuotaPillProps } from "../../components/provider-quota-pill.ts"; import "../../components/tooltip.ts"; import { t } from "../../i18n/index.ts"; import type { @@ -16,6 +15,7 @@ import type { } from "../../lib/chat/chat-types.ts"; import type { ChatSideResult } from "../../lib/chat/side-result.ts"; import type { EmbedSandboxMode } from "../../lib/chat/tool-display.ts"; +import type { ProviderUsageDisplayProps } from "../../lib/provider-quota-summary.ts"; import { handleChatAttachmentDrop, renderChatComposer, @@ -80,7 +80,7 @@ export type ChatProps = { disabledReason: string | null; error: string | null; sessions: SessionsListResult | null; - providerQuota?: ProviderQuotaPillProps; + providerUsage?: ProviderUsageDisplayProps; focusMode?: boolean; onLoadSidebarFullMessage?: ( request: SidebarFullMessageRequest, @@ -228,7 +228,7 @@ export function renderChat(props: ChatProps) { queue: props.queue, draft: props.draft, sessions: props.sessions, - providerQuota: props.providerQuota, + providerUsage: props.providerUsage, assistantName: props.assistantName, sendShortcut: props.sendShortcut, attachments: props.attachments, diff --git a/ui/src/pages/chat/components/chat-composer.ts b/ui/src/pages/chat/components/chat-composer.ts index b6e64a51caa..2f2177a19cb 100644 --- a/ui/src/pages/chat/components/chat-composer.ts +++ b/ui/src/pages/chat/components/chat-composer.ts @@ -5,14 +5,11 @@ import { ifDefined } from "lit/directives/if-defined.js"; import { ref } from "lit/directives/ref.js"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; import type { GatewaySessionRow, SessionGoal, SessionsListResult } from "../../../api/types.ts"; +import { normalizeBasePath } from "../../../app-route-paths.ts"; import { normalizeChatSendShortcut, type ChatSendShortcut } from "../../../app/settings.ts"; import { icons, type IconName } from "../../../components/icons.ts"; -import { toSanitizedMarkdownHtml } from "../../../components/markdown.ts"; import "../../../components/tooltip.ts"; -import { - renderProviderQuotaPill, - type ProviderQuotaPillProps, -} from "../../../components/provider-quota-pill.ts"; +import { toSanitizedMarkdownHtml } from "../../../components/markdown.ts"; import { t } from "../../../i18n/index.ts"; import type { ChatAttachment, ChatQueueItem } from "../../../lib/chat/chat-types.ts"; import { @@ -25,6 +22,15 @@ import { } from "../../../lib/chat/commands.ts"; import type { ChatSideResult } from "../../../lib/chat/side-result.ts"; import { formatCompactTokenCount, formatCost } from "../../../lib/format.ts"; +import { isMonitoredAuthProvider } from "../../../lib/model-auth.ts"; +import { + collectProviderQuotaGroups, + formatQuotaReset, + type ProviderQuotaGroup, + type ProviderUsageDisplayProps, + type QuotaBudgetSummary, + type QuotaLimitSummary, +} from "../../../lib/provider-quota-summary.ts"; import { formatGoalDetail, formatGoalElapsed, @@ -89,7 +95,7 @@ type ChatComposerProps = { queue: ChatQueueItem[]; draft: string; sessions: SessionsListResult | null; - providerQuota?: ProviderQuotaPillProps; + providerUsage?: ProviderUsageDisplayProps; assistantName: string; sendShortcut?: ChatSendShortcut; attachments?: ChatAttachment[]; @@ -1377,7 +1383,7 @@ type ContextNoticeOptions = { compactDisabled?: boolean; messages?: unknown[]; onCompact?: () => void | Promise; - providerQuota?: ProviderQuotaPillProps; + providerUsage?: ProviderUsageDisplayProps; }; type ProviderCostStats = { @@ -1561,14 +1567,138 @@ export function getContextNoticeViewModel( const RING_RADIUS = 6.5; const RING_CIRCUMFERENCE = 2 * Math.PI * RING_RADIUS; +// Provider window labels arrive as compact data strings ("5h", "Week"); model +// scoped labels (e.g. "Opus") pass through untranslated. +function formatUsageWindowLabel(label: string): string { + if (label === "5h") { + return t("chat.composer.contextUsage.limitFiveHour"); + } + if (label === "Week") { + return t("chat.composer.contextUsage.limitWeekly"); + } + if (label === "Day") { + return t("chat.composer.contextUsage.limitDaily"); + } + const hours = /^(\d+)h$/.exec(label); + if (hours) { + return t("chat.composer.contextUsage.limitHours", { hours: hours[1] }); + } + return label; +} + +function formatBudgetAmount(amount: number, unit: string): string { + if (/^[A-Za-z]{3}$/.test(unit)) { + try { + return new Intl.NumberFormat(undefined, { + style: "currency", + currency: unit.toUpperCase(), + maximumFractionDigits: 2, + }).format(amount); + } catch { + // Non-ISO currency codes fall through to plain unit suffix formatting. + } + } + return `${amount.toFixed(2)} ${unit}`; +} + +function renderLimitBar(usedPercent: number, ariaLabel: string) { + const severity = usedPercent >= 90 ? "danger" : usedPercent >= 75 ? "warn" : null; + return html` +
+ +
+ `; +} + +function renderQuotaLimitRow(limit: QuotaLimitSummary) { + const label = formatUsageWindowLabel(limit.label); + const reset = formatQuotaReset(limit.resetAt); + return html` +
+
+ ${label} + + ${reset + ? html`${t("chat.composer.contextUsage.resets", { time: reset })}` + : nothing} + ${limit.usedPercent}% + +
+ ${renderLimitBar(limit.usedPercent, label)} +
+ `; +} + +function renderQuotaBudgetRow(budget: QuotaBudgetSummary) { + const label = budget.label || t("chat.composer.contextUsage.usageCredits"); + const usedPercent = Math.max(0, Math.min(100, Math.round((budget.used / budget.limit) * 100))); + const value = t("chat.composer.contextUsage.budgetValue", { + used: formatBudgetAmount(budget.used, budget.unit), + limit: formatBudgetAmount(budget.limit, budget.unit), + }); + return html` +
+
+ ${label} + ${value} +
+ ${renderLimitBar(usedPercent, label)} +
+ `; +} + +function renderQuotaGroup( + group: ProviderQuotaGroup, + options: { usageHref: string; showProvider: boolean }, +) { + const heading = options.showProvider + ? `${t("chat.composer.contextUsage.planUsage")} · ${group.displayName}` + : t("chat.composer.contextUsage.planUsage"); + return html` + +
+ ${group.windows.map((limit) => renderQuotaLimitRow(limit))} + ${group.budgets.map((budget) => renderQuotaBudgetRow(budget))} +
+ `; +} + export function renderContextNotice( session: GatewaySessionRow | undefined, defaultContextTokens: number | null, options: ContextNoticeOptions = {}, ) { const model = getContextNoticeViewModel(session, defaultContextTokens); - const providerQuota = options.providerQuota ? renderProviderQuotaPill(options.providerQuota) : ""; - if (!model && (providerQuota === "" || providerQuota === nothing)) { + const quotaGroups = options.providerUsage + ? collectProviderQuotaGroups( + options.providerUsage.modelAuthStatusResult ?? null, + isMonitoredAuthProvider, + ) + : []; + if (!model && quotaGroups.length === 0) { return nothing; } const canRenderCompact = Boolean(model?.compactRecommended && options.onCompact); @@ -1585,6 +1715,25 @@ export function renderContextNotice( const providerCosts = model ? latestProviderCostStats(options.messages) : null; const provider = providerCosts?.provider ?? model?.provider; const responseModel = providerCosts?.model ?? model?.model; + const sessionProviderKeys = new Set( + [model?.provider, providerCosts?.provider] + .filter((value): value is string => Boolean(value)) + .map((value) => value.trim().toLowerCase()), + ); + const currentGroup = quotaGroups.find((group) => + group.providers.some((id) => sessionProviderKeys.has(id.trim().toLowerCase())), + ); + const planGroups = currentGroup + ? [currentGroup, ...quotaGroups.filter((group) => group !== currentGroup)] + : quotaGroups; + // Plan-billed sessions hide dollar estimates: subscription usage is bounded + // by the plan windows below, and per-token math would misread as real spend. + // Billing mode is provider-level: session rows do not record which auth + // profile served the run, so a provider with both an API key and a + // subscription resolves to subscription display (per-run credential + // attribution is #102807). + const showCosts = !currentGroup; + const usageHref = `${normalizeBasePath(options.providerUsage?.basePath ?? "")}/usage`; const formatStat = (value: number | null) => value === null ? t("usage.common.emptyValue") : formatCompactTokenCount(value); const renderCostStat = (label: string, value: number | undefined) => @@ -1649,9 +1798,6 @@ export function renderContextNotice( ` : nothing} - ${providerQuota === "" || providerQuota === nothing - ? nothing - : html`
${providerQuota}
`} ${model ? html` - ${model.cost === null + ${!showCosts || model.cost === null ? nothing : html`
@@ -1677,7 +1823,7 @@ export function renderContextNotice( ` : nothing} - ${providerCosts + ${showCosts && providerCosts ? html`
@@ -1688,6 +1834,12 @@ export function renderContextNotice(
` : nothing} + ${planGroups.map((group) => + renderQuotaGroup(group, { + usageHref, + showProvider: planGroups.length > 1, + }), + )} ${provider ? html`
@@ -1957,7 +2109,7 @@ export function renderChatComposer(props: ChatComposerProps) { compactDisabled: !canCompose || isBusy || showAbortableUi, messages: props.messages, onCompact: props.onCompact, - providerQuota: props.providerQuota, + providerUsage: props.providerUsage, }, ); const composerControls = props.composerControls ?? nothing; diff --git a/ui/src/pages/overview/view.render.test.ts b/ui/src/pages/overview/view.render.test.ts index b73e8dd4687..c19ad347ca1 100644 --- a/ui/src/pages/overview/view.render.test.ts +++ b/ui/src/pages/overview/view.render.test.ts @@ -155,6 +155,7 @@ describe("overview view rendering", () => { status: "ok", profiles: [{ profileId: "codex", type: "oauth", status: "ok" }], usage: { + providerId: "openai", windows: [ { label: "3h", usedPercent: 18 }, { label: "Week", usedPercent: 72 }, @@ -167,6 +168,7 @@ describe("overview view rendering", () => { status: "ok", profiles: [{ profileId: "anthropic", type: "token", status: "ok" }], usage: { + providerId: "anthropic", windows: [{ label: "5h", usedPercent: 60 }], }, }, diff --git a/ui/src/styles/chat/layout.css b/ui/src/styles/chat/layout.css index 8fb2125fb61..893638f6293 100644 --- a/ui/src/styles/chat/layout.css +++ b/ui/src/styles/chat/layout.css @@ -249,19 +249,107 @@ openclaw-chat-page { box-shadow: 0 0 12px color-mix(in srgb, var(--ctx-color, var(--accent)) 46%, transparent); } -.context-usage__quota { - margin-bottom: 14px; -} - -.context-usage__quota:last-child { - margin-bottom: 0; -} - .context-usage__section-label { padding-top: 14px; border-top: 1px solid color-mix(in srgb, var(--border) 72%, transparent); } +.context-usage__plan-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-top: 14px; +} + +.context-usage__plan-link { + display: inline-flex; + align-items: center; + gap: 6px; + color: var(--muted); + text-decoration: none; + transition: color 150ms ease-out; +} + +.context-usage__plan-link:hover { + color: var(--text); +} + +.context-usage__plan-link svg { + width: 12px; + height: 12px; +} + +.context-usage__plan-badge { + color: var(--text); + font-size: 11px; + font-weight: 650; + letter-spacing: 0.02em; + text-transform: none; +} + +.context-usage__limits { + display: flex; + flex-direction: column; + gap: 11px; + margin-top: 12px; +} + +.context-usage__limit-head { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 12px; +} + +.context-usage__limit-label { + overflow: hidden; + color: var(--text); + font-size: 12px; + font-weight: 550; + text-overflow: ellipsis; + white-space: nowrap; +} + +.context-usage__limit-meta { + display: inline-flex; + align-items: baseline; + gap: 8px; + color: var(--muted); + font-size: 11px; + white-space: nowrap; +} + +.context-usage__limit-meta strong { + color: var(--text); + font-size: 12px; + font-weight: 650; + font-variant-numeric: tabular-nums; +} + +.context-usage__limit-bar { + height: 4px; + margin-top: 6px; + overflow: hidden; + border-radius: var(--radius-full); + background: color-mix(in srgb, var(--muted) 20%, transparent); +} + +.context-usage__limit-bar span { + display: block; + height: 100%; + border-radius: inherit; + background: var(--accent); +} + +.context-usage__limit-bar span.context-usage__limit-fill--warn { + background: var(--warn); +} + +.context-usage__limit-bar span.context-usage__limit-fill--danger { + background: var(--danger); +} + .context-usage__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); @@ -2833,18 +2921,6 @@ openclaw-chat-page { grid-template-areas: "session model"; } -.chat-controls__session-row--has-quota { - grid-template-columns: - minmax(116px, 5fr) minmax(132px, 7fr) minmax(180px, 8fr) - minmax(104px, auto); - grid-template-areas: "agent session model quota"; -} - -.chat-controls__session-row--single-agent.chat-controls__session-row--has-quota { - grid-template-columns: minmax(132px, 7fr) minmax(180px, 8fr) minmax(104px, auto); - grid-template-areas: "session model quota"; -} - .chat-controls__session-picker { grid-area: session; position: relative; @@ -3501,47 +3577,6 @@ openclaw-chat-page { flex: 0 0 auto; } -.context-usage__quota .chat-controls__quota { - display: inline-flex; - align-items: center; - justify-content: space-between; - gap: 4px; - box-sizing: border-box; - width: 100%; - min-height: 40px; - padding: 9px 10px; - border: 1px solid color-mix(in srgb, var(--border) 68%, transparent); - border-radius: var(--radius-sm); - background: color-mix(in srgb, var(--card) 72%, transparent); - color: var(--fg); - font-size: 12px; - font-weight: 650; - line-height: 1; - text-decoration: none; - white-space: nowrap; -} - -.context-usage__quota .chat-controls__quota:hover { - background: color-mix(in srgb, var(--text) 7%, transparent); -} - -.chat-controls__quota-label { - color: var(--muted); - font-weight: 600; -} - -.chat-controls__quota-value { - font-variant-numeric: tabular-nums; -} - -.chat-controls__quota--warn .chat-controls__quota-value { - color: var(--warn); -} - -.chat-controls__quota--danger .chat-controls__quota-value { - color: var(--danger); -} - .chat-controls__thinking { display: flex; align-items: center; diff --git a/ui/src/styles/layout.mobile.css b/ui/src/styles/layout.mobile.css index b6f95b5330f..e6c1340142b 100644 --- a/ui/src/styles/layout.mobile.css +++ b/ui/src/styles/layout.mobile.css @@ -45,18 +45,6 @@ grid-template-areas: "session model"; } - .chat-controls__session-row--has-quota { - grid-template-columns: - minmax(96px, 5fr) minmax(112px, 7fr) minmax(164px, 8fr) - minmax(96px, auto); - grid-template-areas: "agent session model quota"; - } - - .chat-controls__session-row--single-agent.chat-controls__session-row--has-quota { - grid-template-columns: minmax(112px, 7fr) minmax(164px, 8fr) minmax(96px, auto); - grid-template-areas: "session model quota"; - } - .chat-controls__agent { grid-area: agent; } @@ -69,11 +57,6 @@ grid-area: model; } - .chat-controls__quota { - grid-area: quota; - min-width: 96px; - } - .chat-controls__session, .chat-controls__agent, .chat-controls__model { @@ -459,22 +442,6 @@ "model"; } - .chat-mobile-controls-wrapper .chat-controls-dropdown .chat-controls__session-row--has-quota { - grid-template-areas: - "agent session" - "model model" - "quota quota"; - } - - .chat-mobile-controls-wrapper - .chat-controls-dropdown - .chat-controls__session-row--single-agent.chat-controls__session-row--has-quota { - grid-template-areas: - "session" - "model" - "quota"; - } - .chat-mobile-controls-wrapper .chat-controls-dropdown .chat-controls__session { min-width: unset; max-width: unset; @@ -502,12 +469,6 @@ grid-area: model; } - .chat-mobile-controls-wrapper .chat-controls-dropdown .chat-controls__quota { - width: 100%; - min-width: 0; - min-height: 40px; - } - .chat-mobile-controls-wrapper .chat-controls-dropdown .chat-controls__inline-select-trigger { display: flex; width: 100%;