mirror of
https://github.com/Heretek-AI/opencode.git
synced 2026-11-07 10:56:09 -10:00
fix(session-ui): summarize collapsed tool groups like the TUI
Replace the "Used N <tool titles>" label with per-kind counts that match the TUI activity summary, e.g. "2 commands, 1 edit, 2 thoughts, 1 read, 2 tools". Thoughts are counted instead of dropped, a thought-only group reads "1 thought", and Code Mode execute counts its nested calls.
This commit is contained in:
1 parent
10b11ba946
commit
169fff0ae6
86 files changed
+106
-482
No files matched your search
@@ -38,7 +38,7 @@ test("patch file borders retain a full CSS pixel at 390px on high-density displa
|
||||
reducedMotion: true,
|
||||
viewport: { width: 390, height: 900 },
|
||||
})
|
||||
await page.getByRole("button", { name: "Used 1 Patch", exact: true }).click()
|
||||
await page.getByRole("button", { name: "1 edit", exact: true }).click()
|
||||
const patch = page.locator('[data-component="apply-patch-tool"]')
|
||||
const trigger = patch.getByRole("button", { name: /patch-border.ts/ })
|
||||
await expect(trigger).toHaveAttribute("aria-expanded", "false")
|
||||
|
||||
@@ -223,7 +223,7 @@ for (const scenario of scenarios) {
|
||||
.closest('[data-component="edit-tool"]')
|
||||
?.querySelector('[data-slot="collapsible-trigger"][data-locked]')
|
||||
|
||||
// Grouped file headers stack below the stuck Used header.
|
||||
// Grouped file headers stack below the stuck tool group header.
|
||||
const group = element
|
||||
.closest('[data-component="collapsed-tool-group"]')
|
||||
?.querySelector(':scope > [data-component="collapsible"] > [data-slot="collapsible-trigger"]')
|
||||
|
||||
@@ -931,10 +931,10 @@ for (const delivery of ["steer", "queue"] as const) {
|
||||
})
|
||||
const tools = page.locator('[data-timeline-part-ids="tool_queue_read,tool_queue_grep"]')
|
||||
await expect(tools).toBeVisible()
|
||||
await expect(tools).toHaveText(/^Used\s*2\s*Read, Grep$/)
|
||||
await expect(tools).toHaveText(/^1 read, 1 tool$/)
|
||||
await expect(tools.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 2 Read, Grep",
|
||||
"1 read, 1 tool",
|
||||
)
|
||||
await expect(thinking).toHaveCount(0)
|
||||
await expect(pending).toBeVisible()
|
||||
@@ -943,7 +943,7 @@ for (const delivery of ["steer", "queue"] as const) {
|
||||
])
|
||||
await transcript.screenshot({ path: testInfo.outputPath("pending-steer.png") })
|
||||
|
||||
await expect(tools.or(pending)).toHaveText([/^Used\s*2\s*Read, Grep$/, /U2: Also check the retry path\./])
|
||||
await expect(tools.or(pending)).toHaveText([/^1 read, 1 tool$/, /U2: Also check the retry path\./])
|
||||
await expect(transcript.locator('[data-timeline-row="AssistantPart"]').filter({ has: tools })).toHaveAttribute(
|
||||
"data-message-id",
|
||||
userID,
|
||||
@@ -990,7 +990,7 @@ for (const delivery of ["steer", "queue"] as const) {
|
||||
await expect(response).toHaveAttribute("data-message-id", inboxID)
|
||||
await expect(thinking).toHaveCount(0)
|
||||
await expect(tools.or(pending).or(response)).toHaveText([
|
||||
/^Used\s*2\s*Read, Grep$/,
|
||||
/^1 read, 1 tool$/,
|
||||
/U2: Also check the retry path\./,
|
||||
/A3: Now checking the retry path for U2\./,
|
||||
])
|
||||
|
||||
@@ -19,7 +19,7 @@ test("space activates a focused timeline button instead of scrolling", async ({
|
||||
seedHistory: true,
|
||||
})
|
||||
const scroller = page.locator(".scroll-view__viewport", { has: page.locator("[data-timeline-row]") })
|
||||
const trigger = page.getByRole("button", { name: "Used 1 Shell", exact: true })
|
||||
const trigger = page.getByRole("button", { name: "1 command", exact: true })
|
||||
await expect
|
||||
.poll(() => scroller.evaluate((element) => element.scrollHeight - element.clientHeight))
|
||||
.toBeGreaterThan(300)
|
||||
|
||||
@@ -16,7 +16,7 @@ for (const locale of ["de", "ar"] as const) {
|
||||
})
|
||||
|
||||
const group = page.locator(`[data-timeline-part-ids="${ids.join(",")}"]`)
|
||||
const label = locale === "de" ? "2 Lesen und Glob verwendet" : "استُخدمت 2 أداتان: \u2068قراءة وGlob\u2069"
|
||||
const label = locale === "de" ? "1 Lesevorgang und 1 tool" : "1 قراءة و1 tool"
|
||||
await expect(group.getByRole("button")).toHaveAccessibleName(label)
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute("aria-label", label)
|
||||
await expect(page.locator("html")).toHaveAttribute("lang", locale)
|
||||
|
||||
@@ -26,7 +26,7 @@ test("keeps failed search calls and their error cards inside the collapsed stack
|
||||
await setupTimeline(page, { messages: [userMessage(), assistantMessage(parts)] })
|
||||
|
||||
const group = page.locator('[data-component="collapsed-tool-group"]')
|
||||
const summary = group.getByRole("button", { name: "Used 2 Glob, Grep", exact: true })
|
||||
const summary = group.getByRole("button", { name: "2 tools", exact: true })
|
||||
await expect(summary).toHaveAttribute("aria-expanded", "false")
|
||||
await summary.click()
|
||||
await expect(group.locator('[data-kind="tool-error-card"]')).toHaveCount(2)
|
||||
|
||||
@@ -2,7 +2,7 @@ import { expect, test } from "@playwright/test"
|
||||
import { timelinePresets } from "@opencode/session-ui/timeline/detail"
|
||||
import { assistantMessage, partUpdated, setupTimeline, toolPart, userMessage } from "../utils/timeline"
|
||||
|
||||
test("keeps shell and question failures in their Used group", async ({ page }) => {
|
||||
test("keeps shell and question failures in their tool group", async ({ page }) => {
|
||||
const shellID = "prt_transition_error_shell"
|
||||
const questionID = "prt_transition_error_question"
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ test("keeps the parent title anchored when opening a subagent", async ({ page })
|
||||
|
||||
const start = await titleInlineStart(page.locator("[data-session-title]").getByRole("heading", { name: parentTitle }))
|
||||
|
||||
await page.getByRole("button", { name: "Used 1 Agent", exact: true }).click()
|
||||
await page.getByRole("button", { name: "1 tool", exact: true }).click()
|
||||
await page.locator(`a[href="${sessionHref(childID)}"]`).click()
|
||||
await expectSessionTitle(page, taskDescription)
|
||||
|
||||
@@ -181,7 +181,7 @@ test("shows parent lineage while the child timeline loads", async ({ page }) =>
|
||||
|
||||
await page.goto(sessionHref(parentID))
|
||||
await expectSessionTitle(page, parentTitle)
|
||||
await page.getByRole("button", { name: "Used 1 Agent", exact: true }).click()
|
||||
await page.getByRole("button", { name: "1 tool", exact: true }).click()
|
||||
await page.locator(`a[href="${sessionHref(childID)}"]`).click()
|
||||
await Promise.all([requested.promise, expect(page).toHaveURL(sessionHref(childID))])
|
||||
await Promise.all([
|
||||
@@ -206,7 +206,7 @@ test("keeps the parent visible while the child session resolves", async ({ page
|
||||
await page.goto(sessionHref(parentID))
|
||||
await expectSessionTitle(page, parentTitle)
|
||||
|
||||
await page.getByRole("button", { name: "Used 1 Agent", exact: true }).click()
|
||||
await page.getByRole("button", { name: "1 tool", exact: true }).click()
|
||||
await page.locator(`a[href="${sessionHref(childID)}"]`).click()
|
||||
await requested.promise
|
||||
await Promise.all([expect(page).toHaveURL(sessionHref(parentID)), expectSessionTitle(page, parentTitle)]).finally(
|
||||
@@ -370,7 +370,7 @@ function titleInlineStart(title: Locator) {
|
||||
async function openChildFromParent(page: Page) {
|
||||
await page.goto(sessionHref(parentID))
|
||||
await expectSessionTitle(page, parentTitle)
|
||||
await page.getByRole("button", { name: "Used 1 Agent", exact: true }).click()
|
||||
await page.getByRole("button", { name: "1 tool", exact: true }).click()
|
||||
|
||||
const card = page.locator(`a[href="${sessionHref(childID)}"]`)
|
||||
await expect(card).toBeVisible()
|
||||
|
||||
@@ -127,7 +127,7 @@ test("keeps a grouped tool summary stable as its calls complete", async ({ page
|
||||
})
|
||||
|
||||
const context = page.locator(contextSelector)
|
||||
const label = "Used 4 Read, Glob, Grep, List"
|
||||
const label = "1 read, 3 tools"
|
||||
const trigger = context.locator(':scope > [data-component="collapsible"] > [data-slot="collapsible-trigger"]')
|
||||
await expect(trigger).toHaveAccessibleName(label)
|
||||
// Open the group so each call shows whether it is still running.
|
||||
|
||||
@@ -235,10 +235,10 @@ test.describe("static projection", () => {
|
||||
|
||||
await expect(page.locator('[data-timeline-part-id="prt_expanded_shell"]')).toBeVisible()
|
||||
const group = page.locator('[data-timeline-part-ids="prt_collapsed_patch,prt_collapsed_read"]')
|
||||
await expect(group.getByRole("button", { name: "Used 2 Patch, Read", exact: true })).toBeVisible()
|
||||
await expect(group.getByRole("button", { name: "1 edit, 1 read", exact: true })).toBeVisible()
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 2 Patch, Read",
|
||||
"1 edit, 1 read",
|
||||
)
|
||||
await expect(page.locator('[data-timeline-spacing="tool"]')).toHaveCSS("padding-top", "8px")
|
||||
})
|
||||
@@ -302,7 +302,7 @@ test("combines adjacent patch calls and repeated files into one group", async ({
|
||||
await expect(page.locator(`[data-timeline-part-id="${first}"], [data-timeline-part-id="${second}"]`)).toHaveCount(0)
|
||||
})
|
||||
|
||||
test("keeps a failed patch in Used without losing the surviving file choice", async ({ page }) => {
|
||||
test("keeps a failed patch in its tool group without losing the surviving file choice", async ({ page }) => {
|
||||
const failed = "prt_grouped_patch_failed"
|
||||
const surviving = "prt_grouped_patch_surviving"
|
||||
|
||||
@@ -582,7 +582,7 @@ test.describe("Working", () => {
|
||||
await expect(working).toHaveCount(0)
|
||||
})
|
||||
|
||||
test("keeps Working instead of Used 1 Thought while reasoning is the only activity", async ({ page }) => {
|
||||
test("keeps Working instead of a thought group while reasoning is the only activity", async ({ page }) => {
|
||||
const timeline = await setupTimeline(page, {
|
||||
messages: [
|
||||
userMessage(),
|
||||
@@ -595,7 +595,7 @@ test.describe("Working", () => {
|
||||
const group = page.locator('[data-component="collapsed-tool-group"]')
|
||||
await expect(working).toBeVisible()
|
||||
await expect(group).toHaveCount(0)
|
||||
await expect(page.getByRole("button", { name: "Used 1 Thought" })).toHaveCount(0)
|
||||
await expect(page.getByRole("button", { name: "1 thought" })).toHaveCount(0)
|
||||
|
||||
await timeline.send(partUpdated(toolPart("prt_after_thought", "read", "running", { filePath: "package.json" })))
|
||||
await expect(group).toBeVisible()
|
||||
@@ -719,7 +719,7 @@ test.describe("Working", () => {
|
||||
|
||||
const trigger = page
|
||||
.locator('[data-component="collapsed-tool-group"]')
|
||||
.getByRole("button", { name: "Used 2 Shell", exact: true, includeHidden: true })
|
||||
.getByRole("button", { name: "2 commands", exact: true, includeHidden: true })
|
||||
|
||||
await expect(trigger).toHaveAttribute("aria-expanded", "false")
|
||||
await expect(working).toBeVisible()
|
||||
@@ -955,7 +955,7 @@ test.describe("background shortcut", () => {
|
||||
.locator('[data-timeline-part-ids="call_backgrounded,call_shell_backgrounded,call_blocking"]')
|
||||
.locator(':scope > [data-component="collapsible"] > [data-slot="collapsible-trigger"]')
|
||||
|
||||
await expect(used).toHaveText(/^Used\s*3\s*Agent, Shell$/)
|
||||
await expect(used).toHaveText(/^1 command, 2 tools$/)
|
||||
await expect(used).toHaveAttribute("aria-expanded", "false")
|
||||
await page.getByRole("button", { name: "3 running", exact: true }).click()
|
||||
const list = page.getByRole("menu", { name: "3 running", exact: true })
|
||||
@@ -1511,7 +1511,7 @@ test("changes timeline presets and saves custom thinking details", async ({ page
|
||||
.toEqual({ placement: "grouped", details: "collapsed" })
|
||||
await settings.getByRole("button", { name: "Back to app", exact: true }).click()
|
||||
await expect(settings).toBeHidden()
|
||||
await page.getByRole("button", { name: "Used 1 Thought", exact: true }).click()
|
||||
await page.getByRole("button", { name: "1 thought", exact: true }).click()
|
||||
await expect(part.getByRole("button")).toHaveAttribute("aria-expanded", "false")
|
||||
await part.getByRole("button").click()
|
||||
await expect(part.getByText("The selected mode controls these details.", { exact: true })).toBeVisible()
|
||||
|
||||
@@ -374,7 +374,7 @@ function MessageTimelineView(
|
||||
return message?.type === "compaction" && message.status === "running"
|
||||
}
|
||||
|
||||
// Used and read groups keep the fallback, so each new read does not swap Working out for its short call.
|
||||
// Tool groups and read groups keep the fallback, so each new read does not swap Working out for its short call.
|
||||
if (!Predicate.isTagged(row, "AssistantPart") || row.group.type === "context" || row.group.type === "read")
|
||||
return false
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { expect, story } from "../../storybook/playwright/story"
|
||||
|
||||
story("keeps grouped file choices when the Used group reopens", async ({ mount }) => {
|
||||
story("keeps grouped file choices when the tool group reopens", async ({ mount }) => {
|
||||
const root = await mount("current-session-research-agents--agent-research", { args: { scenario: "workflow" } })
|
||||
const group = root.locator('[data-component="collapsed-tool-group"]').filter({ hasText: "Patch" })
|
||||
const disclosure = group.getByRole("button", { name: /^Used \d+ .*Edit.*Write.*Patch$/ })
|
||||
const group = root.locator('[data-component="collapsed-tool-group"]').filter({ hasText: /\d+ edits/ })
|
||||
const disclosure = group.getByRole("button", { name: /\d+ edits/ })
|
||||
await disclosure.click()
|
||||
|
||||
const files = group.locator(
|
||||
|
||||
@@ -43,7 +43,7 @@ story("merges follow-up patches into one stack with distinct files", async ({ mo
|
||||
await root.getByRole("button", { name: "Start follow-up patch" }).click()
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 3 Shell, Patch",
|
||||
"1 command, 2 edits",
|
||||
)
|
||||
await expect(patches).toHaveCount(1)
|
||||
await expect(patches.locator('[data-slot="apply-patch-filename"]')).toHaveText(["a.ts", "b.ts"])
|
||||
|
||||
@@ -7,10 +7,10 @@ const runs = [
|
||||
"context.tsx",
|
||||
]
|
||||
|
||||
story("collapses each run of reads inside a Used group into one row", async ({ mount }) => {
|
||||
story("collapses each run of reads inside a tool group into one row", async ({ mount }) => {
|
||||
const root = await mount("current-read-group--used-group", { args: { width: "960" } })
|
||||
const group = root.locator('[data-component="collapsed-tool-group"]')
|
||||
await expect(group.getByRole("button", { name: "Used 65 Read, Shell", exact: true })).toBeVisible()
|
||||
await expect(group.getByRole("button", { name: "2 commands, 8 thoughts, 63 reads", exact: true })).toBeVisible()
|
||||
const reads = group.locator('[data-component="read-tool-group"]')
|
||||
await expect(reads).toHaveCount(9)
|
||||
await expect(reads.locator('[data-slot="basic-tool-tool-subtitle"]').first()).toHaveText(runs[0]!)
|
||||
@@ -60,7 +60,7 @@ story("truncates long read rows and expands them in place", async ({ mount }) =>
|
||||
await expect(row).toHaveAttribute("aria-expanded", "true")
|
||||
})
|
||||
|
||||
story("merges adjacent reads when tools render outside a Used group", async ({ mount }) => {
|
||||
story("merges adjacent reads when tools render outside a tool group", async ({ mount }) => {
|
||||
const root = await mount("current-read-group--without-used-group", { args: { width: "960" } })
|
||||
await expect(root.locator('[data-component="collapsed-tool-group"]')).toHaveCount(0)
|
||||
const reads = root.locator('[data-timeline-row="AssistantPart"] [data-component="read-tool-group"]')
|
||||
|
||||
@@ -9,7 +9,7 @@ const png = Buffer.from(
|
||||
|
||||
story.beforeEach(async ({ mount }) => {
|
||||
const root = await mount("current-tool-group--mixed-tools")
|
||||
await expect(root.getByRole("button", { name: "Used 4 Shell, Read, Agent", exact: true })).toBeVisible()
|
||||
await expect(root.getByRole("button", { name: "1 command, 1 read, 2 tools", exact: true })).toBeVisible()
|
||||
})
|
||||
|
||||
for (const grouped of [true, false]) {
|
||||
|
||||
@@ -16,14 +16,14 @@ for (const tool of ["shell", "execute", "subagent"]) {
|
||||
await timeline.getByRole("button", { name: "Start tool", exact: true }).click()
|
||||
await expect(group).toHaveAttribute("data-timeline-part-ids", "tool_context_lifecycle,tool_shell_lifecycle")
|
||||
const original = await group.elementHandle()
|
||||
const title = tool === "subagent" ? "Agent" : tool === "execute" ? "Execute" : "Shell"
|
||||
const label = tool === "shell" ? "1 command, 1 read" : "1 read, 1 tool"
|
||||
|
||||
for (const action of [undefined, "Complete input", "Run command", "Complete command"]) {
|
||||
if (action) await timeline.getByRole("button", { name: action, exact: true }).click()
|
||||
await expect(group).toHaveAttribute("data-timeline-part-ids", "tool_context_lifecycle,tool_shell_lifecycle")
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
`Used 2 Read, ${title}`,
|
||||
label,
|
||||
)
|
||||
await expect(timeline.locator('[data-timeline-row="AssistantPart"]')).toHaveCount(1)
|
||||
await expect(trigger).toHaveAttribute("aria-expanded", String(open))
|
||||
@@ -42,7 +42,7 @@ for (const expanded of [false, true]) {
|
||||
|
||||
const trigger = expanded
|
||||
? timeline.locator('[data-timeline-part-id="tool_shell_lifecycle"] [data-slot="collapsible-trigger"]')
|
||||
: timeline.getByRole("button", { name: "Used 1 Shell", exact: true })
|
||||
: timeline.getByRole("button", { name: "1 command", exact: true })
|
||||
|
||||
await expect(trigger).toHaveAttribute("aria-expanded", String(expanded))
|
||||
await trigger.click()
|
||||
@@ -89,7 +89,7 @@ story("transitions a streaming shell from writing through command execution", as
|
||||
await expect(subtitle).toHaveText("printf ready")
|
||||
await expect(tool).not.toContainText("Writing command…")
|
||||
await timeline.getByRole("button", { name: "Complete command" }).click()
|
||||
const summary = timeline.getByRole("button", { name: "Used 1 Shell", exact: true })
|
||||
const summary = timeline.getByRole("button", { name: "1 command", exact: true })
|
||||
await expect(summary).toHaveAttribute("aria-expanded", "false")
|
||||
await summary.click()
|
||||
await expect(subtitle).toHaveText("printf ready")
|
||||
@@ -115,7 +115,7 @@ story("shimmers and expands a running shell command", async ({ mount }) => {
|
||||
// Moved from packages/app/e2e/regression/session-timeline-lifecycle-state.spec.ts
|
||||
for (const open of [false, true]) {
|
||||
story(
|
||||
`keeps ${open ? "expanded" : "collapsed"} reasoning intent from Thinking through standalone shell into Used`,
|
||||
`keeps ${open ? "expanded" : "collapsed"} reasoning intent from Thinking through standalone shell into a tool group`,
|
||||
async ({ mount }) => {
|
||||
const timeline = await mount("current-session-timeline-rows--conversation", { args: { scenario: "hidden" } })
|
||||
const reasoning = timeline.locator('[data-timeline-part-id="msg_hidden_reasoning_lifecycle:reasoning:0"]')
|
||||
@@ -137,7 +137,7 @@ for (const open of [false, true]) {
|
||||
await expect(thought).not.toContainText("Inspecting stability")
|
||||
await expect(thought).toHaveAttribute("aria-expanded", String(open))
|
||||
await timeline.getByRole("button", { name: "Finish session" }).click()
|
||||
const used = group.getByRole("button", { name: "Used 1 Shell", exact: true })
|
||||
const used = group.getByRole("button", { name: "1 command, 1 thought", exact: true })
|
||||
await expect(used).toHaveAttribute("aria-expanded", "false")
|
||||
await used.click()
|
||||
await expect(used).toHaveAttribute("aria-expanded", "true")
|
||||
@@ -148,7 +148,7 @@ for (const open of [false, true]) {
|
||||
)
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 1 Shell",
|
||||
"1 command, 1 thought",
|
||||
)
|
||||
await expect(timeline.locator('[data-timeline-row="Thinking"]')).toHaveCount(0)
|
||||
await expect(used).toHaveAttribute("aria-expanded", "true")
|
||||
|
||||
@@ -58,11 +58,12 @@ for (const mode of ["hidden", "compact", "full"] as const) {
|
||||
if (following === "tool") {
|
||||
const group = timeline.locator('[data-component="collapsed-tool-group"]')
|
||||
const trigger = group.locator(':scope > [data-component="collapsible"] > [data-slot="collapsible-trigger"]')
|
||||
await expect(trigger).toHaveText(/^Used\s*1\s*Skill$/)
|
||||
const label = mode === "hidden" ? "1 tool" : "1 thought, 1 tool"
|
||||
await expect(trigger).toHaveText(label)
|
||||
await expect(trigger).toHaveAttribute("aria-expanded", "false")
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 1 Skill",
|
||||
label,
|
||||
)
|
||||
await expect(timeline.getByText("Inspecting stability", { exact: true })).toBeHidden()
|
||||
await trigger.click()
|
||||
|
||||
@@ -36,7 +36,7 @@ story("renders every tool error outcome without leaking hidden tools", async ({
|
||||
const timeline = await mount("current-session-research-agents--agent-research", { args: { scenario: "failures" } })
|
||||
const names = ["shell", "edit", "write", "patch", "webfetch", "websearch", "subagent", "skill", "mcp_probe"]
|
||||
const group = timeline.locator(`[data-timeline-part-ids="${names.map((name) => `tool_error_${name}`).join(",")}"]`)
|
||||
await expect(group.getByRole("button")).toHaveAccessibleName(/^Used 9 /)
|
||||
await expect(group.getByRole("button")).toHaveAccessibleName("1 command, 3 edits, 5 tools")
|
||||
await group.getByRole("button").click()
|
||||
await expect(timeline.locator('[data-kind="tool-error-card"]')).toHaveCount(names.length + 1)
|
||||
const dismissed = timeline.locator('[data-timeline-part-id="tool_error_question_dismissed"]')
|
||||
@@ -63,7 +63,7 @@ story("transitions shell and question through running error outcomes", async ({
|
||||
// Moved from packages/app/e2e/regression/session-timeline-tool-projection.spec.ts
|
||||
story("labels all web search provider variants", async ({ mount }) => {
|
||||
const timeline = await mount("current-session-research-agents--agent-research", { args: { scenario: "providers" } })
|
||||
await timeline.getByRole("button", { name: "Used 3 Parallel Web Search, Exa Web Search, Web Search" }).click()
|
||||
await timeline.getByRole("button", { name: "3 tools", exact: true }).click()
|
||||
const tools = timeline.locator('[data-component="context-tool-group-list"]')
|
||||
await expect(tools.getByRole("button", { name: /Parallel Web Search/ })).toBeVisible()
|
||||
await expect(tools.getByRole("button", { name: /Exa Web Search/ })).toBeVisible()
|
||||
@@ -96,10 +96,10 @@ story("labels read tools from their path input", async ({ mount }) => {
|
||||
story("labels skill tools from IDs and result metadata", async ({ mount }) => {
|
||||
const timeline = await mount("current-session-research-agents--agent-research", { args: { scenario: "skills" } })
|
||||
const group = timeline.locator('[data-timeline-part-ids="tool_skill_id,tool_skill_name"]')
|
||||
await expect(group.getByRole("button")).toHaveAccessibleName("Used 2 Skill")
|
||||
await expect(group.getByRole("button")).toHaveAccessibleName("2 tools")
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 2 Skill",
|
||||
"2 tools",
|
||||
)
|
||||
await group.getByRole("button").click()
|
||||
const loaded = group.locator('[data-component="tool-loaded-item"]')
|
||||
@@ -124,10 +124,10 @@ story("groups every collapsed tool until visible text separates the stack", asyn
|
||||
)
|
||||
|
||||
await expect(group).toBeVisible()
|
||||
await expect(group.getByRole("button")).toHaveAccessibleName("Used 4 Glob, Grep, Shell, List")
|
||||
await expect(group.getByRole("button")).toHaveAccessibleName("1 command, 3 tools")
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 4 Glob, Grep, Shell, List",
|
||||
"1 command, 3 tools",
|
||||
)
|
||||
await expect(timeline.locator('[data-timeline-row="AssistantPart"]')).toHaveCount(3)
|
||||
await expect(timeline.locator('[data-timeline-spacing="content"]')).toHaveCount(2)
|
||||
|
||||
@@ -4,8 +4,8 @@ for (const open of [true, false]) {
|
||||
story(`preserves ${open ? "expanded" : "collapsed"} tool choices when calls join the group`, async ({ mount }) => {
|
||||
const root = await mount("current-session-file-changes--appending-tool-calls")
|
||||
const group = root.locator('[data-component="collapsed-tool-group"]')
|
||||
const trigger = group.getByRole("button", { name: /^Used \d+ Shell, Patch$/ })
|
||||
await expect(trigger).toHaveAccessibleName("Used 2 Shell, Patch")
|
||||
const trigger = group.getByRole("button", { name: /^1 command, \d+ edits?$/ })
|
||||
await expect(trigger).toHaveAccessibleName("1 command, 1 edit")
|
||||
await trigger.click()
|
||||
const shell = group.locator('[data-timeline-part-id="tool_shell_existing"] [data-slot="collapsible-trigger"]')
|
||||
await group.locator('[data-timeline-part-id="tool_patch_existing"]').evaluate((element) => {
|
||||
@@ -34,9 +34,9 @@ for (const open of [true, false]) {
|
||||
await root.getByRole("button", { name: "Append tool call", exact: true }).click()
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
`Used ${count} Shell, Patch`,
|
||||
`1 command, ${count - 1} edits`,
|
||||
)
|
||||
await expect(trigger).toHaveAccessibleName(`Used ${count} Shell, Patch`)
|
||||
await expect(trigger).toHaveAccessibleName(`1 command, ${count - 1} edits`)
|
||||
await expect(diff).toBeVisible()
|
||||
await expect(shell).toHaveAttribute("aria-expanded", String(open))
|
||||
await expect(first).toHaveAttribute("aria-expanded", String(open))
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { expect, story } from "../../storybook/playwright/story"
|
||||
|
||||
story("keeps the open Used header below the session title while scrolling", async ({ mount }) => {
|
||||
story("keeps the open tool group header below the session title while scrolling", async ({ mount }) => {
|
||||
const root = await mount("current-tool-group--sticky-header", { args: { height: "720" } })
|
||||
const scroller = root.locator('[data-story="sticky-header-scroll"]')
|
||||
const header = root.getByRole("button", { name: "Used 37 Write, Shell, Grep, Edit", exact: true })
|
||||
const header = root.getByRole("button", { name: "29 commands, 2 edits, 36 thoughts, 6 tools", exact: true })
|
||||
|
||||
const top = (locator: typeof header) =>
|
||||
locator.evaluate((node) => {
|
||||
@@ -16,7 +16,7 @@ story("keeps the open Used header below the session title while scrolling", asyn
|
||||
await scroller.evaluate((node) => (node.scrollTop = 900))
|
||||
await expect.poll(() => top(header)).toBe(48)
|
||||
|
||||
// Nested file headers stack below the stuck Used header instead of covering it.
|
||||
// Nested file headers stack below the stuck tool group header instead of covering it.
|
||||
const file = root.locator('[data-component="sticky-accordion-header"]').filter({ hasText: "model.ts" })
|
||||
// Outside a timeline row the diff sizes itself only after it renders on screen (content-visibility: auto),
|
||||
// and a header can stick only while its diff extends below it.
|
||||
|
||||
@@ -2,18 +2,18 @@ import { expect, story } from "../../storybook/playwright/story"
|
||||
|
||||
for (const reasoningDefaultOpen of [false, true]) {
|
||||
story(
|
||||
`keeps ordered thoughts and tool-only counts with reasoning ${reasoningDefaultOpen ? "expanded" : "collapsed"}`,
|
||||
`keeps ordered thoughts and per-kind counts with reasoning ${reasoningDefaultOpen ? "expanded" : "collapsed"}`,
|
||||
async ({ mount }) => {
|
||||
const root = await mount("current-tool-group--mixed-reasoning", { args: { reasoningDefaultOpen } })
|
||||
const group = root.locator('[data-component="collapsed-tool-group"]')
|
||||
const used = group.getByRole("button", { name: /^Used \d+ Read, Skill$/ })
|
||||
const used = group.getByRole("button", { name: /^2 thoughts, \d+ reads?, 3 tools$/ })
|
||||
const first = group.locator('[data-timeline-part-id="reasoning_first"]')
|
||||
const second = group.locator('[data-timeline-part-id="reasoning_second"]')
|
||||
await expect(used).toHaveAttribute("aria-expanded", "true")
|
||||
await expect(used).toHaveAccessibleName("Used 4 Read, Skill")
|
||||
await expect(used).toHaveAccessibleName("2 thoughts, 1 read, 3 tools")
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 4 Read, Skill",
|
||||
"2 thoughts, 1 read, 3 tools",
|
||||
)
|
||||
await expect(group.locator('[data-slot="context-tool-group-item"]')).toHaveText([
|
||||
/Read.*group\.ts/,
|
||||
@@ -35,10 +35,10 @@ for (const reasoningDefaultOpen of [false, true]) {
|
||||
)
|
||||
await first.getByRole("button", { name: "Thought", exact: true }).click()
|
||||
await root.getByRole("button", { name: "Append follow-up read", exact: true }).click()
|
||||
await expect(used).toHaveAccessibleName("Used 5 Read, Skill")
|
||||
await expect(used).toHaveAccessibleName("2 thoughts, 2 reads, 3 tools")
|
||||
await expect(group.locator('[data-component="context-tool-group-trigger"]')).toHaveAttribute(
|
||||
"aria-label",
|
||||
"Used 5 Read, Skill",
|
||||
"2 thoughts, 2 reads, 3 tools",
|
||||
)
|
||||
await expect(group.locator('[data-slot="context-tool-group-item"]')).toHaveText([
|
||||
/Read.*group\.ts/,
|
||||
@@ -72,31 +72,15 @@ for (const reasoningDefaultOpen of [false, true]) {
|
||||
)
|
||||
}
|
||||
|
||||
story("summarizes subagents as Agent while retaining their card titles", async ({ mount }) => {
|
||||
story("summarizes mixed tools by kind while retaining subagent card titles", async ({ mount }) => {
|
||||
const root = await mount("current-tool-group--mixed-tools")
|
||||
const group = root.locator('[data-component="collapsed-tool-group"]')
|
||||
await expect(group.getByRole("button", { name: "Used 4 Shell, Read, Agent", exact: true })).toBeVisible()
|
||||
await expect(group.getByRole("button", { name: "1 command, 1 read, 2 tools", exact: true })).toBeVisible()
|
||||
const header = group.locator('[data-component="context-tool-group-trigger"]')
|
||||
const prefix = header.locator('[data-slot="context-tool-group-prefix"]')
|
||||
const count = header.locator('[data-slot="context-tool-group-count"]')
|
||||
const title = header.locator('[data-slot="basic-tool-tool-title"]')
|
||||
await expect(prefix).toHaveText("Used")
|
||||
await expect(count).toHaveText("4")
|
||||
await expect(title).toHaveText("Shell, Read, Agent")
|
||||
await expect(title).toHaveText("1 command, 1 read, 2 tools")
|
||||
await expect(title).toHaveCSS("white-space", "nowrap")
|
||||
await expect(title).toHaveCSS("text-overflow", "ellipsis")
|
||||
expect(await prefix.evaluate((node) => node.textContent)).toBe("Used")
|
||||
expect(await count.evaluate((node) => node.textContent)).toBe("4")
|
||||
expect(await prefix.locator("..").evaluate((node) => getComputedStyle(node).columnGap)).toBe("4px")
|
||||
expect(await title.locator("..").evaluate((node) => getComputedStyle(node).columnGap)).toBe("4px")
|
||||
expect(await count.evaluate((node) => getComputedStyle(node).fontVariantNumeric)).toBe("tabular-nums")
|
||||
|
||||
const colors = await Promise.all(
|
||||
[prefix, count, title].map((part) => part.evaluate((node) => getComputedStyle(node).color)),
|
||||
)
|
||||
|
||||
expect(colors[1]).toBe(colors[2])
|
||||
expect(colors[0]).not.toBe(colors[1])
|
||||
|
||||
const gap = await group.evaluate((element) => {
|
||||
const title = element.querySelector('[data-component="context-tool-group-trigger"]')!.getBoundingClientRect()
|
||||
@@ -114,9 +98,9 @@ for (const width of [840, 390]) {
|
||||
await page.setViewportSize({ width, height: 600 })
|
||||
const root = await mount("current-tool-group--mixed-tools")
|
||||
const group = root.locator('[data-component="collapsed-tool-group"]')
|
||||
const trigger = group.getByRole("button", { name: "Used 4 Shell, Read, Agent", exact: true })
|
||||
const trigger = group.getByRole("button", { name: "1 command, 1 read, 2 tools", exact: true })
|
||||
const header = group.locator('[data-component="context-tool-group-trigger"]')
|
||||
await expect(header).toHaveAttribute("aria-label", "Used 4 Shell, Read, Agent")
|
||||
await expect(header).toHaveAttribute("aria-label", "1 command, 1 read, 2 tools")
|
||||
await expect(header.locator('[data-component="tag"]')).toHaveCount(0)
|
||||
await expect(trigger).toHaveAttribute("aria-expanded", "true")
|
||||
|
||||
|
||||
@@ -625,33 +625,6 @@
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
[data-slot="context-tool-group-usage"] {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
color: var(--v2-text-text-muted);
|
||||
font-family: var(--v2-font-family-sans);
|
||||
font-size: 13px;
|
||||
font-weight: 440;
|
||||
line-height: var(--line-height-compact);
|
||||
letter-spacing: -0.04px;
|
||||
|
||||
& > [data-slot="context-tool-group-prefix"],
|
||||
& > [data-slot="context-tool-group-count"] {
|
||||
white-space: pre;
|
||||
}
|
||||
}
|
||||
|
||||
[data-slot="context-tool-group-count"] {
|
||||
color: var(--v2-text-text-base);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
[data-slot="context-tool-group-prefix"] {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
[data-slot="basic-tool-tool-title"] {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
@@ -559,55 +559,16 @@ export function CurrentContextToolGroup(props: {
|
||||
() => props.busy || tools().some((tool) => tool.state.status === "streaming" || tool.state.status === "running"),
|
||||
)
|
||||
|
||||
const names = createMemo(() =>
|
||||
i18n.list([
|
||||
...new Set(
|
||||
props.parts.flatMap((part) => {
|
||||
if (part.type !== "tool" && part.type !== "shell") return []
|
||||
|
||||
return [
|
||||
part.type !== "tool"
|
||||
? i18n.t("ui.tool.shell")
|
||||
: part.name === "skill"
|
||||
? i18n.t("ui.tool.skill")
|
||||
: part.name === "subagent"
|
||||
? i18n.t("ui.tool.agent.default")
|
||||
: getToolInfo(part.name, undefined, part.name === "websearch" ? currentToolMetadata(part) : undefined)
|
||||
.title,
|
||||
]
|
||||
}),
|
||||
),
|
||||
]),
|
||||
)
|
||||
|
||||
// Matches the TUI activity summary, e.g. "3 commands, 1 edit, 2 thoughts, 4 reads".
|
||||
const label = createMemo(() => {
|
||||
const thoughts = props.parts.filter((part) => part.type === "reasoning").length
|
||||
const kinds = props.parts.flatMap(activityKinds)
|
||||
const phrases = activityOrder.flatMap((kind) => {
|
||||
const count = kinds.filter((item) => item === kind).length
|
||||
|
||||
if (!names() && !thoughts) {
|
||||
const text = i18n.t("ui.messagePart.context.updates")
|
||||
return count > 0 ? [i18n.plural(`ui.messagePart.context.${kind}`, count)] : []
|
||||
})
|
||||
|
||||
return { text, title: "", before: text, count: "", between: "", after: "" }
|
||||
}
|
||||
|
||||
const title = names() || i18n.plural("ui.messagePart.context.thought", thoughts)
|
||||
const count = props.parts.filter((part) => part.type === "tool" || part.type === "shell").length || thoughts
|
||||
const text = i18n.plural("ui.messagePart.tools.used", count, { tools: title })
|
||||
const index = text.indexOf(title)
|
||||
const before = text.slice(0, index).trim()
|
||||
const countText = String(count)
|
||||
const countIndex = before.indexOf(countText)
|
||||
const after = text.slice(index + title.length).trim()
|
||||
|
||||
if (countIndex === -1) return { text, title, before, count: "", between: "", after }
|
||||
|
||||
return {
|
||||
text,
|
||||
title,
|
||||
before: before.slice(0, countIndex).trim(),
|
||||
count: countText,
|
||||
between: before.slice(countIndex + countText.length).trim(),
|
||||
after,
|
||||
}
|
||||
return phrases.length > 0 ? i18n.list(phrases) : i18n.t("ui.messagePart.context.updates")
|
||||
})
|
||||
|
||||
const items = createMemo(() =>
|
||||
@@ -698,25 +659,9 @@ export function CurrentContextToolGroup(props: {
|
||||
open={props.open}
|
||||
onOpenChange={change}
|
||||
trigger={
|
||||
<div data-component="context-tool-group-trigger" aria-label={label().text}>
|
||||
<div data-component="context-tool-group-trigger" aria-label={label()}>
|
||||
<span data-slot="context-tool-group-title">
|
||||
<Show when={label().before || label().count || label().between}>
|
||||
<span data-slot="context-tool-group-usage">
|
||||
<Show when={label().before}>
|
||||
{(before) => <span data-slot="context-tool-group-prefix">{before()}</span>}
|
||||
</Show>
|
||||
<Show when={label().count}>
|
||||
{(count) => <span data-slot="context-tool-group-count">{count()}</span>}
|
||||
</Show>
|
||||
<Show when={label().between}>
|
||||
{(between) => <span data-slot="context-tool-group-prefix">{between()}</span>}
|
||||
</Show>
|
||||
</span>
|
||||
</Show>
|
||||
<Show when={label().title}>{(title) => <span data-slot="basic-tool-tool-title">{title()}</span>}</Show>
|
||||
<Show when={label().after}>
|
||||
{(after) => <span data-slot="context-tool-group-prefix">{after()}</span>}
|
||||
</Show>
|
||||
<span data-slot="basic-tool-tool-title">{label()}</span>
|
||||
</span>
|
||||
</div>
|
||||
}
|
||||
@@ -929,6 +874,29 @@ export function CurrentContextToolGroup(props: {
|
||||
)
|
||||
}
|
||||
|
||||
const activityOrder = ["command", "edit", "thought", "read", "tool"] as const
|
||||
|
||||
function activityKinds(part: ContextGroupPart): (typeof activityOrder)[number][] {
|
||||
if (part.type === "reasoning") return ["thought"]
|
||||
if (part.type === "shell") return ["command"]
|
||||
if (part.type !== "tool") return []
|
||||
if (part.name === "shell" || part.name === "bash") return ["command"]
|
||||
if (["edit", "write", "patch", "apply_patch"].includes(part.name)) return ["edit"]
|
||||
if (part.name === "read") return ["read"]
|
||||
if (part.name !== "execute") return ["tool"]
|
||||
|
||||
// Code Mode counts its nested calls rather than itself.
|
||||
const calls = currentToolMetadata(part).toolCalls
|
||||
const tools = Array.isArray(calls)
|
||||
? calls.flatMap((call) =>
|
||||
call !== null && typeof call === "object" && "tool" in call && typeof call.tool === "string" ? [call.tool] : [],
|
||||
)
|
||||
: []
|
||||
if (tools.length === 0) return ["tool"]
|
||||
|
||||
return tools.map((tool) => (tool === "read" ? "read" : "tool"))
|
||||
}
|
||||
|
||||
export function CurrentReadToolGroup(props: {
|
||||
tools: SessionMessageAssistantTool[]
|
||||
open?: boolean
|
||||
|
||||
@@ -223,8 +223,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "ሙከራ {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} ማሳወቂያ",
|
||||
"ui.messagePart.context.notice.other": "{{count}} ማሳወቂያዎች",
|
||||
"ui.messagePart.context.thought.one": "ሐሳብ",
|
||||
"ui.messagePart.context.thought.other": "ሐሳቦች",
|
||||
"ui.promptInput.dropFiles.image": "ምስሎችን ወይም ፋይሎችን ለማከል ጣል",
|
||||
"ui.promptInput.dropFiles.pdf": "PDF-ዎችን ወይም ፋይሎችን ለማከል ጣል",
|
||||
"ui.promptInput.dropFiles.imagePdf": "ምስሎችን፣ PDF-ዎችን ወይም ፋይሎችን ለማከል ጣል",
|
||||
@@ -240,8 +238,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "ክፍለ ጊዜ መጨናነቅ ተቋርጧል",
|
||||
"ui.messagePart.providerCompaction": "ክፍለ ጊዜ በአቅራቢው የታመቀ",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ውስጥ · {{output}} ወጥቷል",
|
||||
"ui.messagePart.tools.used.one": "ጥቅም ላይ የዋለ {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "ጥቅም ላይ የዋለ {{count}} {{tools}}",
|
||||
"ui.tool.browser": "አሳሽ",
|
||||
"ui.common.fileCount.one": "{{count}} ፋይል",
|
||||
"ui.common.fileCount.other": "{{count}} ፋይሎች",
|
||||
|
||||
@@ -290,12 +290,6 @@ export const dict = {
|
||||
"ui.messagePart.context.notice.few": "{{count}} إشعارات",
|
||||
"ui.messagePart.context.notice.many": "{{count}} إشعارًا",
|
||||
"ui.messagePart.context.notice.other": "{{count}} إشعار",
|
||||
"ui.messagePart.context.thought.zero": "أفكار",
|
||||
"ui.messagePart.context.thought.one": "فكرة",
|
||||
"ui.messagePart.context.thought.two": "فكرتان",
|
||||
"ui.messagePart.context.thought.few": "أفكار",
|
||||
"ui.messagePart.context.thought.many": "فكرة",
|
||||
"ui.messagePart.context.thought.other": "فكرة",
|
||||
"ui.promptInput.dropFiles.image": "أفلت الصور أو الملفات لإضافتها",
|
||||
"ui.promptInput.dropFiles.pdf": "أفلت ملفات \u2068PDF\u2069 أو الملفات لإضافتها",
|
||||
"ui.promptInput.dropFiles.imagePdf": "أفلت الصور أو ملفات \u2068PDF\u2069 أو الملفات لإضافتها",
|
||||
@@ -315,13 +309,7 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "قوطع ضغط الجلسة",
|
||||
"ui.messagePart.providerCompaction": "ضغط موفر الخدمة الجلسة",
|
||||
"ui.messagePart.compaction.usage": "{{input}} إدخال · {{output}} إخراج",
|
||||
"ui.messagePart.tools.used.one": "استُخدمت {{count}} أداة: \u2068{{tools}}\u2069",
|
||||
"ui.messagePart.tools.used.other": "استُخدمت {{count}} أداة: \u2068{{tools}}\u2069",
|
||||
"ui.tool.browser": "المتصفح",
|
||||
"ui.messagePart.tools.used.zero": "لم تُستخدم أي أداة من أصل \u2068{{count}}\u2069: \u2068{{tools}}\u2069",
|
||||
"ui.messagePart.tools.used.two": "استُخدمت {{count}} أداتان: \u2068{{tools}}\u2069",
|
||||
"ui.messagePart.tools.used.few": "استُخدمت \u2068{{count}}\u2069 أدوات: \u2068{{tools}}\u2069",
|
||||
"ui.messagePart.tools.used.many": "استُخدمت {{count}} أداة: \u2068{{tools}}\u2069",
|
||||
|
||||
"ui.messagePart.context.updates": "التحديثات",
|
||||
"ui.promptInput.cancelUpload": "إلغاء الرفع",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Cəhd {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} bildiriş",
|
||||
"ui.messagePart.context.notice.other": "{{count}} bildiriş",
|
||||
"ui.messagePart.context.thought.one": "fikir",
|
||||
"ui.messagePart.context.thought.other": "fikir",
|
||||
"ui.promptInput.dropFiles.image": "Şəkillər və ya fayllar əlavə etmək üçün buraya atın",
|
||||
"ui.promptInput.dropFiles.pdf": "PDF-lər və ya fayllar əlavə etmək üçün buraya atın",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Şəkillər, PDF-lər və ya fayllar əlavə etmək üçün buraya atın",
|
||||
@@ -241,8 +239,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sessiya sıxışdırılması dayandırıldı",
|
||||
"ui.messagePart.providerCompaction": "Sessiya təminatçı tərəfindən sıxışdırıldı",
|
||||
"ui.messagePart.compaction.usage": "{{input}} daxil · {{output}} çıxış",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} istifadə edildi",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} istifadə edildi",
|
||||
"ui.tool.browser": "Brauzer",
|
||||
"ui.common.fileCount.one": "{{count}} fayl",
|
||||
"ui.common.fileCount.other": "{{count}} fayl",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Опит {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} известие",
|
||||
"ui.messagePart.context.notice.other": "{{count}} известия",
|
||||
"ui.messagePart.context.thought.one": "Мисъл",
|
||||
"ui.messagePart.context.thought.other": "Мисли",
|
||||
"ui.promptInput.dropFiles.image": "Пуснете изображения или файлове за добавяне",
|
||||
"ui.promptInput.dropFiles.pdf": "Пуснете PDF файлове или други файлове за добавяне",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Пуснете изображения, PDF файлове или други файлове за добавяне",
|
||||
@@ -241,8 +239,6 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Уплътняването на сесията е прекъснато",
|
||||
"ui.messagePart.providerCompaction": "Сесията е уплътнена от доставчика",
|
||||
"ui.messagePart.compaction.usage": "{{input}} входящи · {{output}} изходящи",
|
||||
"ui.messagePart.tools.used.one": "Използван е {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Използвани са {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Браузър",
|
||||
"ui.common.fileCount.one": "{{count}} файл",
|
||||
"ui.common.fileCount.other": "{{count}} файла",
|
||||
|
||||
@@ -244,10 +244,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "সেশন সংকোচন বাধাগ্রস্ত হয়েছে",
|
||||
"ui.messagePart.providerCompaction": "প্রদানকারী সেশনটি সংকুচিত করেছে",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ইন · {{output}} আউট",
|
||||
"ui.messagePart.context.thought.one": "চিন্তা",
|
||||
"ui.messagePart.context.thought.other": "চিন্তাভাবনা",
|
||||
"ui.messagePart.tools.used.one": "{{count}}টি {{tools}} ব্যবহার করা হয়েছে",
|
||||
"ui.messagePart.tools.used.other": "{{count}}টি {{tools}} ব্যবহার করা হয়েছে",
|
||||
"ui.tool.browser": "ব্রাউজার",
|
||||
"ui.common.fileCount.one": "{{count}}টি ফাইল",
|
||||
"ui.common.fileCount.other": "{{count}}টি ফাইল",
|
||||
|
||||
@@ -9,13 +9,7 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Compactação da sessão interrompida",
|
||||
"ui.messagePart.providerCompaction": "Sessão compactada pelo provedor",
|
||||
"ui.messagePart.compaction.usage": "Entrada {{input}} · Saída {{output}}",
|
||||
"ui.messagePart.tools.used.one": "Usou {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Usou {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Navegador",
|
||||
"ui.messagePart.context.thought.one": "Pensamento",
|
||||
"ui.messagePart.context.thought.other": "Pensamentos",
|
||||
"ui.messagePart.context.thought.many": "Pensamentos",
|
||||
"ui.messagePart.tools.used.many": "Usou {{count}} {{tools}}",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "A tentativa {{attempt}} será repetida em {{count}} segundo",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "A tentativa {{attempt}} será repetida em {{count}} segundos",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "A tentativa {{attempt}} será repetida em {{count}} segundos",
|
||||
|
||||
@@ -257,15 +257,12 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Pokušaj {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} obavijest",
|
||||
"ui.messagePart.context.notice.other": "{{count}} obavijesti",
|
||||
"ui.messagePart.context.thought.one": "Misao",
|
||||
"ui.messagePart.context.thought.other": "Misli",
|
||||
"ui.promptInput.dropFiles.image": "Ispustite slike ili datoteke da ih dodate",
|
||||
"ui.promptInput.dropFiles.pdf": "Ispustite PDF-ove ili datoteke za dodavanje",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Ispustite slike, PDF-ove ili datoteke za dodavanje",
|
||||
"ui.promptInput.exitShell": "Izlaz",
|
||||
"ui.sessionTimeline.notice.agentChanged": "Agent je promijenjen",
|
||||
"ui.messagePart.context.notice.few": "{{count}} obavijesti",
|
||||
"ui.messagePart.context.thought.few": "Misli",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Pokušaj {{attempt}} – ponovni pokušaj",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Pokušaj {{attempt}} – ponovni pokušaj za {{count}} sekundu",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Pokušaj {{attempt}} – ponovni pokušaj za {{count}} sekunde",
|
||||
@@ -277,9 +274,6 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Sažimanje sesije je prekinuto",
|
||||
"ui.messagePart.providerCompaction": "Provajder je sažeo sesiju",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ulaz · {{output}} izlaz",
|
||||
"ui.messagePart.tools.used.one": "Korišten {{count}} alat: {{tools}}",
|
||||
"ui.messagePart.tools.used.few": "Korištena {{count}} alata: {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Korišteno {{count}} alata: {{tools}}",
|
||||
"ui.tool.browser": "Preglednik",
|
||||
"ui.common.fileCount.one": "{{count}} datoteka",
|
||||
"ui.common.fileCount.few": "{{count}} datoteke",
|
||||
|
||||
@@ -233,15 +233,12 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Intent {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Avís",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Avisos",
|
||||
"ui.messagePart.context.thought.one": "Pensament",
|
||||
"ui.messagePart.context.thought.other": "Pensaments",
|
||||
"ui.promptInput.dropFiles.image": "Deixa anar imatges o fitxers per afegir",
|
||||
"ui.promptInput.dropFiles.pdf": "Deixa anar PDF o fitxers per afegir",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Deixa anar imatges, PDF o fitxers per afegir",
|
||||
"ui.promptInput.exitShell": "Sortida",
|
||||
"ui.sessionTimeline.notice.agentChanged": "L'agent ha canviat",
|
||||
"ui.messagePart.context.notice.many": "{{count}} avisos",
|
||||
"ui.messagePart.context.thought.many": "pensaments",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Intent {{attempt}}: torna a intentar-ho",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Intent {{attempt}}: es tornarà a provar d’aquí a {{count}} s",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "Intent {{attempt}}: es tornarà a provar d’aquí a {{count}} s",
|
||||
@@ -253,10 +250,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Compactació de la sessió interrompuda",
|
||||
"ui.messagePart.providerCompaction": "Sessió compactada pel proveïdor",
|
||||
"ui.messagePart.compaction.usage": "{{input}} entra · {{output}} fora",
|
||||
"ui.messagePart.tools.used.one": "Usat {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Usat {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Navegador",
|
||||
"ui.messagePart.tools.used.many": "Usat {{count}} {{tools}}",
|
||||
"ui.common.fileCount.one": "Fitxer {{count}}",
|
||||
"ui.common.fileCount.other": "Fitxers {{count}}",
|
||||
"ui.common.fileCount.many": "Fitxers {{count}}",
|
||||
|
||||
@@ -242,8 +242,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Pokus {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} oznámení",
|
||||
"ui.messagePart.context.notice.other": "{{count}} oznámení",
|
||||
"ui.messagePart.context.thought.one": "Myšlenka",
|
||||
"ui.messagePart.context.thought.other": "Myšlenky",
|
||||
"ui.promptInput.dropFiles.image": "Přetáhněte obrázky nebo soubory, které chcete přidat",
|
||||
"ui.promptInput.dropFiles.pdf": "Přetáhněte soubory PDF nebo jiné soubory, které chcete přidat",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Přetáhněte obrázky, soubory PDF nebo jiné soubory, které chcete přidat",
|
||||
@@ -251,8 +249,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTimeline.notice.agentChanged": "Agent změněn",
|
||||
"ui.messagePart.context.notice.few": "{{count}} oznámení",
|
||||
"ui.messagePart.context.notice.many": "{{count}} oznámení",
|
||||
"ui.messagePart.context.thought.few": "Myšlenky",
|
||||
"ui.messagePart.context.thought.many": "Myšlenky",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Pokus {{attempt}} – opakování",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Pokus {{attempt}} – další pokus za {{count}} sekundu",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Pokus {{attempt}} – další pokus za {{count}} sekundy",
|
||||
@@ -265,10 +261,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Komprimace relace byla přerušena",
|
||||
"ui.messagePart.providerCompaction": "Relace byla komprimována poskytovatelem",
|
||||
"ui.messagePart.compaction.usage": "{{input}} vstup · {{output}} výstup",
|
||||
"ui.messagePart.tools.used.one": "Použit {{count}} nástroj: {{tools}}",
|
||||
"ui.messagePart.tools.used.few": "Použity {{count}} nástroje: {{tools}}",
|
||||
"ui.messagePart.tools.used.many": "Použito {{count}} nástroje: {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Použito {{count}} nástrojů: {{tools}}",
|
||||
"ui.tool.browser": "Prohlížeč",
|
||||
"ui.common.fileCount.one": "{{count}} soubor",
|
||||
"ui.common.fileCount.few": "{{count}} soubory",
|
||||
|
||||
@@ -8,11 +8,7 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Sessionskomprimering afbrudt",
|
||||
"ui.messagePart.providerCompaction": "Session komprimeret af udbyder",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ind · {{output}} ud",
|
||||
"ui.messagePart.tools.used.one": "Brugte {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Brugte {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Browser",
|
||||
"ui.messagePart.context.thought.one": "Tanke",
|
||||
"ui.messagePart.context.thought.other": "Tanker",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Forsøg {{attempt}} gentages om {{count}} sekund",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "Forsøg {{attempt}} gentages om {{count}} sekunder",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Forsøg {{attempt}} – prøver igen",
|
||||
|
||||
@@ -12,11 +12,7 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Sitzungskomprimierung unterbrochen",
|
||||
"ui.messagePart.providerCompaction": "Vom Anbieter komprimierte Sitzung",
|
||||
"ui.messagePart.compaction.usage": "{{input}} rein · {{output}} raus",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} verwendet",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} verwendet",
|
||||
"ui.tool.browser": "Browser",
|
||||
"ui.messagePart.context.thought.one": "Gedanke",
|
||||
"ui.messagePart.context.thought.other": "Gedanken",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Versuch {{attempt}} wird in {{count}} Sekunde wiederholt",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "Versuch {{attempt}} wird in {{count}} Sekunden wiederholt",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Versuch {{attempt}} – erneuter Versuch",
|
||||
|
||||
@@ -246,10 +246,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "ސެޝަން ކޮމްޕެކްޝަނަށް ހުއްޓުން އައިސްފި",
|
||||
"ui.messagePart.providerCompaction": "ޕްރޮވައިޑަރ ސެޝަން ކޮމްޕެކްޓްކޮށްފި",
|
||||
"ui.messagePart.compaction.usage": "\u2068{{input}}\u2069 އިން · \u2068{{output}}\u2069 އައުޓް",
|
||||
"ui.messagePart.context.thought.one": "ވިސްނުން",
|
||||
"ui.messagePart.context.thought.other": "ވިސްނުންތައް",
|
||||
"ui.messagePart.tools.used.one": "\u2068{{count}}\u2069 \u2068{{tools}}\u2069 ބޭނުންކުރި",
|
||||
"ui.messagePart.tools.used.other": "\u2068{{count}}\u2069 \u2068{{tools}}\u2069 ބޭނުންކުރި",
|
||||
"ui.tool.browser": "ބްރައުޒާ",
|
||||
"ui.common.fileCount.one": "\u2068{{count}}\u2069 ފައިލް",
|
||||
"ui.common.fileCount.other": "\u2068{{count}}\u2069 ފައިލްތައް",
|
||||
|
||||
@@ -227,8 +227,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "འབད་རྩོལ་ {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} གསལ་བསྒྲགས།",
|
||||
"ui.messagePart.context.notice.other": "{{count}} གསལ་བསྒྲགས།",
|
||||
"ui.messagePart.context.thought.one": "བསམ་བློ།",
|
||||
"ui.messagePart.context.thought.other": "བསམ་བློ།",
|
||||
"ui.promptInput.dropFiles.image": "ཁ་སྐོང་རྐྱབ་ནིའི་དོན་ལུ་ གཟུགས་བརྙན་ཚུ་ཡང་ན་ཡིག་སྣོད་ཚུ་བཀོག་བཞག།",
|
||||
"ui.promptInput.dropFiles.pdf": "ཁ་སྐོང་བརྐྱབ་ནིའི་དོན་ལུ་ པི་ཌི་ཨེཕ་ཚུ་ཡང་ན་ཡིག་སྣོད་ཚུ་བཀོག་བཞག།",
|
||||
"ui.promptInput.dropFiles.imagePdf":
|
||||
@@ -245,8 +243,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "ལཱ་ཡུན་བསྡམ་བཞག་འདི་བར་ཆད་བྱུང་ཡོདཔ།",
|
||||
"ui.messagePart.providerCompaction": "ལཱ་ཡུན་བྱིན་མི་གིས་བསྡུ་སྒྲིག་འབད་ཡོདཔ།",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ནང་འཛུལ་ · {{output}} ཕྱིར་ཐོན།",
|
||||
"ui.messagePart.tools.used.one": "ལག་ལེན་འཐབ་ཡོད་པའི་ {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "ལག་ལེན་འཐབ་ཡོད་པའི་ {{count}} {{tools}}",
|
||||
"ui.tool.browser": "བརའུ་ཟར་",
|
||||
"ui.common.fileCount.one": "{{count}} ཡིག་སྣོད་",
|
||||
"ui.common.fileCount.other": "{{count}} ཡིག་སྣོད་ཚུ།",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Προσπάθεια {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "Ειδοποίηση {{count}}",
|
||||
"ui.messagePart.context.notice.other": "Ειδοποιήσεις {{count}}",
|
||||
"ui.messagePart.context.thought.one": "Σκέψη",
|
||||
"ui.messagePart.context.thought.other": "Σκέψεις",
|
||||
"ui.promptInput.dropFiles.image": "Αποθέστε εικόνες ή αρχεία για προσθήκη",
|
||||
"ui.promptInput.dropFiles.pdf": "Αποθέστε αρχεία PDF ή αρχεία για προσθήκη",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Αποθέστε εικόνες, PDF ή αρχεία για προσθήκη",
|
||||
@@ -241,8 +239,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Η συμπίεση συνεδρίας διακόπηκε",
|
||||
"ui.messagePart.providerCompaction": "Η συνεδρία συμπυκνώθηκε από τον πάροχο",
|
||||
"ui.messagePart.compaction.usage": "{{input}} σε · {{output}} έξω",
|
||||
"ui.messagePart.tools.used.one": "Μεταχειρισμένα {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Μεταχειρισμένα {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Πρόγραμμα περιήγησης",
|
||||
"ui.common.fileCount.one": "Αρχείο {{count}}",
|
||||
"ui.common.fileCount.other": "Αρχεία {{count}}",
|
||||
|
||||
@@ -116,6 +116,10 @@ const source = {
|
||||
"ui.messagePart.providerCompaction": "Session compacted by provider",
|
||||
"ui.messagePart.compaction.usage": "{{input}} in · {{output}} out",
|
||||
"ui.messagePart.context.updates": "Updates",
|
||||
"ui.messagePart.context.command.one": "{{count}} command",
|
||||
"ui.messagePart.context.command.other": "{{count}} commands",
|
||||
"ui.messagePart.context.edit.one": "{{count}} edit",
|
||||
"ui.messagePart.context.edit.other": "{{count}} edits",
|
||||
"ui.messagePart.context.read.one": "{{count}} read",
|
||||
"ui.messagePart.context.read.other": "{{count}} reads",
|
||||
"ui.messagePart.context.search.one": "{{count}} search",
|
||||
@@ -124,12 +128,12 @@ const source = {
|
||||
"ui.messagePart.context.list.other": "{{count}} lists",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Notice",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Notices",
|
||||
"ui.messagePart.context.thought.one": "Thought",
|
||||
"ui.messagePart.context.thought.other": "Thoughts",
|
||||
"ui.messagePart.context.thought.one": "{{count}} thought",
|
||||
"ui.messagePart.context.thought.other": "{{count}} thoughts",
|
||||
"ui.messagePart.context.tool.one": "{{count}} tool",
|
||||
"ui.messagePart.context.tool.other": "{{count}} tools",
|
||||
"ui.messagePart.context.match.one": "({{count}} match)",
|
||||
"ui.messagePart.context.match.other": "({{count}} matches)",
|
||||
"ui.messagePart.tools.used.one": "Used {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Used {{count}} {{tools}}",
|
||||
|
||||
"ui.list.loading": "Loading",
|
||||
"ui.list.empty": "No results",
|
||||
|
||||
@@ -9,13 +9,7 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Compactación de sesión interrumpida",
|
||||
"ui.messagePart.providerCompaction": "Sesión compactada por proveedor",
|
||||
"ui.messagePart.compaction.usage": "{{input}} entra · {{output}} sale",
|
||||
"ui.messagePart.tools.used.one": "Se usó {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Se usaron {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Navegador",
|
||||
"ui.messagePart.context.thought.one": "Pensamiento",
|
||||
"ui.messagePart.context.thought.other": "Pensamientos",
|
||||
"ui.messagePart.context.thought.many": "Pensamientos",
|
||||
"ui.messagePart.tools.used.many": "Se usaron {{count}} {{tools}}",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "El intento {{attempt}} se repetirá dentro de {{count}} segundo",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "El intento {{attempt}} se repetirá dentro de {{count}} segundos",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "El intento {{attempt}} se repetirá dentro de {{count}} segundos",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Katse {{attempt}} – {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Märkus",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Märkused",
|
||||
"ui.messagePart.context.thought.one": "Mõte",
|
||||
"ui.messagePart.context.thought.other": "Mõtted",
|
||||
"ui.promptInput.dropFiles.image": "Pukseerige lisamiseks pildid või failid",
|
||||
"ui.promptInput.dropFiles.pdf": "Pukseerige lisamiseks PDF-id või failid",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Pukseerige lisamiseks pilte, PDF-e või faile",
|
||||
@@ -241,8 +239,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Seansi tihendamine katkestati",
|
||||
"ui.messagePart.providerCompaction": "Pakkuja tihendas seansi",
|
||||
"ui.messagePart.compaction.usage": "{{input}} sisse · {{output}} välja",
|
||||
"ui.messagePart.tools.used.one": "Kasutatud {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Kasutatud {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Brauser",
|
||||
"ui.common.fileCount.one": "{{count}} fail",
|
||||
"ui.common.fileCount.other": "{{count}} failid",
|
||||
|
||||
@@ -227,8 +227,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "تلاش {{attempt}} - \u2068{{line}}\u2069",
|
||||
"ui.messagePart.context.notice.one": "{{count}} اعلان",
|
||||
"ui.messagePart.context.notice.other": "{{count}} اعلان",
|
||||
"ui.messagePart.context.thought.one": "فکر",
|
||||
"ui.messagePart.context.thought.other": "فکرها",
|
||||
"ui.promptInput.dropFiles.image": "تصاویر یا فایلها را برای افزودن رها کنید",
|
||||
"ui.promptInput.dropFiles.pdf": "فایلهای \u2068PDF\u2069 یا فایلها را برای افزودن رها کنید",
|
||||
"ui.promptInput.dropFiles.imagePdf": "تصاویر، فایلهای \u2068PDF\u2069 یا فایلها را برای افزودن رها کنید",
|
||||
@@ -244,8 +242,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "فشردهسازی نشست قطع شد",
|
||||
"ui.messagePart.providerCompaction": "نشست توسط ارائهدهنده فشرده شد",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ورودی · {{output}} خروجی",
|
||||
"ui.messagePart.tools.used.one": "از {{count}} ابزار استفاده شد: \u2068{{tools}}\u2069",
|
||||
"ui.messagePart.tools.used.other": "از {{count}} ابزار استفاده شد: \u2068{{tools}}\u2069",
|
||||
"ui.tool.browser": "مرورگر",
|
||||
|
||||
"ui.messagePart.context.updates": "بهروزرسانیها",
|
||||
|
||||
@@ -8,11 +8,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Istunnon tiivistys keskeytetty",
|
||||
"ui.messagePart.providerCompaction": "Palveluntarjoajan tiivistämä istunto",
|
||||
"ui.messagePart.compaction.usage": "{{input}} sisään · {{output}} ulos",
|
||||
"ui.messagePart.tools.used.one": "Käytettiin {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Käytettiin {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Selain",
|
||||
"ui.messagePart.context.thought.one": "Ajatus",
|
||||
"ui.messagePart.context.thought.other": "Ajatuksia",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Yritys {{attempt}} toistetaan {{count}} sekunnin kuluttua",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "Yritys {{attempt}} toistetaan {{count}} sekunnin kuluttua",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Yritys {{attempt}} – yritetään uudelleen",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Roynd {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Fráboðan",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Fráboðanir",
|
||||
"ui.messagePart.context.thought.one": "Hugsan",
|
||||
"ui.messagePart.context.thought.other": "Tankar",
|
||||
"ui.promptInput.dropFiles.image": "Slepp myndum ella fílum at leggja til",
|
||||
"ui.promptInput.dropFiles.pdf": "Slepp PDF-fílum ella fílum at leggja til",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Slepp myndum, PDF-fílum ella fílum at leggja til",
|
||||
@@ -241,8 +239,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Session komprimering avbrotin",
|
||||
"ui.messagePart.providerCompaction": "Session komprimerað av veitara",
|
||||
"ui.messagePart.compaction.usage": "{{input}} í · {{output}} út",
|
||||
"ui.messagePart.tools.used.one": "Brúkt {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Brúkt {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Kaga",
|
||||
"ui.common.fileCount.one": "{{count}} fíla",
|
||||
"ui.common.fileCount.other": "{{count}} fílur",
|
||||
|
||||
@@ -9,13 +9,7 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Compactage de session interrompu",
|
||||
"ui.messagePart.providerCompaction": "Session compactée par le fournisseur",
|
||||
"ui.messagePart.compaction.usage": "Entrée {{input}} · Sortie {{output}}",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} utilisé",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} utilisés",
|
||||
"ui.tool.browser": "Navigateur",
|
||||
"ui.messagePart.context.thought.one": "Pensée",
|
||||
"ui.messagePart.context.thought.other": "Pensées",
|
||||
"ui.messagePart.context.thought.many": "Pensées",
|
||||
"ui.messagePart.tools.used.many": "{{count}} {{tools}} utilisés",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "La tentative {{attempt}} sera relancée dans {{count}} seconde",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "La tentative {{attempt}} sera relancée dans {{count}} secondes",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "La tentative {{attempt}} sera relancée dans {{count}} secondes",
|
||||
|
||||
@@ -237,9 +237,6 @@ export const dict = {
|
||||
"ui.messagePart.context.notice.one": "{{count}} הודעה",
|
||||
"ui.messagePart.context.notice.two": "{{count}} הודעות",
|
||||
"ui.messagePart.context.notice.other": "{{count}} הודעות",
|
||||
"ui.messagePart.context.thought.one": "מחשבה",
|
||||
"ui.messagePart.context.thought.two": "מחשבות",
|
||||
"ui.messagePart.context.thought.other": "מחשבות",
|
||||
"ui.promptInput.dropFiles.image": "שחרר תמונות או קבצים להוספה",
|
||||
"ui.promptInput.dropFiles.pdf": "שחרר קובצי \u2068PDF\u2069 או קבצים להוספה",
|
||||
"ui.promptInput.dropFiles.imagePdf": "שחרר תמונות, קובצי \u2068PDF\u2069 או קבצים להוספה",
|
||||
@@ -256,10 +253,7 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "דחיסת ההפעלה נקטעה",
|
||||
"ui.messagePart.providerCompaction": "ההפעלה נדחסה על ידי הספק",
|
||||
"ui.messagePart.compaction.usage": "{{input}} קלט · {{output}} פלט",
|
||||
"ui.messagePart.tools.used.one": "נעשה שימוש ב-{{count}} כלי: \u2068{{tools}}\u2069",
|
||||
"ui.messagePart.tools.used.other": "נעשה שימוש ב-{{count}} כלים: \u2068{{tools}}\u2069",
|
||||
"ui.tool.browser": "דפדפן",
|
||||
"ui.messagePart.tools.used.two": "נעשה שימוש ב-{{count}} כלים: \u2068{{tools}}\u2069",
|
||||
|
||||
"ui.messagePart.context.updates": "עדכונים",
|
||||
"ui.promptInput.cancelUpload": "ביטול ההעלאה",
|
||||
|
||||
@@ -244,10 +244,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "सत्र संक्षिप्तीकरण बाधित हुआ",
|
||||
"ui.messagePart.providerCompaction": "प्रदाता ने सत्र संक्षिप्त किया",
|
||||
"ui.messagePart.compaction.usage": "{{input}} इन · {{output}} आउट",
|
||||
"ui.messagePart.context.thought.one": "विचार",
|
||||
"ui.messagePart.context.thought.other": "विचार",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} इस्तेमाल किया",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} इस्तेमाल किए",
|
||||
"ui.tool.browser": "ब्राउज़र",
|
||||
"ui.common.fileCount.one": "{{count}} फ़ाइल",
|
||||
"ui.common.fileCount.other": "{{count}} फ़ाइलें",
|
||||
|
||||
@@ -234,15 +234,12 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Pokušaj {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} obavijest",
|
||||
"ui.messagePart.context.notice.other": "{{count}} obavijesti",
|
||||
"ui.messagePart.context.thought.one": "Misao",
|
||||
"ui.messagePart.context.thought.other": "Misli",
|
||||
"ui.promptInput.dropFiles.image": "Ispustite slike ili datoteke za dodavanje",
|
||||
"ui.promptInput.dropFiles.pdf": "Ispustite PDF-ove ili datoteke za dodavanje",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Ispustite slike, PDF-ove ili datoteke za dodavanje",
|
||||
"ui.promptInput.exitShell": "Izlaz",
|
||||
"ui.sessionTimeline.notice.agentChanged": "Promijenjen agent",
|
||||
"ui.messagePart.context.notice.few": "{{count}} obavijesti",
|
||||
"ui.messagePart.context.thought.few": "Misli",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Pokušaj {{attempt}} – ponovni pokušaj",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Pokušaj {{attempt}} – ponovni pokušaj za {{count}} sekundu",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Pokušaj {{attempt}} – ponovni pokušaj za {{count}} sekunde",
|
||||
@@ -254,9 +251,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sažimanje sesije je prekinuto",
|
||||
"ui.messagePart.providerCompaction": "Pružatelj je sažeo sesiju",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ulaz · {{output}} izlaz",
|
||||
"ui.messagePart.tools.used.one": "Korišten je {{count}} alat: {{tools}}",
|
||||
"ui.messagePart.tools.used.few": "Korištena su {{count}} alata: {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Korišteno je {{count}} alata: {{tools}}",
|
||||
"ui.tool.browser": "Preglednik",
|
||||
"ui.common.fileCount.one": "{{count}} datoteka",
|
||||
"ui.common.fileCount.few": "{{count}} datoteke",
|
||||
|
||||
@@ -226,8 +226,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "{{attempt}} – {{line}} kísérlet",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Megjegyzés",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Megjegyzések",
|
||||
"ui.messagePart.context.thought.one": "Gondolat",
|
||||
"ui.messagePart.context.thought.other": "Gondolatok",
|
||||
"ui.promptInput.dropFiles.image": "Húzza le a hozzáadandó képeket vagy fájlokat",
|
||||
"ui.promptInput.dropFiles.pdf": "Dobja el a hozzáadandó PDF-eket vagy fájlokat",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Húzza le a hozzáadandó képeket, PDF-eket vagy fájlokat",
|
||||
@@ -243,8 +241,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "A munkamenet tömörítése megszakadt",
|
||||
"ui.messagePart.providerCompaction": "A munkamenetet tömörítette a szolgáltató",
|
||||
"ui.messagePart.compaction.usage": "{{input}} be · {{output}} ki",
|
||||
"ui.messagePart.tools.used.one": "Használt {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Használt {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Böngésző",
|
||||
"ui.common.fileCount.one": "{{count}} fájl",
|
||||
"ui.common.fileCount.other": "{{count}} fájlokat",
|
||||
|
||||
@@ -225,8 +225,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Փորձ {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} ծանուցում",
|
||||
"ui.messagePart.context.notice.other": "{{count}} ծանուցումներ",
|
||||
"ui.messagePart.context.thought.one": "միտք",
|
||||
"ui.messagePart.context.thought.other": "մտքեր",
|
||||
"ui.promptInput.dropFiles.image": "Գցեք պատկերներ կամ ֆայլեր՝ ավելացնելու համար",
|
||||
"ui.promptInput.dropFiles.pdf": "Գցեք PDF-ներ կամ ֆայլեր՝ ավելացնելու համար",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Գցեք պատկերներ, PDF-ներ կամ ֆայլեր՝ ավելացնելու համար",
|
||||
@@ -242,8 +240,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Սեսիայի կոմպակտացումը ընդհատվել է",
|
||||
"ui.messagePart.providerCompaction": "Սեսիան կոմպակտացվել է մատակարարի կողմից",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ներսում · {{output}} ելք",
|
||||
"ui.messagePart.tools.used.one": "Կիրառում է {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Կիրառում է {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Բրաուզեր",
|
||||
"ui.common.fileCount.one": "{{count}} ֆայլ",
|
||||
"ui.common.fileCount.other": "{{count}} ֆայլ",
|
||||
|
||||
@@ -248,8 +248,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Percobaan {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Pemberitahuan",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Pemberitahuan",
|
||||
"ui.messagePart.context.thought.one": "Pemikiran",
|
||||
"ui.messagePart.context.thought.other": "Pemikiran",
|
||||
"ui.promptInput.dropFiles.image": "Jatuhkan gambar atau file untuk ditambahkan",
|
||||
"ui.promptInput.dropFiles.pdf": "Jatuhkan PDF atau file untuk ditambahkan",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Jatuhkan gambar, PDF, atau file untuk ditambahkan",
|
||||
@@ -267,8 +265,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.providerCompaction": "Sesi dikompak oleh penyedia",
|
||||
"ui.messagePart.compaction.usage": "{{input}} masuk · {{output}} keluar",
|
||||
"ui.messagePart.context.updates": "Pembaruan",
|
||||
"ui.messagePart.tools.used.one": "Menggunakan {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Menggunakan {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Peramban",
|
||||
"ui.common.fileCount.one": "{{count}} berkas",
|
||||
"ui.common.fileCount.other": "{{count}} berkas",
|
||||
|
||||
@@ -225,8 +225,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Tilraun {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Tilkynning",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Tilkynningar",
|
||||
"ui.messagePart.context.thought.one": "hugsun",
|
||||
"ui.messagePart.context.thought.other": "Hugleiðingar",
|
||||
"ui.promptInput.dropFiles.image": "Slepptu myndum eða skrám til að bæta við",
|
||||
"ui.promptInput.dropFiles.pdf": "Slepptu PDF skjölum eða skrám til að bæta við",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Slepptu myndum, PDF-skjölum eða skrám til að bæta við",
|
||||
@@ -242,8 +240,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Session þjöppun rofin",
|
||||
"ui.messagePart.providerCompaction": "Session þjappað af veitanda",
|
||||
"ui.messagePart.compaction.usage": "{{input}} inn · {{output}} út",
|
||||
"ui.messagePart.tools.used.one": "Notað {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Notað {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Vafri",
|
||||
"ui.common.fileCount.one": "{{count}} skrá",
|
||||
"ui.common.fileCount.other": "{{count}} skrár",
|
||||
|
||||
@@ -9,13 +9,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Compattazione della sessione interrotta",
|
||||
"ui.messagePart.providerCompaction": "Sessione compattata dal provider",
|
||||
"ui.messagePart.compaction.usage": "{{input}} dentro · {{output}} fuori",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} utilizzato",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} utilizzati",
|
||||
"ui.tool.browser": "Navigatore",
|
||||
"ui.messagePart.context.thought.one": "Pensiero",
|
||||
"ui.messagePart.context.thought.other": "Pensieri",
|
||||
"ui.messagePart.context.thought.many": "Pensieri",
|
||||
"ui.messagePart.tools.used.many": "{{count}} {{tools}} utilizzati",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Il tentativo {{attempt}} verrà ripetuto tra {{count}} secondo",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "Il tentativo {{attempt}} verrà ripetuto tra {{count}} secondi",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "Il tentativo {{attempt}} verrà ripetuto tra {{count}} secondi",
|
||||
|
||||
@@ -245,8 +245,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "試行 {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} 通知",
|
||||
"ui.messagePart.context.notice.other": "{{count}} 件の通知",
|
||||
"ui.messagePart.context.thought.one": "思考",
|
||||
"ui.messagePart.context.thought.other": "思考",
|
||||
"ui.promptInput.dropFiles.image": "画像またはファイルをドロップして追加します",
|
||||
"ui.promptInput.dropFiles.pdf": "PDF またはファイルをドロップして追加します",
|
||||
"ui.promptInput.dropFiles.imagePdf": "画像、PDF、またはファイルをドロップして追加します",
|
||||
@@ -264,8 +262,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "プロバイダーによってセッションが圧縮されました",
|
||||
"ui.messagePart.compaction.usage": "{{input}} 入力 · {{output}} 出力",
|
||||
"ui.messagePart.context.updates": "更新",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} 使用済み",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} 使用済み",
|
||||
"ui.tool.browser": "ブラウザー",
|
||||
"ui.common.fileCount.one": "{{count}} ファイル",
|
||||
"ui.common.fileCount.other": "{{count}} ファイル",
|
||||
|
||||
@@ -225,8 +225,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "მცდელობა {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} შეტყობინება",
|
||||
"ui.messagePart.context.notice.other": "{{count}} შეტყობინება",
|
||||
"ui.messagePart.context.thought.one": "აზრი",
|
||||
"ui.messagePart.context.thought.other": "აზრი",
|
||||
"ui.promptInput.dropFiles.image": "დასამატებლად ჩააგდეთ სურათები ან ფაილები",
|
||||
"ui.promptInput.dropFiles.pdf": "დასამატებლად ჩააგდეთ PDF-ები ან ფაილები",
|
||||
"ui.promptInput.dropFiles.imagePdf": "დასამატებლად ჩააგდეთ სურათები, PDF-ები ან ფაილები",
|
||||
@@ -242,8 +240,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "სესიის შეკუმშვა დაყოვნდა",
|
||||
"ui.messagePart.providerCompaction": "სესია მოწოდებულმა მხარემ შეკუმშა",
|
||||
"ui.messagePart.compaction.usage": "{{input}} შემოსული · {{output}} გამომავალი",
|
||||
"ui.messagePart.tools.used.one": "გამოყენებულია {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "გამოყენებულია {{count}} {{tools}}",
|
||||
"ui.tool.browser": "ბრაუზერი",
|
||||
"ui.common.fileCount.one": "{{count}} ფაილი",
|
||||
"ui.common.fileCount.other": "{{count}} ფაილი",
|
||||
|
||||
@@ -227,8 +227,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "ព្យាយាម {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "សេចក្តីជូនដំណឹង {{count}}",
|
||||
"ui.messagePart.context.notice.other": "{{count}} សេចក្តីជូនដំណឹង",
|
||||
"ui.messagePart.context.thought.one": "គំនិត",
|
||||
"ui.messagePart.context.thought.other": "គំនិត",
|
||||
"ui.promptInput.dropFiles.image": "ទម្លាក់រូបភាព ឬឯកសារដើម្បីបន្ថែម",
|
||||
"ui.promptInput.dropFiles.pdf": "ទម្លាក់ឯកសារ PDF ឬឯកសារដើម្បីបន្ថែម",
|
||||
"ui.promptInput.dropFiles.imagePdf": "ទម្លាក់រូបភាព PDF ឬឯកសារដើម្បីបន្ថែម",
|
||||
@@ -246,8 +244,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "សម័យត្រូវបានសង្ខេបដោយអ្នកផ្គត់ផ្គង់",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ចូល · {{output}} ចេញ",
|
||||
"ui.messagePart.context.updates": "បច្ចុប្បន្នភាព",
|
||||
"ui.messagePart.tools.used.one": "បានប្រើ {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "បានប្រើ {{count}} {{tools}}",
|
||||
"ui.tool.browser": "ម៉ាស៊ីនរកមើល",
|
||||
"ui.common.fileCount.one": "{{count}} ឯកសារ",
|
||||
"ui.common.fileCount.other": "{{count}} ឯកសារ",
|
||||
|
||||
@@ -247,8 +247,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "{{attempt}} 시도 - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} 통지",
|
||||
"ui.messagePart.context.notice.other": "{{count}}개의 통지",
|
||||
"ui.messagePart.context.thought.one": "생각",
|
||||
"ui.messagePart.context.thought.other": "생각",
|
||||
"ui.promptInput.dropFiles.image": "추가할 이미지나 파일을 드롭하세요.",
|
||||
"ui.promptInput.dropFiles.pdf": "추가할 PDF 또는 파일을 드롭하세요.",
|
||||
"ui.promptInput.dropFiles.imagePdf": "추가할 이미지, PDF 또는 파일을 드롭하세요.",
|
||||
@@ -266,8 +264,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "공급자가 세션을 압축함",
|
||||
"ui.messagePart.compaction.usage": "입력 {{input}} · 출력 {{output}}",
|
||||
"ui.messagePart.context.updates": "업데이트",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} 사용됨",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} 사용됨",
|
||||
"ui.tool.browser": "브라우저",
|
||||
"ui.common.fileCount.one": "파일 {{count}}개",
|
||||
"ui.common.fileCount.other": "파일 {{count}}개",
|
||||
|
||||
@@ -226,8 +226,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "ພະຍາຍາມ {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} ແຈ້ງການ",
|
||||
"ui.messagePart.context.notice.other": "{{count}} ປະກາດ",
|
||||
"ui.messagePart.context.thought.one": "ຄວາມຄິດ",
|
||||
"ui.messagePart.context.thought.other": "ຄວາມຄິດ",
|
||||
"ui.promptInput.dropFiles.image": "ວາງຮູບພາບ ຫຼືໄຟລ໌ເພື່ອເພີ່ມ",
|
||||
"ui.promptInput.dropFiles.pdf": "ວາງ PDF ຫຼືໄຟລ໌ເພື່ອເພີ່ມ",
|
||||
"ui.promptInput.dropFiles.imagePdf": "ວາງຮູບພາບ, PDFs, ຫຼືໄຟລ໌ທີ່ຈະເພີ່ມ",
|
||||
@@ -245,8 +243,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "ການກະທົບການປະຕິບັດງານຕາມຜູ້ສະຫນອງ",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ເຂົ້າ ·{{output}} ອອກ",
|
||||
"ui.messagePart.context.updates": "ອັບເດດ",
|
||||
"ui.messagePart.tools.used.one": "ໃຊ້ {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "ໃຊ້ {{count}} {{tools}}",
|
||||
"ui.tool.browser": "ເບຣາວເຊີ",
|
||||
"ui.common.fileCount.one": "{{count}} ໄຟລ໌",
|
||||
"ui.common.fileCount.other": "{{count}} ໄຟລ໌",
|
||||
|
||||
@@ -242,22 +242,18 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Bandymas {{attempt}} – {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Pastaba",
|
||||
"ui.messagePart.context.notice.other": "{{count}} pastabų",
|
||||
"ui.messagePart.context.thought.one": "mintis",
|
||||
"ui.messagePart.context.thought.other": "minčių",
|
||||
"ui.promptInput.dropFiles.image": "Numeskite vaizdus ar failus, kuriuos norite pridėti",
|
||||
"ui.promptInput.dropFiles.pdf": "Numeskite PDF ar failus, kad pridėtumėte",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Numeskite vaizdus, PDF failus ar failus, kuriuos norite pridėti",
|
||||
"ui.promptInput.exitShell": "Išeiti",
|
||||
"ui.sessionTimeline.notice.agentChanged": "Agentas pasikeitė",
|
||||
"ui.messagePart.context.notice.few": "{{count}} pastabos",
|
||||
"ui.messagePart.context.thought.few": "mintys",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Bandymas {{attempt}} – bandoma dar kartą",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "{{attempt}} bandymas – kartojama po {{count}} sek.",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "{{attempt}} bandymas – kartojama po {{count}} sek.",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "{{attempt}} bandymas – kartojama po {{count}} sek.",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "{{attempt}} bandymas – kartojama po {{count}} sek.",
|
||||
"ui.messagePart.context.notice.many": "{{count}} pastabų",
|
||||
"ui.messagePart.context.thought.many": "minčių",
|
||||
"ui.messagePart.compaction.started": "Pradėtas sesijos tankinimas",
|
||||
"ui.messagePart.compaction.running": "Suspaudimas",
|
||||
"ui.messagePart.compaction.failed": "Sesijos sutankinimas nepavyko",
|
||||
@@ -265,11 +261,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sesijos tankinimas nutrauktas",
|
||||
"ui.messagePart.providerCompaction": "Sesiją suglaudino teikėjas",
|
||||
"ui.messagePart.compaction.usage": "{{input}} į · {{output}} išėjimas",
|
||||
"ui.messagePart.tools.used.one": "Naudotas {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Naudotas {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Naršyklė",
|
||||
"ui.messagePart.tools.used.few": "Naudotas {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.many": "Naudotas {{count}} {{tools}}",
|
||||
"ui.common.fileCount.one": "{{count}} failas",
|
||||
"ui.common.fileCount.other": "{{count}} failus",
|
||||
"ui.common.fileCount.few": "{{count}} failus",
|
||||
|
||||
@@ -233,15 +233,12 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Mēģinājums {{attempt}} — {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Paziņojums",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Paziņojumi",
|
||||
"ui.messagePart.context.thought.one": "Doma",
|
||||
"ui.messagePart.context.thought.other": "Domas",
|
||||
"ui.promptInput.dropFiles.image": "Nometiet attēlus vai failus, lai pievienotu",
|
||||
"ui.promptInput.dropFiles.pdf": "Nometiet PDF failus vai failus, lai tos pievienotu",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Nometiet attēlus, PDF failus vai failus, lai tos pievienotu",
|
||||
"ui.promptInput.exitShell": "Iziet",
|
||||
"ui.sessionTimeline.notice.agentChanged": "Mainīts aģents",
|
||||
"ui.messagePart.context.notice.zero": "{{count}} paziņojumu",
|
||||
"ui.messagePart.context.thought.zero": "domu",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Mēģinājums {{attempt}} — atkārtots mēģinājums",
|
||||
"ui.sessionTurn.retry.attemptWaiting.zero": "{{attempt}}. mēģinājums — atkārtots mēģinājums pēc {{count}} s",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "{{attempt}}. mēģinājums — atkārtots mēģinājums pēc {{count}} s",
|
||||
@@ -253,10 +250,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sesijas blīvēšana pārtraukta",
|
||||
"ui.messagePart.providerCompaction": "Sesiju sablīvējis nodrošinātājs",
|
||||
"ui.messagePart.compaction.usage": "{{input}} iekšā · {{output}} izeja",
|
||||
"ui.messagePart.tools.used.one": "Lietots {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Lietots {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Pārlūkprogramma",
|
||||
"ui.messagePart.tools.used.zero": "Lietots {{count}} {{tools}}",
|
||||
"ui.common.fileCount.one": "{{count}} fails",
|
||||
"ui.common.fileCount.other": "{{count}} faili",
|
||||
"ui.common.fileCount.zero": "{{count}} faili",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Обид {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} известување",
|
||||
"ui.messagePart.context.notice.other": "{{count}} известувања",
|
||||
"ui.messagePart.context.thought.one": "мисла",
|
||||
"ui.messagePart.context.thought.other": "мисли",
|
||||
"ui.promptInput.dropFiles.image": "Спуштете слики или датотеки за да додадете",
|
||||
"ui.promptInput.dropFiles.pdf": "Спуштете PDF-датотеки или други датотеки за додавање",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Спуштете слики, PDF-датотеки или други датотеки за додавање",
|
||||
@@ -241,8 +239,6 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Компактирањето на сесијата е прекинато",
|
||||
"ui.messagePart.providerCompaction": "Сесијата е компактирана од провајдер",
|
||||
"ui.messagePart.compaction.usage": "{{input}} во · {{output}} надвор",
|
||||
"ui.messagePart.tools.used.one": "Користени {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Користени {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Прелистувач",
|
||||
"ui.common.fileCount.one": "{{count}} датотека",
|
||||
"ui.common.fileCount.other": "{{count}} датотеки",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Оролдлого {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} мэдэгдэл",
|
||||
"ui.messagePart.context.notice.other": "{{count}} мэдэгдэл",
|
||||
"ui.messagePart.context.thought.one": "бодол",
|
||||
"ui.messagePart.context.thought.other": "бодол",
|
||||
"ui.promptInput.dropFiles.image": "Зураг эсвэл файл нэмэхийн тулд чирж оруулна уу",
|
||||
"ui.promptInput.dropFiles.pdf": "PDF эсвэл файл нэмэхийн тулд чирж оруулна уу",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Зураг, PDF эсвэл файл нэмэхийн тулд чирж оруулна уу",
|
||||
@@ -241,8 +239,6 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Хуралдааны шахалт тасалдсан",
|
||||
"ui.messagePart.providerCompaction": "Сесси сэлгэгчээр шахагдсан",
|
||||
"ui.messagePart.compaction.usage": "{{input}} орж · {{output}} гарах",
|
||||
"ui.messagePart.tools.used.one": "Ашигласан {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Ашигласан {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Хөтөч",
|
||||
"ui.common.fileCount.one": "{{count}} файл",
|
||||
"ui.common.fileCount.other": "{{count}} файл",
|
||||
|
||||
@@ -226,8 +226,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Percubaan {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Notis",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Notis",
|
||||
"ui.messagePart.context.thought.one": "Pemikiran",
|
||||
"ui.messagePart.context.thought.other": "Pemikiran",
|
||||
"ui.promptInput.dropFiles.image": "Lepaskan imej atau fail untuk ditambahkan",
|
||||
"ui.promptInput.dropFiles.pdf": "Lepaskan PDF atau fail untuk ditambahkan",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Lepaskan imej, PDF atau fail untuk ditambahkan",
|
||||
@@ -245,8 +243,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.providerCompaction": "Sesi dipadatkan oleh penyedia",
|
||||
"ui.messagePart.compaction.usage": "{{input}} masuk · {{output}} keluar",
|
||||
"ui.messagePart.context.updates": "Kemas kini",
|
||||
"ui.messagePart.tools.used.one": "Menggunakan {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Menggunakan {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Pelayar",
|
||||
"ui.common.fileCount.one": "{{count}} fail",
|
||||
"ui.common.fileCount.other": "{{count}} fail",
|
||||
|
||||
@@ -227,8 +227,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "ကြိုးစားမှု {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} အသိပေးချက်",
|
||||
"ui.messagePart.context.notice.other": "{{count}} သတိပေးချက်များ",
|
||||
"ui.messagePart.context.thought.one": "အတွေး",
|
||||
"ui.messagePart.context.thought.other": "အတွေး",
|
||||
"ui.promptInput.dropFiles.image": "ထည့်ရန် ပုံများ သို့မဟုတ် ဖိုင်များကို ချပေးပါ။",
|
||||
"ui.promptInput.dropFiles.pdf": "ထည့်ရန် PDFs သို့မဟုတ် ဖိုင်များကို ချလိုက်ပါ။",
|
||||
"ui.promptInput.dropFiles.imagePdf": "ထည့်ရန် ပုံများ၊ PDF သို့မဟုတ် ဖိုင်များကို ချလိုက်ပါ။",
|
||||
@@ -246,8 +244,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "ပံ့ပိုးသူမှ အစည်းအဝေး ဖိုင်ကို ပေါင်းချုပ်ပြီးဖြစ်သည်",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ကို ဝင် · {{output}} ကို ထုတ်",
|
||||
"ui.messagePart.context.updates": "အပ်ဒိတ်များ",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} ကို အသုံးပြုခဲ့သည်",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} ကို အသုံးပြုခဲ့သည်",
|
||||
"ui.tool.browser": "ဘရောက်ဇာ",
|
||||
"ui.common.fileCount.one": "{{count}} ဖိုင်",
|
||||
"ui.common.fileCount.other": "{{count}} ဖိုင်",
|
||||
|
||||
@@ -244,10 +244,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "सत्र सङ्कुचन अवरुद्ध भयो",
|
||||
"ui.messagePart.providerCompaction": "प्रदायकले सत्र सङ्कुचित गर्यो",
|
||||
"ui.messagePart.compaction.usage": "{{input}} इन · {{output}} आउट",
|
||||
"ui.messagePart.context.thought.one": "विचार",
|
||||
"ui.messagePart.context.thought.other": "विचारहरू",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} प्रयोग गरियो",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} प्रयोग गरिए",
|
||||
"ui.tool.browser": "ब्राउजर",
|
||||
"ui.common.fileCount.one": "{{count}} फाइल",
|
||||
"ui.common.fileCount.other": "{{count}} फाइलहरू",
|
||||
|
||||
@@ -8,11 +8,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sessieverdichting onderbroken",
|
||||
"ui.messagePart.providerCompaction": "Sessie gecomprimeerd per provider",
|
||||
"ui.messagePart.compaction.usage": "{{input}} in · {{output}} uit",
|
||||
"ui.messagePart.tools.used.one": "{{count}} {{tools}} gebruikt",
|
||||
"ui.messagePart.tools.used.other": "{{count}} {{tools}} gebruikt",
|
||||
"ui.tool.browser": "Browser",
|
||||
"ui.messagePart.context.thought.one": "Gedachte",
|
||||
"ui.messagePart.context.thought.other": "Gedachten",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Poging {{attempt}} wordt over {{count}} seconde opnieuw uitgevoerd",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "Poging {{attempt}} wordt over {{count}} seconden opnieuw uitgevoerd",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Poging {{attempt}} – opnieuw proberen",
|
||||
|
||||
@@ -12,11 +12,7 @@ export const dict: Record<Keys, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sesjonskomprimering avbrutt",
|
||||
"ui.messagePart.providerCompaction": "Økt komprimert av leverandør",
|
||||
"ui.messagePart.compaction.usage": "{{input}} inn · {{output}} ut",
|
||||
"ui.messagePart.tools.used.one": "Brukte {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Brukte {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Nettleser",
|
||||
"ui.messagePart.context.thought.one": "Tanke",
|
||||
"ui.messagePart.context.thought.other": "Tanker",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Forsøk {{attempt}} gjentas om {{count}} sekund",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "Forsøk {{attempt}} gjentas om {{count}} sekunder",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Forsøk {{attempt}} – prøver igjen",
|
||||
|
||||
@@ -245,10 +245,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "سیشن کمپیکشن رک گئی",
|
||||
"ui.messagePart.providerCompaction": "پرووائیڈر نے سیشن کمپیکٹ کیتا",
|
||||
"ui.messagePart.compaction.usage": "\u2068{{input}}\u2069 اِن · \u2068{{output}}\u2069 آؤٹ",
|
||||
"ui.messagePart.context.thought.one": "خیال",
|
||||
"ui.messagePart.context.thought.other": "خیال",
|
||||
"ui.messagePart.tools.used.one": "\u2068{{count}}\u2069 \u2068{{tools}}\u2069 ورتیا",
|
||||
"ui.messagePart.tools.used.other": "\u2068{{count}}\u2069 \u2068{{tools}}\u2069 ورتے",
|
||||
"ui.tool.browser": "براؤزر",
|
||||
"ui.common.fileCount.one": "\u2068{{count}}\u2069 فائل",
|
||||
"ui.common.fileCount.other": "\u2068{{count}}\u2069 فائلاں",
|
||||
|
||||
@@ -262,8 +262,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Próba {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} powiadomienie",
|
||||
"ui.messagePart.context.notice.other": "{{count}} powiadomienia",
|
||||
"ui.messagePart.context.thought.one": "myśl",
|
||||
"ui.messagePart.context.thought.other": "myśli",
|
||||
"ui.promptInput.dropFiles.image": "Upuść obrazy lub pliki, które chcesz dodać",
|
||||
"ui.promptInput.dropFiles.pdf": "Upuść pliki PDF lub inne pliki do dodania",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Upuść obrazy, pliki PDF lub inne pliki do dodania",
|
||||
@@ -271,8 +269,6 @@ export const dict = {
|
||||
"ui.sessionTimeline.notice.agentChanged": "Zmiana agenta",
|
||||
"ui.messagePart.context.notice.few": "{{count}} powiadomienia",
|
||||
"ui.messagePart.context.notice.many": "{{count}} powiadomień",
|
||||
"ui.messagePart.context.thought.few": "myśli",
|
||||
"ui.messagePart.context.thought.many": "myśli",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Próba {{attempt}} – ponawianie",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Próba {{attempt}} – ponowienie za {{count}} sekundę",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Próba {{attempt}} – ponowienie za {{count}} sekundy",
|
||||
@@ -285,13 +281,9 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Kompaktowanie sesji przerwane",
|
||||
"ui.messagePart.providerCompaction": "Sesja skompaktowana przez dostawcę",
|
||||
"ui.messagePart.compaction.usage": "{{input}} w · {{output}} na zewnątrz",
|
||||
"ui.messagePart.tools.used.one": "Użyto {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Użyto {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Przeglądarka",
|
||||
"ui.common.fileCount.one": "{{count}} plik",
|
||||
"ui.common.fileCount.other": "{{count}} pliku",
|
||||
"ui.messagePart.tools.used.few": "Użyto {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.many": "Użyto {{count}} {{tools}}",
|
||||
"ui.common.fileCount.few": "{{count}} pliki",
|
||||
"ui.common.fileCount.many": "{{count}} plików",
|
||||
"ui.messagePart.context.updates": "Aktualizacje",
|
||||
|
||||
@@ -234,15 +234,12 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Încercarea {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Notă",
|
||||
"ui.messagePart.context.notice.other": "{{count}} de notificări",
|
||||
"ui.messagePart.context.thought.one": "Gând",
|
||||
"ui.messagePart.context.thought.other": "de gânduri",
|
||||
"ui.promptInput.dropFiles.image": "Aruncă imagini sau fișiere de adăugat",
|
||||
"ui.promptInput.dropFiles.pdf": "Aruncați PDF-uri sau fișiere de adăugat",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Aruncă imagini, PDF-uri sau fișiere de adăugat",
|
||||
"ui.promptInput.exitShell": "Ieșire",
|
||||
"ui.sessionTimeline.notice.agentChanged": "Agent schimbat",
|
||||
"ui.messagePart.context.notice.few": "{{count}} notificări",
|
||||
"ui.messagePart.context.thought.few": "gânduri",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Încercare {{attempt}} - reîncercare",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Încercarea {{attempt}} – reîncercare în {{count}} s",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Încercarea {{attempt}} – reîncercare în {{count}} s",
|
||||
@@ -254,10 +251,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Compactarea sesiunii întreruptă",
|
||||
"ui.messagePart.providerCompaction": "Sesiune compactată de furnizor",
|
||||
"ui.messagePart.compaction.usage": "{{input}} în · {{output}} afară",
|
||||
"ui.messagePart.tools.used.one": "Folosit {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Folosit {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Browser",
|
||||
"ui.messagePart.tools.used.few": "Folosit {{count}} {{tools}}",
|
||||
"ui.common.fileCount.one": "Fișierul {{count}}",
|
||||
"ui.common.fileCount.other": "Fișierele {{count}}",
|
||||
"ui.common.fileCount.few": "Fișierele {{count}}",
|
||||
|
||||
@@ -261,8 +261,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Попытка {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} уведомление",
|
||||
"ui.messagePart.context.notice.other": "{{count}} уведомления",
|
||||
"ui.messagePart.context.thought.one": "мысль",
|
||||
"ui.messagePart.context.thought.other": "мысли",
|
||||
"ui.promptInput.dropFiles.image": "Перетащите изображения или файлы для добавления.",
|
||||
"ui.promptInput.dropFiles.pdf": "Перетащите PDF-файлы или другие файлы для добавления",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Перетащите изображения, PDF-файлы или другие файлы для добавления",
|
||||
@@ -270,8 +268,6 @@ export const dict = {
|
||||
"ui.sessionTimeline.notice.agentChanged": "Агент изменен.",
|
||||
"ui.messagePart.context.notice.few": "{{count}} уведомления",
|
||||
"ui.messagePart.context.notice.many": "{{count}} уведомлений",
|
||||
"ui.messagePart.context.thought.few": "мысли",
|
||||
"ui.messagePart.context.thought.many": "мыслей",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Попытка {{attempt}} — повторная попытка",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Попытка {{attempt}} — повтор через {{count}} секунду",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Попытка {{attempt}} — повтор через {{count}} секунды",
|
||||
@@ -284,13 +280,9 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Компактизация сессии прервана",
|
||||
"ui.messagePart.providerCompaction": "Сессия скомпактирована провайдером",
|
||||
"ui.messagePart.compaction.usage": "{{input}} в · {{output}} из",
|
||||
"ui.messagePart.tools.used.one": "Использовано {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Использовано {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Браузер",
|
||||
"ui.common.fileCount.one": "{{count}} файл",
|
||||
"ui.common.fileCount.other": "{{count}} файла",
|
||||
"ui.messagePart.tools.used.few": "Использовано {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.many": "Использовано {{count}} {{tools}}",
|
||||
"ui.common.fileCount.few": "{{count}} файла",
|
||||
"ui.common.fileCount.many": "{{count}} файлов",
|
||||
"ui.messagePart.context.updates": "Обновления",
|
||||
|
||||
@@ -242,10 +242,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "සැසි සංක්ෂිප්ත කිරීම බාධා විය",
|
||||
"ui.messagePart.providerCompaction": "සපයන්නා විසින් සැසිය සංක්ෂිප්ත කරන ලදී",
|
||||
"ui.messagePart.compaction.usage": "ඇතුළට {{input}} · පිටතට {{output}}",
|
||||
"ui.messagePart.context.thought.one": "සිතුවිල්ල",
|
||||
"ui.messagePart.context.thought.other": "සිතුවිලි",
|
||||
"ui.messagePart.tools.used.one": "{{tools}} {{count}}ක් භාවිත කළා",
|
||||
"ui.messagePart.tools.used.other": "{{tools}} {{count}}ක් භාවිත කළා",
|
||||
"ui.tool.browser": "බ්රවුසරය",
|
||||
"ui.common.fileCount.one": "ගොනුව {{count}}",
|
||||
"ui.common.fileCount.other": "ගොනු {{count}}",
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
export const dict: Record<string, string> = {
|
||||
"ui.messagePart.tools.used.few": "Použité {{count}}×: {{tools}}",
|
||||
"ui.messagePart.tools.used.many": "Použité {{count}}×: {{tools}}",
|
||||
"ui.common.fileCount.few": "{{count}} súbory",
|
||||
"ui.common.fileCount.many": "{{count}} súboru",
|
||||
"ui.sessionTurn.diffs.changed.few": "{{count}} zmenené súbory",
|
||||
@@ -23,8 +21,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.common.question.many": "otázky",
|
||||
"ui.messagePart.context.notice.few": "{{count}} upozornenia",
|
||||
"ui.messagePart.context.notice.many": "{{count}} upozornenia",
|
||||
"ui.messagePart.context.thought.few": "myšlienky",
|
||||
"ui.messagePart.context.thought.many": "myšlienky",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Pokus {{attempt}} – ďalší pokus o {{count}} sekundy",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "Pokus {{attempt}} – ďalší pokus o {{count}} sekundy",
|
||||
"ui.sessionReview.title": "Zmeny v relácii",
|
||||
@@ -252,8 +248,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Pokus {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} upozornenie",
|
||||
"ui.messagePart.context.notice.other": "{{count}} upozornení",
|
||||
"ui.messagePart.context.thought.one": "myšlienka",
|
||||
"ui.messagePart.context.thought.other": "myšlienok",
|
||||
"ui.promptInput.dropFiles.image": "Presuňte obrázky alebo súbory, ktoré chcete pridať",
|
||||
"ui.promptInput.dropFiles.pdf": "Presuňte súbory PDF alebo iné súbory, ktoré chcete pridať",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Presuňte obrázky, súbory PDF alebo iné súbory, ktoré chcete pridať",
|
||||
@@ -269,8 +263,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Kompakcia relácie prerušena",
|
||||
"ui.messagePart.providerCompaction": "Reláciu skomprimoval poskytovateľ",
|
||||
"ui.messagePart.compaction.usage": "{{input}} vstup · {{output}} výstup",
|
||||
"ui.messagePart.tools.used.one": "Použitý {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Použité {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Webový prehliadač",
|
||||
"ui.common.fileCount.one": "{{count}} súbor",
|
||||
"ui.common.fileCount.other": "{{count}} súborov",
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
export const dict: Record<string, string> = {
|
||||
"ui.messagePart.tools.used.two": "{{tools}} uporabljeno {{count}}-krat",
|
||||
"ui.messagePart.tools.used.few": "{{tools}} uporabljeno {{count}}-krat",
|
||||
"ui.common.fileCount.two": "{{count}} datoteki",
|
||||
"ui.common.fileCount.few": "{{count}} datoteke",
|
||||
"ui.sessionTurn.diffs.changed.two": "{{count}} spremenjeni datoteki",
|
||||
@@ -23,8 +21,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.common.question.few": "vprašanja",
|
||||
"ui.messagePart.context.notice.two": "{{count}} obvestili",
|
||||
"ui.messagePart.context.notice.few": "{{count}} obvestila",
|
||||
"ui.messagePart.context.thought.two": "misli",
|
||||
"ui.messagePart.context.thought.few": "misli",
|
||||
"ui.sessionTurn.retry.attemptWaiting.two": "Poskus {{attempt}} – ponovni poskus čez {{count}} sekundi",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Poskus {{attempt}} – ponovni poskus čez {{count}} sekunde",
|
||||
"ui.sessionReview.title": "Spremembe seje",
|
||||
@@ -253,8 +249,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Poskus {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} obvestilo",
|
||||
"ui.messagePart.context.notice.other": "{{count}} obvestil",
|
||||
"ui.messagePart.context.thought.one": "misel",
|
||||
"ui.messagePart.context.thought.other": "misli",
|
||||
"ui.promptInput.dropFiles.image": "Spustite slike ali datoteke, ki jih želite dodati",
|
||||
"ui.promptInput.dropFiles.pdf": "Spustite datoteke PDF ali druge datoteke, ki jih želite dodati",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Spustite slike, datoteke PDF ali druge datoteke, ki jih želite dodati",
|
||||
@@ -270,8 +264,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Kompaktiranje sej prekinjeno",
|
||||
"ui.messagePart.providerCompaction": "Seja je bila skrčena s strani ponudnika",
|
||||
"ui.messagePart.compaction.usage": "{{input}} v · {{output}} ven",
|
||||
"ui.messagePart.tools.used.one": "Uporabljen {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Uporabljenih {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Spletni brskalnik",
|
||||
"ui.common.fileCount.one": "{{count}} datoteka",
|
||||
"ui.common.fileCount.other": "{{count}} datotek",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Përpjekje {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "Njoftim {{count}}",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Njoftimet",
|
||||
"ui.messagePart.context.thought.one": "Mendimi",
|
||||
"ui.messagePart.context.thought.other": "Mendime",
|
||||
"ui.promptInput.dropFiles.image": "Hidhni imazhe ose skedarë për të shtuar",
|
||||
"ui.promptInput.dropFiles.pdf": "Hidhni PDF ose skedarë për të shtuar",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Hidhni imazhe, PDF ose skedarë për të shtuar",
|
||||
@@ -241,8 +239,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Ngjeshja e sesionit u ndërpre",
|
||||
"ui.messagePart.providerCompaction": "Sesioni i ngjeshur nga ofruesi",
|
||||
"ui.messagePart.compaction.usage": "{{input}} në · {{output}} jashtë",
|
||||
"ui.messagePart.tools.used.one": "E përdorur {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "E përdorur {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Shfletuesi",
|
||||
"ui.common.fileCount.one": "Skedari {{count}}",
|
||||
"ui.common.fileCount.other": "Skedarët {{count}}",
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
export const dict = {
|
||||
"ui.messagePart.tools.used.few": "{{tools}} коришћен {{count}} пута",
|
||||
"ui.common.fileCount.few": "{{count}} фајла",
|
||||
"ui.sessionTurn.diffs.changed.few": "{{count}} промењене датотеке",
|
||||
"ui.messagePart.context.read.few": "{{count}} читања",
|
||||
@@ -11,7 +10,6 @@ export const dict = {
|
||||
"ui.common.file.few": "датотеке",
|
||||
"ui.common.question.few": "питања",
|
||||
"ui.messagePart.context.notice.few": "{{count}} обавештења",
|
||||
"ui.messagePart.context.thought.few": "мисли",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Покушај {{attempt}} – поновни покушај за {{count}} секунде",
|
||||
"ui.sessionReview.title": "Промене сесије",
|
||||
"ui.sessionReview.title.git": "Git промене",
|
||||
@@ -239,8 +237,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Покушај {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} обавештење",
|
||||
"ui.messagePart.context.notice.other": "{{count}} обавештења",
|
||||
"ui.messagePart.context.thought.one": "мисао",
|
||||
"ui.messagePart.context.thought.other": "мисли",
|
||||
"ui.promptInput.dropFiles.image": "Испустите слике или датотеке за додавање",
|
||||
"ui.promptInput.dropFiles.pdf": "Испустите PDF датотеке или друге датотеке за додавање",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Испустите слике, PDF датотеке или друге датотеке за додавање",
|
||||
@@ -256,8 +252,6 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Компактовање сесије прекинуто",
|
||||
"ui.messagePart.providerCompaction": "Сесија компактована од провајдера",
|
||||
"ui.messagePart.compaction.usage": "{{input}} улаз · {{output}} излаз",
|
||||
"ui.messagePart.tools.used.one": "Коришћено {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Коришћено {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Прегледник",
|
||||
"ui.common.fileCount.one": "{{count}} фајл",
|
||||
"ui.common.fileCount.other": "{{count}} фајлова",
|
||||
|
||||
@@ -8,11 +8,7 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sessionskomprimering avbröts",
|
||||
"ui.messagePart.providerCompaction": "Session komprimerad av leverantör",
|
||||
"ui.messagePart.compaction.usage": "{{input}} in · {{output}} ut",
|
||||
"ui.messagePart.tools.used.one": "Använde {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Använde {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Webbläsare",
|
||||
"ui.messagePart.context.thought.one": "Tanke",
|
||||
"ui.messagePart.context.thought.other": "Tankar",
|
||||
"ui.sessionTurn.retry.attemptWaiting.one": "Försök {{attempt}} upprepas om {{count}} sekund",
|
||||
"ui.sessionTurn.retry.attemptWaiting.other": "Försök {{attempt}} upprepas om {{count}} sekunder",
|
||||
"ui.sessionTurn.retry.attemptRetryingNow": "Försök {{attempt}} – försöker igen",
|
||||
|
||||
@@ -225,8 +225,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Кӯшиши {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} огоҳӣ",
|
||||
"ui.messagePart.context.notice.other": "{{count}} огоҳиҳо",
|
||||
"ui.messagePart.context.thought.one": "андеша",
|
||||
"ui.messagePart.context.thought.other": "андешаҳо",
|
||||
"ui.promptInput.dropFiles.image": "Барои илова тасвирҳо ё файлҳоро гузоред",
|
||||
"ui.promptInput.dropFiles.pdf": "Барои илова PDF ё файлҳоро гузоред",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Барои илова тасвирҳо, PDF ё файлҳоро гузоред",
|
||||
@@ -242,8 +240,6 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Фишурдани сессия қатъ карда шуд",
|
||||
"ui.messagePart.providerCompaction": "Сеанс аз ҷониби провайдер фишурда шудааст",
|
||||
"ui.messagePart.compaction.usage": "{{input}} дар · {{output}} берун",
|
||||
"ui.messagePart.tools.used.one": "Истифода бурда мешавад {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Истифода бурда мешавад {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Браузер",
|
||||
"ui.common.fileCount.one": "{{count}} файл",
|
||||
"ui.common.fileCount.other": "{{count}} файл",
|
||||
|
||||
@@ -246,8 +246,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "พยายาม {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} ประกาศ",
|
||||
"ui.messagePart.context.notice.other": "{{count}} ประกาศ",
|
||||
"ui.messagePart.context.thought.one": "ความคิด",
|
||||
"ui.messagePart.context.thought.other": "ความคิด",
|
||||
"ui.promptInput.dropFiles.image": "วางรูปภาพหรือไฟล์ที่จะเพิ่ม",
|
||||
"ui.promptInput.dropFiles.pdf": "วาง PDF หรือไฟล์ที่จะเพิ่ม",
|
||||
"ui.promptInput.dropFiles.imagePdf": "วางรูปภาพ, PDF หรือไฟล์ที่จะเพิ่ม",
|
||||
@@ -265,8 +263,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "เซสชันถูกบีบอัดโดยผู้ให้บริการ",
|
||||
"ui.messagePart.compaction.usage": "{{input}} เข้า · {{output}} ออก",
|
||||
"ui.messagePart.context.updates": "การอัปเดต",
|
||||
"ui.messagePart.tools.used.one": "ใช้ {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "ใช้ {{count}} {{tools}}",
|
||||
"ui.tool.browser": "เบราว์เซอร์",
|
||||
"ui.common.fileCount.one": "{{count}} ไฟล์",
|
||||
"ui.common.fileCount.other": "{{count}} ไฟล์",
|
||||
|
||||
@@ -224,8 +224,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Synanyşyk {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} bildiriş",
|
||||
"ui.messagePart.context.notice.other": "{{count}} bildiriş",
|
||||
"ui.messagePart.context.thought.one": "pikir",
|
||||
"ui.messagePart.context.thought.other": "pikir",
|
||||
"ui.promptInput.dropFiles.image": "Goşmak üçin suratlary ýa-da faýllary taşlaň",
|
||||
"ui.promptInput.dropFiles.pdf": "Goşmak üçin PDF-leri ýa-da faýllary taşlaň",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Goşmak üçin suratlary, PDF-leri ýa-da faýllary taşlaň",
|
||||
@@ -241,8 +239,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Sessiýanyň gysylmagy kesildi",
|
||||
"ui.messagePart.providerCompaction": "Sessiýa üpjün ediji tarapyndan gysyldy",
|
||||
"ui.messagePart.compaction.usage": "{{input}} in · {{output}} çykýar",
|
||||
"ui.messagePart.tools.used.one": "Ulanylan {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Ulanylan {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Brauzer",
|
||||
"ui.common.fileCount.one": "{{count}} faýl",
|
||||
"ui.common.fileCount.other": "{{count}} faýl",
|
||||
|
||||
@@ -250,8 +250,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "{{attempt}} - {{line}}'yu deneyin",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Bildirimi",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Bildirimleri",
|
||||
"ui.messagePart.context.thought.one": "Düşünce",
|
||||
"ui.messagePart.context.thought.other": "Düşünceler",
|
||||
"ui.promptInput.dropFiles.image": "Eklenecek resimleri veya dosyaları bırakın",
|
||||
"ui.promptInput.dropFiles.pdf": "Eklenecek PDF'leri veya dosyaları bırakın",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Eklenecek görselleri, PDF'leri veya dosyaları bırakın",
|
||||
@@ -267,8 +265,6 @@ export const dict = {
|
||||
"ui.messagePart.compaction.interrupted": "Oturum sıkıştırması kesintiye uğradı",
|
||||
"ui.messagePart.providerCompaction": "Oturum sağlayıcı tarafından sıkıştırıldı",
|
||||
"ui.messagePart.compaction.usage": "{{input}} giriş · {{output}} çıkış",
|
||||
"ui.messagePart.tools.used.one": "İkinci el {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "İkinci el {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Tarayıcı",
|
||||
"ui.common.fileCount.one": "{{count}} dosyası",
|
||||
"ui.common.fileCount.other": "{{count}} dosyaları",
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
export const dict: Record<string, string> = {
|
||||
"ui.messagePart.tools.used.few": "Використано {{count}} рази: {{tools}}",
|
||||
"ui.messagePart.tools.used.many": "Використано {{count}} разів: {{tools}}",
|
||||
"ui.common.fileCount.few": "{{count}} файли",
|
||||
"ui.common.fileCount.many": "{{count}} файлів",
|
||||
"ui.sessionTurn.diffs.changed.few": "Змінені файли: {{count}}",
|
||||
@@ -23,8 +21,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.common.question.many": "запитань",
|
||||
"ui.messagePart.context.notice.few": "{{count}} примітки",
|
||||
"ui.messagePart.context.notice.many": "{{count}} приміток",
|
||||
"ui.messagePart.context.thought.few": "думки",
|
||||
"ui.messagePart.context.thought.many": "думок",
|
||||
"ui.sessionTurn.retry.attemptWaiting.few": "Спроба {{attempt}} — повтор через {{count}} секунди",
|
||||
"ui.sessionTurn.retry.attemptWaiting.many": "Спроба {{attempt}} — повтор через {{count}} секунд",
|
||||
"ui.sessionReview.title": "Зміни сесії",
|
||||
@@ -275,8 +271,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Спроба {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} примітка",
|
||||
"ui.messagePart.context.notice.other": "{{count}} примітки",
|
||||
"ui.messagePart.context.thought.one": "думка",
|
||||
"ui.messagePart.context.thought.other": "думки",
|
||||
"ui.promptInput.dropFiles.image": "Перетягніть зображення або файли, щоб додати",
|
||||
"ui.promptInput.dropFiles.pdf": "Перетягніть PDF-файли або інші файли, щоб додати",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Перетягніть зображення, PDF-файли або інші файли, щоб додати",
|
||||
@@ -292,8 +286,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Компактування сесії перервано",
|
||||
"ui.messagePart.providerCompaction": "Сесію стиснуто провайдером",
|
||||
"ui.messagePart.compaction.usage": "{{input}} вхід · {{output}} вихід",
|
||||
"ui.messagePart.tools.used.one": "Використано {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Використано {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Веббраузер",
|
||||
"ui.common.fileCount.one": "{{count}} файл",
|
||||
"ui.common.fileCount.other": "{{count}} файла",
|
||||
|
||||
@@ -246,10 +246,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "سیشن کمپیکشن میں خلل پڑا",
|
||||
"ui.messagePart.providerCompaction": "فراہم کنندہ نے سیشن کمپیکٹ کیا",
|
||||
"ui.messagePart.compaction.usage": "\u2068{{input}}\u2069 اِن · \u2068{{output}}\u2069 آؤٹ",
|
||||
"ui.messagePart.context.thought.one": "خیال",
|
||||
"ui.messagePart.context.thought.other": "خیالات",
|
||||
"ui.messagePart.tools.used.one": "\u2068{{count}}\u2069 \u2068{{tools}}\u2069 استعمال کیا",
|
||||
"ui.messagePart.tools.used.other": "\u2068{{count}}\u2069 \u2068{{tools}}\u2069 استعمال کیے",
|
||||
"ui.tool.browser": "براؤزر",
|
||||
"ui.common.fileCount.one": "\u2068{{count}}\u2069 فائل",
|
||||
"ui.common.fileCount.other": "\u2068{{count}}\u2069 فائلیں",
|
||||
|
||||
@@ -227,8 +227,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Urinish {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} ta bildirishnoma",
|
||||
"ui.messagePart.context.notice.other": "{{count}} ta bildirishnoma",
|
||||
"ui.messagePart.context.thought.one": "ta fikr",
|
||||
"ui.messagePart.context.thought.other": "ta fikr",
|
||||
"ui.promptInput.dropFiles.image": "Rasm yoki fayllarni qo‘shish uchun tashlang",
|
||||
"ui.promptInput.dropFiles.pdf": "PDF yoki fayllarni qo‘shish uchun tashlang",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Rasm, PDF yoki fayllarni qo‘shish uchun tashlang",
|
||||
@@ -244,8 +242,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.compaction.interrupted": "Seansni siqish uzildi",
|
||||
"ui.messagePart.providerCompaction": "Seans provayder tomonidan ixchamlashtirilgan",
|
||||
"ui.messagePart.compaction.usage": "{{input}} ichida · {{output}} chiqdi",
|
||||
"ui.messagePart.tools.used.one": "Ishlatilgan {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Ishlatilgan {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Brauzer",
|
||||
"ui.common.fileCount.one": "{{count}} ta fayl",
|
||||
"ui.common.fileCount.other": "{{count}} ta fayl",
|
||||
|
||||
@@ -226,8 +226,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "Lần thử {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} Thông báo",
|
||||
"ui.messagePart.context.notice.other": "{{count}} Thông báo",
|
||||
"ui.messagePart.context.thought.one": "Suy nghĩ",
|
||||
"ui.messagePart.context.thought.other": "Suy nghĩ",
|
||||
"ui.promptInput.dropFiles.image": "Thả hình ảnh hoặc tập tin để thêm",
|
||||
"ui.promptInput.dropFiles.pdf": "Thả tệp PDF hoặc tệp để thêm",
|
||||
"ui.promptInput.dropFiles.imagePdf": "Thả hình ảnh, tệp PDF hoặc tệp để thêm",
|
||||
@@ -245,8 +243,6 @@ export const dict: Record<string, string> = {
|
||||
"ui.messagePart.providerCompaction": "Phiên được nén bởi nhà cung cấp",
|
||||
"ui.messagePart.compaction.usage": "{{input}} vào · {{output}} ra",
|
||||
"ui.messagePart.context.updates": "Bản cập nhật",
|
||||
"ui.messagePart.tools.used.one": "Đã sử dụng {{count}} {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "Đã sử dụng {{count}} {{tools}}",
|
||||
"ui.tool.browser": "Trình duyệt",
|
||||
"ui.common.fileCount.one": "{{count}} tệp",
|
||||
"ui.common.fileCount.other": "{{count}} tệp",
|
||||
|
||||
@@ -248,8 +248,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "尝试 {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} 通知",
|
||||
"ui.messagePart.context.notice.other": "{{count}} 条通知",
|
||||
"ui.messagePart.context.thought.one": "思考",
|
||||
"ui.messagePart.context.thought.other": "思考",
|
||||
"ui.promptInput.dropFiles.image": "拖放要添加的图像或文件",
|
||||
"ui.promptInput.dropFiles.pdf": "拖放要添加的 PDF 或文件",
|
||||
"ui.promptInput.dropFiles.imagePdf": "拖放要添加的图像、PDF 或文件",
|
||||
@@ -267,8 +265,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "会话由提供者压缩",
|
||||
"ui.messagePart.compaction.usage": "{{input}} 输入 · {{output}} 输出",
|
||||
"ui.messagePart.context.updates": "更新",
|
||||
"ui.messagePart.tools.used.one": "使用了 {{count}} 个 {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "使用了 {{count}} 个 {{tools}}",
|
||||
"ui.tool.browser": "浏览器",
|
||||
"ui.common.fileCount.one": "{{count}} 个文件",
|
||||
"ui.common.fileCount.other": "{{count}} 个文件",
|
||||
|
||||
@@ -248,8 +248,6 @@ export const dict = {
|
||||
"ui.sessionTurn.retry.attemptRetrying": "試 {{attempt}} - {{line}}",
|
||||
"ui.messagePart.context.notice.one": "{{count}} 通知",
|
||||
"ui.messagePart.context.notice.other": "{{count}} 條通知",
|
||||
"ui.messagePart.context.thought.one": "思考",
|
||||
"ui.messagePart.context.thought.other": "思考",
|
||||
"ui.promptInput.dropFiles.image": "拖放要新增的圖像或文件",
|
||||
"ui.promptInput.dropFiles.pdf": "拖放要新增的 PDF 或文件",
|
||||
"ui.promptInput.dropFiles.imagePdf": "拖放要新增的圖像、PDF 或文件",
|
||||
@@ -267,8 +265,6 @@ export const dict = {
|
||||
"ui.messagePart.providerCompaction": "工作階段已由提供者壓縮",
|
||||
"ui.messagePart.compaction.usage": "{{input}} 輸入 · {{output}} 輸出",
|
||||
"ui.messagePart.context.updates": "更新",
|
||||
"ui.messagePart.tools.used.one": "使用了 {{count}} 個 {{tools}}",
|
||||
"ui.messagePart.tools.used.other": "使用了 {{count}} 個 {{tools}}",
|
||||
"ui.tool.browser": "瀏覽器",
|
||||
"ui.common.fileCount.one": "{{count}} 個檔案",
|
||||
"ui.common.fileCount.other": "{{count}} 個檔案",
|
||||
|
||||
Reference in new issue
Block a user