diff --git a/src/workspaces/officerdev/src/apps/Minesweeper/index.ts b/src/workspaces/officerdev/src/apps/Minesweeper/index.ts index 467f104f..92c92559 100644 --- a/src/workspaces/officerdev/src/apps/Minesweeper/index.ts +++ b/src/workspaces/officerdev/src/apps/Minesweeper/index.ts @@ -9,5 +9,6 @@ export { RfbClient } from './rfb'; // rather than a vendored noVNC, because we control the server and need two encodings out of ten. export const appRegistryMetas: AppRegistryMeta[] = [ + // i18n-exempt: product name { key: 'minesweeper', name: 'Minesweeper', icon: Bomb, component: MinesweeperPanel }, ]; diff --git a/src/workspaces/officerdev/src/apps/SendOff/index.ts b/src/workspaces/officerdev/src/apps/SendOff/index.ts index f30b418a..cc2de29b 100644 --- a/src/workspaces/officerdev/src/apps/SendOff/index.ts +++ b/src/workspaces/officerdev/src/apps/SendOff/index.ts @@ -6,5 +6,6 @@ export { SendOffPanel } from './SendOffPanel'; export { useSendOff, useSendOffSenders, useSendOffTargets } from './useSendOff'; export const appRegistryMetas: AppRegistryMeta[] = [ + // i18n-exempt: product name { key: 'sendoff', name: 'SendOff', icon: Send, component: SendOffPanel }, ]; diff --git a/src/workspaces/officerdev/src/apps/SystemMonitor/shared.ts b/src/workspaces/officerdev/src/apps/SystemMonitor/shared.ts index 943984e5..570f648c 100644 --- a/src/workspaces/officerdev/src/apps/SystemMonitor/shared.ts +++ b/src/workspaces/officerdev/src/apps/SystemMonitor/shared.ts @@ -6,9 +6,13 @@ import { useParams } from 'react-router'; // on whatever you last clicked in some other tab. export type MonitorScope = 'btop' | 'pm2' | 'docker'; +// Each label names the tool the scope shows, so all three are product names and stay as they are. export const SCOPES: { id: MonitorScope; label: string }[] = [ + // i18n-exempt: product names — bTop, pm2 and docker are the tools themselves { id: 'btop', label: 'bTop' }, + // i18n-exempt: product names — bTop, pm2 and docker are the tools themselves { id: 'pm2', label: 'pm2 processes' }, + // i18n-exempt: product names — bTop, pm2 and docker are the tools themselves { id: 'docker', label: 'dockers' }, ]; diff --git a/src/workspaces/officerdev/src/apps/Terminal/index.tsx b/src/workspaces/officerdev/src/apps/Terminal/index.tsx index 2457bbb6..1b45f02f 100644 --- a/src/workspaces/officerdev/src/apps/Terminal/index.tsx +++ b/src/workspaces/officerdev/src/apps/Terminal/index.tsx @@ -5,6 +5,7 @@ import { HostTerminalWrapper } from './HostTerminalWrapper'; import { CommandTerminalWrapper } from './CommandTerminalWrapper'; import { TerminalHeader, HostTerminalHeader, TmuxHeader, NvimHeader, ClaudeCodeHeader } from './Headers'; import { RunningShells } from './RunningShells'; +import { panelName } from '../../locales'; export { TerminalView, type TerminalViewProps, type TerminalConnectionState } from './Terminal'; @@ -40,7 +41,7 @@ const ClaudeCodeWrapper = ({ panelId }: { panelId: string }) => ( export const appRegistryMetas: AppRegistryMeta[] = [ { key: 'officerdev/terminal', - name: 'Terminal', + name: panelName('panelName.terminal'), icon: TerminalSquare, component: TerminalWrapper, header: TerminalHeader, @@ -48,7 +49,7 @@ export const appRegistryMetas: AppRegistryMeta[] = [ }, { key: 'officerdev/terminal-host', - name: 'Host Terminal', + name: panelName('panelName.hostTerminal'), icon: Monitor, component: HostTerminalWrapper, header: HostTerminalHeader, @@ -57,6 +58,7 @@ export const appRegistryMetas: AppRegistryMeta[] = [ }, { key: 'officerdev/tmux', + // i18n-exempt: product name name: 'Tmux', icon: Columns2, component: TmuxWrapper, @@ -65,6 +67,7 @@ export const appRegistryMetas: AppRegistryMeta[] = [ }, { key: 'officerdev/nvim', + // i18n-exempt: product name name: 'Neovim', icon: PenLine, component: NvimWrapper, @@ -73,12 +76,13 @@ export const appRegistryMetas: AppRegistryMeta[] = [ }, { key: 'officerdev/running-shells', - name: 'Running Shells', + name: panelName('panelName.runningShells'), icon: ListTree, component: RunningShells, }, { key: 'officerdev/claude-code', + // i18n-exempt: product name name: 'Claude Code', icon: Sparkles, component: ClaudeCodeWrapper, diff --git a/src/workspaces/officerdev/src/locales/en-GB.json b/src/workspaces/officerdev/src/locales/en-GB.json index 7e710025..cc07201b 100644 --- a/src/workspaces/officerdev/src/locales/en-GB.json +++ b/src/workspaces/officerdev/src/locales/en-GB.json @@ -72,7 +72,8 @@ "name": "Name", "status": "Status", "mem": "Mem", - "uptime": "Uptime" + "uptime": "Uptime", + "scopeDockers": "dockers" }, "codeEditor": { "closeFile": "Close {{name}}", diff --git a/src/workspaces/officerdev/src/locales/pt-PT.json b/src/workspaces/officerdev/src/locales/pt-PT.json index 39c521de..65221e51 100644 --- a/src/workspaces/officerdev/src/locales/pt-PT.json +++ b/src/workspaces/officerdev/src/locales/pt-PT.json @@ -72,7 +72,8 @@ "name": "Nome", "status": "Estado", "mem": "Mem", - "uptime": "Tempo ativo" + "uptime": "Tempo ativo", + "scopeDockers": "dockers" }, "codeEditor": { "closeFile": "Fechar {{name}}",