export type Locale = "en" | "zh"; export interface Translations { // ── Common ── common: { save: string; saving: string; cancel: string; close: string; delete: string; refresh: string; retry: string; search: string; loading: string; create: string; creating: string; set: string; replace: string; clear: string; live: string; off: string; enabled: string; disabled: string; active: string; inactive: string; unknown: string; untitled: string; none: string; form: string; noResults: string; of: string; page: string; msgs: string; tools: string; match: string; other: string; configured: string; removed: string; failedToToggle: string; failedToRemove: string; failedToReveal: string; collapse: string; expand: string; general: string; messaging: string; }; // ── App shell ── app: { brand: string; brandShort: string; webUi: string; footer: { name: string; org: string; }; nav: { status: string; sessions: string; analytics: string; logs: string; cron: string; skills: string; config: string; keys: string; }; }; // ── Status page ── status: { actionFailed: string; actionFinished: string; actions: string; agent: string; connected: string; connectedPlatforms: string; disconnected: string; error: string; failed: string; gateway: string; gatewayFailedToStart: string; lastUpdate: string; noneRunning: string; notRunning: string; pid: string; platformDisconnected: string; platformError: string; activeSessions: string; recentSessions: string; restartGateway: string; restartingGateway: string; running: string; runningRemote: string; startFailed: string; starting: string; startedInBackground: string; stopped: string; updateHermes: string; updatingHermes: string; waitingForOutput: string; }; // ── Sessions page ── sessions: { title: string; searchPlaceholder: string; noSessions: string; noMatch: string; startConversation: string; noMessages: string; untitledSession: string; deleteSession: string; previousPage: string; nextPage: string; roles: { user: string; assistant: string; system: string; tool: string; }; }; // ── Analytics page ── analytics: { period: string; totalTokens: string; totalSessions: string; apiCalls: string; dailyTokenUsage: string; dailyBreakdown: string; perModelBreakdown: string; topSkills: string; skill: string; loads: string; edits: string; lastUsed: string; input: string; output: string; total: string; noUsageData: string; startSession: string; date: string; model: string; tokens: string; perDayAvg: string; acrossModels: string; inOut: string; }; // ── Logs page ── logs: { title: string; autoRefresh: string; file: string; level: string; component: string; lines: string; noLogLines: string; }; // ── Cron page ── cron: { newJob: string; nameOptional: string; namePlaceholder: string; prompt: string; promptPlaceholder: string; schedule: string; schedulePlaceholder: string; deliverTo: string; scheduledJobs: string; noJobs: string; last: string; next: string; pause: string; resume: string; triggerNow: string; delivery: { local: string; telegram: string; discord: string; slack: string; email: string; }; }; // ── Skills page ── skills: { title: string; searchPlaceholder: string; enabledOf: string; all: string; noSkills: string; noSkillsMatch: string; skillCount: string; resultCount: string; noDescription: string; toolsets: string; toolsetLabel: string; noToolsetsMatch: string; setupNeeded: string; disabledForCli: string; more: string; }; // ── Config page ── config: { configPath: string; exportConfig: string; importConfig: string; resetDefaults: string; rawYaml: string; searchResults: string; fields: string; noFieldsMatch: string; configSaved: string; yamlConfigSaved: string; failedToSave: string; failedToSaveYaml: string; failedToLoadRaw: string; configImported: string; invalidJson: string; categories: { general: string; agent: string; terminal: string; display: string; delegation: string; memory: string; compression: string; security: string; browser: string; voice: string; tts: string; stt: string; logging: string; discord: string; auxiliary: string; }; }; // ── Env / Keys page ── env: { description: string; changesNote: string; hideAdvanced: string; showAdvanced: string; llmProviders: string; providersConfigured: string; getKey: string; notConfigured: string; notSet: string; keysCount: string; enterValue: string; replaceCurrentValue: string; showValue: string; hideValue: string; }; // ── OAuth ── oauth: { title: string; providerLogins: string; description: string; connected: string; expired: string; notConnected: string; runInTerminal: string; noProviders: string; login: string; disconnect: string; managedExternally: string; copied: string; cli: string; copyCliCommand: string; connect: string; sessionExpires: string; initiatingLogin: string; exchangingCode: string; connectedClosing: string; loginFailed: string; sessionExpired: string; reOpenAuth: string; reOpenVerification: string; submitCode: string; pasteCode: string; waitingAuth: string; enterCodePrompt: string; pkceStep1: string; pkceStep2: string; pkceStep3: string; flowLabels: { pkce: string; device_code: string; external: string; }; expiresIn: string; }; // ── Language switcher ── language: { switchTo: string; }; // ── Theme switcher ── theme: { title: string; switchTheme: string; }; }