diff --git a/apps/web/e2e/first-run-onboarding-ux.spec.ts b/apps/web/e2e/first-run-onboarding-ux.spec.ts index 73c844a..73fea3b 100644 --- a/apps/web/e2e/first-run-onboarding-ux.spec.ts +++ b/apps/web/e2e/first-run-onboarding-ux.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from "@playwright/test"; -import { completeOnboarding, rpc, signup } from "./helpers"; +import { captureScreenshot, completeOnboarding, rpc, signup } from "./helpers"; test("onboarding names the first Oo and shows it in chat", async ({ page }) => { const stamp = Date.now(); @@ -88,3 +88,16 @@ test.describe("mobile shell", () => { await expect(page.getByTestId("open-navigation")).toBeFocused(); }); }); + +test("main conversation opens its lead's computer", async ({ page }, testInfo) => { + const stamp = Date.now(); + await signup(page, `main-computer-${stamp}@rakazo.test`, "password12", "Screen"); + await completeOnboarding(page, undefined, { mainConversation: true }); + await expect(page).toHaveURL(/\/app\/g\//); + await page.getByTitle("Agent computer").click(); + await expect(page).not.toHaveURL(/\/app\/g\//); + const sidePanel = page.getByTestId("side-panel"); + await expect(sidePanel).toHaveAttribute("data-panel", "computer"); + await expect(sidePanel.getByTestId("computer-preview")).toBeVisible(); + await captureScreenshot(page, testInfo, "main-conversation-computer"); +}); diff --git a/apps/web/src/lib/bot-persona.test.ts b/apps/web/src/lib/bot-persona.test.ts index ee49989..6d4dfd9 100644 --- a/apps/web/src/lib/bot-persona.test.ts +++ b/apps/web/src/lib/bot-persona.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { beforeAll, describe, expect, it } from "vitest"; import { extractVoiceAwareness, narrateAwarenessForPersona, @@ -8,6 +8,12 @@ import { resolvePersonaArchetype, resolveTextStagePhase, } from "./bot-persona"; +import { i18n } from "./i18n"; + +beforeAll(() => { + i18n.load("en", {}); + i18n.activate("en"); +}); describe("resolvePersonaArchetype", () => { it("detects Steve Jobs CTO template alignment", () => { diff --git a/apps/web/src/lib/bot-persona.ts b/apps/web/src/lib/bot-persona.ts index 04b5dfa..f063ac3 100644 --- a/apps/web/src/lib/bot-persona.ts +++ b/apps/web/src/lib/bot-persona.ts @@ -3,6 +3,7 @@ import { type EvooPose, mapPersonaArchetypeToIdlePose, mapVoicePhaseToPose } fro import type { StagePresencePhase } from "../components/stage/StageHero"; import type { VoicePhase } from "../components/voice/VoiceStage"; import type { GroupSpark } from "./group-stage"; +import { i18n } from "./i18n"; /** * Template-aligned archetypes — derived from bot fields, not a DB column. @@ -354,7 +355,7 @@ export function narrateAwarenessForPersona( profile: BotPersonaProfile, event: VoiceAwarenessEvent, ): string { - const specialist = event.targetName ?? "a specialist"; + const specialist = event.targetName ?? i18n._({ id: "a specialist", message: "a specialist" }); const task = event.detail ? truncate(event.detail, 96) : ""; switch (event.kind) { case "subagent": @@ -373,17 +374,69 @@ export function narrateAwarenessForPersona( function narrateSubagent(archetype: PersonaArchetype, name: string, task: string): string { switch (archetype) { case "cto-executive": - return task ? `I'm casting ${name} on this — ${task}` : `I'm bringing ${name} into the room.`; + return task + ? i18n._({ + id: "I'm casting {name} on this — {task}", + message: "I'm casting {name} on this — {task}", + values: { name, task }, + }) + : i18n._({ + id: "I'm bringing {name} into the room.", + message: "I'm bringing {name} into the room.", + values: { name }, + }); case "chief-operator": - return task ? `Routing to ${name}: ${task}` : `Looping in ${name}.`; + return task + ? i18n._({ + id: "Routing to {name}: {task}", + message: "Routing to {name}: {task}", + values: { name, task }, + }) + : i18n._({ id: "Looping in {name}.", message: "Looping in {name}.", values: { name } }); case "builder": - return task ? `Spinning up ${name} for ${task}` : `Assembling ${name}.`; + return task + ? i18n._({ + id: "Spinning up {name} for {task}", + message: "Spinning up {name} for {task}", + values: { name, task }, + }) + : i18n._({ id: "Assembling {name}.", message: "Assembling {name}.", values: { name } }); case "quant": - return task ? `Running ${name} on the numbers — ${task}` : `${name} is on the data.`; + return task + ? i18n._({ + id: "Running {name} on the numbers — {task}", + message: "Running {name} on the numbers — {task}", + values: { name, task }, + }) + : i18n._({ + id: "{name} is on the data.", + message: "{name} is on the data.", + values: { name }, + }); case "engineer": - return task ? `Handing off to ${name}: ${task}` : `${name} is taking the keyboard.`; + return task + ? i18n._({ + id: "Handing off to {name}: {task}", + message: "Handing off to {name}: {task}", + values: { name, task }, + }) + : i18n._({ + id: "{name} is taking the keyboard.", + message: "{name} is taking the keyboard.", + values: { name }, + }); default: - return task ? `${name} is helping with ${task}` : `${name} joined the thread.`; + return task + ? i18n._({ + id: "{name} is helping with {task}", + message: "{name} is helping with {task}", + values: { name, task }, + }) + : i18n._({ + id: "{name} joined the thread.", + message: "{name} joined the thread.", + values: { name }, + }); } } @@ -391,11 +444,41 @@ function narrateHandoff(archetype: PersonaArchetype, target: string, text: strin const line = text ? truncate(text, 72) : ""; switch (archetype) { case "cto-executive": - return line ? `Passing the baton to ${target} — ${line}` : `This goes to ${target} now.`; + return line + ? i18n._({ + id: "Passing the baton to {target} — {line}", + message: "Passing the baton to {target} — {line}", + values: { target, line }, + }) + : i18n._({ + id: "This goes to {target} now.", + message: "This goes to {target} now.", + values: { target }, + }); case "chief-operator": - return line ? `Handoff to ${target}: ${line}` : `Transferring to ${target}.`; + return line + ? i18n._({ + id: "Handoff to {target}: {line}", + message: "Handoff to {target}: {line}", + values: { target, line }, + }) + : i18n._({ + id: "Transferring to {target}.", + message: "Transferring to {target}.", + values: { target }, + }); default: - return line ? `Handing over to ${target}: ${line}` : `Connecting you with ${target}.`; + return line + ? i18n._({ + id: "Handing over to {target}: {line}", + message: "Handing over to {target}: {line}", + values: { target, line }, + }) + : i18n._({ + id: "Connecting you with {target}.", + message: "Connecting you with {target}.", + values: { target }, + }); } } @@ -403,11 +486,23 @@ function narrateDelegation(archetype: PersonaArchetype, target: string, text: st const line = truncate(text, 72); switch (archetype) { case "cto-executive": - return `I asked ${target} to ${line}`; + return i18n._({ + id: "I asked {target} to {line}", + message: "I asked {target} to {line}", + values: { target, line }, + }); case "chief-operator": - return `Delegated to ${target}: ${line}`; + return i18n._({ + id: "Delegated to {target}: {line}", + message: "Delegated to {target}: {line}", + values: { target, line }, + }); default: - return `Asked ${target}: ${line}`; + return i18n._({ + id: "Asked {target}: {line}", + message: "Asked {target}: {line}", + values: { target, line }, + }); } } @@ -415,17 +510,77 @@ function narratePeerReply(archetype: PersonaArchetype, name: string, task: strin const line = task ? truncate(task, 72) : ""; switch (archetype) { case "cto-executive": - return line ? `${name} pushed back — ${line}` : `${name} jumped in with a take.`; + return line + ? i18n._({ + id: "{name} pushed back — {line}", + message: "{name} pushed back — {line}", + values: { name, line }, + }) + : i18n._({ + id: "{name} jumped in with a take.", + message: "{name} jumped in with a take.", + values: { name }, + }); case "chief-operator": - return line ? `${name} riffed: ${line}` : `${name} is weighing in.`; + return line + ? i18n._({ + id: "{name} riffed: {line}", + message: "{name} riffed: {line}", + values: { name, line }, + }) + : i18n._({ + id: "{name} is weighing in.", + message: "{name} is weighing in.", + values: { name }, + }); case "builder": - return line ? `${name} geeked out: ${line}` : `${name} couldn't resist chiming in.`; + return line + ? i18n._({ + id: "{name} geeked out: {line}", + message: "{name} geeked out: {line}", + values: { name, line }, + }) + : i18n._({ + id: "{name} couldn't resist chiming in.", + message: "{name} couldn't resist chiming in.", + values: { name }, + }); case "quant": - return line ? `${name} on the numbers: ${line}` : `${name} has a counter-read.`; + return line + ? i18n._({ + id: "{name} on the numbers: {line}", + message: "{name} on the numbers: {line}", + values: { name, line }, + }) + : i18n._({ + id: "{name} has a counter-read.", + message: "{name} has a counter-read.", + values: { name }, + }); case "engineer": - return line ? `${name} fired back: ${line}` : `${name} joined the thread.`; + return line + ? i18n._({ + id: "{name} fired back: {line}", + message: "{name} fired back: {line}", + values: { name, line }, + }) + : i18n._({ + id: "{name} joined the thread.", + message: "{name} joined the thread.", + values: { name }, + }); default: - return line ? `${name} replied — ${line}` : `${name} is riffing back…`; + return line + ? i18n._({ + id: "{name} replied — {line}", + message: "{name} replied — {line}", + values: { name, line }, + }) + : i18n._({ + id: "{name} is riffing back…", + message: "{name} is riffing back…", + values: { name }, + }); } } @@ -438,7 +593,13 @@ export function narrateGroupSpark(spark: GroupSpark, speakerArchetype?: PersonaA case "handoff": return narrateHandoff(archetype, spark.actorName, spark.detail ?? ""); case "multi-working": - return spark.detail ?? "The crew is on it — more than any one Oo alone."; + return ( + spark.detail ?? + i18n._({ + id: "The crew is on it — more than any one Oo alone.", + message: "The crew is on it — more than any one Oo alone.", + }) + ); default: { const never: never = spark.kind; return never; diff --git a/apps/web/src/locales/de/messages.po b/apps/web/src/locales/de/messages.po index 260de3a..6997118 100644 --- a/apps/web/src/locales/de/messages.po +++ b/apps/web/src/locales/de/messages.po @@ -257,6 +257,11 @@ msgstr "{memberCount, plural, one {# Agent eingeladen} other {# Agenten eingelad msgid "{minutes}m ago" msgstr "vor {minutes} Min." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "{name} musste einfach mitreden." + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} ist fehlgeschlagen" msgid "{name} finished" msgstr "{name} ist fertig" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "{name} hält dagegen: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "{name} ist begeistert: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "{name} sieht es anders." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "{name} hilft bei {task}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "{name} sitzt an den Daten." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "{name} antwortet…" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "{name} übernimmt die Tastatur." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "{name} bringt sich ein." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "{name} ist dazugekommen." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "{name} hat eine Meinung dazu." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "{name} zu den Zahlen: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "{name} widerspricht – {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "{name} antwortet – {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "{name} ergänzt: {line}" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "1:1-Unterhaltung mit {title}" msgid "1:1 with {0}" msgstr "1:1 mit {0}" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "Verstärkung" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "Über Gruppen" @@ -735,6 +815,16 @@ msgstr "Bitte den Serverbesitzer, diesen Anbieter zu konfigurieren." msgid "Ask within my scope — I won't just yes you." msgstr "Frag in meinem Fachgebiet — ich sage nicht einfach Ja." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "{target} gefragt: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "Hole {name} dazu." + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "Verbundene App" msgid "Connected. Its tools are available from your next message." msgstr "Verbunden. Die Tools sind ab deiner nächsten Nachricht verfügbar." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "Ich verbinde dich mit {target}." + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "Standard ({0})" msgid "Delegated" msgstr "Delegiert" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "An {target} delegiert: {line}" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "Gruppen" msgid "Habits" msgstr "Gewohnheiten" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "Übergebe an {name}: {task}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "Übergebe an {target}: {line}" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "Übergabe" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "Übergabe an {target}: {line}" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "Auflegen" @@ -2754,6 +2869,21 @@ msgstr "Wie soll dein Oo klingen, wenn es Antworten vorliest?" msgid "How to check" msgstr "So wird geprüft" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "Ich habe {target} gebeten: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "Ich hole {name} dazu." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "Ich setze {name} darauf an – {task}" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Ich bin fertig" @@ -3079,6 +3209,11 @@ msgstr "Look-Varianten" msgid "Looking" msgstr "Suche läuft" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "Ich ziehe {name} hinzu." + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "Zurückstellen" msgid "Party hat" msgstr "Partyhut" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "Ich gebe an {target} ab – {line}" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "Routine" msgid "Routines" msgstr "Routinen" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "Weiter an {name}: {task}" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "Ausführen um" @@ -4340,6 +4485,11 @@ msgstr "Läuft" msgid "Running · Stop" msgstr "Wird ausgeführt · Stoppen" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "{name} rechnet nach – {task}" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "Rechne nach…" @@ -4754,6 +4904,11 @@ msgstr "Wesen" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "Die Spracherkennung ist blockiert. Erlaube das Mikrofon und schalte das Diktieren in den Systemeinstellungen ein." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "Starte {name} für {task}" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "Standard" @@ -4973,6 +5128,11 @@ msgstr "Testlauf" msgid "The API did not come back. Refresh this page." msgstr "Die API ist nicht zurückgekommen. Lade diese Seite neu." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "Das Team ist dran." + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "Der ausgewählte Erinnerungsanbieter ist in diesem Build nicht verfügbar." @@ -5010,6 +5170,11 @@ msgstr "dieser Computer" msgid "This file is not valid UTF-8 Markdown." msgstr "Diese Datei ist kein gültiges UTF-8-Markdown." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "Das übernimmt jetzt {target}." + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "dieser Mac" @@ -5132,6 +5297,11 @@ msgstr "Transkription" msgid "Transcription request timed out." msgstr "Die Transkription hat zu lange gedauert." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "Ich übergebe an {target}." + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "Wie eine Person behandeln" diff --git a/apps/web/src/locales/en/messages.po b/apps/web/src/locales/en/messages.po index a0b1b88..634e39c 100644 --- a/apps/web/src/locales/en/messages.po +++ b/apps/web/src/locales/en/messages.po @@ -257,6 +257,11 @@ msgstr "{memberCount, plural, one {# agent invited} other {# agents invited}}" msgid "{minutes}m ago" msgstr "{minutes}m ago" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "{name} couldn't resist chiming in." + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} failed" msgid "{name} finished" msgstr "{name} finished" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "{name} fired back: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "{name} geeked out: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "{name} has a counter-read." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "{name} is helping with {task}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "{name} is on the data." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "{name} is riffing back…" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "{name} is taking the keyboard." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "{name} is weighing in." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "{name} joined the thread." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "{name} jumped in with a take." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "{name} on the numbers: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "{name} pushed back — {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "{name} replied — {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "{name} riffed: {line}" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "1:1 conversation with {title}" msgid "1:1 with {0}" msgstr "1:1 with {0}" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "a specialist" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "About groups" @@ -735,6 +815,16 @@ msgstr "Ask the server owner to configure this provider." msgid "Ask within my scope — I won't just yes you." msgstr "Ask within my scope — I won't just yes you." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "Asked {target}: {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "Assembling {name}." + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "Connected app" msgid "Connected. Its tools are available from your next message." msgstr "Connected. Its tools are available from your next message." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "Connecting you with {target}." + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "Default ({0})" msgid "Delegated" msgstr "Delegated" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "Delegated to {target}: {line}" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "Groups" msgid "Habits" msgstr "Habits" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "Handing off to {name}: {task}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "Handing over to {target}: {line}" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "Handoff" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "Handoff to {target}: {line}" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "Hang up" @@ -2754,6 +2869,21 @@ msgstr "How should your Oo sound when reading replies aloud?" msgid "How to check" msgstr "How to check" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "I asked {target} to {line}" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "I'm bringing {name} into the room." + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "I'm casting {name} on this — {task}" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "I’m done" @@ -3079,6 +3209,11 @@ msgstr "Look variants" msgid "Looking" msgstr "Looking" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "Looping in {name}." + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "Park" msgid "Party hat" msgstr "Party hat" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "Passing the baton to {target} — {line}" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "Routine" msgid "Routines" msgstr "Routines" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "Routing to {name}: {task}" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "Run at" @@ -4340,6 +4485,11 @@ msgstr "Running" msgid "Running · Stop" msgstr "Running · Stop" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "Running {name} on the numbers — {task}" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "Running the numbers…" @@ -4754,6 +4904,11 @@ msgstr "Species" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "Spinning up {name} for {task}" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "Standard" @@ -4973,6 +5128,11 @@ msgstr "Test run" msgid "The API did not come back. Refresh this page." msgstr "The API did not come back. Refresh this page." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "The crew is on it — more than any one Oo alone." + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "The selected memory provider is not available in this build." @@ -5010,6 +5170,11 @@ msgstr "this computer" msgid "This file is not valid UTF-8 Markdown." msgstr "This file is not valid UTF-8 Markdown." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "This goes to {target} now." + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "this Mac" @@ -5132,6 +5297,11 @@ msgstr "Transcription" msgid "Transcription request timed out." msgstr "Transcription request timed out." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "Transferring to {target}." + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "Treat like a person" diff --git a/apps/web/src/locales/es/messages.po b/apps/web/src/locales/es/messages.po index 9f4e3b9..74b2b28 100644 --- a/apps/web/src/locales/es/messages.po +++ b/apps/web/src/locales/es/messages.po @@ -257,6 +257,11 @@ msgstr "" msgid "{minutes}m ago" msgstr "hace {minutes} min" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} falló" msgid "{name} finished" msgstr "{name} terminó" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "" msgid "1:1 with {0}" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "" @@ -735,6 +815,16 @@ msgstr "" msgid "Ask within my scope — I won't just yes you." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "" + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "" msgid "Connected. Its tools are available from your next message." msgstr "Conectado: sus herramientas estarán disponibles desde tu próximo mensaje." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "" + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "Predeterminado ({0})" msgid "Delegated" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "" msgid "Habits" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "Colgar" @@ -2754,6 +2869,21 @@ msgstr "" msgid "How to check" msgstr "Cómo comprobar" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Listo" @@ -3079,6 +3209,11 @@ msgstr "" msgid "Looking" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "" + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "Aparcar" msgid "Party hat" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "Rutina" msgid "Routines" msgstr "Rutinas" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "Ejecutar a las" @@ -4340,6 +4485,11 @@ msgstr "En ejecución" msgid "Running · Stop" msgstr "En ejecución · Detener" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "" @@ -4754,6 +4904,11 @@ msgstr "" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "" @@ -4973,6 +5128,11 @@ msgstr "Ejecución de prueba" msgid "The API did not come back. Refresh this page." msgstr "La API no volvió. Actualiza esta página." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "" + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "El proveedor de memoria seleccionado no está disponible en esta build." @@ -5010,6 +5170,11 @@ msgstr "esta computadora" msgid "This file is not valid UTF-8 Markdown." msgstr "Este archivo no es Markdown UTF-8 válido." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "" + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "esta Mac" @@ -5132,6 +5297,11 @@ msgstr "" msgid "Transcription request timed out." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "" + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "" diff --git a/apps/web/src/locales/hi/messages.po b/apps/web/src/locales/hi/messages.po index cf85a9c..4e84a9c 100644 --- a/apps/web/src/locales/hi/messages.po +++ b/apps/web/src/locales/hi/messages.po @@ -257,6 +257,11 @@ msgstr "" msgid "{minutes}m ago" msgstr "{minutes} मिनट पहले" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} विफल रहा" msgid "{name} finished" msgstr "{name} पूरा हुआ" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "" msgid "1:1 with {0}" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "" @@ -735,6 +815,16 @@ msgstr "" msgid "Ask within my scope — I won't just yes you." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "" + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "" msgid "Connected. Its tools are available from your next message." msgstr "कनेक्टेड। इसके टूल आपके अगले संदेश से उपलब्ध हैं।" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "" + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "डिफ़ॉल्ट ({0})" msgid "Delegated" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "" msgid "Habits" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "कॉल समाप्त करें" @@ -2754,6 +2869,21 @@ msgstr "" msgid "How to check" msgstr "जांच कैसे करें" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "मेरा काम हो गया" @@ -3079,6 +3209,11 @@ msgstr "" msgid "Looking" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "" + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "पार्क करें" msgid "Party hat" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "रूटीन" msgid "Routines" msgstr "रूटीन्स" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "" @@ -4340,6 +4485,11 @@ msgstr "चल रहा है" msgid "Running · Stop" msgstr "चल रहा है · रोकें" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "" @@ -4754,6 +4904,11 @@ msgstr "" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "" @@ -4973,6 +5128,11 @@ msgstr "" msgid "The API did not come back. Refresh this page." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "" + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "चयनित मेमोरी प्रोवाइडर इस बिल्ड में उपलब्ध नहीं है।" @@ -5010,6 +5170,11 @@ msgstr "यह कंप्यूटर" msgid "This file is not valid UTF-8 Markdown." msgstr "यह फ़ाइल मान्य UTF-8 Markdown नहीं है।" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "" + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "यह Mac" @@ -5132,6 +5297,11 @@ msgstr "" msgid "Transcription request timed out." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "" + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "" diff --git a/apps/web/src/locales/ko/messages.po b/apps/web/src/locales/ko/messages.po index 0da0535..af3d86f 100644 --- a/apps/web/src/locales/ko/messages.po +++ b/apps/web/src/locales/ko/messages.po @@ -257,6 +257,11 @@ msgstr "" msgid "{minutes}m ago" msgstr "{minutes}분 전" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} 실패" msgid "{name} finished" msgstr "{name} 완료" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "" msgid "1:1 with {0}" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "" @@ -735,6 +815,16 @@ msgstr "" msgid "Ask within my scope — I won't just yes you." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "" + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "" msgid "Connected. Its tools are available from your next message." msgstr "연결되었습니다. 다음 메시지부터 이 도구를 사용할 수 있습니다." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "" + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "기본값 ({0})" msgid "Delegated" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "" msgid "Habits" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "통화 종료" @@ -2754,6 +2869,21 @@ msgstr "" msgid "How to check" msgstr "완료 확인 방법" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "조작 끝내기" @@ -3079,6 +3209,11 @@ msgstr "" msgid "Looking" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "" + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "보류" msgid "Party hat" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "자동 실행" msgid "Routines" msgstr "자동 실행" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "실행 시간" @@ -4340,6 +4485,11 @@ msgstr "실행 중" msgid "Running · Stop" msgstr "실행 중 · 중지" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "" @@ -4754,6 +4904,11 @@ msgstr "" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "" @@ -4973,6 +5128,11 @@ msgstr "테스트 실행" msgid "The API did not come back. Refresh this page." msgstr "API가 다시 작동하지 않습니다. 이 페이지를 새로 고침하세요." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "" + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "선택한 기억 서비스는 현재 빌드에서 사용할 수 없습니다." @@ -5010,6 +5170,11 @@ msgstr "이 컴퓨터" msgid "This file is not valid UTF-8 Markdown." msgstr "이 파일은 올바른 UTF-8 Markdown 형식이 아닙니다." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "" + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "이 Mac" @@ -5132,6 +5297,11 @@ msgstr "" msgid "Transcription request timed out." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "" + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "" diff --git a/apps/web/src/locales/pt-BR/messages.po b/apps/web/src/locales/pt-BR/messages.po index 219e406..c09cadf 100644 --- a/apps/web/src/locales/pt-BR/messages.po +++ b/apps/web/src/locales/pt-BR/messages.po @@ -257,6 +257,11 @@ msgstr "" msgid "{minutes}m ago" msgstr "{minutes}m atrás" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} falhou" msgid "{name} finished" msgstr "{name} terminou" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "" msgid "1:1 with {0}" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "" @@ -735,6 +815,16 @@ msgstr "" msgid "Ask within my scope — I won't just yes you." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "" + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "" msgid "Connected. Its tools are available from your next message." msgstr "Conectado. Suas ferramentas estão disponíveis na sua próxima mensagem." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "" + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "Padrão ({0})" msgid "Delegated" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "" msgid "Habits" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "Desligar" @@ -2754,6 +2869,21 @@ msgstr "" msgid "How to check" msgstr "Como verificar" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Eu terminei." @@ -3079,6 +3209,11 @@ msgstr "" msgid "Looking" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "" + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "Suspender" msgid "Party hat" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "Rotina" msgid "Routines" msgstr "Rotinas" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "" @@ -4340,6 +4485,11 @@ msgstr "Em execução" msgid "Running · Stop" msgstr "Em execução · Parar" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "" @@ -4754,6 +4904,11 @@ msgstr "" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "" @@ -4973,6 +5128,11 @@ msgstr "" msgid "The API did not come back. Refresh this page." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "" + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "O provedor de memória selecionado não está disponível nesta compilação." @@ -5010,6 +5170,11 @@ msgstr "Este computador" msgid "This file is not valid UTF-8 Markdown." msgstr "Este arquivo não é válido UTF-8 Markdown." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "" + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "esse Mac" @@ -5132,6 +5297,11 @@ msgstr "" msgid "Transcription request timed out." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "" + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "" diff --git a/apps/web/src/locales/ru/messages.po b/apps/web/src/locales/ru/messages.po index c47c8c4..b1abe9c 100644 --- a/apps/web/src/locales/ru/messages.po +++ b/apps/web/src/locales/ru/messages.po @@ -257,6 +257,11 @@ msgstr "" msgid "{minutes}m ago" msgstr "{minutes} мин назад" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name}: ошибка" msgid "{name} finished" msgstr "{name}: завершено" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "" msgid "1:1 with {0}" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "О группах" @@ -735,6 +815,16 @@ msgstr "Попросите владельца сервера настроить msgid "Ask within my scope — I won't just yes you." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "" + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "" msgid "Connected. Its tools are available from your next message." msgstr "Подключено. Его инструменты доступны из вашего следующего сообщения." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "" + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "По умолчанию ({0})" msgid "Delegated" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "Группы" msgid "Habits" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "Завершить звонок" @@ -2754,6 +2869,21 @@ msgstr "" msgid "How to check" msgstr "Как проверить" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Готово" @@ -3079,6 +3209,11 @@ msgstr "" msgid "Looking" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "" + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "Приостановить" msgid "Party hat" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "Задача" msgid "Routines" msgstr "Задачи" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "Запустить в" @@ -4340,6 +4485,11 @@ msgstr "Выполняется" msgid "Running · Stop" msgstr "Выполняется · Остановить" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "" @@ -4754,6 +4904,11 @@ msgstr "" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "" @@ -4973,6 +5128,11 @@ msgstr "Тестовый запуск" msgid "The API did not come back. Refresh this page." msgstr "API не вернулся. Обновите эту страницу." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "" + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "Выбранный поставщик памяти недоступен в этой сборке." @@ -5010,6 +5170,11 @@ msgstr "этот компьютер" msgid "This file is not valid UTF-8 Markdown." msgstr "Этот файл недействителен в формате UTF-8 Markdown." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "" + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "этот Mac" @@ -5132,6 +5297,11 @@ msgstr "" msgid "Transcription request timed out." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "" + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "Считать человеком" diff --git a/apps/web/src/locales/tr/messages.po b/apps/web/src/locales/tr/messages.po index e4a4afb..11b2fe2 100644 --- a/apps/web/src/locales/tr/messages.po +++ b/apps/web/src/locales/tr/messages.po @@ -257,6 +257,11 @@ msgstr "" msgid "{minutes}m ago" msgstr "{minutes} dk önce" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} başarısız oldu" msgid "{name} finished" msgstr "{name} çalışmasını tamamladı" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "" msgid "1:1 with {0}" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "" @@ -735,6 +815,16 @@ msgstr "" msgid "Ask within my scope — I won't just yes you." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "" + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "" msgid "Connected. Its tools are available from your next message." msgstr "Bağlandı. Araçları bir sonraki mesajından itibaren kullanılabilir." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "" + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "Varsayılan ({0})" msgid "Delegated" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "" msgid "Habits" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "Aramayı sonlandır" @@ -2754,6 +2869,21 @@ msgstr "" msgid "How to check" msgstr "Nasıl kontrol edilir" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "Bitirdim" @@ -3079,6 +3209,11 @@ msgstr "" msgid "Looking" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "" + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "Beklet" msgid "Party hat" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "Rutin" msgid "Routines" msgstr "Rutinler" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "" @@ -4340,6 +4485,11 @@ msgstr "Çalışıyor" msgid "Running · Stop" msgstr "Çalışıyor · Durdur" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "" @@ -4754,6 +4904,11 @@ msgstr "" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "" @@ -4973,6 +5128,11 @@ msgstr "" msgid "The API did not come back. Refresh this page." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "" + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "Seçilen hafıza sağlayıcısı bu sürümde kullanılamıyor." @@ -5010,6 +5170,11 @@ msgstr "bu bilgisayar" msgid "This file is not valid UTF-8 Markdown." msgstr "Bu dosya geçerli bir UTF-8 Markdown değil." +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "" + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "bu Mac" @@ -5132,6 +5297,11 @@ msgstr "" msgid "Transcription request timed out." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "" + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "" diff --git a/apps/web/src/locales/zh-CN/messages.po b/apps/web/src/locales/zh-CN/messages.po index 1ede177..92e1a7e 100644 --- a/apps/web/src/locales/zh-CN/messages.po +++ b/apps/web/src/locales/zh-CN/messages.po @@ -257,6 +257,11 @@ msgstr "" msgid "{minutes}m ago" msgstr "{minutes} 分钟前" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} couldn't resist chiming in." +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} failed" @@ -267,6 +272,76 @@ msgstr "{name} 失败" msgid "{name} finished" msgstr "{name} 已完成" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} fired back: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} geeked out: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} has a counter-read." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is helping with {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is on the data." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is riffing back…" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is taking the keyboard." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} is weighing in." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} joined the thread." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} jumped in with a take." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} on the numbers: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} pushed back — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} replied — {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "{name} riffed: {line}" +msgstr "" + #. js-lingui-explicit-id #: src/lib/browser-notifications.ts msgid "{name} stopped" @@ -323,6 +398,11 @@ msgstr "" msgid "1:1 with {0}" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "a specialist" +msgstr "" + #: src/pages/shell/bot-picker.tsx msgid "About groups" msgstr "" @@ -735,6 +815,16 @@ msgstr "" msgid "Ask within my scope — I won't just yes you." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Asked {target}: {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Assembling {name}." +msgstr "" + #. placeholder {0}: preset.time #: src/pages/RoutineSchedule.tsx msgid "at {0}" @@ -1431,6 +1521,11 @@ msgstr "" msgid "Connected. Its tools are available from your next message." msgstr "已连接,下一条消息起即可使用其工具。" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Connecting you with {target}." +msgstr "" + #: src/components/integrations/IntegrationSetup.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/memory-providers/BuiltinSettingsForm.tsx @@ -2000,6 +2095,11 @@ msgstr "默认({0})" msgid "Delegated" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Delegated to {target}: {line}" +msgstr "" + #: src/components/UserProfileSettings.tsx #: src/pages/BotContextMenu.tsx #: src/pages/KnowledgeSection.tsx @@ -2647,10 +2747,25 @@ msgstr "" msgid "Habits" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing off to {name}: {task}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handing over to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceAwarenessStrip.tsx msgid "Handoff" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Handoff to {target}: {line}" +msgstr "" + #: src/components/voice/VoiceStage.tsx msgid "Hang up" msgstr "挂断" @@ -2754,6 +2869,21 @@ msgstr "" msgid "How to check" msgstr "如何检查" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I asked {target} to {line}" +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm bringing {name} into the room." +msgstr "" + +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "I'm casting {name} on this — {task}" +msgstr "" + #: src/pages/shell/computer-screen.tsx msgid "I’m done" msgstr "我做完了" @@ -3079,6 +3209,11 @@ msgstr "" msgid "Looking" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Looping in {name}." +msgstr "" + #: src/pages/ModelSettingsOverlay.tsx #: src/pages/shell/bot-panel.tsx msgid "Low" @@ -3785,6 +3920,11 @@ msgstr "搁置" msgid "Party hat" msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Passing the baton to {target} — {line}" +msgstr "" + #: src/components/AskCard.tsx #: src/pages/AccountSettingsOverlay.tsx #: src/pages/Auth.tsx @@ -4315,6 +4455,11 @@ msgstr "例行任务" msgid "Routines" msgstr "例行任务" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Routing to {name}: {task}" +msgstr "" + #: src/pages/RoutineEditor.tsx msgid "Run at" msgstr "运行时间" @@ -4340,6 +4485,11 @@ msgstr "运行中" msgid "Running · Stop" msgstr "运行中 · 停止" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Running {name} on the numbers — {task}" +msgstr "" + #: src/lib/voice-persona-copy.ts msgid "Running the numbers…" msgstr "" @@ -4754,6 +4904,11 @@ msgstr "" msgid "Speech recognition is blocked. Allow the microphone and turn on dictation in your system settings." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Spinning up {name} for {task}" +msgstr "" + #: src/lib/model-tier-label.ts msgid "Standard" msgstr "" @@ -4973,6 +5128,11 @@ msgstr "测试运行" msgid "The API did not come back. Refresh this page." msgstr "API 未恢复。请刷新此页面。" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "The crew is on it — more than any one Oo alone." +msgstr "" + #: src/pages/MemorySettingsOverlay.tsx msgid "The selected memory provider is not available in this build." msgstr "所选记忆提供方在此构建中不可用。" @@ -5010,6 +5170,11 @@ msgstr "这台电脑" msgid "This file is not valid UTF-8 Markdown." msgstr "此文件不是有效的 UTF-8 Markdown。" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "This goes to {target} now." +msgstr "" + #: src/pages/HostComputerPrompt.tsx msgid "this Mac" msgstr "这台 Mac" @@ -5132,6 +5297,11 @@ msgstr "" msgid "Transcription request timed out." msgstr "" +#. js-lingui-explicit-id +#: src/lib/bot-persona.ts +msgid "Transferring to {target}." +msgstr "" + #: src/pages/ExternalConversationSettings.tsx msgid "Treat like a person" msgstr "" diff --git a/apps/web/src/pages/Shell.tsx b/apps/web/src/pages/Shell.tsx index 35de826..38c3bd6 100644 --- a/apps/web/src/pages/Shell.tsx +++ b/apps/web/src/pages/Shell.tsx @@ -1636,9 +1636,21 @@ export function ShellPage() { const handleRunErrorPresented = useCallback((runId: string) => { rememberSeenRunErrorId(runId); }, []); + const groupComputerBotId = + inGroup && activeSnapshot?.leadBotId && bots.some((bot) => bot.id === activeSnapshot.leadBotId) + ? activeSnapshot.leadBotId + : undefined; + // A bot message without a sender speaks for the conversation's own bot, never as an anonymous one. + const defaultSpeakerId = inGroup ? activeSnapshot?.leadBotId : active?.id; const transcriptMessages = useMemo( - () => userVisibleMessages(activeSnapshot?.messages ?? [], { includePeerReceipts: true }), - [activeSnapshot?.messages], + () => + userVisibleMessages(activeSnapshot?.messages ?? [], { includePeerReceipts: true }).map( + (message) => + message.role === "bot" && !message.botId && defaultSpeakerId + ? { ...message, botId: defaultSpeakerId } + : message, + ), + [activeSnapshot?.messages, defaultSpeakerId], ); const transcriptArtifactTarget = useMemo( () => (inGroup ? { groupId: groupId ?? "" } : { botId: active?.id ?? "" }), @@ -1823,9 +1835,8 @@ export function ShellPage() { const resolveTranscriptMemberName = useCallback( (botId: string | undefined) => - memberName(transcriptMembers, botId) ?? - (inGroup && botId ? knownBots.get(botId)?.name : undefined), - [inGroup, knownBots, transcriptMembers], + memberName(transcriptMembers, botId) ?? (botId ? knownBots.get(botId)?.name : undefined), + [knownBots, transcriptMembers], ); const replyTargetName = activeReplyTarget ? activeReplyTarget.role === "user" @@ -3315,12 +3326,18 @@ export function ShellPage() { > - {!inGroup && active ? ( + {active || groupComputerBotId ? (