refactor(web): extract ShellPage side panel and computer JSX into components
The side panel header, the computer preview and the full-window computer overlay were large inline blocks in ShellPage's render. Move-only: they are now SidePanelHeader, ComputerPanelPreview and FullscreenComputerOverlay in pages/shell, each with explicit props. The booting screen, the routine list and the create-bot modal stay where they are. DOM, classNames, test ids, aria attributes, handlers and messages are unchanged; the catalogs only update their file references. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MRtGG9ARfqqhma3t85Ro2u
This commit is contained in:
parent
3c678519a6
commit
0ab148ba03
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr "{0}, Hauptunterhaltung"
|
msgstr "{0}, Hauptunterhaltung"
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr "{0}s Bildschirm"
|
msgstr "{0}s Bildschirm"
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Bot"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "Bot"
|
msgstr "Bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Bot-Bildschirm"
|
msgstr "Bot-Bildschirm"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Bot-Bildschirmvorschau"
|
msgstr "Bot-Bildschirmvorschau"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "Schließen"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "Diagramm schließen"
|
msgstr "Diagramm schließen"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "Computer schließen"
|
msgstr "Computer schließen"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "Navigation schließen"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "Panel schließen"
|
msgstr "Panel schließen"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "Computer"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "Computer konnte nicht gestartet werden"
|
msgstr "Computer konnte nicht gestartet werden"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "Computer ist im Ruhezustand"
|
msgstr "Computer ist im Ruhezustand"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr "Ziele für dieses Projekt, unabhängig von Chat-Nachrichten. Unterhaltun
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Gruppe"
|
msgstr "Gruppe"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr "Braucht dich"
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr "Braucht dich"
|
msgstr "Braucht dich"
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr "Gelesen werden nur Datei- und Ordnernamen."
|
msgstr "Gelesen werden nur Datei- und Ordnernamen."
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Öffnen"
|
msgstr "Öffnen"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr "Unterhaltung öffnen"
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr "Im Browser öffnen"
|
msgstr "Im Browser öffnen"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "In vollständigem Fenster öffnen"
|
msgstr "In vollständigem Fenster öffnen"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr "Stimme einrichten"
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
@ -4259,7 +4260,7 @@ msgstr "Alle {0} anzeigen"
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr "Bots anzeigen"
|
msgstr "Bots anzeigen"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr "Computer anzeigen"
|
msgstr "Computer anzeigen"
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "Mehr anzeigen"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr "Passwort anzeigen"
|
msgstr "Passwort anzeigen"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "Einstellungen anzeigen"
|
msgstr "Einstellungen anzeigen"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "Schritte"
|
msgstr "Schritte"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "Stoppen"
|
msgstr "Stoppen"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "Du kannst diesen Tab schließen, wenn du nicht automatisch weitergeleite
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "Du kannst dieses Fenster schließen."
|
msgstr "Du kannst dieses Fenster schließen."
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "Du hast die Kontrolle"
|
msgstr "Du hast die Kontrolle"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr "{0}, main conversation"
|
msgstr "{0}, main conversation"
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr "{0}'s screen"
|
msgstr "{0}'s screen"
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Bot"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "Bot"
|
msgstr "Bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Bot screen"
|
msgstr "Bot screen"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Bot screen preview"
|
msgstr "Bot screen preview"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "Close"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "Close chart"
|
msgstr "Close chart"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "Close computer"
|
msgstr "Close computer"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "Close navigation"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "Close panel"
|
msgstr "Close panel"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "Computer"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "Computer failed to boot"
|
msgstr "Computer failed to boot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "Computer is asleep"
|
msgstr "Computer is asleep"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr "Goals for this project, separate from chat messages. Conversations are b
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Group"
|
msgstr "Group"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr "Needs you"
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr "Needs you"
|
msgstr "Needs you"
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr "Only file and folder names are read."
|
msgstr "Only file and folder names are read."
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Open"
|
msgstr "Open"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr "Open conversation"
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr "Open in browser"
|
msgstr "Open in browser"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "Open in full window"
|
msgstr "Open in full window"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr "Set up voice"
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Settings"
|
msgstr "Settings"
|
||||||
@ -4259,7 +4260,7 @@ msgstr "Show all {0}"
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr "Show bots"
|
msgstr "Show bots"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr "Show computer"
|
msgstr "Show computer"
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "Show more"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr "Show password"
|
msgstr "Show password"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "Show settings"
|
msgstr "Show settings"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "Steps"
|
msgstr "Steps"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "Stop"
|
msgstr "Stop"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "You can close this tab if it does not redirect automatically."
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "You can close this window."
|
msgstr "You can close this window."
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "You have control"
|
msgstr "You have control"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr "Pantalla de {0}"
|
msgstr "Pantalla de {0}"
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Bot"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "Bot"
|
msgstr "Bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Pantalla del bot"
|
msgstr "Pantalla del bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Vista previa de la pantalla del bot"
|
msgstr "Vista previa de la pantalla del bot"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "Cerrar"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "Cerrar gráfico"
|
msgstr "Cerrar gráfico"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "Cerrar computadora"
|
msgstr "Cerrar computadora"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "Cerrar navegación"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "Cerrar panel"
|
msgstr "Cerrar panel"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "Computadora"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "La computadora no pudo iniciarse"
|
msgstr "La computadora no pudo iniciarse"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "La computadora está en reposo"
|
msgstr "La computadora está en reposo"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr ""
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Grupo"
|
msgstr "Grupo"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr ""
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Abrir"
|
msgstr "Abrir"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr ""
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "Abrir en ventana completa"
|
msgstr "Abrir en ventana completa"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Configuración"
|
msgstr "Configuración"
|
||||||
@ -4259,7 +4260,7 @@ msgstr ""
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "Mostrar más"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr "Mostrar contraseña"
|
msgstr "Mostrar contraseña"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "Mostrar configuración"
|
msgstr "Mostrar configuración"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "Pasos"
|
msgstr "Pasos"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "Detener"
|
msgstr "Detener"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "Puedes cerrar esta pestaña si no redirige automáticamente."
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "Puedes cerrar esta ventana."
|
msgstr "Puedes cerrar esta ventana."
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "Tienes el control"
|
msgstr "Tienes el control"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "बॉट"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "बॉट"
|
msgstr "बॉट"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "बॉट स्क्रीन"
|
msgstr "बॉट स्क्रीन"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "बॉट स्क्रीन प्रीव्यू"
|
msgstr "बॉट स्क्रीन प्रीव्यू"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "बंद करें"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "चार्ट बंद करें"
|
msgstr "चार्ट बंद करें"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "कंप्यूटर बंद करें"
|
msgstr "कंप्यूटर बंद करें"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "नेविगेशन बंद करें"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "पैनल बंद करें"
|
msgstr "पैनल बंद करें"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "कंप्यूटर"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "कंप्यूटर शुरू नहीं हो सका"
|
msgstr "कंप्यूटर शुरू नहीं हो सका"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "कंप्यूटर निष्क्रिय है"
|
msgstr "कंप्यूटर निष्क्रिय है"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr ""
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "समूह"
|
msgstr "समूह"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr ""
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "खोलें"
|
msgstr "खोलें"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr ""
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "पूरी विंडो में खोलें"
|
msgstr "पूरी विंडो में खोलें"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "सेटिंग्स"
|
msgstr "सेटिंग्स"
|
||||||
@ -4259,7 +4260,7 @@ msgstr ""
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "और दिखाएँ"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "सेटिंग्स दिखाएं"
|
msgstr "सेटिंग्स दिखाएं"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "चरण"
|
msgstr "चरण"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "रोकें"
|
msgstr "रोकें"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "अगर यह अपने आप रीडायरेक्ट न
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "आप यह विंडो बंद कर सकते हैं।"
|
msgstr "आप यह विंडो बंद कर सकते हैं।"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "नियंत्रण आपके पास है"
|
msgstr "नियंत्रण आपके पास है"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr "{0}의 화면"
|
msgstr "{0}의 화면"
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Bot"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "봇"
|
msgstr "봇"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Bot 화면"
|
msgstr "Bot 화면"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Bot 화면 미리보기"
|
msgstr "Bot 화면 미리보기"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "닫기"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "차트 닫기"
|
msgstr "차트 닫기"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "컴퓨터 닫기"
|
msgstr "컴퓨터 닫기"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "메뉴 닫기"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "패널 닫기"
|
msgstr "패널 닫기"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "컴퓨터"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "컴퓨터를 시작하지 못했습니다"
|
msgstr "컴퓨터를 시작하지 못했습니다"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "컴퓨터가 절전 상태입니다"
|
msgstr "컴퓨터가 절전 상태입니다"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr ""
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "그룹"
|
msgstr "그룹"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr ""
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "열기"
|
msgstr "열기"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr ""
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "전체 창으로 열기"
|
msgstr "전체 창으로 열기"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "설정"
|
msgstr "설정"
|
||||||
@ -4259,7 +4260,7 @@ msgstr ""
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "더 보기"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr "비밀번호 표시"
|
msgstr "비밀번호 표시"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "설정 보기"
|
msgstr "설정 보기"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "실행 단계"
|
msgstr "실행 단계"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "중지"
|
msgstr "중지"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "자동으로 이동하지 않으면 이 탭을 닫아도 됩니다."
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "이 창을 닫아도 됩니다."
|
msgstr "이 창을 닫아도 됩니다."
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "직접 조작 중"
|
msgstr "직접 조작 중"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Bot"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "Bot"
|
msgstr "Bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Tela do bot"
|
msgstr "Tela do bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Pré-visualização da tela"
|
msgstr "Pré-visualização da tela"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "Fechar"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "Fechar gráfico"
|
msgstr "Fechar gráfico"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "Fechar computador"
|
msgstr "Fechar computador"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "Fechar navegação"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "Fechar painel"
|
msgstr "Fechar painel"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "Computador"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "Falha ao inicializar o computador"
|
msgstr "Falha ao inicializar o computador"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "O computador está dormindo"
|
msgstr "O computador está dormindo"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr ""
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Grupo"
|
msgstr "Grupo"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr ""
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Abrir"
|
msgstr "Abrir"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr ""
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "Abrir em janela cheia"
|
msgstr "Abrir em janela cheia"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Configurações"
|
msgstr "Configurações"
|
||||||
@ -4259,7 +4260,7 @@ msgstr ""
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "Mostrar mais"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "Mostrar configurações"
|
msgstr "Mostrar configurações"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "Passos"
|
msgstr "Passos"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "Parar"
|
msgstr "Parar"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "Você pode fechar esta guia se ela não for redirecionada automaticament
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "Você pode fechar esta janela."
|
msgstr "Você pode fechar esta janela."
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "Você tem o controle"
|
msgstr "Você tem o controle"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr "Экран {0}"
|
msgstr "Экран {0}"
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Бот"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "Бот"
|
msgstr "Бот"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Экран бота"
|
msgstr "Экран бота"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Предварительный просмотр экрана бота"
|
msgstr "Предварительный просмотр экрана бота"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "Закрыть"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "Закрыть график"
|
msgstr "Закрыть график"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "Закрыть компьютер"
|
msgstr "Закрыть компьютер"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "Закрыть навигацию"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "Закрыть панель"
|
msgstr "Закрыть панель"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "Компьютер"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "Компьютер не смог загрузиться"
|
msgstr "Компьютер не смог загрузиться"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "Компьютер спит"
|
msgstr "Компьютер спит"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr ""
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Группа"
|
msgstr "Группа"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr "Требуется ваше участие"
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr "Требуется ваше участие"
|
msgstr "Требуется ваше участие"
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Открыть"
|
msgstr "Открыть"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr ""
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "Открыть в полном окне"
|
msgstr "Открыть в полном окне"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Настройки"
|
msgstr "Настройки"
|
||||||
@ -4259,7 +4260,7 @@ msgstr ""
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr "Показать ботов"
|
msgstr "Показать ботов"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "Показать ещё"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr "Показать пароль"
|
msgstr "Показать пароль"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "Показать настройки"
|
msgstr "Показать настройки"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "Шаги"
|
msgstr "Шаги"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "Остановить"
|
msgstr "Остановить"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "Вы можете закрыть эту вкладку, если она
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "Вы можете закрыть это окно."
|
msgstr "Вы можете закрыть это окно."
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "Вы управляете"
|
msgstr "Вы управляете"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Bot"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "Bot"
|
msgstr "Bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Bot ekranı"
|
msgstr "Bot ekranı"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Bot ekranı önizlemesi"
|
msgstr "Bot ekranı önizlemesi"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "Kapat"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "Grafiği kapat"
|
msgstr "Grafiği kapat"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "Bilgisayarı kapat"
|
msgstr "Bilgisayarı kapat"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "Gezinmeyi kapat"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "Paneli kapat"
|
msgstr "Paneli kapat"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "Bilgisayar"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "Bilgisayar başlatılamadı"
|
msgstr "Bilgisayar başlatılamadı"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "Bilgisayar uykuda"
|
msgstr "Bilgisayar uykuda"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr ""
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Grup"
|
msgstr "Grup"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr ""
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Aç"
|
msgstr "Aç"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr ""
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "Tam pencerede aç"
|
msgstr "Tam pencerede aç"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Ayarlar"
|
msgstr "Ayarlar"
|
||||||
@ -4259,7 +4260,7 @@ msgstr ""
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "Daha fazla göster"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "Ayarları göster"
|
msgstr "Ayarları göster"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "Adımlar"
|
msgstr "Adımlar"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "Durdur"
|
msgstr "Durdur"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "Otomatik yönlendirilmezsen bu sekmeyi kapatabilirsin."
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "Bu pencereyi kapatabilirsin."
|
msgstr "Bu pencereyi kapatabilirsin."
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "Kontrol sende"
|
msgstr "Kontrol sende"
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ msgid "{0}, main conversation"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: active.name
|
#. placeholder {0}: active.name
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "{0}'s screen"
|
msgid "{0}'s screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -813,11 +813,11 @@ msgstr "Bot"
|
|||||||
msgid "Bot"
|
msgid "Bot"
|
||||||
msgstr "Bot"
|
msgstr "Bot"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Bot screen"
|
msgid "Bot screen"
|
||||||
msgstr "Bot 屏幕"
|
msgstr "Bot 屏幕"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Bot screen preview"
|
msgid "Bot screen preview"
|
||||||
msgstr "Bot 屏幕预览"
|
msgstr "Bot 屏幕预览"
|
||||||
|
|
||||||
@ -1089,7 +1089,7 @@ msgstr "关闭"
|
|||||||
msgid "Close chart"
|
msgid "Close chart"
|
||||||
msgstr "关闭图表"
|
msgstr "关闭图表"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Close computer"
|
msgid "Close computer"
|
||||||
msgstr "关闭电脑"
|
msgstr "关闭电脑"
|
||||||
|
|
||||||
@ -1129,7 +1129,7 @@ msgstr "关闭导航"
|
|||||||
|
|
||||||
#: src/components/ArtifactPane.tsx
|
#: src/components/ArtifactPane.tsx
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Close panel"
|
msgid "Close panel"
|
||||||
msgstr "关闭面板"
|
msgstr "关闭面板"
|
||||||
|
|
||||||
@ -1202,7 +1202,7 @@ msgstr "电脑"
|
|||||||
msgid "Computer failed to boot"
|
msgid "Computer failed to boot"
|
||||||
msgstr "电脑启动失败"
|
msgstr "电脑启动失败"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "Computer is asleep"
|
msgid "Computer is asleep"
|
||||||
msgstr "电脑已休眠"
|
msgstr "电脑已休眠"
|
||||||
|
|
||||||
@ -2401,6 +2401,7 @@ msgstr ""
|
|||||||
#: src/components/stage/OoStage.tsx
|
#: src/components/stage/OoStage.tsx
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/Shell.tsx
|
||||||
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "群组"
|
msgstr "群组"
|
||||||
|
|
||||||
@ -3098,7 +3099,7 @@ msgstr ""
|
|||||||
#: src/components/MainInbox.tsx
|
#: src/components/MainInbox.tsx
|
||||||
#: src/pages/ActivityList.tsx
|
#: src/pages/ActivityList.tsx
|
||||||
#: src/pages/HeuteBrief.tsx
|
#: src/pages/HeuteBrief.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Needs you"
|
msgid "Needs you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3392,7 +3393,7 @@ msgid "Only file and folder names are read."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/ScratchpadSection.tsx
|
#: src/pages/ScratchpadSection.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "打开"
|
msgstr "打开"
|
||||||
|
|
||||||
@ -3413,7 +3414,7 @@ msgstr ""
|
|||||||
msgid "Open in browser"
|
msgid "Open in browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/computer-panel-preview.tsx
|
||||||
msgid "Open in full window"
|
msgid "Open in full window"
|
||||||
msgstr "在完整窗口中打开"
|
msgstr "在完整窗口中打开"
|
||||||
|
|
||||||
@ -4202,7 +4203,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pages/MessagingSettingsOverlay.tsx
|
#: src/pages/MessagingSettingsOverlay.tsx
|
||||||
#: src/pages/SettingsOverlay.tsx
|
#: src/pages/SettingsOverlay.tsx
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
#: src/pages/shell/user-menu.tsx
|
#: src/pages/shell/user-menu.tsx
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "设置"
|
msgstr "设置"
|
||||||
@ -4259,7 +4260,7 @@ msgstr ""
|
|||||||
msgid "Show bots"
|
msgid "Show bots"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show computer"
|
msgid "Show computer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4275,7 +4276,7 @@ msgstr "显示更多"
|
|||||||
msgid "Show password"
|
msgid "Show password"
|
||||||
msgstr "显示密码"
|
msgstr "显示密码"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/side-panel-header.tsx
|
||||||
msgid "Show settings"
|
msgid "Show settings"
|
||||||
msgstr "显示设置"
|
msgstr "显示设置"
|
||||||
|
|
||||||
@ -4463,8 +4464,8 @@ msgid "Steps"
|
|||||||
msgstr "步骤"
|
msgstr "步骤"
|
||||||
|
|
||||||
#: src/components/browser/InAppBrowser.tsx
|
#: src/components/browser/InAppBrowser.tsx
|
||||||
#: src/pages/Shell.tsx
|
|
||||||
#: src/pages/shell/composer.tsx
|
#: src/pages/shell/composer.tsx
|
||||||
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
#: src/pages/shell/transcript.tsx
|
#: src/pages/shell/transcript.tsx
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "停止"
|
msgstr "停止"
|
||||||
@ -5091,7 +5092,7 @@ msgstr "如果没有自动跳转,可以关闭此标签页。"
|
|||||||
msgid "You can close this window."
|
msgid "You can close this window."
|
||||||
msgstr "可以关闭此窗口。"
|
msgstr "可以关闭此窗口。"
|
||||||
|
|
||||||
#: src/pages/Shell.tsx
|
#: src/pages/shell/fullscreen-computer-overlay.tsx
|
||||||
msgid "You have control"
|
msgid "You have control"
|
||||||
msgstr "你已接管"
|
msgstr "你已接管"
|
||||||
|
|
||||||
|
|||||||
@ -90,7 +90,6 @@ import {
|
|||||||
Calendar,
|
Calendar,
|
||||||
Globe,
|
Globe,
|
||||||
LayoutGrid,
|
LayoutGrid,
|
||||||
Maximize2,
|
|
||||||
PanelRight,
|
PanelRight,
|
||||||
Pencil,
|
Pencil,
|
||||||
Plus,
|
Plus,
|
||||||
@ -113,18 +112,9 @@ import { createPortal } from "react-dom";
|
|||||||
import { useNavigate, useParams, useSearchParams } from "react-router-dom";
|
import { useNavigate, useParams, useSearchParams } from "react-router-dom";
|
||||||
import { ArtifactPane } from "../components/ArtifactPane";
|
import { ArtifactPane } from "../components/ArtifactPane";
|
||||||
import { InAppBrowser } from "../components/browser/InAppBrowser";
|
import { InAppBrowser } from "../components/browser/InAppBrowser";
|
||||||
import { ComputerMaintenanceActions } from "../components/ComputerMaintenanceActions";
|
|
||||||
import {
|
|
||||||
ComputersUnavailableHint,
|
|
||||||
computersAreUnavailable,
|
|
||||||
} from "../components/ComputersUnavailableHint";
|
|
||||||
import { ComputerUpdateProgress } from "../components/ComputerUpdateProgress";
|
import { ComputerUpdateProgress } from "../components/ComputerUpdateProgress";
|
||||||
import { AgentCursor } from "../components/computer/AgentCursor";
|
|
||||||
import { MainInbox } from "../components/MainInbox";
|
import { MainInbox } from "../components/MainInbox";
|
||||||
import { OoGroupStage, OoStage } from "../components/stage/OoStage";
|
import { OoGroupStage, OoStage } from "../components/stage/OoStage";
|
||||||
import { TeachCaptureOverlay } from "../components/teach/TeachCaptureOverlay";
|
|
||||||
import { TeachComputerOverlayControl } from "../components/teach/TeachComputerOverlay";
|
|
||||||
import { TeachRecordingChrome, TeachStopButton } from "../components/teach/TeachRecordingChrome";
|
|
||||||
import { useSidebarResize } from "../hooks/useSidebarResize";
|
import { useSidebarResize } from "../hooks/useSidebarResize";
|
||||||
import { useWideLayout } from "../hooks/useWideLayout";
|
import { useWideLayout } from "../hooks/useWideLayout";
|
||||||
import { readActivityMode, writeActivityMode } from "../lib/activity-mode";
|
import { readActivityMode, writeActivityMode } from "../lib/activity-mode";
|
||||||
@ -174,7 +164,6 @@ import {
|
|||||||
clearActiveThreadRuns,
|
clearActiveThreadRuns,
|
||||||
computerPanelAutoBoot,
|
computerPanelAutoBoot,
|
||||||
computerPanelAutoUsesBoot,
|
computerPanelAutoUsesBoot,
|
||||||
computerPanelNeedsMaintenance,
|
|
||||||
computerTakeoverBlocked,
|
computerTakeoverBlocked,
|
||||||
isComputerStatusEvent,
|
isComputerStatusEvent,
|
||||||
prependThreadMessagePage,
|
prependThreadMessagePage,
|
||||||
@ -212,14 +201,8 @@ import {
|
|||||||
} from "./shell/collapsed-sidebar-sections";
|
} from "./shell/collapsed-sidebar-sections";
|
||||||
import { CommandPalette, isCommandPaletteHotkey } from "./shell/command-palette";
|
import { CommandPalette, isCommandPaletteHotkey } from "./shell/command-palette";
|
||||||
import { Composer } from "./shell/composer";
|
import { Composer } from "./shell/composer";
|
||||||
import {
|
import { ComputerPanelPreview } from "./shell/computer-panel-preview";
|
||||||
ComputerReleaseActions,
|
import { embeddableScreenUrl } from "./shell/computer-screen";
|
||||||
computerLabel,
|
|
||||||
computerPlaceholder,
|
|
||||||
DesktopKindEmptyState,
|
|
||||||
embeddableScreenUrl,
|
|
||||||
screenIframeSandbox,
|
|
||||||
} from "./shell/computer-screen";
|
|
||||||
import {
|
import {
|
||||||
ClearConversationDialog,
|
ClearConversationDialog,
|
||||||
DeleteBotDialog,
|
DeleteBotDialog,
|
||||||
@ -229,12 +212,14 @@ import {
|
|||||||
PickerInfoDialog,
|
PickerInfoDialog,
|
||||||
RenameBotSectionDialog,
|
RenameBotSectionDialog,
|
||||||
} from "./shell/dialogs";
|
} from "./shell/dialogs";
|
||||||
|
import { FullscreenComputerOverlay } from "./shell/fullscreen-computer-overlay";
|
||||||
import { MainConversationRow } from "./shell/main-conversation-row";
|
import { MainConversationRow } from "./shell/main-conversation-row";
|
||||||
import { cleanRosterPreview, formatRosterTime, stripSpaceTitlePrefix } from "./shell/roster-format";
|
import { cleanRosterPreview, formatRosterTime, stripSpaceTitlePrefix } from "./shell/roster-format";
|
||||||
import { rosterRowClass } from "./shell/roster-row-style";
|
import { rosterRowClass } from "./shell/roster-row-style";
|
||||||
import { ProjectRosterRow, TeamRosterRow } from "./shell/roster-rows";
|
import { ProjectRosterRow, TeamRosterRow } from "./shell/roster-rows";
|
||||||
import type { PendingAttachment } from "./shell/shell-types";
|
import type { PendingAttachment } from "./shell/shell-types";
|
||||||
import { FALLBACK_BOT_COLOR } from "./shell/shell-types";
|
import { FALLBACK_BOT_COLOR } from "./shell/shell-types";
|
||||||
|
import { SidePanelHeader } from "./shell/side-panel-header";
|
||||||
import { SidebarGroupHeader } from "./shell/sidebar-group-header";
|
import { SidebarGroupHeader } from "./shell/sidebar-group-header";
|
||||||
import { SidebarHeader } from "./shell/sidebar-header";
|
import { SidebarHeader } from "./shell/sidebar-header";
|
||||||
import { SidebarToggleButtons } from "./shell/sidebar-toggle-buttons";
|
import { SidebarToggleButtons } from "./shell/sidebar-toggle-buttons";
|
||||||
@ -4149,107 +4134,28 @@ export function ShellPage() {
|
|||||||
panel !== "create" &&
|
panel !== "create" &&
|
||||||
panel !== "create-group" &&
|
panel !== "create-group" &&
|
||||||
panel !== "group-settings" ? (
|
panel !== "group-settings" ? (
|
||||||
<div className="mb-4 flex items-center justify-between">
|
<SidePanelHeader
|
||||||
<span className="text-ui-body text-muted-foreground">
|
panel={panel}
|
||||||
{panel === "settings" ? (
|
active={active}
|
||||||
<Trans>Settings</Trans>
|
computer={computer}
|
||||||
) : active ? (
|
computerOpen={computerOpen}
|
||||||
(computer?.state ?? active.status)
|
booting={booting}
|
||||||
) : (
|
refreshThread={refreshThread}
|
||||||
<Trans>Group</Trans>
|
onPanelChange={setPanel}
|
||||||
)}
|
/>
|
||||||
</span>
|
|
||||||
<div className="flex gap-1">
|
|
||||||
{active &&
|
|
||||||
panel === "computer" &&
|
|
||||||
!computerOpen &&
|
|
||||||
computerPanelNeedsMaintenance(computer?.state, booting) ? (
|
|
||||||
<ComputerMaintenanceActions
|
|
||||||
botId={active.id}
|
|
||||||
computer={computer}
|
|
||||||
onChanged={async () => {
|
|
||||||
await refreshThread(active.id);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
{active ? (
|
|
||||||
<Button
|
|
||||||
variant="ghost"
|
|
||||||
size="icon-sm"
|
|
||||||
aria-label={panel === "settings" ? t`Show computer` : t`Show settings`}
|
|
||||||
onClick={() => setPanel(panel === "settings" ? "computer" : "settings")}
|
|
||||||
className={panel === "settings" ? "text-foreground" : "text-muted-foreground"}
|
|
||||||
>
|
|
||||||
<Settings strokeWidth={1.7} className="size-icon-md" />
|
|
||||||
</Button>
|
|
||||||
) : null}
|
|
||||||
<Button
|
|
||||||
variant="ghost"
|
|
||||||
size="icon-sm"
|
|
||||||
aria-label={t`Close panel`}
|
|
||||||
onClick={() => setPanel(null)}
|
|
||||||
>
|
|
||||||
<X strokeWidth={1.8} className="size-icon-md" />
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
) : null}
|
) : null}
|
||||||
{panel === "computer" && active ? (
|
{panel === "computer" && active ? (
|
||||||
<div>
|
<div>
|
||||||
<div
|
<ComputerPanelPreview
|
||||||
data-testid="computer-preview"
|
active={active}
|
||||||
className="group relative aspect-[16/10] overflow-hidden rounded-[14px] bg-background"
|
computer={computer}
|
||||||
>
|
computerOpen={computerOpen}
|
||||||
{computerOpen ? (
|
booting={booting}
|
||||||
<div className="grid h-full place-items-center text-sm text-muted-foreground/80">
|
embeddedScreenUrl={embeddedScreenUrl}
|
||||||
<Trans>Open in full window</Trans>
|
computerScreenError={computerScreenError}
|
||||||
</div>
|
sandboxProvider={bootstrapMe?.sandboxProvider}
|
||||||
) : computer?.kind === "desktop" ? (
|
onOpen={() => void openComputer()}
|
||||||
<DesktopKindEmptyState className="grid h-full place-items-center px-6 text-center text-sm text-muted-foreground/80" />
|
/>
|
||||||
) : computer?.state === "running" && embeddedScreenUrl && !computerScreenError ? (
|
|
||||||
<>
|
|
||||||
<iframe
|
|
||||||
title={t`Bot screen preview`}
|
|
||||||
src={embeddedScreenUrl}
|
|
||||||
sandbox={screenIframeSandbox(embeddedScreenUrl)}
|
|
||||||
className="h-full w-full border-0 bg-black"
|
|
||||||
allow="clipboard-read; clipboard-write"
|
|
||||||
style={{ pointerEvents: "none" }}
|
|
||||||
/>
|
|
||||||
<AgentCursor botId={active.id} color={active.color} name={active.name} />
|
|
||||||
</>
|
|
||||||
) : (
|
|
||||||
<div className="grid h-full place-items-center px-6 text-center text-sm text-muted-foreground/80">
|
|
||||||
{computerScreenError ??
|
|
||||||
(computersAreUnavailable(bootstrapMe?.sandboxProvider) ? (
|
|
||||||
<ComputersUnavailableHint />
|
|
||||||
) : (
|
|
||||||
computerPlaceholder(
|
|
||||||
computer?.state,
|
|
||||||
booting,
|
|
||||||
computerLabel(computer?.mode, active.name),
|
|
||||||
)
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
{!computerScreenError ? (
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
data-testid="computer-preview-open"
|
|
||||||
className="absolute inset-0 flex cursor-pointer items-center justify-center bg-overlay/40 opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100"
|
|
||||||
aria-label={t`Open`}
|
|
||||||
onClick={() => void openComputer()}
|
|
||||||
>
|
|
||||||
<span className="inline-flex items-center gap-2 rounded-full bg-overlay px-3.5 py-2 text-ui-body text-foreground shadow-md">
|
|
||||||
<Maximize2 strokeWidth={1.9} aria-hidden className="size-icon-md" />
|
|
||||||
<Trans>Open</Trans>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
) : null}
|
|
||||||
</div>
|
|
||||||
<p className="mt-2 truncate text-ui-body text-muted-foreground" dir="auto">
|
|
||||||
{t`${active.name}'s screen`}
|
|
||||||
</p>
|
|
||||||
<RoutineListHeader
|
<RoutineListHeader
|
||||||
onCreate={() => {
|
onCreate={() => {
|
||||||
setRoutineDraft(emptyRoutineDraft());
|
setRoutineDraft(emptyRoutineDraft());
|
||||||
@ -4992,148 +4898,25 @@ export function ShellPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
) : computerOpen && active ? (
|
) : computerOpen && active ? (
|
||||||
<div className="fixed inset-0 z-30 bg-background">
|
<FullscreenComputerOverlay
|
||||||
<div
|
active={active}
|
||||||
data-testid="computer-viewport"
|
computer={computer}
|
||||||
className="fixed inset-x-0 top-0 flex flex-col bg-background"
|
computerViewport={computerViewport}
|
||||||
style={{
|
embeddedScreenUrl={embeddedScreenUrl}
|
||||||
height: computerViewport ? `${computerViewport.height}px` : "100dvh",
|
computerScreenError={computerScreenError}
|
||||||
top: computerViewport ? `${computerViewport.offsetTop}px` : undefined,
|
hasControl={hasControl}
|
||||||
}}
|
recordingSkill={recordingSkill}
|
||||||
>
|
teachBusy={teachBusy}
|
||||||
<div
|
composerRunning={composerRunning}
|
||||||
data-testid="computer-chrome"
|
sending={sending}
|
||||||
className="flex items-center justify-between gap-4 border-b border-sidebar-border px-[18px] py-3.5"
|
sendError={sendError}
|
||||||
>
|
onStopRun={stopRun}
|
||||||
<div className="flex min-w-0 flex-1 items-center gap-3">
|
onStopTeaching={stopTeaching}
|
||||||
<BotAvatar
|
onRelease={releaseComputer}
|
||||||
color={active.color}
|
onRefreshTeaching={refreshActiveTeaching}
|
||||||
identity={active.id}
|
refreshThread={refreshThread}
|
||||||
size={28}
|
onClose={() => setComputerOpen(false)}
|
||||||
status={active.status}
|
/>
|
||||||
/>
|
|
||||||
{recordingSkill ? (
|
|
||||||
<TeachRecordingChrome
|
|
||||||
recording={recordingSkill}
|
|
||||||
busy={teachBusy}
|
|
||||||
onStop={stopTeaching}
|
|
||||||
variant="overlay"
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<span className="truncate text-ui-body font-medium text-foreground" dir="auto">
|
|
||||||
{computerLabel(computer?.mode, active.name)}
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
{!recordingSkill && hasControl ? (
|
|
||||||
computer?.takeoverRequested ? (
|
|
||||||
<span className="rounded-full bg-warning/15 px-[11px] py-1 text-ui-body-sm text-warning">
|
|
||||||
<Trans>Needs you</Trans>
|
|
||||||
</span>
|
|
||||||
) : (
|
|
||||||
<span className="rounded-full bg-success/15 px-[11px] py-1 text-ui-body-sm text-success">
|
|
||||||
<Trans>You have control</Trans>
|
|
||||||
</span>
|
|
||||||
)
|
|
||||||
) : null}
|
|
||||||
</div>
|
|
||||||
<div className="flex items-center gap-3">
|
|
||||||
{composerRunning ? (
|
|
||||||
<Button
|
|
||||||
type="button"
|
|
||||||
variant="outline"
|
|
||||||
size="sm"
|
|
||||||
aria-label={t`Stop`}
|
|
||||||
data-testid="computer-overlay-stop"
|
|
||||||
onClick={() => void stopRun()}
|
|
||||||
disabled={sending}
|
|
||||||
>
|
|
||||||
<Trans>Stop</Trans>
|
|
||||||
</Button>
|
|
||||||
) : null}
|
|
||||||
{recordingSkill ? (
|
|
||||||
<TeachStopButton busy={teachBusy} onStop={stopTeaching} />
|
|
||||||
) : hasControl ? (
|
|
||||||
<ComputerReleaseActions
|
|
||||||
takeoverRequested={Boolean(computer?.takeoverRequested)}
|
|
||||||
onRelease={releaseComputer}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
{active && !recordingSkill ? (
|
|
||||||
<TeachComputerOverlayControl
|
|
||||||
key={active.id}
|
|
||||||
botId={active.id}
|
|
||||||
computer={computer}
|
|
||||||
busy={teachBusy}
|
|
||||||
onRefresh={refreshActiveTeaching}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
{active && !recordingSkill ? (
|
|
||||||
<ComputerMaintenanceActions
|
|
||||||
botId={active.id}
|
|
||||||
computer={computer}
|
|
||||||
onChanged={async () => {
|
|
||||||
await refreshThread(active.id);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
<Button
|
|
||||||
variant="ghost"
|
|
||||||
size="icon-sm"
|
|
||||||
className="text-muted-foreground"
|
|
||||||
aria-label={t`Close computer`}
|
|
||||||
onClick={() => setComputerOpen(false)}
|
|
||||||
>
|
|
||||||
<X strokeWidth={1.8} className="size-icon-md" />
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{sendError ? (
|
|
||||||
<div
|
|
||||||
role="alert"
|
|
||||||
className="border-b border-destructive/40 bg-destructive/10 px-[18px] py-2 text-ui-body-sm text-destructive"
|
|
||||||
>
|
|
||||||
{sendError}
|
|
||||||
</div>
|
|
||||||
) : null}
|
|
||||||
<div className="relative min-h-0 flex-1 bg-background">
|
|
||||||
{computer?.kind === "desktop" ? (
|
|
||||||
<DesktopKindEmptyState className="grid h-full place-items-center px-8 text-center text-sm text-muted-foreground/80" />
|
|
||||||
) : computer?.state === "running" && embeddedScreenUrl && !computerScreenError ? (
|
|
||||||
<>
|
|
||||||
<iframe
|
|
||||||
title={t`Bot screen`}
|
|
||||||
src={embeddedScreenUrl}
|
|
||||||
sandbox={screenIframeSandbox(embeddedScreenUrl)}
|
|
||||||
className="h-full w-full border-0 bg-black"
|
|
||||||
allow="clipboard-read; clipboard-write; fullscreen"
|
|
||||||
style={{
|
|
||||||
pointerEvents: recordingSkill || !hasControl ? "none" : "auto",
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
{active && !hasControl ? (
|
|
||||||
<AgentCursor botId={active.id} color={active.color} name={active.name} />
|
|
||||||
) : null}
|
|
||||||
{active ? (
|
|
||||||
<TeachCaptureOverlay
|
|
||||||
botId={active.id}
|
|
||||||
skill={recordingSkill}
|
|
||||||
enabled={Boolean(recordingSkill)}
|
|
||||||
screenWidth={computer?.screenWidth}
|
|
||||||
screenHeight={computer?.screenHeight}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
</>
|
|
||||||
) : (
|
|
||||||
<div className="grid h-full place-items-center text-sm text-muted-foreground/80">
|
|
||||||
{computerScreenError ??
|
|
||||||
(computer?.state === "suspended"
|
|
||||||
? t`Computer is asleep`
|
|
||||||
: computerLabel(computer?.mode, active.name))}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
96
apps/web/src/pages/shell/computer-panel-preview.tsx
Normal file
96
apps/web/src/pages/shell/computer-panel-preview.tsx
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
import { Trans, useLingui } from "@lingui/react/macro";
|
||||||
|
import type { Bot, ComputerStatus } from "@rakazo/contracts";
|
||||||
|
import { Maximize2 } from "lucide-react";
|
||||||
|
import type { ReactNode } from "react";
|
||||||
|
import {
|
||||||
|
ComputersUnavailableHint,
|
||||||
|
computersAreUnavailable,
|
||||||
|
} from "../../components/ComputersUnavailableHint";
|
||||||
|
import { AgentCursor } from "../../components/computer/AgentCursor";
|
||||||
|
import {
|
||||||
|
computerLabel,
|
||||||
|
computerPlaceholder,
|
||||||
|
DesktopKindEmptyState,
|
||||||
|
screenIframeSandbox,
|
||||||
|
} from "./computer-screen";
|
||||||
|
|
||||||
|
/** The bot's screen in the side panel: a live, non-interactive preview that opens full window. */
|
||||||
|
export function ComputerPanelPreview({
|
||||||
|
active,
|
||||||
|
computer,
|
||||||
|
computerOpen,
|
||||||
|
booting,
|
||||||
|
embeddedScreenUrl,
|
||||||
|
computerScreenError,
|
||||||
|
sandboxProvider,
|
||||||
|
onOpen,
|
||||||
|
}: {
|
||||||
|
active: Bot;
|
||||||
|
computer: ComputerStatus | null;
|
||||||
|
computerOpen: boolean;
|
||||||
|
booting: boolean;
|
||||||
|
embeddedScreenUrl: string | null;
|
||||||
|
computerScreenError: ReactNode;
|
||||||
|
sandboxProvider: string | undefined;
|
||||||
|
onOpen: () => void;
|
||||||
|
}) {
|
||||||
|
const { t } = useLingui();
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div
|
||||||
|
data-testid="computer-preview"
|
||||||
|
className="group relative aspect-[16/10] overflow-hidden rounded-[14px] bg-background"
|
||||||
|
>
|
||||||
|
{computerOpen ? (
|
||||||
|
<div className="grid h-full place-items-center text-sm text-muted-foreground/80">
|
||||||
|
<Trans>Open in full window</Trans>
|
||||||
|
</div>
|
||||||
|
) : computer?.kind === "desktop" ? (
|
||||||
|
<DesktopKindEmptyState className="grid h-full place-items-center px-6 text-center text-sm text-muted-foreground/80" />
|
||||||
|
) : computer?.state === "running" && embeddedScreenUrl && !computerScreenError ? (
|
||||||
|
<>
|
||||||
|
<iframe
|
||||||
|
title={t`Bot screen preview`}
|
||||||
|
src={embeddedScreenUrl}
|
||||||
|
sandbox={screenIframeSandbox(embeddedScreenUrl)}
|
||||||
|
className="h-full w-full border-0 bg-black"
|
||||||
|
allow="clipboard-read; clipboard-write"
|
||||||
|
style={{ pointerEvents: "none" }}
|
||||||
|
/>
|
||||||
|
<AgentCursor botId={active.id} color={active.color} name={active.name} />
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<div className="grid h-full place-items-center px-6 text-center text-sm text-muted-foreground/80">
|
||||||
|
{computerScreenError ??
|
||||||
|
(computersAreUnavailable(sandboxProvider) ? (
|
||||||
|
<ComputersUnavailableHint />
|
||||||
|
) : (
|
||||||
|
computerPlaceholder(
|
||||||
|
computer?.state,
|
||||||
|
booting,
|
||||||
|
computerLabel(computer?.mode, active.name),
|
||||||
|
)
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{!computerScreenError ? (
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
data-testid="computer-preview-open"
|
||||||
|
className="absolute inset-0 flex cursor-pointer items-center justify-center bg-overlay/40 opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100"
|
||||||
|
aria-label={t`Open`}
|
||||||
|
onClick={onOpen}
|
||||||
|
>
|
||||||
|
<span className="inline-flex items-center gap-2 rounded-full bg-overlay px-3.5 py-2 text-ui-body text-foreground shadow-md">
|
||||||
|
<Maximize2 strokeWidth={1.9} aria-hidden className="size-icon-md" />
|
||||||
|
<Trans>Open</Trans>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
) : null}
|
||||||
|
</div>
|
||||||
|
<p className="mt-2 truncate text-ui-body text-muted-foreground" dir="auto">
|
||||||
|
{t`${active.name}'s screen`}
|
||||||
|
</p>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
196
apps/web/src/pages/shell/fullscreen-computer-overlay.tsx
Normal file
196
apps/web/src/pages/shell/fullscreen-computer-overlay.tsx
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
import { Trans, useLingui } from "@lingui/react/macro";
|
||||||
|
import type { Bot, ComputerReleaseReason, ComputerStatus, TaughtSkill } from "@rakazo/contracts";
|
||||||
|
import { BotAvatar, Button } from "@rakazo/ui-web";
|
||||||
|
import { X } from "lucide-react";
|
||||||
|
import type { ReactNode } from "react";
|
||||||
|
import { ComputerMaintenanceActions } from "../../components/ComputerMaintenanceActions";
|
||||||
|
import { AgentCursor } from "../../components/computer/AgentCursor";
|
||||||
|
import { TeachCaptureOverlay } from "../../components/teach/TeachCaptureOverlay";
|
||||||
|
import { TeachComputerOverlayControl } from "../../components/teach/TeachComputerOverlay";
|
||||||
|
import { TeachRecordingChrome, TeachStopButton } from "../../components/teach/TeachRecordingChrome";
|
||||||
|
import {
|
||||||
|
ComputerReleaseActions,
|
||||||
|
computerLabel,
|
||||||
|
DesktopKindEmptyState,
|
||||||
|
screenIframeSandbox,
|
||||||
|
} from "./computer-screen";
|
||||||
|
|
||||||
|
/** The bot's computer in full window, where the user takes control or teaches a skill. */
|
||||||
|
export function FullscreenComputerOverlay({
|
||||||
|
active,
|
||||||
|
computer,
|
||||||
|
computerViewport,
|
||||||
|
embeddedScreenUrl,
|
||||||
|
computerScreenError,
|
||||||
|
hasControl,
|
||||||
|
recordingSkill,
|
||||||
|
teachBusy,
|
||||||
|
composerRunning,
|
||||||
|
sending,
|
||||||
|
sendError,
|
||||||
|
onStopRun,
|
||||||
|
onStopTeaching,
|
||||||
|
onRelease,
|
||||||
|
onRefreshTeaching,
|
||||||
|
refreshThread,
|
||||||
|
onClose,
|
||||||
|
}: {
|
||||||
|
active: Bot;
|
||||||
|
computer: ComputerStatus | null;
|
||||||
|
computerViewport: { height: number; offsetTop: number } | null;
|
||||||
|
embeddedScreenUrl: string | null;
|
||||||
|
computerScreenError: ReactNode;
|
||||||
|
hasControl: boolean;
|
||||||
|
recordingSkill: TaughtSkill | null;
|
||||||
|
teachBusy: boolean;
|
||||||
|
composerRunning: boolean;
|
||||||
|
sending: boolean;
|
||||||
|
sendError: string | null;
|
||||||
|
onStopRun: () => Promise<void>;
|
||||||
|
onStopTeaching: () => Promise<void>;
|
||||||
|
onRelease: (reason?: ComputerReleaseReason) => Promise<void>;
|
||||||
|
onRefreshTeaching: () => Promise<void>;
|
||||||
|
refreshThread: (botId: string) => Promise<unknown>;
|
||||||
|
onClose: () => void;
|
||||||
|
}) {
|
||||||
|
const { t } = useLingui();
|
||||||
|
return (
|
||||||
|
<div className="fixed inset-0 z-30 bg-background">
|
||||||
|
<div
|
||||||
|
data-testid="computer-viewport"
|
||||||
|
className="fixed inset-x-0 top-0 flex flex-col bg-background"
|
||||||
|
style={{
|
||||||
|
height: computerViewport ? `${computerViewport.height}px` : "100dvh",
|
||||||
|
top: computerViewport ? `${computerViewport.offsetTop}px` : undefined,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
data-testid="computer-chrome"
|
||||||
|
className="flex items-center justify-between gap-4 border-b border-sidebar-border px-[18px] py-3.5"
|
||||||
|
>
|
||||||
|
<div className="flex min-w-0 flex-1 items-center gap-3">
|
||||||
|
<BotAvatar color={active.color} identity={active.id} size={28} status={active.status} />
|
||||||
|
{recordingSkill ? (
|
||||||
|
<TeachRecordingChrome
|
||||||
|
recording={recordingSkill}
|
||||||
|
busy={teachBusy}
|
||||||
|
onStop={onStopTeaching}
|
||||||
|
variant="overlay"
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<span className="truncate text-ui-body font-medium text-foreground" dir="auto">
|
||||||
|
{computerLabel(computer?.mode, active.name)}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
{!recordingSkill && hasControl ? (
|
||||||
|
computer?.takeoverRequested ? (
|
||||||
|
<span className="rounded-full bg-warning/15 px-[11px] py-1 text-ui-body-sm text-warning">
|
||||||
|
<Trans>Needs you</Trans>
|
||||||
|
</span>
|
||||||
|
) : (
|
||||||
|
<span className="rounded-full bg-success/15 px-[11px] py-1 text-ui-body-sm text-success">
|
||||||
|
<Trans>You have control</Trans>
|
||||||
|
</span>
|
||||||
|
)
|
||||||
|
) : null}
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center gap-3">
|
||||||
|
{composerRunning ? (
|
||||||
|
<Button
|
||||||
|
type="button"
|
||||||
|
variant="outline"
|
||||||
|
size="sm"
|
||||||
|
aria-label={t`Stop`}
|
||||||
|
data-testid="computer-overlay-stop"
|
||||||
|
onClick={() => void onStopRun()}
|
||||||
|
disabled={sending}
|
||||||
|
>
|
||||||
|
<Trans>Stop</Trans>
|
||||||
|
</Button>
|
||||||
|
) : null}
|
||||||
|
{recordingSkill ? (
|
||||||
|
<TeachStopButton busy={teachBusy} onStop={onStopTeaching} />
|
||||||
|
) : hasControl ? (
|
||||||
|
<ComputerReleaseActions
|
||||||
|
takeoverRequested={Boolean(computer?.takeoverRequested)}
|
||||||
|
onRelease={onRelease}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
{active && !recordingSkill ? (
|
||||||
|
<TeachComputerOverlayControl
|
||||||
|
key={active.id}
|
||||||
|
botId={active.id}
|
||||||
|
computer={computer}
|
||||||
|
busy={teachBusy}
|
||||||
|
onRefresh={onRefreshTeaching}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
{active && !recordingSkill ? (
|
||||||
|
<ComputerMaintenanceActions
|
||||||
|
botId={active.id}
|
||||||
|
computer={computer}
|
||||||
|
onChanged={async () => {
|
||||||
|
await refreshThread(active.id);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon-sm"
|
||||||
|
className="text-muted-foreground"
|
||||||
|
aria-label={t`Close computer`}
|
||||||
|
onClick={onClose}
|
||||||
|
>
|
||||||
|
<X strokeWidth={1.8} className="size-icon-md" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{sendError ? (
|
||||||
|
<div
|
||||||
|
role="alert"
|
||||||
|
className="border-b border-destructive/40 bg-destructive/10 px-[18px] py-2 text-ui-body-sm text-destructive"
|
||||||
|
>
|
||||||
|
{sendError}
|
||||||
|
</div>
|
||||||
|
) : null}
|
||||||
|
<div className="relative min-h-0 flex-1 bg-background">
|
||||||
|
{computer?.kind === "desktop" ? (
|
||||||
|
<DesktopKindEmptyState className="grid h-full place-items-center px-8 text-center text-sm text-muted-foreground/80" />
|
||||||
|
) : computer?.state === "running" && embeddedScreenUrl && !computerScreenError ? (
|
||||||
|
<>
|
||||||
|
<iframe
|
||||||
|
title={t`Bot screen`}
|
||||||
|
src={embeddedScreenUrl}
|
||||||
|
sandbox={screenIframeSandbox(embeddedScreenUrl)}
|
||||||
|
className="h-full w-full border-0 bg-black"
|
||||||
|
allow="clipboard-read; clipboard-write; fullscreen"
|
||||||
|
style={{
|
||||||
|
pointerEvents: recordingSkill || !hasControl ? "none" : "auto",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{active && !hasControl ? (
|
||||||
|
<AgentCursor botId={active.id} color={active.color} name={active.name} />
|
||||||
|
) : null}
|
||||||
|
{active ? (
|
||||||
|
<TeachCaptureOverlay
|
||||||
|
botId={active.id}
|
||||||
|
skill={recordingSkill}
|
||||||
|
enabled={Boolean(recordingSkill)}
|
||||||
|
screenWidth={computer?.screenWidth}
|
||||||
|
screenHeight={computer?.screenHeight}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<div className="grid h-full place-items-center text-sm text-muted-foreground/80">
|
||||||
|
{computerScreenError ??
|
||||||
|
(computer?.state === "suspended"
|
||||||
|
? t`Computer is asleep`
|
||||||
|
: computerLabel(computer?.mode, active.name))}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
73
apps/web/src/pages/shell/side-panel-header.tsx
Normal file
73
apps/web/src/pages/shell/side-panel-header.tsx
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import { Trans, useLingui } from "@lingui/react/macro";
|
||||||
|
import type { Bot, ComputerStatus } from "@rakazo/contracts";
|
||||||
|
import { Button } from "@rakazo/ui-web";
|
||||||
|
import { Settings, X } from "lucide-react";
|
||||||
|
import { ComputerMaintenanceActions } from "../../components/ComputerMaintenanceActions";
|
||||||
|
import { computerPanelNeedsMaintenance } from "../../lib/thread-events";
|
||||||
|
|
||||||
|
/** Title row of the computer and settings side panel, with its switch and close buttons. */
|
||||||
|
export function SidePanelHeader({
|
||||||
|
panel,
|
||||||
|
active,
|
||||||
|
computer,
|
||||||
|
computerOpen,
|
||||||
|
booting,
|
||||||
|
refreshThread,
|
||||||
|
onPanelChange,
|
||||||
|
}: {
|
||||||
|
panel: "computer" | "settings";
|
||||||
|
active: Bot | undefined;
|
||||||
|
computer: ComputerStatus | null;
|
||||||
|
computerOpen: boolean;
|
||||||
|
booting: boolean;
|
||||||
|
refreshThread: (botId: string) => Promise<unknown>;
|
||||||
|
onPanelChange: (panel: "computer" | "settings" | null) => void;
|
||||||
|
}) {
|
||||||
|
const { t } = useLingui();
|
||||||
|
return (
|
||||||
|
<div className="mb-4 flex items-center justify-between">
|
||||||
|
<span className="text-ui-body text-muted-foreground">
|
||||||
|
{panel === "settings" ? (
|
||||||
|
<Trans>Settings</Trans>
|
||||||
|
) : active ? (
|
||||||
|
(computer?.state ?? active.status)
|
||||||
|
) : (
|
||||||
|
<Trans>Group</Trans>
|
||||||
|
)}
|
||||||
|
</span>
|
||||||
|
<div className="flex gap-1">
|
||||||
|
{active &&
|
||||||
|
panel === "computer" &&
|
||||||
|
!computerOpen &&
|
||||||
|
computerPanelNeedsMaintenance(computer?.state, booting) ? (
|
||||||
|
<ComputerMaintenanceActions
|
||||||
|
botId={active.id}
|
||||||
|
computer={computer}
|
||||||
|
onChanged={async () => {
|
||||||
|
await refreshThread(active.id);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
{active ? (
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon-sm"
|
||||||
|
aria-label={panel === "settings" ? t`Show computer` : t`Show settings`}
|
||||||
|
onClick={() => onPanelChange(panel === "settings" ? "computer" : "settings")}
|
||||||
|
className={panel === "settings" ? "text-foreground" : "text-muted-foreground"}
|
||||||
|
>
|
||||||
|
<Settings strokeWidth={1.7} className="size-icon-md" />
|
||||||
|
</Button>
|
||||||
|
) : null}
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon-sm"
|
||||||
|
aria-label={t`Close panel`}
|
||||||
|
onClick={() => onPanelChange(null)}
|
||||||
|
>
|
||||||
|
<X strokeWidth={1.8} className="size-icon-md" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user