mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-11 01:01:13 +00:00
chore(ui): regenerate control ui locale bundles
This commit is contained in:
439
ui/src/i18n/.i18n/de.meta.json
Normal file
439
ui/src/i18n/.i18n/de.meta.json
Normal file
@@ -0,0 +1,439 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.toolCallsToggle",
|
||||
"common.offline",
|
||||
"common.ok",
|
||||
"common.online",
|
||||
"common.search",
|
||||
"common.theme",
|
||||
"common.version",
|
||||
"cron.errors.agentMessageRequired",
|
||||
"cron.errors.agentMessageRequiredShort",
|
||||
"cron.errors.cronExprRequired",
|
||||
"cron.errors.cronExprRequiredShort",
|
||||
"cron.errors.everyAmountInvalid",
|
||||
"cron.errors.invalidIntervalAmount",
|
||||
"cron.errors.invalidRunTime",
|
||||
"cron.errors.invalidStaggerAmount",
|
||||
"cron.errors.nameRequired",
|
||||
"cron.errors.nameRequiredShort",
|
||||
"cron.errors.scheduleAtInvalid",
|
||||
"cron.errors.staggerAmountInvalid",
|
||||
"cron.errors.systemEventTextRequired",
|
||||
"cron.errors.systemTextRequired",
|
||||
"cron.errors.timeoutInvalid",
|
||||
"cron.errors.webhookUrlInvalid",
|
||||
"cron.errors.webhookUrlRequired",
|
||||
"cron.form.addJob",
|
||||
"cron.form.advanced",
|
||||
"cron.form.advancedHelp",
|
||||
"cron.form.agentHelp",
|
||||
"cron.form.agentId",
|
||||
"cron.form.agentPlaceholder",
|
||||
"cron.form.agentTurn",
|
||||
"cron.form.agentTurnHelp",
|
||||
"cron.form.announceDefault",
|
||||
"cron.form.assistantTaskPrompt",
|
||||
"cron.form.at",
|
||||
"cron.form.basics",
|
||||
"cron.form.basicsSub",
|
||||
"cron.form.bestEffortDelivery",
|
||||
"cron.form.bestEffortHelp",
|
||||
"cron.form.cancel",
|
||||
"cron.form.cantAddYet",
|
||||
"cron.form.channel",
|
||||
"cron.form.channelHelp",
|
||||
"cron.form.clearAgentHelp",
|
||||
"cron.form.clearAgentOverride",
|
||||
"cron.form.createSubtitle",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.days",
|
||||
"cron.form.deleteAfterRun",
|
||||
"cron.form.deleteAfterRunHelp",
|
||||
"cron.form.deliveryHelp",
|
||||
"cron.form.deliverySection",
|
||||
"cron.form.deliverySub",
|
||||
"cron.form.description",
|
||||
"cron.form.descriptionPlaceholder",
|
||||
"cron.form.editJob",
|
||||
"cron.form.every",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.exactTiming",
|
||||
"cron.form.exactTimingHelp",
|
||||
"cron.form.execution",
|
||||
"cron.form.executionSub",
|
||||
"cron.form.expression",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.fieldName",
|
||||
"cron.form.fillRequired",
|
||||
"cron.form.fixFields",
|
||||
"cron.form.fixFieldsPlural",
|
||||
"cron.form.hours",
|
||||
"cron.form.isolated",
|
||||
"cron.form.jitterHelp",
|
||||
"cron.form.main",
|
||||
"cron.form.mainTimelineMessage",
|
||||
"cron.form.minutes",
|
||||
"cron.form.model",
|
||||
"cron.form.modelHelp",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.namePlaceholder",
|
||||
"cron.form.newJob",
|
||||
"cron.form.nextHeartbeat",
|
||||
"cron.form.noneInternal",
|
||||
"cron.form.now",
|
||||
"cron.form.payloadKind",
|
||||
"cron.form.required",
|
||||
"cron.form.requiredSr",
|
||||
"cron.form.resultDelivery",
|
||||
"cron.form.runAt",
|
||||
"cron.form.saveChanges",
|
||||
"cron.form.saving",
|
||||
"cron.form.schedule",
|
||||
"cron.form.scheduleSub",
|
||||
"cron.form.seconds",
|
||||
"cron.form.session",
|
||||
"cron.form.sessionHelp",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.staggerUnit",
|
||||
"cron.form.staggerWindow",
|
||||
"cron.form.systemEvent",
|
||||
"cron.form.systemEventHelp",
|
||||
"cron.form.thinking",
|
||||
"cron.form.thinkingHelp",
|
||||
"cron.form.thinkingPlaceholder",
|
||||
"cron.form.timeoutHelp",
|
||||
"cron.form.timeoutPlaceholder",
|
||||
"cron.form.timeoutSeconds",
|
||||
"cron.form.timezoneHelp",
|
||||
"cron.form.timezoneOptional",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.to",
|
||||
"cron.form.toHelp",
|
||||
"cron.form.toPlaceholder",
|
||||
"cron.form.unit",
|
||||
"cron.form.updateSubtitle",
|
||||
"cron.form.wakeMode",
|
||||
"cron.form.wakeModeHelp",
|
||||
"cron.form.webhookHelp",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.form.webhookUrl",
|
||||
"cron.jobDetail.agent",
|
||||
"cron.jobDetail.delivery",
|
||||
"cron.jobDetail.prompt",
|
||||
"cron.jobDetail.system",
|
||||
"cron.jobList.allJobs",
|
||||
"cron.jobList.clone",
|
||||
"cron.jobList.disable",
|
||||
"cron.jobList.disabled",
|
||||
"cron.jobList.edit",
|
||||
"cron.jobList.enable",
|
||||
"cron.jobList.enabled",
|
||||
"cron.jobList.history",
|
||||
"cron.jobList.remove",
|
||||
"cron.jobList.run",
|
||||
"cron.jobList.selectJob",
|
||||
"cron.jobs.all",
|
||||
"cron.jobs.ascending",
|
||||
"cron.jobs.descending",
|
||||
"cron.jobs.direction",
|
||||
"cron.jobs.enabled",
|
||||
"cron.jobs.lastRun",
|
||||
"cron.jobs.loading",
|
||||
"cron.jobs.loadMore",
|
||||
"cron.jobs.name",
|
||||
"cron.jobs.nextRun",
|
||||
"cron.jobs.noMatching",
|
||||
"cron.jobs.recentlyUpdated",
|
||||
"cron.jobs.reset",
|
||||
"cron.jobs.schedule",
|
||||
"cron.jobs.searchJobs",
|
||||
"cron.jobs.searchPlaceholder",
|
||||
"cron.jobs.shownOf",
|
||||
"cron.jobs.sort",
|
||||
"cron.jobs.subtitle",
|
||||
"cron.jobs.title",
|
||||
"cron.jobState.last",
|
||||
"cron.jobState.next",
|
||||
"cron.jobState.status",
|
||||
"cron.runEntry.due",
|
||||
"cron.runEntry.next",
|
||||
"cron.runEntry.noSummary",
|
||||
"cron.runEntry.openRunChat",
|
||||
"cron.runEntry.runAt",
|
||||
"cron.runs.allDelivery",
|
||||
"cron.runs.allJobs",
|
||||
"cron.runs.allStatuses",
|
||||
"cron.runs.clear",
|
||||
"cron.runs.delivery",
|
||||
"cron.runs.deliveryDelivered",
|
||||
"cron.runs.deliveryNotDelivered",
|
||||
"cron.runs.deliveryNotRequested",
|
||||
"cron.runs.deliveryUnknown",
|
||||
"cron.runs.loadMore",
|
||||
"cron.runs.newestFirst",
|
||||
"cron.runs.noMatching",
|
||||
"cron.runs.oldestFirst",
|
||||
"cron.runs.runStatusError",
|
||||
"cron.runs.runStatusOk",
|
||||
"cron.runs.runStatusSkipped",
|
||||
"cron.runs.runStatusUnknown",
|
||||
"cron.runs.scope",
|
||||
"cron.runs.searchPlaceholder",
|
||||
"cron.runs.searchRuns",
|
||||
"cron.runs.selectedJob",
|
||||
"cron.runs.selectJobHint",
|
||||
"cron.runs.status",
|
||||
"cron.runs.subtitleAll",
|
||||
"cron.runs.subtitleJob",
|
||||
"cron.runs.title",
|
||||
"cron.summary.enabled",
|
||||
"cron.summary.jobs",
|
||||
"cron.summary.nextWake",
|
||||
"cron.summary.no",
|
||||
"cron.summary.refresh",
|
||||
"cron.summary.refreshing",
|
||||
"cron.summary.yes",
|
||||
"languages.en",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"login.passwordPlaceholder",
|
||||
"login.subtitle",
|
||||
"nav.agent",
|
||||
"nav.chat",
|
||||
"nav.resize",
|
||||
"overview.attention.title",
|
||||
"overview.cards.cost",
|
||||
"overview.cards.recentSessions",
|
||||
"overview.cards.skills",
|
||||
"overview.connection.docsHint",
|
||||
"overview.connection.docsLink",
|
||||
"overview.connection.step1",
|
||||
"overview.connection.step2",
|
||||
"overview.connection.step3",
|
||||
"overview.connection.step4",
|
||||
"overview.connection.title",
|
||||
"overview.eventLog.title",
|
||||
"overview.logTail.title",
|
||||
"overview.palette.noResults",
|
||||
"overview.palette.placeholder",
|
||||
"overview.quickActions.automation",
|
||||
"overview.quickActions.newSession",
|
||||
"overview.quickActions.refreshAll",
|
||||
"overview.quickActions.terminal",
|
||||
"overview.snapshot.status",
|
||||
"overview.snapshot.title",
|
||||
"overview.stats.cron",
|
||||
"subtitles.aiAgents",
|
||||
"subtitles.appearance",
|
||||
"subtitles.automation",
|
||||
"subtitles.communications",
|
||||
"subtitles.dreams",
|
||||
"subtitles.infrastructure",
|
||||
"tabs.aiAgents",
|
||||
"tabs.appearance",
|
||||
"tabs.automation",
|
||||
"tabs.chat",
|
||||
"tabs.communications",
|
||||
"tabs.debug",
|
||||
"tabs.dreams",
|
||||
"tabs.infrastructure",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.694Z",
|
||||
"locale": "de",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 82,
|
||||
"workflow": 1
|
||||
}
|
||||
257
ui/src/i18n/.i18n/es.meta.json
Normal file
257
ui/src/i18n/.i18n/es.meta.json
Normal file
@@ -0,0 +1,257 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.toolCallsToggle",
|
||||
"common.docs",
|
||||
"common.na",
|
||||
"common.search",
|
||||
"common.theme",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.runs.runStatusError",
|
||||
"cron.runs.runStatusOk",
|
||||
"cron.summary.no",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"login.passwordPlaceholder",
|
||||
"login.subtitle",
|
||||
"nav.chat",
|
||||
"nav.control",
|
||||
"nav.resize",
|
||||
"overview.attention.title",
|
||||
"overview.cards.cost",
|
||||
"overview.cards.recentSessions",
|
||||
"overview.cards.skills",
|
||||
"overview.connection.docsHint",
|
||||
"overview.connection.docsLink",
|
||||
"overview.connection.step1",
|
||||
"overview.connection.step2",
|
||||
"overview.connection.step3",
|
||||
"overview.connection.step4",
|
||||
"overview.connection.title",
|
||||
"overview.eventLog.title",
|
||||
"overview.logTail.title",
|
||||
"overview.notes.tailscaleTitle",
|
||||
"overview.palette.noResults",
|
||||
"overview.palette.placeholder",
|
||||
"overview.quickActions.automation",
|
||||
"overview.quickActions.newSession",
|
||||
"overview.quickActions.refreshAll",
|
||||
"overview.quickActions.terminal",
|
||||
"overview.stats.cron",
|
||||
"subtitles.aiAgents",
|
||||
"subtitles.appearance",
|
||||
"subtitles.automation",
|
||||
"subtitles.communications",
|
||||
"subtitles.dreams",
|
||||
"subtitles.infrastructure",
|
||||
"tabs.aiAgents",
|
||||
"tabs.appearance",
|
||||
"tabs.automation",
|
||||
"tabs.chat",
|
||||
"tabs.communications",
|
||||
"tabs.dreams",
|
||||
"tabs.infrastructure",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.707Z",
|
||||
"locale": "es",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 264,
|
||||
"workflow": 1
|
||||
}
|
||||
521
ui/src/i18n/.i18n/fr.meta.json
Normal file
521
ui/src/i18n/.i18n/fr.meta.json
Normal file
@@ -0,0 +1,521 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.disconnected",
|
||||
"chat.focusToggle",
|
||||
"chat.hideCronSessions",
|
||||
"chat.onboardingDisabled",
|
||||
"chat.refreshTitle",
|
||||
"chat.showCronSessions",
|
||||
"chat.showCronSessionsHidden",
|
||||
"chat.thinkingToggle",
|
||||
"chat.toolCallsToggle",
|
||||
"common.connect",
|
||||
"common.disabled",
|
||||
"common.docs",
|
||||
"common.enabled",
|
||||
"common.health",
|
||||
"common.na",
|
||||
"common.offline",
|
||||
"common.ok",
|
||||
"common.online",
|
||||
"common.refresh",
|
||||
"common.resources",
|
||||
"common.search",
|
||||
"common.theme",
|
||||
"common.version",
|
||||
"cron.errors.agentMessageRequired",
|
||||
"cron.errors.agentMessageRequiredShort",
|
||||
"cron.errors.cronExprRequired",
|
||||
"cron.errors.cronExprRequiredShort",
|
||||
"cron.errors.everyAmountInvalid",
|
||||
"cron.errors.invalidIntervalAmount",
|
||||
"cron.errors.invalidRunTime",
|
||||
"cron.errors.invalidStaggerAmount",
|
||||
"cron.errors.nameRequired",
|
||||
"cron.errors.nameRequiredShort",
|
||||
"cron.errors.scheduleAtInvalid",
|
||||
"cron.errors.staggerAmountInvalid",
|
||||
"cron.errors.systemEventTextRequired",
|
||||
"cron.errors.systemTextRequired",
|
||||
"cron.errors.timeoutInvalid",
|
||||
"cron.errors.webhookUrlInvalid",
|
||||
"cron.errors.webhookUrlRequired",
|
||||
"cron.form.addJob",
|
||||
"cron.form.advanced",
|
||||
"cron.form.advancedHelp",
|
||||
"cron.form.agentHelp",
|
||||
"cron.form.agentId",
|
||||
"cron.form.agentPlaceholder",
|
||||
"cron.form.agentTurn",
|
||||
"cron.form.agentTurnHelp",
|
||||
"cron.form.announceDefault",
|
||||
"cron.form.assistantTaskPrompt",
|
||||
"cron.form.at",
|
||||
"cron.form.basics",
|
||||
"cron.form.basicsSub",
|
||||
"cron.form.bestEffortDelivery",
|
||||
"cron.form.bestEffortHelp",
|
||||
"cron.form.cancel",
|
||||
"cron.form.cantAddYet",
|
||||
"cron.form.channel",
|
||||
"cron.form.channelHelp",
|
||||
"cron.form.clearAgentHelp",
|
||||
"cron.form.clearAgentOverride",
|
||||
"cron.form.createSubtitle",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.days",
|
||||
"cron.form.deleteAfterRun",
|
||||
"cron.form.deleteAfterRunHelp",
|
||||
"cron.form.deliveryHelp",
|
||||
"cron.form.deliverySection",
|
||||
"cron.form.deliverySub",
|
||||
"cron.form.description",
|
||||
"cron.form.descriptionPlaceholder",
|
||||
"cron.form.editJob",
|
||||
"cron.form.every",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.exactTiming",
|
||||
"cron.form.exactTimingHelp",
|
||||
"cron.form.execution",
|
||||
"cron.form.executionSub",
|
||||
"cron.form.expression",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.fieldName",
|
||||
"cron.form.fillRequired",
|
||||
"cron.form.fixFields",
|
||||
"cron.form.fixFieldsPlural",
|
||||
"cron.form.hours",
|
||||
"cron.form.isolated",
|
||||
"cron.form.jitterHelp",
|
||||
"cron.form.main",
|
||||
"cron.form.mainTimelineMessage",
|
||||
"cron.form.minutes",
|
||||
"cron.form.model",
|
||||
"cron.form.modelHelp",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.namePlaceholder",
|
||||
"cron.form.newJob",
|
||||
"cron.form.nextHeartbeat",
|
||||
"cron.form.noneInternal",
|
||||
"cron.form.now",
|
||||
"cron.form.payloadKind",
|
||||
"cron.form.required",
|
||||
"cron.form.requiredSr",
|
||||
"cron.form.resultDelivery",
|
||||
"cron.form.runAt",
|
||||
"cron.form.saveChanges",
|
||||
"cron.form.saving",
|
||||
"cron.form.schedule",
|
||||
"cron.form.scheduleSub",
|
||||
"cron.form.seconds",
|
||||
"cron.form.session",
|
||||
"cron.form.sessionHelp",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.staggerUnit",
|
||||
"cron.form.staggerWindow",
|
||||
"cron.form.systemEvent",
|
||||
"cron.form.systemEventHelp",
|
||||
"cron.form.thinking",
|
||||
"cron.form.thinkingHelp",
|
||||
"cron.form.thinkingPlaceholder",
|
||||
"cron.form.timeoutHelp",
|
||||
"cron.form.timeoutPlaceholder",
|
||||
"cron.form.timeoutSeconds",
|
||||
"cron.form.timezoneHelp",
|
||||
"cron.form.timezoneOptional",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.to",
|
||||
"cron.form.toHelp",
|
||||
"cron.form.toPlaceholder",
|
||||
"cron.form.unit",
|
||||
"cron.form.updateSubtitle",
|
||||
"cron.form.wakeMode",
|
||||
"cron.form.wakeModeHelp",
|
||||
"cron.form.webhookHelp",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.form.webhookUrl",
|
||||
"cron.jobDetail.agent",
|
||||
"cron.jobDetail.delivery",
|
||||
"cron.jobDetail.prompt",
|
||||
"cron.jobDetail.system",
|
||||
"cron.jobList.allJobs",
|
||||
"cron.jobList.clone",
|
||||
"cron.jobList.disable",
|
||||
"cron.jobList.disabled",
|
||||
"cron.jobList.edit",
|
||||
"cron.jobList.enable",
|
||||
"cron.jobList.enabled",
|
||||
"cron.jobList.history",
|
||||
"cron.jobList.remove",
|
||||
"cron.jobList.run",
|
||||
"cron.jobList.selectJob",
|
||||
"cron.jobs.all",
|
||||
"cron.jobs.ascending",
|
||||
"cron.jobs.descending",
|
||||
"cron.jobs.direction",
|
||||
"cron.jobs.enabled",
|
||||
"cron.jobs.lastRun",
|
||||
"cron.jobs.loading",
|
||||
"cron.jobs.loadMore",
|
||||
"cron.jobs.name",
|
||||
"cron.jobs.nextRun",
|
||||
"cron.jobs.noMatching",
|
||||
"cron.jobs.recentlyUpdated",
|
||||
"cron.jobs.reset",
|
||||
"cron.jobs.schedule",
|
||||
"cron.jobs.searchJobs",
|
||||
"cron.jobs.searchPlaceholder",
|
||||
"cron.jobs.shownOf",
|
||||
"cron.jobs.sort",
|
||||
"cron.jobs.subtitle",
|
||||
"cron.jobs.title",
|
||||
"cron.jobState.last",
|
||||
"cron.jobState.next",
|
||||
"cron.jobState.status",
|
||||
"cron.runEntry.due",
|
||||
"cron.runEntry.next",
|
||||
"cron.runEntry.noSummary",
|
||||
"cron.runEntry.openRunChat",
|
||||
"cron.runEntry.runAt",
|
||||
"cron.runs.allDelivery",
|
||||
"cron.runs.allJobs",
|
||||
"cron.runs.allStatuses",
|
||||
"cron.runs.clear",
|
||||
"cron.runs.delivery",
|
||||
"cron.runs.deliveryDelivered",
|
||||
"cron.runs.deliveryNotDelivered",
|
||||
"cron.runs.deliveryNotRequested",
|
||||
"cron.runs.deliveryUnknown",
|
||||
"cron.runs.loadMore",
|
||||
"cron.runs.newestFirst",
|
||||
"cron.runs.noMatching",
|
||||
"cron.runs.oldestFirst",
|
||||
"cron.runs.runStatusError",
|
||||
"cron.runs.runStatusOk",
|
||||
"cron.runs.runStatusSkipped",
|
||||
"cron.runs.runStatusUnknown",
|
||||
"cron.runs.scope",
|
||||
"cron.runs.searchPlaceholder",
|
||||
"cron.runs.searchRuns",
|
||||
"cron.runs.selectedJob",
|
||||
"cron.runs.selectJobHint",
|
||||
"cron.runs.status",
|
||||
"cron.runs.subtitleAll",
|
||||
"cron.runs.subtitleJob",
|
||||
"cron.runs.title",
|
||||
"cron.summary.enabled",
|
||||
"cron.summary.jobs",
|
||||
"cron.summary.nextWake",
|
||||
"cron.summary.no",
|
||||
"cron.summary.refresh",
|
||||
"cron.summary.refreshing",
|
||||
"cron.summary.yes",
|
||||
"languages.de",
|
||||
"languages.en",
|
||||
"languages.es",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"languages.ptBR",
|
||||
"languages.zhCN",
|
||||
"languages.zhTW",
|
||||
"login.passwordPlaceholder",
|
||||
"login.subtitle",
|
||||
"nav.agent",
|
||||
"nav.chat",
|
||||
"nav.collapse",
|
||||
"nav.control",
|
||||
"nav.expand",
|
||||
"nav.resize",
|
||||
"nav.settings",
|
||||
"overview.access.connectHint",
|
||||
"overview.access.language",
|
||||
"overview.access.password",
|
||||
"overview.access.sessionKey",
|
||||
"overview.access.subtitle",
|
||||
"overview.access.title",
|
||||
"overview.access.token",
|
||||
"overview.access.trustedProxy",
|
||||
"overview.access.wsUrl",
|
||||
"overview.attention.title",
|
||||
"overview.auth.failed",
|
||||
"overview.auth.required",
|
||||
"overview.cards.cost",
|
||||
"overview.cards.recentSessions",
|
||||
"overview.cards.skills",
|
||||
"overview.connection.docsHint",
|
||||
"overview.connection.docsLink",
|
||||
"overview.connection.step1",
|
||||
"overview.connection.step2",
|
||||
"overview.connection.step3",
|
||||
"overview.connection.step4",
|
||||
"overview.connection.title",
|
||||
"overview.eventLog.title",
|
||||
"overview.insecure.hint",
|
||||
"overview.insecure.stayHttp",
|
||||
"overview.logTail.title",
|
||||
"overview.notes.cronText",
|
||||
"overview.notes.cronTitle",
|
||||
"overview.notes.sessionText",
|
||||
"overview.notes.sessionTitle",
|
||||
"overview.notes.subtitle",
|
||||
"overview.notes.tailscaleText",
|
||||
"overview.notes.tailscaleTitle",
|
||||
"overview.notes.title",
|
||||
"overview.pairing.hint",
|
||||
"overview.pairing.mobileHint",
|
||||
"overview.palette.noResults",
|
||||
"overview.palette.placeholder",
|
||||
"overview.quickActions.automation",
|
||||
"overview.quickActions.newSession",
|
||||
"overview.quickActions.refreshAll",
|
||||
"overview.quickActions.terminal",
|
||||
"overview.snapshot.channelsHint",
|
||||
"overview.snapshot.lastChannelsRefresh",
|
||||
"overview.snapshot.status",
|
||||
"overview.snapshot.subtitle",
|
||||
"overview.snapshot.tickInterval",
|
||||
"overview.snapshot.title",
|
||||
"overview.snapshot.uptime",
|
||||
"overview.stats.cron",
|
||||
"overview.stats.cronNext",
|
||||
"overview.stats.instances",
|
||||
"overview.stats.instancesHint",
|
||||
"overview.stats.sessions",
|
||||
"overview.stats.sessionsHint",
|
||||
"subtitles.agents",
|
||||
"subtitles.aiAgents",
|
||||
"subtitles.appearance",
|
||||
"subtitles.automation",
|
||||
"subtitles.channels",
|
||||
"subtitles.chat",
|
||||
"subtitles.communications",
|
||||
"subtitles.config",
|
||||
"subtitles.cron",
|
||||
"subtitles.debug",
|
||||
"subtitles.dreams",
|
||||
"subtitles.infrastructure",
|
||||
"subtitles.instances",
|
||||
"subtitles.logs",
|
||||
"subtitles.nodes",
|
||||
"subtitles.overview",
|
||||
"subtitles.sessions",
|
||||
"subtitles.skills",
|
||||
"subtitles.usage",
|
||||
"tabs.agents",
|
||||
"tabs.aiAgents",
|
||||
"tabs.appearance",
|
||||
"tabs.automation",
|
||||
"tabs.channels",
|
||||
"tabs.chat",
|
||||
"tabs.communications",
|
||||
"tabs.config",
|
||||
"tabs.cron",
|
||||
"tabs.debug",
|
||||
"tabs.dreams",
|
||||
"tabs.infrastructure",
|
||||
"tabs.instances",
|
||||
"tabs.logs",
|
||||
"tabs.nodes",
|
||||
"tabs.overview",
|
||||
"tabs.sessions",
|
||||
"tabs.skills",
|
||||
"tabs.usage",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.742Z",
|
||||
"locale": "fr",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 0,
|
||||
"workflow": 1
|
||||
}
|
||||
42
ui/src/i18n/.i18n/glossary.de.json
Normal file
42
ui/src/i18n/.i18n/glossary.de.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
42
ui/src/i18n/.i18n/glossary.es.json
Normal file
42
ui/src/i18n/.i18n/glossary.es.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
42
ui/src/i18n/.i18n/glossary.fr.json
Normal file
42
ui/src/i18n/.i18n/glossary.fr.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
42
ui/src/i18n/.i18n/glossary.ja-JP.json
Normal file
42
ui/src/i18n/.i18n/glossary.ja-JP.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
42
ui/src/i18n/.i18n/glossary.ko.json
Normal file
42
ui/src/i18n/.i18n/glossary.ko.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
42
ui/src/i18n/.i18n/glossary.pt-BR.json
Normal file
42
ui/src/i18n/.i18n/glossary.pt-BR.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
42
ui/src/i18n/.i18n/glossary.zh-CN.json
Normal file
42
ui/src/i18n/.i18n/glossary.zh-CN.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
42
ui/src/i18n/.i18n/glossary.zh-TW.json
Normal file
42
ui/src/i18n/.i18n/glossary.zh-TW.json
Normal file
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"source": "OpenClaw",
|
||||
"target": "OpenClaw"
|
||||
},
|
||||
{
|
||||
"source": "Gateway",
|
||||
"target": "Gateway"
|
||||
},
|
||||
{
|
||||
"source": "Control UI",
|
||||
"target": "Control UI"
|
||||
},
|
||||
{
|
||||
"source": "Skills",
|
||||
"target": "Skills"
|
||||
},
|
||||
{
|
||||
"source": "Tailscale",
|
||||
"target": "Tailscale"
|
||||
},
|
||||
{
|
||||
"source": "WhatsApp",
|
||||
"target": "WhatsApp"
|
||||
},
|
||||
{
|
||||
"source": "Telegram",
|
||||
"target": "Telegram"
|
||||
},
|
||||
{
|
||||
"source": "Discord",
|
||||
"target": "Discord"
|
||||
},
|
||||
{
|
||||
"source": "Signal",
|
||||
"target": "Signal"
|
||||
},
|
||||
{
|
||||
"source": "iMessage",
|
||||
"target": "iMessage"
|
||||
}
|
||||
]
|
||||
521
ui/src/i18n/.i18n/ja-JP.meta.json
Normal file
521
ui/src/i18n/.i18n/ja-JP.meta.json
Normal file
@@ -0,0 +1,521 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.disconnected",
|
||||
"chat.focusToggle",
|
||||
"chat.hideCronSessions",
|
||||
"chat.onboardingDisabled",
|
||||
"chat.refreshTitle",
|
||||
"chat.showCronSessions",
|
||||
"chat.showCronSessionsHidden",
|
||||
"chat.thinkingToggle",
|
||||
"chat.toolCallsToggle",
|
||||
"common.connect",
|
||||
"common.disabled",
|
||||
"common.docs",
|
||||
"common.enabled",
|
||||
"common.health",
|
||||
"common.na",
|
||||
"common.offline",
|
||||
"common.ok",
|
||||
"common.online",
|
||||
"common.refresh",
|
||||
"common.resources",
|
||||
"common.search",
|
||||
"common.theme",
|
||||
"common.version",
|
||||
"cron.errors.agentMessageRequired",
|
||||
"cron.errors.agentMessageRequiredShort",
|
||||
"cron.errors.cronExprRequired",
|
||||
"cron.errors.cronExprRequiredShort",
|
||||
"cron.errors.everyAmountInvalid",
|
||||
"cron.errors.invalidIntervalAmount",
|
||||
"cron.errors.invalidRunTime",
|
||||
"cron.errors.invalidStaggerAmount",
|
||||
"cron.errors.nameRequired",
|
||||
"cron.errors.nameRequiredShort",
|
||||
"cron.errors.scheduleAtInvalid",
|
||||
"cron.errors.staggerAmountInvalid",
|
||||
"cron.errors.systemEventTextRequired",
|
||||
"cron.errors.systemTextRequired",
|
||||
"cron.errors.timeoutInvalid",
|
||||
"cron.errors.webhookUrlInvalid",
|
||||
"cron.errors.webhookUrlRequired",
|
||||
"cron.form.addJob",
|
||||
"cron.form.advanced",
|
||||
"cron.form.advancedHelp",
|
||||
"cron.form.agentHelp",
|
||||
"cron.form.agentId",
|
||||
"cron.form.agentPlaceholder",
|
||||
"cron.form.agentTurn",
|
||||
"cron.form.agentTurnHelp",
|
||||
"cron.form.announceDefault",
|
||||
"cron.form.assistantTaskPrompt",
|
||||
"cron.form.at",
|
||||
"cron.form.basics",
|
||||
"cron.form.basicsSub",
|
||||
"cron.form.bestEffortDelivery",
|
||||
"cron.form.bestEffortHelp",
|
||||
"cron.form.cancel",
|
||||
"cron.form.cantAddYet",
|
||||
"cron.form.channel",
|
||||
"cron.form.channelHelp",
|
||||
"cron.form.clearAgentHelp",
|
||||
"cron.form.clearAgentOverride",
|
||||
"cron.form.createSubtitle",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.days",
|
||||
"cron.form.deleteAfterRun",
|
||||
"cron.form.deleteAfterRunHelp",
|
||||
"cron.form.deliveryHelp",
|
||||
"cron.form.deliverySection",
|
||||
"cron.form.deliverySub",
|
||||
"cron.form.description",
|
||||
"cron.form.descriptionPlaceholder",
|
||||
"cron.form.editJob",
|
||||
"cron.form.every",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.exactTiming",
|
||||
"cron.form.exactTimingHelp",
|
||||
"cron.form.execution",
|
||||
"cron.form.executionSub",
|
||||
"cron.form.expression",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.fieldName",
|
||||
"cron.form.fillRequired",
|
||||
"cron.form.fixFields",
|
||||
"cron.form.fixFieldsPlural",
|
||||
"cron.form.hours",
|
||||
"cron.form.isolated",
|
||||
"cron.form.jitterHelp",
|
||||
"cron.form.main",
|
||||
"cron.form.mainTimelineMessage",
|
||||
"cron.form.minutes",
|
||||
"cron.form.model",
|
||||
"cron.form.modelHelp",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.namePlaceholder",
|
||||
"cron.form.newJob",
|
||||
"cron.form.nextHeartbeat",
|
||||
"cron.form.noneInternal",
|
||||
"cron.form.now",
|
||||
"cron.form.payloadKind",
|
||||
"cron.form.required",
|
||||
"cron.form.requiredSr",
|
||||
"cron.form.resultDelivery",
|
||||
"cron.form.runAt",
|
||||
"cron.form.saveChanges",
|
||||
"cron.form.saving",
|
||||
"cron.form.schedule",
|
||||
"cron.form.scheduleSub",
|
||||
"cron.form.seconds",
|
||||
"cron.form.session",
|
||||
"cron.form.sessionHelp",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.staggerUnit",
|
||||
"cron.form.staggerWindow",
|
||||
"cron.form.systemEvent",
|
||||
"cron.form.systemEventHelp",
|
||||
"cron.form.thinking",
|
||||
"cron.form.thinkingHelp",
|
||||
"cron.form.thinkingPlaceholder",
|
||||
"cron.form.timeoutHelp",
|
||||
"cron.form.timeoutPlaceholder",
|
||||
"cron.form.timeoutSeconds",
|
||||
"cron.form.timezoneHelp",
|
||||
"cron.form.timezoneOptional",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.to",
|
||||
"cron.form.toHelp",
|
||||
"cron.form.toPlaceholder",
|
||||
"cron.form.unit",
|
||||
"cron.form.updateSubtitle",
|
||||
"cron.form.wakeMode",
|
||||
"cron.form.wakeModeHelp",
|
||||
"cron.form.webhookHelp",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.form.webhookUrl",
|
||||
"cron.jobDetail.agent",
|
||||
"cron.jobDetail.delivery",
|
||||
"cron.jobDetail.prompt",
|
||||
"cron.jobDetail.system",
|
||||
"cron.jobList.allJobs",
|
||||
"cron.jobList.clone",
|
||||
"cron.jobList.disable",
|
||||
"cron.jobList.disabled",
|
||||
"cron.jobList.edit",
|
||||
"cron.jobList.enable",
|
||||
"cron.jobList.enabled",
|
||||
"cron.jobList.history",
|
||||
"cron.jobList.remove",
|
||||
"cron.jobList.run",
|
||||
"cron.jobList.selectJob",
|
||||
"cron.jobs.all",
|
||||
"cron.jobs.ascending",
|
||||
"cron.jobs.descending",
|
||||
"cron.jobs.direction",
|
||||
"cron.jobs.enabled",
|
||||
"cron.jobs.lastRun",
|
||||
"cron.jobs.loading",
|
||||
"cron.jobs.loadMore",
|
||||
"cron.jobs.name",
|
||||
"cron.jobs.nextRun",
|
||||
"cron.jobs.noMatching",
|
||||
"cron.jobs.recentlyUpdated",
|
||||
"cron.jobs.reset",
|
||||
"cron.jobs.schedule",
|
||||
"cron.jobs.searchJobs",
|
||||
"cron.jobs.searchPlaceholder",
|
||||
"cron.jobs.shownOf",
|
||||
"cron.jobs.sort",
|
||||
"cron.jobs.subtitle",
|
||||
"cron.jobs.title",
|
||||
"cron.jobState.last",
|
||||
"cron.jobState.next",
|
||||
"cron.jobState.status",
|
||||
"cron.runEntry.due",
|
||||
"cron.runEntry.next",
|
||||
"cron.runEntry.noSummary",
|
||||
"cron.runEntry.openRunChat",
|
||||
"cron.runEntry.runAt",
|
||||
"cron.runs.allDelivery",
|
||||
"cron.runs.allJobs",
|
||||
"cron.runs.allStatuses",
|
||||
"cron.runs.clear",
|
||||
"cron.runs.delivery",
|
||||
"cron.runs.deliveryDelivered",
|
||||
"cron.runs.deliveryNotDelivered",
|
||||
"cron.runs.deliveryNotRequested",
|
||||
"cron.runs.deliveryUnknown",
|
||||
"cron.runs.loadMore",
|
||||
"cron.runs.newestFirst",
|
||||
"cron.runs.noMatching",
|
||||
"cron.runs.oldestFirst",
|
||||
"cron.runs.runStatusError",
|
||||
"cron.runs.runStatusOk",
|
||||
"cron.runs.runStatusSkipped",
|
||||
"cron.runs.runStatusUnknown",
|
||||
"cron.runs.scope",
|
||||
"cron.runs.searchPlaceholder",
|
||||
"cron.runs.searchRuns",
|
||||
"cron.runs.selectedJob",
|
||||
"cron.runs.selectJobHint",
|
||||
"cron.runs.status",
|
||||
"cron.runs.subtitleAll",
|
||||
"cron.runs.subtitleJob",
|
||||
"cron.runs.title",
|
||||
"cron.summary.enabled",
|
||||
"cron.summary.jobs",
|
||||
"cron.summary.nextWake",
|
||||
"cron.summary.no",
|
||||
"cron.summary.refresh",
|
||||
"cron.summary.refreshing",
|
||||
"cron.summary.yes",
|
||||
"languages.de",
|
||||
"languages.en",
|
||||
"languages.es",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"languages.ptBR",
|
||||
"languages.zhCN",
|
||||
"languages.zhTW",
|
||||
"login.passwordPlaceholder",
|
||||
"login.subtitle",
|
||||
"nav.agent",
|
||||
"nav.chat",
|
||||
"nav.collapse",
|
||||
"nav.control",
|
||||
"nav.expand",
|
||||
"nav.resize",
|
||||
"nav.settings",
|
||||
"overview.access.connectHint",
|
||||
"overview.access.language",
|
||||
"overview.access.password",
|
||||
"overview.access.sessionKey",
|
||||
"overview.access.subtitle",
|
||||
"overview.access.title",
|
||||
"overview.access.token",
|
||||
"overview.access.trustedProxy",
|
||||
"overview.access.wsUrl",
|
||||
"overview.attention.title",
|
||||
"overview.auth.failed",
|
||||
"overview.auth.required",
|
||||
"overview.cards.cost",
|
||||
"overview.cards.recentSessions",
|
||||
"overview.cards.skills",
|
||||
"overview.connection.docsHint",
|
||||
"overview.connection.docsLink",
|
||||
"overview.connection.step1",
|
||||
"overview.connection.step2",
|
||||
"overview.connection.step3",
|
||||
"overview.connection.step4",
|
||||
"overview.connection.title",
|
||||
"overview.eventLog.title",
|
||||
"overview.insecure.hint",
|
||||
"overview.insecure.stayHttp",
|
||||
"overview.logTail.title",
|
||||
"overview.notes.cronText",
|
||||
"overview.notes.cronTitle",
|
||||
"overview.notes.sessionText",
|
||||
"overview.notes.sessionTitle",
|
||||
"overview.notes.subtitle",
|
||||
"overview.notes.tailscaleText",
|
||||
"overview.notes.tailscaleTitle",
|
||||
"overview.notes.title",
|
||||
"overview.pairing.hint",
|
||||
"overview.pairing.mobileHint",
|
||||
"overview.palette.noResults",
|
||||
"overview.palette.placeholder",
|
||||
"overview.quickActions.automation",
|
||||
"overview.quickActions.newSession",
|
||||
"overview.quickActions.refreshAll",
|
||||
"overview.quickActions.terminal",
|
||||
"overview.snapshot.channelsHint",
|
||||
"overview.snapshot.lastChannelsRefresh",
|
||||
"overview.snapshot.status",
|
||||
"overview.snapshot.subtitle",
|
||||
"overview.snapshot.tickInterval",
|
||||
"overview.snapshot.title",
|
||||
"overview.snapshot.uptime",
|
||||
"overview.stats.cron",
|
||||
"overview.stats.cronNext",
|
||||
"overview.stats.instances",
|
||||
"overview.stats.instancesHint",
|
||||
"overview.stats.sessions",
|
||||
"overview.stats.sessionsHint",
|
||||
"subtitles.agents",
|
||||
"subtitles.aiAgents",
|
||||
"subtitles.appearance",
|
||||
"subtitles.automation",
|
||||
"subtitles.channels",
|
||||
"subtitles.chat",
|
||||
"subtitles.communications",
|
||||
"subtitles.config",
|
||||
"subtitles.cron",
|
||||
"subtitles.debug",
|
||||
"subtitles.dreams",
|
||||
"subtitles.infrastructure",
|
||||
"subtitles.instances",
|
||||
"subtitles.logs",
|
||||
"subtitles.nodes",
|
||||
"subtitles.overview",
|
||||
"subtitles.sessions",
|
||||
"subtitles.skills",
|
||||
"subtitles.usage",
|
||||
"tabs.agents",
|
||||
"tabs.aiAgents",
|
||||
"tabs.appearance",
|
||||
"tabs.automation",
|
||||
"tabs.channels",
|
||||
"tabs.chat",
|
||||
"tabs.communications",
|
||||
"tabs.config",
|
||||
"tabs.cron",
|
||||
"tabs.debug",
|
||||
"tabs.dreams",
|
||||
"tabs.infrastructure",
|
||||
"tabs.instances",
|
||||
"tabs.logs",
|
||||
"tabs.nodes",
|
||||
"tabs.overview",
|
||||
"tabs.sessions",
|
||||
"tabs.skills",
|
||||
"tabs.usage",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.722Z",
|
||||
"locale": "ja-JP",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 0,
|
||||
"workflow": 1
|
||||
}
|
||||
521
ui/src/i18n/.i18n/ko.meta.json
Normal file
521
ui/src/i18n/.i18n/ko.meta.json
Normal file
@@ -0,0 +1,521 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.disconnected",
|
||||
"chat.focusToggle",
|
||||
"chat.hideCronSessions",
|
||||
"chat.onboardingDisabled",
|
||||
"chat.refreshTitle",
|
||||
"chat.showCronSessions",
|
||||
"chat.showCronSessionsHidden",
|
||||
"chat.thinkingToggle",
|
||||
"chat.toolCallsToggle",
|
||||
"common.connect",
|
||||
"common.disabled",
|
||||
"common.docs",
|
||||
"common.enabled",
|
||||
"common.health",
|
||||
"common.na",
|
||||
"common.offline",
|
||||
"common.ok",
|
||||
"common.online",
|
||||
"common.refresh",
|
||||
"common.resources",
|
||||
"common.search",
|
||||
"common.theme",
|
||||
"common.version",
|
||||
"cron.errors.agentMessageRequired",
|
||||
"cron.errors.agentMessageRequiredShort",
|
||||
"cron.errors.cronExprRequired",
|
||||
"cron.errors.cronExprRequiredShort",
|
||||
"cron.errors.everyAmountInvalid",
|
||||
"cron.errors.invalidIntervalAmount",
|
||||
"cron.errors.invalidRunTime",
|
||||
"cron.errors.invalidStaggerAmount",
|
||||
"cron.errors.nameRequired",
|
||||
"cron.errors.nameRequiredShort",
|
||||
"cron.errors.scheduleAtInvalid",
|
||||
"cron.errors.staggerAmountInvalid",
|
||||
"cron.errors.systemEventTextRequired",
|
||||
"cron.errors.systemTextRequired",
|
||||
"cron.errors.timeoutInvalid",
|
||||
"cron.errors.webhookUrlInvalid",
|
||||
"cron.errors.webhookUrlRequired",
|
||||
"cron.form.addJob",
|
||||
"cron.form.advanced",
|
||||
"cron.form.advancedHelp",
|
||||
"cron.form.agentHelp",
|
||||
"cron.form.agentId",
|
||||
"cron.form.agentPlaceholder",
|
||||
"cron.form.agentTurn",
|
||||
"cron.form.agentTurnHelp",
|
||||
"cron.form.announceDefault",
|
||||
"cron.form.assistantTaskPrompt",
|
||||
"cron.form.at",
|
||||
"cron.form.basics",
|
||||
"cron.form.basicsSub",
|
||||
"cron.form.bestEffortDelivery",
|
||||
"cron.form.bestEffortHelp",
|
||||
"cron.form.cancel",
|
||||
"cron.form.cantAddYet",
|
||||
"cron.form.channel",
|
||||
"cron.form.channelHelp",
|
||||
"cron.form.clearAgentHelp",
|
||||
"cron.form.clearAgentOverride",
|
||||
"cron.form.createSubtitle",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.days",
|
||||
"cron.form.deleteAfterRun",
|
||||
"cron.form.deleteAfterRunHelp",
|
||||
"cron.form.deliveryHelp",
|
||||
"cron.form.deliverySection",
|
||||
"cron.form.deliverySub",
|
||||
"cron.form.description",
|
||||
"cron.form.descriptionPlaceholder",
|
||||
"cron.form.editJob",
|
||||
"cron.form.every",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.exactTiming",
|
||||
"cron.form.exactTimingHelp",
|
||||
"cron.form.execution",
|
||||
"cron.form.executionSub",
|
||||
"cron.form.expression",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.fieldName",
|
||||
"cron.form.fillRequired",
|
||||
"cron.form.fixFields",
|
||||
"cron.form.fixFieldsPlural",
|
||||
"cron.form.hours",
|
||||
"cron.form.isolated",
|
||||
"cron.form.jitterHelp",
|
||||
"cron.form.main",
|
||||
"cron.form.mainTimelineMessage",
|
||||
"cron.form.minutes",
|
||||
"cron.form.model",
|
||||
"cron.form.modelHelp",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.namePlaceholder",
|
||||
"cron.form.newJob",
|
||||
"cron.form.nextHeartbeat",
|
||||
"cron.form.noneInternal",
|
||||
"cron.form.now",
|
||||
"cron.form.payloadKind",
|
||||
"cron.form.required",
|
||||
"cron.form.requiredSr",
|
||||
"cron.form.resultDelivery",
|
||||
"cron.form.runAt",
|
||||
"cron.form.saveChanges",
|
||||
"cron.form.saving",
|
||||
"cron.form.schedule",
|
||||
"cron.form.scheduleSub",
|
||||
"cron.form.seconds",
|
||||
"cron.form.session",
|
||||
"cron.form.sessionHelp",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.staggerUnit",
|
||||
"cron.form.staggerWindow",
|
||||
"cron.form.systemEvent",
|
||||
"cron.form.systemEventHelp",
|
||||
"cron.form.thinking",
|
||||
"cron.form.thinkingHelp",
|
||||
"cron.form.thinkingPlaceholder",
|
||||
"cron.form.timeoutHelp",
|
||||
"cron.form.timeoutPlaceholder",
|
||||
"cron.form.timeoutSeconds",
|
||||
"cron.form.timezoneHelp",
|
||||
"cron.form.timezoneOptional",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.to",
|
||||
"cron.form.toHelp",
|
||||
"cron.form.toPlaceholder",
|
||||
"cron.form.unit",
|
||||
"cron.form.updateSubtitle",
|
||||
"cron.form.wakeMode",
|
||||
"cron.form.wakeModeHelp",
|
||||
"cron.form.webhookHelp",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.form.webhookUrl",
|
||||
"cron.jobDetail.agent",
|
||||
"cron.jobDetail.delivery",
|
||||
"cron.jobDetail.prompt",
|
||||
"cron.jobDetail.system",
|
||||
"cron.jobList.allJobs",
|
||||
"cron.jobList.clone",
|
||||
"cron.jobList.disable",
|
||||
"cron.jobList.disabled",
|
||||
"cron.jobList.edit",
|
||||
"cron.jobList.enable",
|
||||
"cron.jobList.enabled",
|
||||
"cron.jobList.history",
|
||||
"cron.jobList.remove",
|
||||
"cron.jobList.run",
|
||||
"cron.jobList.selectJob",
|
||||
"cron.jobs.all",
|
||||
"cron.jobs.ascending",
|
||||
"cron.jobs.descending",
|
||||
"cron.jobs.direction",
|
||||
"cron.jobs.enabled",
|
||||
"cron.jobs.lastRun",
|
||||
"cron.jobs.loading",
|
||||
"cron.jobs.loadMore",
|
||||
"cron.jobs.name",
|
||||
"cron.jobs.nextRun",
|
||||
"cron.jobs.noMatching",
|
||||
"cron.jobs.recentlyUpdated",
|
||||
"cron.jobs.reset",
|
||||
"cron.jobs.schedule",
|
||||
"cron.jobs.searchJobs",
|
||||
"cron.jobs.searchPlaceholder",
|
||||
"cron.jobs.shownOf",
|
||||
"cron.jobs.sort",
|
||||
"cron.jobs.subtitle",
|
||||
"cron.jobs.title",
|
||||
"cron.jobState.last",
|
||||
"cron.jobState.next",
|
||||
"cron.jobState.status",
|
||||
"cron.runEntry.due",
|
||||
"cron.runEntry.next",
|
||||
"cron.runEntry.noSummary",
|
||||
"cron.runEntry.openRunChat",
|
||||
"cron.runEntry.runAt",
|
||||
"cron.runs.allDelivery",
|
||||
"cron.runs.allJobs",
|
||||
"cron.runs.allStatuses",
|
||||
"cron.runs.clear",
|
||||
"cron.runs.delivery",
|
||||
"cron.runs.deliveryDelivered",
|
||||
"cron.runs.deliveryNotDelivered",
|
||||
"cron.runs.deliveryNotRequested",
|
||||
"cron.runs.deliveryUnknown",
|
||||
"cron.runs.loadMore",
|
||||
"cron.runs.newestFirst",
|
||||
"cron.runs.noMatching",
|
||||
"cron.runs.oldestFirst",
|
||||
"cron.runs.runStatusError",
|
||||
"cron.runs.runStatusOk",
|
||||
"cron.runs.runStatusSkipped",
|
||||
"cron.runs.runStatusUnknown",
|
||||
"cron.runs.scope",
|
||||
"cron.runs.searchPlaceholder",
|
||||
"cron.runs.searchRuns",
|
||||
"cron.runs.selectedJob",
|
||||
"cron.runs.selectJobHint",
|
||||
"cron.runs.status",
|
||||
"cron.runs.subtitleAll",
|
||||
"cron.runs.subtitleJob",
|
||||
"cron.runs.title",
|
||||
"cron.summary.enabled",
|
||||
"cron.summary.jobs",
|
||||
"cron.summary.nextWake",
|
||||
"cron.summary.no",
|
||||
"cron.summary.refresh",
|
||||
"cron.summary.refreshing",
|
||||
"cron.summary.yes",
|
||||
"languages.de",
|
||||
"languages.en",
|
||||
"languages.es",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"languages.ptBR",
|
||||
"languages.zhCN",
|
||||
"languages.zhTW",
|
||||
"login.passwordPlaceholder",
|
||||
"login.subtitle",
|
||||
"nav.agent",
|
||||
"nav.chat",
|
||||
"nav.collapse",
|
||||
"nav.control",
|
||||
"nav.expand",
|
||||
"nav.resize",
|
||||
"nav.settings",
|
||||
"overview.access.connectHint",
|
||||
"overview.access.language",
|
||||
"overview.access.password",
|
||||
"overview.access.sessionKey",
|
||||
"overview.access.subtitle",
|
||||
"overview.access.title",
|
||||
"overview.access.token",
|
||||
"overview.access.trustedProxy",
|
||||
"overview.access.wsUrl",
|
||||
"overview.attention.title",
|
||||
"overview.auth.failed",
|
||||
"overview.auth.required",
|
||||
"overview.cards.cost",
|
||||
"overview.cards.recentSessions",
|
||||
"overview.cards.skills",
|
||||
"overview.connection.docsHint",
|
||||
"overview.connection.docsLink",
|
||||
"overview.connection.step1",
|
||||
"overview.connection.step2",
|
||||
"overview.connection.step3",
|
||||
"overview.connection.step4",
|
||||
"overview.connection.title",
|
||||
"overview.eventLog.title",
|
||||
"overview.insecure.hint",
|
||||
"overview.insecure.stayHttp",
|
||||
"overview.logTail.title",
|
||||
"overview.notes.cronText",
|
||||
"overview.notes.cronTitle",
|
||||
"overview.notes.sessionText",
|
||||
"overview.notes.sessionTitle",
|
||||
"overview.notes.subtitle",
|
||||
"overview.notes.tailscaleText",
|
||||
"overview.notes.tailscaleTitle",
|
||||
"overview.notes.title",
|
||||
"overview.pairing.hint",
|
||||
"overview.pairing.mobileHint",
|
||||
"overview.palette.noResults",
|
||||
"overview.palette.placeholder",
|
||||
"overview.quickActions.automation",
|
||||
"overview.quickActions.newSession",
|
||||
"overview.quickActions.refreshAll",
|
||||
"overview.quickActions.terminal",
|
||||
"overview.snapshot.channelsHint",
|
||||
"overview.snapshot.lastChannelsRefresh",
|
||||
"overview.snapshot.status",
|
||||
"overview.snapshot.subtitle",
|
||||
"overview.snapshot.tickInterval",
|
||||
"overview.snapshot.title",
|
||||
"overview.snapshot.uptime",
|
||||
"overview.stats.cron",
|
||||
"overview.stats.cronNext",
|
||||
"overview.stats.instances",
|
||||
"overview.stats.instancesHint",
|
||||
"overview.stats.sessions",
|
||||
"overview.stats.sessionsHint",
|
||||
"subtitles.agents",
|
||||
"subtitles.aiAgents",
|
||||
"subtitles.appearance",
|
||||
"subtitles.automation",
|
||||
"subtitles.channels",
|
||||
"subtitles.chat",
|
||||
"subtitles.communications",
|
||||
"subtitles.config",
|
||||
"subtitles.cron",
|
||||
"subtitles.debug",
|
||||
"subtitles.dreams",
|
||||
"subtitles.infrastructure",
|
||||
"subtitles.instances",
|
||||
"subtitles.logs",
|
||||
"subtitles.nodes",
|
||||
"subtitles.overview",
|
||||
"subtitles.sessions",
|
||||
"subtitles.skills",
|
||||
"subtitles.usage",
|
||||
"tabs.agents",
|
||||
"tabs.aiAgents",
|
||||
"tabs.appearance",
|
||||
"tabs.automation",
|
||||
"tabs.channels",
|
||||
"tabs.chat",
|
||||
"tabs.communications",
|
||||
"tabs.config",
|
||||
"tabs.cron",
|
||||
"tabs.debug",
|
||||
"tabs.dreams",
|
||||
"tabs.infrastructure",
|
||||
"tabs.instances",
|
||||
"tabs.logs",
|
||||
"tabs.nodes",
|
||||
"tabs.overview",
|
||||
"tabs.sessions",
|
||||
"tabs.skills",
|
||||
"tabs.usage",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.733Z",
|
||||
"locale": "ko",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 0,
|
||||
"workflow": 1
|
||||
}
|
||||
410
ui/src/i18n/.i18n/pt-BR.meta.json
Normal file
410
ui/src/i18n/.i18n/pt-BR.meta.json
Normal file
@@ -0,0 +1,410 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.toolCallsToggle",
|
||||
"common.docs",
|
||||
"common.na",
|
||||
"common.offline",
|
||||
"common.ok",
|
||||
"common.online",
|
||||
"common.theme",
|
||||
"cron.errors.agentMessageRequired",
|
||||
"cron.errors.agentMessageRequiredShort",
|
||||
"cron.errors.cronExprRequired",
|
||||
"cron.errors.cronExprRequiredShort",
|
||||
"cron.errors.everyAmountInvalid",
|
||||
"cron.errors.invalidIntervalAmount",
|
||||
"cron.errors.invalidRunTime",
|
||||
"cron.errors.invalidStaggerAmount",
|
||||
"cron.errors.nameRequired",
|
||||
"cron.errors.nameRequiredShort",
|
||||
"cron.errors.scheduleAtInvalid",
|
||||
"cron.errors.staggerAmountInvalid",
|
||||
"cron.errors.systemEventTextRequired",
|
||||
"cron.errors.systemTextRequired",
|
||||
"cron.errors.timeoutInvalid",
|
||||
"cron.errors.webhookUrlInvalid",
|
||||
"cron.errors.webhookUrlRequired",
|
||||
"cron.form.addJob",
|
||||
"cron.form.advanced",
|
||||
"cron.form.advancedHelp",
|
||||
"cron.form.agentHelp",
|
||||
"cron.form.agentId",
|
||||
"cron.form.agentPlaceholder",
|
||||
"cron.form.agentTurn",
|
||||
"cron.form.agentTurnHelp",
|
||||
"cron.form.announceDefault",
|
||||
"cron.form.assistantTaskPrompt",
|
||||
"cron.form.at",
|
||||
"cron.form.basics",
|
||||
"cron.form.basicsSub",
|
||||
"cron.form.bestEffortDelivery",
|
||||
"cron.form.bestEffortHelp",
|
||||
"cron.form.cancel",
|
||||
"cron.form.cantAddYet",
|
||||
"cron.form.channel",
|
||||
"cron.form.channelHelp",
|
||||
"cron.form.clearAgentHelp",
|
||||
"cron.form.clearAgentOverride",
|
||||
"cron.form.createSubtitle",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.days",
|
||||
"cron.form.deleteAfterRun",
|
||||
"cron.form.deleteAfterRunHelp",
|
||||
"cron.form.deliveryHelp",
|
||||
"cron.form.deliverySection",
|
||||
"cron.form.deliverySub",
|
||||
"cron.form.description",
|
||||
"cron.form.descriptionPlaceholder",
|
||||
"cron.form.editJob",
|
||||
"cron.form.every",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.exactTiming",
|
||||
"cron.form.exactTimingHelp",
|
||||
"cron.form.execution",
|
||||
"cron.form.executionSub",
|
||||
"cron.form.expression",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.fieldName",
|
||||
"cron.form.fillRequired",
|
||||
"cron.form.fixFields",
|
||||
"cron.form.fixFieldsPlural",
|
||||
"cron.form.hours",
|
||||
"cron.form.isolated",
|
||||
"cron.form.jitterHelp",
|
||||
"cron.form.main",
|
||||
"cron.form.mainTimelineMessage",
|
||||
"cron.form.minutes",
|
||||
"cron.form.model",
|
||||
"cron.form.modelHelp",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.namePlaceholder",
|
||||
"cron.form.newJob",
|
||||
"cron.form.nextHeartbeat",
|
||||
"cron.form.noneInternal",
|
||||
"cron.form.now",
|
||||
"cron.form.payloadKind",
|
||||
"cron.form.required",
|
||||
"cron.form.requiredSr",
|
||||
"cron.form.resultDelivery",
|
||||
"cron.form.runAt",
|
||||
"cron.form.saveChanges",
|
||||
"cron.form.saving",
|
||||
"cron.form.schedule",
|
||||
"cron.form.scheduleSub",
|
||||
"cron.form.seconds",
|
||||
"cron.form.session",
|
||||
"cron.form.sessionHelp",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.staggerUnit",
|
||||
"cron.form.staggerWindow",
|
||||
"cron.form.systemEvent",
|
||||
"cron.form.systemEventHelp",
|
||||
"cron.form.thinking",
|
||||
"cron.form.thinkingHelp",
|
||||
"cron.form.thinkingPlaceholder",
|
||||
"cron.form.timeoutHelp",
|
||||
"cron.form.timeoutPlaceholder",
|
||||
"cron.form.timeoutSeconds",
|
||||
"cron.form.timezoneHelp",
|
||||
"cron.form.timezoneOptional",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.to",
|
||||
"cron.form.toHelp",
|
||||
"cron.form.toPlaceholder",
|
||||
"cron.form.unit",
|
||||
"cron.form.updateSubtitle",
|
||||
"cron.form.wakeMode",
|
||||
"cron.form.wakeModeHelp",
|
||||
"cron.form.webhookHelp",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.form.webhookUrl",
|
||||
"cron.jobDetail.agent",
|
||||
"cron.jobDetail.delivery",
|
||||
"cron.jobDetail.prompt",
|
||||
"cron.jobDetail.system",
|
||||
"cron.jobList.allJobs",
|
||||
"cron.jobList.clone",
|
||||
"cron.jobList.disable",
|
||||
"cron.jobList.disabled",
|
||||
"cron.jobList.edit",
|
||||
"cron.jobList.enable",
|
||||
"cron.jobList.enabled",
|
||||
"cron.jobList.history",
|
||||
"cron.jobList.remove",
|
||||
"cron.jobList.run",
|
||||
"cron.jobList.selectJob",
|
||||
"cron.jobs.all",
|
||||
"cron.jobs.ascending",
|
||||
"cron.jobs.descending",
|
||||
"cron.jobs.direction",
|
||||
"cron.jobs.enabled",
|
||||
"cron.jobs.lastRun",
|
||||
"cron.jobs.loading",
|
||||
"cron.jobs.loadMore",
|
||||
"cron.jobs.name",
|
||||
"cron.jobs.nextRun",
|
||||
"cron.jobs.noMatching",
|
||||
"cron.jobs.recentlyUpdated",
|
||||
"cron.jobs.reset",
|
||||
"cron.jobs.schedule",
|
||||
"cron.jobs.searchJobs",
|
||||
"cron.jobs.searchPlaceholder",
|
||||
"cron.jobs.shownOf",
|
||||
"cron.jobs.sort",
|
||||
"cron.jobs.subtitle",
|
||||
"cron.jobs.title",
|
||||
"cron.jobState.last",
|
||||
"cron.jobState.next",
|
||||
"cron.jobState.status",
|
||||
"cron.runEntry.due",
|
||||
"cron.runEntry.next",
|
||||
"cron.runEntry.noSummary",
|
||||
"cron.runEntry.openRunChat",
|
||||
"cron.runEntry.runAt",
|
||||
"cron.runs.allDelivery",
|
||||
"cron.runs.allJobs",
|
||||
"cron.runs.allStatuses",
|
||||
"cron.runs.clear",
|
||||
"cron.runs.delivery",
|
||||
"cron.runs.deliveryDelivered",
|
||||
"cron.runs.deliveryNotDelivered",
|
||||
"cron.runs.deliveryNotRequested",
|
||||
"cron.runs.deliveryUnknown",
|
||||
"cron.runs.loadMore",
|
||||
"cron.runs.newestFirst",
|
||||
"cron.runs.noMatching",
|
||||
"cron.runs.oldestFirst",
|
||||
"cron.runs.runStatusError",
|
||||
"cron.runs.runStatusOk",
|
||||
"cron.runs.runStatusSkipped",
|
||||
"cron.runs.runStatusUnknown",
|
||||
"cron.runs.scope",
|
||||
"cron.runs.searchPlaceholder",
|
||||
"cron.runs.searchRuns",
|
||||
"cron.runs.selectedJob",
|
||||
"cron.runs.selectJobHint",
|
||||
"cron.runs.status",
|
||||
"cron.runs.subtitleAll",
|
||||
"cron.runs.subtitleJob",
|
||||
"cron.runs.title",
|
||||
"cron.summary.enabled",
|
||||
"cron.summary.jobs",
|
||||
"cron.summary.nextWake",
|
||||
"cron.summary.no",
|
||||
"cron.summary.refresh",
|
||||
"cron.summary.refreshing",
|
||||
"cron.summary.yes",
|
||||
"languages.en",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"nav.chat",
|
||||
"overview.notes.tailscaleTitle",
|
||||
"overview.quickActions.terminal",
|
||||
"overview.snapshot.status",
|
||||
"overview.snapshot.title",
|
||||
"overview.stats.cron",
|
||||
"subtitles.dreams",
|
||||
"tabs.chat",
|
||||
"tabs.config",
|
||||
"tabs.debug",
|
||||
"tabs.dreams",
|
||||
"tabs.logs",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.685Z",
|
||||
"locale": "pt-BR",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 111,
|
||||
"workflow": 1
|
||||
}
|
||||
222
ui/src/i18n/.i18n/zh-CN.meta.json
Normal file
222
ui/src/i18n/.i18n/zh-CN.meta.json
Normal file
@@ -0,0 +1,222 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.toolCallsToggle",
|
||||
"common.theme",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.thinkingPlaceholder",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.form.webhookUrl",
|
||||
"cron.jobs.lastRun",
|
||||
"cron.jobs.reset",
|
||||
"cron.jobs.schedule",
|
||||
"languages.en",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"overview.access.wsUrl",
|
||||
"overview.notes.tailscaleTitle",
|
||||
"subtitles.dreams",
|
||||
"tabs.dreams",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.662Z",
|
||||
"locale": "zh-CN",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 299,
|
||||
"workflow": 1
|
||||
}
|
||||
397
ui/src/i18n/.i18n/zh-TW.meta.json
Normal file
397
ui/src/i18n/.i18n/zh-TW.meta.json
Normal file
@@ -0,0 +1,397 @@
|
||||
{
|
||||
"fallbackKeys": [
|
||||
"chat.toolCallsToggle",
|
||||
"common.theme",
|
||||
"cron.errors.agentMessageRequired",
|
||||
"cron.errors.agentMessageRequiredShort",
|
||||
"cron.errors.cronExprRequired",
|
||||
"cron.errors.cronExprRequiredShort",
|
||||
"cron.errors.everyAmountInvalid",
|
||||
"cron.errors.invalidIntervalAmount",
|
||||
"cron.errors.invalidRunTime",
|
||||
"cron.errors.invalidStaggerAmount",
|
||||
"cron.errors.nameRequired",
|
||||
"cron.errors.nameRequiredShort",
|
||||
"cron.errors.scheduleAtInvalid",
|
||||
"cron.errors.staggerAmountInvalid",
|
||||
"cron.errors.systemEventTextRequired",
|
||||
"cron.errors.systemTextRequired",
|
||||
"cron.errors.timeoutInvalid",
|
||||
"cron.errors.webhookUrlInvalid",
|
||||
"cron.errors.webhookUrlRequired",
|
||||
"cron.form.addJob",
|
||||
"cron.form.advanced",
|
||||
"cron.form.advancedHelp",
|
||||
"cron.form.agentHelp",
|
||||
"cron.form.agentId",
|
||||
"cron.form.agentPlaceholder",
|
||||
"cron.form.agentTurn",
|
||||
"cron.form.agentTurnHelp",
|
||||
"cron.form.announceDefault",
|
||||
"cron.form.assistantTaskPrompt",
|
||||
"cron.form.at",
|
||||
"cron.form.basics",
|
||||
"cron.form.basicsSub",
|
||||
"cron.form.bestEffortDelivery",
|
||||
"cron.form.bestEffortHelp",
|
||||
"cron.form.cancel",
|
||||
"cron.form.cantAddYet",
|
||||
"cron.form.channel",
|
||||
"cron.form.channelHelp",
|
||||
"cron.form.clearAgentHelp",
|
||||
"cron.form.clearAgentOverride",
|
||||
"cron.form.createSubtitle",
|
||||
"cron.form.cronOption",
|
||||
"cron.form.days",
|
||||
"cron.form.deleteAfterRun",
|
||||
"cron.form.deleteAfterRunHelp",
|
||||
"cron.form.deliveryHelp",
|
||||
"cron.form.deliverySection",
|
||||
"cron.form.deliverySub",
|
||||
"cron.form.description",
|
||||
"cron.form.descriptionPlaceholder",
|
||||
"cron.form.editJob",
|
||||
"cron.form.every",
|
||||
"cron.form.everyAmountPlaceholder",
|
||||
"cron.form.exactTiming",
|
||||
"cron.form.exactTimingHelp",
|
||||
"cron.form.execution",
|
||||
"cron.form.executionSub",
|
||||
"cron.form.expression",
|
||||
"cron.form.expressionPlaceholder",
|
||||
"cron.form.fieldName",
|
||||
"cron.form.fillRequired",
|
||||
"cron.form.fixFields",
|
||||
"cron.form.fixFieldsPlural",
|
||||
"cron.form.hours",
|
||||
"cron.form.isolated",
|
||||
"cron.form.jitterHelp",
|
||||
"cron.form.main",
|
||||
"cron.form.mainTimelineMessage",
|
||||
"cron.form.minutes",
|
||||
"cron.form.model",
|
||||
"cron.form.modelHelp",
|
||||
"cron.form.modelPlaceholder",
|
||||
"cron.form.namePlaceholder",
|
||||
"cron.form.newJob",
|
||||
"cron.form.nextHeartbeat",
|
||||
"cron.form.noneInternal",
|
||||
"cron.form.now",
|
||||
"cron.form.payloadKind",
|
||||
"cron.form.required",
|
||||
"cron.form.requiredSr",
|
||||
"cron.form.resultDelivery",
|
||||
"cron.form.runAt",
|
||||
"cron.form.saveChanges",
|
||||
"cron.form.saving",
|
||||
"cron.form.schedule",
|
||||
"cron.form.scheduleSub",
|
||||
"cron.form.seconds",
|
||||
"cron.form.session",
|
||||
"cron.form.sessionHelp",
|
||||
"cron.form.staggerPlaceholder",
|
||||
"cron.form.staggerUnit",
|
||||
"cron.form.staggerWindow",
|
||||
"cron.form.systemEvent",
|
||||
"cron.form.systemEventHelp",
|
||||
"cron.form.thinking",
|
||||
"cron.form.thinkingHelp",
|
||||
"cron.form.thinkingPlaceholder",
|
||||
"cron.form.timeoutHelp",
|
||||
"cron.form.timeoutPlaceholder",
|
||||
"cron.form.timeoutSeconds",
|
||||
"cron.form.timezoneHelp",
|
||||
"cron.form.timezoneOptional",
|
||||
"cron.form.timezonePlaceholder",
|
||||
"cron.form.to",
|
||||
"cron.form.toHelp",
|
||||
"cron.form.toPlaceholder",
|
||||
"cron.form.unit",
|
||||
"cron.form.updateSubtitle",
|
||||
"cron.form.wakeMode",
|
||||
"cron.form.wakeModeHelp",
|
||||
"cron.form.webhookHelp",
|
||||
"cron.form.webhookPlaceholder",
|
||||
"cron.form.webhookPost",
|
||||
"cron.form.webhookUrl",
|
||||
"cron.jobDetail.agent",
|
||||
"cron.jobDetail.delivery",
|
||||
"cron.jobDetail.prompt",
|
||||
"cron.jobDetail.system",
|
||||
"cron.jobList.allJobs",
|
||||
"cron.jobList.clone",
|
||||
"cron.jobList.disable",
|
||||
"cron.jobList.disabled",
|
||||
"cron.jobList.edit",
|
||||
"cron.jobList.enable",
|
||||
"cron.jobList.enabled",
|
||||
"cron.jobList.history",
|
||||
"cron.jobList.remove",
|
||||
"cron.jobList.run",
|
||||
"cron.jobList.selectJob",
|
||||
"cron.jobs.all",
|
||||
"cron.jobs.ascending",
|
||||
"cron.jobs.descending",
|
||||
"cron.jobs.direction",
|
||||
"cron.jobs.enabled",
|
||||
"cron.jobs.lastRun",
|
||||
"cron.jobs.loading",
|
||||
"cron.jobs.loadMore",
|
||||
"cron.jobs.name",
|
||||
"cron.jobs.nextRun",
|
||||
"cron.jobs.noMatching",
|
||||
"cron.jobs.recentlyUpdated",
|
||||
"cron.jobs.reset",
|
||||
"cron.jobs.schedule",
|
||||
"cron.jobs.searchJobs",
|
||||
"cron.jobs.searchPlaceholder",
|
||||
"cron.jobs.shownOf",
|
||||
"cron.jobs.sort",
|
||||
"cron.jobs.subtitle",
|
||||
"cron.jobs.title",
|
||||
"cron.jobState.last",
|
||||
"cron.jobState.next",
|
||||
"cron.jobState.status",
|
||||
"cron.runEntry.due",
|
||||
"cron.runEntry.next",
|
||||
"cron.runEntry.noSummary",
|
||||
"cron.runEntry.openRunChat",
|
||||
"cron.runEntry.runAt",
|
||||
"cron.runs.allDelivery",
|
||||
"cron.runs.allJobs",
|
||||
"cron.runs.allStatuses",
|
||||
"cron.runs.clear",
|
||||
"cron.runs.delivery",
|
||||
"cron.runs.deliveryDelivered",
|
||||
"cron.runs.deliveryNotDelivered",
|
||||
"cron.runs.deliveryNotRequested",
|
||||
"cron.runs.deliveryUnknown",
|
||||
"cron.runs.loadMore",
|
||||
"cron.runs.newestFirst",
|
||||
"cron.runs.noMatching",
|
||||
"cron.runs.oldestFirst",
|
||||
"cron.runs.runStatusError",
|
||||
"cron.runs.runStatusOk",
|
||||
"cron.runs.runStatusSkipped",
|
||||
"cron.runs.runStatusUnknown",
|
||||
"cron.runs.scope",
|
||||
"cron.runs.searchPlaceholder",
|
||||
"cron.runs.searchRuns",
|
||||
"cron.runs.selectedJob",
|
||||
"cron.runs.selectJobHint",
|
||||
"cron.runs.status",
|
||||
"cron.runs.subtitleAll",
|
||||
"cron.runs.subtitleJob",
|
||||
"cron.runs.title",
|
||||
"cron.summary.enabled",
|
||||
"cron.summary.jobs",
|
||||
"cron.summary.nextWake",
|
||||
"cron.summary.no",
|
||||
"cron.summary.refresh",
|
||||
"cron.summary.refreshing",
|
||||
"cron.summary.yes",
|
||||
"languages.en",
|
||||
"languages.fr",
|
||||
"languages.jaJP",
|
||||
"languages.ko",
|
||||
"overview.access.wsUrl",
|
||||
"overview.notes.tailscaleTitle",
|
||||
"subtitles.dreams",
|
||||
"tabs.dreams",
|
||||
"usage.breakdown.cacheRead",
|
||||
"usage.breakdown.cacheWrite",
|
||||
"usage.breakdown.costByType",
|
||||
"usage.breakdown.input",
|
||||
"usage.breakdown.output",
|
||||
"usage.breakdown.tokensByType",
|
||||
"usage.breakdown.total",
|
||||
"usage.common.emptyValue",
|
||||
"usage.common.unknown",
|
||||
"usage.daily.byType",
|
||||
"usage.daily.costTitle",
|
||||
"usage.daily.title",
|
||||
"usage.daily.tokensTitle",
|
||||
"usage.daily.total",
|
||||
"usage.details.assistantOutputTokens",
|
||||
"usage.details.baseContextPerMessage",
|
||||
"usage.details.close",
|
||||
"usage.details.collapse",
|
||||
"usage.details.collapseAll",
|
||||
"usage.details.conversation",
|
||||
"usage.details.cumulative",
|
||||
"usage.details.duration",
|
||||
"usage.details.expandAll",
|
||||
"usage.details.files",
|
||||
"usage.details.filtered",
|
||||
"usage.details.hasTools",
|
||||
"usage.details.modelMix",
|
||||
"usage.details.noContextData",
|
||||
"usage.details.noDataInRange",
|
||||
"usage.details.noMessages",
|
||||
"usage.details.noMessagesMatch",
|
||||
"usage.details.noTimeline",
|
||||
"usage.details.noUsageData",
|
||||
"usage.details.of",
|
||||
"usage.details.ofInput",
|
||||
"usage.details.perTurn",
|
||||
"usage.details.reset",
|
||||
"usage.details.searchConversation",
|
||||
"usage.details.skills",
|
||||
"usage.details.system",
|
||||
"usage.details.systemPromptBreakdown",
|
||||
"usage.details.systemShort",
|
||||
"usage.details.timelineFiltered",
|
||||
"usage.details.tokensReadFromCache",
|
||||
"usage.details.tokensWrittenToCache",
|
||||
"usage.details.tool",
|
||||
"usage.details.toolResult",
|
||||
"usage.details.tools",
|
||||
"usage.details.turnRange",
|
||||
"usage.details.usageOverTime",
|
||||
"usage.details.userToolInputTokens",
|
||||
"usage.details.you",
|
||||
"usage.empty.featureOverview",
|
||||
"usage.empty.featureSessions",
|
||||
"usage.empty.featureTimeline",
|
||||
"usage.empty.hint",
|
||||
"usage.empty.noData",
|
||||
"usage.empty.subtitle",
|
||||
"usage.empty.title",
|
||||
"usage.export.dailyCsv",
|
||||
"usage.export.json",
|
||||
"usage.export.label",
|
||||
"usage.export.sessionsCsv",
|
||||
"usage.filters.agent",
|
||||
"usage.filters.all",
|
||||
"usage.filters.channel",
|
||||
"usage.filters.clear",
|
||||
"usage.filters.clearAll",
|
||||
"usage.filters.days",
|
||||
"usage.filters.daysCount",
|
||||
"usage.filters.endDate",
|
||||
"usage.filters.hours",
|
||||
"usage.filters.hoursCount",
|
||||
"usage.filters.model",
|
||||
"usage.filters.pin",
|
||||
"usage.filters.pinned",
|
||||
"usage.filters.provider",
|
||||
"usage.filters.remove",
|
||||
"usage.filters.selectAll",
|
||||
"usage.filters.session",
|
||||
"usage.filters.sessionsCount",
|
||||
"usage.filters.startDate",
|
||||
"usage.filters.timeZone",
|
||||
"usage.filters.timeZoneLocal",
|
||||
"usage.filters.timeZoneUtc",
|
||||
"usage.filters.title",
|
||||
"usage.filters.to",
|
||||
"usage.filters.tool",
|
||||
"usage.filters.unpin",
|
||||
"usage.loading.badge",
|
||||
"usage.loading.title",
|
||||
"usage.metrics.cost",
|
||||
"usage.metrics.session",
|
||||
"usage.metrics.sessions",
|
||||
"usage.metrics.tokens",
|
||||
"usage.mosaic.dayOfWeek",
|
||||
"usage.mosaic.eightAm",
|
||||
"usage.mosaic.eightPm",
|
||||
"usage.mosaic.fourAm",
|
||||
"usage.mosaic.fourPm",
|
||||
"usage.mosaic.fri",
|
||||
"usage.mosaic.legend",
|
||||
"usage.mosaic.midnight",
|
||||
"usage.mosaic.mon",
|
||||
"usage.mosaic.noon",
|
||||
"usage.mosaic.noTimelineData",
|
||||
"usage.mosaic.sat",
|
||||
"usage.mosaic.subtitle",
|
||||
"usage.mosaic.subtitleEmpty",
|
||||
"usage.mosaic.sun",
|
||||
"usage.mosaic.thu",
|
||||
"usage.mosaic.title",
|
||||
"usage.mosaic.tue",
|
||||
"usage.mosaic.wed",
|
||||
"usage.overview.acrossMessages",
|
||||
"usage.overview.assistant",
|
||||
"usage.overview.avgCost",
|
||||
"usage.overview.avgCostHint",
|
||||
"usage.overview.avgCostHintMissing",
|
||||
"usage.overview.avgSession",
|
||||
"usage.overview.avgTokens",
|
||||
"usage.overview.avgTokensHint",
|
||||
"usage.overview.cached",
|
||||
"usage.overview.cacheHint",
|
||||
"usage.overview.cacheHitRate",
|
||||
"usage.overview.calls",
|
||||
"usage.overview.errorHint",
|
||||
"usage.overview.errorRate",
|
||||
"usage.overview.errors",
|
||||
"usage.overview.errorsHint",
|
||||
"usage.overview.messages",
|
||||
"usage.overview.messagesAbbrev",
|
||||
"usage.overview.messagesHint",
|
||||
"usage.overview.noAgentData",
|
||||
"usage.overview.noChannelData",
|
||||
"usage.overview.noErrorData",
|
||||
"usage.overview.noModelData",
|
||||
"usage.overview.noProviderData",
|
||||
"usage.overview.noToolCalls",
|
||||
"usage.overview.peakErrorDays",
|
||||
"usage.overview.peakErrorHours",
|
||||
"usage.overview.perMinute",
|
||||
"usage.overview.prompt",
|
||||
"usage.overview.sessions",
|
||||
"usage.overview.sessionsHint",
|
||||
"usage.overview.sessionsInRange",
|
||||
"usage.overview.throughput",
|
||||
"usage.overview.throughputHint",
|
||||
"usage.overview.title",
|
||||
"usage.overview.tokensPerMinute",
|
||||
"usage.overview.toolCalls",
|
||||
"usage.overview.toolCallsHint",
|
||||
"usage.overview.toolResults",
|
||||
"usage.overview.toolsUsed",
|
||||
"usage.overview.topAgents",
|
||||
"usage.overview.topChannels",
|
||||
"usage.overview.topModels",
|
||||
"usage.overview.topProviders",
|
||||
"usage.overview.topTools",
|
||||
"usage.overview.user",
|
||||
"usage.page.subtitle",
|
||||
"usage.presets.last30d",
|
||||
"usage.presets.last7d",
|
||||
"usage.presets.today",
|
||||
"usage.query.apply",
|
||||
"usage.query.inRange",
|
||||
"usage.query.matching",
|
||||
"usage.query.placeholder",
|
||||
"usage.query.tip",
|
||||
"usage.sessions.all",
|
||||
"usage.sessions.ascending",
|
||||
"usage.sessions.avg",
|
||||
"usage.sessions.clearSelection",
|
||||
"usage.sessions.copy",
|
||||
"usage.sessions.copyName",
|
||||
"usage.sessions.descending",
|
||||
"usage.sessions.limitReached",
|
||||
"usage.sessions.more",
|
||||
"usage.sessions.noneInRange",
|
||||
"usage.sessions.noRecent",
|
||||
"usage.sessions.recent",
|
||||
"usage.sessions.recentShort",
|
||||
"usage.sessions.selected",
|
||||
"usage.sessions.shown",
|
||||
"usage.sessions.sort",
|
||||
"usage.sessions.title",
|
||||
"usage.sessions.total"
|
||||
],
|
||||
"generatedAt": "2026-04-05T11:44:58.675Z",
|
||||
"locale": "zh-TW",
|
||||
"model": "",
|
||||
"provider": "",
|
||||
"sourceHash": "e482fa23a5ebfb33fa807a476f14ddb196e51d099b046a19e9573d54acdcd931",
|
||||
"totalKeys": 509,
|
||||
"translatedKeys": 124,
|
||||
"workflow": 1
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const de: TranslationMap = {
|
||||
common: {
|
||||
version: "Version",
|
||||
health: "Status",
|
||||
ok: "OK",
|
||||
online: "Online",
|
||||
@@ -12,8 +12,11 @@ export const de: TranslationMap = {
|
||||
enabled: "Aktiviert",
|
||||
disabled: "Deaktiviert",
|
||||
na: "k. A.",
|
||||
version: "Version",
|
||||
docs: "Dokumentation",
|
||||
theme: "Theme",
|
||||
resources: "Ressourcen",
|
||||
search: "Search",
|
||||
},
|
||||
nav: {
|
||||
chat: "Chat",
|
||||
@@ -22,6 +25,7 @@ export const de: TranslationMap = {
|
||||
settings: "Einstellungen",
|
||||
expand: "Seitenleiste ausklappen",
|
||||
collapse: "Seitenleiste einklappen",
|
||||
resize: "Resize sidebar",
|
||||
},
|
||||
tabs: {
|
||||
agents: "Agenten",
|
||||
@@ -35,8 +39,14 @@ export const de: TranslationMap = {
|
||||
nodes: "Geräte",
|
||||
chat: "Chat",
|
||||
config: "Konfiguration",
|
||||
communications: "Communications",
|
||||
appearance: "Appearance",
|
||||
automation: "Automation",
|
||||
infrastructure: "Infrastructure",
|
||||
aiAgents: "AI & Agents",
|
||||
debug: "Debug",
|
||||
logs: "Protokolle",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "Agent-Arbeitsbereiche, Tools und Identitäten verwalten.",
|
||||
@@ -50,8 +60,14 @@ export const de: TranslationMap = {
|
||||
nodes: "Gekoppelte Geräte, Fähigkeiten und Befehlsfreigabe.",
|
||||
chat: "Direkte Gateway-Chat-Sitzung für schnelle Eingriffe.",
|
||||
config: "~/.openclaw/openclaw.json sicher bearbeiten.",
|
||||
communications: "Channels, messages, and audio settings.",
|
||||
appearance: "Theme, UI, and setup wizard settings.",
|
||||
automation: "Commands, hooks, cron, and plugins.",
|
||||
infrastructure: "Gateway, web, browser, and media settings.",
|
||||
aiAgents: "Agents, models, skills, tools, memory, session.",
|
||||
debug: "Gateway-Snapshots, Ereignisse und manuelle RPC-Aufrufe.",
|
||||
logs: "Live-Verfolgung der Gateway-Protokolldateien.",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
@@ -59,7 +75,7 @@ export const de: TranslationMap = {
|
||||
subtitle: "Wo sich das Dashboard verbindet und wie es sich authentifiziert.",
|
||||
wsUrl: "WebSocket-URL",
|
||||
token: "Gateway-Token",
|
||||
password: "Passwort (nicht gespeichert)", // pragma: allowlist secret
|
||||
password: "Passwort (nicht gespeichert)",
|
||||
sessionKey: "Standard-Sitzungsschlüssel",
|
||||
language: "Sprache",
|
||||
connectHint: "Klicken Sie auf Verbinden, um Verbindungsänderungen anzuwenden.",
|
||||
@@ -109,11 +125,271 @@ export const de: TranslationMap = {
|
||||
hint: "Diese Seite ist HTTP, daher blockiert der Browser die Geräteidentifikation. Verwenden Sie HTTPS (Tailscale Serve) oder öffnen Sie {url} auf dem Gateway-Host.",
|
||||
stayHttp: "Wenn Sie bei HTTP bleiben müssen, setzen Sie {config} (nur Token).",
|
||||
},
|
||||
connection: {
|
||||
title: "How to connect",
|
||||
step1: "Start the gateway on your host machine:",
|
||||
step2: "Get a tokenized dashboard URL:",
|
||||
step3: "Paste the WebSocket URL and token above, or open the tokenized URL directly.",
|
||||
step4: "Or generate a reusable token:",
|
||||
docsHint: "For remote access, Tailscale Serve is recommended. ",
|
||||
docsLink: "Read the docs →",
|
||||
},
|
||||
cards: {
|
||||
cost: "Cost",
|
||||
skills: "Skills",
|
||||
recentSessions: "Recent Sessions",
|
||||
},
|
||||
attention: {
|
||||
title: "Attention",
|
||||
},
|
||||
eventLog: {
|
||||
title: "Event Log",
|
||||
},
|
||||
logTail: {
|
||||
title: "Gateway Logs",
|
||||
},
|
||||
quickActions: {
|
||||
newSession: "New Session",
|
||||
automation: "Automation",
|
||||
refreshAll: "Refresh All",
|
||||
terminal: "Terminal",
|
||||
},
|
||||
palette: {
|
||||
placeholder: "Type a command…",
|
||||
noResults: "No results",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "Gateway Dashboard",
|
||||
passwordPlaceholder: "optional",
|
||||
},
|
||||
chat: {
|
||||
disconnected: "Verbindung zum Gateway getrennt.",
|
||||
refreshTitle: "Chat-Daten aktualisieren",
|
||||
thinkingToggle: "Ausgabe des Assistenten ein-/ausblenden",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "Fokusmodus ein-/ausschalten (Seitenleiste + Kopfzeile ausblenden)",
|
||||
hideCronSessions: "Cron-Sitzungen ausblenden",
|
||||
showCronSessions: "Cron-Sitzungen anzeigen",
|
||||
@@ -127,5 +403,219 @@ export const de: TranslationMap = {
|
||||
ptBR: "Português (Brasilianisches Portugiesisch)",
|
||||
de: "Deutsch",
|
||||
es: "Spanisch (Español)",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
enabled: "Enabled",
|
||||
yes: "Yes",
|
||||
no: "No",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
refreshing: "Refreshing...",
|
||||
refresh: "Refresh",
|
||||
},
|
||||
jobs: {
|
||||
title: "Jobs",
|
||||
subtitle: "All scheduled jobs stored in the gateway.",
|
||||
shownOf: "{shown} shown of {total}",
|
||||
searchJobs: "Search jobs",
|
||||
searchPlaceholder: "Name, description, or agent",
|
||||
enabled: "Enabled",
|
||||
schedule: "Schedule",
|
||||
lastRun: "Last run",
|
||||
all: "All",
|
||||
sort: "Sort",
|
||||
nextRun: "Next run",
|
||||
recentlyUpdated: "Recently updated",
|
||||
name: "Name",
|
||||
direction: "Direction",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
reset: "Reset",
|
||||
noMatching: "No matching jobs.",
|
||||
loading: "Loading...",
|
||||
loadMore: "Load more jobs",
|
||||
},
|
||||
runs: {
|
||||
title: "Run history",
|
||||
subtitleAll: "Latest runs across all jobs.",
|
||||
subtitleJob: "Latest runs for {title}.",
|
||||
scope: "Scope",
|
||||
allJobs: "All jobs",
|
||||
selectedJob: "Selected job",
|
||||
searchRuns: "Search runs",
|
||||
searchPlaceholder: "Summary, error, or job",
|
||||
newestFirst: "Newest first",
|
||||
oldestFirst: "Oldest first",
|
||||
status: "Status",
|
||||
delivery: "Delivery",
|
||||
clear: "Clear",
|
||||
allStatuses: "All statuses",
|
||||
allDelivery: "All delivery",
|
||||
selectJobHint: "Select a job to inspect run history.",
|
||||
noMatching: "No matching runs.",
|
||||
loadMore: "Load more runs",
|
||||
runStatusOk: "OK",
|
||||
runStatusError: "Error",
|
||||
runStatusSkipped: "Skipped",
|
||||
runStatusUnknown: "Unknown",
|
||||
deliveryDelivered: "Delivered",
|
||||
deliveryNotDelivered: "Not delivered",
|
||||
deliveryUnknown: "Unknown",
|
||||
deliveryNotRequested: "Not requested",
|
||||
},
|
||||
form: {
|
||||
editJob: "Edit Job",
|
||||
newJob: "New Job",
|
||||
updateSubtitle: "Update the selected scheduled job.",
|
||||
createSubtitle: "Create a scheduled wakeup or agent run.",
|
||||
required: "Required",
|
||||
requiredSr: "required",
|
||||
basics: "Basics",
|
||||
basicsSub: "Name it, choose the assistant, and set enabled state.",
|
||||
fieldName: "Name",
|
||||
description: "Description",
|
||||
agentId: "Agent ID",
|
||||
namePlaceholder: "Morning brief",
|
||||
descriptionPlaceholder: "Optional context for this job",
|
||||
agentPlaceholder: "main or ops",
|
||||
agentHelp: "Start typing to pick a known agent, or enter a custom one.",
|
||||
schedule: "Schedule",
|
||||
scheduleSub: "Control when this job runs.",
|
||||
every: "Every",
|
||||
at: "At",
|
||||
cronOption: "Cron",
|
||||
runAt: "Run at",
|
||||
unit: "Unit",
|
||||
minutes: "Minutes",
|
||||
hours: "Hours",
|
||||
days: "Days",
|
||||
expression: "Expression",
|
||||
expressionPlaceholder: "0 7 * * *",
|
||||
everyAmountPlaceholder: "30",
|
||||
timezoneOptional: "Timezone (optional)",
|
||||
timezonePlaceholder: "America/Los_Angeles",
|
||||
timezoneHelp: "Pick a common timezone or enter any valid IANA timezone.",
|
||||
jitterHelp: "Need jitter? Use Advanced → Stagger window / Stagger unit.",
|
||||
execution: "Execution",
|
||||
executionSub: "Choose when to wake, and what this job should do.",
|
||||
session: "Session",
|
||||
main: "Main",
|
||||
isolated: "Isolated",
|
||||
sessionHelp: "Main posts a system event. Isolated runs a dedicated agent turn.",
|
||||
wakeMode: "Wake mode",
|
||||
now: "Now",
|
||||
nextHeartbeat: "Next heartbeat",
|
||||
wakeModeHelp: "Now triggers immediately. Next heartbeat waits for the next cycle.",
|
||||
payloadKind: "What should run?",
|
||||
systemEvent: "Post message to main timeline",
|
||||
agentTurn: "Run assistant task (isolated)",
|
||||
systemEventHelp:
|
||||
"Sends your text to the gateway main timeline (good for reminders/triggers).",
|
||||
agentTurnHelp: "Starts an assistant run in its own session using your prompt.",
|
||||
timeoutSeconds: "Timeout (seconds)",
|
||||
timeoutPlaceholder: "Optional, e.g. 90",
|
||||
timeoutHelp:
|
||||
"Optional. Leave blank to use the gateway default timeout behavior for this run.",
|
||||
mainTimelineMessage: "Main timeline message",
|
||||
assistantTaskPrompt: "Assistant task prompt",
|
||||
deliverySection: "Delivery",
|
||||
deliverySub: "Choose where run summaries are sent.",
|
||||
resultDelivery: "Result delivery",
|
||||
announceDefault: "Announce summary (default)",
|
||||
webhookPost: "Webhook POST",
|
||||
noneInternal: "None (internal)",
|
||||
deliveryHelp: "Announce posts a summary to chat. None keeps execution internal.",
|
||||
webhookUrl: "Webhook URL",
|
||||
channel: "Channel",
|
||||
webhookPlaceholder: "https://example.com/cron",
|
||||
channelHelp: "Choose which connected channel receives the summary.",
|
||||
webhookHelp: "Send run summaries to a webhook endpoint.",
|
||||
to: "To",
|
||||
toPlaceholder: "+1555... or chat id",
|
||||
toHelp: "Optional recipient override (chat id, phone, or user id).",
|
||||
advanced: "Advanced",
|
||||
advancedHelp:
|
||||
"Optional overrides for delivery guarantees, schedule jitter, and model controls.",
|
||||
deleteAfterRun: "Delete after run",
|
||||
deleteAfterRunHelp: "Best for one-shot reminders that should auto-clean up.",
|
||||
clearAgentOverride: "Clear agent override",
|
||||
clearAgentHelp: "Force this job to use the gateway default assistant.",
|
||||
exactTiming: "Exact timing (no stagger)",
|
||||
exactTimingHelp: "Run on exact cron boundaries with no spread.",
|
||||
staggerWindow: "Stagger window",
|
||||
staggerUnit: "Stagger unit",
|
||||
staggerPlaceholder: "30",
|
||||
seconds: "Seconds",
|
||||
model: "Model",
|
||||
modelPlaceholder: "openai/gpt-5.2",
|
||||
modelHelp: "Start typing to pick a known model, or enter a custom one.",
|
||||
thinking: "Thinking",
|
||||
thinkingPlaceholder: "low",
|
||||
thinkingHelp: "Use a suggested level or enter a provider-specific value.",
|
||||
bestEffortDelivery: "Best effort delivery",
|
||||
bestEffortHelp: "Do not fail the job if delivery itself fails.",
|
||||
cantAddYet: "Can't add job yet",
|
||||
fillRequired: "Fill the required fields below to enable submit.",
|
||||
fixFields: "Fix {count} field to continue.",
|
||||
fixFieldsPlural: "Fix {count} fields to continue.",
|
||||
saving: "Saving...",
|
||||
saveChanges: "Save changes",
|
||||
addJob: "Add job",
|
||||
cancel: "Cancel",
|
||||
},
|
||||
jobList: {
|
||||
allJobs: "all jobs",
|
||||
selectJob: "(select a job)",
|
||||
enabled: "enabled",
|
||||
disabled: "disabled",
|
||||
edit: "Edit",
|
||||
clone: "Clone",
|
||||
disable: "Disable",
|
||||
enable: "Enable",
|
||||
run: "Run",
|
||||
history: "History",
|
||||
remove: "Remove",
|
||||
},
|
||||
jobDetail: {
|
||||
system: "System",
|
||||
prompt: "Prompt",
|
||||
delivery: "Delivery",
|
||||
agent: "Agent",
|
||||
},
|
||||
jobState: {
|
||||
status: "Status",
|
||||
next: "Next",
|
||||
last: "Last",
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "No summary.",
|
||||
runAt: "Run at",
|
||||
openRunChat: "Open run chat",
|
||||
next: "Next {rel}",
|
||||
due: "Due {rel}",
|
||||
},
|
||||
errors: {
|
||||
nameRequired: "Name is required.",
|
||||
scheduleAtInvalid: "Enter a valid date/time.",
|
||||
everyAmountInvalid: "Interval must be greater than 0.",
|
||||
cronExprRequired: "Cron expression is required.",
|
||||
staggerAmountInvalid: "Stagger must be greater than 0.",
|
||||
systemTextRequired: "System text is required.",
|
||||
agentMessageRequired: "Agent message is required.",
|
||||
timeoutInvalid: "If set, timeout must be greater than 0 seconds.",
|
||||
webhookUrlRequired: "Webhook URL is required.",
|
||||
webhookUrlInvalid: "Webhook URL must start with http:// or https://.",
|
||||
invalidRunTime: "Invalid run time.",
|
||||
invalidIntervalAmount: "Invalid interval amount.",
|
||||
cronExprRequiredShort: "Cron expression required.",
|
||||
invalidStaggerAmount: "Invalid stagger amount.",
|
||||
systemEventTextRequired: "System event text required.",
|
||||
agentMessageRequiredShort: "Agent message required.",
|
||||
nameRequiredShort: "Name required.",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const es: TranslationMap = {
|
||||
common: {
|
||||
version: "Versión",
|
||||
health: "Estado",
|
||||
ok: "Correcto",
|
||||
online: "En línea",
|
||||
@@ -12,8 +12,11 @@ export const es: TranslationMap = {
|
||||
enabled: "Habilitado",
|
||||
disabled: "Deshabilitado",
|
||||
na: "n/a",
|
||||
version: "Versión",
|
||||
docs: "Docs",
|
||||
theme: "Theme",
|
||||
resources: "Recursos",
|
||||
search: "Search",
|
||||
},
|
||||
nav: {
|
||||
chat: "Chat",
|
||||
@@ -22,6 +25,7 @@ export const es: TranslationMap = {
|
||||
settings: "Ajustes",
|
||||
expand: "Expandir barra lateral",
|
||||
collapse: "Contraer barra lateral",
|
||||
resize: "Resize sidebar",
|
||||
},
|
||||
tabs: {
|
||||
agents: "Agentes",
|
||||
@@ -35,8 +39,14 @@ export const es: TranslationMap = {
|
||||
nodes: "Nodos",
|
||||
chat: "Chat",
|
||||
config: "Configuración",
|
||||
communications: "Communications",
|
||||
appearance: "Appearance",
|
||||
automation: "Automation",
|
||||
infrastructure: "Infrastructure",
|
||||
aiAgents: "AI & Agents",
|
||||
debug: "Depuración",
|
||||
logs: "Registros",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "Gestionar espacios de trabajo, herramientas e identidades de agentes.",
|
||||
@@ -50,8 +60,14 @@ export const es: TranslationMap = {
|
||||
nodes: "Dispositivos emparejados, capacidades y exposición de comandos.",
|
||||
chat: "Sesión de chat directa con la puerta de enlace para intervenciones rápidas.",
|
||||
config: "Editar ~/.openclaw/openclaw.json de forma segura.",
|
||||
communications: "Channels, messages, and audio settings.",
|
||||
appearance: "Theme, UI, and setup wizard settings.",
|
||||
automation: "Commands, hooks, cron, and plugins.",
|
||||
infrastructure: "Gateway, web, browser, and media settings.",
|
||||
aiAgents: "Agents, models, skills, tools, memory, session.",
|
||||
debug: "Instantáneas de la puerta de enlace, eventos y llamadas RPC manuales.",
|
||||
logs: "Seguimiento en vivo de los registros de la puerta de enlace.",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
@@ -59,7 +75,7 @@ export const es: TranslationMap = {
|
||||
subtitle: "Dónde se conecta el panel y cómo se autentica.",
|
||||
wsUrl: "URL de WebSocket",
|
||||
token: "Token de la puerta de enlace",
|
||||
password: "Contraseña (no se guarda)", // pragma: allowlist secret
|
||||
password: "Contraseña (no se guarda)",
|
||||
sessionKey: "Clave de sesión predeterminada",
|
||||
language: "Idioma",
|
||||
connectHint: "Haz clic en Conectar para aplicar los cambios de conexión.",
|
||||
@@ -108,11 +124,271 @@ export const es: TranslationMap = {
|
||||
hint: "Esta página es HTTP, por lo que el navegador bloquea el acceso a la identidad del dispositivo. Usa HTTPS (Tailscale Serve) o abre {url} en el equipo host.",
|
||||
stayHttp: "Si debes permanecer en HTTP, utiliza {config} (solo token).",
|
||||
},
|
||||
connection: {
|
||||
title: "How to connect",
|
||||
step1: "Start the gateway on your host machine:",
|
||||
step2: "Get a tokenized dashboard URL:",
|
||||
step3: "Paste the WebSocket URL and token above, or open the tokenized URL directly.",
|
||||
step4: "Or generate a reusable token:",
|
||||
docsHint: "For remote access, Tailscale Serve is recommended. ",
|
||||
docsLink: "Read the docs →",
|
||||
},
|
||||
cards: {
|
||||
cost: "Cost",
|
||||
skills: "Skills",
|
||||
recentSessions: "Recent Sessions",
|
||||
},
|
||||
attention: {
|
||||
title: "Attention",
|
||||
},
|
||||
eventLog: {
|
||||
title: "Event Log",
|
||||
},
|
||||
logTail: {
|
||||
title: "Gateway Logs",
|
||||
},
|
||||
quickActions: {
|
||||
newSession: "New Session",
|
||||
automation: "Automation",
|
||||
refreshAll: "Refresh All",
|
||||
terminal: "Terminal",
|
||||
},
|
||||
palette: {
|
||||
placeholder: "Type a command…",
|
||||
noResults: "No results",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "Gateway Dashboard",
|
||||
passwordPlaceholder: "optional",
|
||||
},
|
||||
chat: {
|
||||
disconnected: "Desconectado de la puerta de enlace.",
|
||||
refreshTitle: "Actualizar datos del chat",
|
||||
thinkingToggle: "Alternar salida de pensamiento/trabajo del asistente",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "Alternar modo de enfoque (ocultar barra lateral + cabecera)",
|
||||
hideCronSessions: "Ocultar sesiones de cron",
|
||||
showCronSessions: "Mostrar sesiones de cron",
|
||||
@@ -126,6 +402,9 @@ export const es: TranslationMap = {
|
||||
ptBR: "Portugués brasileño (Português)",
|
||||
de: "Deutsch (Alemán)",
|
||||
es: "Español",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
|
||||
618
ui/src/i18n/locales/fr.ts
Normal file
618
ui/src/i18n/locales/fr.ts
Normal file
@@ -0,0 +1,618 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const fr: TranslationMap = {
|
||||
common: {
|
||||
health: "Health",
|
||||
ok: "OK",
|
||||
online: "Online",
|
||||
offline: "Offline",
|
||||
connect: "Connect",
|
||||
refresh: "Refresh",
|
||||
enabled: "Enabled",
|
||||
disabled: "Disabled",
|
||||
na: "n/a",
|
||||
version: "Version",
|
||||
docs: "Docs",
|
||||
theme: "Theme",
|
||||
resources: "Resources",
|
||||
search: "Search",
|
||||
},
|
||||
nav: {
|
||||
chat: "Chat",
|
||||
control: "Control",
|
||||
agent: "Agent",
|
||||
settings: "Settings",
|
||||
expand: "Expand sidebar",
|
||||
collapse: "Collapse sidebar",
|
||||
resize: "Resize sidebar",
|
||||
},
|
||||
tabs: {
|
||||
agents: "Agents",
|
||||
overview: "Overview",
|
||||
channels: "Channels",
|
||||
instances: "Instances",
|
||||
sessions: "Sessions",
|
||||
usage: "Usage",
|
||||
cron: "Cron Jobs",
|
||||
skills: "Skills",
|
||||
nodes: "Nodes",
|
||||
chat: "Chat",
|
||||
config: "Config",
|
||||
communications: "Communications",
|
||||
appearance: "Appearance",
|
||||
automation: "Automation",
|
||||
infrastructure: "Infrastructure",
|
||||
aiAgents: "AI & Agents",
|
||||
debug: "Debug",
|
||||
logs: "Logs",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "Workspaces, tools, identities.",
|
||||
overview: "Status, entry points, health.",
|
||||
channels: "Channels and settings.",
|
||||
instances: "Connected clients and nodes.",
|
||||
sessions: "Active sessions and defaults.",
|
||||
usage: "API usage and costs.",
|
||||
cron: "Wakeups and recurring runs.",
|
||||
skills: "Skills and API keys.",
|
||||
nodes: "Paired devices and commands.",
|
||||
chat: "Gateway chat for quick interventions.",
|
||||
config: "Edit openclaw.json.",
|
||||
communications: "Channels, messages, and audio settings.",
|
||||
appearance: "Theme, UI, and setup wizard settings.",
|
||||
automation: "Commands, hooks, cron, and plugins.",
|
||||
infrastructure: "Gateway, web, browser, and media settings.",
|
||||
aiAgents: "Agents, models, skills, tools, memory, session.",
|
||||
debug: "Snapshots, events, RPC.",
|
||||
logs: "Live gateway logs.",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
title: "Gateway Access",
|
||||
subtitle: "Where the dashboard connects and how it authenticates.",
|
||||
wsUrl: "WebSocket URL",
|
||||
token: "Gateway Token",
|
||||
password: "Password (not stored)",
|
||||
sessionKey: "Default Session Key",
|
||||
language: "Language",
|
||||
connectHint: "Click Connect to apply connection changes.",
|
||||
trustedProxy: "Authenticated via trusted proxy.",
|
||||
},
|
||||
snapshot: {
|
||||
title: "Snapshot",
|
||||
subtitle: "Latest gateway handshake information.",
|
||||
status: "Status",
|
||||
uptime: "Uptime",
|
||||
tickInterval: "Tick Interval",
|
||||
lastChannelsRefresh: "Last Channels Refresh",
|
||||
channelsHint: "Use Channels to link WhatsApp, Telegram, Discord, Signal, or iMessage.",
|
||||
},
|
||||
stats: {
|
||||
instances: "Instances",
|
||||
instancesHint: "Presence beacons in the last 5 minutes.",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Recent session keys tracked by the gateway.",
|
||||
cron: "Cron",
|
||||
cronNext: "Next wake {time}",
|
||||
},
|
||||
notes: {
|
||||
title: "Notes",
|
||||
subtitle: "Quick reminders for remote control setups.",
|
||||
tailscaleTitle: "Tailscale serve",
|
||||
tailscaleText: "Prefer serve mode to keep the gateway on loopback with tailnet auth.",
|
||||
sessionTitle: "Session hygiene",
|
||||
sessionText: "Use /new or sessions.patch to reset context.",
|
||||
cronTitle: "Cron reminders",
|
||||
cronText: "Use isolated sessions for recurring runs.",
|
||||
},
|
||||
auth: {
|
||||
required: "This gateway requires auth. Add a token or password, then click Connect.",
|
||||
failed:
|
||||
"Auth failed. Re-copy a tokenized URL with {command}, or update the token, then click Connect.",
|
||||
},
|
||||
pairing: {
|
||||
hint: "This device needs pairing approval from the gateway host.",
|
||||
mobileHint:
|
||||
"On mobile? Copy the full URL (including #token=...) from openclaw dashboard --no-open on your desktop.",
|
||||
},
|
||||
insecure: {
|
||||
hint: "This page is HTTP, so the browser blocks device identity. Use HTTPS (Tailscale Serve) or open {url} on the gateway host.",
|
||||
stayHttp: "If you must stay on HTTP, set {config} (token-only).",
|
||||
},
|
||||
connection: {
|
||||
title: "How to connect",
|
||||
step1: "Start the gateway on your host machine:",
|
||||
step2: "Get a tokenized dashboard URL:",
|
||||
step3: "Paste the WebSocket URL and token above, or open the tokenized URL directly.",
|
||||
step4: "Or generate a reusable token:",
|
||||
docsHint: "For remote access, Tailscale Serve is recommended. ",
|
||||
docsLink: "Read the docs →",
|
||||
},
|
||||
cards: {
|
||||
cost: "Cost",
|
||||
skills: "Skills",
|
||||
recentSessions: "Recent Sessions",
|
||||
},
|
||||
attention: {
|
||||
title: "Attention",
|
||||
},
|
||||
eventLog: {
|
||||
title: "Event Log",
|
||||
},
|
||||
logTail: {
|
||||
title: "Gateway Logs",
|
||||
},
|
||||
quickActions: {
|
||||
newSession: "New Session",
|
||||
automation: "Automation",
|
||||
refreshAll: "Refresh All",
|
||||
terminal: "Terminal",
|
||||
},
|
||||
palette: {
|
||||
placeholder: "Type a command…",
|
||||
noResults: "No results",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "Gateway Dashboard",
|
||||
passwordPlaceholder: "optional",
|
||||
},
|
||||
chat: {
|
||||
disconnected: "Disconnected from gateway.",
|
||||
refreshTitle: "Refresh chat data",
|
||||
thinkingToggle: "Toggle assistant thinking/working output",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "Toggle focus mode (hide sidebar + page header)",
|
||||
hideCronSessions: "Hide cron sessions",
|
||||
showCronSessions: "Show cron sessions",
|
||||
showCronSessionsHidden: "Show cron sessions ({count} hidden)",
|
||||
onboardingDisabled: "Disabled during setup",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
zhCN: "简体中文 (Simplified Chinese)",
|
||||
zhTW: "繁體中文 (Traditional Chinese)",
|
||||
ptBR: "Português (Brazilian Portuguese)",
|
||||
de: "Deutsch (German)",
|
||||
es: "Español (Spanish)",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
enabled: "Enabled",
|
||||
yes: "Yes",
|
||||
no: "No",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
refreshing: "Refreshing...",
|
||||
refresh: "Refresh",
|
||||
},
|
||||
jobs: {
|
||||
title: "Jobs",
|
||||
subtitle: "All scheduled jobs stored in the gateway.",
|
||||
shownOf: "{shown} shown of {total}",
|
||||
searchJobs: "Search jobs",
|
||||
searchPlaceholder: "Name, description, or agent",
|
||||
enabled: "Enabled",
|
||||
schedule: "Schedule",
|
||||
lastRun: "Last run",
|
||||
all: "All",
|
||||
sort: "Sort",
|
||||
nextRun: "Next run",
|
||||
recentlyUpdated: "Recently updated",
|
||||
name: "Name",
|
||||
direction: "Direction",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
reset: "Reset",
|
||||
noMatching: "No matching jobs.",
|
||||
loading: "Loading...",
|
||||
loadMore: "Load more jobs",
|
||||
},
|
||||
runs: {
|
||||
title: "Run history",
|
||||
subtitleAll: "Latest runs across all jobs.",
|
||||
subtitleJob: "Latest runs for {title}.",
|
||||
scope: "Scope",
|
||||
allJobs: "All jobs",
|
||||
selectedJob: "Selected job",
|
||||
searchRuns: "Search runs",
|
||||
searchPlaceholder: "Summary, error, or job",
|
||||
newestFirst: "Newest first",
|
||||
oldestFirst: "Oldest first",
|
||||
status: "Status",
|
||||
delivery: "Delivery",
|
||||
clear: "Clear",
|
||||
allStatuses: "All statuses",
|
||||
allDelivery: "All delivery",
|
||||
selectJobHint: "Select a job to inspect run history.",
|
||||
noMatching: "No matching runs.",
|
||||
loadMore: "Load more runs",
|
||||
runStatusOk: "OK",
|
||||
runStatusError: "Error",
|
||||
runStatusSkipped: "Skipped",
|
||||
runStatusUnknown: "Unknown",
|
||||
deliveryDelivered: "Delivered",
|
||||
deliveryNotDelivered: "Not delivered",
|
||||
deliveryUnknown: "Unknown",
|
||||
deliveryNotRequested: "Not requested",
|
||||
},
|
||||
form: {
|
||||
editJob: "Edit Job",
|
||||
newJob: "New Job",
|
||||
updateSubtitle: "Update the selected scheduled job.",
|
||||
createSubtitle: "Create a scheduled wakeup or agent run.",
|
||||
required: "Required",
|
||||
requiredSr: "required",
|
||||
basics: "Basics",
|
||||
basicsSub: "Name it, choose the assistant, and set enabled state.",
|
||||
fieldName: "Name",
|
||||
description: "Description",
|
||||
agentId: "Agent ID",
|
||||
namePlaceholder: "Morning brief",
|
||||
descriptionPlaceholder: "Optional context for this job",
|
||||
agentPlaceholder: "main or ops",
|
||||
agentHelp: "Start typing to pick a known agent, or enter a custom one.",
|
||||
schedule: "Schedule",
|
||||
scheduleSub: "Control when this job runs.",
|
||||
every: "Every",
|
||||
at: "At",
|
||||
cronOption: "Cron",
|
||||
runAt: "Run at",
|
||||
unit: "Unit",
|
||||
minutes: "Minutes",
|
||||
hours: "Hours",
|
||||
days: "Days",
|
||||
expression: "Expression",
|
||||
expressionPlaceholder: "0 7 * * *",
|
||||
everyAmountPlaceholder: "30",
|
||||
timezoneOptional: "Timezone (optional)",
|
||||
timezonePlaceholder: "America/Los_Angeles",
|
||||
timezoneHelp: "Pick a common timezone or enter any valid IANA timezone.",
|
||||
jitterHelp: "Need jitter? Use Advanced → Stagger window / Stagger unit.",
|
||||
execution: "Execution",
|
||||
executionSub: "Choose when to wake, and what this job should do.",
|
||||
session: "Session",
|
||||
main: "Main",
|
||||
isolated: "Isolated",
|
||||
sessionHelp: "Main posts a system event. Isolated runs a dedicated agent turn.",
|
||||
wakeMode: "Wake mode",
|
||||
now: "Now",
|
||||
nextHeartbeat: "Next heartbeat",
|
||||
wakeModeHelp: "Now triggers immediately. Next heartbeat waits for the next cycle.",
|
||||
payloadKind: "What should run?",
|
||||
systemEvent: "Post message to main timeline",
|
||||
agentTurn: "Run assistant task (isolated)",
|
||||
systemEventHelp:
|
||||
"Sends your text to the gateway main timeline (good for reminders/triggers).",
|
||||
agentTurnHelp: "Starts an assistant run in its own session using your prompt.",
|
||||
timeoutSeconds: "Timeout (seconds)",
|
||||
timeoutPlaceholder: "Optional, e.g. 90",
|
||||
timeoutHelp:
|
||||
"Optional. Leave blank to use the gateway default timeout behavior for this run.",
|
||||
mainTimelineMessage: "Main timeline message",
|
||||
assistantTaskPrompt: "Assistant task prompt",
|
||||
deliverySection: "Delivery",
|
||||
deliverySub: "Choose where run summaries are sent.",
|
||||
resultDelivery: "Result delivery",
|
||||
announceDefault: "Announce summary (default)",
|
||||
webhookPost: "Webhook POST",
|
||||
noneInternal: "None (internal)",
|
||||
deliveryHelp: "Announce posts a summary to chat. None keeps execution internal.",
|
||||
webhookUrl: "Webhook URL",
|
||||
channel: "Channel",
|
||||
webhookPlaceholder: "https://example.com/cron",
|
||||
channelHelp: "Choose which connected channel receives the summary.",
|
||||
webhookHelp: "Send run summaries to a webhook endpoint.",
|
||||
to: "To",
|
||||
toPlaceholder: "+1555... or chat id",
|
||||
toHelp: "Optional recipient override (chat id, phone, or user id).",
|
||||
advanced: "Advanced",
|
||||
advancedHelp:
|
||||
"Optional overrides for delivery guarantees, schedule jitter, and model controls.",
|
||||
deleteAfterRun: "Delete after run",
|
||||
deleteAfterRunHelp: "Best for one-shot reminders that should auto-clean up.",
|
||||
clearAgentOverride: "Clear agent override",
|
||||
clearAgentHelp: "Force this job to use the gateway default assistant.",
|
||||
exactTiming: "Exact timing (no stagger)",
|
||||
exactTimingHelp: "Run on exact cron boundaries with no spread.",
|
||||
staggerWindow: "Stagger window",
|
||||
staggerUnit: "Stagger unit",
|
||||
staggerPlaceholder: "30",
|
||||
seconds: "Seconds",
|
||||
model: "Model",
|
||||
modelPlaceholder: "openai/gpt-5.2",
|
||||
modelHelp: "Start typing to pick a known model, or enter a custom one.",
|
||||
thinking: "Thinking",
|
||||
thinkingPlaceholder: "low",
|
||||
thinkingHelp: "Use a suggested level or enter a provider-specific value.",
|
||||
bestEffortDelivery: "Best effort delivery",
|
||||
bestEffortHelp: "Do not fail the job if delivery itself fails.",
|
||||
cantAddYet: "Can't add job yet",
|
||||
fillRequired: "Fill the required fields below to enable submit.",
|
||||
fixFields: "Fix {count} field to continue.",
|
||||
fixFieldsPlural: "Fix {count} fields to continue.",
|
||||
saving: "Saving...",
|
||||
saveChanges: "Save changes",
|
||||
addJob: "Add job",
|
||||
cancel: "Cancel",
|
||||
},
|
||||
jobList: {
|
||||
allJobs: "all jobs",
|
||||
selectJob: "(select a job)",
|
||||
enabled: "enabled",
|
||||
disabled: "disabled",
|
||||
edit: "Edit",
|
||||
clone: "Clone",
|
||||
disable: "Disable",
|
||||
enable: "Enable",
|
||||
run: "Run",
|
||||
history: "History",
|
||||
remove: "Remove",
|
||||
},
|
||||
jobDetail: {
|
||||
system: "System",
|
||||
prompt: "Prompt",
|
||||
delivery: "Delivery",
|
||||
agent: "Agent",
|
||||
},
|
||||
jobState: {
|
||||
status: "Status",
|
||||
next: "Next",
|
||||
last: "Last",
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "No summary.",
|
||||
runAt: "Run at",
|
||||
openRunChat: "Open run chat",
|
||||
next: "Next {rel}",
|
||||
due: "Due {rel}",
|
||||
},
|
||||
errors: {
|
||||
nameRequired: "Name is required.",
|
||||
scheduleAtInvalid: "Enter a valid date/time.",
|
||||
everyAmountInvalid: "Interval must be greater than 0.",
|
||||
cronExprRequired: "Cron expression is required.",
|
||||
staggerAmountInvalid: "Stagger must be greater than 0.",
|
||||
systemTextRequired: "System text is required.",
|
||||
agentMessageRequired: "Agent message is required.",
|
||||
timeoutInvalid: "If set, timeout must be greater than 0 seconds.",
|
||||
webhookUrlRequired: "Webhook URL is required.",
|
||||
webhookUrlInvalid: "Webhook URL must start with http:// or https://.",
|
||||
invalidRunTime: "Invalid run time.",
|
||||
invalidIntervalAmount: "Invalid interval amount.",
|
||||
cronExprRequiredShort: "Cron expression required.",
|
||||
invalidStaggerAmount: "Invalid stagger amount.",
|
||||
systemEventTextRequired: "System event text required.",
|
||||
agentMessageRequiredShort: "Agent message required.",
|
||||
nameRequiredShort: "Name required.",
|
||||
},
|
||||
},
|
||||
};
|
||||
618
ui/src/i18n/locales/ja-JP.ts
Normal file
618
ui/src/i18n/locales/ja-JP.ts
Normal file
@@ -0,0 +1,618 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const ja_JP: TranslationMap = {
|
||||
common: {
|
||||
health: "Health",
|
||||
ok: "OK",
|
||||
online: "Online",
|
||||
offline: "Offline",
|
||||
connect: "Connect",
|
||||
refresh: "Refresh",
|
||||
enabled: "Enabled",
|
||||
disabled: "Disabled",
|
||||
na: "n/a",
|
||||
version: "Version",
|
||||
docs: "Docs",
|
||||
theme: "Theme",
|
||||
resources: "Resources",
|
||||
search: "Search",
|
||||
},
|
||||
nav: {
|
||||
chat: "Chat",
|
||||
control: "Control",
|
||||
agent: "Agent",
|
||||
settings: "Settings",
|
||||
expand: "Expand sidebar",
|
||||
collapse: "Collapse sidebar",
|
||||
resize: "Resize sidebar",
|
||||
},
|
||||
tabs: {
|
||||
agents: "Agents",
|
||||
overview: "Overview",
|
||||
channels: "Channels",
|
||||
instances: "Instances",
|
||||
sessions: "Sessions",
|
||||
usage: "Usage",
|
||||
cron: "Cron Jobs",
|
||||
skills: "Skills",
|
||||
nodes: "Nodes",
|
||||
chat: "Chat",
|
||||
config: "Config",
|
||||
communications: "Communications",
|
||||
appearance: "Appearance",
|
||||
automation: "Automation",
|
||||
infrastructure: "Infrastructure",
|
||||
aiAgents: "AI & Agents",
|
||||
debug: "Debug",
|
||||
logs: "Logs",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "Workspaces, tools, identities.",
|
||||
overview: "Status, entry points, health.",
|
||||
channels: "Channels and settings.",
|
||||
instances: "Connected clients and nodes.",
|
||||
sessions: "Active sessions and defaults.",
|
||||
usage: "API usage and costs.",
|
||||
cron: "Wakeups and recurring runs.",
|
||||
skills: "Skills and API keys.",
|
||||
nodes: "Paired devices and commands.",
|
||||
chat: "Gateway chat for quick interventions.",
|
||||
config: "Edit openclaw.json.",
|
||||
communications: "Channels, messages, and audio settings.",
|
||||
appearance: "Theme, UI, and setup wizard settings.",
|
||||
automation: "Commands, hooks, cron, and plugins.",
|
||||
infrastructure: "Gateway, web, browser, and media settings.",
|
||||
aiAgents: "Agents, models, skills, tools, memory, session.",
|
||||
debug: "Snapshots, events, RPC.",
|
||||
logs: "Live gateway logs.",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
title: "Gateway Access",
|
||||
subtitle: "Where the dashboard connects and how it authenticates.",
|
||||
wsUrl: "WebSocket URL",
|
||||
token: "Gateway Token",
|
||||
password: "Password (not stored)",
|
||||
sessionKey: "Default Session Key",
|
||||
language: "Language",
|
||||
connectHint: "Click Connect to apply connection changes.",
|
||||
trustedProxy: "Authenticated via trusted proxy.",
|
||||
},
|
||||
snapshot: {
|
||||
title: "Snapshot",
|
||||
subtitle: "Latest gateway handshake information.",
|
||||
status: "Status",
|
||||
uptime: "Uptime",
|
||||
tickInterval: "Tick Interval",
|
||||
lastChannelsRefresh: "Last Channels Refresh",
|
||||
channelsHint: "Use Channels to link WhatsApp, Telegram, Discord, Signal, or iMessage.",
|
||||
},
|
||||
stats: {
|
||||
instances: "Instances",
|
||||
instancesHint: "Presence beacons in the last 5 minutes.",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Recent session keys tracked by the gateway.",
|
||||
cron: "Cron",
|
||||
cronNext: "Next wake {time}",
|
||||
},
|
||||
notes: {
|
||||
title: "Notes",
|
||||
subtitle: "Quick reminders for remote control setups.",
|
||||
tailscaleTitle: "Tailscale serve",
|
||||
tailscaleText: "Prefer serve mode to keep the gateway on loopback with tailnet auth.",
|
||||
sessionTitle: "Session hygiene",
|
||||
sessionText: "Use /new or sessions.patch to reset context.",
|
||||
cronTitle: "Cron reminders",
|
||||
cronText: "Use isolated sessions for recurring runs.",
|
||||
},
|
||||
auth: {
|
||||
required: "This gateway requires auth. Add a token or password, then click Connect.",
|
||||
failed:
|
||||
"Auth failed. Re-copy a tokenized URL with {command}, or update the token, then click Connect.",
|
||||
},
|
||||
pairing: {
|
||||
hint: "This device needs pairing approval from the gateway host.",
|
||||
mobileHint:
|
||||
"On mobile? Copy the full URL (including #token=...) from openclaw dashboard --no-open on your desktop.",
|
||||
},
|
||||
insecure: {
|
||||
hint: "This page is HTTP, so the browser blocks device identity. Use HTTPS (Tailscale Serve) or open {url} on the gateway host.",
|
||||
stayHttp: "If you must stay on HTTP, set {config} (token-only).",
|
||||
},
|
||||
connection: {
|
||||
title: "How to connect",
|
||||
step1: "Start the gateway on your host machine:",
|
||||
step2: "Get a tokenized dashboard URL:",
|
||||
step3: "Paste the WebSocket URL and token above, or open the tokenized URL directly.",
|
||||
step4: "Or generate a reusable token:",
|
||||
docsHint: "For remote access, Tailscale Serve is recommended. ",
|
||||
docsLink: "Read the docs →",
|
||||
},
|
||||
cards: {
|
||||
cost: "Cost",
|
||||
skills: "Skills",
|
||||
recentSessions: "Recent Sessions",
|
||||
},
|
||||
attention: {
|
||||
title: "Attention",
|
||||
},
|
||||
eventLog: {
|
||||
title: "Event Log",
|
||||
},
|
||||
logTail: {
|
||||
title: "Gateway Logs",
|
||||
},
|
||||
quickActions: {
|
||||
newSession: "New Session",
|
||||
automation: "Automation",
|
||||
refreshAll: "Refresh All",
|
||||
terminal: "Terminal",
|
||||
},
|
||||
palette: {
|
||||
placeholder: "Type a command…",
|
||||
noResults: "No results",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "Gateway Dashboard",
|
||||
passwordPlaceholder: "optional",
|
||||
},
|
||||
chat: {
|
||||
disconnected: "Disconnected from gateway.",
|
||||
refreshTitle: "Refresh chat data",
|
||||
thinkingToggle: "Toggle assistant thinking/working output",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "Toggle focus mode (hide sidebar + page header)",
|
||||
hideCronSessions: "Hide cron sessions",
|
||||
showCronSessions: "Show cron sessions",
|
||||
showCronSessionsHidden: "Show cron sessions ({count} hidden)",
|
||||
onboardingDisabled: "Disabled during setup",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
zhCN: "简体中文 (Simplified Chinese)",
|
||||
zhTW: "繁體中文 (Traditional Chinese)",
|
||||
ptBR: "Português (Brazilian Portuguese)",
|
||||
de: "Deutsch (German)",
|
||||
es: "Español (Spanish)",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
enabled: "Enabled",
|
||||
yes: "Yes",
|
||||
no: "No",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
refreshing: "Refreshing...",
|
||||
refresh: "Refresh",
|
||||
},
|
||||
jobs: {
|
||||
title: "Jobs",
|
||||
subtitle: "All scheduled jobs stored in the gateway.",
|
||||
shownOf: "{shown} shown of {total}",
|
||||
searchJobs: "Search jobs",
|
||||
searchPlaceholder: "Name, description, or agent",
|
||||
enabled: "Enabled",
|
||||
schedule: "Schedule",
|
||||
lastRun: "Last run",
|
||||
all: "All",
|
||||
sort: "Sort",
|
||||
nextRun: "Next run",
|
||||
recentlyUpdated: "Recently updated",
|
||||
name: "Name",
|
||||
direction: "Direction",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
reset: "Reset",
|
||||
noMatching: "No matching jobs.",
|
||||
loading: "Loading...",
|
||||
loadMore: "Load more jobs",
|
||||
},
|
||||
runs: {
|
||||
title: "Run history",
|
||||
subtitleAll: "Latest runs across all jobs.",
|
||||
subtitleJob: "Latest runs for {title}.",
|
||||
scope: "Scope",
|
||||
allJobs: "All jobs",
|
||||
selectedJob: "Selected job",
|
||||
searchRuns: "Search runs",
|
||||
searchPlaceholder: "Summary, error, or job",
|
||||
newestFirst: "Newest first",
|
||||
oldestFirst: "Oldest first",
|
||||
status: "Status",
|
||||
delivery: "Delivery",
|
||||
clear: "Clear",
|
||||
allStatuses: "All statuses",
|
||||
allDelivery: "All delivery",
|
||||
selectJobHint: "Select a job to inspect run history.",
|
||||
noMatching: "No matching runs.",
|
||||
loadMore: "Load more runs",
|
||||
runStatusOk: "OK",
|
||||
runStatusError: "Error",
|
||||
runStatusSkipped: "Skipped",
|
||||
runStatusUnknown: "Unknown",
|
||||
deliveryDelivered: "Delivered",
|
||||
deliveryNotDelivered: "Not delivered",
|
||||
deliveryUnknown: "Unknown",
|
||||
deliveryNotRequested: "Not requested",
|
||||
},
|
||||
form: {
|
||||
editJob: "Edit Job",
|
||||
newJob: "New Job",
|
||||
updateSubtitle: "Update the selected scheduled job.",
|
||||
createSubtitle: "Create a scheduled wakeup or agent run.",
|
||||
required: "Required",
|
||||
requiredSr: "required",
|
||||
basics: "Basics",
|
||||
basicsSub: "Name it, choose the assistant, and set enabled state.",
|
||||
fieldName: "Name",
|
||||
description: "Description",
|
||||
agentId: "Agent ID",
|
||||
namePlaceholder: "Morning brief",
|
||||
descriptionPlaceholder: "Optional context for this job",
|
||||
agentPlaceholder: "main or ops",
|
||||
agentHelp: "Start typing to pick a known agent, or enter a custom one.",
|
||||
schedule: "Schedule",
|
||||
scheduleSub: "Control when this job runs.",
|
||||
every: "Every",
|
||||
at: "At",
|
||||
cronOption: "Cron",
|
||||
runAt: "Run at",
|
||||
unit: "Unit",
|
||||
minutes: "Minutes",
|
||||
hours: "Hours",
|
||||
days: "Days",
|
||||
expression: "Expression",
|
||||
expressionPlaceholder: "0 7 * * *",
|
||||
everyAmountPlaceholder: "30",
|
||||
timezoneOptional: "Timezone (optional)",
|
||||
timezonePlaceholder: "America/Los_Angeles",
|
||||
timezoneHelp: "Pick a common timezone or enter any valid IANA timezone.",
|
||||
jitterHelp: "Need jitter? Use Advanced → Stagger window / Stagger unit.",
|
||||
execution: "Execution",
|
||||
executionSub: "Choose when to wake, and what this job should do.",
|
||||
session: "Session",
|
||||
main: "Main",
|
||||
isolated: "Isolated",
|
||||
sessionHelp: "Main posts a system event. Isolated runs a dedicated agent turn.",
|
||||
wakeMode: "Wake mode",
|
||||
now: "Now",
|
||||
nextHeartbeat: "Next heartbeat",
|
||||
wakeModeHelp: "Now triggers immediately. Next heartbeat waits for the next cycle.",
|
||||
payloadKind: "What should run?",
|
||||
systemEvent: "Post message to main timeline",
|
||||
agentTurn: "Run assistant task (isolated)",
|
||||
systemEventHelp:
|
||||
"Sends your text to the gateway main timeline (good for reminders/triggers).",
|
||||
agentTurnHelp: "Starts an assistant run in its own session using your prompt.",
|
||||
timeoutSeconds: "Timeout (seconds)",
|
||||
timeoutPlaceholder: "Optional, e.g. 90",
|
||||
timeoutHelp:
|
||||
"Optional. Leave blank to use the gateway default timeout behavior for this run.",
|
||||
mainTimelineMessage: "Main timeline message",
|
||||
assistantTaskPrompt: "Assistant task prompt",
|
||||
deliverySection: "Delivery",
|
||||
deliverySub: "Choose where run summaries are sent.",
|
||||
resultDelivery: "Result delivery",
|
||||
announceDefault: "Announce summary (default)",
|
||||
webhookPost: "Webhook POST",
|
||||
noneInternal: "None (internal)",
|
||||
deliveryHelp: "Announce posts a summary to chat. None keeps execution internal.",
|
||||
webhookUrl: "Webhook URL",
|
||||
channel: "Channel",
|
||||
webhookPlaceholder: "https://example.com/cron",
|
||||
channelHelp: "Choose which connected channel receives the summary.",
|
||||
webhookHelp: "Send run summaries to a webhook endpoint.",
|
||||
to: "To",
|
||||
toPlaceholder: "+1555... or chat id",
|
||||
toHelp: "Optional recipient override (chat id, phone, or user id).",
|
||||
advanced: "Advanced",
|
||||
advancedHelp:
|
||||
"Optional overrides for delivery guarantees, schedule jitter, and model controls.",
|
||||
deleteAfterRun: "Delete after run",
|
||||
deleteAfterRunHelp: "Best for one-shot reminders that should auto-clean up.",
|
||||
clearAgentOverride: "Clear agent override",
|
||||
clearAgentHelp: "Force this job to use the gateway default assistant.",
|
||||
exactTiming: "Exact timing (no stagger)",
|
||||
exactTimingHelp: "Run on exact cron boundaries with no spread.",
|
||||
staggerWindow: "Stagger window",
|
||||
staggerUnit: "Stagger unit",
|
||||
staggerPlaceholder: "30",
|
||||
seconds: "Seconds",
|
||||
model: "Model",
|
||||
modelPlaceholder: "openai/gpt-5.2",
|
||||
modelHelp: "Start typing to pick a known model, or enter a custom one.",
|
||||
thinking: "Thinking",
|
||||
thinkingPlaceholder: "low",
|
||||
thinkingHelp: "Use a suggested level or enter a provider-specific value.",
|
||||
bestEffortDelivery: "Best effort delivery",
|
||||
bestEffortHelp: "Do not fail the job if delivery itself fails.",
|
||||
cantAddYet: "Can't add job yet",
|
||||
fillRequired: "Fill the required fields below to enable submit.",
|
||||
fixFields: "Fix {count} field to continue.",
|
||||
fixFieldsPlural: "Fix {count} fields to continue.",
|
||||
saving: "Saving...",
|
||||
saveChanges: "Save changes",
|
||||
addJob: "Add job",
|
||||
cancel: "Cancel",
|
||||
},
|
||||
jobList: {
|
||||
allJobs: "all jobs",
|
||||
selectJob: "(select a job)",
|
||||
enabled: "enabled",
|
||||
disabled: "disabled",
|
||||
edit: "Edit",
|
||||
clone: "Clone",
|
||||
disable: "Disable",
|
||||
enable: "Enable",
|
||||
run: "Run",
|
||||
history: "History",
|
||||
remove: "Remove",
|
||||
},
|
||||
jobDetail: {
|
||||
system: "System",
|
||||
prompt: "Prompt",
|
||||
delivery: "Delivery",
|
||||
agent: "Agent",
|
||||
},
|
||||
jobState: {
|
||||
status: "Status",
|
||||
next: "Next",
|
||||
last: "Last",
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "No summary.",
|
||||
runAt: "Run at",
|
||||
openRunChat: "Open run chat",
|
||||
next: "Next {rel}",
|
||||
due: "Due {rel}",
|
||||
},
|
||||
errors: {
|
||||
nameRequired: "Name is required.",
|
||||
scheduleAtInvalid: "Enter a valid date/time.",
|
||||
everyAmountInvalid: "Interval must be greater than 0.",
|
||||
cronExprRequired: "Cron expression is required.",
|
||||
staggerAmountInvalid: "Stagger must be greater than 0.",
|
||||
systemTextRequired: "System text is required.",
|
||||
agentMessageRequired: "Agent message is required.",
|
||||
timeoutInvalid: "If set, timeout must be greater than 0 seconds.",
|
||||
webhookUrlRequired: "Webhook URL is required.",
|
||||
webhookUrlInvalid: "Webhook URL must start with http:// or https://.",
|
||||
invalidRunTime: "Invalid run time.",
|
||||
invalidIntervalAmount: "Invalid interval amount.",
|
||||
cronExprRequiredShort: "Cron expression required.",
|
||||
invalidStaggerAmount: "Invalid stagger amount.",
|
||||
systemEventTextRequired: "System event text required.",
|
||||
agentMessageRequiredShort: "Agent message required.",
|
||||
nameRequiredShort: "Name required.",
|
||||
},
|
||||
},
|
||||
};
|
||||
618
ui/src/i18n/locales/ko.ts
Normal file
618
ui/src/i18n/locales/ko.ts
Normal file
@@ -0,0 +1,618 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const ko: TranslationMap = {
|
||||
common: {
|
||||
health: "Health",
|
||||
ok: "OK",
|
||||
online: "Online",
|
||||
offline: "Offline",
|
||||
connect: "Connect",
|
||||
refresh: "Refresh",
|
||||
enabled: "Enabled",
|
||||
disabled: "Disabled",
|
||||
na: "n/a",
|
||||
version: "Version",
|
||||
docs: "Docs",
|
||||
theme: "Theme",
|
||||
resources: "Resources",
|
||||
search: "Search",
|
||||
},
|
||||
nav: {
|
||||
chat: "Chat",
|
||||
control: "Control",
|
||||
agent: "Agent",
|
||||
settings: "Settings",
|
||||
expand: "Expand sidebar",
|
||||
collapse: "Collapse sidebar",
|
||||
resize: "Resize sidebar",
|
||||
},
|
||||
tabs: {
|
||||
agents: "Agents",
|
||||
overview: "Overview",
|
||||
channels: "Channels",
|
||||
instances: "Instances",
|
||||
sessions: "Sessions",
|
||||
usage: "Usage",
|
||||
cron: "Cron Jobs",
|
||||
skills: "Skills",
|
||||
nodes: "Nodes",
|
||||
chat: "Chat",
|
||||
config: "Config",
|
||||
communications: "Communications",
|
||||
appearance: "Appearance",
|
||||
automation: "Automation",
|
||||
infrastructure: "Infrastructure",
|
||||
aiAgents: "AI & Agents",
|
||||
debug: "Debug",
|
||||
logs: "Logs",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "Workspaces, tools, identities.",
|
||||
overview: "Status, entry points, health.",
|
||||
channels: "Channels and settings.",
|
||||
instances: "Connected clients and nodes.",
|
||||
sessions: "Active sessions and defaults.",
|
||||
usage: "API usage and costs.",
|
||||
cron: "Wakeups and recurring runs.",
|
||||
skills: "Skills and API keys.",
|
||||
nodes: "Paired devices and commands.",
|
||||
chat: "Gateway chat for quick interventions.",
|
||||
config: "Edit openclaw.json.",
|
||||
communications: "Channels, messages, and audio settings.",
|
||||
appearance: "Theme, UI, and setup wizard settings.",
|
||||
automation: "Commands, hooks, cron, and plugins.",
|
||||
infrastructure: "Gateway, web, browser, and media settings.",
|
||||
aiAgents: "Agents, models, skills, tools, memory, session.",
|
||||
debug: "Snapshots, events, RPC.",
|
||||
logs: "Live gateway logs.",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
title: "Gateway Access",
|
||||
subtitle: "Where the dashboard connects and how it authenticates.",
|
||||
wsUrl: "WebSocket URL",
|
||||
token: "Gateway Token",
|
||||
password: "Password (not stored)",
|
||||
sessionKey: "Default Session Key",
|
||||
language: "Language",
|
||||
connectHint: "Click Connect to apply connection changes.",
|
||||
trustedProxy: "Authenticated via trusted proxy.",
|
||||
},
|
||||
snapshot: {
|
||||
title: "Snapshot",
|
||||
subtitle: "Latest gateway handshake information.",
|
||||
status: "Status",
|
||||
uptime: "Uptime",
|
||||
tickInterval: "Tick Interval",
|
||||
lastChannelsRefresh: "Last Channels Refresh",
|
||||
channelsHint: "Use Channels to link WhatsApp, Telegram, Discord, Signal, or iMessage.",
|
||||
},
|
||||
stats: {
|
||||
instances: "Instances",
|
||||
instancesHint: "Presence beacons in the last 5 minutes.",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Recent session keys tracked by the gateway.",
|
||||
cron: "Cron",
|
||||
cronNext: "Next wake {time}",
|
||||
},
|
||||
notes: {
|
||||
title: "Notes",
|
||||
subtitle: "Quick reminders for remote control setups.",
|
||||
tailscaleTitle: "Tailscale serve",
|
||||
tailscaleText: "Prefer serve mode to keep the gateway on loopback with tailnet auth.",
|
||||
sessionTitle: "Session hygiene",
|
||||
sessionText: "Use /new or sessions.patch to reset context.",
|
||||
cronTitle: "Cron reminders",
|
||||
cronText: "Use isolated sessions for recurring runs.",
|
||||
},
|
||||
auth: {
|
||||
required: "This gateway requires auth. Add a token or password, then click Connect.",
|
||||
failed:
|
||||
"Auth failed. Re-copy a tokenized URL with {command}, or update the token, then click Connect.",
|
||||
},
|
||||
pairing: {
|
||||
hint: "This device needs pairing approval from the gateway host.",
|
||||
mobileHint:
|
||||
"On mobile? Copy the full URL (including #token=...) from openclaw dashboard --no-open on your desktop.",
|
||||
},
|
||||
insecure: {
|
||||
hint: "This page is HTTP, so the browser blocks device identity. Use HTTPS (Tailscale Serve) or open {url} on the gateway host.",
|
||||
stayHttp: "If you must stay on HTTP, set {config} (token-only).",
|
||||
},
|
||||
connection: {
|
||||
title: "How to connect",
|
||||
step1: "Start the gateway on your host machine:",
|
||||
step2: "Get a tokenized dashboard URL:",
|
||||
step3: "Paste the WebSocket URL and token above, or open the tokenized URL directly.",
|
||||
step4: "Or generate a reusable token:",
|
||||
docsHint: "For remote access, Tailscale Serve is recommended. ",
|
||||
docsLink: "Read the docs →",
|
||||
},
|
||||
cards: {
|
||||
cost: "Cost",
|
||||
skills: "Skills",
|
||||
recentSessions: "Recent Sessions",
|
||||
},
|
||||
attention: {
|
||||
title: "Attention",
|
||||
},
|
||||
eventLog: {
|
||||
title: "Event Log",
|
||||
},
|
||||
logTail: {
|
||||
title: "Gateway Logs",
|
||||
},
|
||||
quickActions: {
|
||||
newSession: "New Session",
|
||||
automation: "Automation",
|
||||
refreshAll: "Refresh All",
|
||||
terminal: "Terminal",
|
||||
},
|
||||
palette: {
|
||||
placeholder: "Type a command…",
|
||||
noResults: "No results",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "Gateway Dashboard",
|
||||
passwordPlaceholder: "optional",
|
||||
},
|
||||
chat: {
|
||||
disconnected: "Disconnected from gateway.",
|
||||
refreshTitle: "Refresh chat data",
|
||||
thinkingToggle: "Toggle assistant thinking/working output",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "Toggle focus mode (hide sidebar + page header)",
|
||||
hideCronSessions: "Hide cron sessions",
|
||||
showCronSessions: "Show cron sessions",
|
||||
showCronSessionsHidden: "Show cron sessions ({count} hidden)",
|
||||
onboardingDisabled: "Disabled during setup",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
zhCN: "简体中文 (Simplified Chinese)",
|
||||
zhTW: "繁體中文 (Traditional Chinese)",
|
||||
ptBR: "Português (Brazilian Portuguese)",
|
||||
de: "Deutsch (German)",
|
||||
es: "Español (Spanish)",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
enabled: "Enabled",
|
||||
yes: "Yes",
|
||||
no: "No",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
refreshing: "Refreshing...",
|
||||
refresh: "Refresh",
|
||||
},
|
||||
jobs: {
|
||||
title: "Jobs",
|
||||
subtitle: "All scheduled jobs stored in the gateway.",
|
||||
shownOf: "{shown} shown of {total}",
|
||||
searchJobs: "Search jobs",
|
||||
searchPlaceholder: "Name, description, or agent",
|
||||
enabled: "Enabled",
|
||||
schedule: "Schedule",
|
||||
lastRun: "Last run",
|
||||
all: "All",
|
||||
sort: "Sort",
|
||||
nextRun: "Next run",
|
||||
recentlyUpdated: "Recently updated",
|
||||
name: "Name",
|
||||
direction: "Direction",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
reset: "Reset",
|
||||
noMatching: "No matching jobs.",
|
||||
loading: "Loading...",
|
||||
loadMore: "Load more jobs",
|
||||
},
|
||||
runs: {
|
||||
title: "Run history",
|
||||
subtitleAll: "Latest runs across all jobs.",
|
||||
subtitleJob: "Latest runs for {title}.",
|
||||
scope: "Scope",
|
||||
allJobs: "All jobs",
|
||||
selectedJob: "Selected job",
|
||||
searchRuns: "Search runs",
|
||||
searchPlaceholder: "Summary, error, or job",
|
||||
newestFirst: "Newest first",
|
||||
oldestFirst: "Oldest first",
|
||||
status: "Status",
|
||||
delivery: "Delivery",
|
||||
clear: "Clear",
|
||||
allStatuses: "All statuses",
|
||||
allDelivery: "All delivery",
|
||||
selectJobHint: "Select a job to inspect run history.",
|
||||
noMatching: "No matching runs.",
|
||||
loadMore: "Load more runs",
|
||||
runStatusOk: "OK",
|
||||
runStatusError: "Error",
|
||||
runStatusSkipped: "Skipped",
|
||||
runStatusUnknown: "Unknown",
|
||||
deliveryDelivered: "Delivered",
|
||||
deliveryNotDelivered: "Not delivered",
|
||||
deliveryUnknown: "Unknown",
|
||||
deliveryNotRequested: "Not requested",
|
||||
},
|
||||
form: {
|
||||
editJob: "Edit Job",
|
||||
newJob: "New Job",
|
||||
updateSubtitle: "Update the selected scheduled job.",
|
||||
createSubtitle: "Create a scheduled wakeup or agent run.",
|
||||
required: "Required",
|
||||
requiredSr: "required",
|
||||
basics: "Basics",
|
||||
basicsSub: "Name it, choose the assistant, and set enabled state.",
|
||||
fieldName: "Name",
|
||||
description: "Description",
|
||||
agentId: "Agent ID",
|
||||
namePlaceholder: "Morning brief",
|
||||
descriptionPlaceholder: "Optional context for this job",
|
||||
agentPlaceholder: "main or ops",
|
||||
agentHelp: "Start typing to pick a known agent, or enter a custom one.",
|
||||
schedule: "Schedule",
|
||||
scheduleSub: "Control when this job runs.",
|
||||
every: "Every",
|
||||
at: "At",
|
||||
cronOption: "Cron",
|
||||
runAt: "Run at",
|
||||
unit: "Unit",
|
||||
minutes: "Minutes",
|
||||
hours: "Hours",
|
||||
days: "Days",
|
||||
expression: "Expression",
|
||||
expressionPlaceholder: "0 7 * * *",
|
||||
everyAmountPlaceholder: "30",
|
||||
timezoneOptional: "Timezone (optional)",
|
||||
timezonePlaceholder: "America/Los_Angeles",
|
||||
timezoneHelp: "Pick a common timezone or enter any valid IANA timezone.",
|
||||
jitterHelp: "Need jitter? Use Advanced → Stagger window / Stagger unit.",
|
||||
execution: "Execution",
|
||||
executionSub: "Choose when to wake, and what this job should do.",
|
||||
session: "Session",
|
||||
main: "Main",
|
||||
isolated: "Isolated",
|
||||
sessionHelp: "Main posts a system event. Isolated runs a dedicated agent turn.",
|
||||
wakeMode: "Wake mode",
|
||||
now: "Now",
|
||||
nextHeartbeat: "Next heartbeat",
|
||||
wakeModeHelp: "Now triggers immediately. Next heartbeat waits for the next cycle.",
|
||||
payloadKind: "What should run?",
|
||||
systemEvent: "Post message to main timeline",
|
||||
agentTurn: "Run assistant task (isolated)",
|
||||
systemEventHelp:
|
||||
"Sends your text to the gateway main timeline (good for reminders/triggers).",
|
||||
agentTurnHelp: "Starts an assistant run in its own session using your prompt.",
|
||||
timeoutSeconds: "Timeout (seconds)",
|
||||
timeoutPlaceholder: "Optional, e.g. 90",
|
||||
timeoutHelp:
|
||||
"Optional. Leave blank to use the gateway default timeout behavior for this run.",
|
||||
mainTimelineMessage: "Main timeline message",
|
||||
assistantTaskPrompt: "Assistant task prompt",
|
||||
deliverySection: "Delivery",
|
||||
deliverySub: "Choose where run summaries are sent.",
|
||||
resultDelivery: "Result delivery",
|
||||
announceDefault: "Announce summary (default)",
|
||||
webhookPost: "Webhook POST",
|
||||
noneInternal: "None (internal)",
|
||||
deliveryHelp: "Announce posts a summary to chat. None keeps execution internal.",
|
||||
webhookUrl: "Webhook URL",
|
||||
channel: "Channel",
|
||||
webhookPlaceholder: "https://example.com/cron",
|
||||
channelHelp: "Choose which connected channel receives the summary.",
|
||||
webhookHelp: "Send run summaries to a webhook endpoint.",
|
||||
to: "To",
|
||||
toPlaceholder: "+1555... or chat id",
|
||||
toHelp: "Optional recipient override (chat id, phone, or user id).",
|
||||
advanced: "Advanced",
|
||||
advancedHelp:
|
||||
"Optional overrides for delivery guarantees, schedule jitter, and model controls.",
|
||||
deleteAfterRun: "Delete after run",
|
||||
deleteAfterRunHelp: "Best for one-shot reminders that should auto-clean up.",
|
||||
clearAgentOverride: "Clear agent override",
|
||||
clearAgentHelp: "Force this job to use the gateway default assistant.",
|
||||
exactTiming: "Exact timing (no stagger)",
|
||||
exactTimingHelp: "Run on exact cron boundaries with no spread.",
|
||||
staggerWindow: "Stagger window",
|
||||
staggerUnit: "Stagger unit",
|
||||
staggerPlaceholder: "30",
|
||||
seconds: "Seconds",
|
||||
model: "Model",
|
||||
modelPlaceholder: "openai/gpt-5.2",
|
||||
modelHelp: "Start typing to pick a known model, or enter a custom one.",
|
||||
thinking: "Thinking",
|
||||
thinkingPlaceholder: "low",
|
||||
thinkingHelp: "Use a suggested level or enter a provider-specific value.",
|
||||
bestEffortDelivery: "Best effort delivery",
|
||||
bestEffortHelp: "Do not fail the job if delivery itself fails.",
|
||||
cantAddYet: "Can't add job yet",
|
||||
fillRequired: "Fill the required fields below to enable submit.",
|
||||
fixFields: "Fix {count} field to continue.",
|
||||
fixFieldsPlural: "Fix {count} fields to continue.",
|
||||
saving: "Saving...",
|
||||
saveChanges: "Save changes",
|
||||
addJob: "Add job",
|
||||
cancel: "Cancel",
|
||||
},
|
||||
jobList: {
|
||||
allJobs: "all jobs",
|
||||
selectJob: "(select a job)",
|
||||
enabled: "enabled",
|
||||
disabled: "disabled",
|
||||
edit: "Edit",
|
||||
clone: "Clone",
|
||||
disable: "Disable",
|
||||
enable: "Enable",
|
||||
run: "Run",
|
||||
history: "History",
|
||||
remove: "Remove",
|
||||
},
|
||||
jobDetail: {
|
||||
system: "System",
|
||||
prompt: "Prompt",
|
||||
delivery: "Delivery",
|
||||
agent: "Agent",
|
||||
},
|
||||
jobState: {
|
||||
status: "Status",
|
||||
next: "Next",
|
||||
last: "Last",
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "No summary.",
|
||||
runAt: "Run at",
|
||||
openRunChat: "Open run chat",
|
||||
next: "Next {rel}",
|
||||
due: "Due {rel}",
|
||||
},
|
||||
errors: {
|
||||
nameRequired: "Name is required.",
|
||||
scheduleAtInvalid: "Enter a valid date/time.",
|
||||
everyAmountInvalid: "Interval must be greater than 0.",
|
||||
cronExprRequired: "Cron expression is required.",
|
||||
staggerAmountInvalid: "Stagger must be greater than 0.",
|
||||
systemTextRequired: "System text is required.",
|
||||
agentMessageRequired: "Agent message is required.",
|
||||
timeoutInvalid: "If set, timeout must be greater than 0 seconds.",
|
||||
webhookUrlRequired: "Webhook URL is required.",
|
||||
webhookUrlInvalid: "Webhook URL must start with http:// or https://.",
|
||||
invalidRunTime: "Invalid run time.",
|
||||
invalidIntervalAmount: "Invalid interval amount.",
|
||||
cronExprRequiredShort: "Cron expression required.",
|
||||
invalidStaggerAmount: "Invalid stagger amount.",
|
||||
systemEventTextRequired: "System event text required.",
|
||||
agentMessageRequiredShort: "Agent message required.",
|
||||
nameRequiredShort: "Name required.",
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const pt_BR: TranslationMap = {
|
||||
common: {
|
||||
health: "Saúde",
|
||||
@@ -13,6 +14,7 @@ export const pt_BR: TranslationMap = {
|
||||
na: "n/a",
|
||||
version: "Versão",
|
||||
docs: "Docs",
|
||||
theme: "Theme",
|
||||
resources: "Recursos",
|
||||
search: "Pesquisar",
|
||||
},
|
||||
@@ -44,6 +46,7 @@ export const pt_BR: TranslationMap = {
|
||||
aiAgents: "IA e Agentes",
|
||||
debug: "Debug",
|
||||
logs: "Logs",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "Espaços, ferramentas, identidades.",
|
||||
@@ -64,6 +67,7 @@ export const pt_BR: TranslationMap = {
|
||||
aiAgents: "Configurações de agentes, modelos, habilidades, ferramentas, memória e sessão.",
|
||||
debug: "Snapshots, eventos, RPC.",
|
||||
logs: "Logs ao vivo do gateway.",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
@@ -154,6 +158,228 @@ export const pt_BR: TranslationMap = {
|
||||
noResults: "Sem resultados",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "Painel do Gateway",
|
||||
passwordPlaceholder: "opcional",
|
||||
@@ -162,6 +388,7 @@ export const pt_BR: TranslationMap = {
|
||||
disconnected: "Desconectado do gateway.",
|
||||
refreshTitle: "Atualizar dados do chat",
|
||||
thinkingToggle: "Alternar saída de pensamento/trabalho do assistente",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "Alternar modo de foco (ocultar barra lateral + cabeçalho da página)",
|
||||
hideCronSessions: "Ocultar sessões de cron",
|
||||
showCronSessions: "Mostrar sessões de cron",
|
||||
@@ -175,5 +402,219 @@ export const pt_BR: TranslationMap = {
|
||||
ptBR: "Português (Português Brasileiro)",
|
||||
de: "Deutsch (Alemão)",
|
||||
es: "Español (Espanhol)",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
enabled: "Enabled",
|
||||
yes: "Yes",
|
||||
no: "No",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
refreshing: "Refreshing...",
|
||||
refresh: "Refresh",
|
||||
},
|
||||
jobs: {
|
||||
title: "Jobs",
|
||||
subtitle: "All scheduled jobs stored in the gateway.",
|
||||
shownOf: "{shown} shown of {total}",
|
||||
searchJobs: "Search jobs",
|
||||
searchPlaceholder: "Name, description, or agent",
|
||||
enabled: "Enabled",
|
||||
schedule: "Schedule",
|
||||
lastRun: "Last run",
|
||||
all: "All",
|
||||
sort: "Sort",
|
||||
nextRun: "Next run",
|
||||
recentlyUpdated: "Recently updated",
|
||||
name: "Name",
|
||||
direction: "Direction",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
reset: "Reset",
|
||||
noMatching: "No matching jobs.",
|
||||
loading: "Loading...",
|
||||
loadMore: "Load more jobs",
|
||||
},
|
||||
runs: {
|
||||
title: "Run history",
|
||||
subtitleAll: "Latest runs across all jobs.",
|
||||
subtitleJob: "Latest runs for {title}.",
|
||||
scope: "Scope",
|
||||
allJobs: "All jobs",
|
||||
selectedJob: "Selected job",
|
||||
searchRuns: "Search runs",
|
||||
searchPlaceholder: "Summary, error, or job",
|
||||
newestFirst: "Newest first",
|
||||
oldestFirst: "Oldest first",
|
||||
status: "Status",
|
||||
delivery: "Delivery",
|
||||
clear: "Clear",
|
||||
allStatuses: "All statuses",
|
||||
allDelivery: "All delivery",
|
||||
selectJobHint: "Select a job to inspect run history.",
|
||||
noMatching: "No matching runs.",
|
||||
loadMore: "Load more runs",
|
||||
runStatusOk: "OK",
|
||||
runStatusError: "Error",
|
||||
runStatusSkipped: "Skipped",
|
||||
runStatusUnknown: "Unknown",
|
||||
deliveryDelivered: "Delivered",
|
||||
deliveryNotDelivered: "Not delivered",
|
||||
deliveryUnknown: "Unknown",
|
||||
deliveryNotRequested: "Not requested",
|
||||
},
|
||||
form: {
|
||||
editJob: "Edit Job",
|
||||
newJob: "New Job",
|
||||
updateSubtitle: "Update the selected scheduled job.",
|
||||
createSubtitle: "Create a scheduled wakeup or agent run.",
|
||||
required: "Required",
|
||||
requiredSr: "required",
|
||||
basics: "Basics",
|
||||
basicsSub: "Name it, choose the assistant, and set enabled state.",
|
||||
fieldName: "Name",
|
||||
description: "Description",
|
||||
agentId: "Agent ID",
|
||||
namePlaceholder: "Morning brief",
|
||||
descriptionPlaceholder: "Optional context for this job",
|
||||
agentPlaceholder: "main or ops",
|
||||
agentHelp: "Start typing to pick a known agent, or enter a custom one.",
|
||||
schedule: "Schedule",
|
||||
scheduleSub: "Control when this job runs.",
|
||||
every: "Every",
|
||||
at: "At",
|
||||
cronOption: "Cron",
|
||||
runAt: "Run at",
|
||||
unit: "Unit",
|
||||
minutes: "Minutes",
|
||||
hours: "Hours",
|
||||
days: "Days",
|
||||
expression: "Expression",
|
||||
expressionPlaceholder: "0 7 * * *",
|
||||
everyAmountPlaceholder: "30",
|
||||
timezoneOptional: "Timezone (optional)",
|
||||
timezonePlaceholder: "America/Los_Angeles",
|
||||
timezoneHelp: "Pick a common timezone or enter any valid IANA timezone.",
|
||||
jitterHelp: "Need jitter? Use Advanced → Stagger window / Stagger unit.",
|
||||
execution: "Execution",
|
||||
executionSub: "Choose when to wake, and what this job should do.",
|
||||
session: "Session",
|
||||
main: "Main",
|
||||
isolated: "Isolated",
|
||||
sessionHelp: "Main posts a system event. Isolated runs a dedicated agent turn.",
|
||||
wakeMode: "Wake mode",
|
||||
now: "Now",
|
||||
nextHeartbeat: "Next heartbeat",
|
||||
wakeModeHelp: "Now triggers immediately. Next heartbeat waits for the next cycle.",
|
||||
payloadKind: "What should run?",
|
||||
systemEvent: "Post message to main timeline",
|
||||
agentTurn: "Run assistant task (isolated)",
|
||||
systemEventHelp:
|
||||
"Sends your text to the gateway main timeline (good for reminders/triggers).",
|
||||
agentTurnHelp: "Starts an assistant run in its own session using your prompt.",
|
||||
timeoutSeconds: "Timeout (seconds)",
|
||||
timeoutPlaceholder: "Optional, e.g. 90",
|
||||
timeoutHelp:
|
||||
"Optional. Leave blank to use the gateway default timeout behavior for this run.",
|
||||
mainTimelineMessage: "Main timeline message",
|
||||
assistantTaskPrompt: "Assistant task prompt",
|
||||
deliverySection: "Delivery",
|
||||
deliverySub: "Choose where run summaries are sent.",
|
||||
resultDelivery: "Result delivery",
|
||||
announceDefault: "Announce summary (default)",
|
||||
webhookPost: "Webhook POST",
|
||||
noneInternal: "None (internal)",
|
||||
deliveryHelp: "Announce posts a summary to chat. None keeps execution internal.",
|
||||
webhookUrl: "Webhook URL",
|
||||
channel: "Channel",
|
||||
webhookPlaceholder: "https://example.com/cron",
|
||||
channelHelp: "Choose which connected channel receives the summary.",
|
||||
webhookHelp: "Send run summaries to a webhook endpoint.",
|
||||
to: "To",
|
||||
toPlaceholder: "+1555... or chat id",
|
||||
toHelp: "Optional recipient override (chat id, phone, or user id).",
|
||||
advanced: "Advanced",
|
||||
advancedHelp:
|
||||
"Optional overrides for delivery guarantees, schedule jitter, and model controls.",
|
||||
deleteAfterRun: "Delete after run",
|
||||
deleteAfterRunHelp: "Best for one-shot reminders that should auto-clean up.",
|
||||
clearAgentOverride: "Clear agent override",
|
||||
clearAgentHelp: "Force this job to use the gateway default assistant.",
|
||||
exactTiming: "Exact timing (no stagger)",
|
||||
exactTimingHelp: "Run on exact cron boundaries with no spread.",
|
||||
staggerWindow: "Stagger window",
|
||||
staggerUnit: "Stagger unit",
|
||||
staggerPlaceholder: "30",
|
||||
seconds: "Seconds",
|
||||
model: "Model",
|
||||
modelPlaceholder: "openai/gpt-5.2",
|
||||
modelHelp: "Start typing to pick a known model, or enter a custom one.",
|
||||
thinking: "Thinking",
|
||||
thinkingPlaceholder: "low",
|
||||
thinkingHelp: "Use a suggested level or enter a provider-specific value.",
|
||||
bestEffortDelivery: "Best effort delivery",
|
||||
bestEffortHelp: "Do not fail the job if delivery itself fails.",
|
||||
cantAddYet: "Can't add job yet",
|
||||
fillRequired: "Fill the required fields below to enable submit.",
|
||||
fixFields: "Fix {count} field to continue.",
|
||||
fixFieldsPlural: "Fix {count} fields to continue.",
|
||||
saving: "Saving...",
|
||||
saveChanges: "Save changes",
|
||||
addJob: "Add job",
|
||||
cancel: "Cancel",
|
||||
},
|
||||
jobList: {
|
||||
allJobs: "all jobs",
|
||||
selectJob: "(select a job)",
|
||||
enabled: "enabled",
|
||||
disabled: "disabled",
|
||||
edit: "Edit",
|
||||
clone: "Clone",
|
||||
disable: "Disable",
|
||||
enable: "Enable",
|
||||
run: "Run",
|
||||
history: "History",
|
||||
remove: "Remove",
|
||||
},
|
||||
jobDetail: {
|
||||
system: "System",
|
||||
prompt: "Prompt",
|
||||
delivery: "Delivery",
|
||||
agent: "Agent",
|
||||
},
|
||||
jobState: {
|
||||
status: "Status",
|
||||
next: "Next",
|
||||
last: "Last",
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "No summary.",
|
||||
runAt: "Run at",
|
||||
openRunChat: "Open run chat",
|
||||
next: "Next {rel}",
|
||||
due: "Due {rel}",
|
||||
},
|
||||
errors: {
|
||||
nameRequired: "Name is required.",
|
||||
scheduleAtInvalid: "Enter a valid date/time.",
|
||||
everyAmountInvalid: "Interval must be greater than 0.",
|
||||
cronExprRequired: "Cron expression is required.",
|
||||
staggerAmountInvalid: "Stagger must be greater than 0.",
|
||||
systemTextRequired: "System text is required.",
|
||||
agentMessageRequired: "Agent message is required.",
|
||||
timeoutInvalid: "If set, timeout must be greater than 0 seconds.",
|
||||
webhookUrlRequired: "Webhook URL is required.",
|
||||
webhookUrlInvalid: "Webhook URL must start with http:// or https://.",
|
||||
invalidRunTime: "Invalid run time.",
|
||||
invalidIntervalAmount: "Invalid interval amount.",
|
||||
cronExprRequiredShort: "Cron expression required.",
|
||||
invalidStaggerAmount: "Invalid stagger amount.",
|
||||
systemEventTextRequired: "System event text required.",
|
||||
agentMessageRequiredShort: "Agent message required.",
|
||||
nameRequiredShort: "Name required.",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const zh_CN: TranslationMap = {
|
||||
common: {
|
||||
health: "健康状况",
|
||||
@@ -13,6 +14,7 @@ export const zh_CN: TranslationMap = {
|
||||
na: "不适用",
|
||||
version: "版本",
|
||||
docs: "文档",
|
||||
theme: "Theme",
|
||||
resources: "资源",
|
||||
search: "搜索",
|
||||
},
|
||||
@@ -44,6 +46,7 @@ export const zh_CN: TranslationMap = {
|
||||
aiAgents: "AI 与代理",
|
||||
debug: "调试",
|
||||
logs: "日志",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "工作区、工具、身份。",
|
||||
@@ -64,6 +67,7 @@ export const zh_CN: TranslationMap = {
|
||||
aiAgents: "代理、模型、技能、工具、记忆和会话设置。",
|
||||
debug: "快照、事件、RPC。",
|
||||
logs: "实时网关日志。",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
@@ -151,6 +155,228 @@ export const zh_CN: TranslationMap = {
|
||||
noResults: "无结果",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "网关仪表盘",
|
||||
passwordPlaceholder: "可选",
|
||||
@@ -159,6 +385,7 @@ export const zh_CN: TranslationMap = {
|
||||
disconnected: "已断开与网关的连接。",
|
||||
refreshTitle: "刷新聊天数据",
|
||||
thinkingToggle: "切换助手思考/工作输出",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "切换专注模式 (隐藏侧边栏 + 页面页眉)",
|
||||
hideCronSessions: "隐藏定时任务会话",
|
||||
showCronSessions: "显示定时任务会话",
|
||||
@@ -172,6 +399,9 @@ export const zh_CN: TranslationMap = {
|
||||
ptBR: "Português (巴西葡萄牙语)",
|
||||
de: "Deutsch (德语)",
|
||||
es: "Español (西班牙语)",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
@@ -190,6 +420,8 @@ export const zh_CN: TranslationMap = {
|
||||
searchJobs: "搜索任务",
|
||||
searchPlaceholder: "名称、描述或代理",
|
||||
enabled: "启用状态",
|
||||
schedule: "Schedule",
|
||||
lastRun: "Last run",
|
||||
all: "全部",
|
||||
sort: "排序",
|
||||
nextRun: "下次运行",
|
||||
@@ -198,6 +430,7 @@ export const zh_CN: TranslationMap = {
|
||||
direction: "方向",
|
||||
ascending: "升序",
|
||||
descending: "降序",
|
||||
reset: "Reset",
|
||||
noMatching: "没有匹配的任务。",
|
||||
loading: "加载中...",
|
||||
loadMore: "加载更多任务",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { TranslationMap } from "../lib/types.ts";
|
||||
|
||||
// Generated by scripts/control-ui-i18n.ts.
|
||||
export const zh_TW: TranslationMap = {
|
||||
common: {
|
||||
health: "健康狀況",
|
||||
@@ -13,6 +14,7 @@ export const zh_TW: TranslationMap = {
|
||||
na: "不適用",
|
||||
version: "版本",
|
||||
docs: "文檔",
|
||||
theme: "Theme",
|
||||
resources: "資源",
|
||||
search: "搜尋",
|
||||
},
|
||||
@@ -44,6 +46,7 @@ export const zh_TW: TranslationMap = {
|
||||
aiAgents: "AI 與代理",
|
||||
debug: "調試",
|
||||
logs: "日誌",
|
||||
dreams: "Dreams",
|
||||
},
|
||||
subtitles: {
|
||||
agents: "工作區、工具、身份。",
|
||||
@@ -64,6 +67,7 @@ export const zh_TW: TranslationMap = {
|
||||
aiAgents: "代理、模型、技能、工具、記憶和會話設置。",
|
||||
debug: "快照、事件、RPC。",
|
||||
logs: "實時網關日誌。",
|
||||
dreams: "Memory consolidation while sleeping.",
|
||||
},
|
||||
overview: {
|
||||
access: {
|
||||
@@ -151,6 +155,228 @@ export const zh_TW: TranslationMap = {
|
||||
noResults: "無結果",
|
||||
},
|
||||
},
|
||||
usage: {
|
||||
page: {
|
||||
subtitle: "See where tokens go, when sessions spike, and what drives cost.",
|
||||
},
|
||||
common: {
|
||||
emptyValue: "—",
|
||||
unknown: "unknown",
|
||||
},
|
||||
loading: {
|
||||
title: "Usage Overview",
|
||||
badge: "Loading",
|
||||
},
|
||||
metrics: {
|
||||
tokens: "Tokens",
|
||||
cost: "Cost",
|
||||
session: "session",
|
||||
sessions: "sessions",
|
||||
},
|
||||
presets: {
|
||||
today: "Today",
|
||||
last7d: "7d",
|
||||
last30d: "30d",
|
||||
},
|
||||
filters: {
|
||||
title: "Filters",
|
||||
to: "to",
|
||||
startDate: "Start date",
|
||||
endDate: "End date",
|
||||
timeZone: "Time zone",
|
||||
timeZoneLocal: "Local",
|
||||
timeZoneUtc: "UTC",
|
||||
pin: "Pin",
|
||||
pinned: "Pinned",
|
||||
unpin: "Unpin filters",
|
||||
selectAll: "Select All",
|
||||
clear: "Clear",
|
||||
clearAll: "Clear All",
|
||||
remove: "Remove filter",
|
||||
all: "All",
|
||||
days: "Days",
|
||||
hours: "Hours",
|
||||
session: "Session",
|
||||
agent: "Agent",
|
||||
channel: "Channel",
|
||||
provider: "Provider",
|
||||
model: "Model",
|
||||
tool: "Tool",
|
||||
daysCount: "{count} days",
|
||||
hoursCount: "{count} hours",
|
||||
sessionsCount: "{count} sessions",
|
||||
},
|
||||
query: {
|
||||
placeholder:
|
||||
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
|
||||
apply: "Filter (client-side)",
|
||||
matching: "{shown} of {total} sessions match",
|
||||
inRange: "{total} sessions in range",
|
||||
tip: "Tip: use filters or click bars to refine days.",
|
||||
},
|
||||
export: {
|
||||
label: "Export",
|
||||
sessionsCsv: "Sessions CSV",
|
||||
dailyCsv: "Daily CSV",
|
||||
json: "JSON",
|
||||
},
|
||||
empty: {
|
||||
title: "Start with a date range",
|
||||
subtitle:
|
||||
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard.",
|
||||
hint: "Select a date range and click Refresh to load usage.",
|
||||
noData: "No data",
|
||||
featureOverview: "Overview cards",
|
||||
featureSessions: "Session ranking",
|
||||
featureTimeline: "Timeline drilldown",
|
||||
},
|
||||
daily: {
|
||||
title: "Daily Usage",
|
||||
total: "Total",
|
||||
byType: "By Type",
|
||||
tokensTitle: "Daily Token Usage",
|
||||
costTitle: "Daily Cost",
|
||||
},
|
||||
breakdown: {
|
||||
output: "Output",
|
||||
input: "Input",
|
||||
cacheWrite: "Cache Write",
|
||||
cacheRead: "Cache Read",
|
||||
total: "Total",
|
||||
tokensByType: "Tokens by Type",
|
||||
costByType: "Cost by Type",
|
||||
},
|
||||
overview: {
|
||||
title: "Usage Overview",
|
||||
messages: "Messages",
|
||||
messagesHint: "Total user and assistant messages in range.",
|
||||
messagesAbbrev: "msgs",
|
||||
user: "user",
|
||||
assistant: "assistant",
|
||||
toolCalls: "Tool Calls",
|
||||
toolCallsHint: "Total tool call count across sessions.",
|
||||
toolsUsed: "tools used",
|
||||
errors: "Errors",
|
||||
errorsHint: "Total message and tool errors in range.",
|
||||
toolResults: "tool results",
|
||||
avgTokens: "Avg Tokens / Msg",
|
||||
avgTokensHint: "Average tokens per message in this range.",
|
||||
avgCost: "Avg Cost / Msg",
|
||||
avgCostHint: "Average cost per message when providers report costs.",
|
||||
avgCostHintMissing:
|
||||
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range.",
|
||||
acrossMessages: "Across {count} messages",
|
||||
sessions: "Sessions",
|
||||
sessionsHint: "Distinct sessions in the range.",
|
||||
sessionsInRange: "of {count} in range",
|
||||
throughput: "Throughput",
|
||||
throughputHint: "Throughput shows tokens per minute over active time. Higher is better.",
|
||||
tokensPerMinute: "tok/min",
|
||||
perMinute: "/ min",
|
||||
errorRate: "Error Rate",
|
||||
errorHint: "Error rate = errors / total messages. Lower is better.",
|
||||
avgSession: "avg session",
|
||||
cacheHitRate: "Cache Hit Rate",
|
||||
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better.",
|
||||
cached: "cached",
|
||||
prompt: "prompt",
|
||||
calls: "calls",
|
||||
topModels: "Top Models",
|
||||
topProviders: "Top Providers",
|
||||
topTools: "Top Tools",
|
||||
topAgents: "Top Agents",
|
||||
topChannels: "Top Channels",
|
||||
peakErrorDays: "Peak Error Days",
|
||||
peakErrorHours: "Peak Error Hours",
|
||||
noModelData: "No model data",
|
||||
noProviderData: "No provider data",
|
||||
noToolCalls: "No tool calls",
|
||||
noAgentData: "No agent data",
|
||||
noChannelData: "No channel data",
|
||||
noErrorData: "No error data",
|
||||
},
|
||||
sessions: {
|
||||
title: "Sessions",
|
||||
shown: "{count} shown",
|
||||
total: "{count} total",
|
||||
avg: "avg",
|
||||
all: "All",
|
||||
recent: "Recently viewed",
|
||||
recentShort: "Recent",
|
||||
sort: "Sort",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
clearSelection: "Clear Selection",
|
||||
noRecent: "No recent sessions",
|
||||
noneInRange: "No sessions in range",
|
||||
more: "+{count} more",
|
||||
selected: "Selected ({count})",
|
||||
copy: "Copy",
|
||||
copyName: "Copy session name",
|
||||
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results.",
|
||||
},
|
||||
details: {
|
||||
noUsageData: "No usage data for this session.",
|
||||
duration: "Duration",
|
||||
modelMix: "Model Mix",
|
||||
filtered: "(filtered)",
|
||||
close: "Close session details",
|
||||
noTimeline: "No timeline data",
|
||||
noDataInRange: "No data in range",
|
||||
usageOverTime: "Usage Over Time",
|
||||
reset: "Reset",
|
||||
perTurn: "Per Turn",
|
||||
cumulative: "Cumulative",
|
||||
turnRange: "Turns {start}–{end} of {total}",
|
||||
assistantOutputTokens: "Assistant output tokens",
|
||||
userToolInputTokens: "User + tool input tokens",
|
||||
tokensWrittenToCache: "Tokens written to cache",
|
||||
tokensReadFromCache: "Tokens read from cache",
|
||||
noContextData: "No context data",
|
||||
systemPromptBreakdown: "System Prompt Breakdown",
|
||||
collapse: "Collapse",
|
||||
collapseAll: "Collapse All",
|
||||
expandAll: "Expand All",
|
||||
baseContextPerMessage: "Base context per message",
|
||||
system: "System",
|
||||
systemShort: "Sys",
|
||||
skills: "Skills",
|
||||
tools: "Tools",
|
||||
files: "Files",
|
||||
ofInput: "of input",
|
||||
of: "of",
|
||||
timelineFiltered: "timeline filtered",
|
||||
conversation: "Conversation",
|
||||
noMessages: "No messages",
|
||||
tool: "Tool",
|
||||
toolResult: "Tool result",
|
||||
hasTools: "Has tools",
|
||||
searchConversation: "Search conversation",
|
||||
you: "You",
|
||||
noMessagesMatch: "No messages match the filters.",
|
||||
},
|
||||
mosaic: {
|
||||
title: "Activity by Time",
|
||||
subtitleEmpty: "Estimates require session timestamps.",
|
||||
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}.",
|
||||
noTimelineData: "No timeline data yet.",
|
||||
dayOfWeek: "Day of Week",
|
||||
midnight: "Midnight",
|
||||
fourAm: "4am",
|
||||
eightAm: "8am",
|
||||
noon: "Noon",
|
||||
fourPm: "4pm",
|
||||
eightPm: "8pm",
|
||||
legend: "Low → High token density",
|
||||
sun: "Sun",
|
||||
mon: "Mon",
|
||||
tue: "Tue",
|
||||
wed: "Wed",
|
||||
thu: "Thu",
|
||||
fri: "Fri",
|
||||
sat: "Sat",
|
||||
},
|
||||
},
|
||||
login: {
|
||||
subtitle: "閘道儀表板",
|
||||
passwordPlaceholder: "可選",
|
||||
@@ -159,6 +385,7 @@ export const zh_TW: TranslationMap = {
|
||||
disconnected: "已斷開與網關的連接。",
|
||||
refreshTitle: "刷新聊天數據",
|
||||
thinkingToggle: "切換助手思考/工作輸出",
|
||||
toolCallsToggle: "Toggle tool calls and tool results",
|
||||
focusToggle: "切換專注模式 (隱藏側邊欄 + 頁面頁眉)",
|
||||
hideCronSessions: "隱藏定時任務會話",
|
||||
showCronSessions: "顯示定時任務會話",
|
||||
@@ -172,5 +399,219 @@ export const zh_TW: TranslationMap = {
|
||||
ptBR: "Português (巴西葡萄牙語)",
|
||||
de: "Deutsch (德語)",
|
||||
es: "Español (西班牙語)",
|
||||
jaJP: "日本語 (Japanese)",
|
||||
ko: "한국어 (Korean)",
|
||||
fr: "Français (French)",
|
||||
},
|
||||
cron: {
|
||||
summary: {
|
||||
enabled: "Enabled",
|
||||
yes: "Yes",
|
||||
no: "No",
|
||||
jobs: "Jobs",
|
||||
nextWake: "Next wake",
|
||||
refreshing: "Refreshing...",
|
||||
refresh: "Refresh",
|
||||
},
|
||||
jobs: {
|
||||
title: "Jobs",
|
||||
subtitle: "All scheduled jobs stored in the gateway.",
|
||||
shownOf: "{shown} shown of {total}",
|
||||
searchJobs: "Search jobs",
|
||||
searchPlaceholder: "Name, description, or agent",
|
||||
enabled: "Enabled",
|
||||
schedule: "Schedule",
|
||||
lastRun: "Last run",
|
||||
all: "All",
|
||||
sort: "Sort",
|
||||
nextRun: "Next run",
|
||||
recentlyUpdated: "Recently updated",
|
||||
name: "Name",
|
||||
direction: "Direction",
|
||||
ascending: "Ascending",
|
||||
descending: "Descending",
|
||||
reset: "Reset",
|
||||
noMatching: "No matching jobs.",
|
||||
loading: "Loading...",
|
||||
loadMore: "Load more jobs",
|
||||
},
|
||||
runs: {
|
||||
title: "Run history",
|
||||
subtitleAll: "Latest runs across all jobs.",
|
||||
subtitleJob: "Latest runs for {title}.",
|
||||
scope: "Scope",
|
||||
allJobs: "All jobs",
|
||||
selectedJob: "Selected job",
|
||||
searchRuns: "Search runs",
|
||||
searchPlaceholder: "Summary, error, or job",
|
||||
newestFirst: "Newest first",
|
||||
oldestFirst: "Oldest first",
|
||||
status: "Status",
|
||||
delivery: "Delivery",
|
||||
clear: "Clear",
|
||||
allStatuses: "All statuses",
|
||||
allDelivery: "All delivery",
|
||||
selectJobHint: "Select a job to inspect run history.",
|
||||
noMatching: "No matching runs.",
|
||||
loadMore: "Load more runs",
|
||||
runStatusOk: "OK",
|
||||
runStatusError: "Error",
|
||||
runStatusSkipped: "Skipped",
|
||||
runStatusUnknown: "Unknown",
|
||||
deliveryDelivered: "Delivered",
|
||||
deliveryNotDelivered: "Not delivered",
|
||||
deliveryUnknown: "Unknown",
|
||||
deliveryNotRequested: "Not requested",
|
||||
},
|
||||
form: {
|
||||
editJob: "Edit Job",
|
||||
newJob: "New Job",
|
||||
updateSubtitle: "Update the selected scheduled job.",
|
||||
createSubtitle: "Create a scheduled wakeup or agent run.",
|
||||
required: "Required",
|
||||
requiredSr: "required",
|
||||
basics: "Basics",
|
||||
basicsSub: "Name it, choose the assistant, and set enabled state.",
|
||||
fieldName: "Name",
|
||||
description: "Description",
|
||||
agentId: "Agent ID",
|
||||
namePlaceholder: "Morning brief",
|
||||
descriptionPlaceholder: "Optional context for this job",
|
||||
agentPlaceholder: "main or ops",
|
||||
agentHelp: "Start typing to pick a known agent, or enter a custom one.",
|
||||
schedule: "Schedule",
|
||||
scheduleSub: "Control when this job runs.",
|
||||
every: "Every",
|
||||
at: "At",
|
||||
cronOption: "Cron",
|
||||
runAt: "Run at",
|
||||
unit: "Unit",
|
||||
minutes: "Minutes",
|
||||
hours: "Hours",
|
||||
days: "Days",
|
||||
expression: "Expression",
|
||||
expressionPlaceholder: "0 7 * * *",
|
||||
everyAmountPlaceholder: "30",
|
||||
timezoneOptional: "Timezone (optional)",
|
||||
timezonePlaceholder: "America/Los_Angeles",
|
||||
timezoneHelp: "Pick a common timezone or enter any valid IANA timezone.",
|
||||
jitterHelp: "Need jitter? Use Advanced → Stagger window / Stagger unit.",
|
||||
execution: "Execution",
|
||||
executionSub: "Choose when to wake, and what this job should do.",
|
||||
session: "Session",
|
||||
main: "Main",
|
||||
isolated: "Isolated",
|
||||
sessionHelp: "Main posts a system event. Isolated runs a dedicated agent turn.",
|
||||
wakeMode: "Wake mode",
|
||||
now: "Now",
|
||||
nextHeartbeat: "Next heartbeat",
|
||||
wakeModeHelp: "Now triggers immediately. Next heartbeat waits for the next cycle.",
|
||||
payloadKind: "What should run?",
|
||||
systemEvent: "Post message to main timeline",
|
||||
agentTurn: "Run assistant task (isolated)",
|
||||
systemEventHelp:
|
||||
"Sends your text to the gateway main timeline (good for reminders/triggers).",
|
||||
agentTurnHelp: "Starts an assistant run in its own session using your prompt.",
|
||||
timeoutSeconds: "Timeout (seconds)",
|
||||
timeoutPlaceholder: "Optional, e.g. 90",
|
||||
timeoutHelp:
|
||||
"Optional. Leave blank to use the gateway default timeout behavior for this run.",
|
||||
mainTimelineMessage: "Main timeline message",
|
||||
assistantTaskPrompt: "Assistant task prompt",
|
||||
deliverySection: "Delivery",
|
||||
deliverySub: "Choose where run summaries are sent.",
|
||||
resultDelivery: "Result delivery",
|
||||
announceDefault: "Announce summary (default)",
|
||||
webhookPost: "Webhook POST",
|
||||
noneInternal: "None (internal)",
|
||||
deliveryHelp: "Announce posts a summary to chat. None keeps execution internal.",
|
||||
webhookUrl: "Webhook URL",
|
||||
channel: "Channel",
|
||||
webhookPlaceholder: "https://example.com/cron",
|
||||
channelHelp: "Choose which connected channel receives the summary.",
|
||||
webhookHelp: "Send run summaries to a webhook endpoint.",
|
||||
to: "To",
|
||||
toPlaceholder: "+1555... or chat id",
|
||||
toHelp: "Optional recipient override (chat id, phone, or user id).",
|
||||
advanced: "Advanced",
|
||||
advancedHelp:
|
||||
"Optional overrides for delivery guarantees, schedule jitter, and model controls.",
|
||||
deleteAfterRun: "Delete after run",
|
||||
deleteAfterRunHelp: "Best for one-shot reminders that should auto-clean up.",
|
||||
clearAgentOverride: "Clear agent override",
|
||||
clearAgentHelp: "Force this job to use the gateway default assistant.",
|
||||
exactTiming: "Exact timing (no stagger)",
|
||||
exactTimingHelp: "Run on exact cron boundaries with no spread.",
|
||||
staggerWindow: "Stagger window",
|
||||
staggerUnit: "Stagger unit",
|
||||
staggerPlaceholder: "30",
|
||||
seconds: "Seconds",
|
||||
model: "Model",
|
||||
modelPlaceholder: "openai/gpt-5.2",
|
||||
modelHelp: "Start typing to pick a known model, or enter a custom one.",
|
||||
thinking: "Thinking",
|
||||
thinkingPlaceholder: "low",
|
||||
thinkingHelp: "Use a suggested level or enter a provider-specific value.",
|
||||
bestEffortDelivery: "Best effort delivery",
|
||||
bestEffortHelp: "Do not fail the job if delivery itself fails.",
|
||||
cantAddYet: "Can't add job yet",
|
||||
fillRequired: "Fill the required fields below to enable submit.",
|
||||
fixFields: "Fix {count} field to continue.",
|
||||
fixFieldsPlural: "Fix {count} fields to continue.",
|
||||
saving: "Saving...",
|
||||
saveChanges: "Save changes",
|
||||
addJob: "Add job",
|
||||
cancel: "Cancel",
|
||||
},
|
||||
jobList: {
|
||||
allJobs: "all jobs",
|
||||
selectJob: "(select a job)",
|
||||
enabled: "enabled",
|
||||
disabled: "disabled",
|
||||
edit: "Edit",
|
||||
clone: "Clone",
|
||||
disable: "Disable",
|
||||
enable: "Enable",
|
||||
run: "Run",
|
||||
history: "History",
|
||||
remove: "Remove",
|
||||
},
|
||||
jobDetail: {
|
||||
system: "System",
|
||||
prompt: "Prompt",
|
||||
delivery: "Delivery",
|
||||
agent: "Agent",
|
||||
},
|
||||
jobState: {
|
||||
status: "Status",
|
||||
next: "Next",
|
||||
last: "Last",
|
||||
},
|
||||
runEntry: {
|
||||
noSummary: "No summary.",
|
||||
runAt: "Run at",
|
||||
openRunChat: "Open run chat",
|
||||
next: "Next {rel}",
|
||||
due: "Due {rel}",
|
||||
},
|
||||
errors: {
|
||||
nameRequired: "Name is required.",
|
||||
scheduleAtInvalid: "Enter a valid date/time.",
|
||||
everyAmountInvalid: "Interval must be greater than 0.",
|
||||
cronExprRequired: "Cron expression is required.",
|
||||
staggerAmountInvalid: "Stagger must be greater than 0.",
|
||||
systemTextRequired: "System text is required.",
|
||||
agentMessageRequired: "Agent message is required.",
|
||||
timeoutInvalid: "If set, timeout must be greater than 0 seconds.",
|
||||
webhookUrlRequired: "Webhook URL is required.",
|
||||
webhookUrlInvalid: "Webhook URL must start with http:// or https://.",
|
||||
invalidRunTime: "Invalid run time.",
|
||||
invalidIntervalAmount: "Invalid interval amount.",
|
||||
cronExprRequiredShort: "Cron expression required.",
|
||||
invalidStaggerAmount: "Invalid stagger amount.",
|
||||
systemEventTextRequired: "System event text required.",
|
||||
agentMessageRequiredShort: "Agent message required.",
|
||||
nameRequiredShort: "Name required.",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user