types.ts
1 export type Locale = "en" | "zh"; 2 3 export interface Translations { 4 // ── Common ── 5 common: { 6 save: string; 7 saving: string; 8 cancel: string; 9 close: string; 10 confirm: string; 11 delete: string; 12 refresh: string; 13 retry: string; 14 search: string; 15 loading: string; 16 create: string; 17 creating: string; 18 set: string; 19 replace: string; 20 clear: string; 21 live: string; 22 off: string; 23 enabled: string; 24 disabled: string; 25 active: string; 26 inactive: string; 27 unknown: string; 28 untitled: string; 29 none: string; 30 form: string; 31 noResults: string; 32 of: string; 33 page: string; 34 msgs: string; 35 tools: string; 36 match: string; 37 other: string; 38 configured: string; 39 removed: string; 40 failedToToggle: string; 41 failedToRemove: string; 42 failedToReveal: string; 43 collapse: string; 44 expand: string; 45 general: string; 46 messaging: string; 47 pluginLoadFailed: string; 48 pluginNotRegistered: string; 49 }; 50 51 // ── App shell ── 52 app: { 53 brand: string; 54 brandShort: string; 55 closeNavigation: string; 56 closeModelTools: string; 57 footer: { 58 org: string; 59 }; 60 activeSessionsLabel: string; 61 gatewayStatusLabel: string; 62 gatewayStrip: { 63 failed: string; 64 off: string; 65 running: string; 66 starting: string; 67 stopped: string; 68 }; 69 nav: { 70 analytics: string; 71 chat: string; 72 config: string; 73 cron: string; 74 documentation: string; 75 keys: string; 76 logs: string; 77 models: string; 78 profiles: string; 79 plugins: string; 80 sessions: string; 81 skills: string; 82 }; 83 modelToolsSheetSubtitle: string; 84 modelToolsSheetTitle: string; 85 navigation: string; 86 openDocumentation: string; 87 openNavigation: string; 88 pluginNavSection: string; 89 sessionsActiveCount: string; 90 statusOverview: string; 91 system: string; 92 webUi: string; 93 }; 94 95 // ── Status page ── 96 status: { 97 actionFailed: string; 98 actionFinished: string; 99 actions: string; 100 agent: string; 101 connected: string; 102 connectedPlatforms: string; 103 disconnected: string; 104 error: string; 105 failed: string; 106 gateway: string; 107 gatewayFailedToStart: string; 108 lastUpdate: string; 109 noneRunning: string; 110 notRunning: string; 111 pid: string; 112 platformDisconnected: string; 113 platformError: string; 114 activeSessions: string; 115 recentSessions: string; 116 restartGateway: string; 117 restartingGateway: string; 118 running: string; 119 runningRemote: string; 120 startFailed: string; 121 starting: string; 122 startedInBackground: string; 123 stopped: string; 124 updateHermes: string; 125 updatingHermes: string; 126 waitingForOutput: string; 127 }; 128 129 // ── Sessions page ── 130 sessions: { 131 title: string; 132 searchPlaceholder: string; 133 noSessions: string; 134 noMatch: string; 135 startConversation: string; 136 noMessages: string; 137 untitledSession: string; 138 deleteSession: string; 139 confirmDeleteTitle: string; 140 confirmDeleteMessage: string; 141 sessionDeleted: string; 142 failedToDelete: string; 143 resumeInChat: string; 144 previousPage: string; 145 nextPage: string; 146 roles: { 147 user: string; 148 assistant: string; 149 system: string; 150 tool: string; 151 }; 152 }; 153 154 // ── Analytics page ── 155 analytics: { 156 period: string; 157 totalTokens: string; 158 totalSessions: string; 159 apiCalls: string; 160 dailyTokenUsage: string; 161 dailyBreakdown: string; 162 perModelBreakdown: string; 163 topSkills: string; 164 skill: string; 165 loads: string; 166 edits: string; 167 lastUsed: string; 168 input: string; 169 output: string; 170 total: string; 171 noUsageData: string; 172 startSession: string; 173 date: string; 174 model: string; 175 tokens: string; 176 perDayAvg: string; 177 acrossModels: string; 178 inOut: string; 179 }; 180 181 // ── Models page ── 182 models: { 183 modelsUsed: string; 184 estimatedCost: string; 185 tokens: string; 186 sessions: string; 187 avgPerSession: string; 188 apiCalls: string; 189 toolCalls: string; 190 noModelsData: string; 191 startSession: string; 192 }; 193 194 // ── Logs page ── 195 logs: { 196 title: string; 197 autoRefresh: string; 198 file: string; 199 level: string; 200 component: string; 201 lines: string; 202 noLogLines: string; 203 }; 204 205 // ── Cron page ── 206 cron: { 207 confirmDeleteMessage: string; 208 confirmDeleteTitle: string; 209 newJob: string; 210 nameOptional: string; 211 namePlaceholder: string; 212 prompt: string; 213 promptPlaceholder: string; 214 schedule: string; 215 schedulePlaceholder: string; 216 deliverTo: string; 217 scheduledJobs: string; 218 noJobs: string; 219 last: string; 220 next: string; 221 pause: string; 222 resume: string; 223 triggerNow: string; 224 delivery: { 225 local: string; 226 telegram: string; 227 discord: string; 228 slack: string; 229 email: string; 230 }; 231 }; 232 233 // ── Plugins page ── 234 pluginsPage: { 235 contextEngineLabel: string; 236 dashboardSlots: string; 237 disableRuntime: string; 238 enableAfterInstall: string; 239 enableRuntime: string; 240 forceReinstall: string; 241 headline: string; 242 identifierLabel: string; 243 inactive: string; 244 installBtn: string; 245 installHeading: string; 246 installHint: string; 247 memoryProviderLabel: string; 248 missingEnvWarn: string; 249 noDashboardTab: string; 250 openTab: string; 251 orphanHeading: string; 252 pluginListHeading: string; 253 providerDefaults: string; 254 providersHeading: string; 255 providersHint: string; 256 refreshDashboard: string; 257 removeConfirm: string; 258 removeHint: string; 259 rescanHeading: string; 260 rescanHint: string; 261 runtimeHeading: string; 262 saveProviders: string; 263 savedProviders: string; 264 sourceBadge: string; 265 authRequired: string; 266 authRequiredHint: string; 267 updateGit: string; 268 versionBadge: string; 269 showInSidebar: string; 270 hideFromSidebar: string; 271 }; 272 273 // ── Profiles page ── 274 profiles: { 275 newProfile: string; 276 name: string; 277 namePlaceholder: string; 278 nameRequired: string; 279 nameRule: string; 280 invalidName: string; 281 cloneFromDefault: string; 282 allProfiles: string; 283 noProfiles: string; 284 defaultBadge: string; 285 hasEnv: string; 286 model: string; 287 skills: string; 288 rename: string; 289 editSoul: string; 290 soulSection: string; 291 soulPlaceholder: string; 292 saveSoul: string; 293 soulSaved: string; 294 openInTerminal: string; 295 commandCopied: string; 296 copyFailed: string; 297 confirmDeleteTitle: string; 298 confirmDeleteMessage: string; 299 created: string; 300 deleted: string; 301 renamed: string; 302 }; 303 304 // ── Skills page ── 305 skills: { 306 title: string; 307 searchPlaceholder: string; 308 enabledOf: string; 309 all: string; 310 categories: string; 311 filters: string; 312 noSkills: string; 313 noSkillsMatch: string; 314 skillCount: string; 315 resultCount: string; 316 noDescription: string; 317 toolsets: string; 318 toolsetLabel: string; 319 noToolsetsMatch: string; 320 setupNeeded: string; 321 disabledForCli: string; 322 more: string; 323 }; 324 325 // ── Config page ── 326 config: { 327 configPath: string; 328 filters: string; 329 sections: string; 330 exportConfig: string; 331 importConfig: string; 332 resetDefaults: string; 333 resetScopeTooltip: string; 334 confirmResetScope: string; 335 resetScopeToast: string; 336 rawYaml: string; 337 searchResults: string; 338 fields: string; 339 noFieldsMatch: string; 340 configSaved: string; 341 yamlConfigSaved: string; 342 failedToSave: string; 343 failedToSaveYaml: string; 344 failedToLoadRaw: string; 345 configImported: string; 346 invalidJson: string; 347 categories: { 348 general: string; 349 agent: string; 350 terminal: string; 351 display: string; 352 delegation: string; 353 memory: string; 354 compression: string; 355 security: string; 356 browser: string; 357 voice: string; 358 tts: string; 359 stt: string; 360 logging: string; 361 discord: string; 362 auxiliary: string; 363 }; 364 }; 365 366 // ── Env / Keys page ── 367 env: { 368 changesNote: string; 369 confirmClearMessage: string; 370 confirmClearTitle: string; 371 description: string; 372 enterValue: string; 373 getKey: string; 374 hideAdvanced: string; 375 hideValue: string; 376 keysCount: string; 377 llmProviders: string; 378 notConfigured: string; 379 notSet: string; 380 providersConfigured: string; 381 replaceCurrentValue: string; 382 showAdvanced: string; 383 showValue: string; 384 }; 385 386 // ── OAuth ── 387 oauth: { 388 title: string; 389 providerLogins: string; 390 description: string; 391 connected: string; 392 expired: string; 393 notConnected: string; 394 runInTerminal: string; 395 noProviders: string; 396 login: string; 397 disconnect: string; 398 managedExternally: string; 399 copied: string; 400 cli: string; 401 copyCliCommand: string; 402 connect: string; 403 sessionExpires: string; 404 initiatingLogin: string; 405 exchangingCode: string; 406 connectedClosing: string; 407 loginFailed: string; 408 sessionExpired: string; 409 reOpenAuth: string; 410 reOpenVerification: string; 411 submitCode: string; 412 pasteCode: string; 413 waitingAuth: string; 414 enterCodePrompt: string; 415 pkceStep1: string; 416 pkceStep2: string; 417 pkceStep3: string; 418 flowLabels: { 419 pkce: string; 420 device_code: string; 421 external: string; 422 }; 423 expiresIn: string; 424 }; 425 426 // ── Language switcher ── 427 language: { 428 switchTo: string; 429 }; 430 431 // ── Theme switcher ── 432 theme: { 433 title: string; 434 switchTheme: string; 435 }; 436 }