@project-ava-supernova/core 0.2.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agent.d.ts +623 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +3558 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/claims-auditor.d.ts +54 -0
- package/dist/agent/claims-auditor.d.ts.map +1 -0
- package/dist/agent/claims-auditor.js +125 -0
- package/dist/agent/claims-auditor.js.map +1 -0
- package/dist/agent/context-continuity.d.ts +125 -0
- package/dist/agent/context-continuity.d.ts.map +1 -0
- package/dist/agent/context-continuity.js +231 -0
- package/dist/agent/context-continuity.js.map +1 -0
- package/dist/agent/conversation.d.ts +26 -0
- package/dist/agent/conversation.d.ts.map +1 -0
- package/dist/agent/conversation.js +86 -0
- package/dist/agent/conversation.js.map +1 -0
- package/dist/agent/design-reinjection.d.ts +93 -0
- package/dist/agent/design-reinjection.d.ts.map +1 -0
- package/dist/agent/design-reinjection.js +235 -0
- package/dist/agent/design-reinjection.js.map +1 -0
- package/dist/agent/error-loop-detector.d.ts +59 -0
- package/dist/agent/error-loop-detector.d.ts.map +1 -0
- package/dist/agent/error-loop-detector.js +124 -0
- package/dist/agent/error-loop-detector.js.map +1 -0
- package/dist/agent/fresh-eyes.d.ts +52 -0
- package/dist/agent/fresh-eyes.d.ts.map +1 -0
- package/dist/agent/fresh-eyes.js +118 -0
- package/dist/agent/fresh-eyes.js.map +1 -0
- package/dist/agent/intent-classifier.d.ts +51 -0
- package/dist/agent/intent-classifier.d.ts.map +1 -0
- package/dist/agent/intent-classifier.js +125 -0
- package/dist/agent/intent-classifier.js.map +1 -0
- package/dist/agent/post-edit-verify.d.ts +79 -0
- package/dist/agent/post-edit-verify.d.ts.map +1 -0
- package/dist/agent/post-edit-verify.js +143 -0
- package/dist/agent/post-edit-verify.js.map +1 -0
- package/dist/agent/recover-written-calls.d.ts +90 -0
- package/dist/agent/recover-written-calls.d.ts.map +1 -0
- package/dist/agent/recover-written-calls.js +257 -0
- package/dist/agent/recover-written-calls.js.map +1 -0
- package/dist/agent/social-craft.d.ts +76 -0
- package/dist/agent/social-craft.d.ts.map +1 -0
- package/dist/agent/social-craft.js +210 -0
- package/dist/agent/social-craft.js.map +1 -0
- package/dist/agent/stop-command.d.ts +23 -0
- package/dist/agent/stop-command.d.ts.map +1 -0
- package/dist/agent/stop-command.js +59 -0
- package/dist/agent/stop-command.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +125 -0
- package/dist/agent/system-prompt.d.ts.map +1 -0
- package/dist/agent/system-prompt.js +1334 -0
- package/dist/agent/system-prompt.js.map +1 -0
- package/dist/agent/task-classifier.d.ts +50 -0
- package/dist/agent/task-classifier.d.ts.map +1 -0
- package/dist/agent/task-classifier.js +187 -0
- package/dist/agent/task-classifier.js.map +1 -0
- package/dist/agent/text-tool-parser.d.ts +34 -0
- package/dist/agent/text-tool-parser.d.ts.map +1 -0
- package/dist/agent/text-tool-parser.js +96 -0
- package/dist/agent/text-tool-parser.js.map +1 -0
- package/dist/agent/vision-bridge.d.ts +29 -0
- package/dist/agent/vision-bridge.d.ts.map +1 -0
- package/dist/agent/vision-bridge.js +143 -0
- package/dist/agent/vision-bridge.js.map +1 -0
- package/dist/audit/cost.d.ts +18 -0
- package/dist/audit/cost.d.ts.map +1 -0
- package/dist/audit/cost.js +170 -0
- package/dist/audit/cost.js.map +1 -0
- package/dist/audit/export.d.ts +30 -0
- package/dist/audit/export.d.ts.map +1 -0
- package/dist/audit/export.js +155 -0
- package/dist/audit/export.js.map +1 -0
- package/dist/audit/index.d.ts +11 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +9 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/integrity.d.ts +7 -0
- package/dist/audit/integrity.d.ts.map +1 -0
- package/dist/audit/integrity.js +78 -0
- package/dist/audit/integrity.js.map +1 -0
- package/dist/audit/logger.d.ts +18 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +113 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/patterns.d.ts +34 -0
- package/dist/audit/patterns.d.ts.map +1 -0
- package/dist/audit/patterns.js +104 -0
- package/dist/audit/patterns.js.map +1 -0
- package/dist/audit/security.d.ts +8 -0
- package/dist/audit/security.d.ts.map +1 -0
- package/dist/audit/security.js +56 -0
- package/dist/audit/security.js.map +1 -0
- package/dist/audit/summary.d.ts +22 -0
- package/dist/audit/summary.d.ts.map +1 -0
- package/dist/audit/summary.js +51 -0
- package/dist/audit/summary.js.map +1 -0
- package/dist/audit/types.d.ts +104 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +11 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/auto/aurora-router.d.ts +71 -0
- package/dist/auto/aurora-router.d.ts.map +1 -0
- package/dist/auto/aurora-router.js +138 -0
- package/dist/auto/aurora-router.js.map +1 -0
- package/dist/auto/auto-coordinator.d.ts +232 -0
- package/dist/auto/auto-coordinator.d.ts.map +1 -0
- package/dist/auto/auto-coordinator.js +1260 -0
- package/dist/auto/auto-coordinator.js.map +1 -0
- package/dist/auto/brief-generator.d.ts +10 -0
- package/dist/auto/brief-generator.d.ts.map +1 -0
- package/dist/auto/brief-generator.js +67 -0
- package/dist/auto/brief-generator.js.map +1 -0
- package/dist/auto/changes-summary.d.ts +19 -0
- package/dist/auto/changes-summary.d.ts.map +1 -0
- package/dist/auto/changes-summary.js +45 -0
- package/dist/auto/changes-summary.js.map +1 -0
- package/dist/auto/context-tracker.d.ts +27 -0
- package/dist/auto/context-tracker.d.ts.map +1 -0
- package/dist/auto/context-tracker.js +56 -0
- package/dist/auto/context-tracker.js.map +1 -0
- package/dist/auto/coordinator-model.d.ts +31 -0
- package/dist/auto/coordinator-model.d.ts.map +1 -0
- package/dist/auto/coordinator-model.js +68 -0
- package/dist/auto/coordinator-model.js.map +1 -0
- package/dist/auto/index.d.ts +12 -0
- package/dist/auto/index.d.ts.map +1 -0
- package/dist/auto/index.js +11 -0
- package/dist/auto/index.js.map +1 -0
- package/dist/auto/intent-gate.d.ts +85 -0
- package/dist/auto/intent-gate.d.ts.map +1 -0
- package/dist/auto/intent-gate.js +247 -0
- package/dist/auto/intent-gate.js.map +1 -0
- package/dist/auto/longxiang-router.d.ts +123 -0
- package/dist/auto/longxiang-router.d.ts.map +1 -0
- package/dist/auto/longxiang-router.js +184 -0
- package/dist/auto/longxiang-router.js.map +1 -0
- package/dist/auto/model-router.d.ts +42 -0
- package/dist/auto/model-router.d.ts.map +1 -0
- package/dist/auto/model-router.js +208 -0
- package/dist/auto/model-router.js.map +1 -0
- package/dist/auto/routing-modes.d.ts +33 -0
- package/dist/auto/routing-modes.d.ts.map +1 -0
- package/dist/auto/routing-modes.js +34 -0
- package/dist/auto/routing-modes.js.map +1 -0
- package/dist/auto/supernova-router.d.ts +50 -0
- package/dist/auto/supernova-router.d.ts.map +1 -0
- package/dist/auto/supernova-router.js +116 -0
- package/dist/auto/supernova-router.js.map +1 -0
- package/dist/auto/task-classifier.d.ts +10 -0
- package/dist/auto/task-classifier.d.ts.map +1 -0
- package/dist/auto/task-classifier.js +116 -0
- package/dist/auto/task-classifier.js.map +1 -0
- package/dist/auto/task-executor.d.ts +86 -0
- package/dist/auto/task-executor.d.ts.map +1 -0
- package/dist/auto/task-executor.js +271 -0
- package/dist/auto/task-executor.js.map +1 -0
- package/dist/auto/types.d.ts +57 -0
- package/dist/auto/types.d.ts.map +1 -0
- package/dist/auto/types.js +2 -0
- package/dist/auto/types.js.map +1 -0
- package/dist/awareness/tick-engine.d.ts +73 -0
- package/dist/awareness/tick-engine.d.ts.map +1 -0
- package/dist/awareness/tick-engine.js +156 -0
- package/dist/awareness/tick-engine.js.map +1 -0
- package/dist/billing/credits.d.ts +213 -0
- package/dist/billing/credits.d.ts.map +1 -0
- package/dist/billing/credits.js +535 -0
- package/dist/billing/credits.js.map +1 -0
- package/dist/billing/meter.d.ts +43 -0
- package/dist/billing/meter.d.ts.map +1 -0
- package/dist/billing/meter.js +67 -0
- package/dist/billing/meter.js.map +1 -0
- package/dist/billing/plans.d.ts +34 -0
- package/dist/billing/plans.d.ts.map +1 -0
- package/dist/billing/plans.js +108 -0
- package/dist/billing/plans.js.map +1 -0
- package/dist/briefing/briefing-engine.d.ts +51 -0
- package/dist/briefing/briefing-engine.d.ts.map +1 -0
- package/dist/briefing/briefing-engine.js +289 -0
- package/dist/briefing/briefing-engine.js.map +1 -0
- package/dist/briefing/index.d.ts +3 -0
- package/dist/briefing/index.d.ts.map +1 -0
- package/dist/briefing/index.js +2 -0
- package/dist/briefing/index.js.map +1 -0
- package/dist/briefing/types.d.ts +49 -0
- package/dist/briefing/types.d.ts.map +1 -0
- package/dist/briefing/types.js +8 -0
- package/dist/briefing/types.js.map +1 -0
- package/dist/checkpoint/checkpoint-manager.d.ts +33 -0
- package/dist/checkpoint/checkpoint-manager.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint-manager.js +144 -0
- package/dist/checkpoint/checkpoint-manager.js.map +1 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +169 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/personality.d.ts +32 -0
- package/dist/config/personality.d.ts.map +1 -0
- package/dist/config/personality.js +96 -0
- package/dist/config/personality.js.map +1 -0
- package/dist/config/project-config.d.ts +17 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +38 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/config/project.d.ts +155 -0
- package/dist/config/project.d.ts.map +1 -0
- package/dist/config/project.js +746 -0
- package/dist/config/project.js.map +1 -0
- package/dist/config/schema.d.ts +61 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +11 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/constants.d.ts +13 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +15 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/dates.d.ts +35 -0
- package/dist/core/dates.d.ts.map +1 -0
- package/dist/core/dates.js +45 -0
- package/dist/core/dates.js.map +1 -0
- package/dist/core/errors.d.ts +27 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +172 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/file-lock.d.ts +22 -0
- package/dist/core/file-lock.d.ts.map +1 -0
- package/dist/core/file-lock.js +120 -0
- package/dist/core/file-lock.js.map +1 -0
- package/dist/core/logger.d.ts +9 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +32 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/types.d.ts +157 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +13 -0
- package/dist/core/types.js.map +1 -0
- package/dist/creative/index.d.ts +50 -0
- package/dist/creative/index.d.ts.map +1 -0
- package/dist/creative/index.js +178 -0
- package/dist/creative/index.js.map +1 -0
- package/dist/dataset/capture.d.ts +15 -0
- package/dist/dataset/capture.d.ts.map +1 -0
- package/dist/dataset/capture.js +203 -0
- package/dist/dataset/capture.js.map +1 -0
- package/dist/dataset/config.d.ts +33 -0
- package/dist/dataset/config.d.ts.map +1 -0
- package/dist/dataset/config.js +60 -0
- package/dist/dataset/config.js.map +1 -0
- package/dist/dataset/consumer.d.ts +33 -0
- package/dist/dataset/consumer.d.ts.map +1 -0
- package/dist/dataset/consumer.js +97 -0
- package/dist/dataset/consumer.js.map +1 -0
- package/dist/dataset/emitter.d.ts +153 -0
- package/dist/dataset/emitter.d.ts.map +1 -0
- package/dist/dataset/emitter.js +157 -0
- package/dist/dataset/emitter.js.map +1 -0
- package/dist/dataset/events.d.ts +360 -0
- package/dist/dataset/events.d.ts.map +1 -0
- package/dist/dataset/events.js +30 -0
- package/dist/dataset/events.js.map +1 -0
- package/dist/dataset/generation-emit.d.ts +72 -0
- package/dist/dataset/generation-emit.d.ts.map +1 -0
- package/dist/dataset/generation-emit.js +94 -0
- package/dist/dataset/generation-emit.js.map +1 -0
- package/dist/dataset/redactor.d.ts +22 -0
- package/dist/dataset/redactor.d.ts.map +1 -0
- package/dist/dataset/redactor.js +68 -0
- package/dist/dataset/redactor.js.map +1 -0
- package/dist/dataset/routing.d.ts +17 -0
- package/dist/dataset/routing.d.ts.map +1 -0
- package/dist/dataset/routing.js +77 -0
- package/dist/dataset/routing.js.map +1 -0
- package/dist/dataset/summarizers.d.ts +47 -0
- package/dist/dataset/summarizers.d.ts.map +1 -0
- package/dist/dataset/summarizers.js +98 -0
- package/dist/dataset/summarizers.js.map +1 -0
- package/dist/dataset/verification.d.ts +29 -0
- package/dist/dataset/verification.d.ts.map +1 -0
- package/dist/dataset/verification.js +70 -0
- package/dist/dataset/verification.js.map +1 -0
- package/dist/desktop/budget.d.ts +66 -0
- package/dist/desktop/budget.d.ts.map +1 -0
- package/dist/desktop/budget.js +159 -0
- package/dist/desktop/budget.js.map +1 -0
- package/dist/desktop/capability.d.ts +28 -0
- package/dist/desktop/capability.d.ts.map +1 -0
- package/dist/desktop/capability.js +39 -0
- package/dist/desktop/capability.js.map +1 -0
- package/dist/desktop/conductor.d.ts +104 -0
- package/dist/desktop/conductor.d.ts.map +1 -0
- package/dist/desktop/conductor.js +876 -0
- package/dist/desktop/conductor.js.map +1 -0
- package/dist/desktop/fork-points.d.ts +56 -0
- package/dist/desktop/fork-points.d.ts.map +1 -0
- package/dist/desktop/fork-points.js +138 -0
- package/dist/desktop/fork-points.js.map +1 -0
- package/dist/desktop/index.d.ts +22 -0
- package/dist/desktop/index.d.ts.map +1 -0
- package/dist/desktop/index.js +21 -0
- package/dist/desktop/index.js.map +1 -0
- package/dist/desktop/perception.d.ts +24 -0
- package/dist/desktop/perception.d.ts.map +1 -0
- package/dist/desktop/perception.js +106 -0
- package/dist/desktop/perception.js.map +1 -0
- package/dist/desktop/personas.d.ts +30 -0
- package/dist/desktop/personas.d.ts.map +1 -0
- package/dist/desktop/personas.js +206 -0
- package/dist/desktop/personas.js.map +1 -0
- package/dist/desktop/safety.d.ts +86 -0
- package/dist/desktop/safety.d.ts.map +1 -0
- package/dist/desktop/safety.js +272 -0
- package/dist/desktop/safety.js.map +1 -0
- package/dist/desktop/screen-key.d.ts +54 -0
- package/dist/desktop/screen-key.d.ts.map +1 -0
- package/dist/desktop/screen-key.js +187 -0
- package/dist/desktop/screen-key.js.map +1 -0
- package/dist/desktop/types.d.ts +141 -0
- package/dist/desktop/types.d.ts.map +1 -0
- package/dist/desktop/types.js +8 -0
- package/dist/desktop/types.js.map +1 -0
- package/dist/docs/adapter.d.ts +71 -0
- package/dist/docs/adapter.d.ts.map +1 -0
- package/dist/docs/adapter.js +75 -0
- package/dist/docs/adapter.js.map +1 -0
- package/dist/docs/content/concepts.d.ts +3 -0
- package/dist/docs/content/concepts.d.ts.map +1 -0
- package/dist/docs/content/concepts.js +304 -0
- package/dist/docs/content/concepts.js.map +1 -0
- package/dist/docs/content/features.d.ts +3 -0
- package/dist/docs/content/features.d.ts.map +1 -0
- package/dist/docs/content/features.js +275 -0
- package/dist/docs/content/features.js.map +1 -0
- package/dist/docs/content/index.d.ts +3 -0
- package/dist/docs/content/index.d.ts.map +1 -0
- package/dist/docs/content/index.js +15 -0
- package/dist/docs/content/index.js.map +1 -0
- package/dist/docs/content/reference.d.ts +3 -0
- package/dist/docs/content/reference.d.ts.map +1 -0
- package/dist/docs/content/reference.js +220 -0
- package/dist/docs/content/reference.js.map +1 -0
- package/dist/docs/content/start.d.ts +3 -0
- package/dist/docs/content/start.d.ts.map +1 -0
- package/dist/docs/content/start.js +203 -0
- package/dist/docs/content/start.js.map +1 -0
- package/dist/docs/content/troubleshooting.d.ts +3 -0
- package/dist/docs/content/troubleshooting.d.ts.map +1 -0
- package/dist/docs/content/troubleshooting.js +98 -0
- package/dist/docs/content/troubleshooting.js.map +1 -0
- package/dist/docs/corpus.d.ts +7 -0
- package/dist/docs/corpus.d.ts.map +1 -0
- package/dist/docs/corpus.js +18 -0
- package/dist/docs/corpus.js.map +1 -0
- package/dist/docs/data/capabilities.d.ts +24 -0
- package/dist/docs/data/capabilities.d.ts.map +1 -0
- package/dist/docs/data/capabilities.js +63 -0
- package/dist/docs/data/capabilities.js.map +1 -0
- package/dist/docs/data/modes.d.ts +11 -0
- package/dist/docs/data/modes.d.ts.map +1 -0
- package/dist/docs/data/modes.js +60 -0
- package/dist/docs/data/modes.js.map +1 -0
- package/dist/docs/data/permissions.d.ts +12 -0
- package/dist/docs/data/permissions.d.ts.map +1 -0
- package/dist/docs/data/permissions.js +62 -0
- package/dist/docs/data/permissions.js.map +1 -0
- package/dist/docs/data/personas.d.ts +13 -0
- package/dist/docs/data/personas.d.ts.map +1 -0
- package/dist/docs/data/personas.js +42 -0
- package/dist/docs/data/personas.js.map +1 -0
- package/dist/docs/data/providers.d.ts +21 -0
- package/dist/docs/data/providers.d.ts.map +1 -0
- package/dist/docs/data/providers.js +210 -0
- package/dist/docs/data/providers.js.map +1 -0
- package/dist/docs/data/shortcuts.d.ts +9 -0
- package/dist/docs/data/shortcuts.d.ts.map +1 -0
- package/dist/docs/data/shortcuts.js +18 -0
- package/dist/docs/data/shortcuts.js.map +1 -0
- package/dist/docs/data/tasks.d.ts +17 -0
- package/dist/docs/data/tasks.d.ts.map +1 -0
- package/dist/docs/data/tasks.js +64 -0
- package/dist/docs/data/tasks.js.map +1 -0
- package/dist/docs/data/tools.d.ts +12 -0
- package/dist/docs/data/tools.d.ts.map +1 -0
- package/dist/docs/data/tools.js +100 -0
- package/dist/docs/data/tools.js.map +1 -0
- package/dist/docs/filter.d.ts +35 -0
- package/dist/docs/filter.d.ts.map +1 -0
- package/dist/docs/filter.js +68 -0
- package/dist/docs/filter.js.map +1 -0
- package/dist/docs/i18n/translations.d.ts +2 -0
- package/dist/docs/i18n/translations.d.ts.map +1 -0
- package/dist/docs/i18n/translations.js +4 -0
- package/dist/docs/i18n/translations.js.map +1 -0
- package/dist/docs/i18n.d.ts +15 -0
- package/dist/docs/i18n.d.ts.map +1 -0
- package/dist/docs/i18n.js +88 -0
- package/dist/docs/i18n.js.map +1 -0
- package/dist/docs/index.d.ts +16 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +15 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/product-knowledge.d.ts +45 -0
- package/dist/docs/product-knowledge.d.ts.map +1 -0
- package/dist/docs/product-knowledge.js +147 -0
- package/dist/docs/product-knowledge.js.map +1 -0
- package/dist/docs/types.d.ts +138 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +14 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/events/event-detector.d.ts +39 -0
- package/dist/events/event-detector.d.ts.map +1 -0
- package/dist/events/event-detector.js +223 -0
- package/dist/events/event-detector.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +35 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +8 -0
- package/dist/events/types.js.map +1 -0
- package/dist/exercises/index.d.ts +249 -0
- package/dist/exercises/index.d.ts.map +1 -0
- package/dist/exercises/index.js +181 -0
- package/dist/exercises/index.js.map +1 -0
- package/dist/health/aisles.d.ts +33 -0
- package/dist/health/aisles.d.ts.map +1 -0
- package/dist/health/aisles.js +417 -0
- package/dist/health/aisles.js.map +1 -0
- package/dist/health/cooking.d.ts +13 -0
- package/dist/health/cooking.d.ts.map +1 -0
- package/dist/health/cooking.js +19 -0
- package/dist/health/cooking.js.map +1 -0
- package/dist/health/duplicate.d.ts +47 -0
- package/dist/health/duplicate.d.ts.map +1 -0
- package/dist/health/duplicate.js +136 -0
- package/dist/health/duplicate.js.map +1 -0
- package/dist/health/index.d.ts +7 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +10 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/node-store.d.ts +30 -0
- package/dist/health/node-store.d.ts.map +1 -0
- package/dist/health/node-store.js +250 -0
- package/dist/health/node-store.js.map +1 -0
- package/dist/health/prep.d.ts +86 -0
- package/dist/health/prep.d.ts.map +1 -0
- package/dist/health/prep.js +152 -0
- package/dist/health/prep.js.map +1 -0
- package/dist/health/profile-fields.d.ts +46 -0
- package/dist/health/profile-fields.d.ts.map +1 -0
- package/dist/health/profile-fields.js +194 -0
- package/dist/health/profile-fields.js.map +1 -0
- package/dist/health/session-store.d.ts +30 -0
- package/dist/health/session-store.d.ts.map +1 -0
- package/dist/health/session-store.js +20 -0
- package/dist/health/session-store.js.map +1 -0
- package/dist/health/session-summary.d.ts +10 -0
- package/dist/health/session-summary.d.ts.map +1 -0
- package/dist/health/session-summary.js +106 -0
- package/dist/health/session-summary.js.map +1 -0
- package/dist/health/session-types.d.ts +74 -0
- package/dist/health/session-types.d.ts.map +1 -0
- package/dist/health/session-types.js +53 -0
- package/dist/health/session-types.js.map +1 -0
- package/dist/health/shopping-list.d.ts +226 -0
- package/dist/health/shopping-list.d.ts.map +1 -0
- package/dist/health/shopping-list.js +432 -0
- package/dist/health/shopping-list.js.map +1 -0
- package/dist/health/starters.d.ts +155 -0
- package/dist/health/starters.d.ts.map +1 -0
- package/dist/health/starters.js +270 -0
- package/dist/health/starters.js.map +1 -0
- package/dist/health/store.d.ts +59 -0
- package/dist/health/store.d.ts.map +1 -0
- package/dist/health/store.js +17 -0
- package/dist/health/store.js.map +1 -0
- package/dist/health/types.d.ts +213 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/health/types.js +11 -0
- package/dist/health/types.js.map +1 -0
- package/dist/history/conversation-title.d.ts +67 -0
- package/dist/history/conversation-title.d.ts.map +1 -0
- package/dist/history/conversation-title.js +184 -0
- package/dist/history/conversation-title.js.map +1 -0
- package/dist/history/history-manager.d.ts +50 -0
- package/dist/history/history-manager.d.ts.map +1 -0
- package/dist/history/history-manager.js +168 -0
- package/dist/history/history-manager.js.map +1 -0
- package/dist/history/storage.d.ts +41 -0
- package/dist/history/storage.d.ts.map +1 -0
- package/dist/history/storage.js +133 -0
- package/dist/history/storage.js.map +1 -0
- package/dist/i18n/index.d.ts +41 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +188 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/keep-english.d.ts +12 -0
- package/dist/i18n/keep-english.d.ts.map +1 -0
- package/dist/i18n/keep-english.js +351 -0
- package/dist/i18n/keep-english.js.map +1 -0
- package/dist/i18n/locales/ar.d.ts +4 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -0
- package/dist/i18n/locales/ar.js +4143 -0
- package/dist/i18n/locales/ar.js.map +1 -0
- package/dist/i18n/locales/de.d.ts +4 -0
- package/dist/i18n/locales/de.d.ts.map +1 -0
- package/dist/i18n/locales/de.js +4133 -0
- package/dist/i18n/locales/de.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +4068 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +4347 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/es.d.ts +4 -0
- package/dist/i18n/locales/es.d.ts.map +1 -0
- package/dist/i18n/locales/es.js +4128 -0
- package/dist/i18n/locales/es.js.map +1 -0
- package/dist/i18n/locales/fr.d.ts +4 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -0
- package/dist/i18n/locales/fr.js +4140 -0
- package/dist/i18n/locales/fr.js.map +1 -0
- package/dist/i18n/locales/hi.d.ts +4 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -0
- package/dist/i18n/locales/hi.js +4143 -0
- package/dist/i18n/locales/hi.js.map +1 -0
- package/dist/i18n/locales/id.d.ts +4 -0
- package/dist/i18n/locales/id.d.ts.map +1 -0
- package/dist/i18n/locales/id.js +4142 -0
- package/dist/i18n/locales/id.js.map +1 -0
- package/dist/i18n/locales/it.d.ts +4 -0
- package/dist/i18n/locales/it.d.ts.map +1 -0
- package/dist/i18n/locales/it.js +4143 -0
- package/dist/i18n/locales/it.js.map +1 -0
- package/dist/i18n/locales/ja.d.ts +4 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -0
- package/dist/i18n/locales/ja.js +4144 -0
- package/dist/i18n/locales/ja.js.map +1 -0
- package/dist/i18n/locales/ko.d.ts +4 -0
- package/dist/i18n/locales/ko.d.ts.map +1 -0
- package/dist/i18n/locales/ko.js +4143 -0
- package/dist/i18n/locales/ko.js.map +1 -0
- package/dist/i18n/locales/nl.d.ts +4 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -0
- package/dist/i18n/locales/nl.js +4143 -0
- package/dist/i18n/locales/nl.js.map +1 -0
- package/dist/i18n/locales/pl.d.ts +4 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -0
- package/dist/i18n/locales/pl.js +4133 -0
- package/dist/i18n/locales/pl.js.map +1 -0
- package/dist/i18n/locales/pt.d.ts +4 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -0
- package/dist/i18n/locales/pt.js +4141 -0
- package/dist/i18n/locales/pt.js.map +1 -0
- package/dist/i18n/locales/ru.d.ts +4 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -0
- package/dist/i18n/locales/ru.js +4143 -0
- package/dist/i18n/locales/ru.js.map +1 -0
- package/dist/i18n/locales/th.d.ts +4 -0
- package/dist/i18n/locales/th.d.ts.map +1 -0
- package/dist/i18n/locales/th.js +4143 -0
- package/dist/i18n/locales/th.js.map +1 -0
- package/dist/i18n/locales/tr.d.ts +4 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -0
- package/dist/i18n/locales/tr.js +4143 -0
- package/dist/i18n/locales/tr.js.map +1 -0
- package/dist/i18n/locales/uk.d.ts +4 -0
- package/dist/i18n/locales/uk.d.ts.map +1 -0
- package/dist/i18n/locales/uk.js +4133 -0
- package/dist/i18n/locales/uk.js.map +1 -0
- package/dist/i18n/locales/vi.d.ts +4 -0
- package/dist/i18n/locales/vi.d.ts.map +1 -0
- package/dist/i18n/locales/vi.js +4143 -0
- package/dist/i18n/locales/vi.js.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +4 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +4133 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -0
- package/dist/i18n/locales/zh-TW.d.ts +4 -0
- package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
- package/dist/i18n/locales/zh-TW.js +4143 -0
- package/dist/i18n/locales/zh-TW.js.map +1 -0
- package/dist/i18n/types.d.ts +5 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +46 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +142 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +159 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/project-indexer.d.ts +66 -0
- package/dist/indexer/project-indexer.d.ts.map +1 -0
- package/dist/indexer/project-indexer.js +574 -0
- package/dist/indexer/project-indexer.js.map +1 -0
- package/dist/indexer/symbol-indexer.d.ts +56 -0
- package/dist/indexer/symbol-indexer.d.ts.map +1 -0
- package/dist/indexer/symbol-indexer.js +579 -0
- package/dist/indexer/symbol-indexer.js.map +1 -0
- package/dist/journal/journal-manager.d.ts +143 -0
- package/dist/journal/journal-manager.d.ts.map +1 -0
- package/dist/journal/journal-manager.js +472 -0
- package/dist/journal/journal-manager.js.map +1 -0
- package/dist/journal/platform-sync.d.ts +17 -0
- package/dist/journal/platform-sync.d.ts.map +1 -0
- package/dist/journal/platform-sync.js +21 -0
- package/dist/journal/platform-sync.js.map +1 -0
- package/dist/journal/types.d.ts +78 -0
- package/dist/journal/types.d.ts.map +1 -0
- package/dist/journal/types.js +74 -0
- package/dist/journal/types.js.map +1 -0
- package/dist/knowledge/index.d.ts +2 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +2 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/learning/index.d.ts +6 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +9 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/learner-context.d.ts +11 -0
- package/dist/learning/learner-context.d.ts.map +1 -0
- package/dist/learning/learner-context.js +57 -0
- package/dist/learning/learner-context.js.map +1 -0
- package/dist/learning/library-fork.d.ts +33 -0
- package/dist/learning/library-fork.d.ts.map +1 -0
- package/dist/learning/library-fork.js +92 -0
- package/dist/learning/library-fork.js.map +1 -0
- package/dist/learning/progression-export.d.ts +4 -0
- package/dist/learning/progression-export.d.ts.map +1 -0
- package/dist/learning/progression-export.js +21 -0
- package/dist/learning/progression-export.js.map +1 -0
- package/dist/learning/progression-markdown.d.ts +14 -0
- package/dist/learning/progression-markdown.d.ts.map +1 -0
- package/dist/learning/progression-markdown.js +73 -0
- package/dist/learning/progression-markdown.js.map +1 -0
- package/dist/learning/progression.d.ts +65 -0
- package/dist/learning/progression.d.ts.map +1 -0
- package/dist/learning/progression.js +186 -0
- package/dist/learning/progression.js.map +1 -0
- package/dist/memory/ambient-capture.d.ts +26 -0
- package/dist/memory/ambient-capture.d.ts.map +1 -0
- package/dist/memory/ambient-capture.js +174 -0
- package/dist/memory/ambient-capture.js.map +1 -0
- package/dist/memory/auto-extract.d.ts +54 -0
- package/dist/memory/auto-extract.d.ts.map +1 -0
- package/dist/memory/auto-extract.js +499 -0
- package/dist/memory/auto-extract.js.map +1 -0
- package/dist/memory/config.d.ts +47 -0
- package/dist/memory/config.d.ts.map +1 -0
- package/dist/memory/config.js +52 -0
- package/dist/memory/config.js.map +1 -0
- package/dist/memory/consolidation.d.ts +60 -0
- package/dist/memory/consolidation.d.ts.map +1 -0
- package/dist/memory/consolidation.js +311 -0
- package/dist/memory/consolidation.js.map +1 -0
- package/dist/memory/embedding-service.d.ts +50 -0
- package/dist/memory/embedding-service.d.ts.map +1 -0
- package/dist/memory/embedding-service.js +86 -0
- package/dist/memory/embedding-service.js.map +1 -0
- package/dist/memory/embedding-store.d.ts +31 -0
- package/dist/memory/embedding-store.d.ts.map +1 -0
- package/dist/memory/embedding-store.js +109 -0
- package/dist/memory/embedding-store.js.map +1 -0
- package/dist/memory/graph-engine.d.ts +145 -0
- package/dist/memory/graph-engine.d.ts.map +1 -0
- package/dist/memory/graph-engine.js +628 -0
- package/dist/memory/graph-engine.js.map +1 -0
- package/dist/memory/insights.d.ts +39 -0
- package/dist/memory/insights.d.ts.map +1 -0
- package/dist/memory/insights.js +138 -0
- package/dist/memory/insights.js.map +1 -0
- package/dist/memory/memory-agent.d.ts +93 -0
- package/dist/memory/memory-agent.d.ts.map +1 -0
- package/dist/memory/memory-agent.js +475 -0
- package/dist/memory/memory-agent.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +232 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +1633 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/memory/migration-v3.d.ts +22 -0
- package/dist/memory/migration-v3.d.ts.map +1 -0
- package/dist/memory/migration-v3.js +193 -0
- package/dist/memory/migration-v3.js.map +1 -0
- package/dist/memory/mode-recall.d.ts +20 -0
- package/dist/memory/mode-recall.d.ts.map +1 -0
- package/dist/memory/mode-recall.js +104 -0
- package/dist/memory/mode-recall.js.map +1 -0
- package/dist/memory/patterns.d.ts +92 -0
- package/dist/memory/patterns.d.ts.map +1 -0
- package/dist/memory/patterns.js +389 -0
- package/dist/memory/patterns.js.map +1 -0
- package/dist/memory/platform-sync.d.ts +54 -0
- package/dist/memory/platform-sync.d.ts.map +1 -0
- package/dist/memory/platform-sync.js +176 -0
- package/dist/memory/platform-sync.js.map +1 -0
- package/dist/memory/procedural.d.ts +47 -0
- package/dist/memory/procedural.d.ts.map +1 -0
- package/dist/memory/procedural.js +182 -0
- package/dist/memory/procedural.js.map +1 -0
- package/dist/memory/project-brain.d.ts +27 -0
- package/dist/memory/project-brain.d.ts.map +1 -0
- package/dist/memory/project-brain.js +158 -0
- package/dist/memory/project-brain.js.map +1 -0
- package/dist/memory/self-improvement.d.ts +45 -0
- package/dist/memory/self-improvement.d.ts.map +1 -0
- package/dist/memory/self-improvement.js +178 -0
- package/dist/memory/self-improvement.js.map +1 -0
- package/dist/memory/tfidf.d.ts +71 -0
- package/dist/memory/tfidf.d.ts.map +1 -0
- package/dist/memory/tfidf.js +223 -0
- package/dist/memory/tfidf.js.map +1 -0
- package/dist/memory/training-export.d.ts +51 -0
- package/dist/memory/training-export.d.ts.map +1 -0
- package/dist/memory/training-export.js +122 -0
- package/dist/memory/training-export.js.map +1 -0
- package/dist/memory/types.d.ts +380 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +99 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/news/index.d.ts +163 -0
- package/dist/news/index.d.ts.map +1 -0
- package/dist/news/index.js +184 -0
- package/dist/news/index.js.map +1 -0
- package/dist/papers/arxiv-client.d.ts +21 -0
- package/dist/papers/arxiv-client.d.ts.map +1 -0
- package/dist/papers/arxiv-client.js +130 -0
- package/dist/papers/arxiv-client.js.map +1 -0
- package/dist/papers/crossref-client.d.ts +3 -0
- package/dist/papers/crossref-client.d.ts.map +1 -0
- package/dist/papers/crossref-client.js +96 -0
- package/dist/papers/crossref-client.js.map +1 -0
- package/dist/papers/discipline.d.ts +19 -0
- package/dist/papers/discipline.d.ts.map +1 -0
- package/dist/papers/discipline.js +96 -0
- package/dist/papers/discipline.js.map +1 -0
- package/dist/papers/index.d.ts +10 -0
- package/dist/papers/index.d.ts.map +1 -0
- package/dist/papers/index.js +7 -0
- package/dist/papers/index.js.map +1 -0
- package/dist/papers/openalex-client.d.ts +13 -0
- package/dist/papers/openalex-client.d.ts.map +1 -0
- package/dist/papers/openalex-client.js +206 -0
- package/dist/papers/openalex-client.js.map +1 -0
- package/dist/papers/paper-fetcher.d.ts +37 -0
- package/dist/papers/paper-fetcher.d.ts.map +1 -0
- package/dist/papers/paper-fetcher.js +75 -0
- package/dist/papers/paper-fetcher.js.map +1 -0
- package/dist/papers/types.d.ts +80 -0
- package/dist/papers/types.d.ts.map +1 -0
- package/dist/papers/types.js +25 -0
- package/dist/papers/types.js.map +1 -0
- package/dist/personas/conductor.d.ts +184 -0
- package/dist/personas/conductor.d.ts.map +1 -0
- package/dist/personas/conductor.js +871 -0
- package/dist/personas/conductor.js.map +1 -0
- package/dist/personas/definitions.d.ts +48 -0
- package/dist/personas/definitions.d.ts.map +1 -0
- package/dist/personas/definitions.js +828 -0
- package/dist/personas/definitions.js.map +1 -0
- package/dist/personas/index.d.ts +4 -0
- package/dist/personas/index.d.ts.map +1 -0
- package/dist/personas/index.js +3 -0
- package/dist/personas/index.js.map +1 -0
- package/dist/personas/types.d.ts +148 -0
- package/dist/personas/types.d.ts.map +1 -0
- package/dist/personas/types.js +5 -0
- package/dist/personas/types.js.map +1 -0
- package/dist/personas/verification-matrix.d.ts +44 -0
- package/dist/personas/verification-matrix.d.ts.map +1 -0
- package/dist/personas/verification-matrix.js +232 -0
- package/dist/personas/verification-matrix.js.map +1 -0
- package/dist/portability/bundle.d.ts +80 -0
- package/dist/portability/bundle.d.ts.map +1 -0
- package/dist/portability/bundle.js +155 -0
- package/dist/portability/bundle.js.map +1 -0
- package/dist/portability/crypto.d.ts +42 -0
- package/dist/portability/crypto.d.ts.map +1 -0
- package/dist/portability/crypto.js +89 -0
- package/dist/portability/crypto.js.map +1 -0
- package/dist/portability/data-types.d.ts +54 -0
- package/dist/portability/data-types.d.ts.map +1 -0
- package/dist/portability/data-types.js +281 -0
- package/dist/portability/data-types.js.map +1 -0
- package/dist/portability/index.d.ts +35 -0
- package/dist/portability/index.d.ts.map +1 -0
- package/dist/portability/index.js +41 -0
- package/dist/portability/index.js.map +1 -0
- package/dist/providers/base-provider.d.ts +65 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +305 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/catalog.d.ts +25 -0
- package/dist/providers/catalog.d.ts.map +1 -0
- package/dist/providers/catalog.js +53 -0
- package/dist/providers/catalog.js.map +1 -0
- package/dist/providers/deepseek/index.d.ts +9 -0
- package/dist/providers/deepseek/index.d.ts.map +1 -0
- package/dist/providers/deepseek/index.js +19 -0
- package/dist/providers/deepseek/index.js.map +1 -0
- package/dist/providers/deepseek/models.d.ts +3 -0
- package/dist/providers/deepseek/models.d.ts.map +1 -0
- package/dist/providers/deepseek/models.js +56 -0
- package/dist/providers/deepseek/models.js.map +1 -0
- package/dist/providers/generic/index.d.ts +25 -0
- package/dist/providers/generic/index.d.ts.map +1 -0
- package/dist/providers/generic/index.js +51 -0
- package/dist/providers/generic/index.js.map +1 -0
- package/dist/providers/generic/models.d.ts +3 -0
- package/dist/providers/generic/models.d.ts.map +1 -0
- package/dist/providers/generic/models.js +13 -0
- package/dist/providers/generic/models.js.map +1 -0
- package/dist/providers/health-tracker.d.ts +44 -0
- package/dist/providers/health-tracker.d.ts.map +1 -0
- package/dist/providers/health-tracker.js +110 -0
- package/dist/providers/health-tracker.js.map +1 -0
- package/dist/providers/kimi/index.d.ts +9 -0
- package/dist/providers/kimi/index.d.ts.map +1 -0
- package/dist/providers/kimi/index.js +13 -0
- package/dist/providers/kimi/index.js.map +1 -0
- package/dist/providers/kimi/models.d.ts +3 -0
- package/dist/providers/kimi/models.d.ts.map +1 -0
- package/dist/providers/kimi/models.js +60 -0
- package/dist/providers/kimi/models.js.map +1 -0
- package/dist/providers/minimax/index.d.ts +9 -0
- package/dist/providers/minimax/index.d.ts.map +1 -0
- package/dist/providers/minimax/index.js +13 -0
- package/dist/providers/minimax/index.js.map +1 -0
- package/dist/providers/minimax/models.d.ts +3 -0
- package/dist/providers/minimax/models.d.ts.map +1 -0
- package/dist/providers/minimax/models.js +65 -0
- package/dist/providers/minimax/models.js.map +1 -0
- package/dist/providers/mistral/index.d.ts +11 -0
- package/dist/providers/mistral/index.d.ts.map +1 -0
- package/dist/providers/mistral/index.js +24 -0
- package/dist/providers/mistral/index.js.map +1 -0
- package/dist/providers/mistral/models.d.ts +3 -0
- package/dist/providers/mistral/models.d.ts.map +1 -0
- package/dist/providers/mistral/models.js +65 -0
- package/dist/providers/mistral/models.js.map +1 -0
- package/dist/providers/nvidia/index.d.ts +16 -0
- package/dist/providers/nvidia/index.d.ts.map +1 -0
- package/dist/providers/nvidia/index.js +20 -0
- package/dist/providers/nvidia/index.js.map +1 -0
- package/dist/providers/nvidia/models.d.ts +3 -0
- package/dist/providers/nvidia/models.d.ts.map +1 -0
- package/dist/providers/nvidia/models.js +56 -0
- package/dist/providers/nvidia/models.js.map +1 -0
- package/dist/providers/platform/index.d.ts +10 -0
- package/dist/providers/platform/index.d.ts.map +1 -0
- package/dist/providers/platform/index.js +16 -0
- package/dist/providers/platform/index.js.map +1 -0
- package/dist/providers/platform/models.d.ts +3 -0
- package/dist/providers/platform/models.d.ts.map +1 -0
- package/dist/providers/platform/models.js +233 -0
- package/dist/providers/platform/models.js.map +1 -0
- package/dist/providers/provider-registry.d.ts +44 -0
- package/dist/providers/provider-registry.d.ts.map +1 -0
- package/dist/providers/provider-registry.js +197 -0
- package/dist/providers/provider-registry.js.map +1 -0
- package/dist/providers/qwen/index.d.ts +9 -0
- package/dist/providers/qwen/index.d.ts.map +1 -0
- package/dist/providers/qwen/index.js +13 -0
- package/dist/providers/qwen/index.js.map +1 -0
- package/dist/providers/qwen/models.d.ts +3 -0
- package/dist/providers/qwen/models.d.ts.map +1 -0
- package/dist/providers/qwen/models.js +164 -0
- package/dist/providers/qwen/models.js.map +1 -0
- package/dist/providers/request-shaping/index.d.ts +29 -0
- package/dist/providers/request-shaping/index.d.ts.map +1 -0
- package/dist/providers/request-shaping/index.js +31 -0
- package/dist/providers/request-shaping/index.js.map +1 -0
- package/dist/providers/request-shaping/messages.d.ts +61 -0
- package/dist/providers/request-shaping/messages.d.ts.map +1 -0
- package/dist/providers/request-shaping/messages.js +114 -0
- package/dist/providers/request-shaping/messages.js.map +1 -0
- package/dist/providers/request-shaping/model-ids.d.ts +44 -0
- package/dist/providers/request-shaping/model-ids.d.ts.map +1 -0
- package/dist/providers/request-shaping/model-ids.js +96 -0
- package/dist/providers/request-shaping/model-ids.js.map +1 -0
- package/dist/providers/request-shaping/params.d.ts +38 -0
- package/dist/providers/request-shaping/params.d.ts.map +1 -0
- package/dist/providers/request-shaping/params.js +79 -0
- package/dist/providers/request-shaping/params.js.map +1 -0
- package/dist/providers/resilient-provider.d.ts +44 -0
- package/dist/providers/resilient-provider.d.ts.map +1 -0
- package/dist/providers/resilient-provider.js +141 -0
- package/dist/providers/resilient-provider.js.map +1 -0
- package/dist/providers/tencent/index.d.ts +19 -0
- package/dist/providers/tencent/index.d.ts.map +1 -0
- package/dist/providers/tencent/index.js +50 -0
- package/dist/providers/tencent/index.js.map +1 -0
- package/dist/providers/tencent/models.d.ts +3 -0
- package/dist/providers/tencent/models.d.ts.map +1 -0
- package/dist/providers/tencent/models.js +29 -0
- package/dist/providers/tencent/models.js.map +1 -0
- package/dist/providers/types.d.ts +98 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/xiaomi/index.d.ts +9 -0
- package/dist/providers/xiaomi/index.d.ts.map +1 -0
- package/dist/providers/xiaomi/index.js +16 -0
- package/dist/providers/xiaomi/index.js.map +1 -0
- package/dist/providers/xiaomi/models.d.ts +3 -0
- package/dist/providers/xiaomi/models.d.ts.map +1 -0
- package/dist/providers/xiaomi/models.js +37 -0
- package/dist/providers/xiaomi/models.js.map +1 -0
- package/dist/providers/zhipu/index.d.ts +11 -0
- package/dist/providers/zhipu/index.d.ts.map +1 -0
- package/dist/providers/zhipu/index.js +44 -0
- package/dist/providers/zhipu/index.js.map +1 -0
- package/dist/providers/zhipu/models.d.ts +3 -0
- package/dist/providers/zhipu/models.d.ts.map +1 -0
- package/dist/providers/zhipu/models.js +37 -0
- package/dist/providers/zhipu/models.js.map +1 -0
- package/dist/recipes/index.d.ts +215 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +232 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/remote/client.d.ts +67 -0
- package/dist/remote/client.d.ts.map +1 -0
- package/dist/remote/client.js +202 -0
- package/dist/remote/client.js.map +1 -0
- package/dist/remote/index.d.ts +9 -0
- package/dist/remote/index.d.ts.map +1 -0
- package/dist/remote/index.js +7 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/remote/schema.d.ts +152 -0
- package/dist/remote/schema.d.ts.map +1 -0
- package/dist/remote/schema.js +26 -0
- package/dist/remote/schema.js.map +1 -0
- package/dist/security/index.d.ts +6 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +5 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/scanner.d.ts +67 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +422 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/social/day-plan.d.ts +38 -0
- package/dist/social/day-plan.d.ts.map +1 -0
- package/dist/social/day-plan.js +16 -0
- package/dist/social/day-plan.js.map +1 -0
- package/dist/social/index.d.ts +290 -0
- package/dist/social/index.d.ts.map +1 -0
- package/dist/social/index.js +96 -0
- package/dist/social/index.js.map +1 -0
- package/dist/tasks/platform-sync.d.ts +22 -0
- package/dist/tasks/platform-sync.d.ts.map +1 -0
- package/dist/tasks/platform-sync.js +132 -0
- package/dist/tasks/platform-sync.js.map +1 -0
- package/dist/tasks/task-manager.d.ts +164 -0
- package/dist/tasks/task-manager.d.ts.map +1 -0
- package/dist/tasks/task-manager.js +643 -0
- package/dist/tasks/task-manager.js.map +1 -0
- package/dist/tasks/types.d.ts +105 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +23 -0
- package/dist/tasks/types.js.map +1 -0
- package/dist/tools/analyze-architecture.d.ts +17 -0
- package/dist/tools/analyze-architecture.d.ts.map +1 -0
- package/dist/tools/analyze-architecture.js +316 -0
- package/dist/tools/analyze-architecture.js.map +1 -0
- package/dist/tools/apply-plan.d.ts +12 -0
- package/dist/tools/apply-plan.d.ts.map +1 -0
- package/dist/tools/apply-plan.js +119 -0
- package/dist/tools/apply-plan.js.map +1 -0
- package/dist/tools/ask-user.d.ts +11 -0
- package/dist/tools/ask-user.d.ts.map +1 -0
- package/dist/tools/ask-user.js +32 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/audit-dependencies.d.ts +13 -0
- package/dist/tools/audit-dependencies.d.ts.map +1 -0
- package/dist/tools/audit-dependencies.js +156 -0
- package/dist/tools/audit-dependencies.js.map +1 -0
- package/dist/tools/authoring/doc-model.d.ts +128 -0
- package/dist/tools/authoring/doc-model.d.ts.map +1 -0
- package/dist/tools/authoring/doc-model.js +82 -0
- package/dist/tools/authoring/doc-model.js.map +1 -0
- package/dist/tools/authoring/frontmatter.d.ts +51 -0
- package/dist/tools/authoring/frontmatter.d.ts.map +1 -0
- package/dist/tools/authoring/frontmatter.js +203 -0
- package/dist/tools/authoring/frontmatter.js.map +1 -0
- package/dist/tools/authoring/image-size.d.ts +17 -0
- package/dist/tools/authoring/image-size.d.ts.map +1 -0
- package/dist/tools/authoring/image-size.js +47 -0
- package/dist/tools/authoring/image-size.js.map +1 -0
- package/dist/tools/authoring/index.d.ts +34 -0
- package/dist/tools/authoring/index.d.ts.map +1 -0
- package/dist/tools/authoring/index.js +44 -0
- package/dist/tools/authoring/index.js.map +1 -0
- package/dist/tools/authoring/md-parse.d.ts +18 -0
- package/dist/tools/authoring/md-parse.d.ts.map +1 -0
- package/dist/tools/authoring/md-parse.js +262 -0
- package/dist/tools/authoring/md-parse.js.map +1 -0
- package/dist/tools/authoring/render-docx.d.ts +18 -0
- package/dist/tools/authoring/render-docx.d.ts.map +1 -0
- package/dist/tools/authoring/render-docx.js +272 -0
- package/dist/tools/authoring/render-docx.js.map +1 -0
- package/dist/tools/authoring/render-md.d.ts +13 -0
- package/dist/tools/authoring/render-md.d.ts.map +1 -0
- package/dist/tools/authoring/render-md.js +139 -0
- package/dist/tools/authoring/render-md.js.map +1 -0
- package/dist/tools/authoring/render-pdf.d.ts +16 -0
- package/dist/tools/authoring/render-pdf.d.ts.map +1 -0
- package/dist/tools/authoring/render-pdf.js +298 -0
- package/dist/tools/authoring/render-pdf.js.map +1 -0
- package/dist/tools/authoring/sections.d.ts +35 -0
- package/dist/tools/authoring/sections.d.ts.map +1 -0
- package/dist/tools/authoring/sections.js +81 -0
- package/dist/tools/authoring/sections.js.map +1 -0
- package/dist/tools/authoring/templates/builtins.d.ts +11 -0
- package/dist/tools/authoring/templates/builtins.d.ts.map +1 -0
- package/dist/tools/authoring/templates/builtins.js +478 -0
- package/dist/tools/authoring/templates/builtins.js.map +1 -0
- package/dist/tools/authoring/templates/index.d.ts +15 -0
- package/dist/tools/authoring/templates/index.d.ts.map +1 -0
- package/dist/tools/authoring/templates/index.js +25 -0
- package/dist/tools/authoring/templates/index.js.map +1 -0
- package/dist/tools/authoring/templates/store.d.ts +15 -0
- package/dist/tools/authoring/templates/store.d.ts.map +1 -0
- package/dist/tools/authoring/templates/store.js +63 -0
- package/dist/tools/authoring/templates/store.js.map +1 -0
- package/dist/tools/authoring/templates/template-model.d.ts +44 -0
- package/dist/tools/authoring/templates/template-model.d.ts.map +1 -0
- package/dist/tools/authoring/templates/template-model.js +39 -0
- package/dist/tools/authoring/templates/template-model.js.map +1 -0
- package/dist/tools/bash.d.ts +34 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +353 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/benchmark.d.ts +12 -0
- package/dist/tools/benchmark.d.ts.map +1 -0
- package/dist/tools/benchmark.js +147 -0
- package/dist/tools/benchmark.js.map +1 -0
- package/dist/tools/browse-library.d.ts +12 -0
- package/dist/tools/browse-library.d.ts.map +1 -0
- package/dist/tools/browse-library.js +188 -0
- package/dist/tools/browse-library.js.map +1 -0
- package/dist/tools/browser-click.d.ts +12 -0
- package/dist/tools/browser-click.d.ts.map +1 -0
- package/dist/tools/browser-click.js +58 -0
- package/dist/tools/browser-click.js.map +1 -0
- package/dist/tools/browser-close.d.ts +11 -0
- package/dist/tools/browser-close.d.ts.map +1 -0
- package/dist/tools/browser-close.js +27 -0
- package/dist/tools/browser-close.js.map +1 -0
- package/dist/tools/browser-navigate.d.ts +12 -0
- package/dist/tools/browser-navigate.d.ts.map +1 -0
- package/dist/tools/browser-navigate.js +66 -0
- package/dist/tools/browser-navigate.js.map +1 -0
- package/dist/tools/browser-snapshot.d.ts +11 -0
- package/dist/tools/browser-snapshot.d.ts.map +1 -0
- package/dist/tools/browser-snapshot.js +56 -0
- package/dist/tools/browser-snapshot.js.map +1 -0
- package/dist/tools/browser-type.d.ts +12 -0
- package/dist/tools/browser-type.d.ts.map +1 -0
- package/dist/tools/browser-type.js +68 -0
- package/dist/tools/browser-type.js.map +1 -0
- package/dist/tools/browser.d.ts +29 -0
- package/dist/tools/browser.d.ts.map +1 -0
- package/dist/tools/browser.js +307 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/conversation-recall.d.ts +43 -0
- package/dist/tools/conversation-recall.d.ts.map +1 -0
- package/dist/tools/conversation-recall.js +177 -0
- package/dist/tools/conversation-recall.js.map +1 -0
- package/dist/tools/creative-asset-sync.d.ts +33 -0
- package/dist/tools/creative-asset-sync.d.ts.map +1 -0
- package/dist/tools/creative-asset-sync.js +39 -0
- package/dist/tools/creative-asset-sync.js.map +1 -0
- package/dist/tools/curator.d.ts +34 -0
- package/dist/tools/curator.d.ts.map +1 -0
- package/dist/tools/curator.js +191 -0
- package/dist/tools/curator.js.map +1 -0
- package/dist/tools/database-query.d.ts +11 -0
- package/dist/tools/database-query.d.ts.map +1 -0
- package/dist/tools/database-query.js +228 -0
- package/dist/tools/database-query.js.map +1 -0
- package/dist/tools/day-plan.d.ts +27 -0
- package/dist/tools/day-plan.d.ts.map +1 -0
- package/dist/tools/day-plan.js +207 -0
- package/dist/tools/day-plan.js.map +1 -0
- package/dist/tools/debug-logs.d.ts +13 -0
- package/dist/tools/debug-logs.d.ts.map +1 -0
- package/dist/tools/debug-logs.js +141 -0
- package/dist/tools/debug-logs.js.map +1 -0
- package/dist/tools/deploy-manifest.d.ts +37 -0
- package/dist/tools/deploy-manifest.d.ts.map +1 -0
- package/dist/tools/deploy-manifest.js +71 -0
- package/dist/tools/deploy-manifest.js.map +1 -0
- package/dist/tools/design-studio-tools.d.ts +83 -0
- package/dist/tools/design-studio-tools.d.ts.map +1 -0
- package/dist/tools/design-studio-tools.js +761 -0
- package/dist/tools/design-studio-tools.js.map +1 -0
- package/dist/tools/desktop-click-by-name.d.ts +12 -0
- package/dist/tools/desktop-click-by-name.d.ts.map +1 -0
- package/dist/tools/desktop-click-by-name.js +64 -0
- package/dist/tools/desktop-click-by-name.js.map +1 -0
- package/dist/tools/desktop-focus-window.d.ts +12 -0
- package/dist/tools/desktop-focus-window.d.ts.map +1 -0
- package/dist/tools/desktop-focus-window.js +59 -0
- package/dist/tools/desktop-focus-window.js.map +1 -0
- package/dist/tools/desktop-key-press.d.ts +12 -0
- package/dist/tools/desktop-key-press.d.ts.map +1 -0
- package/dist/tools/desktop-key-press.js +73 -0
- package/dist/tools/desktop-key-press.js.map +1 -0
- package/dist/tools/desktop-launch-app.d.ts +12 -0
- package/dist/tools/desktop-launch-app.d.ts.map +1 -0
- package/dist/tools/desktop-launch-app.js +58 -0
- package/dist/tools/desktop-launch-app.js.map +1 -0
- package/dist/tools/desktop-list-elements.d.ts +11 -0
- package/dist/tools/desktop-list-elements.d.ts.map +1 -0
- package/dist/tools/desktop-list-elements.js +65 -0
- package/dist/tools/desktop-list-elements.js.map +1 -0
- package/dist/tools/desktop-plan-approve.d.ts +30 -0
- package/dist/tools/desktop-plan-approve.d.ts.map +1 -0
- package/dist/tools/desktop-plan-approve.js +135 -0
- package/dist/tools/desktop-plan-approve.js.map +1 -0
- package/dist/tools/desktop-providers.d.ts +144 -0
- package/dist/tools/desktop-providers.d.ts.map +1 -0
- package/dist/tools/desktop-providers.js +12 -0
- package/dist/tools/desktop-providers.js.map +1 -0
- package/dist/tools/desktop-safety-gate.d.ts +84 -0
- package/dist/tools/desktop-safety-gate.d.ts.map +1 -0
- package/dist/tools/desktop-safety-gate.js +171 -0
- package/dist/tools/desktop-safety-gate.js.map +1 -0
- package/dist/tools/desktop-tools.d.ts +22 -0
- package/dist/tools/desktop-tools.d.ts.map +1 -0
- package/dist/tools/desktop-tools.js +71 -0
- package/dist/tools/desktop-tools.js.map +1 -0
- package/dist/tools/desktop-type.d.ts +12 -0
- package/dist/tools/desktop-type.d.ts.map +1 -0
- package/dist/tools/desktop-type.js +63 -0
- package/dist/tools/desktop-type.js.map +1 -0
- package/dist/tools/detect-language.d.ts +11 -0
- package/dist/tools/detect-language.d.ts.map +1 -0
- package/dist/tools/detect-language.js +235 -0
- package/dist/tools/detect-language.js.map +1 -0
- package/dist/tools/discover-news.d.ts +11 -0
- package/dist/tools/discover-news.d.ts.map +1 -0
- package/dist/tools/discover-news.js +261 -0
- package/dist/tools/discover-news.js.map +1 -0
- package/dist/tools/doc-generate.d.ts +17 -0
- package/dist/tools/doc-generate.d.ts.map +1 -0
- package/dist/tools/doc-generate.js +222 -0
- package/dist/tools/doc-generate.js.map +1 -0
- package/dist/tools/docs-lookup.d.ts +38 -0
- package/dist/tools/docs-lookup.d.ts.map +1 -0
- package/dist/tools/docs-lookup.js +174 -0
- package/dist/tools/docs-lookup.js.map +1 -0
- package/dist/tools/document-author.d.ts +40 -0
- package/dist/tools/document-author.d.ts.map +1 -0
- package/dist/tools/document-author.js +465 -0
- package/dist/tools/document-author.js.map +1 -0
- package/dist/tools/document-manage.d.ts +43 -0
- package/dist/tools/document-manage.d.ts.map +1 -0
- package/dist/tools/document-manage.js +665 -0
- package/dist/tools/document-manage.js.map +1 -0
- package/dist/tools/document-styling.d.ts +132 -0
- package/dist/tools/document-styling.d.ts.map +1 -0
- package/dist/tools/document-styling.js +360 -0
- package/dist/tools/document-styling.js.map +1 -0
- package/dist/tools/document-templates.d.ts +32 -0
- package/dist/tools/document-templates.d.ts.map +1 -0
- package/dist/tools/document-templates.js +95 -0
- package/dist/tools/document-templates.js.map +1 -0
- package/dist/tools/email-draft.d.ts +20 -0
- package/dist/tools/email-draft.d.ts.map +1 -0
- package/dist/tools/email-draft.js +191 -0
- package/dist/tools/email-draft.js.map +1 -0
- package/dist/tools/env-write.d.ts +32 -0
- package/dist/tools/env-write.d.ts.map +1 -0
- package/dist/tools/env-write.js +145 -0
- package/dist/tools/env-write.js.map +1 -0
- package/dist/tools/error-guidance.d.ts +38 -0
- package/dist/tools/error-guidance.d.ts.map +1 -0
- package/dist/tools/error-guidance.js +261 -0
- package/dist/tools/error-guidance.js.map +1 -0
- package/dist/tools/exercise-repair.d.ts +89 -0
- package/dist/tools/exercise-repair.d.ts.map +1 -0
- package/dist/tools/exercise-repair.js +350 -0
- package/dist/tools/exercise-repair.js.map +1 -0
- package/dist/tools/fact-check.d.ts +24 -0
- package/dist/tools/fact-check.d.ts.map +1 -0
- package/dist/tools/fact-check.js +78 -0
- package/dist/tools/fact-check.js.map +1 -0
- package/dist/tools/file-edit.d.ts +11 -0
- package/dist/tools/file-edit.d.ts.map +1 -0
- package/dist/tools/file-edit.js +166 -0
- package/dist/tools/file-edit.js.map +1 -0
- package/dist/tools/file-read.d.ts +12 -0
- package/dist/tools/file-read.d.ts.map +1 -0
- package/dist/tools/file-read.js +98 -0
- package/dist/tools/file-read.js.map +1 -0
- package/dist/tools/file-write.d.ts +13 -0
- package/dist/tools/file-write.d.ts.map +1 -0
- package/dist/tools/file-write.js +163 -0
- package/dist/tools/file-write.js.map +1 -0
- package/dist/tools/find-symbol.d.ts +13 -0
- package/dist/tools/find-symbol.d.ts.map +1 -0
- package/dist/tools/find-symbol.js +144 -0
- package/dist/tools/find-symbol.js.map +1 -0
- package/dist/tools/generate-image.d.ts +19 -0
- package/dist/tools/generate-image.d.ts.map +1 -0
- package/dist/tools/generate-image.js +438 -0
- package/dist/tools/generate-image.js.map +1 -0
- package/dist/tools/generate-video.d.ts +21 -0
- package/dist/tools/generate-video.d.ts.map +1 -0
- package/dist/tools/generate-video.js +197 -0
- package/dist/tools/generate-video.js.map +1 -0
- package/dist/tools/generate-voice.d.ts +13 -0
- package/dist/tools/generate-voice.d.ts.map +1 -0
- package/dist/tools/generate-voice.js +156 -0
- package/dist/tools/generate-voice.js.map +1 -0
- package/dist/tools/generation-manager.d.ts +75 -0
- package/dist/tools/generation-manager.d.ts.map +1 -0
- package/dist/tools/generation-manager.js +150 -0
- package/dist/tools/generation-manager.js.map +1 -0
- package/dist/tools/get-datetime.d.ts +11 -0
- package/dist/tools/get-datetime.d.ts.map +1 -0
- package/dist/tools/get-datetime.js +59 -0
- package/dist/tools/get-datetime.js.map +1 -0
- package/dist/tools/git-commit.d.ts +13 -0
- package/dist/tools/git-commit.d.ts.map +1 -0
- package/dist/tools/git-commit.js +136 -0
- package/dist/tools/git-commit.js.map +1 -0
- package/dist/tools/git-create-pr.d.ts +13 -0
- package/dist/tools/git-create-pr.d.ts.map +1 -0
- package/dist/tools/git-create-pr.js +134 -0
- package/dist/tools/git-create-pr.js.map +1 -0
- package/dist/tools/git-diff.d.ts +12 -0
- package/dist/tools/git-diff.d.ts.map +1 -0
- package/dist/tools/git-diff.js +134 -0
- package/dist/tools/git-diff.js.map +1 -0
- package/dist/tools/git.d.ts +11 -0
- package/dist/tools/git.d.ts.map +1 -0
- package/dist/tools/git.js +89 -0
- package/dist/tools/git.js.map +1 -0
- package/dist/tools/glob.d.ts +11 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +64 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +11 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +131 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/health-catalogue-search.d.ts +11 -0
- package/dist/tools/health-catalogue-search.d.ts.map +1 -0
- package/dist/tools/health-catalogue-search.js +179 -0
- package/dist/tools/health-catalogue-search.js.map +1 -0
- package/dist/tools/health-plan-create.d.ts +24 -0
- package/dist/tools/health-plan-create.d.ts.map +1 -0
- package/dist/tools/health-plan-create.js +325 -0
- package/dist/tools/health-plan-create.js.map +1 -0
- package/dist/tools/health-plan-delete.d.ts +11 -0
- package/dist/tools/health-plan-delete.d.ts.map +1 -0
- package/dist/tools/health-plan-delete.js +97 -0
- package/dist/tools/health-plan-delete.js.map +1 -0
- package/dist/tools/health-plan-list.d.ts +11 -0
- package/dist/tools/health-plan-list.d.ts.map +1 -0
- package/dist/tools/health-plan-list.js +123 -0
- package/dist/tools/health-plan-list.js.map +1 -0
- package/dist/tools/health-plan-update-day.d.ts +18 -0
- package/dist/tools/health-plan-update-day.d.ts.map +1 -0
- package/dist/tools/health-plan-update-day.js +134 -0
- package/dist/tools/health-plan-update-day.js.map +1 -0
- package/dist/tools/health-plan-update.d.ts +11 -0
- package/dist/tools/health-plan-update.d.ts.map +1 -0
- package/dist/tools/health-plan-update.js +103 -0
- package/dist/tools/health-plan-update.js.map +1 -0
- package/dist/tools/health-profile-ask.d.ts +21 -0
- package/dist/tools/health-profile-ask.d.ts.map +1 -0
- package/dist/tools/health-profile-ask.js +50 -0
- package/dist/tools/health-profile-ask.js.map +1 -0
- package/dist/tools/http-request.d.ts +12 -0
- package/dist/tools/http-request.d.ts.map +1 -0
- package/dist/tools/http-request.js +329 -0
- package/dist/tools/http-request.js.map +1 -0
- package/dist/tools/journal.d.ts +17 -0
- package/dist/tools/journal.d.ts.map +1 -0
- package/dist/tools/journal.js +159 -0
- package/dist/tools/journal.js.map +1 -0
- package/dist/tools/learning.d.ts +154 -0
- package/dist/tools/learning.d.ts.map +1 -0
- package/dist/tools/learning.js +1344 -0
- package/dist/tools/learning.js.map +1 -0
- package/dist/tools/list-directory.d.ts +11 -0
- package/dist/tools/list-directory.d.ts.map +1 -0
- package/dist/tools/list-directory.js +95 -0
- package/dist/tools/list-directory.js.map +1 -0
- package/dist/tools/memory-delete.d.ts +11 -0
- package/dist/tools/memory-delete.d.ts.map +1 -0
- package/dist/tools/memory-delete.js +54 -0
- package/dist/tools/memory-delete.js.map +1 -0
- package/dist/tools/memory-recall.d.ts +11 -0
- package/dist/tools/memory-recall.d.ts.map +1 -0
- package/dist/tools/memory-recall.js +101 -0
- package/dist/tools/memory-recall.js.map +1 -0
- package/dist/tools/memory-save.d.ts +11 -0
- package/dist/tools/memory-save.d.ts.map +1 -0
- package/dist/tools/memory-save.js +110 -0
- package/dist/tools/memory-save.js.map +1 -0
- package/dist/tools/memory-update.d.ts +11 -0
- package/dist/tools/memory-update.d.ts.map +1 -0
- package/dist/tools/memory-update.js +88 -0
- package/dist/tools/memory-update.js.map +1 -0
- package/dist/tools/news.d.ts +11 -0
- package/dist/tools/news.d.ts.map +1 -0
- package/dist/tools/news.js +137 -0
- package/dist/tools/news.js.map +1 -0
- package/dist/tools/open-design-studio.d.ts +20 -0
- package/dist/tools/open-design-studio.d.ts.map +1 -0
- package/dist/tools/open-design-studio.js +45 -0
- package/dist/tools/open-design-studio.js.map +1 -0
- package/dist/tools/open-health-room.d.ts +19 -0
- package/dist/tools/open-health-room.d.ts.map +1 -0
- package/dist/tools/open-health-room.js +44 -0
- package/dist/tools/open-health-room.js.map +1 -0
- package/dist/tools/open-learning-room.d.ts +20 -0
- package/dist/tools/open-learning-room.d.ts.map +1 -0
- package/dist/tools/open-learning-room.js +44 -0
- package/dist/tools/open-learning-room.js.map +1 -0
- package/dist/tools/paper-fetch.d.ts +11 -0
- package/dist/tools/paper-fetch.d.ts.map +1 -0
- package/dist/tools/paper-fetch.js +236 -0
- package/dist/tools/paper-fetch.js.map +1 -0
- package/dist/tools/post-performance.d.ts +17 -0
- package/dist/tools/post-performance.d.ts.map +1 -0
- package/dist/tools/post-performance.js +58 -0
- package/dist/tools/post-performance.js.map +1 -0
- package/dist/tools/present-plan.d.ts +34 -0
- package/dist/tools/present-plan.d.ts.map +1 -0
- package/dist/tools/present-plan.js +117 -0
- package/dist/tools/present-plan.js.map +1 -0
- package/dist/tools/project-index.d.ts +11 -0
- package/dist/tools/project-index.d.ts.map +1 -0
- package/dist/tools/project-index.js +88 -0
- package/dist/tools/project-index.js.map +1 -0
- package/dist/tools/propose-hooks.d.ts +17 -0
- package/dist/tools/propose-hooks.d.ts.map +1 -0
- package/dist/tools/propose-hooks.js +71 -0
- package/dist/tools/propose-hooks.js.map +1 -0
- package/dist/tools/propose-tool.d.ts +11 -0
- package/dist/tools/propose-tool.d.ts.map +1 -0
- package/dist/tools/propose-tool.js +155 -0
- package/dist/tools/propose-tool.js.map +1 -0
- package/dist/tools/recipe-repair.d.ts +116 -0
- package/dist/tools/recipe-repair.d.ts.map +1 -0
- package/dist/tools/recipe-repair.js +404 -0
- package/dist/tools/recipe-repair.js.map +1 -0
- package/dist/tools/record-machine-rule.d.ts +24 -0
- package/dist/tools/record-machine-rule.d.ts.map +1 -0
- package/dist/tools/record-machine-rule.js +60 -0
- package/dist/tools/record-machine-rule.js.map +1 -0
- package/dist/tools/release-notes.d.ts +11 -0
- package/dist/tools/release-notes.d.ts.map +1 -0
- package/dist/tools/release-notes.js +59 -0
- package/dist/tools/release-notes.js.map +1 -0
- package/dist/tools/remove-background.d.ts +15 -0
- package/dist/tools/remove-background.d.ts.map +1 -0
- package/dist/tools/remove-background.js +117 -0
- package/dist/tools/remove-background.js.map +1 -0
- package/dist/tools/report-generate.d.ts +30 -0
- package/dist/tools/report-generate.d.ts.map +1 -0
- package/dist/tools/report-generate.js +325 -0
- package/dist/tools/report-generate.js.map +1 -0
- package/dist/tools/research-post.d.ts +20 -0
- package/dist/tools/research-post.d.ts.map +1 -0
- package/dist/tools/research-post.js +87 -0
- package/dist/tools/research-post.js.map +1 -0
- package/dist/tools/research-story.d.ts +29 -0
- package/dist/tools/research-story.d.ts.map +1 -0
- package/dist/tools/research-story.js +78 -0
- package/dist/tools/research-story.js.map +1 -0
- package/dist/tools/rollback.d.ts +11 -0
- package/dist/tools/rollback.d.ts.map +1 -0
- package/dist/tools/rollback.js +81 -0
- package/dist/tools/rollback.js.map +1 -0
- package/dist/tools/scan-industry.d.ts +19 -0
- package/dist/tools/scan-industry.d.ts.map +1 -0
- package/dist/tools/scan-industry.js +82 -0
- package/dist/tools/scan-industry.js.map +1 -0
- package/dist/tools/screenshot.d.ts +11 -0
- package/dist/tools/screenshot.d.ts.map +1 -0
- package/dist/tools/screenshot.js +82 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/secret-request.d.ts +24 -0
- package/dist/tools/secret-request.d.ts.map +1 -0
- package/dist/tools/secret-request.js +75 -0
- package/dist/tools/secret-request.js.map +1 -0
- package/dist/tools/security.d.ts +26 -0
- package/dist/tools/security.d.ts.map +1 -0
- package/dist/tools/security.js +78 -0
- package/dist/tools/security.js.map +1 -0
- package/dist/tools/self-inspect.d.ts +34 -0
- package/dist/tools/self-inspect.d.ts.map +1 -0
- package/dist/tools/self-inspect.js +427 -0
- package/dist/tools/self-inspect.js.map +1 -0
- package/dist/tools/suggest-beats.d.ts +17 -0
- package/dist/tools/suggest-beats.d.ts.map +1 -0
- package/dist/tools/suggest-beats.js +71 -0
- package/dist/tools/suggest-beats.js.map +1 -0
- package/dist/tools/suggest-stories.d.ts +26 -0
- package/dist/tools/suggest-stories.d.ts.map +1 -0
- package/dist/tools/suggest-stories.js +102 -0
- package/dist/tools/suggest-stories.js.map +1 -0
- package/dist/tools/support-request.d.ts +11 -0
- package/dist/tools/support-request.d.ts.map +1 -0
- package/dist/tools/support-request.js +110 -0
- package/dist/tools/support-request.js.map +1 -0
- package/dist/tools/switch-mode.d.ts +21 -0
- package/dist/tools/switch-mode.d.ts.map +1 -0
- package/dist/tools/switch-mode.js +57 -0
- package/dist/tools/switch-mode.js.map +1 -0
- package/dist/tools/task-manage.d.ts +16 -0
- package/dist/tools/task-manage.d.ts.map +1 -0
- package/dist/tools/task-manage.js +256 -0
- package/dist/tools/task-manage.js.map +1 -0
- package/dist/tools/task-suggest.d.ts +27 -0
- package/dist/tools/task-suggest.d.ts.map +1 -0
- package/dist/tools/task-suggest.js +70 -0
- package/dist/tools/task-suggest.js.map +1 -0
- package/dist/tools/test-generate.d.ts +20 -0
- package/dist/tools/test-generate.d.ts.map +1 -0
- package/dist/tools/test-generate.js +259 -0
- package/dist/tools/test-generate.js.map +1 -0
- package/dist/tools/test-run.d.ts +13 -0
- package/dist/tools/test-run.d.ts.map +1 -0
- package/dist/tools/test-run.js +177 -0
- package/dist/tools/test-run.js.map +1 -0
- package/dist/tools/todo-write.d.ts +11 -0
- package/dist/tools/todo-write.d.ts.map +1 -0
- package/dist/tools/todo-write.js +70 -0
- package/dist/tools/todo-write.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +84 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +728 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/types.d.ts +128 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/verification-trust.d.ts +39 -0
- package/dist/tools/verification-trust.d.ts.map +1 -0
- package/dist/tools/verification-trust.js +135 -0
- package/dist/tools/verification-trust.js.map +1 -0
- package/dist/tools/verify-change.d.ts +11 -0
- package/dist/tools/verify-change.d.ts.map +1 -0
- package/dist/tools/verify-change.js +775 -0
- package/dist/tools/verify-change.js.map +1 -0
- package/dist/tools/weather.d.ts +11 -0
- package/dist/tools/weather.d.ts.map +1 -0
- package/dist/tools/weather.js +96 -0
- package/dist/tools/weather.js.map +1 -0
- package/dist/tools/web-search.d.ts +12 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +137 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/write-article.d.ts +33 -0
- package/dist/tools/write-article.d.ts.map +1 -0
- package/dist/tools/write-article.js +206 -0
- package/dist/tools/write-article.js.map +1 -0
- package/dist/tools/write-exercise.d.ts +31 -0
- package/dist/tools/write-exercise.d.ts.map +1 -0
- package/dist/tools/write-exercise.js +278 -0
- package/dist/tools/write-exercise.js.map +1 -0
- package/dist/tools/write-post-image.d.ts +31 -0
- package/dist/tools/write-post-image.d.ts.map +1 -0
- package/dist/tools/write-post-image.js +102 -0
- package/dist/tools/write-post-image.js.map +1 -0
- package/dist/tools/write-post.d.ts +20 -0
- package/dist/tools/write-post.d.ts.map +1 -0
- package/dist/tools/write-post.js +113 -0
- package/dist/tools/write-post.js.map +1 -0
- package/dist/tools/write-recipe.d.ts +29 -0
- package/dist/tools/write-recipe.d.ts.map +1 -0
- package/dist/tools/write-recipe.js +262 -0
- package/dist/tools/write-recipe.js.map +1 -0
- package/dist/tools/write-video-post.d.ts +25 -0
- package/dist/tools/write-video-post.d.ts.map +1 -0
- package/dist/tools/write-video-post.js +238 -0
- package/dist/tools/write-video-post.js.map +1 -0
- package/dist/tools/write-voiceover.d.ts +29 -0
- package/dist/tools/write-voiceover.d.ts.map +1 -0
- package/dist/tools/write-voiceover.js +98 -0
- package/dist/tools/write-voiceover.js.map +1 -0
- package/dist/workflows/index.d.ts +4 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +2 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/types.d.ts +112 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +10 -0
- package/dist/workflows/types.js.map +1 -0
- package/dist/workflows/workflow-manager.d.ts +54 -0
- package/dist/workflows/workflow-manager.d.ts.map +1 -0
- package/dist/workflows/workflow-manager.js +277 -0
- package/dist/workflows/workflow-manager.js.map +1 -0
- package/package.json +223 -0
|
@@ -0,0 +1,4347 @@
|
|
|
1
|
+
/** English strings — source of truth. All other locales mirror this key set. */
|
|
2
|
+
export const enStrings = {
|
|
3
|
+
// ── Welcome / Branding ────────────────────────────────────────────────────
|
|
4
|
+
'welcome.title': 'Ava Supernova',
|
|
5
|
+
'welcome.subtitle': 'Ask anything about your code.',
|
|
6
|
+
'welcome.cli_hint': 'Type your message, or /help for commands.',
|
|
7
|
+
// ── Input Area ────────────────────────────────────────────────────────────
|
|
8
|
+
'input.placeholder.code': 'What do you want to build?',
|
|
9
|
+
'input.placeholder.plan': 'Describe what you want to plan...',
|
|
10
|
+
'input.placeholder.chat': 'Ask a question or start a discussion...',
|
|
11
|
+
'input.placeholder.disabled': 'Configure a provider to start...',
|
|
12
|
+
'input.placeholder.security': 'Describe what to scan, or just hit Enter for a full audit...',
|
|
13
|
+
'input.mode.code': 'Code',
|
|
14
|
+
'input.mode.plan': 'Plan',
|
|
15
|
+
'input.mode.chat': 'Chat',
|
|
16
|
+
'input.mode.security': 'Security',
|
|
17
|
+
'input.mode.write': 'Write',
|
|
18
|
+
'input.placeholder.write': 'What would you like to write?',
|
|
19
|
+
'input.send': 'Send (Enter)',
|
|
20
|
+
'input.send_aria': 'Send message',
|
|
21
|
+
'input.stop': 'Stop',
|
|
22
|
+
'input.stop_aria': 'Stop Ava',
|
|
23
|
+
'input.attach': 'Attach image',
|
|
24
|
+
'input.drop_image': 'Drop image here',
|
|
25
|
+
'input.compressing': 'Compressing...',
|
|
26
|
+
'input.compress_title': 'Context usage \u2014 click to compress',
|
|
27
|
+
'input.compress_title_warning': 'Click to compress context',
|
|
28
|
+
// ── Header ────────────────────────────────────────────────────────────────
|
|
29
|
+
'header.history': 'Chat History',
|
|
30
|
+
'header.settings': 'Settings',
|
|
31
|
+
'header.new_chat': 'New Chat',
|
|
32
|
+
'header.clear_chat': 'Clear chat',
|
|
33
|
+
'header.tasks': 'Tasks',
|
|
34
|
+
// ── Model Selector ────────────────────────────────────────────────────────
|
|
35
|
+
'model.no_providers': 'No providers configured.',
|
|
36
|
+
'model.open_settings': 'Open Settings',
|
|
37
|
+
'model.vision': 'vision',
|
|
38
|
+
'model.vision_title': 'This model supports image/vision input',
|
|
39
|
+
'model.no_vision_title': 'Text only — this model cannot read image attachments',
|
|
40
|
+
'model.switched': 'Switched to {model}',
|
|
41
|
+
// ── Thinking Indicator ────────────────────────────────────────────────────
|
|
42
|
+
'thinking.0': 'Ava is thinking...',
|
|
43
|
+
'thinking.reading': 'Reading your request…',
|
|
44
|
+
'thinking.working': '{model} is working…',
|
|
45
|
+
'thinking.1': 'Analyzing your code...',
|
|
46
|
+
'thinking.2': 'Considering approaches...',
|
|
47
|
+
'thinking.3': 'Crafting a response...',
|
|
48
|
+
// ── Suggestions ───────────────────────────────────────────────────────────
|
|
49
|
+
'suggestion.explain': 'Explain this codebase',
|
|
50
|
+
'suggestion.explain_prompt': 'Give me a high-level overview of this project structure and architecture.',
|
|
51
|
+
'suggestion.bug': 'Find a bug',
|
|
52
|
+
'suggestion.bug_prompt': 'Help me find and fix bugs in the current file.',
|
|
53
|
+
'suggestion.test': 'Write tests',
|
|
54
|
+
'suggestion.test_prompt': 'Write comprehensive tests for the main module.',
|
|
55
|
+
'suggestion.refactor': 'Refactor code',
|
|
56
|
+
'suggestion.refactor_prompt': 'Suggest refactoring improvements for the current file.',
|
|
57
|
+
// ── Error Labels ──────────────────────────────────────────────────────────
|
|
58
|
+
'error.auth': 'Invalid API Key',
|
|
59
|
+
'error.credits': 'Out of Credits',
|
|
60
|
+
'error.forbidden': 'Access Denied',
|
|
61
|
+
'error.rate_limit': 'Too Many Requests',
|
|
62
|
+
'error.model_not_found': 'Model Not Available',
|
|
63
|
+
'error.bad_request': 'Request Failed',
|
|
64
|
+
'error.server_error': 'Service Unavailable',
|
|
65
|
+
'error.timeout': 'Response Timed Out',
|
|
66
|
+
'error.stream_stall': 'Connection Lost',
|
|
67
|
+
'error.network': 'No Connection',
|
|
68
|
+
'error.setup': 'Setup Needed',
|
|
69
|
+
'error.busy': 'Busy',
|
|
70
|
+
'error.iterations_exceeded': 'Task Too Large',
|
|
71
|
+
'error.context_truncated': 'Conversation Too Long',
|
|
72
|
+
'error.provider_error': 'Something Went Wrong',
|
|
73
|
+
'error.unknown': 'Something Went Wrong',
|
|
74
|
+
'error.continue': 'Try Again',
|
|
75
|
+
// ── Error Messages (with interpolation) ───────────────────────────────────
|
|
76
|
+
'error.msg.bad_request': 'The request was rejected by {provider}. This could be an unsupported feature (like images), a context issue, or a model error. Try a different approach or switch models.',
|
|
77
|
+
'error.msg.auth': 'Your API key for {provider} isn\'t working. It may be expired or incorrect.',
|
|
78
|
+
'error.msg.credits': 'Your {provider} account has run out of credits.',
|
|
79
|
+
'error.msg.forbidden': '{provider} blocked this request. Your API key may not have the right permissions.',
|
|
80
|
+
'error.msg.model_not_found': 'This model isn\'t available on {provider}. It may have been renamed or removed.',
|
|
81
|
+
'error.msg.rate_limit': '{provider} is limiting requests because too many were sent too quickly.',
|
|
82
|
+
'error.msg.server_error': '{provider} is having technical difficulties (error {code}).',
|
|
83
|
+
'error.msg.empty_response': 'The model returned an empty response. This can happen with unsupported features (like images on some models), overloaded services, or request formatting issues. Try again or switch models.',
|
|
84
|
+
'error.msg.iteration_limit': 'This task needed more than {limit} steps. It may be too complex for a single message.',
|
|
85
|
+
'error.msg.iteration_warning': '[WARNING] You have {remaining} iterations remaining before the loop limit. Wrap up your current task \u2014 summarize what you\'ve done and what\'s left. Don\'t start new multi-step work.',
|
|
86
|
+
'error.msg.image_stripped': '[An image was shared but this model does not support vision]',
|
|
87
|
+
// ── Tool UI ───────────────────────────────────────────────────────────────
|
|
88
|
+
'tool.allow': 'Allow',
|
|
89
|
+
'tool.always_allow': 'Always Allow',
|
|
90
|
+
'tool.always_allow_category_tip': 'Auto-approve this tool category for the rest of the session',
|
|
91
|
+
'tool.deny': 'Deny',
|
|
92
|
+
'tool.allow_prompt': 'Allow {tool}?',
|
|
93
|
+
'tool.arguments': 'Arguments',
|
|
94
|
+
'tool.output': 'Output',
|
|
95
|
+
'tool.error': 'Error',
|
|
96
|
+
'tool.truncated': '... (truncated)',
|
|
97
|
+
'tool.read': 'Read {file}',
|
|
98
|
+
'tool.write': 'Write {file}',
|
|
99
|
+
'tool.edit': 'Edit {file}',
|
|
100
|
+
'tool.find_files': 'Find files: {pattern}',
|
|
101
|
+
'tool.search': 'Search: {pattern}',
|
|
102
|
+
'tool.run': 'Run: {command}',
|
|
103
|
+
'tool.list_dir': 'List {path}',
|
|
104
|
+
'tool.web_search': 'Search: {query}',
|
|
105
|
+
'tool.ask_user': 'Question for user',
|
|
106
|
+
'tool.git': 'Git {command}',
|
|
107
|
+
'tool.http': '{method} {url}',
|
|
108
|
+
// ── History Panel ─────────────────────────────────────────────────────────
|
|
109
|
+
'history.title': 'Chat History',
|
|
110
|
+
'history.new_chat': '+ New Chat',
|
|
111
|
+
'history.close': 'Close',
|
|
112
|
+
'history.search': 'Search conversations...',
|
|
113
|
+
'history.empty': 'No saved conversations yet.',
|
|
114
|
+
'history.no_match': 'No matching conversations.',
|
|
115
|
+
'history.delete_confirm': 'Delete?',
|
|
116
|
+
'history.rename_hint': 'Double-click to rename',
|
|
117
|
+
'history.pin': 'Pin',
|
|
118
|
+
'history.unpin': 'Unpin',
|
|
119
|
+
'history.export_md': 'Export as Markdown',
|
|
120
|
+
'history.pinned': 'Pinned',
|
|
121
|
+
'history.just_now': 'just now',
|
|
122
|
+
'history.minutes_ago': '{n}m ago',
|
|
123
|
+
'history.hours_ago': '{n}h ago',
|
|
124
|
+
'history.days_ago': '{n}d ago',
|
|
125
|
+
// ── Ask User Card ─────────────────────────────────────────────────────────
|
|
126
|
+
'ask.question': 'Question',
|
|
127
|
+
'ask.fallback': 'Ava has a question',
|
|
128
|
+
'ask.placeholder': 'Type your response...',
|
|
129
|
+
'ask.submit': 'Submit',
|
|
130
|
+
'ask.skip': 'Skip',
|
|
131
|
+
'ask.skipped': 'Skipped',
|
|
132
|
+
// ── Plan Card ─────────────────────────────────────────────────────────────
|
|
133
|
+
'plan.unavailable': 'Plan data unavailable',
|
|
134
|
+
'plan.prefix': 'Plan: {title}',
|
|
135
|
+
'plan.approved': 'Approved',
|
|
136
|
+
'plan.rejected': 'Rejected',
|
|
137
|
+
'plan.goal': 'Goal',
|
|
138
|
+
'plan.steps': 'Steps',
|
|
139
|
+
'plan.verification': 'Verification',
|
|
140
|
+
'plan.approaches': 'Approaches',
|
|
141
|
+
'plan.note': 'Note',
|
|
142
|
+
'plan.note_placeholder': 'Anything to add to this decision?',
|
|
143
|
+
'plan.choose_first': 'pick one to continue',
|
|
144
|
+
'plan.approve': 'Approve',
|
|
145
|
+
'plan.reject': 'Reject',
|
|
146
|
+
// ── Todo Card ─────────────────────────────────────────────────────────────
|
|
147
|
+
'todo.unavailable': 'Task list unavailable',
|
|
148
|
+
'todo.tasks': 'Tasks',
|
|
149
|
+
'todo.done': '{done}/{total} done',
|
|
150
|
+
// ── Status Bar ────────────────────────────────────────────────────────────
|
|
151
|
+
'status.in': 'in',
|
|
152
|
+
'status.out': 'out',
|
|
153
|
+
'status.total': 'total',
|
|
154
|
+
'status.tokens': 'tokens',
|
|
155
|
+
// ── Compression ───────────────────────────────────────────────────────────
|
|
156
|
+
'compression.start': 'Compressing context...',
|
|
157
|
+
'compression.result': 'Context compressed: ~{original} \u2192 ~{compressed} tokens',
|
|
158
|
+
'compression.nothing': 'Nothing to compress.',
|
|
159
|
+
'compression.failed': 'Compression failed.',
|
|
160
|
+
'compression.busy': 'Cannot compress while Ava is working.',
|
|
161
|
+
'compression.context_truncated': 'Context truncated: {count} messages dropped.',
|
|
162
|
+
// ── Continue ──────────────────────────────────────────────────────────────
|
|
163
|
+
'continue.prompt': 'Continue where you left off.',
|
|
164
|
+
// ── CLI Command Descriptions ──────────────────────────────────────────────
|
|
165
|
+
'cmd.help.desc': 'Show available commands',
|
|
166
|
+
'cmd.model.desc': 'List or switch models (/model <provider:model-id>)',
|
|
167
|
+
'cmd.clear.desc': 'Clear conversation history',
|
|
168
|
+
'cmd.provider.desc': 'Add or list providers (/provider add <name>)',
|
|
169
|
+
'cmd.history.desc': 'List saved conversations',
|
|
170
|
+
'cmd.resume.desc': 'Resume a saved conversation (/resume <id-prefix>)',
|
|
171
|
+
'cmd.search.desc': 'Search conversations (/search <query>)',
|
|
172
|
+
'cmd.delete.desc': 'Delete a saved conversation (/delete <id-prefix>)',
|
|
173
|
+
'cmd.rename.desc': 'Rename a conversation (/rename <id-prefix> <new title>)',
|
|
174
|
+
'cmd.pin.desc': 'Pin a conversation (/pin <id-prefix>)',
|
|
175
|
+
'cmd.unpin.desc': 'Unpin a conversation (/unpin <id-prefix>)',
|
|
176
|
+
'cmd.export.desc': 'Export a conversation (/export <id-prefix> [markdown|json])',
|
|
177
|
+
'cmd.retry.desc': 'Retry the last message',
|
|
178
|
+
'cmd.compact.desc': 'Compress conversation context to free up space',
|
|
179
|
+
'cmd.permission.desc': 'View or set permission mode (/permission <strict|balanced|autonomous>)',
|
|
180
|
+
'cmd.tools.desc': 'List available tools',
|
|
181
|
+
'cmd.init.desc': 'Create .ava/instructions.md for project-specific context',
|
|
182
|
+
'cmd.exit.desc': 'Exit Ava',
|
|
183
|
+
'cmd.security.desc': 'Run a security audit (/security [focus area])',
|
|
184
|
+
// ── CLI Command Messages ──────────────────────────────────────────────────
|
|
185
|
+
'cmd.model.unknown': 'Unknown model: {model}',
|
|
186
|
+
'cmd.model.switched': 'Switched to {name} ({provider})',
|
|
187
|
+
'cmd.model.active': '(active)',
|
|
188
|
+
'cmd.clear.done': 'Conversation cleared.',
|
|
189
|
+
'cmd.provider.usage': 'Usage: /provider add <{providers}>',
|
|
190
|
+
'cmd.provider.enter_key': 'Enter API key for {provider}: ',
|
|
191
|
+
'cmd.provider.cancelled': 'Cancelled.',
|
|
192
|
+
'cmd.provider.added': 'Provider {provider} added successfully.',
|
|
193
|
+
'cmd.provider.failed': 'Failed to register {provider}: {error}',
|
|
194
|
+
'cmd.provider.title': 'Configured providers:',
|
|
195
|
+
'cmd.provider.configured': 'configured',
|
|
196
|
+
'cmd.provider.not_configured': 'not configured',
|
|
197
|
+
'cmd.provider.hint': 'Use /provider add <name> to add a provider.',
|
|
198
|
+
'cmd.history.empty': 'No saved conversations.',
|
|
199
|
+
'cmd.history.title': 'Saved conversations:',
|
|
200
|
+
'cmd.history.more': '... and {count} more',
|
|
201
|
+
'cmd.history.hint': 'Use /resume <id-prefix> to load a conversation.',
|
|
202
|
+
'cmd.resume.usage': 'Usage: /resume <id-prefix>',
|
|
203
|
+
'cmd.resume.hint': 'Run /history to see available conversations.',
|
|
204
|
+
'cmd.resume.not_found': 'No conversation found matching "{prefix}".',
|
|
205
|
+
'cmd.resume.failed': 'Failed to load conversation.',
|
|
206
|
+
'cmd.resume.done': 'Resumed: {title}',
|
|
207
|
+
'cmd.resume.count': '{count} messages loaded.',
|
|
208
|
+
'cmd.search.usage': 'Usage: /search <query>',
|
|
209
|
+
'cmd.search.empty': 'No conversations matching "{query}".',
|
|
210
|
+
'cmd.search.title': 'Search results for "{query}":',
|
|
211
|
+
'cmd.delete.usage': 'Usage: /delete <id-prefix>',
|
|
212
|
+
'cmd.delete.confirm': 'Delete "{title}" ({id})? (y/n) ',
|
|
213
|
+
'cmd.delete.done': 'Conversation deleted.',
|
|
214
|
+
'cmd.delete.failed': 'Failed to delete conversation.',
|
|
215
|
+
'cmd.rename.usage': 'Usage: /rename <id-prefix> <new title>',
|
|
216
|
+
'cmd.rename.done': 'Renamed to: {title}',
|
|
217
|
+
'cmd.rename.failed': 'Failed to rename conversation.',
|
|
218
|
+
'cmd.pin.usage': 'Usage: /pin <id-prefix>',
|
|
219
|
+
'cmd.pin.done': 'Pinned: {title}',
|
|
220
|
+
'cmd.pin.failed': 'Failed to pin conversation.',
|
|
221
|
+
'cmd.unpin.usage': 'Usage: /unpin <id-prefix>',
|
|
222
|
+
'cmd.unpin.done': 'Unpinned: {title}',
|
|
223
|
+
'cmd.unpin.failed': 'Failed to unpin conversation.',
|
|
224
|
+
'cmd.export.usage': 'Usage: /export <id-prefix> [markdown|json]',
|
|
225
|
+
'cmd.export.failed': 'Failed to export conversation.',
|
|
226
|
+
'cmd.export.done': 'Exported to {filename}',
|
|
227
|
+
'cmd.retry.unavailable': 'Retry not available.',
|
|
228
|
+
'cmd.compact.unavailable': 'Compression not available.',
|
|
229
|
+
'cmd.permission.title': 'Permission mode:',
|
|
230
|
+
'cmd.permission.strict': 'confirm writes and shell commands',
|
|
231
|
+
'cmd.permission.balanced': 'auto-approve writes, confirm shell commands',
|
|
232
|
+
'cmd.permission.autonomous': 'auto-approve everything',
|
|
233
|
+
'cmd.permission.unknown': 'Unknown mode. Choose: {modes}',
|
|
234
|
+
'cmd.permission.set': 'Permission mode set to {mode}.',
|
|
235
|
+
'cmd.tools.title': 'Available tools:',
|
|
236
|
+
'cmd.init.created': 'Created {path}',
|
|
237
|
+
'cmd.init.hint': 'Edit this file to give Ava project-specific context.',
|
|
238
|
+
'cmd.init.restart': 'Restart Ava for changes to take effect.',
|
|
239
|
+
'cmd.init.exists': '{path} already exists.',
|
|
240
|
+
'cmd.unknown': 'Unknown command: {input}. Type /help for available commands.',
|
|
241
|
+
// ── CLI Labels ────────────────────────────────────────────────────────────
|
|
242
|
+
'cli.thinking': 'Thinking...',
|
|
243
|
+
'cli.thinking_label': '[thinking] ',
|
|
244
|
+
'cli.thinking_words': '{count} words',
|
|
245
|
+
'cli.tool_label': '[tool] ',
|
|
246
|
+
'cli.tasks_label': '[tasks] ',
|
|
247
|
+
'cli.tokens_label': '[tokens] ',
|
|
248
|
+
'cli.running': 'Running {tool}...',
|
|
249
|
+
'cli.confirm_label': '[confirm] ',
|
|
250
|
+
'cli.allow_prompt': 'Allow? ',
|
|
251
|
+
'cli.allow_yn': '(y/n) ',
|
|
252
|
+
'cli.denied': 'Denied.',
|
|
253
|
+
'cli.cancelled': 'Cancelled.',
|
|
254
|
+
'cli.question_label': '[question] ',
|
|
255
|
+
'cli.question_fallback': 'Ava has a question for you',
|
|
256
|
+
'cli.your_response': 'Your response: ',
|
|
257
|
+
'cli.skipped': 'Skipped.',
|
|
258
|
+
'cli.user_response': 'User response: {response}',
|
|
259
|
+
'cli.write_to': 'write to {path}',
|
|
260
|
+
'cli.edit_file': 'edit {path}',
|
|
261
|
+
'cli.list_path': 'list {path}',
|
|
262
|
+
'cli.search_query': 'search "{query}"',
|
|
263
|
+
'cli.ok': 'OK',
|
|
264
|
+
'cli.fail': 'FAIL',
|
|
265
|
+
'cli.more_lines': '... ({count} more lines)',
|
|
266
|
+
// ── Setup Wizard ──────────────────────────────────────────────────────────
|
|
267
|
+
'setup.welcome': 'Welcome to Ava Supernova',
|
|
268
|
+
'setup.intro': "Let's set up your LLM provider.",
|
|
269
|
+
'setup.choose': 'Choose a provider (number): ',
|
|
270
|
+
'setup.invalid_choice': 'Invalid choice. Please restart and try again.',
|
|
271
|
+
'setup.key_url': 'Get your API key at: {url}',
|
|
272
|
+
'setup.enter_key': '{provider} API Key: ',
|
|
273
|
+
'setup.no_key': 'No API key provided. Please restart and try again.',
|
|
274
|
+
'setup.complete': 'Setup complete! Active model: {model}',
|
|
275
|
+
// ══════════════════════════════════════════════════════════════════════════
|
|
276
|
+
// ── Dashboard i18n (IDE + Extension) ─────────────────────────────────────
|
|
277
|
+
// ══════════════════════════════════════════════════════════════════════════
|
|
278
|
+
// ── Sidebar Sections ────────────────────────────────────────────────────
|
|
279
|
+
'dash.section.workspace': 'Workspace',
|
|
280
|
+
'dash.section.personalise': 'Personalise',
|
|
281
|
+
'dash.section.productivity': 'Productivity',
|
|
282
|
+
'dash.section.creative': 'Creative',
|
|
283
|
+
'dash.section.account': 'Account',
|
|
284
|
+
'dash.section.help': 'Help',
|
|
285
|
+
'dash.section.admin': 'Admin',
|
|
286
|
+
// ── Sidebar Items ───────────────────────────────────────────────────────
|
|
287
|
+
'dash.nav.command_centre': 'Command Centre',
|
|
288
|
+
'dash.nav.command_centre_desc': 'Overview of everything',
|
|
289
|
+
'dash.nav.ava_chat': 'Ava Chat',
|
|
290
|
+
'dash.nav.ava_chat_desc': 'Full-width AI chat',
|
|
291
|
+
'dash.nav.memory': 'Memory',
|
|
292
|
+
'dash.nav.memory_desc': 'View and manage memories',
|
|
293
|
+
'dash.nav.tasks': 'Tasks',
|
|
294
|
+
'dash.nav.tasks_desc': 'Your task list',
|
|
295
|
+
'dash.nav.journal': 'Journal',
|
|
296
|
+
'dash.nav.journal_desc': 'Daily entries',
|
|
297
|
+
'dash.nav.learning': 'Learning',
|
|
298
|
+
'dash.nav.learning_desc': 'Courses, lessons, and teaching',
|
|
299
|
+
'dash.nav.chat_history': 'Chat History',
|
|
300
|
+
'dash.nav.chat_history_desc': 'Past conversations',
|
|
301
|
+
'dash.nav.library': 'Library',
|
|
302
|
+
'dash.nav.library_desc': 'Images and documents',
|
|
303
|
+
'dash.nav.health': 'Health & Nutrition',
|
|
304
|
+
'dash.nav.health_desc': 'Exercises, recipes, plans',
|
|
305
|
+
'dash.nav.personality': 'Personality',
|
|
306
|
+
'dash.nav.personality_desc': 'Design your AI',
|
|
307
|
+
'dash.nav.cloud_sync': 'Cloud Sync',
|
|
308
|
+
'dash.nav.cloud_sync_desc': 'Push to cloud',
|
|
309
|
+
'dash.nav.usage': 'Usage',
|
|
310
|
+
'dash.nav.usage_desc': 'Token usage and stats',
|
|
311
|
+
'dash.nav.history': 'History',
|
|
312
|
+
'dash.nav.history_desc': 'Credits, sessions, models',
|
|
313
|
+
// The IDE sidebar says "Usage & History" where the extension says "History".
|
|
314
|
+
// Keeping the IDE's own wording so translating it doesn't silently rename it.
|
|
315
|
+
'dash.nav.usage_history': 'Usage & History',
|
|
316
|
+
'dash.nav.billing': 'Billing',
|
|
317
|
+
'dash.nav.billing_desc': 'Plan and top-ups',
|
|
318
|
+
'dash.nav.settings': 'Settings',
|
|
319
|
+
'dash.nav.settings_desc': 'Preferences and keys',
|
|
320
|
+
'dash.nav.connections': 'Connections',
|
|
321
|
+
'dash.nav.connections_desc': 'GitHub, Slack, Discord',
|
|
322
|
+
'dash.nav.support': 'Support',
|
|
323
|
+
'dash.nav.support_desc': 'Get help',
|
|
324
|
+
'dash.nav.documentation': 'Documentation',
|
|
325
|
+
'dash.nav.documentation_desc': 'Guides and reference',
|
|
326
|
+
'dash.nav.release_notes': 'Release Notes',
|
|
327
|
+
'dash.nav.release_notes_desc': "What's new",
|
|
328
|
+
'dash.nav.roadmap': 'Roadmap',
|
|
329
|
+
'dash.nav.roadmap_desc': 'Where Ava is heading',
|
|
330
|
+
'dash.nav.proposals': 'Proposals',
|
|
331
|
+
// ── Command Centre ──────────────────────────────────────────────────────
|
|
332
|
+
'dash.cc.statistics': 'STATISTICS',
|
|
333
|
+
'dash.cc.tokens_used': 'Tokens Used',
|
|
334
|
+
'dash.cc.requests': 'Requests',
|
|
335
|
+
'dash.cc.this_period': 'This period',
|
|
336
|
+
'dash.cc.latest_news': 'LATEST NEWS',
|
|
337
|
+
'dash.cc.todays_tasks': "TODAY'S TASKS",
|
|
338
|
+
'dash.cc.todays_journal': "TODAY'S JOURNAL",
|
|
339
|
+
'dash.cc.learning': 'LEARNING',
|
|
340
|
+
'dash.cc.memory': 'MEMORY',
|
|
341
|
+
'dash.cc.latest_release': 'LATEST RELEASE',
|
|
342
|
+
'dash.cc.view_all': 'View all',
|
|
343
|
+
'dash.cc.open_journal': 'Open journal',
|
|
344
|
+
'dash.cc.write_entry': 'Write entry',
|
|
345
|
+
'dash.cc.continue_learning': 'Continue learning',
|
|
346
|
+
'dash.cc.no_tasks': 'No tasks today.\nEnjoy the clear board!',
|
|
347
|
+
'dash.cc.no_journal': 'No entries today.\nStart writing!',
|
|
348
|
+
'dash.cc.no_learning': 'No active curriculums.\nAsk Ava to teach you something!',
|
|
349
|
+
'dash.cc.no_memories': 'No memories yet.\nAva will remember as you work together.',
|
|
350
|
+
'dash.cc.no_release': 'No releases yet.',
|
|
351
|
+
'dash.cc.working_hours': 'WORKING HOURS',
|
|
352
|
+
'dash.cc.working_hours_hint': 'Drag the start and end pins to set your hours. Ava will respect your schedule.',
|
|
353
|
+
'dash.cc.greeting_morning': 'Good morning',
|
|
354
|
+
'dash.cc.greeting_afternoon': 'Good afternoon',
|
|
355
|
+
'dash.cc.greeting_evening': 'Good evening',
|
|
356
|
+
'dash.cc.trust_title': 'Worth a look',
|
|
357
|
+
'dash.cc.trust_review': 'Review in audit',
|
|
358
|
+
'dash.cc.trust_more': '+{n} more',
|
|
359
|
+
'dash.cc.byok_mode': 'BYOK Mode',
|
|
360
|
+
'dash.cc.byok_desc': 'You\'re using your own API keys. Connect a platform account in the sidebar for cloud sync, usage tracking, and managed tokens.',
|
|
361
|
+
'dash.cc.connect_to_see': 'Connect your account to see {widget}',
|
|
362
|
+
'dash.cc.loading_weather': 'Loading weather...',
|
|
363
|
+
'dash.cc.loading_news': 'Loading news...',
|
|
364
|
+
'dash.cc.loading_tasks': 'Loading tasks...',
|
|
365
|
+
'dash.cc.loading_journal': 'Loading journal...',
|
|
366
|
+
'dash.cc.loading_learning': 'Loading learning...',
|
|
367
|
+
'dash.cc.loading_memories': 'Loading memories...',
|
|
368
|
+
'dash.cc.loading_release': 'Loading release info...',
|
|
369
|
+
'dash.cc.active_memories': 'Active memories',
|
|
370
|
+
'dash.cc.total': 'Total',
|
|
371
|
+
'dash.cc.last_saved': 'Last saved',
|
|
372
|
+
'dash.cc.no_release_info': 'No release info available.',
|
|
373
|
+
'dash.cc.view_release_notes': 'View release notes',
|
|
374
|
+
'dash.cc.complete_task': 'Complete task',
|
|
375
|
+
'dash.cc.overdue': 'Overdue',
|
|
376
|
+
'dash.cc.widget_tasks': 'tasks',
|
|
377
|
+
'dash.cc.widget_journal': 'journal entries',
|
|
378
|
+
'dash.cc.widget_learning': 'learning paths',
|
|
379
|
+
'dash.cc.widget_memories': 'memories',
|
|
380
|
+
// ── Weather ─────────────────────────────────────────────────────────────
|
|
381
|
+
'weather.clear_sky': 'Clear sky',
|
|
382
|
+
'weather.mainly_clear': 'Mainly clear',
|
|
383
|
+
'weather.partly_cloudy': 'Partly cloudy',
|
|
384
|
+
'weather.overcast': 'Overcast',
|
|
385
|
+
'weather.fog': 'Fog',
|
|
386
|
+
'weather.rime_fog': 'Rime fog',
|
|
387
|
+
'weather.light_drizzle': 'Light drizzle',
|
|
388
|
+
'weather.drizzle': 'Drizzle',
|
|
389
|
+
'weather.dense_drizzle': 'Dense drizzle',
|
|
390
|
+
'weather.light_rain': 'Light rain',
|
|
391
|
+
'weather.rain': 'Rain',
|
|
392
|
+
'weather.heavy_rain': 'Heavy rain',
|
|
393
|
+
'weather.light_snow': 'Light snow',
|
|
394
|
+
'weather.snow': 'Snow',
|
|
395
|
+
'weather.heavy_snow': 'Heavy snow',
|
|
396
|
+
'weather.snow_grains': 'Snow grains',
|
|
397
|
+
'weather.light_showers': 'Light showers',
|
|
398
|
+
'weather.showers': 'Showers',
|
|
399
|
+
'weather.heavy_showers': 'Heavy showers',
|
|
400
|
+
'weather.snow_showers': 'Snow showers',
|
|
401
|
+
'weather.heavy_snow_showers': 'Heavy snow showers',
|
|
402
|
+
'weather.thunderstorm': 'Thunderstorm',
|
|
403
|
+
'weather.thunderstorm_hail': 'Thunderstorm + hail',
|
|
404
|
+
'weather.thunderstorm_heavy_hail': 'Thunderstorm + heavy hail',
|
|
405
|
+
'weather.unknown': 'Unknown',
|
|
406
|
+
'weather.humidity': 'Humidity',
|
|
407
|
+
'weather.wind': 'Wind',
|
|
408
|
+
// ── News Categories ─────────────────────────────────────────────────────
|
|
409
|
+
'news.all': 'All',
|
|
410
|
+
// The BREAKING strip. Only ever shown for a story the desk actually marked
|
|
411
|
+
// breaking — a banner that is always on has stopped meaning anything.
|
|
412
|
+
'news.breaking': 'Breaking',
|
|
413
|
+
'news.ai_agents': 'AI Agents',
|
|
414
|
+
'news.models': 'Models',
|
|
415
|
+
'news.dev_tools': 'Dev Tools',
|
|
416
|
+
'news.open_source': 'Open Source',
|
|
417
|
+
'news.education': 'Education',
|
|
418
|
+
'news.productivity': 'Productivity',
|
|
419
|
+
'news.companions': 'Companions',
|
|
420
|
+
'news.health': 'Health',
|
|
421
|
+
'news.enterprise': 'Enterprise',
|
|
422
|
+
'news.industry': 'Industry',
|
|
423
|
+
'news.min_read': '{n} min read',
|
|
424
|
+
// Article desk categories. formatCategoryLabel() already looks up
|
|
425
|
+
// `news.<slug with _>` first — these keys were simply missing, so it fell
|
|
426
|
+
// through to the hardcoded English label every time.
|
|
427
|
+
'news.world': 'World News',
|
|
428
|
+
'news.ai': 'AI',
|
|
429
|
+
'news.technology': 'Technology',
|
|
430
|
+
'news.security_privacy': 'Security & Privacy',
|
|
431
|
+
'news.business': 'Business & Economy',
|
|
432
|
+
'news.science': 'Science',
|
|
433
|
+
'news.food': 'Food & Nutrition',
|
|
434
|
+
'news.sport': 'Sport',
|
|
435
|
+
// ── Chat ────────────────────────────────────────────────────────────────
|
|
436
|
+
'dash.chat.welcome': "Hey! I'm Ava, your AI assistant. Ask me anything, plan a feature, debug an issue, or just chat. I'm here for you.",
|
|
437
|
+
'dash.chat.fresh': 'Fresh conversation started. What would you like to do?',
|
|
438
|
+
'dash.chat.local_not_ready': 'Local engine not ready. Wait for sidecar to start or switch to Cloud mode.',
|
|
439
|
+
'dash.chat.not_connected': 'Not connected to platform. Connect your account or switch to Local mode.',
|
|
440
|
+
'dash.chat.no_stream': 'No response stream available.',
|
|
441
|
+
'dash.chat.cancelled': '(Cancelled)',
|
|
442
|
+
'dash.chat.stopped': '(Stopped)',
|
|
443
|
+
'dash.chat.image_attached': '(image attached)',
|
|
444
|
+
'dash.chat.new_chat': 'New Chat',
|
|
445
|
+
'dash.chat.complete_task': 'Complete task',
|
|
446
|
+
'dash.chat.copy': 'Copy message',
|
|
447
|
+
'dash.chat.toggle_tasks': 'Toggle Tasks Panel',
|
|
448
|
+
'dash.chat.cloud': 'Cloud',
|
|
449
|
+
'dash.chat.local': 'Local',
|
|
450
|
+
'dash.chat.both': 'Both',
|
|
451
|
+
'dash.chat.tab.daily': 'Daily',
|
|
452
|
+
// Was "Briefing", which told you nothing. This is where the news lives — say so.
|
|
453
|
+
'dash.chat.tab.briefing': 'Newsroom',
|
|
454
|
+
'dash.chat.tab.reflect': 'Reflect',
|
|
455
|
+
'dash.chat.tokens': 'tokens',
|
|
456
|
+
'dash.chat.no_keys': 'Add a provider key in the sidebar to start chatting',
|
|
457
|
+
'dash.chat.no_credits': 'No tokens remaining. Top up or switch to BYOK.',
|
|
458
|
+
'dash.chat.connect_or_byok': 'Connect your account or add a BYOK key to get started',
|
|
459
|
+
'dash.chat.copied': 'Copied',
|
|
460
|
+
'dash.chat.you': 'You',
|
|
461
|
+
'dash.chat.ava': 'Ava',
|
|
462
|
+
'dash.chat.error': 'Error',
|
|
463
|
+
'dash.chat.unknown_error': 'Unknown error',
|
|
464
|
+
'dash.chat.untitled': 'Untitled',
|
|
465
|
+
'dash.chat.sidecar_error': 'Sidecar error: {msg}',
|
|
466
|
+
'dash.chat.connection_error': 'Connection error: {msg}',
|
|
467
|
+
'dash.chat.platform': 'Platform',
|
|
468
|
+
'dash.chat.your_api_keys': 'Your API Keys',
|
|
469
|
+
'dash.chat.connect_for_cloud': 'Connect your account to enable Cloud mode',
|
|
470
|
+
'dash.chat.local_mode_desc': 'Local mode — full 110+ tools, runs on your machine',
|
|
471
|
+
'dash.chat.cloud_mode_desc': 'Cloud mode — chat via platform API',
|
|
472
|
+
'dash.chat.tokens_used': '{n} tokens used',
|
|
473
|
+
'dash.chat.context': 'Context: {n}%',
|
|
474
|
+
'dash.chat.tool_running': 'running...',
|
|
475
|
+
'dash.chat.tool_done': 'done',
|
|
476
|
+
'dash.chat.tool_error': 'error',
|
|
477
|
+
'dash.chat.tasks_progress': 'Tasks ({done}/{total})',
|
|
478
|
+
'dash.chat.generated_image': 'Generated image',
|
|
479
|
+
'dash.chat.download': 'Download',
|
|
480
|
+
'dash.chat.open': 'Open',
|
|
481
|
+
'dash.chat.ava_wants_to_run': 'Ava wants to run',
|
|
482
|
+
'dash.chat.view_arguments': 'View arguments',
|
|
483
|
+
'dash.chat.type_your_answer': 'Type your answer...',
|
|
484
|
+
'dash.chat.comment_optional': 'Comment (optional)...',
|
|
485
|
+
'dash.chat.switch_mode': 'Switch mode',
|
|
486
|
+
'dash.chat.starting_local': 'Starting local engine...',
|
|
487
|
+
'dash.chat.attach_file': 'Attach image or file',
|
|
488
|
+
'dash.chat.send_enter': 'Send (Enter)',
|
|
489
|
+
'dash.chat.add_key_or_connect': 'Add a provider key or connect your account',
|
|
490
|
+
'dash.chat.inactive_no_keys': 'Add a provider key in the sidebar or connect your account to start chatting.',
|
|
491
|
+
'dash.chat.inactive_no_cloud': 'Connect your platform account to use Cloud mode.',
|
|
492
|
+
// ── Chat Modes ──────────────────────────────────────────────────────────
|
|
493
|
+
'mode.work': 'Code',
|
|
494
|
+
'mode.plan': 'Plan',
|
|
495
|
+
'mode.chat': 'Chat',
|
|
496
|
+
'mode.teach': 'Teach',
|
|
497
|
+
'mode.security': 'Security',
|
|
498
|
+
'mode.brainstorm': 'Brainstorm',
|
|
499
|
+
'mode.write': 'Write',
|
|
500
|
+
'mode.desktop': 'Desktop Automation',
|
|
501
|
+
'mode.work.placeholder': 'Build something amazing...',
|
|
502
|
+
'mode.plan.placeholder': 'Plan an architecture, feature, or strategy...',
|
|
503
|
+
'mode.chat.placeholder': 'Just chat with Ava...',
|
|
504
|
+
'mode.teach.placeholder': 'What do you want to learn?',
|
|
505
|
+
'mode.security.placeholder': 'Describe what to audit...',
|
|
506
|
+
'mode.brainstorm.placeholder': 'Throw an idea at me...',
|
|
507
|
+
'mode.write.placeholder': 'What would you like to write?',
|
|
508
|
+
'mode.desktop.placeholder': 'Open Notepad, launch Chrome, control your screen...',
|
|
509
|
+
// ── Memory Page ─────────────────────────────────────────────────────────
|
|
510
|
+
'dash.memory.title': 'Memory',
|
|
511
|
+
'dash.memory.subtitle': 'Everything Ava remembers about you and your projects.',
|
|
512
|
+
'dash.memory.total': 'Total Memories',
|
|
513
|
+
'dash.memory.last_saved': 'Last saved',
|
|
514
|
+
'dash.memory.global': 'Global',
|
|
515
|
+
'dash.memory.project': 'Project',
|
|
516
|
+
'dash.memory.categories': 'Categories',
|
|
517
|
+
'dash.memory.search': 'Search memories...',
|
|
518
|
+
'dash.memory.cat.pattern': 'pattern',
|
|
519
|
+
'dash.memory.cat.preference': 'preference',
|
|
520
|
+
'dash.memory.cat.architecture': 'architecture',
|
|
521
|
+
'dash.memory.cat.bug_fix': 'bug-fix',
|
|
522
|
+
'dash.memory.cat.convention': 'convention',
|
|
523
|
+
'dash.memory.cat.decision': 'decision',
|
|
524
|
+
'dash.memory.cat.general': 'general',
|
|
525
|
+
'dash.memory.all': 'All',
|
|
526
|
+
'dash.memory.no_match': 'No memories match your filters.',
|
|
527
|
+
'dash.memory.confirm': 'Confirm',
|
|
528
|
+
'dash.memory.cancel': 'Cancel',
|
|
529
|
+
'dash.memory.delete_title': 'Delete memory',
|
|
530
|
+
'dash.memory.created': 'Created {date}',
|
|
531
|
+
'dash.memory.updated': 'Updated {date}',
|
|
532
|
+
'dash.memory.recalled': 'Recalled {n}x',
|
|
533
|
+
'dash.memory.count_one': '{n} memory',
|
|
534
|
+
'dash.memory.count_other': '{n} memories',
|
|
535
|
+
'dash.memory.matching': 'matching "{query}"',
|
|
536
|
+
'dash.memory.in_category': 'in {category}',
|
|
537
|
+
// ── Tasks Page ──────────────────────────────────────────────────────────
|
|
538
|
+
'dash.tasks.title': 'Tasks',
|
|
539
|
+
'dash.tasks.subtitle': 'Track your work and stay organised.',
|
|
540
|
+
'dash.tasks.active': 'Active',
|
|
541
|
+
'dash.tasks.today': 'Today',
|
|
542
|
+
'dash.tasks.overdue': 'Overdue',
|
|
543
|
+
'dash.tasks.completed': 'Completed',
|
|
544
|
+
'dash.tasks.add': 'Add task...',
|
|
545
|
+
'dash.tasks.new_task': 'New Task',
|
|
546
|
+
'dash.tasks.edit_task': 'Edit Task',
|
|
547
|
+
'dash.tasks.add_task': 'Add Task',
|
|
548
|
+
'dash.tasks.save_changes': 'Save Changes',
|
|
549
|
+
'dash.tasks.cancel': 'Cancel',
|
|
550
|
+
'dash.tasks.delete': 'Delete',
|
|
551
|
+
'dash.tasks.archive': 'Archive',
|
|
552
|
+
'dash.tasks.restore': 'Restore',
|
|
553
|
+
'dash.tasks.edit': 'Edit',
|
|
554
|
+
'dash.tasks.complete_task': 'Complete task',
|
|
555
|
+
'dash.tasks.clear_completed': 'Clear completed',
|
|
556
|
+
'dash.tasks.title_placeholder': 'Task title...',
|
|
557
|
+
'dash.tasks.desc_placeholder': 'Description (optional)...',
|
|
558
|
+
'dash.tasks.label_priority': 'Priority',
|
|
559
|
+
'dash.tasks.label_category': 'Category',
|
|
560
|
+
'dash.tasks.label_due_date': 'Due Date',
|
|
561
|
+
'dash.tasks.label_recurrence': 'Recurrence',
|
|
562
|
+
'dash.tasks.priority_low': 'Low',
|
|
563
|
+
'dash.tasks.priority_medium': 'Medium',
|
|
564
|
+
'dash.tasks.priority_high': 'High',
|
|
565
|
+
'dash.tasks.priority_urgent': 'Urgent',
|
|
566
|
+
'dash.tasks.cat_coding': 'Coding',
|
|
567
|
+
'dash.tasks.cat_personal': 'Personal',
|
|
568
|
+
'dash.tasks.cat_admin': 'Admin',
|
|
569
|
+
'dash.tasks.cat_meeting': 'Meeting',
|
|
570
|
+
'dash.tasks.cat_custom': 'Custom',
|
|
571
|
+
'dash.tasks.recurrence_none': 'None',
|
|
572
|
+
'dash.tasks.recurrence_daily': 'Daily',
|
|
573
|
+
'dash.tasks.recurrence_weekly': 'Weekly',
|
|
574
|
+
'dash.tasks.filter_all': 'All',
|
|
575
|
+
'dash.tasks.tab_active': 'Active',
|
|
576
|
+
'dash.tasks.tab_done': 'Done',
|
|
577
|
+
'dash.tasks.tab_archived': 'Archived',
|
|
578
|
+
'dash.tasks.all_complete': 'All Tasks Complete',
|
|
579
|
+
'dash.tasks.ava_progress': "Ava's Progress",
|
|
580
|
+
'dash.tasks.x_completed': '{done}/{total} completed',
|
|
581
|
+
'dash.tasks.n_completed': '{n} completed',
|
|
582
|
+
'dash.tasks.section_label': '{tab} tasks',
|
|
583
|
+
'dash.tasks.count_label': '{n} task | {n} tasks',
|
|
584
|
+
'dash.tasks.empty_search': 'No tasks match your search.',
|
|
585
|
+
'dash.tasks.empty_active': 'No active tasks. Create one to get started!',
|
|
586
|
+
'dash.tasks.empty_tab': 'No {tab} tasks.',
|
|
587
|
+
'dash.tasks.overdue_prefix': 'Overdue: ',
|
|
588
|
+
'dash.tasks.due_today': 'Today',
|
|
589
|
+
'dash.tasks.done_on': 'Done {date}',
|
|
590
|
+
'dash.tasks.repeats': 'Repeats {recurrence}',
|
|
591
|
+
'dash.tasks.delete_user_entry': 'Delete your entry',
|
|
592
|
+
'dash.tasks.cat.work': 'Work',
|
|
593
|
+
'dash.tasks.cat.personal': 'Personal',
|
|
594
|
+
'dash.tasks.cat.learning': 'Learning',
|
|
595
|
+
'dash.tasks.cat.project': 'Project',
|
|
596
|
+
'dash.tasks.empty_today': 'No tasks due today.',
|
|
597
|
+
'dash.tasks.empty_overdue': 'No overdue tasks. Nice work!',
|
|
598
|
+
'dash.tasks.empty_completed': 'No completed tasks yet.',
|
|
599
|
+
'dash.tasks.delete_task_title': 'Delete task',
|
|
600
|
+
// ── Journal Page ────────────────────────────────────────────────────────
|
|
601
|
+
'dash.journal.title': 'Journal',
|
|
602
|
+
'dash.journal.subtitle': 'Daily reflections — yours and Ava\'s.',
|
|
603
|
+
'dash.journal.your_entries': 'Your Entries',
|
|
604
|
+
'dash.journal.ava_entries': "Ava's Entries",
|
|
605
|
+
'dash.journal.write': 'Write an entry...',
|
|
606
|
+
'dash.journal.no_entries': 'No entries for this day.',
|
|
607
|
+
'dash.journal.user_journal': "{name}'s Journal",
|
|
608
|
+
'dash.journal.your_journal': 'Your Journal',
|
|
609
|
+
'dash.journal.delete_your_entry': 'Delete your entry?',
|
|
610
|
+
'dash.journal.delete_ava_entry': "Delete Ava's entry?",
|
|
611
|
+
'dash.journal.yes': 'Yes',
|
|
612
|
+
'dash.journal.no': 'No',
|
|
613
|
+
'dash.journal.writing_for': 'Writing entry for',
|
|
614
|
+
'dash.journal.mood': 'Mood:',
|
|
615
|
+
'dash.journal.mood_rough': 'Rough',
|
|
616
|
+
'dash.journal.mood_low': 'Low',
|
|
617
|
+
'dash.journal.mood_okay': 'Okay',
|
|
618
|
+
'dash.journal.mood_good': 'Good',
|
|
619
|
+
'dash.journal.mood_great': 'Great',
|
|
620
|
+
'dash.journal.save_entry': 'Save Entry',
|
|
621
|
+
'dash.journal.cancel': 'Cancel',
|
|
622
|
+
'dash.journal.edit_entry': 'Edit Entry',
|
|
623
|
+
'dash.journal.write_entry': 'Write Entry',
|
|
624
|
+
'dash.journal.ava_session_note': 'Ava writes her thoughts at the end of sessions',
|
|
625
|
+
'dash.journal.prev': 'Prev',
|
|
626
|
+
'dash.journal.next': 'Next',
|
|
627
|
+
'dash.journal.today': 'Today',
|
|
628
|
+
'dash.journal.saving': 'Saving...',
|
|
629
|
+
'dash.journal.saved': 'Saved',
|
|
630
|
+
'dash.journal.ava_no_entry': "Ava hasn't written anything for this day",
|
|
631
|
+
'dash.journal.your_entry_legend': 'Your entry',
|
|
632
|
+
'dash.journal.ava_entry_legend': "Ava's entry",
|
|
633
|
+
'dash.journal.day_su': 'Su',
|
|
634
|
+
'dash.journal.day_mo': 'Mo',
|
|
635
|
+
'dash.journal.day_tu': 'Tu',
|
|
636
|
+
'dash.journal.day_we': 'We',
|
|
637
|
+
'dash.journal.day_th': 'Th',
|
|
638
|
+
'dash.journal.day_fr': 'Fr',
|
|
639
|
+
'dash.journal.day_sa': 'Sa',
|
|
640
|
+
'dash.journal.all_kinds': 'All',
|
|
641
|
+
'dash.journal.filter_you': 'You',
|
|
642
|
+
'dash.journal.filter_ava': 'Ava',
|
|
643
|
+
'dash.journal.ava_label': 'Ava',
|
|
644
|
+
'dash.journal.search_placeholder': 'Search journal…',
|
|
645
|
+
'dash.journal.title_placeholder': 'Title (optional)',
|
|
646
|
+
'dash.journal.tags_placeholder': 'Tags, comma separated (optional)',
|
|
647
|
+
'dash.journal.delete': 'Delete',
|
|
648
|
+
'dash.journal.delete_confirm': 'Delete this entry?',
|
|
649
|
+
'dash.journal.results': 'results',
|
|
650
|
+
'dash.journal.clear_search': 'Clear',
|
|
651
|
+
'dash.journal.no_results': 'No matching entries.',
|
|
652
|
+
'dash.journal.manage_kinds': 'Manage kinds',
|
|
653
|
+
'dash.journal.kind_name': 'New kind name…',
|
|
654
|
+
'dash.journal.add_kind': 'Add kind',
|
|
655
|
+
'dash.journal.tracks_mood': 'mood',
|
|
656
|
+
'dash.journal.tracks_mood_hint': 'Track a mood for this kind',
|
|
657
|
+
'dash.journal.builtin': 'built-in',
|
|
658
|
+
'dash.journal.year_view': 'Year',
|
|
659
|
+
// ── Onboarding / Welcome ─────────────────────────────────────────────────
|
|
660
|
+
'onboarding.identity.title': "Hi, I'm Ava.",
|
|
661
|
+
'onboarding.identity.body': "A living assistant who works alongside you — to build, write, learn, create and look after the everyday. Let's make this yours.",
|
|
662
|
+
'onboarding.identity.cta': "Let's begin",
|
|
663
|
+
'onboarding.path.title': 'What brings you to Ava?',
|
|
664
|
+
'onboarding.path.subtitle': "Pick what fits today — you'll see everything else too. Nothing's locked.",
|
|
665
|
+
'onboarding.path.build.label': 'Build / Code',
|
|
666
|
+
'onboarding.path.build.blurb': 'Ship features, plan architecture, audit for security.',
|
|
667
|
+
'onboarding.path.write.label': 'Write',
|
|
668
|
+
'onboarding.path.write.blurb': 'Draft, edit and shape documents — not code.',
|
|
669
|
+
'onboarding.path.learn.label': 'Learn',
|
|
670
|
+
'onboarding.path.learn.blurb': 'Learn anything, at your pace, with a tutor who quizzes you.',
|
|
671
|
+
'onboarding.path.wellbeing.label': 'Wellbeing',
|
|
672
|
+
'onboarding.path.wellbeing.blurb': 'Track fitness, plan meals, check in on how you are.',
|
|
673
|
+
'onboarding.path.reflect.label': 'Reflect',
|
|
674
|
+
'onboarding.path.reflect.blurb': 'Journal, remember what matters, think out loud.',
|
|
675
|
+
'onboarding.path.explore.label': 'Just exploring',
|
|
676
|
+
'onboarding.path.explore.blurb': 'Show me a little of everything.',
|
|
677
|
+
'onboarding.tailored.heading': "Here's what that looks like",
|
|
678
|
+
'onboarding.tailored.build.ship.title': 'Ship code',
|
|
679
|
+
'onboarding.tailored.build.ship.example': 'add a cancel button to the upload form',
|
|
680
|
+
'onboarding.tailored.build.plan.title': 'Think it through first',
|
|
681
|
+
'onboarding.tailored.build.plan.example': 'should I split this into a service?',
|
|
682
|
+
'onboarding.tailored.build.audit.title': 'Stay secure',
|
|
683
|
+
'onboarding.tailored.build.audit.example': 'audit this API for injection risks',
|
|
684
|
+
'onboarding.tailored.write.draft.title': 'Draft anything',
|
|
685
|
+
'onboarding.tailored.write.draft.example': 'draft a project proposal for a new app',
|
|
686
|
+
'onboarding.tailored.write.shape.title': 'Polish it into a real document',
|
|
687
|
+
'onboarding.tailored.write.shape.example': 'turn these notes into a one-pager',
|
|
688
|
+
'onboarding.tailored.write.brainstorm.title': 'Find the angle',
|
|
689
|
+
'onboarding.tailored.write.brainstorm.example': 'what should this essay actually argue?',
|
|
690
|
+
'onboarding.tailored.learn.curriculum.title': 'A tutor, not a textbook',
|
|
691
|
+
'onboarding.tailored.learn.curriculum.example': 'teach me Spanish from zero',
|
|
692
|
+
'onboarding.tailored.learn.pace.title': 'At your pace',
|
|
693
|
+
'onboarding.tailored.learn.pace.example': 'explain this like I have ten minutes',
|
|
694
|
+
'onboarding.tailored.learn.quiz.title': 'Make it stick',
|
|
695
|
+
'onboarding.tailored.learn.quiz.example': 'quiz me on what we just covered',
|
|
696
|
+
'onboarding.tailored.wellbeing.fitness.title': 'Move how you want',
|
|
697
|
+
'onboarding.tailored.wellbeing.fitness.example': 'a 20-minute home workout, no equipment',
|
|
698
|
+
'onboarding.tailored.wellbeing.recipes.title': 'Eat well',
|
|
699
|
+
'onboarding.tailored.wellbeing.recipes.example': 'a week of easy high-protein dinners',
|
|
700
|
+
'onboarding.tailored.wellbeing.checkin.title': 'Check in',
|
|
701
|
+
'onboarding.tailored.wellbeing.checkin.example': "I'm low on energy lately — any ideas?",
|
|
702
|
+
'onboarding.tailored.reflect.journal.title': 'A journal that listens',
|
|
703
|
+
'onboarding.tailored.reflect.journal.example': 'help me write today down',
|
|
704
|
+
'onboarding.tailored.reflect.remember.title': 'Remembers what matters',
|
|
705
|
+
'onboarding.tailored.reflect.remember.example': 'what was on my mind last week?',
|
|
706
|
+
'onboarding.tailored.reflect.think.title': 'Think out loud',
|
|
707
|
+
'onboarding.tailored.reflect.think.example': "I'm weighing up a big decision",
|
|
708
|
+
'onboarding.tailored.explore.everything.title': 'A bit of everything',
|
|
709
|
+
'onboarding.tailored.explore.everything.example': 'what can you actually do?',
|
|
710
|
+
'onboarding.tailored.explore.modes.title': 'Seven mindsets',
|
|
711
|
+
'onboarding.tailored.explore.modes.example': 'show me the difference between modes',
|
|
712
|
+
'onboarding.tailored.explore.yours.title': 'Yours to shape',
|
|
713
|
+
'onboarding.tailored.explore.yours.example': 'remember that I prefer short answers',
|
|
714
|
+
'onboarding.breadth.title': "And there's so much more I can do.",
|
|
715
|
+
'onboarding.breadth.subtitle': 'Whatever you came for, the rest is here when you want it.',
|
|
716
|
+
'onboarding.breadth.group.modes': 'Seven mindsets',
|
|
717
|
+
'onboarding.breadth.group.everyday': 'Your everyday',
|
|
718
|
+
'onboarding.breadth.group.create': 'Create',
|
|
719
|
+
'onboarding.breadth.group.stays': 'Stays with you',
|
|
720
|
+
'onboarding.breadth.group.desktop': 'On your desktop',
|
|
721
|
+
'onboarding.feature.health.label': 'Health & fitness',
|
|
722
|
+
'onboarding.feature.health.blurb': 'Workouts and plans that fit your life.',
|
|
723
|
+
'onboarding.feature.recipes.label': 'Recipes & meals',
|
|
724
|
+
'onboarding.feature.recipes.blurb': 'Meal plans and recipes for how you eat.',
|
|
725
|
+
'onboarding.feature.learning.label': 'Learning paths',
|
|
726
|
+
'onboarding.feature.learning.blurb': 'Interactive lessons that grade your answers.',
|
|
727
|
+
'onboarding.feature.journal.label': 'Journal',
|
|
728
|
+
'onboarding.feature.journal.blurb': 'A private, local journal — yours alone.',
|
|
729
|
+
'onboarding.feature.images.label': 'Images',
|
|
730
|
+
'onboarding.feature.images.blurb': 'Generate art and visuals from a prompt.',
|
|
731
|
+
'onboarding.feature.music.label': 'Music',
|
|
732
|
+
'onboarding.feature.music.blurb': 'Compose tracks and soundscapes.',
|
|
733
|
+
'onboarding.feature.video.label': 'Video',
|
|
734
|
+
'onboarding.feature.video.blurb': 'Bring ideas to life in motion.',
|
|
735
|
+
'onboarding.feature.memory.label': 'Memory',
|
|
736
|
+
'onboarding.feature.memory.blurb': 'She learns your preferences over time.',
|
|
737
|
+
'onboarding.feature.tasks.label': 'Tasks',
|
|
738
|
+
'onboarding.feature.tasks.blurb': 'Keep track of what needs doing.',
|
|
739
|
+
'onboarding.feature.privacy.label': 'Private by default',
|
|
740
|
+
'onboarding.feature.privacy.blurb': 'Local-first. Nothing leaves unless you sync it.',
|
|
741
|
+
'onboarding.feature.desktop.label': 'Desktop automation',
|
|
742
|
+
'onboarding.feature.desktop.blurb': 'She can see your screen and drive any app — opt-in.',
|
|
743
|
+
'onboarding.mode.work.label': 'Code',
|
|
744
|
+
'onboarding.mode.work.example': 'add a cancel button to the upload form',
|
|
745
|
+
'onboarding.mode.write.label': 'Write',
|
|
746
|
+
'onboarding.mode.write.example': 'draft a project proposal',
|
|
747
|
+
'onboarding.mode.plan.label': 'Plan',
|
|
748
|
+
'onboarding.mode.plan.example': 'should I extract this into a service?',
|
|
749
|
+
'onboarding.mode.chat.label': 'Chat',
|
|
750
|
+
'onboarding.mode.chat.example': 'how do I feel about this launch date?',
|
|
751
|
+
'onboarding.mode.teach.label': 'Teach',
|
|
752
|
+
'onboarding.mode.teach.example': 'teach me Rust async from zero',
|
|
753
|
+
'onboarding.mode.security.label': 'Security',
|
|
754
|
+
'onboarding.mode.security.example': 'audit this API for injection risks',
|
|
755
|
+
'onboarding.mode.brainstorm.label': 'Brainstorm',
|
|
756
|
+
'onboarding.mode.brainstorm.example': 'what should I build with two free weeks?',
|
|
757
|
+
'onboarding.connect.title': 'Make it yours.',
|
|
758
|
+
'onboarding.connect.subtitle': 'Optional — Ava works fully on your machine without an account.',
|
|
759
|
+
'onboarding.connect.body': 'Sign in for free monthly credits, or bring your own key. Either way, your data stays on your machine unless you choose to sync.',
|
|
760
|
+
'onboarding.connect.skip': 'Maybe later',
|
|
761
|
+
'onboarding.consent.title': 'Before we begin.',
|
|
762
|
+
'onboarding.consent.body': 'Ava is built by Augmented Value Acceleration Ltd.',
|
|
763
|
+
'onboarding.consent.local': 'Your data is stored locally on your machine by default.',
|
|
764
|
+
'onboarding.consent.sync': 'Cloud sync is opt-in only — never automatic.',
|
|
765
|
+
'onboarding.consent.train': 'Your work is never used to train AI models.',
|
|
766
|
+
'onboarding.consent.keys': 'API keys are stored securely and never sent to our servers.',
|
|
767
|
+
'onboarding.consent.track': 'No tracking, no analytics, no ads.',
|
|
768
|
+
'onboarding.consent.agree': 'I have read and agree to the Terms and Privacy Policy.',
|
|
769
|
+
'onboarding.desktop.title': 'Ava has hands here.',
|
|
770
|
+
'onboarding.desktop.body': "In the IDE she can drive your desktop — the one thing the editor extension can't do.",
|
|
771
|
+
'onboarding.desktop.see.title': 'See your screen',
|
|
772
|
+
'onboarding.desktop.see.body': "Reads what's on screen to help in context.",
|
|
773
|
+
'onboarding.desktop.drive.title': 'Drive any app',
|
|
774
|
+
'onboarding.desktop.drive.body': 'Clicks and types like you would.',
|
|
775
|
+
'onboarding.desktop.browse.title': 'Run a browser',
|
|
776
|
+
'onboarding.desktop.browse.body': 'Researches and fills things in for you.',
|
|
777
|
+
'onboarding.desktop.control.title': 'You stay in charge',
|
|
778
|
+
'onboarding.desktop.control.body': 'Off by default. Kill-switch one hotkey away.',
|
|
779
|
+
'onboarding.desktop.note': 'Opt in when you want it, from the chat header.',
|
|
780
|
+
'onboarding.hours.title': 'When do you work?',
|
|
781
|
+
'onboarding.hours.body': "Tell Ava your hours and she'll never nudge you to stop during them.",
|
|
782
|
+
'onboarding.hours.start': 'Start',
|
|
783
|
+
'onboarding.hours.end': 'End',
|
|
784
|
+
'onboarding.hours.note': 'Change this any time from the Command Centre clock.',
|
|
785
|
+
'onboarding.ready.title': "We're ready.",
|
|
786
|
+
'onboarding.ready.body': "I've set you up for {path}. Switch mindset any time with the mode pill.",
|
|
787
|
+
'onboarding.ready.go': "Let's go",
|
|
788
|
+
'onboarding.try_this': 'Try this',
|
|
789
|
+
'onboarding.skip': 'Skip',
|
|
790
|
+
'onboarding.back': 'Back',
|
|
791
|
+
'onboarding.next': 'Next',
|
|
792
|
+
'onboarding.agree': 'I agree',
|
|
793
|
+
'onboarding.step_of': 'Step {current} of {total}',
|
|
794
|
+
'onboarding.replay': 'Replay welcome tour',
|
|
795
|
+
'onboarding.show_on_startup': 'Show on startup',
|
|
796
|
+
'onboarding.ready.docs': 'Docs',
|
|
797
|
+
'onboarding.ready.docs_desc': 'Every mode, every tool',
|
|
798
|
+
'onboarding.ready.create': 'Create',
|
|
799
|
+
'onboarding.ready.create_desc': 'Images, music, video',
|
|
800
|
+
'onboarding.ready.settings': 'Settings',
|
|
801
|
+
'onboarding.ready.settings_desc': 'Account, keys, sync',
|
|
802
|
+
// ── Learning Page ───────────────────────────────────────────────────────
|
|
803
|
+
'dash.learning.title': 'Learning',
|
|
804
|
+
'dash.learning.subtitle': 'Your personalised learning paths.',
|
|
805
|
+
'dash.learning.total_curricula': 'Total Curricula',
|
|
806
|
+
'dash.learning.in_progress': 'In Progress',
|
|
807
|
+
'dash.learning.completed': 'Completed',
|
|
808
|
+
'dash.learning.total_lessons': 'Total Lessons',
|
|
809
|
+
'dash.learning.how_it_works': 'How it works',
|
|
810
|
+
'dash.learning.step1': 'Tell Ava what you want to learn',
|
|
811
|
+
'dash.learning.step1_desc': "Say 'I want to learn Rust' or 'Teach me system design' in the chat.",
|
|
812
|
+
'dash.learning.step2': 'Ava assesses your level',
|
|
813
|
+
'dash.learning.step2_desc': "She'll ask about your background, goals, and available time.",
|
|
814
|
+
'dash.learning.step3': 'She builds your curriculum',
|
|
815
|
+
'dash.learning.step3_desc': 'Structured modules with concepts, exercises, projects, and quizzes.',
|
|
816
|
+
'dash.learning.step4': 'Learn at your pace',
|
|
817
|
+
'dash.learning.step4_desc': 'Tell Ava when you\'re ready. She teaches, quizzes, and adapts.',
|
|
818
|
+
'dash.learning.empty': 'Ask Ava to teach you something — your learning paths will appear here.',
|
|
819
|
+
'dash.learning.modules': 'modules',
|
|
820
|
+
'dash.learning.lessons': 'lessons',
|
|
821
|
+
'dash.learning.complete': '% complete',
|
|
822
|
+
'dash.learning.back': 'Back to Learning',
|
|
823
|
+
'dash.learning.progress': 'Progress',
|
|
824
|
+
'dash.learning.level_beginner': 'beginner',
|
|
825
|
+
'dash.learning.level_intermediate': 'intermediate',
|
|
826
|
+
'dash.learning.level_advanced': 'advanced',
|
|
827
|
+
'dash.learning.level_mixed': 'mixed',
|
|
828
|
+
'dash.learning.pct_complete': '{pct}% complete',
|
|
829
|
+
// ── Creative Studio ────────────────────────────────────────────────────
|
|
830
|
+
'dash.nav.creative_studio': 'Creative Studio',
|
|
831
|
+
'dash.nav.creative_studio_desc': 'Images, music, video, voice',
|
|
832
|
+
// ── Learning Library Page ──────────────────────────────────────────────
|
|
833
|
+
'dash.nav.learning_library': 'Learning Library',
|
|
834
|
+
'dash.learning_library.title': 'Learning Library',
|
|
835
|
+
'dash.learning_library.subtitle': 'Curated and community learning paths. Free for everyone.',
|
|
836
|
+
'dash.learning_library.browse': 'Browse Library',
|
|
837
|
+
'dash.learning_library.my_learning': 'My Learning',
|
|
838
|
+
'dash.learning_library.start_learning': 'Start Learning',
|
|
839
|
+
'dash.learning_library.starting': 'Starting...',
|
|
840
|
+
'dash.learning_library.search': 'Search paths...',
|
|
841
|
+
'learning_library.your_rating': 'Your rating',
|
|
842
|
+
// Reason codes shown when a course is rated 3 or below. Short labels, not
|
|
843
|
+
// sentences — they are chips, and a chip that wraps is a chip nobody taps.
|
|
844
|
+
// Feedback reasons. Shown as chips when something is rated 3 or below, in
|
|
845
|
+
// the language of the thing being rated — "Too fast" is a course problem,
|
|
846
|
+
// "Didn't work" is a recipe problem, and no shared wording covers both
|
|
847
|
+
// without sounding like neither.
|
|
848
|
+
'feedback.rate_recipe': 'Rate this recipe',
|
|
849
|
+
'feedback.rate_exercise': 'Rate this exercise',
|
|
850
|
+
// Rating a curated plan. `doesnt_fit` is the complaint no existing code
|
|
851
|
+
// covered: a plan can be well built and still be wrong for your week, and
|
|
852
|
+
// that is why people abandon them without saying anything.
|
|
853
|
+
'feedback.rate_plan': 'Rate this plan',
|
|
854
|
+
'feedback.reason.doesnt_fit': "Didn't fit my week",
|
|
855
|
+
// Its own TAB in the health room, not a section inside another one. A tab
|
|
856
|
+
// is a standing statement that these exist; a section is scrolled past.
|
|
857
|
+
'health.browse.tab.starters': 'Ready-made',
|
|
858
|
+
// Choosing WHEN a ready-made plan lands, and on which days. A template is a
|
|
859
|
+
// sequence; without this it is laid down from today whatever today happens
|
|
860
|
+
// to be, so a three-session week started on a Wednesday runs Wed/Thu/Fri.
|
|
861
|
+
'health.starters.shape_summary': '{sessions} sessions over {days} days, {exercises} exercises in total.',
|
|
862
|
+
'health.starters.rest_seconds': '{seconds}s rest',
|
|
863
|
+
'health.starters.back_to_plan': 'Back to the plan',
|
|
864
|
+
'health.starters.session_n': 'Session {n}',
|
|
865
|
+
'health.starters.active_recovery': 'Active recovery',
|
|
866
|
+
'health.starters.runs_for': '{sessions} sessions across {days} days. The days you leave between them are rest.',
|
|
867
|
+
'health.starters.same_day': 'Two sessions are on the same day — move one.',
|
|
868
|
+
// Past covers completed AND archived — a plan you finished is equally not
|
|
869
|
+
// one you are doing, and the user's question is "what have I done".
|
|
870
|
+
'health.plans.tab.past': 'Past',
|
|
871
|
+
'health.plans.past_empty': 'Nothing here yet.',
|
|
872
|
+
'health.plans.past_hint': 'Plans you have finished or set aside. Set one back to active to pick it up again.',
|
|
873
|
+
'health.starters.when': 'Start',
|
|
874
|
+
'health.starters.when_today': 'Today',
|
|
875
|
+
'health.starters.when_tomorrow': 'Tomorrow',
|
|
876
|
+
'health.starters.when_next_monday': 'Next Monday',
|
|
877
|
+
'health.starters.on_days': 'Days you train',
|
|
878
|
+
'health.starters.on_days_hint': 'Sessions land on these days. From your profile — change it here just for this plan.',
|
|
879
|
+
'health.starters.no_days_hint': 'No days chosen — the plan runs day after day from the start date.',
|
|
880
|
+
'health.starters.lands_on': 'Starts {date}, {sessions} sessions over {days} days',
|
|
881
|
+
'health.starters.shelf_title': 'Ready-made plans',
|
|
882
|
+
'health.starters.shelf_hint': 'Built by coaches, free to start, yours to change.',
|
|
883
|
+
'health.starters.shelf_empty': 'No ready-made plans just now.',
|
|
884
|
+
'health.starters.started': '{count} started',
|
|
885
|
+
// NB: start_count is deliberately never shown. It orders the shelf and
|
|
886
|
+
// nothing else — the route that collects it says in as many words that it
|
|
887
|
+
// cannot become a vanity number. A rating is quality; a start count is
|
|
888
|
+
// popularity, and popularity is not what someone choosing a plan needs.
|
|
889
|
+
'feedback.reason.didnt_work': "Didn't work",
|
|
890
|
+
'feedback.reason.too_fiddly': 'Too fiddly',
|
|
891
|
+
'feedback.reason.timings_off': 'Timings were off',
|
|
892
|
+
'feedback.reason.seasoning': 'Tasted off',
|
|
893
|
+
'feedback.reason.too_hard': 'Too hard',
|
|
894
|
+
'feedback.reason.form_unclear': "Couldn't tell the form",
|
|
895
|
+
'feedback.reason.wrong_equipment': 'Equipment was wrong',
|
|
896
|
+
// The one that matters most: it is the code that should ever cause us to
|
|
897
|
+
// pull an exercise rather than merely note it.
|
|
898
|
+
'feedback.reason.unsafe': 'Felt unsafe',
|
|
899
|
+
'learning_library.reason_unclear': 'Unclear',
|
|
900
|
+
'learning_library.reason_too_fast': 'Too fast',
|
|
901
|
+
'learning_library.reason_too_easy': 'Too easy',
|
|
902
|
+
'learning_library.reason_wrong': 'Something wrong',
|
|
903
|
+
'learning_library.reason_translation': 'Bad translation',
|
|
904
|
+
'dash.learning_library.all_audiences': 'Anyone',
|
|
905
|
+
'dash.learning_library.all_levels': 'All levels',
|
|
906
|
+
'dash.learning_library.most_popular': 'Most Popular',
|
|
907
|
+
'dash.learning_library.newest': 'Newest',
|
|
908
|
+
'dash.learning_library.highest_rated': 'Highest Rated',
|
|
909
|
+
'dash.learning_library.curated': 'Curated by Ava',
|
|
910
|
+
'dash.learning_library.community': 'Community',
|
|
911
|
+
'dash.learning_library.learners': 'learners',
|
|
912
|
+
'dash.learning_library.modules': 'modules',
|
|
913
|
+
'dash.learning_library.lessons': 'lessons',
|
|
914
|
+
'dash.learning_library.what_you_learn': 'What you will learn',
|
|
915
|
+
'dash.learning_library.curriculum': 'Curriculum',
|
|
916
|
+
'dash.learning_library.prerequisites': 'Prerequisites',
|
|
917
|
+
'dash.learning_library.empty': 'No paths found.',
|
|
918
|
+
'dash.learning_library.empty_hint': 'Try a different search or ask Ava to create a custom path.',
|
|
919
|
+
'dash.learning_library.back': 'Back to Library',
|
|
920
|
+
// ── Library Page ────────────────────────────────────────────────────────
|
|
921
|
+
'dash.library.title': 'Library',
|
|
922
|
+
'dash.library.subtitle': 'Images, documents, and spreadsheets created by Ava',
|
|
923
|
+
'dash.library.all': 'All',
|
|
924
|
+
'dash.library.images': 'Images',
|
|
925
|
+
'dash.library.docs': 'Docs',
|
|
926
|
+
'dash.library.sheets': 'Sheets',
|
|
927
|
+
'dash.library.scanning': 'Scanning files...',
|
|
928
|
+
'dash.library.connect': 'Connect to view your Library',
|
|
929
|
+
'dash.library.empty': 'Your images, documents, and creations will appear here',
|
|
930
|
+
'dash.library.no_files': 'No files yet',
|
|
931
|
+
'dash.library.ask_ava': 'Ask Ava to create images, documents, or spreadsheets',
|
|
932
|
+
'dash.library.open': 'Open',
|
|
933
|
+
'dash.library.close': 'Close',
|
|
934
|
+
'dash.library.image': 'image',
|
|
935
|
+
'dash.library.document': 'document',
|
|
936
|
+
'dash.library.spreadsheet': 'spreadsheet',
|
|
937
|
+
// ── Personality Page ────────────────────────────────────────────────────
|
|
938
|
+
'dash.personality.title': 'Personality',
|
|
939
|
+
'dash.personality.subtitle': 'Design how Ava communicates with you.',
|
|
940
|
+
'dash.personality.name': 'Name',
|
|
941
|
+
'dash.personality.pronouns': 'Pronouns',
|
|
942
|
+
'dash.personality.tone': 'Tone',
|
|
943
|
+
'dash.personality.energy': 'Energy',
|
|
944
|
+
'dash.personality.style': 'Communication Style',
|
|
945
|
+
'dash.personality.pronouns.she': 'she / her',
|
|
946
|
+
'dash.personality.pronouns.he': 'he / him',
|
|
947
|
+
'dash.personality.pronouns.they': 'they / them',
|
|
948
|
+
'dash.personality.tone.warm': 'Warm',
|
|
949
|
+
'dash.personality.tone.warm_desc': 'Warm and encouraging — celebrates wins, genuinely cares',
|
|
950
|
+
'dash.personality.tone.direct': 'Direct',
|
|
951
|
+
'dash.personality.tone.direct_desc': 'Direct and no-nonsense — straight to the point',
|
|
952
|
+
'dash.personality.tone.playful': 'Playful',
|
|
953
|
+
'dash.personality.tone.playful_desc': 'Playful and witty — uses humour naturally',
|
|
954
|
+
'dash.personality.tone.professional': 'Professional',
|
|
955
|
+
'dash.personality.tone.professional_desc': 'Professional and polished — clear, authoritative',
|
|
956
|
+
'dash.personality.tone.dry': 'Dry Wit',
|
|
957
|
+
'dash.personality.tone.dry_desc': 'Dry wit — understated brilliance, bone dry humour',
|
|
958
|
+
'dash.personality.energy.calm': 'Calm',
|
|
959
|
+
'dash.personality.energy.calm_desc': 'Calm and steady — reassuring, never rushes',
|
|
960
|
+
'dash.personality.energy.enthusiastic': 'Enthusiastic',
|
|
961
|
+
'dash.personality.energy.enthusiastic_desc': 'Enthusiastic — gets excited when plans come together',
|
|
962
|
+
'dash.personality.energy.measured': 'Measured',
|
|
963
|
+
'dash.personality.energy.measured_desc': 'Measured and deliberate — weighs every word',
|
|
964
|
+
'dash.personality.energy.excitable': 'Excitable',
|
|
965
|
+
'dash.personality.energy.excitable_desc': 'Excitable — high energy, expressive, visibly excited',
|
|
966
|
+
'dash.personality.style.concise': 'Concise',
|
|
967
|
+
'dash.personality.style.concise_desc': 'Concise — sharp, no filler, one sentence over three',
|
|
968
|
+
'dash.personality.style.detailed': 'Detailed',
|
|
969
|
+
'dash.personality.style.detailed_desc': 'Detailed — thorough, explains the why',
|
|
970
|
+
'dash.personality.style.conversational': 'Conversational',
|
|
971
|
+
'dash.personality.style.conversational_desc': 'Conversational — natural, talks like a person',
|
|
972
|
+
'dash.personality.style.structured': 'Structured',
|
|
973
|
+
'dash.personality.style.structured_desc': 'Structured — headers, bullets, everything in its place',
|
|
974
|
+
'dash.personality.description': 'Description',
|
|
975
|
+
'dash.personality.description_placeholder': 'e.g. Like a patient older brother who\'s been coding for 20 years',
|
|
976
|
+
'dash.personality.description_hint': 'Optional. Describe the vibe in your own words and your AI will embody it.',
|
|
977
|
+
'dash.personality.preview': 'Preview',
|
|
978
|
+
'dash.personality.will_be': '{name} will be {tone}, {energy}, and {style}.',
|
|
979
|
+
'dash.personality.save': 'Save Personality',
|
|
980
|
+
'dash.personality.saved': 'Saved!',
|
|
981
|
+
'dash.personality.saving': 'Saving...',
|
|
982
|
+
'dash.personality.reset': 'Reset to Default',
|
|
983
|
+
// ── Cloud Sync Page ─────────────────────────────────────────────────────
|
|
984
|
+
'dash.sync.title': 'Cloud Sync',
|
|
985
|
+
'dash.sync.subtitle': 'Control what syncs to the platform. Local-first, always.',
|
|
986
|
+
'dash.sync.memory': 'Memory',
|
|
987
|
+
'dash.sync.memory_desc': 'Your memories synced to the platform',
|
|
988
|
+
'dash.sync.journal': 'Journal',
|
|
989
|
+
'dash.sync.journal_desc': 'Your journal and Ava\'s journal entries',
|
|
990
|
+
'dash.sync.tasks': 'Tasks',
|
|
991
|
+
'dash.sync.tasks_desc': 'Your task list synced to the platform',
|
|
992
|
+
'dash.sync.chat_history': 'Chat History',
|
|
993
|
+
'dash.sync.chat_history_desc': 'Conversation history synced to the platform',
|
|
994
|
+
'dash.sync.personality': 'Personality',
|
|
995
|
+
'dash.sync.personality_desc': 'Ava\'s personality settings',
|
|
996
|
+
'dash.sync.working_hours': 'Working Hours',
|
|
997
|
+
'dash.sync.working_hours_desc': 'Your schedule synced across devices',
|
|
998
|
+
'dash.sync.settings': 'Settings',
|
|
999
|
+
'dash.sync.settings_desc': 'Preferences, avatars, and config',
|
|
1000
|
+
'dash.sync.health_profile': 'Health Profile',
|
|
1001
|
+
'dash.sync.health_profile_desc': 'Body stats, goals, constraints, and schedule',
|
|
1002
|
+
'dash.sync.last_synced': 'Last synced: {time}',
|
|
1003
|
+
'dash.sync.never_synced': 'Never synced',
|
|
1004
|
+
'dash.sync.sync_now': 'Sync now',
|
|
1005
|
+
'dash.sync.connect_to_sync': 'Connect your account to enable cloud sync.',
|
|
1006
|
+
// ── Usage Page ──────────────────────────────────────────────────────────
|
|
1007
|
+
'dash.usage.title': 'Usage Analytics',
|
|
1008
|
+
'dash.usage.subtitle': 'Track token usage, costs, and model performance.',
|
|
1009
|
+
'dash.usage.session': 'This month',
|
|
1010
|
+
'dash.usage.all_time': 'All-Time',
|
|
1011
|
+
'dash.usage.input_tokens': 'Input Tokens',
|
|
1012
|
+
'dash.usage.output_tokens': 'Output Tokens',
|
|
1013
|
+
'dash.usage.total_tokens': 'Total Tokens',
|
|
1014
|
+
'dash.usage.messages': 'Messages',
|
|
1015
|
+
'dash.usage.tool_calls': 'Tool Calls',
|
|
1016
|
+
'dash.usage.est_cost': 'Est. Cost',
|
|
1017
|
+
'dash.usage.this_month': 'This Month',
|
|
1018
|
+
'dash.usage.last_month': 'Last Month',
|
|
1019
|
+
'dash.usage.avg_session': 'Avg / Session',
|
|
1020
|
+
'dash.usage.total_sessions': 'Total Sessions',
|
|
1021
|
+
'dash.usage.vs_last': 'vs last',
|
|
1022
|
+
'dash.usage.first_month': 'first month',
|
|
1023
|
+
'dash.usage.session_summary': 'This month',
|
|
1024
|
+
'dash.usage.duration': 'Duration',
|
|
1025
|
+
'dash.usage.since': 'Since {time}',
|
|
1026
|
+
'dash.usage.estimated_cost': 'Estimated Cost',
|
|
1027
|
+
'dash.usage.this_session': 'this session',
|
|
1028
|
+
'dash.usage.cost_note': 'Based on model pricing. Actual costs may vary.',
|
|
1029
|
+
'dash.usage.models_used': 'Models Used',
|
|
1030
|
+
'dash.usage.no_usage_session': 'No usage this session yet. Start chatting with Ava!',
|
|
1031
|
+
'dash.usage.token_balance': 'Token Balance',
|
|
1032
|
+
'dash.usage.admin_tier': 'Admin tier',
|
|
1033
|
+
'dash.usage.unlimited': 'Unlimited',
|
|
1034
|
+
'dash.usage.estimated_remaining': 'Estimated {days} {days_label} remaining at current pace',
|
|
1035
|
+
'dash.usage.day': 'day',
|
|
1036
|
+
'dash.usage.days': 'days',
|
|
1037
|
+
'dash.usage.overview': 'Overview',
|
|
1038
|
+
'dash.usage.daily_usage': 'Daily Usage (Last 14 Days)',
|
|
1039
|
+
'dash.usage.today': 'Today',
|
|
1040
|
+
'dash.usage.most_used_models': 'Most Used Models',
|
|
1041
|
+
'dash.usage.session_history': 'Session History',
|
|
1042
|
+
'dash.usage.sessions_count': '{count} sessions',
|
|
1043
|
+
'dash.usage.date': 'Date',
|
|
1044
|
+
'dash.usage.model': 'Model',
|
|
1045
|
+
'dash.usage.tokens': 'Tokens',
|
|
1046
|
+
'dash.usage.cost': 'Cost',
|
|
1047
|
+
'dash.usage.primary_model': 'Primary Model',
|
|
1048
|
+
'dash.usage.connect_hint': 'Connect your account to see usage history across sessions.',
|
|
1049
|
+
'dash.usage.session_tab_hint': 'Your session data is shown in the Session tab above.',
|
|
1050
|
+
'dash.usage.summary': 'Summary',
|
|
1051
|
+
'dash.usage.tokens_used': 'Tokens Used',
|
|
1052
|
+
'dash.usage.requests': 'Requests',
|
|
1053
|
+
'dash.usage.this_period': 'this period',
|
|
1054
|
+
'dash.usage.from_requests': 'from {count} requests',
|
|
1055
|
+
'dash.usage.free_tokens': 'Free Tokens',
|
|
1056
|
+
'dash.usage.period': 'Period',
|
|
1057
|
+
'dash.usage.resets_on': 'Resets {date}',
|
|
1058
|
+
'dash.usage.no_active_period': 'No active period',
|
|
1059
|
+
'dash.usage.token_pools': 'Token Pools',
|
|
1060
|
+
'dash.usage.free_pool': 'Free Pool',
|
|
1061
|
+
'dash.usage.no_metering': 'No metering \u2014 admin tier',
|
|
1062
|
+
'dash.usage.free_pool_desc': '3M free Qwen tokens included. Resets monthly.',
|
|
1063
|
+
'dash.usage.byok_no_limit': 'BYOK \u2014 no limit',
|
|
1064
|
+
'dash.usage.usage_by_model': 'Usage by Model',
|
|
1065
|
+
'dash.usage.no_usage_period': 'No usage data for this period.',
|
|
1066
|
+
'dash.usage.recent_requests': 'Recent Requests',
|
|
1067
|
+
'dash.usage.no_requests': 'No requests logged yet.',
|
|
1068
|
+
'dash.usage.prev': 'Prev',
|
|
1069
|
+
'dash.usage.next': 'Next',
|
|
1070
|
+
'dash.usage.connect_for_history': 'Connect an account to track usage across sessions and see historical trends.',
|
|
1071
|
+
'dash.usage.req': 'req',
|
|
1072
|
+
'dash.usage.reqs': 'reqs',
|
|
1073
|
+
'dash.usage.used_of': '{used} / {limit} used',
|
|
1074
|
+
// ── Billing Page ────────────────────────────────────────────────────────
|
|
1075
|
+
'dash.billing.title': 'Billing',
|
|
1076
|
+
'dash.billing.subtitle': 'Your plan, token pools, and top-ups.',
|
|
1077
|
+
'dash.billing.current_plan': 'Current Plan',
|
|
1078
|
+
'dash.billing.tokens_remaining': 'Tokens Remaining',
|
|
1079
|
+
'dash.billing.tokens_used': 'Tokens Used',
|
|
1080
|
+
'dash.billing.plan.free': 'Free',
|
|
1081
|
+
'dash.billing.plan.pro': 'Pro',
|
|
1082
|
+
'dash.billing.plan.ultra': 'Ultra',
|
|
1083
|
+
'dash.billing.plan.enterprise': 'Enterprise',
|
|
1084
|
+
'dash.billing.plan.admin': 'Admin',
|
|
1085
|
+
'dash.billing.tokens.free': '3M tokens',
|
|
1086
|
+
'dash.billing.tokens.pro': '15M tokens',
|
|
1087
|
+
'dash.billing.tokens.ultra': '40M tokens',
|
|
1088
|
+
'dash.billing.tokens.enterprise': '100M tokens',
|
|
1089
|
+
'dash.billing.tokens.admin': 'Unlimited',
|
|
1090
|
+
// ── Settings Page ───────────────────────────────────────────────────────
|
|
1091
|
+
'dash.settings.title': 'Settings',
|
|
1092
|
+
'dash.settings.subtitle': 'Preferences, API keys, and configuration.',
|
|
1093
|
+
'dash.settings.language': 'Language',
|
|
1094
|
+
'dash.settings.permission': 'Permission Mode',
|
|
1095
|
+
'dash.settings.permission.strict': 'Strict',
|
|
1096
|
+
'dash.settings.permission.strict_desc': 'Confirms before file writes, shell commands, and git operations',
|
|
1097
|
+
'dash.settings.permission.balanced': 'Balanced',
|
|
1098
|
+
'dash.settings.permission.balanced_desc': 'Confirms dangerous operations only. Recommended.',
|
|
1099
|
+
'dash.settings.permission.autonomous': 'Autonomous',
|
|
1100
|
+
'dash.settings.permission.autonomous_desc': 'Minimal confirmations. For experienced users.',
|
|
1101
|
+
'dash.settings.avatar_user': 'Your Avatar',
|
|
1102
|
+
'dash.settings.avatar_ai': 'Ava\'s Avatar',
|
|
1103
|
+
'dash.settings.upload': 'Upload',
|
|
1104
|
+
'dash.settings.remove': 'Remove',
|
|
1105
|
+
'dash.settings.welcome_screen': 'Welcome Screen',
|
|
1106
|
+
'dash.settings.show_welcome': 'Show welcome screen on startup',
|
|
1107
|
+
'dash.settings.check_updates': 'Check for updates',
|
|
1108
|
+
'dash.settings.auto_detect': 'Auto-detect',
|
|
1109
|
+
'dash.settings.provider_keys': 'API Keys (BYOK)',
|
|
1110
|
+
'dash.settings.section.your_ai': 'Your AI',
|
|
1111
|
+
'dash.settings.section.model': 'Model',
|
|
1112
|
+
// Export / import — moved out of the sidebar into Settings -> Data,
|
|
1113
|
+
// alongside the other privacy-and-data controls.
|
|
1114
|
+
'dash.settings.section.export_import': 'Export & Import',
|
|
1115
|
+
'dash.settings.section.privacy': 'Privacy & Data',
|
|
1116
|
+
'dash.settings.section.behavior': 'Behavior',
|
|
1117
|
+
'dash.settings.section.advanced': 'Advanced',
|
|
1118
|
+
'dash.settings.section.danger_zone': 'Danger Zone',
|
|
1119
|
+
// Tab + filter arrays. Scoped per screen on purpose: reusing e.g. an
|
|
1120
|
+
// onboarding key for a gallery filter couples two unrelated bits of UI to one
|
|
1121
|
+
// string, and a wording change in one silently rewrites the other.
|
|
1122
|
+
'dash.help.tab_docs': 'Docs',
|
|
1123
|
+
'dash.planner.tab_plans': 'Plans',
|
|
1124
|
+
'dash.account.tab_style': "Ava's Style",
|
|
1125
|
+
// Chat-history filter by the room a conversation happened in.
|
|
1126
|
+
'dash.history.surface.all': 'All',
|
|
1127
|
+
'dash.history.surface.main': 'Chat',
|
|
1128
|
+
'dash.history.surface.design': 'Design',
|
|
1129
|
+
'dash.history.surface.health': 'Health',
|
|
1130
|
+
'dash.history.surface.learning': 'Learning',
|
|
1131
|
+
'dash.history.surface.social': 'Social',
|
|
1132
|
+
// Creative gallery filters.
|
|
1133
|
+
'dash.creative.filter.all': 'All',
|
|
1134
|
+
'dash.creative.filter.images': 'Images',
|
|
1135
|
+
'dash.creative.filter.music': 'Music',
|
|
1136
|
+
'dash.creative.filter.video': 'Video',
|
|
1137
|
+
'dash.creative.filter.voice': 'Voice',
|
|
1138
|
+
'dash.creative.filter.documents': 'Documents',
|
|
1139
|
+
'dash.creative.filter.spreadsheets': 'Spreadsheets',
|
|
1140
|
+
'dash.creative.filter.presentations': 'Presentations',
|
|
1141
|
+
// Model source filter (All / Cloud / Local — the last two already have keys).
|
|
1142
|
+
'dash.chat.all': 'All',
|
|
1143
|
+
// Desktop vision mode. "Private" = on-device; "Fast" = cloud vision.
|
|
1144
|
+
'dash.settings.vision.off': 'Off',
|
|
1145
|
+
'dash.settings.vision.private': 'Private',
|
|
1146
|
+
'dash.settings.vision.fast': 'Fast',
|
|
1147
|
+
// Tool-permission categories. Only the LABELS are translated — each `desc` is
|
|
1148
|
+
// a list of literal tool names (bash, glob, test_run), which are identifiers,
|
|
1149
|
+
// not prose, and must stay as-is in every language.
|
|
1150
|
+
'dash.perm.cat.file_ops': 'File Operations',
|
|
1151
|
+
'dash.perm.cat.shell': 'Shell',
|
|
1152
|
+
'dash.perm.cat.git': 'Git',
|
|
1153
|
+
'dash.perm.cat.web': 'Web',
|
|
1154
|
+
'dash.perm.cat.media': 'Media',
|
|
1155
|
+
'dash.perm.cat.database': 'Database',
|
|
1156
|
+
'dash.perm.cat.system': 'System',
|
|
1157
|
+
'dash.perm.cat.documents': 'Documents',
|
|
1158
|
+
'dash.perm.cat.memory': 'Memory',
|
|
1159
|
+
'dash.perm.cat.learning': 'Learning',
|
|
1160
|
+
// ── Design Studio asset menu ─────────────────────────────────────────────
|
|
1161
|
+
'dash.studio.group.open_canvas': 'Open Canvas',
|
|
1162
|
+
'dash.studio.group.web_app': 'Web / App',
|
|
1163
|
+
'dash.studio.group.game': 'Game',
|
|
1164
|
+
'dash.studio.soon': 'SOON',
|
|
1165
|
+
'dash.studio.coming_soon': 'Being brought over from the hub. The Icon lane is live — this one lands in an upcoming slice.',
|
|
1166
|
+
// NOTE: the logo style / mark-type / lockup-form labels are ALREADY translated
|
|
1167
|
+
// at their render sites via dash.studio.style.*, dash.studio.marktype.* and
|
|
1168
|
+
// dash.studio.logo.form.* (further down). The `label:` fields in the LOGO_STYLES
|
|
1169
|
+
// / MARK_TYPES / LOGO_FORMS consts were dead data — never rendered.
|
|
1170
|
+
// Canvas + transport chrome.
|
|
1171
|
+
'dash.studio.change_colour': 'Change colour',
|
|
1172
|
+
'dash.studio.video.empty': 'Your video will appear here',
|
|
1173
|
+
'dash.studio.video.empty_hint': 'Describe it on the right — Ava generates it and it plays here.',
|
|
1174
|
+
'dash.studio.transport.scrub': 'Scrub',
|
|
1175
|
+
'dash.studio.transport.volume': 'Volume',
|
|
1176
|
+
'dash.studio.transport.mute': 'Mute',
|
|
1177
|
+
'dash.studio.transport.unmute': 'Unmute',
|
|
1178
|
+
'dash.studio.voice.preview': 'Voiceover preview',
|
|
1179
|
+
'dash.studio.voice.empty': 'No audio yet — this is the transport. Write a script on the right and Ava speaks it here.',
|
|
1180
|
+
'dash.studio.generated_icon': 'Generated icon',
|
|
1181
|
+
'dash.studio.generated_image': 'Generated image',
|
|
1182
|
+
'dash.studio.brandkit.title': 'Brand Kit',
|
|
1183
|
+
'dash.studio.brandkit.subtitle': 'Set once — every tool reads it. The Design Architect proposes updates as she works.',
|
|
1184
|
+
'dash.studio.brandkit.palette': 'Palette',
|
|
1185
|
+
'dash.studio.ava_generates': "Ava generates this — describe it and she'll create it.",
|
|
1186
|
+
// Design Architect dock.
|
|
1187
|
+
'dash.studio.dock.design': 'Design',
|
|
1188
|
+
'dash.studio.dock.ask': 'Ask the Design Architect for an icon…',
|
|
1189
|
+
'dash.studio.dock.answer_ph': 'Type your answer…',
|
|
1190
|
+
'dash.studio.dock.skip': 'Skip',
|
|
1191
|
+
// Starter chips — label is the chip, prompt is prefilled into the composer, so
|
|
1192
|
+
// both are translated: a Spanish user should not see an English sentence appear.
|
|
1193
|
+
'dash.studio.starter.icon.1': 'A glass bell icon',
|
|
1194
|
+
'dash.studio.starter.icon.1_p': 'Design me a frosted-glass bell notification icon in my brand purple.',
|
|
1195
|
+
'dash.studio.starter.icon.2': 'A matching set',
|
|
1196
|
+
'dash.studio.starter.icon.2_p': 'Make me a matching set of icons: home, search, settings, profile — same look.',
|
|
1197
|
+
'dash.studio.starter.icon.3': 'Pick a material',
|
|
1198
|
+
'dash.studio.starter.icon.3_p': 'What materials can you render, and which suits a premium fintech app?',
|
|
1199
|
+
'dash.studio.starter.video.1': 'Film a scene',
|
|
1200
|
+
'dash.studio.starter.video.1_p': 'Create a video: a slow cinematic dolly-in down a neon-lit, rain-slicked street at night',
|
|
1201
|
+
'dash.studio.starter.video.2': 'Product in motion',
|
|
1202
|
+
'dash.studio.starter.video.2_p': 'A short clip of my product turning slowly on a clean studio backdrop, soft key light',
|
|
1203
|
+
'dash.studio.starter.video.3': 'Set a mood',
|
|
1204
|
+
'dash.studio.starter.video.3_p': 'A calm 5-second atmospheric clip — soft morning light, gentle drifting motion',
|
|
1205
|
+
'dash.studio.starter.video.4': 'Vertical for social',
|
|
1206
|
+
'dash.studio.starter.video.4_p': 'A punchy vertical 9:16 clip for social, bright and energetic',
|
|
1207
|
+
'dash.studio.starter.voice.1': 'Narrate a script',
|
|
1208
|
+
'dash.studio.starter.voice.1_p': 'Narrate this in a warm, calm voice: ',
|
|
1209
|
+
'dash.studio.starter.voice.2': 'Which voice fits?',
|
|
1210
|
+
'dash.studio.starter.voice.2_p': 'What voices do you have, and which suits a premium, trustworthy brand?',
|
|
1211
|
+
'dash.studio.starter.voice.3': 'An intro read',
|
|
1212
|
+
'dash.studio.starter.voice.3_p': 'A short, upbeat intro read for my product video',
|
|
1213
|
+
'dash.studio.starter.voice.4': 'A calm read',
|
|
1214
|
+
'dash.studio.starter.voice.4_p': 'A slow, reassuring read for a meditation clip',
|
|
1215
|
+
// Material finish labels (dash.studio.material.*) already exist further down —
|
|
1216
|
+
// reused, not redefined. Only the LABEL is ever translated: each material's
|
|
1217
|
+
// `prompt` is model input and stays English, or generation quality degrades.
|
|
1218
|
+
'dash.studio.asset.video': 'Video',
|
|
1219
|
+
'dash.studio.asset.voice': 'Voiceover',
|
|
1220
|
+
'dash.studio.asset.image': 'Image',
|
|
1221
|
+
'dash.studio.asset.icon': 'Icon',
|
|
1222
|
+
'dash.studio.asset.iconset': 'Icon Set',
|
|
1223
|
+
'dash.studio.asset.appicon': 'App Icon / Favicon',
|
|
1224
|
+
'dash.studio.asset.logo': 'Logo',
|
|
1225
|
+
'dash.studio.asset.badge': 'Badge / Mark',
|
|
1226
|
+
'dash.studio.asset.avatar': 'Avatar',
|
|
1227
|
+
'dash.studio.asset.banner': 'Banner',
|
|
1228
|
+
'dash.studio.asset.hero': 'Hero',
|
|
1229
|
+
'dash.studio.asset.ogimage': 'Social / OG Image',
|
|
1230
|
+
'dash.studio.asset.illustration': 'Illustration',
|
|
1231
|
+
'dash.studio.asset.pattern': 'Pattern / Background',
|
|
1232
|
+
'dash.studio.asset.gamekit': 'UI Kit',
|
|
1233
|
+
'dash.studio.asset.gamepiece': 'Single Piece',
|
|
1234
|
+
// ── Support ──────────────────────────────────────────────────────────────
|
|
1235
|
+
'dash.support.header_sub': 'Report bugs, request features, or ask questions',
|
|
1236
|
+
'dash.support.tickets': 'Support tickets',
|
|
1237
|
+
'dash.support.new': '+ New',
|
|
1238
|
+
'dash.support.pick_reason': 'New ticket — pick a reason',
|
|
1239
|
+
'dash.support.none_yet': 'No tickets yet',
|
|
1240
|
+
'dash.support.new_ticket_title': 'New ticket',
|
|
1241
|
+
'dash.support.ava_first': 'Ava answers first — instantly',
|
|
1242
|
+
'dash.support.how_can_we_help': 'How can we help?',
|
|
1243
|
+
'dash.support.empty_hint': 'Hit + New up top and pick a reason to open a ticket. Ava answers first — instantly.',
|
|
1244
|
+
'dash.support.intro': "Tell us what's going on below — Ava answers first, instantly. If she can't solve it, the team picks up the same thread.",
|
|
1245
|
+
'dash.support.pick_reason_ph': 'Pick a reason above to start…',
|
|
1246
|
+
'dash.support.reply_ph': 'Reply to this ticket…',
|
|
1247
|
+
'dash.chat.sending': 'Sending…',
|
|
1248
|
+
// Ava's opening message in a new chat. {name} carries its own leading comma
|
|
1249
|
+
// (", Stewart") or, for the late variant, " here" when there's no name.
|
|
1250
|
+
'dash.chat.welcome_morning': "Morning{name}. It's {day} — what are we tackling today?",
|
|
1251
|
+
'dash.chat.welcome_afternoon': 'Afternoon{name}. {day} — what can I get into for you?',
|
|
1252
|
+
'dash.chat.welcome_evening': 'Evening{name}. Pull up a chair — what are we working on?',
|
|
1253
|
+
'dash.chat.welcome_late': "Late one{name}. I'm awake if you are — what's on your mind?",
|
|
1254
|
+
// Ticket categories — label + composer placeholder, by slug.
|
|
1255
|
+
'dash.support.cat.bug': 'Bug or broken',
|
|
1256
|
+
'dash.support.cat.bug_ph': 'What broke, and what were you doing when it happened?',
|
|
1257
|
+
'dash.support.cat.question': 'Question / how-to',
|
|
1258
|
+
'dash.support.cat.question_ph': 'What are you trying to do?',
|
|
1259
|
+
'dash.support.cat.feature': 'Feature request',
|
|
1260
|
+
'dash.support.cat.feature_ph': 'What would you love Ava to do?',
|
|
1261
|
+
'dash.support.cat.billing': 'Billing & payments',
|
|
1262
|
+
'dash.support.cat.billing_ph': 'Tell us about the billing or payment issue…',
|
|
1263
|
+
'dash.support.cat.account': 'Account & login',
|
|
1264
|
+
'dash.support.cat.account_ph': 'What is happening with your account or sign-in?',
|
|
1265
|
+
'dash.support.cat.feedback': 'Feedback',
|
|
1266
|
+
'dash.support.cat.feedback_ph': 'What is on your mind?',
|
|
1267
|
+
'dash.support.cat.other': 'Something else',
|
|
1268
|
+
'dash.support.cat.other_ph': 'How can we help?',
|
|
1269
|
+
// ── Billing ──────────────────────────────────────────────────────────────
|
|
1270
|
+
// PLANS and CREDIT_TOPUPS live in core's billing module and their strings are
|
|
1271
|
+
// tied to Stripe price mappings and shared with the platform — so they are NOT
|
|
1272
|
+
// rewritten there. The surfaces map id -> key and fall back to core's English.
|
|
1273
|
+
'dash.billing.manage_plan': 'Manage Plan',
|
|
1274
|
+
'dash.billing.unlimited_usage': 'Unlimited usage.',
|
|
1275
|
+
'dash.billing.topups_title': 'Top-Up Packages',
|
|
1276
|
+
'dash.billing.plans_title': 'Plans',
|
|
1277
|
+
'dash.billing.get_credits': 'Get credits',
|
|
1278
|
+
// 'dash.billing.current_plan' already exists further down — reused, not redefined.
|
|
1279
|
+
'dash.billing.manage_in_portal': 'Manage in portal',
|
|
1280
|
+
'dash.billing.upgrade_to': 'Upgrade to {plan}',
|
|
1281
|
+
'dash.billing.credits_n': '{n} credits',
|
|
1282
|
+
'dash.billing.per_month': '/mo',
|
|
1283
|
+
// Top-up subtitles, by CREDIT_TOPUPS id.
|
|
1284
|
+
'dash.billing.topup.credits_1500': 'Quick boost',
|
|
1285
|
+
'dash.billing.topup.credits_6000': 'Best value',
|
|
1286
|
+
'dash.billing.topup.credits_12500': 'Power user',
|
|
1287
|
+
// Plan feature bullets, by tier.
|
|
1288
|
+
'dash.billing.feat.free.1': '300 credits / month',
|
|
1289
|
+
'dash.billing.feat.free.2': 'All supported models via BYOK',
|
|
1290
|
+
'dash.billing.feat.free.3': 'Every surface — extension, IDE, companion',
|
|
1291
|
+
'dash.billing.feat.pro.1': '5,000 credits / month',
|
|
1292
|
+
'dash.billing.feat.pro.2': 'Top-up credits anytime',
|
|
1293
|
+
'dash.billing.feat.pro.3': '60 requests / minute',
|
|
1294
|
+
'dash.billing.feat.pro.4': 'Priority support',
|
|
1295
|
+
'dash.billing.feat.ultra.1': '10,000 credits / month',
|
|
1296
|
+
'dash.billing.feat.ultra.2': '120 requests / minute',
|
|
1297
|
+
'dash.billing.feat.ultra.3': 'Highest-priority routing',
|
|
1298
|
+
'dash.billing.feat.ultra.4': 'Early access to new models',
|
|
1299
|
+
'dash.billing.feat.enterprise.1': '20,000 credits / month',
|
|
1300
|
+
'dash.billing.feat.enterprise.2': '200 requests / minute',
|
|
1301
|
+
'dash.billing.feat.enterprise.3': 'SSO + dedicated support',
|
|
1302
|
+
'dash.billing.feat.enterprise.4': 'Custom integrations on request',
|
|
1303
|
+
// Command Centre inner tabs. These are JSX props, not an array — which is why
|
|
1304
|
+
// the first audit (which only looked at arrays) never saw them, and the row
|
|
1305
|
+
// sat half-translated.
|
|
1306
|
+
'dash.cc.tab.daily': 'Daily',
|
|
1307
|
+
'dash.cc.tab.reflect': 'Reflect',
|
|
1308
|
+
'dash.cc.tab.health': 'Health',
|
|
1309
|
+
'dash.cc.worth_a_look': 'Worth a look',
|
|
1310
|
+
'dash.cc.review_in_audit': 'Review in audit',
|
|
1311
|
+
'dash.cc.storage': 'Storage',
|
|
1312
|
+
// Page titles + subtitles.
|
|
1313
|
+
'dash.page.account': 'Account',
|
|
1314
|
+
'dash.page.account_sub': 'Settings, billing, connections, and personalisation',
|
|
1315
|
+
'dash.page.help': 'Help',
|
|
1316
|
+
'dash.page.help_sub': 'Support, documentation, release notes, and roadmap',
|
|
1317
|
+
'dash.settings.tab.general': 'General',
|
|
1318
|
+
'dash.settings.tab.behavior': 'Behavior',
|
|
1319
|
+
'dash.settings.tab.desktop': 'Desktop Automation',
|
|
1320
|
+
'dash.settings.tab.models': 'Models',
|
|
1321
|
+
'dash.settings.tab.personality': 'Personality',
|
|
1322
|
+
'dash.settings.tab.permissions': 'Permissions',
|
|
1323
|
+
'dash.settings.tab.data': 'Data',
|
|
1324
|
+
'dash.settings.tab.privacy': 'Privacy',
|
|
1325
|
+
'dash.settings.tab.advanced': 'Advanced',
|
|
1326
|
+
'dash.settings.customise': 'Customise',
|
|
1327
|
+
'dash.settings.default_personality': 'Default personality',
|
|
1328
|
+
'dash.settings.auto_memory': 'Auto Memory',
|
|
1329
|
+
'dash.settings.auto_memory_desc': 'Automatically save important details from conversations',
|
|
1330
|
+
'dash.settings.local_only': 'Local Only',
|
|
1331
|
+
'dash.settings.local_only_desc': 'Keep all data on your machine. Disable to enable cloud sync.',
|
|
1332
|
+
'dash.settings.shared_learning': 'Shared Learning',
|
|
1333
|
+
'dash.settings.shared_learning_desc': 'Help improve Ava for everyone. Anonymised technical patterns only.',
|
|
1334
|
+
'dash.settings.contributing': 'Contributing to shared learning',
|
|
1335
|
+
'dash.settings.learnings_local': 'Off \u2014 your learnings stay local',
|
|
1336
|
+
'dash.settings.permission_desc': 'Controls when Ava asks before running tools.',
|
|
1337
|
+
'dash.settings.stream_responses': 'Stream Responses',
|
|
1338
|
+
'dash.settings.stream_responses_desc': 'Show tokens as they arrive instead of waiting for completion.',
|
|
1339
|
+
'dash.settings.providers_configured': '{count}/{total} providers configured',
|
|
1340
|
+
'dash.settings.no_providers': 'No providers configured',
|
|
1341
|
+
'dash.settings.advanced_settings': 'Advanced Settings',
|
|
1342
|
+
'dash.settings.advanced_hint': "Most users don't need to change these.",
|
|
1343
|
+
'dash.settings.temperature': 'Temperature',
|
|
1344
|
+
'dash.settings.precise': 'Precise',
|
|
1345
|
+
'dash.settings.creative': 'Creative',
|
|
1346
|
+
'dash.settings.max_tokens': 'Max Response Tokens',
|
|
1347
|
+
'dash.settings.disconnect_account': 'Disconnect Account',
|
|
1348
|
+
'dash.settings.disconnect_desc': 'This will sign you out and remove your account connection from this device.',
|
|
1349
|
+
'dash.settings.disconnect': 'Disconnect',
|
|
1350
|
+
'dash.settings.saved': 'Saved',
|
|
1351
|
+
'dash.settings.not_set': 'Not set',
|
|
1352
|
+
'dash.settings.edit': 'Edit',
|
|
1353
|
+
'dash.settings.save': 'Save',
|
|
1354
|
+
'dash.settings.cancel': 'Cancel',
|
|
1355
|
+
'dash.settings.get_api_key': 'Get an API key',
|
|
1356
|
+
'dash.settings.section.avatars': 'Avatars',
|
|
1357
|
+
'dash.settings.section.api_keys': 'API Keys',
|
|
1358
|
+
'dash.settings.avatar_you': 'You',
|
|
1359
|
+
'dash.settings.avatar_upload_hint': 'Click to upload your avatar',
|
|
1360
|
+
'dash.settings.avatar_upload_ai_hint': 'Click to upload AI avatar',
|
|
1361
|
+
'dash.settings.avatar_stored_locally': 'Click to upload. Images are stored locally.',
|
|
1362
|
+
'dash.settings.auto_recommended': 'Auto (recommended)',
|
|
1363
|
+
'dash.settings.auto_selected': 'Auto-selected',
|
|
1364
|
+
'dash.settings.provider_api_keys': 'Provider API Keys',
|
|
1365
|
+
// ── Connections Page ────────────────────────────────────────────────────
|
|
1366
|
+
'dash.connections.title': 'Connections',
|
|
1367
|
+
'dash.connections.subtitle': 'Connect external services. Coming soon after launch.',
|
|
1368
|
+
'dash.connections.github': 'GitHub',
|
|
1369
|
+
'dash.connections.github_desc': 'Connect your GitHub account for PR creation and repo management.',
|
|
1370
|
+
'dash.connections.email': 'Email (SMTP)',
|
|
1371
|
+
'dash.connections.email_desc': 'Send emails through Ava using your SMTP server.',
|
|
1372
|
+
'dash.connections.slack': 'Slack',
|
|
1373
|
+
'dash.connections.slack_desc': 'Post messages to Slack channels via incoming webhook.',
|
|
1374
|
+
'dash.connections.discord': 'Discord',
|
|
1375
|
+
'dash.connections.discord_desc': 'Send notifications to Discord via webhook.',
|
|
1376
|
+
'dash.connections.coming_soon': 'Coming soon',
|
|
1377
|
+
'dash.connections.coming_soon_desc': 'Service connections are being built and will be available in a future update.',
|
|
1378
|
+
'dash.connections.inactive': 'Inactive',
|
|
1379
|
+
// ── Support Page ────────────────────────────────────────────────────────
|
|
1380
|
+
'dash.support.title': 'Support',
|
|
1381
|
+
'dash.support.subtitle': 'Get help, report bugs, or request features.',
|
|
1382
|
+
'dash.support.new_ticket': 'New Ticket',
|
|
1383
|
+
'dash.support.subject': 'Subject',
|
|
1384
|
+
'dash.support.description': 'Description',
|
|
1385
|
+
'dash.support.type': 'Issue Type',
|
|
1386
|
+
'dash.support.submit': 'Submit',
|
|
1387
|
+
'dash.support.type.bug': 'Bug',
|
|
1388
|
+
'dash.support.type.feature': 'Feature Request',
|
|
1389
|
+
'dash.support.type.question': 'Question',
|
|
1390
|
+
'dash.support.type.account': 'Account',
|
|
1391
|
+
'dash.support.type.feedback': 'Feedback',
|
|
1392
|
+
'dash.support.type.other': 'Other',
|
|
1393
|
+
'dash.support.status.open': 'Open',
|
|
1394
|
+
'dash.support.status.in_progress': 'In Progress',
|
|
1395
|
+
'dash.support.status.resolved': 'Resolved',
|
|
1396
|
+
'dash.support.status.closed': 'Closed',
|
|
1397
|
+
'dash.support.back_to_tickets': 'Back to tickets',
|
|
1398
|
+
'dash.support.opened_date': 'Opened {date}',
|
|
1399
|
+
'dash.support.via_source': 'via {source}',
|
|
1400
|
+
'dash.support.badge_support': 'Support',
|
|
1401
|
+
'dash.support.reply_placeholder': 'Write a reply...',
|
|
1402
|
+
'dash.support.sending': 'Sending...',
|
|
1403
|
+
'dash.support.send_reply': 'Send Reply',
|
|
1404
|
+
'dash.support.cancel': 'Cancel',
|
|
1405
|
+
'dash.support.submitting': 'Submitting...',
|
|
1406
|
+
'dash.support.filter_all': 'All',
|
|
1407
|
+
'dash.support.no_tickets': 'No support tickets',
|
|
1408
|
+
'dash.support.no_tickets_hint': 'Need help? Click "New Ticket" above, or ask Ava to submit one for you.',
|
|
1409
|
+
'dash.support.message_count': '{count} message',
|
|
1410
|
+
'dash.support.messages_count': '{count} messages',
|
|
1411
|
+
'dash.support.source.tool': 'Ava',
|
|
1412
|
+
'dash.support.source.dashboard': 'Dashboard',
|
|
1413
|
+
'dash.support.source.website': 'Website',
|
|
1414
|
+
'dash.support.category.bug': 'Bug Report',
|
|
1415
|
+
'dash.support.category.feature': 'Feature Request',
|
|
1416
|
+
'dash.support.category.question': 'Question',
|
|
1417
|
+
'dash.support.category.account': 'Account / Billing',
|
|
1418
|
+
'dash.support.category.feedback': 'Feedback',
|
|
1419
|
+
'dash.support.category.teach': 'Teach Mode',
|
|
1420
|
+
'dash.support.category.other': 'Other',
|
|
1421
|
+
'dash.support.your_email': 'Your Email',
|
|
1422
|
+
'dash.support.category_label': 'Category',
|
|
1423
|
+
'dash.support.message_label': 'Message',
|
|
1424
|
+
'dash.support.describe_issue': 'Describe your issue...',
|
|
1425
|
+
'dash.support.send_message': 'Send Message',
|
|
1426
|
+
'dash.support.email_opening': 'Opening your email client...',
|
|
1427
|
+
'dash.support.priority_note': 'Connected account holders get priority support and ticket tracking.',
|
|
1428
|
+
'dash.support.github_issue': 'You can also open an issue on',
|
|
1429
|
+
'dash.support.connect_to_access': 'Connect to access support',
|
|
1430
|
+
'dash.support.sign_in_hint': 'Sign in with your platform key',
|
|
1431
|
+
'dash.support.create_ticket': 'Create a Support Ticket',
|
|
1432
|
+
'dash.support.describe_placeholder': 'Describe your issue or request...',
|
|
1433
|
+
'dash.support.submit_ticket': 'Submit Ticket',
|
|
1434
|
+
'dash.support.loading_tickets': 'Loading tickets...',
|
|
1435
|
+
'dash.support.no_filtered_tickets': 'No {filter} tickets',
|
|
1436
|
+
'dash.support.new_ticket_hint': 'Click "New Ticket" to get help',
|
|
1437
|
+
'dash.support.reply_input_placeholder': 'Type a reply...',
|
|
1438
|
+
'dash.support.send': 'Send',
|
|
1439
|
+
'dash.support.you': 'You',
|
|
1440
|
+
// ── Documentation Page ──────────────────────────────────────────────────
|
|
1441
|
+
'dash.docs.title': 'Documentation',
|
|
1442
|
+
'dash.docs.subtitle': 'Everything you need to know about the Ava Supernova IDE.',
|
|
1443
|
+
'dash.docs.search_placeholder': 'Search docs...',
|
|
1444
|
+
'dash.docs.getting_started': 'Getting Started',
|
|
1445
|
+
'dash.docs.local_vs_cloud': 'Local vs Cloud Mode',
|
|
1446
|
+
'dash.docs.modes': '7 Modes — States of Thought',
|
|
1447
|
+
'dash.docs.tools': '110+ Tools',
|
|
1448
|
+
'dash.docs.library': 'Library',
|
|
1449
|
+
'dash.docs.images_files': 'Images & Files in Chat',
|
|
1450
|
+
'dash.docs.personas': 'Personas',
|
|
1451
|
+
'dash.docs.memory': 'Memory System',
|
|
1452
|
+
'dash.docs.shortcuts': 'Keyboard Shortcuts',
|
|
1453
|
+
'dash.docs.tasks_panel': 'Tasks Panel',
|
|
1454
|
+
'dash.docs.dashboard': 'Dashboard Pages',
|
|
1455
|
+
'dash.docs.session_stats': 'Session Stats',
|
|
1456
|
+
'dash.docs.release_notes': 'Release Notes',
|
|
1457
|
+
'dash.docs.getting_started_intro': 'Ava Supernova IDE is a standalone desktop application with the full AI agent running locally. Connect your account or add BYOK API keys to get started.',
|
|
1458
|
+
'dash.docs.step1_title': 'Connect Account',
|
|
1459
|
+
'dash.docs.step1_desc': 'Open the Dashboard sidebar and enter your platform key (sk-ava-...) or add BYOK provider keys.',
|
|
1460
|
+
'dash.docs.step2_title': 'Choose a Mode',
|
|
1461
|
+
'dash.docs.step2_desc': 'Toggle Local (BYOK keys, full 110+ tools on your machine) or Cloud (platform API). Switch anytime.',
|
|
1462
|
+
'dash.docs.step3_title': 'Start Building',
|
|
1463
|
+
'dash.docs.step3_desc': 'Open Ava Chat and start giving instructions. She reads code, makes changes, runs commands, and more.',
|
|
1464
|
+
'dash.docs.local_mode': 'Local Mode',
|
|
1465
|
+
'dash.docs.local_mode_1': 'Full 110-tool agent runs on your machine',
|
|
1466
|
+
'dash.docs.local_mode_2': 'Requires BYOK API keys (Qwen, DeepSeek, etc.)',
|
|
1467
|
+
'dash.docs.local_mode_3': 'Tools execute locally — file edits, bash, git, screenshots',
|
|
1468
|
+
'dash.docs.local_mode_4': '24 specialist personas with orchestration',
|
|
1469
|
+
'dash.docs.local_mode_5': '5-layer memory system',
|
|
1470
|
+
'dash.docs.local_mode_6': 'Tool confirmation dialogs for dangerous operations',
|
|
1471
|
+
'dash.docs.cloud_mode': 'Cloud Mode',
|
|
1472
|
+
'dash.docs.cloud_mode_1': 'Chat via platform API (avasupernova.com)',
|
|
1473
|
+
'dash.docs.cloud_mode_2': 'Uses your platform account tokens',
|
|
1474
|
+
'dash.docs.cloud_mode_3': 'No local tool execution',
|
|
1475
|
+
'dash.docs.cloud_mode_4': 'Works with platform key (sk-ava-...)',
|
|
1476
|
+
'dash.docs.cloud_mode_5': 'Usage tracked and billed through platform',
|
|
1477
|
+
'dash.docs.cloud_mode_6': 'Simpler setup — just connect and chat',
|
|
1478
|
+
'dash.docs.modes_intro': 'Modes are states of mind, not tool restrictions. Switch with the mode selector in the chat input or keyboard shortcuts.',
|
|
1479
|
+
'dash.docs.mode_work': 'Work',
|
|
1480
|
+
'dash.docs.mode_work_desc': 'Builder mindset — full 110-tool agent. Default mode.',
|
|
1481
|
+
'dash.docs.mode_plan': 'Plan',
|
|
1482
|
+
'dash.docs.mode_plan_desc': 'Architect mindset — read-only analysis and strategic planning.',
|
|
1483
|
+
'dash.docs.mode_chat': 'Chat',
|
|
1484
|
+
'dash.docs.mode_chat_desc': 'Friend mindset — personal conversation, memory, journal.',
|
|
1485
|
+
'dash.docs.mode_teach': 'Teach',
|
|
1486
|
+
'dash.docs.mode_teach_desc': 'Tutor mindset — personalised learning with spaced repetition. Free for everyone.',
|
|
1487
|
+
'dash.docs.mode_security': 'Security',
|
|
1488
|
+
'dash.docs.mode_security_desc': 'Auditor mindset — dependency scanning, secret detection, code vulnerability analysis.',
|
|
1489
|
+
'dash.docs.mode_brainstorm': 'Brainstorm',
|
|
1490
|
+
'dash.docs.mode_brainstorm_desc': 'Ideation mindset — research, generate, challenge, refine ideas.',
|
|
1491
|
+
'dash.docs.tools_intro': 'Available in Local mode. Ava selects and chains tools automatically based on your instructions.',
|
|
1492
|
+
'dash.docs.tools_cat_file': 'File Operations',
|
|
1493
|
+
'dash.docs.tools_cat_shell': 'Shell & Git',
|
|
1494
|
+
'dash.docs.tools_cat_web': 'Web & API',
|
|
1495
|
+
'dash.docs.tools_cat_media': 'Media',
|
|
1496
|
+
'dash.docs.tools_cat_memory': 'Memory',
|
|
1497
|
+
'dash.docs.tools_cat_planning': 'Planning',
|
|
1498
|
+
'dash.docs.tools_cat_office': 'Office Suite',
|
|
1499
|
+
'dash.docs.tools_cat_learning': 'Learning',
|
|
1500
|
+
'dash.docs.tools_cat_testing': 'Testing & Quality',
|
|
1501
|
+
'dash.docs.tools_cat_utility': 'Utility',
|
|
1502
|
+
'dash.docs.library_intro': 'Browse images, documents, and spreadsheets created by Ava. Access from the Dashboard sidebar.',
|
|
1503
|
+
'dash.docs.library_grid': 'Grid & List Views',
|
|
1504
|
+
'dash.docs.library_grid_desc': 'Toggle between visual grid (thumbnails) and compact list view.',
|
|
1505
|
+
'dash.docs.library_filter': 'Type Filtering',
|
|
1506
|
+
'dash.docs.library_filter_desc': 'Filter by Images, Documents, Spreadsheets, or Presentations with count badges.',
|
|
1507
|
+
'dash.docs.library_details': 'File Details',
|
|
1508
|
+
'dash.docs.library_details_desc': 'Click any file to see size, type, date, folder, and quick open/download.',
|
|
1509
|
+
'dash.docs.library_preview': 'Image Preview',
|
|
1510
|
+
'dash.docs.library_preview_desc': 'Image thumbnails display inline. Documents show type icons with colour coding.',
|
|
1511
|
+
'dash.docs.images_intro': 'Share images and files directly in the chat conversation.',
|
|
1512
|
+
'dash.docs.images_paste': 'Paste Images',
|
|
1513
|
+
'dash.docs.images_paste_desc': 'Ctrl+V a screenshot or image directly into the chat input.',
|
|
1514
|
+
'dash.docs.images_drag': 'Drag & Drop',
|
|
1515
|
+
'dash.docs.images_drag_desc': 'Drop images and files onto the input area to attach them.',
|
|
1516
|
+
'dash.docs.images_attach': 'Attach Button',
|
|
1517
|
+
'dash.docs.images_attach_desc': 'Click the paperclip icon to browse and attach files (images, PDFs, docs, spreadsheets).',
|
|
1518
|
+
'dash.docs.images_display': 'Inline Display',
|
|
1519
|
+
'dash.docs.images_display_desc': 'Generated images show inline in messages with download buttons. Created files appear as typed cards.',
|
|
1520
|
+
'dash.docs.personas_intro': '24 specialist personas across 5 modes, orchestrated by the Conductor.',
|
|
1521
|
+
'dash.docs.personas_chat_note': 'Chat mode has no personas — just Ava being a friend.',
|
|
1522
|
+
'dash.docs.memory_intro': '5-layer memory system that learns your coding style, decisions, and preferences across sessions.',
|
|
1523
|
+
'dash.docs.memory_l1': 'L1 — Extract',
|
|
1524
|
+
'dash.docs.memory_l1_desc': 'Regex-based extraction of facts, preferences, and patterns from conversations.',
|
|
1525
|
+
'dash.docs.memory_l2': 'L2 — Reflect',
|
|
1526
|
+
'dash.docs.memory_l2_desc': 'LLM reflection generates deeper insights from extracted data.',
|
|
1527
|
+
'dash.docs.memory_l3': 'L3 — Accumulate',
|
|
1528
|
+
'dash.docs.memory_l3_desc': 'Cross-session pattern detection — tracks recurring themes across conversations.',
|
|
1529
|
+
'dash.docs.memory_l4': 'L4 — Analyse',
|
|
1530
|
+
'dash.docs.memory_l4_desc': 'Cross-memory insights — connects related memories for deeper understanding.',
|
|
1531
|
+
'dash.docs.memory_l5': 'L5 — Consolidate',
|
|
1532
|
+
'dash.docs.memory_l5_desc': 'Merges duplicate entries, archives stale memories, maintains coherence.',
|
|
1533
|
+
'dash.docs.shortcuts_modes': 'Switch mode (Work, Plan, Chat, Teach, Security, Brainstorm)',
|
|
1534
|
+
'dash.docs.shortcuts_send': 'Send message',
|
|
1535
|
+
'dash.docs.shortcuts_newline': 'New line in input',
|
|
1536
|
+
'dash.docs.shortcuts_paste': 'Paste image from clipboard',
|
|
1537
|
+
'dash.docs.shortcuts_devtools': 'Open DevTools',
|
|
1538
|
+
'dash.docs.tasks_intro': 'The collapsible Tasks Panel sits alongside the chat. Click the Tasks button in the chat header to toggle it.',
|
|
1539
|
+
'dash.docs.tasks_ava_tab': 'Ava Tab',
|
|
1540
|
+
'dash.docs.tasks_ava_desc': 'Shows session tasks from todo_write tool calls. Progress bar updates live as Ava completes steps. Auto-opens when tasks are created.',
|
|
1541
|
+
'dash.docs.tasks_my_tab': 'My Tasks Tab',
|
|
1542
|
+
'dash.docs.tasks_my_desc': 'Your personal tasks from the platform. Click a task to toggle completion. Filtered by Today or All. Requires a platform account.',
|
|
1543
|
+
'dash.docs.tasks_resize': 'Drag the left edge to resize (200-500px). Press Escape to close. Width and state persist across sessions.',
|
|
1544
|
+
'dash.docs.dashboard_intro': '16 pages organised into sections in the sidebar:',
|
|
1545
|
+
'dash.docs.dashboard_main': 'Main',
|
|
1546
|
+
'dash.docs.dashboard_main_pages': 'Command Centre (landing page), Ava Chat',
|
|
1547
|
+
'dash.docs.dashboard_workspace': 'Workspace',
|
|
1548
|
+
'dash.docs.dashboard_workspace_pages': 'Memory, Tasks, Journal, Learning, Library',
|
|
1549
|
+
'dash.docs.dashboard_personalise': 'Personalise',
|
|
1550
|
+
'dash.docs.dashboard_personalise_pages': 'Personality, Cloud Sync',
|
|
1551
|
+
'dash.docs.dashboard_account': 'Account',
|
|
1552
|
+
'dash.docs.dashboard_account_pages': 'Usage, Billing, Settings, Connections',
|
|
1553
|
+
'dash.docs.dashboard_help': 'Help',
|
|
1554
|
+
'dash.docs.dashboard_help_pages': 'Support, Documentation, Release Notes',
|
|
1555
|
+
'dash.docs.dashboard_collapse_note': 'Sections are collapsible with persistent state. A purple dot shows when the active page is inside a collapsed section.',
|
|
1556
|
+
'dash.docs.session_stats_intro': 'Token usage, messages, tool calls, and per-model breakdown are tracked in real-time across the IDE.',
|
|
1557
|
+
'dash.docs.session_stats_1': 'Chat header shows token count',
|
|
1558
|
+
'dash.docs.session_stats_2': 'Usage page — Session tab with live data',
|
|
1559
|
+
'dash.docs.session_stats_3': 'Command Centre stats update instantly',
|
|
1560
|
+
'dash.docs.session_stats_note': 'Stats reset on New Chat. All-Time tab reads from the platform API for connected users.',
|
|
1561
|
+
'dash.docs.release_notes_intro': 'Release notes are tagged by platform and displayed across the entire ecosystem.',
|
|
1562
|
+
'dash.docs.release_notes_note': 'Filter by platform using the tabs. Each release card shows its platform badge. Month filter also available.',
|
|
1563
|
+
// ── Release Notes Page ──────────────────────────────────────────────────
|
|
1564
|
+
'dash.releases.title': 'Release Notes',
|
|
1565
|
+
'dash.releases.subtitle': "What's new across the ecosystem.",
|
|
1566
|
+
'dash.releases.all': 'All',
|
|
1567
|
+
'dash.releases.core': 'Core',
|
|
1568
|
+
'dash.releases.extension': 'Extension',
|
|
1569
|
+
'dash.releases.ide': 'IDE',
|
|
1570
|
+
'dash.releases.companion': 'Companion',
|
|
1571
|
+
'dash.releases.all_months': 'All months',
|
|
1572
|
+
'dash.releases.no_releases': 'No releases for this month.',
|
|
1573
|
+
'dash.releases.latest': 'LATEST',
|
|
1574
|
+
'dash.releases.tools_count': '{count} tools',
|
|
1575
|
+
'dash.releases.highlights': 'Highlights',
|
|
1576
|
+
// ── Onboarding ──────────────────────────────────────────────────────────
|
|
1577
|
+
'dash.onboarding.welcome': 'Welcome to Ava Supernova',
|
|
1578
|
+
'dash.onboarding.subtitle': 'Your AI-native development environment',
|
|
1579
|
+
'dash.onboarding.step1_title': 'Connect Your Account',
|
|
1580
|
+
'dash.onboarding.step1_desc': 'Enter your platform key or add BYOK provider keys to get started.',
|
|
1581
|
+
'dash.onboarding.step2_title': 'Choose Your Mode',
|
|
1582
|
+
'dash.onboarding.step2_desc': 'Cloud uses platform tokens. Local uses your own API keys with full tool access.',
|
|
1583
|
+
'dash.onboarding.step3_title': 'Start Building',
|
|
1584
|
+
'dash.onboarding.step3_desc': 'Open Ava Chat and start giving instructions. She reads code, makes changes, runs commands, and more.',
|
|
1585
|
+
'dash.onboarding.get_started': 'Get Started',
|
|
1586
|
+
'dash.onboarding.next': 'Next',
|
|
1587
|
+
'dash.onboarding.back': 'Back',
|
|
1588
|
+
'dash.onboarding.skip': 'Skip',
|
|
1589
|
+
// ── Status Bar ──────────────────────────────────────────────────────────
|
|
1590
|
+
'dash.status.check_updates': 'Click to check for updates',
|
|
1591
|
+
'dash.status.cycle_mode': 'Current: {mode} — click to cycle modes',
|
|
1592
|
+
// ── Bottom Panel ────────────────────────────────────────────────────────
|
|
1593
|
+
'dash.panel.terminal': 'Terminal',
|
|
1594
|
+
'dash.panel.ava': 'Ava',
|
|
1595
|
+
'dash.panel.problems': 'Problems',
|
|
1596
|
+
'dash.panel.output': 'Output',
|
|
1597
|
+
'dash.panel.debug': 'Debug Console',
|
|
1598
|
+
'dash.panel.terminal_title': 'Ava Supernova IDE Terminal',
|
|
1599
|
+
'dash.panel.ava_working': 'Ava is working...',
|
|
1600
|
+
'dash.panel.ava_placeholder': 'Ask Ava anything...',
|
|
1601
|
+
'dash.panel.no_problems': 'No problems detected in workspace.',
|
|
1602
|
+
'dash.panel.no_output': 'No output to display.',
|
|
1603
|
+
'dash.panel.debug_hint': 'Debug console is available when a debug session is running.',
|
|
1604
|
+
// ── Title Bar ───────────────────────────────────────────────────────────
|
|
1605
|
+
'dash.titlebar.title': 'Ava Supernova IDE',
|
|
1606
|
+
'dash.titlebar.welcome': 'Welcome',
|
|
1607
|
+
// ── Auth ────────────────────────────────────────────────────────────────
|
|
1608
|
+
'dash.auth.platform': 'Platform',
|
|
1609
|
+
'dash.auth.api_key': 'API Key',
|
|
1610
|
+
'dash.auth.connect': 'Connect',
|
|
1611
|
+
'dash.auth.disconnect': 'Disconnect',
|
|
1612
|
+
'dash.auth.enter_key': 'Enter platform key (sk-ava-...)',
|
|
1613
|
+
'dash.auth.connected_as': 'Connected as {name}',
|
|
1614
|
+
'dash.auth.byok_hint': 'Using your own API keys',
|
|
1615
|
+
'dash.auth.step1': '1. Sign up at avasupernova.com',
|
|
1616
|
+
'dash.auth.step2': '2. Dashboard \u2192 API Keys',
|
|
1617
|
+
'dash.auth.step3': '3. Paste your sk-ava-... key below',
|
|
1618
|
+
'dash.auth.connecting': 'Connecting...',
|
|
1619
|
+
// ── Secret Vault ──
|
|
1620
|
+
'dash.chat.secret_vault': 'Secret Vault',
|
|
1621
|
+
'dash.chat.secret_used': 'This message used secrets',
|
|
1622
|
+
'dash.chat.delete_secret': 'Delete secret',
|
|
1623
|
+
'dash.chat.secret_label': 'Label',
|
|
1624
|
+
'dash.chat.secret_value': 'Secret value',
|
|
1625
|
+
// ── Calendar Legend ───────────────────────────────────────────────────
|
|
1626
|
+
'dash.calendar.you': 'You',
|
|
1627
|
+
'dash.calendar.ava': 'Ava',
|
|
1628
|
+
// ── Overview extras ───────────────────────────────────────────────────
|
|
1629
|
+
'dash.cc.since': 'Since {date}',
|
|
1630
|
+
'dash.cc.from_requests': 'from {count} requests',
|
|
1631
|
+
'dash.cc.session_stats': 'Session Stats',
|
|
1632
|
+
'dash.cc.set_name': 'Set your name',
|
|
1633
|
+
'dash.cc.weather': 'Weather',
|
|
1634
|
+
'dash.cc.weather_loading': 'Loading...',
|
|
1635
|
+
'dash.cc.weather_error': 'Unable to load weather data.',
|
|
1636
|
+
'dash.cc.currently_working': 'Currently working',
|
|
1637
|
+
'dash.cc.outside_hours': 'Outside working hours',
|
|
1638
|
+
'dash.cc.no_news': 'No news articles available.',
|
|
1639
|
+
'dash.cc.get_more': 'Get More from Ava',
|
|
1640
|
+
'dash.cc.what_you_have': 'What you have',
|
|
1641
|
+
'dash.cc.with_account': 'With a connected account (free)',
|
|
1642
|
+
'dash.cc.local_memory': 'Local memory storage',
|
|
1643
|
+
'dash.cc.session_usage': 'Session-based usage stats',
|
|
1644
|
+
'dash.cc.own_keys': 'Your own API keys',
|
|
1645
|
+
'dash.cc.all_tools': 'All 110+ tools',
|
|
1646
|
+
'dash.cc.free_models': '2 free models',
|
|
1647
|
+
'dash.cc.memory_sync': 'Memory sync across devices',
|
|
1648
|
+
'dash.cc.full_history': 'Full usage history',
|
|
1649
|
+
'dash.cc.priority_support': 'Priority support with ticket tracking',
|
|
1650
|
+
'dash.cc.free_tokens': '3M free Qwen tokens',
|
|
1651
|
+
'dash.cc.conversation_backup': 'Conversation history & backup',
|
|
1652
|
+
'dash.cc.upgrade_hint': 'Keep using your own API keys \u2014 a connected account just adds sync, history, and support.',
|
|
1653
|
+
'dash.cc.connect_title': 'Connect your account to see live data',
|
|
1654
|
+
'dash.cc.connect_hint': 'Open the Dashboard sidebar and click Connect Account',
|
|
1655
|
+
'dash.cc.connect_free': 'Connect Account \u2014 Free',
|
|
1656
|
+
'dash.cc.quick_actions': 'Quick Actions',
|
|
1657
|
+
'dash.cc.today': 'Today',
|
|
1658
|
+
'dash.cc.tomorrow': 'Tomorrow',
|
|
1659
|
+
'dash.cc.yesterday': 'Yesterday',
|
|
1660
|
+
'dash.cc.days_ago': '{n} days ago',
|
|
1661
|
+
'dash.nav.coming_soon': 'Soon',
|
|
1662
|
+
// Shipped and usable, but still moving. Not a warning and not an apology —
|
|
1663
|
+
// the honest state of a surface that hasn't settled yet.
|
|
1664
|
+
'dash.nav.early_access': 'Early Access',
|
|
1665
|
+
// ── Missing Navigation Keys ──────────────────────────────────────────
|
|
1666
|
+
'dash.nav.planner': 'Planner',
|
|
1667
|
+
'dash.nav.planner_desc': 'Tasks, journal, learning',
|
|
1668
|
+
'dash.nav.account': 'Account',
|
|
1669
|
+
'dash.nav.account_desc': 'Settings, billing, personalisation',
|
|
1670
|
+
'dash.nav.help': 'Help',
|
|
1671
|
+
'dash.nav.help_desc': 'Support, releases, roadmap',
|
|
1672
|
+
'dash.nav.learning_library_desc': 'Browse and start learning paths',
|
|
1673
|
+
'dash.nav.admin_support': 'Admin Support',
|
|
1674
|
+
'dash.nav.admin_support_desc': 'All user tickets',
|
|
1675
|
+
// ── Account Page Tabs ────────────────────────────────────────────────
|
|
1676
|
+
'dash.account.tab_settings': 'Settings',
|
|
1677
|
+
'dash.account.tab_billing': 'Billing',
|
|
1678
|
+
'dash.account.tab_connections': 'Connections',
|
|
1679
|
+
'dash.account.tab_personality': "Ava's Style",
|
|
1680
|
+
'dash.account.tab_sync': 'Sync',
|
|
1681
|
+
'dash.account.tab_keys': 'API Keys',
|
|
1682
|
+
// ── Help Page Tabs ───────────────────────────────────────────────────
|
|
1683
|
+
'dash.help.tab_support': 'Support',
|
|
1684
|
+
'dash.help.tab_releases': 'Releases',
|
|
1685
|
+
'dash.help.tab_roadmap': 'Roadmap',
|
|
1686
|
+
// ── Billing Page ─────────────────────────────────────────────────────
|
|
1687
|
+
'dash.billing.topup_title': 'Top Up Tokens',
|
|
1688
|
+
'dash.billing.topup_subtitle': 'Running low? Add extra tokens — they never expire.',
|
|
1689
|
+
'dash.billing.upgrade': 'Upgrade',
|
|
1690
|
+
'dash.billing.manage': 'Manage',
|
|
1691
|
+
// ── Connections Page ─────────────────────────────────────────────────
|
|
1692
|
+
'dash.connections.pat': 'Personal Access Token',
|
|
1693
|
+
'dash.connections.smtp_host': 'SMTP Host',
|
|
1694
|
+
'dash.connections.smtp_port': 'Port',
|
|
1695
|
+
'dash.connections.smtp_user': 'Username / Email',
|
|
1696
|
+
'dash.connections.smtp_password': 'Password / App Password',
|
|
1697
|
+
'dash.connections.slack_webhook': 'Incoming Webhook URL',
|
|
1698
|
+
'dash.connections.discord_webhook': 'Webhook URL',
|
|
1699
|
+
'dash.connections.connected': 'Connected',
|
|
1700
|
+
'dash.connections.not_connected': 'Not connected',
|
|
1701
|
+
'dash.connections.saving': 'Saving...',
|
|
1702
|
+
'dash.connections.save': 'Save',
|
|
1703
|
+
'dash.connections.update': 'Update',
|
|
1704
|
+
'dash.connections.connect': 'Connect',
|
|
1705
|
+
'dash.connections.disconnect': 'Disconnect',
|
|
1706
|
+
// ── Common UI ────────────────────────────────────────────────────────
|
|
1707
|
+
'dash.common.loading': 'Loading...',
|
|
1708
|
+
'dash.common.error': 'Something went wrong',
|
|
1709
|
+
'dash.common.save': 'Save',
|
|
1710
|
+
'dash.common.cancel': 'Cancel',
|
|
1711
|
+
'dash.common.delete': 'Delete',
|
|
1712
|
+
'dash.common.confirm': 'Confirm',
|
|
1713
|
+
'dash.common.back': 'Back',
|
|
1714
|
+
'dash.common.close': 'Close',
|
|
1715
|
+
'dash.common.search': 'Search...',
|
|
1716
|
+
'dash.common.all': 'All',
|
|
1717
|
+
'dash.common.none': 'None',
|
|
1718
|
+
// ── Extension Host Messages ──────────────────────────────────────────
|
|
1719
|
+
'ext.no_providers': 'No providers configured. Add an API key in Settings.',
|
|
1720
|
+
'ext.key_invalid': 'Your Ava platform API key is no longer valid. Please reconnect your account.',
|
|
1721
|
+
'ext.platform_unreachable': 'Could not reach the Ava platform. Platform features are unavailable. Your local API keys still work.',
|
|
1722
|
+
'ext.model_busy': 'Cannot switch model while Ava is working. Wait for the current task to finish.',
|
|
1723
|
+
'ext.export_failed': 'Failed to export conversation.',
|
|
1724
|
+
// ── IDE Page Titles & Subtitles ──────────────────────────────────────
|
|
1725
|
+
'dash.planner.subtitle': 'Tasks, reflections, and learning paths',
|
|
1726
|
+
'dash.account.title': 'Account',
|
|
1727
|
+
'dash.account.subtitle': 'Settings, billing, connections, and personalisation',
|
|
1728
|
+
'dash.help.subtitle': 'Support, release notes, and product roadmap',
|
|
1729
|
+
'dash.roadmap.subtitle': 'Where Ava has been and where she is heading.',
|
|
1730
|
+
'dash.roadmap.complete': 'Complete',
|
|
1731
|
+
'dash.roadmap.shipped': 'Shipped',
|
|
1732
|
+
'dash.roadmap.coming': 'Coming',
|
|
1733
|
+
// ── IDE Chat Status Messages ─────────────────────────────────────────
|
|
1734
|
+
'dash.chat.status.loading_memory': 'Loading memory...',
|
|
1735
|
+
'dash.chat.status.loading_personality': 'Loading personality...',
|
|
1736
|
+
'dash.chat.status.setting_language': 'Setting up language...',
|
|
1737
|
+
'dash.chat.status.connecting_model': 'Connecting to model...',
|
|
1738
|
+
'dash.chat.status.memory_agent_ready': 'Memory agent ready',
|
|
1739
|
+
'dash.chat.status.recalling_context': 'Recalling relevant context...',
|
|
1740
|
+
'dash.chat.status.rescanning_project': 'Re-scanning project...',
|
|
1741
|
+
'dash.chat.status.processing_image': 'Processing image...',
|
|
1742
|
+
'dash.chat.status.switching_provider': 'Switching provider...',
|
|
1743
|
+
'dash.chat.status.planning': 'Planning approach...',
|
|
1744
|
+
'dash.chat.status.executing': 'Executing plan...',
|
|
1745
|
+
'dash.chat.status.selecting_model': 'Selecting best model for task...',
|
|
1746
|
+
'dash.chat.status.spinning_agent': 'Spinning up specialist agent...',
|
|
1747
|
+
'dash.chat.status.compressing': 'Compressing context...',
|
|
1748
|
+
'dash.chat.status.thinking': 'Thinking...',
|
|
1749
|
+
'dash.chat.status.tool.bash': 'Running command...',
|
|
1750
|
+
'dash.chat.status.tool.glob': 'Scanning files...',
|
|
1751
|
+
'dash.chat.status.tool.grep': 'Searching code...',
|
|
1752
|
+
'dash.chat.status.tool.file_read': 'Reading file...',
|
|
1753
|
+
'dash.chat.status.tool.file_write': 'Writing code...',
|
|
1754
|
+
'dash.chat.status.tool.git': 'Checking git...',
|
|
1755
|
+
'dash.chat.status.tool.web_search': 'Searching the web...',
|
|
1756
|
+
'dash.chat.status.tool.memory_recall': 'Recalling memories...',
|
|
1757
|
+
'dash.chat.status.tool.memory_save': 'Saving to memory...',
|
|
1758
|
+
'dash.chat.status.tool.test_run': 'Running tests...',
|
|
1759
|
+
'dash.chat.status.tool.architecture': 'Analysing architecture...',
|
|
1760
|
+
'dash.chat.status.tool.project_index': 'Indexing project...',
|
|
1761
|
+
// ── IDE Sidebar ──────────────────────────────────────────────────────
|
|
1762
|
+
// Activity-bar TOOLTIPS. Separate from dash.sidebar.* below, which are the
|
|
1763
|
+
// panel headers and are deliberately UPPERCASE — reusing those here would
|
|
1764
|
+
// make every tooltip shout.
|
|
1765
|
+
'dash.activity.explorer': 'Explorer',
|
|
1766
|
+
'dash.activity.search': 'Search',
|
|
1767
|
+
'dash.activity.git': 'Source Control',
|
|
1768
|
+
'dash.activity.dashboard': 'Dashboard',
|
|
1769
|
+
'dash.activity.extensions': 'Extensions',
|
|
1770
|
+
'dash.activity.debug': 'Run and Debug',
|
|
1771
|
+
// The English plural was hardcoded as `change${n === 1 ? '' : 's'}`, which no
|
|
1772
|
+
// other language pluralises that way. One string per case instead.
|
|
1773
|
+
'dash.activity.uncommitted_one': '{label} — 1 uncommitted change',
|
|
1774
|
+
'dash.activity.uncommitted_many': '{label} — {count} uncommitted changes',
|
|
1775
|
+
'dash.sidebar.explorer': 'EXPLORER',
|
|
1776
|
+
'dash.sidebar.search': 'SEARCH',
|
|
1777
|
+
'dash.sidebar.git': 'SOURCE CONTROL',
|
|
1778
|
+
'dash.sidebar.ava': 'AVA',
|
|
1779
|
+
'dash.sidebar.extensions': 'EXTENSIONS',
|
|
1780
|
+
'dash.sidebar.debug': 'RUN AND DEBUG',
|
|
1781
|
+
'dash.sidebar.dashboard': 'DASHBOARD',
|
|
1782
|
+
'dash.sidebar.no_folder': 'No folder open',
|
|
1783
|
+
'dash.sidebar.search_placeholder': 'Search',
|
|
1784
|
+
'dash.sidebar.replace_placeholder': 'Replace',
|
|
1785
|
+
'dash.sidebar.ask_ava': 'Ask Ava...',
|
|
1786
|
+
'dash.sidebar.search_extensions': 'Search Extensions...',
|
|
1787
|
+
'dash.sidebar.ava_greeting': "Hello! I'm Ava, your AI coding assistant. How can I help you today?",
|
|
1788
|
+
'dash.sidebar.searching': 'Searching…',
|
|
1789
|
+
'dash.sidebar.no_matches': 'No matches.',
|
|
1790
|
+
'dash.sidebar.match_case': 'Match case',
|
|
1791
|
+
// ── Audit tab — most keys already exist below (underscore naming:
|
|
1792
|
+
// cat_*, risk_*, status_*, showing_range, security_lens…). Only the pieces
|
|
1793
|
+
// that vocabulary lacked are added here: pagination + the approval-cell
|
|
1794
|
+
// values (it had approval-column header but no per-value labels). ──────────
|
|
1795
|
+
'dash.audit.prev': 'Prev',
|
|
1796
|
+
'dash.audit.next': 'Next',
|
|
1797
|
+
'dash.audit.page': 'Page {n} of {total}',
|
|
1798
|
+
'dash.audit.appr_auto': 'auto',
|
|
1799
|
+
'dash.audit.appr_first-time': 'first-time',
|
|
1800
|
+
'dash.audit.appr_user-approved': 'user-approved',
|
|
1801
|
+
'dash.audit.appr_denied': 'denied',
|
|
1802
|
+
// ── Orchestration modes (shared by the model dropdown + the CC model picker,
|
|
1803
|
+
// which had drifted into two slightly different copies). Names are proper
|
|
1804
|
+
// nouns and stay as-is; only the descriptions are translated. ──────────────
|
|
1805
|
+
'dash.model.select': 'Select model',
|
|
1806
|
+
'dash.model.orchestrated': 'Orchestrated',
|
|
1807
|
+
// Extension dashboard — strings the IDE didn't already cover.
|
|
1808
|
+
'ext.memory.project_brain': 'Project Brain',
|
|
1809
|
+
'ext.memory.edges': 'Edges',
|
|
1810
|
+
'ext.memory.avg_confidence': 'Avg Confidence',
|
|
1811
|
+
'ext.memory.contradictions': 'Contradictions',
|
|
1812
|
+
'ext.memory.learned_patterns': 'Learned Patterns',
|
|
1813
|
+
'ext.chat.your_answer': 'Your answer',
|
|
1814
|
+
'ext.chat.reply_placeholder': 'Reply to Ava…',
|
|
1815
|
+
'ext.chat.design_chat': 'Design chat',
|
|
1816
|
+
'ext.chat.clear_design_chat': 'Clear the design chat',
|
|
1817
|
+
'ext.chat.summarising': 'Ava is summarising older messages to free up space',
|
|
1818
|
+
'ext.header.chat_controls': 'Chat controls',
|
|
1819
|
+
// History surface tabs + rename (the code already calls these keys; they were
|
|
1820
|
+
// just never added, so tt() fell back to English).
|
|
1821
|
+
'dash.history.tab.all': 'All',
|
|
1822
|
+
'dash.history.tab.chat': 'Chat',
|
|
1823
|
+
'dash.history.tab.design': 'Design',
|
|
1824
|
+
'dash.history.tab.health': 'Health',
|
|
1825
|
+
'dash.history.tab.learning': 'Learning',
|
|
1826
|
+
'dash.history.tab.social': 'Social',
|
|
1827
|
+
'dash.history.rename': 'Rename',
|
|
1828
|
+
// Memory category labels (were derived from the raw slug — pattern → "Pattern").
|
|
1829
|
+
'memory.category.pattern': 'Pattern',
|
|
1830
|
+
'memory.category.preference': 'Preference',
|
|
1831
|
+
'memory.category.architecture': 'Architecture',
|
|
1832
|
+
'memory.category.bug-fix': 'Bug fix',
|
|
1833
|
+
'memory.category.convention': 'Convention',
|
|
1834
|
+
'memory.category.tool-config': 'Tool config',
|
|
1835
|
+
'memory.category.decision': 'Decision',
|
|
1836
|
+
'memory.category.person': 'Person',
|
|
1837
|
+
'memory.category.general': 'General',
|
|
1838
|
+
// Planner + Tasks.
|
|
1839
|
+
'ext.planner.subtitle': 'Tasks, reflections, and plans',
|
|
1840
|
+
'ext.tasks.showing_for': 'Showing tasks for',
|
|
1841
|
+
'ext.tasks.today': 'today',
|
|
1842
|
+
'ext.tasks.selected_day': 'Selected day',
|
|
1843
|
+
'ext.settings.welcome_tour': 'Welcome tour',
|
|
1844
|
+
'ext.settings.replay_tour': 'Replay welcome tour',
|
|
1845
|
+
'ext.settings.replay_tour_hint': 'See the first-run walkthrough again.',
|
|
1846
|
+
'ext.progression.novice': 'Novice',
|
|
1847
|
+
'ext.progression.familiar': 'Familiar',
|
|
1848
|
+
'ext.progression.proficient': 'Proficient',
|
|
1849
|
+
'ext.progression.mastered': 'Mastered',
|
|
1850
|
+
'ext.lesson.you_did_it': 'You did it',
|
|
1851
|
+
'ext.lesson.answer_ph': 'Your answer…',
|
|
1852
|
+
'ext.lesson.strong_answer': 'What a strong answer has',
|
|
1853
|
+
'ext.lesson.soon': 'Soon: Ava reads your actual answer and grades it against this live.',
|
|
1854
|
+
'ext.vault.reference_hint': 'Reference a key by label in your message. Ava receives an opaque handle — the value is swapped in on your machine when a tool runs, so it never reaches the model or your saved chat.',
|
|
1855
|
+
'ext.vault.autogrant_hint': 'Auto-granted to Ava on this project — clear by deleting and re-adding the secret',
|
|
1856
|
+
'ext.tasks.no_reminder': 'No reminder',
|
|
1857
|
+
'ext.tasks.at_time': 'At time',
|
|
1858
|
+
'ext.storage.click_manage': 'Click to manage',
|
|
1859
|
+
'ext.studio.group.game_dev': 'Game Dev',
|
|
1860
|
+
// Extension Design Studio — strings beyond what dash.studio.* already covers.
|
|
1861
|
+
'ext.studio.download_copy': 'Download a copy',
|
|
1862
|
+
'ext.studio.brand_kits': 'Brand Kits',
|
|
1863
|
+
'ext.studio.brand_kits_sub': 'Multiple brands, one active. The active kit is what every icon, image, and post comes out on. Click a kit to edit it.',
|
|
1864
|
+
'ext.studio.make_active': 'Make active',
|
|
1865
|
+
'ext.studio.brand_name': 'Brand name',
|
|
1866
|
+
'ext.studio.tagline': 'Tagline',
|
|
1867
|
+
'ext.studio.positioning': 'Positioning',
|
|
1868
|
+
'ext.studio.positioning_ph': "what it is + who it's for",
|
|
1869
|
+
'ext.studio.voice_tone': 'Voice / tone (flows into posts)',
|
|
1870
|
+
'ext.studio.voice_ph': 'First person, punchy, honest, no hype…',
|
|
1871
|
+
'ext.studio.default_link': 'Default link',
|
|
1872
|
+
'ext.studio.logo_upload_hint': 'Upload one, or ask Ava to set the image she just made as your logo.',
|
|
1873
|
+
'ext.studio.image_empty': 'Your image will appear here',
|
|
1874
|
+
'ext.studio.image_empty_hint': 'Describe it — Ava composes it and it appears here.',
|
|
1875
|
+
'ext.studio.icon_lane_intro': 'Talk to Ava — she gauges the brand, proposes the mark, designs it and tells you why.',
|
|
1876
|
+
// Design-chat starter chips — label + prompt (the prompt prefills the composer,
|
|
1877
|
+
// so a non-English user shouldn't see an English sentence appear).
|
|
1878
|
+
'ext.chat.starter.icon.1_l': 'Make an icon',
|
|
1879
|
+
'ext.chat.starter.icon.1_p': 'Design a bell icon in glass, in my brand colours',
|
|
1880
|
+
'ext.chat.starter.icon.2_l': 'A whole set',
|
|
1881
|
+
'ext.chat.starter.icon.2_p': 'Make me a matching icon set for my app',
|
|
1882
|
+
'ext.chat.starter.icon.3_l': 'Logo ideas',
|
|
1883
|
+
'ext.chat.starter.icon.3_p': 'Give me a few logo directions for my brand',
|
|
1884
|
+
'ext.chat.starter.icon.4_l': 'Which material?',
|
|
1885
|
+
'ext.chat.starter.icon.4_p': 'What material suits a premium, trustworthy brand?',
|
|
1886
|
+
'ext.chat.starter.video.1_l': 'Film a scene',
|
|
1887
|
+
'ext.chat.starter.video.1_p': 'Create a video: a slow cinematic dolly-in down a neon-lit, rain-slicked street at night',
|
|
1888
|
+
'ext.chat.starter.video.2_l': 'Product in motion',
|
|
1889
|
+
'ext.chat.starter.video.2_p': 'A short clip of my product turning slowly on a clean studio backdrop, soft key light',
|
|
1890
|
+
'ext.chat.starter.video.3_l': 'Set a mood',
|
|
1891
|
+
'ext.chat.starter.video.3_p': 'A calm 5-second atmospheric clip — soft morning light, gentle drifting motion',
|
|
1892
|
+
'ext.chat.starter.video.4_l': 'Vertical for social',
|
|
1893
|
+
'ext.chat.starter.video.4_p': 'A punchy vertical 9:16 clip for social, bright and energetic',
|
|
1894
|
+
'ext.chat.starter.voice.1_l': 'Narrate a script',
|
|
1895
|
+
'ext.chat.starter.voice.1_p': 'Narrate this in a warm, calm voice: ',
|
|
1896
|
+
'ext.chat.starter.voice.2_l': 'A warm read',
|
|
1897
|
+
'ext.chat.starter.voice.2_p': 'A warm, unhurried, reassuring intro read for my product',
|
|
1898
|
+
'ext.chat.starter.voice.3_l': 'A trailer VO',
|
|
1899
|
+
'ext.chat.starter.voice.3_p': 'A dramatic, high-energy trailer voiceover',
|
|
1900
|
+
'ext.chat.starter.voice.4_l': 'Translate a VO',
|
|
1901
|
+
'ext.chat.starter.voice.4_p': 'Voice this in French, in the same voice: ',
|
|
1902
|
+
'ext.chat.starter.image.1_l': 'A hero image',
|
|
1903
|
+
'ext.chat.starter.image.1_p': 'Compose a hero image: a sleek product on a gradient studio backdrop, cinematic lighting',
|
|
1904
|
+
'ext.chat.starter.image.2_l': 'An illustration',
|
|
1905
|
+
'ext.chat.starter.image.2_p': 'A flat vector illustration of a rocket launching, bold and playful',
|
|
1906
|
+
'ext.chat.starter.image.3_l': 'A background',
|
|
1907
|
+
'ext.chat.starter.image.3_p': 'An abstract gradient background, deep purples and blues, subtle grain',
|
|
1908
|
+
'ext.chat.starter.image.4_l': 'A scene',
|
|
1909
|
+
'ext.chat.starter.image.4_p': 'A cozy reading nook by a rainy window, warm light, photorealistic',
|
|
1910
|
+
'ext.chat.starter.logo.1_l': 'Design my logo',
|
|
1911
|
+
'ext.chat.starter.logo.1_p': 'Design a logo for my brand — work from my brand kit',
|
|
1912
|
+
'ext.chat.starter.logo.2_l': 'From an idea',
|
|
1913
|
+
'ext.chat.starter.logo.2_p': 'Design a logo around this idea: ',
|
|
1914
|
+
'ext.chat.starter.logo.3_l': 'A few directions',
|
|
1915
|
+
'ext.chat.starter.logo.3_p': 'Give me a few different logo directions for my brand',
|
|
1916
|
+
'ext.chat.starter.logo.4_l': 'Which font fits?',
|
|
1917
|
+
'ext.chat.starter.logo.4_p': 'What wordmark font suits a premium, trustworthy brand?',
|
|
1918
|
+
'model.add_key': 'Add key',
|
|
1919
|
+
// Orchestration-mode subtitles. Proper nouns (Qwen, DeepSeek, Mistral, BYOK)
|
|
1920
|
+
// stay; only the surrounding words translate.
|
|
1921
|
+
'dash.model.sub.maestro_best': 'Best model per task',
|
|
1922
|
+
'dash.model.sub.byok_qwen': 'BYOK · Qwen',
|
|
1923
|
+
'dash.model.sub.supernova_poly': 'Polyglot ensemble',
|
|
1924
|
+
'dash.model.sub.byok_ds_qwen': 'BYOK · DeepSeek + Qwen',
|
|
1925
|
+
'dash.model.sub.aurora_eu': 'EU stack — Mistral end-to-end',
|
|
1926
|
+
'dash.model.sub.byok_mistral': 'BYOK · Mistral',
|
|
1927
|
+
'dash.model.sub.add_deepseek': 'Add DeepSeek key',
|
|
1928
|
+
'dash.model.sub.add_qwen': 'Add Qwen key',
|
|
1929
|
+
'dash.model.sub.connect_ds_qwen': 'Connect or add DeepSeek + Qwen keys',
|
|
1930
|
+
'dash.model.sub.connect_mistral': 'Connect or add Mistral key',
|
|
1931
|
+
'dash.model.sub.connect_qwen': 'Connect or add Qwen key',
|
|
1932
|
+
// Docs "deeper" expander. Was hardcoded English in BOTH the IDE
|
|
1933
|
+
// (DocumentationPage) and the companion (CompanionDocs), so it stayed
|
|
1934
|
+
// English inside otherwise fully translated documentation.
|
|
1935
|
+
'docs.show_details': 'Show me the details',
|
|
1936
|
+
// Longxiang — plan runs it on credits, BYOK unlocks it with all three keys.
|
|
1937
|
+
// NOT "open weights end to end" — that is only true once Qwen 3.7 Plus
|
|
1938
|
+
// weights are public. Purely factual until then.
|
|
1939
|
+
'dash.model.sub.longxiang_open': 'Kimi K3 + Qwen + DeepSeek',
|
|
1940
|
+
'dash.model.sub.byok_longxiang': 'BYOK · Moonshot + Qwen + DeepSeek',
|
|
1941
|
+
'dash.model.sub.add_moonshot': 'Add Moonshot key',
|
|
1942
|
+
'dash.model.sub.connect_longxiang': 'Connect or add 3 keys',
|
|
1943
|
+
'dash.model.aurora_title': 'Aurora — Mistral-only EU stack. Three-tier fleet: Mistral Medium 3.5 leads (coordinator + Builder + vision + deep specialists), Mistral Small 4 carries the volume (chat, long-context, brainstorm, intent gate), Mistral Large 3 is the heavy reserve. EU-only data residency, GDPR-strict, open weights.',
|
|
1944
|
+
'dash.model.supernova_title': 'Supernova — DeepSeek V4 Pro coordinator + V4 Flash specialists with Qwen builders. Heavy multi-step work.',
|
|
1945
|
+
'dash.model.maestro_title': 'Maestro — single Qwen 3.7 Plus conductor. Daily work, predictable cost.',
|
|
1946
|
+
// Careful with this string: it must NOT claim "open weights end to end"
|
|
1947
|
+
// until Qwen 3.7 Plus weights are actually public. See longxiang-router.ts.
|
|
1948
|
+
'dash.model.longxiang_title': 'Longxiang (龙翔) — the Chinese-model fleet. Kimi K3 leads as coordinator and Builder, Qwen 3.7 Plus carries mid-tier builds and vision, DeepSeek V4 Flash handles volume. Available on a plan, or with your own Moonshot + Qwen + DeepSeek keys. K3 is the priciest model we serve, so it uses more credits per turn than the other fleets.',
|
|
1949
|
+
// ── Command Centre chrome ────────────────────────────────────────────────
|
|
1950
|
+
'dash.cc.call_you_ph': 'What should Ava call you?',
|
|
1951
|
+
'dash.cc.call_you_click': 'Click to change what Ava calls you',
|
|
1952
|
+
'dash.cc.call_you_tell': 'Tell Ava what to call you',
|
|
1953
|
+
'dash.cc.weather_hint': 'Weather — see Daily for details',
|
|
1954
|
+
'dash.cc.hours_hint': 'Working hours — change on Daily tab',
|
|
1955
|
+
'dash.cc.where_start': 'Where do we start?',
|
|
1956
|
+
'dash.cc.qs_subtitle': 'I can read your code, plan a feature, teach you something, audit security, brainstorm, or just chat. Pick one — you can edit before sending.',
|
|
1957
|
+
'dash.cc.tip_prefix': 'Tip: type',
|
|
1958
|
+
'dash.cc.tip_suffix': 'to switch modes any time.',
|
|
1959
|
+
// Quick-start cards. Label is the chip; the `prefix`/`prompt` are mode
|
|
1960
|
+
// protocol + composer prefill — the prefix is NEVER translated (core gates
|
|
1961
|
+
// tool lanes on it), the prompt is.
|
|
1962
|
+
'dash.cc.qs.explain': 'Explain a file',
|
|
1963
|
+
'dash.cc.qs.explain_p': 'Explain what this file does: ',
|
|
1964
|
+
'dash.cc.qs.plan': 'Plan a feature',
|
|
1965
|
+
'dash.cc.qs.plan_p': 'How should I approach adding ',
|
|
1966
|
+
'dash.cc.qs.teach': 'Teach me',
|
|
1967
|
+
'dash.cc.qs.teach_p': 'Teach me about ',
|
|
1968
|
+
'dash.cc.qs.audit': 'Audit security',
|
|
1969
|
+
'dash.cc.qs.audit_p': 'Audit this project for security issues',
|
|
1970
|
+
'dash.cc.qs.brainstorm': 'Brainstorm',
|
|
1971
|
+
'dash.cc.qs.brainstorm_p': 'Help me think through ',
|
|
1972
|
+
'dash.cc.qs.chat': 'Just chat',
|
|
1973
|
+
// Desktop-mode starters.
|
|
1974
|
+
'dash.desktop.starter.app': 'Open an app',
|
|
1975
|
+
'dash.desktop.starter.app_p': 'Open Notepad',
|
|
1976
|
+
'dash.desktop.starter.form': 'Fill a form',
|
|
1977
|
+
'dash.desktop.starter.form_p': 'Fill in the form on screen: ',
|
|
1978
|
+
'dash.desktop.starter.files': 'Tidy my files',
|
|
1979
|
+
'dash.desktop.starter.files_p': 'Organise the files in this folder: ',
|
|
1980
|
+
'dash.desktop.starter.research': 'Research → paste',
|
|
1981
|
+
'dash.desktop.starter.research_p': 'Search the web and paste a short summary into the open document: ',
|
|
1982
|
+
// Misc chrome.
|
|
1983
|
+
'dash.cc.ava_wants_to_run': 'Ava wants to run',
|
|
1984
|
+
'dash.cc.auto_approve_cat': 'Auto-approve this tool category for the rest of the session',
|
|
1985
|
+
'dash.cc.permission': 'Permission',
|
|
1986
|
+
'dash.cc.try': 'Try',
|
|
1987
|
+
'dash.cc.early_access': 'Early Access',
|
|
1988
|
+
'dash.chat.rename_conv': 'Rename conversation',
|
|
1989
|
+
'dash.chat.delete_conv': 'Delete conversation',
|
|
1990
|
+
'dash.chat.reference_with': 'Reference with',
|
|
1991
|
+
'dash.chat.close_vault': 'Close vault',
|
|
1992
|
+
'dash.chat.stay_on_model': 'Stay on the current model — desktop tools may behave unreliably.',
|
|
1993
|
+
'dash.library.close_preview': 'Close preview',
|
|
1994
|
+
'dash.library.no_inline_preview': 'Inline preview unavailable — use Open to view in your default app.',
|
|
1995
|
+
'dash.library.open_folder': 'Open the local creative folder on disk',
|
|
1996
|
+
'dash.library.source': 'Source',
|
|
1997
|
+
'dash.learning.your_path': 'Your learning path',
|
|
1998
|
+
'dash.learning.prerequisites': 'Prerequisites:',
|
|
1999
|
+
// 'dash.learning.progress' already exists — reused, not redefined.
|
|
2000
|
+
'dash.common.refresh': 'Refresh',
|
|
2001
|
+
'dash.common.new_document': '+ New document',
|
|
2002
|
+
'dash.widget.refresh_title': 'Refresh {what}',
|
|
2003
|
+
'dash.audit.refresh_hint': 'Refresh — re-verify file integrity and load new entries',
|
|
2004
|
+
'dash.common.description': 'Description',
|
|
2005
|
+
// Document types + templates.
|
|
2006
|
+
'dash.docs.type.docx': 'Word Document',
|
|
2007
|
+
'dash.docs.type.xlsx': 'Spreadsheet',
|
|
2008
|
+
'dash.docs.type.md': 'Markdown',
|
|
2009
|
+
'dash.docs.type.txt': 'Text file',
|
|
2010
|
+
'dash.docs.tpl.proposal': 'Project Proposal',
|
|
2011
|
+
'dash.docs.tpl.proposal_d': 'Executive summary, objectives, timeline',
|
|
2012
|
+
'dash.docs.tpl.status': 'Status Report',
|
|
2013
|
+
'dash.docs.tpl.status_d': 'Progress, issues, next steps',
|
|
2014
|
+
'dash.docs.tpl.invoice': 'Invoice',
|
|
2015
|
+
'dash.docs.tpl.invoice_d': 'Items table, payment terms',
|
|
2016
|
+
'dash.docs.tpl.letter': 'Formal Letter',
|
|
2017
|
+
'dash.docs.tpl.letter_d': 'Recipient, body, closing',
|
|
2018
|
+
'dash.docs.tpl.meeting': 'Meeting Notes',
|
|
2019
|
+
'dash.docs.tpl.meeting_d': 'Agenda, discussion, action items',
|
|
2020
|
+
'dash.docs.tpl.resume': 'Resume',
|
|
2021
|
+
'dash.docs.tpl.resume_d': 'Contact, experience, education, skills',
|
|
2022
|
+
// ── Library — Scientific Papers ──────────────────────────────────────────
|
|
2023
|
+
'ide.papers.disc.all': 'All',
|
|
2024
|
+
'ide.papers.disc.ai_cs': 'AI & CS',
|
|
2025
|
+
'ide.papers.disc.biology': 'Biology',
|
|
2026
|
+
'ide.papers.disc.medicine': 'Medicine',
|
|
2027
|
+
'ide.papers.disc.physics': 'Physics',
|
|
2028
|
+
'ide.papers.disc.chemistry': 'Chemistry',
|
|
2029
|
+
'ide.papers.disc.earth_sciences': 'Earth Sciences',
|
|
2030
|
+
'ide.papers.disc.social_sciences': 'Social Sciences',
|
|
2031
|
+
'ide.papers.disc.economics': 'Economics',
|
|
2032
|
+
'ide.papers.disc.engineering': 'Engineering',
|
|
2033
|
+
'ide.papers.disc.math': 'Math',
|
|
2034
|
+
'ide.papers.disc.other': 'Other',
|
|
2035
|
+
'ide.papers.tab.featured': 'Featured',
|
|
2036
|
+
'ide.papers.tab.featured_hint': "Ava's editorial picks",
|
|
2037
|
+
'ide.papers.tab.trending': 'Trending',
|
|
2038
|
+
'ide.papers.tab.trending_hint': "What's getting attention",
|
|
2039
|
+
'ide.papers.tab.latest': 'Latest',
|
|
2040
|
+
'ide.papers.tab.latest_hint': 'Newest additions',
|
|
2041
|
+
'ide.papers.search_ph': 'Search across all sciences — title, author, topic...',
|
|
2042
|
+
'ide.papers.clear_search': 'Clear search',
|
|
2043
|
+
'ide.papers.close': 'Close',
|
|
2044
|
+
'ide.papers.abstract': 'Abstract',
|
|
2045
|
+
// Medical disclaimer. Translated like everything else, but flagged: a
|
|
2046
|
+
// mistranslated safety notice is a different class of problem from a
|
|
2047
|
+
// mistranslated button — worth a human read in each locale.
|
|
2048
|
+
// "Read with Ava" primer — user-visible (it appears as a chat bubble) AND the
|
|
2049
|
+
// instruction Ava follows. The tool name `paper_fetch_full_text` and the paper
|
|
2050
|
+
// identifier stay literal; everything else is translated.
|
|
2051
|
+
'ide.papers.primer_tag': '[Read with Ava]',
|
|
2052
|
+
'ide.papers.primer_intro': "I'd like you to read and explain this scientific paper for me. Use the four-layer pass: 1. What's the question? (one plain-English sentence). 2. Why does it matter? (the human stake). 3. What did they do? (method, jargon-stripped). 4. What did they find — and how confident should I be? (results + caveats specific to this paper's discipline).",
|
|
2053
|
+
'ide.papers.primer_paper': 'Paper: **{title}**',
|
|
2054
|
+
'ide.papers.primer_authors': 'Authors: {authors}',
|
|
2055
|
+
'ide.papers.primer_etal': 'et al.',
|
|
2056
|
+
'ide.papers.primer_identifier': 'Identifier: `{ident}`',
|
|
2057
|
+
'ide.papers.primer_url': 'URL: {url}',
|
|
2058
|
+
'ide.papers.primer_retracted': '⚠ This paper is marked as RETRACTED. Surface that to me before discussing findings.',
|
|
2059
|
+
'ide.papers.primer_fetch': 'Fetch the full text via the `paper_fetch_full_text` tool first if you need more than the abstract, then walk me through it.',
|
|
2060
|
+
'ide.papers.not_medical_advice': 'Not medical advice.',
|
|
2061
|
+
'ide.papers.not_medical_advice_body': "Ava's explanation is summarisation, not clinical guidance. Talk to a healthcare professional before acting on anything from this paper.",
|
|
2062
|
+
// Updater.
|
|
2063
|
+
'ide.update.checking': 'Checking for updates...',
|
|
2064
|
+
'ide.update.available': 'Update Available',
|
|
2065
|
+
'ide.update.later': 'Later',
|
|
2066
|
+
'ide.update.now': 'Update Now',
|
|
2067
|
+
'ide.update.downloading': 'Downloading...',
|
|
2068
|
+
'ide.update.restart': 'Restart to Apply',
|
|
2069
|
+
'ide.update.retry': 'Retry',
|
|
2070
|
+
// Storage panel.
|
|
2071
|
+
'ide.storage.close': 'Close',
|
|
2072
|
+
'ide.storage.reveal': 'Reveal the ~/.ava data folder',
|
|
2073
|
+
'ide.storage.reclaim': 'Reclaim',
|
|
2074
|
+
'ide.storage.freeing': 'Freeing…',
|
|
2075
|
+
'ide.storage.free_n': 'Free {size}',
|
|
2076
|
+
// Title bar / context bar / ticker.
|
|
2077
|
+
'ide.titlebar.open_folder': 'Open Folder',
|
|
2078
|
+
'ide.contextbar.context': 'Context',
|
|
2079
|
+
'ide.ticker.dismiss': 'Dismiss announcement',
|
|
2080
|
+
// Mini date picker.
|
|
2081
|
+
'ide.datepicker.prev_year': 'Previous year',
|
|
2082
|
+
'ide.datepicker.prev_month': 'Previous month',
|
|
2083
|
+
'ide.datepicker.next_month': 'Next month',
|
|
2084
|
+
'ide.datepicker.next_year': 'Next year',
|
|
2085
|
+
'dash.sidebar.whole_word': 'Whole word',
|
|
2086
|
+
'dash.sidebar.regex': 'Use regular expression',
|
|
2087
|
+
'dash.sidebar.files_to_include': 'files to include (e.g. *.ts,src/**)',
|
|
2088
|
+
'dash.sidebar.commits_ahead': 'Commits ahead of upstream',
|
|
2089
|
+
'dash.sidebar.commits_behind': 'Commits behind upstream',
|
|
2090
|
+
'dash.sidebar.stage_all': 'Stage all',
|
|
2091
|
+
'dash.sidebar.unstage_all': 'Unstage all',
|
|
2092
|
+
'dash.sidebar.discard_all': 'Discard all',
|
|
2093
|
+
'dash.sidebar.loading': 'Loading…',
|
|
2094
|
+
'dash.sidebar.retry': 'Retry',
|
|
2095
|
+
'dash.sidebar.expand': 'Expand sidebar',
|
|
2096
|
+
'dash.sidebar.collapse': 'Collapse sidebar',
|
|
2097
|
+
'dash.sidebar.show_calendar': 'Show calendar',
|
|
2098
|
+
'dash.sidebar.hide_calendar': 'Hide calendar',
|
|
2099
|
+
'dash.sidebar.commit_placeholder': 'Message (Ctrl+Enter to commit)',
|
|
2100
|
+
'dash.sidebar.no_configuration': 'No Configuration',
|
|
2101
|
+
'dash.sidebar.search_needs_folder': 'Open a folder first — search needs a workspace to walk.',
|
|
2102
|
+
// Calendar legend dots.
|
|
2103
|
+
'dash.sidebar.legend_training': 'Training',
|
|
2104
|
+
'dash.sidebar.legend_meals': 'Meals',
|
|
2105
|
+
'dash.sidebar.legend_tasks': 'Tasks',
|
|
2106
|
+
// ── IDE Title Bar ────────────────────────────────────────────────────
|
|
2107
|
+
'dash.titlebar.file': 'File',
|
|
2108
|
+
'dash.titlebar.open_folder': 'Open Folder',
|
|
2109
|
+
// ── IDE Editor ───────────────────────────────────────────────────────
|
|
2110
|
+
'dash.editor.loading': 'Loading...',
|
|
2111
|
+
'dash.editor.file_error': 'Cannot display this file (binary or unreadable)',
|
|
2112
|
+
// ── IDE Memory Dialogs ───────────────────────────────────────────────
|
|
2113
|
+
'dash.memory.delete_all_confirm': 'Are you sure you want to delete all memories?',
|
|
2114
|
+
'dash.memory.delete_all_warning': 'This is permanent and cannot be undone. ALL memories will be deleted.',
|
|
2115
|
+
'dash.memory.delete_all_confirm_btn': 'Yes, delete all permanently',
|
|
2116
|
+
'dash.memory.deleting_progress': 'Deleting all memories... This may take a moment.',
|
|
2117
|
+
'dash.memory.deleting_warning': 'Please stay on this page — leaving will interrupt the deletion.',
|
|
2118
|
+
// ── Health Plans (Planner › Plans tab) ────────────────────────────────
|
|
2119
|
+
'health.plans.type.fitness': 'Fitness',
|
|
2120
|
+
'health.plans.type.fitness.blurb': 'Training weeks — exercises, sets, progression.',
|
|
2121
|
+
'health.plans.type.meal': 'Meal',
|
|
2122
|
+
'health.plans.type.meal.blurb': 'Nutrition weeks — meals, servings, day totals.',
|
|
2123
|
+
'health.plans.type.combined': 'Combined',
|
|
2124
|
+
'health.plans.type.combined.blurb': 'Training and meals woven together.',
|
|
2125
|
+
'health.plans.status.draft': 'Draft',
|
|
2126
|
+
'health.plans.status.active': 'Active',
|
|
2127
|
+
'health.plans.status.completed': 'Completed',
|
|
2128
|
+
'health.plans.status.archived': 'Archived',
|
|
2129
|
+
'health.plans.slot.breakfast': 'Breakfast',
|
|
2130
|
+
'health.plans.slot.lunch': 'Lunch',
|
|
2131
|
+
'health.plans.slot.dinner': 'Dinner',
|
|
2132
|
+
'health.plans.slot.snack': 'Snack',
|
|
2133
|
+
'health.plans.weekday.0': 'Sun',
|
|
2134
|
+
'health.plans.weekday.1': 'Mon',
|
|
2135
|
+
'health.plans.weekday.2': 'Tue',
|
|
2136
|
+
'health.plans.weekday.3': 'Wed',
|
|
2137
|
+
'health.plans.weekday.4': 'Thu',
|
|
2138
|
+
'health.plans.weekday.5': 'Fri',
|
|
2139
|
+
'health.plans.weekday.6': 'Sat',
|
|
2140
|
+
'health.plans.weekday_initial.0': 'S',
|
|
2141
|
+
'health.plans.weekday_initial.1': 'M',
|
|
2142
|
+
'health.plans.weekday_initial.2': 'T',
|
|
2143
|
+
'health.plans.weekday_initial.3': 'W',
|
|
2144
|
+
'health.plans.weekday_initial.4': 'T',
|
|
2145
|
+
'health.plans.weekday_initial.5': 'F',
|
|
2146
|
+
'health.plans.weekday_initial.6': 'S',
|
|
2147
|
+
'health.plans.duration.day_one': '1 day',
|
|
2148
|
+
'health.plans.duration.week_one': '1 week',
|
|
2149
|
+
'health.plans.duration.weeks': '{n} weeks',
|
|
2150
|
+
'health.plans.new_plan_title': 'New {type} plan',
|
|
2151
|
+
'health.plans.macro.cal': 'Cal',
|
|
2152
|
+
'health.plans.macro.protein': 'Protein',
|
|
2153
|
+
'health.plans.macro.carbs': 'Carbs',
|
|
2154
|
+
'health.plans.macro.fat': 'Fat',
|
|
2155
|
+
'health.plans.your_plans': 'Your plans',
|
|
2156
|
+
'health.plans.your_plans_blurb': 'Multi-week fitness, meal, and combined programs — built day by day from the recipe and exercise library.',
|
|
2157
|
+
'health.plans.new_plan': '+ New plan',
|
|
2158
|
+
'health.plans.tab.calendar': 'Calendar',
|
|
2159
|
+
'health.plans.tab.programs': 'Programs',
|
|
2160
|
+
'health.plans.empty_title': 'No programs yet',
|
|
2161
|
+
'health.plans.empty_hint': 'Start one with “+ New plan” — pick a type and a length, then fill the days.',
|
|
2162
|
+
'health.plans.built_by_you': 'built by you',
|
|
2163
|
+
'health.plans.delete_q': 'Delete?',
|
|
2164
|
+
'health.plans.yes': 'Yes',
|
|
2165
|
+
'health.plans.no': 'No',
|
|
2166
|
+
'health.plans.delete_plan': 'Delete plan',
|
|
2167
|
+
'health.plans.new_plan_title_short': 'New plan',
|
|
2168
|
+
'health.plans.setup_subtitle': 'Pick a type and a length — then build it day by day.',
|
|
2169
|
+
'health.plans.cancel': 'Cancel',
|
|
2170
|
+
'health.plans.type_label': 'Type',
|
|
2171
|
+
'health.plans.length_label': 'Length',
|
|
2172
|
+
'health.plans.start_building': 'Start building →',
|
|
2173
|
+
'health.plans.pick_type_first': 'Pick a type first.',
|
|
2174
|
+
'health.plans.build_myself': 'Build myself →',
|
|
2175
|
+
'health.plans.build_myself_desc': 'Lay it out yourself, day by day, from the library.',
|
|
2176
|
+
'health.plans.ask_ava': 'Ask Ava →',
|
|
2177
|
+
'health.plans.ask_ava_hint': 'Ava builds it around your profile, goals and the real catalogue.',
|
|
2178
|
+
'health.plans.how_label': 'How shall we build it?',
|
|
2179
|
+
'health.plans.length_ava_note': 'Length applies to “Build myself”. Ask Ava and she’ll settle it with you.',
|
|
2180
|
+
'health.plans.or': 'or',
|
|
2181
|
+
'health.plans.all_plans': '← All plans',
|
|
2182
|
+
'health.plans.autosave': 'Changes save automatically',
|
|
2183
|
+
'health.plans.title_placeholder': 'Plan title',
|
|
2184
|
+
'health.plans.status_select_title': 'Activating a plan archives any other active plan of the same type',
|
|
2185
|
+
'health.plans.goal_placeholder': 'Goal — e.g. lose 4 kg, first 5 k, build pressing strength',
|
|
2186
|
+
'health.plans.delete_confirm': 'Delete this plan permanently?',
|
|
2187
|
+
'health.plans.delete': 'Delete',
|
|
2188
|
+
'health.plans.prev_month': 'Previous month',
|
|
2189
|
+
'health.plans.next_month': 'Next month',
|
|
2190
|
+
'health.plans.day_n': 'Day {n}',
|
|
2191
|
+
'health.plans.kind.training': 'Training',
|
|
2192
|
+
'health.plans.kind.active_recovery': 'Active recovery',
|
|
2193
|
+
'health.plans.kind.rest': 'Rest',
|
|
2194
|
+
'health.plans.edit_day': 'Edit day',
|
|
2195
|
+
'health.plans.edit': 'Edit',
|
|
2196
|
+
'health.plans.swap': 'Swap',
|
|
2197
|
+
'health.plans.day_title_placeholder': 'Day title — e.g. Upper body, Long run',
|
|
2198
|
+
'health.plans.done': 'Done',
|
|
2199
|
+
'health.plans.training': 'Training',
|
|
2200
|
+
'health.plans.add_exercises': '+ Add exercises',
|
|
2201
|
+
'health.plans.training_empty_hint': 'Pick exercises from the library — sets and reps fill in from each one\'s routine.',
|
|
2202
|
+
'health.plans.meals': 'Meals',
|
|
2203
|
+
'health.plans.add_recipes': '+ Add recipes',
|
|
2204
|
+
'health.plans.meals_empty_hint': 'Pick recipes from the library — nutrition is worked out from servings.',
|
|
2205
|
+
'health.plans.day_total': 'Day total',
|
|
2206
|
+
'health.plans.estimated': 'estimated',
|
|
2207
|
+
// Day view — a date's agenda across all active plans
|
|
2208
|
+
'health.plans.on_this_day': 'On this day',
|
|
2209
|
+
'health.plans.day_empty': 'Nothing scheduled this day.',
|
|
2210
|
+
'health.plans.no_workout': 'No workout — rest day.',
|
|
2211
|
+
'health.plans.no_meals': 'No meals planned.',
|
|
2212
|
+
'health.plans.day_notes_placeholder': 'Day notes (optional)',
|
|
2213
|
+
'health.plans.n_sets': '{n} sets',
|
|
2214
|
+
'health.plans.n_rest': '{n}s rest',
|
|
2215
|
+
'health.plans.n_servings': '{n} servings',
|
|
2216
|
+
'health.plans.n_cal': '{n} cal',
|
|
2217
|
+
'health.plans.n_protein': '{n}g protein',
|
|
2218
|
+
'health.plans.n_cook': '{n} min',
|
|
2219
|
+
'health.plans.nothing_scheduled_both': 'Nothing scheduled — hit “Edit day” to add exercises or meals.',
|
|
2220
|
+
'health.plans.nothing_scheduled_meals': 'Nothing scheduled — hit “Edit day” to add meals.',
|
|
2221
|
+
'health.plans.nothing_scheduled_training': 'Nothing scheduled — hit “Edit day” to add exercises.',
|
|
2222
|
+
'health.plans.exercise_fallback': 'Exercise',
|
|
2223
|
+
'health.plans.meal_fallback': 'Meal',
|
|
2224
|
+
'health.plans.loading': 'Loading…',
|
|
2225
|
+
'health.plans.no_detail': 'No detail available for this item.',
|
|
2226
|
+
'health.plans.n_reps': '{n} reps',
|
|
2227
|
+
'health.plans.tempo': 'tempo {v}',
|
|
2228
|
+
'health.plans.per_week': '{n}/wk',
|
|
2229
|
+
'health.plans.difficulty': 'difficulty {n}',
|
|
2230
|
+
'health.plans.routine': 'Routine',
|
|
2231
|
+
'health.plans.how_to': 'How to do it',
|
|
2232
|
+
'health.plans.common_mistakes': 'Common mistakes',
|
|
2233
|
+
'health.plans.muscles': 'Muscles',
|
|
2234
|
+
'health.plans.secondary_suffix': '(secondary)',
|
|
2235
|
+
'health.plans.equipment': 'Equipment',
|
|
2236
|
+
'health.plans.watch_demo': 'Watch demo →',
|
|
2237
|
+
'health.plans.m_prep': '{n}m prep',
|
|
2238
|
+
'health.plans.m_cook': '{n}m cook',
|
|
2239
|
+
'health.plans.nutrition_per_serving': 'Nutrition (per serving)',
|
|
2240
|
+
'health.plans.nutrition_per_serving_est': 'Nutrition (per serving, estimated)',
|
|
2241
|
+
'health.plans.ingredients': 'Ingredients',
|
|
2242
|
+
'health.plans.optional_suffix': '(optional)',
|
|
2243
|
+
'health.plans.method': 'Method',
|
|
2244
|
+
'health.plans.exercise_name_placeholder': 'Exercise name',
|
|
2245
|
+
'health.plans.remove': 'Remove',
|
|
2246
|
+
'health.plans.field.sets': 'Sets',
|
|
2247
|
+
'health.plans.field.reps': 'Reps',
|
|
2248
|
+
'health.plans.field.weight': 'Weight',
|
|
2249
|
+
'health.plans.field.rest_s': 'Rest (s)',
|
|
2250
|
+
'health.plans.exercise_notes_placeholder': 'Notes — tempo, cues (optional)',
|
|
2251
|
+
'health.plans.warn_sets': '{sets} sets is above the recommended {rec}',
|
|
2252
|
+
'health.plans.warn_rest': '{rest}s rest is shorter than the recommended {rec}s',
|
|
2253
|
+
'health.plans.warn_tail': 'More isn\'t always better — give your body room to recover.',
|
|
2254
|
+
'health.plans.meal_name_placeholder': 'Meal name',
|
|
2255
|
+
'health.plans.field.servings': 'Servings',
|
|
2256
|
+
'health.plans.per_meal': 'Per this meal',
|
|
2257
|
+
'health.plans.per_meal_est': 'Per this meal · estimated',
|
|
2258
|
+
'health.plans.loading_nutrition': 'Loading nutrition…',
|
|
2259
|
+
'health.plans.no_nutrition': 'No nutrition for this recipe yet.',
|
|
2260
|
+
'health.plans.field.protein_g': 'Protein g',
|
|
2261
|
+
'health.plans.field.carbs_g': 'Carbs g',
|
|
2262
|
+
'health.plans.field.fat_g': 'Fat g',
|
|
2263
|
+
'health.plans.notes_placeholder': 'Notes (optional)',
|
|
2264
|
+
'health.plans.back_to_plan': '← Back to plan',
|
|
2265
|
+
'health.plans.picker.add_exercises_header': 'Add exercises — tick as many as you need',
|
|
2266
|
+
'health.plans.picker.add_recipes_header': 'Add recipes — tick as many as you need',
|
|
2267
|
+
'health.plans.picker.search_exercises': 'Search the exercise library…',
|
|
2268
|
+
'health.plans.picker.search_recipes': 'Search the recipe library…',
|
|
2269
|
+
'health.plans.all': 'All',
|
|
2270
|
+
'health.plans.searching': 'Searching…',
|
|
2271
|
+
'health.plans.picker.no_exercise_match': 'No exercises match “{query}”.',
|
|
2272
|
+
'health.plans.picker.no_recipe_match': 'No recipes match “{query}”.',
|
|
2273
|
+
'health.plans.picker.no_exercises': 'No exercises found.',
|
|
2274
|
+
'health.plans.picker.no_recipes': 'No recipes found.',
|
|
2275
|
+
'health.plans.picker.custom_exercise': '+ Add a custom exercise instead',
|
|
2276
|
+
'health.plans.picker.custom_recipe': '+ Add a custom recipe instead',
|
|
2277
|
+
'health.plans.prev': '‹ Prev',
|
|
2278
|
+
'health.plans.next': 'Next ›',
|
|
2279
|
+
'health.plans.range': '{from}–{to} of {total}',
|
|
2280
|
+
'health.plans.add_to_day': 'Add {n} to this day',
|
|
2281
|
+
// ── Health · Browse (catalogue: exercises + recipes) ──────────────────
|
|
2282
|
+
'health.browse.title': 'Health & Nutrition',
|
|
2283
|
+
'health.browse.summary': '{exercises} exercises · {recipes} recipes · free, open library',
|
|
2284
|
+
'health.browse.safety_link': 'informational only — read safety policy',
|
|
2285
|
+
'health.browse.contribute': '+ Contribute',
|
|
2286
|
+
'health.browse.tab.exercises': 'Exercises',
|
|
2287
|
+
'health.browse.tab.recipes': 'Recipes',
|
|
2288
|
+
'health.browse.tab.plans': 'Plans',
|
|
2289
|
+
'health.browse.tab.ava': 'Ava',
|
|
2290
|
+
'health.browse.edit_profile': 'Edit your profile →',
|
|
2291
|
+
'health.browse.your_plans': 'Your plans →',
|
|
2292
|
+
'health.browse.tab.mine': 'My submissions',
|
|
2293
|
+
'health.room.disclaimer': 'Ava helps with training & nutrition — not medical advice. If you feel pain or anything concerning, stop and see a doctor.',
|
|
2294
|
+
'health.room.mode_label': 'Health',
|
|
2295
|
+
'health.week.title': 'This week',
|
|
2296
|
+
'health.week.today': 'Today',
|
|
2297
|
+
'health.week.training': 'Training',
|
|
2298
|
+
'health.week.meals': 'Meals',
|
|
2299
|
+
'health.week.today_rest': 'Nothing scheduled today — enjoy the rest, or ask Ava for something light.',
|
|
2300
|
+
'health.week.loading': 'Loading your week…',
|
|
2301
|
+
'health.week.rest': 'Rest day',
|
|
2302
|
+
'health.week.empty.title': 'No active plan this week',
|
|
2303
|
+
'health.week.empty.body': 'Build a fitness or meal plan with Ava in the Health room and it’ll show up here.',
|
|
2304
|
+
'health.room.greeting': 'Hey{name} — this is your health & fitness corner. Tell me your goal and I’ll build around it, or ask me anything about training and food.',
|
|
2305
|
+
'health.room.starter.heading': 'What shall we work on?',
|
|
2306
|
+
'health.room.starter.subheading': 'I build every plan from the real library and tailor it to your profile, goals, equipment and time. Pick a start, or just tell me what you’re after.',
|
|
2307
|
+
'health.room.starter.fitness': 'Fitness plan',
|
|
2308
|
+
'health.room.starter.fitness_prompt': 'Build me a fitness plan around my goal.',
|
|
2309
|
+
'health.room.starter.meal': 'Meal plan',
|
|
2310
|
+
'health.room.starter.meal_prompt': 'Plan my meals for the week around my goal.',
|
|
2311
|
+
'health.room.starter.combined': 'Combined plan',
|
|
2312
|
+
'health.room.starter.combined_prompt': 'Build a combined training + nutrition plan for me.',
|
|
2313
|
+
'health.room.starter.injury': 'Work around an injury',
|
|
2314
|
+
'health.room.starter.injury_prompt': 'Help me train around an injury safely.',
|
|
2315
|
+
'health.room.starter.nutrition': 'Nutrition help',
|
|
2316
|
+
'health.room.starter.nutrition_prompt': 'What should I be eating for my goal?',
|
|
2317
|
+
'health.room.starter.exercise': 'Explain an exercise',
|
|
2318
|
+
'health.room.starter.exercise_prompt': 'Explain an exercise and how to do it with good form.',
|
|
2319
|
+
// Profile-fill cards (Ava asks for a gap via a structured control)
|
|
2320
|
+
'health.fill.save': 'Save',
|
|
2321
|
+
'health.fill.skip': 'Skip',
|
|
2322
|
+
'health.fill.saved': 'Saved',
|
|
2323
|
+
'health.fill.choose': 'Choose one',
|
|
2324
|
+
'health.fill.multi_hint': 'Pick any that apply',
|
|
2325
|
+
'health.fill.none': 'None',
|
|
2326
|
+
'health.fill.field.sex': 'Sex',
|
|
2327
|
+
'health.fill.field.dob': 'Date of birth',
|
|
2328
|
+
'health.fill.field.height': 'Height',
|
|
2329
|
+
'health.fill.field.weight': 'Weight',
|
|
2330
|
+
'health.fill.field.goal': 'Primary goal',
|
|
2331
|
+
'health.fill.field.weekly_focus': 'This week’s focus',
|
|
2332
|
+
'health.fill.field.allergens': 'Allergens',
|
|
2333
|
+
'health.fill.field.dietary': 'Dietary preferences',
|
|
2334
|
+
'health.fill.field.equipment': 'Equipment available',
|
|
2335
|
+
'health.fill.field.injuries': 'Injuries / limitations',
|
|
2336
|
+
'health.fill.field.minutes': 'Time per day',
|
|
2337
|
+
'health.fill.field.likes': 'Foods you love',
|
|
2338
|
+
'health.fill.field.dislikes': 'Foods you\'d rather avoid',
|
|
2339
|
+
'health.fill.field.cuisines': 'Favourite cuisines',
|
|
2340
|
+
'health.fill.field.training_start': 'Workout start time',
|
|
2341
|
+
'health.fill.field.training_end': 'Workout end time',
|
|
2342
|
+
'health.fill.field.breakfast': 'Breakfast time',
|
|
2343
|
+
'health.fill.field.lunch': 'Lunch time',
|
|
2344
|
+
'health.fill.field.dinner': 'Dinner time',
|
|
2345
|
+
'health.fill.field.cooking_time': 'Cooking time per meal',
|
|
2346
|
+
'health.fill.field.experience': 'Training experience',
|
|
2347
|
+
'health.fill.field.days_per_week': 'Training days per week',
|
|
2348
|
+
'health.fill.field.training_days': 'Which days you train',
|
|
2349
|
+
'health.fill.field.cooking_level': 'Cooking level',
|
|
2350
|
+
'health.fill.field.household': 'People you cook for',
|
|
2351
|
+
'health.fill.cooking_grid_hint': 'Set how long you have to cook each meal, per day. Leave any slot on "Any".',
|
|
2352
|
+
'health.fill.time_any': 'Any time',
|
|
2353
|
+
'health.fill.sex.female': 'Female',
|
|
2354
|
+
'health.fill.sex.male': 'Male',
|
|
2355
|
+
'health.fill.sex.other': 'Other',
|
|
2356
|
+
'health.fill.injuries_placeholder': 'e.g. left knee, lower back — one per line',
|
|
2357
|
+
'health.fill.text_placeholder': 'Type your answer…',
|
|
2358
|
+
// Main-chat → Health room handoff (open_health_room)
|
|
2359
|
+
'health.handoff.title.fitness': 'Build your fitness plan in the Health room',
|
|
2360
|
+
'health.handoff.title.meal': 'Build your meal plan in the Health room',
|
|
2361
|
+
'health.handoff.title.combined': 'Build your combined plan in the Health room',
|
|
2362
|
+
'health.handoff.title.generic': 'Build it in the Health room',
|
|
2363
|
+
'health.handoff.body': 'Your focused space — the full exercise & recipe library and your health profile are right there.',
|
|
2364
|
+
'health.handoff.button': 'Open the Health room',
|
|
2365
|
+
// Learning room — page, tabs, mode label, intro
|
|
2366
|
+
'learning.room.title': 'Learning',
|
|
2367
|
+
'learning.room.tab.courses': 'Courses',
|
|
2368
|
+
'learning.room.tab.my_learning': 'My Learning',
|
|
2369
|
+
'learning.room.tab.ava': 'Ava',
|
|
2370
|
+
'learning.room.mode_label': 'Teach',
|
|
2371
|
+
'learning.room.intro': 'Ava builds you a course and teaches it — one concept at a time.',
|
|
2372
|
+
'learning.room.greeting': 'What would you like to learn{name}? Tell me a topic and I’ll build you a course and teach it.',
|
|
2373
|
+
'learning.room.starter.learn': 'Teach me a topic',
|
|
2374
|
+
'learning.room.starter.learn_prompt': 'Teach me ',
|
|
2375
|
+
'learning.room.starter.course': 'Build me a course',
|
|
2376
|
+
'learning.room.starter.course_prompt': 'Build me a course on ',
|
|
2377
|
+
'learning.room.starter.resume': 'Continue my course',
|
|
2378
|
+
'learning.room.starter.resume_prompt': 'Where did we get to? Let’s carry on.',
|
|
2379
|
+
'learning.room.starter.explain': 'Explain a concept',
|
|
2380
|
+
'learning.room.starter.explain_prompt': 'Explain ',
|
|
2381
|
+
'learning.room.starter.heading': 'What do you want to learn?',
|
|
2382
|
+
'learning.room.starter.subheading': 'Tell me a topic and I’ll build you a course and teach it, one concept at a time. Pick one to start — or just type.',
|
|
2383
|
+
// Main-chat → Learning room handoff (open_learning_room)
|
|
2384
|
+
'learning.handoff.title.generic': 'Learn it in the Learning room',
|
|
2385
|
+
'learning.handoff.title.topic': 'Learn {topic} in the Learning room',
|
|
2386
|
+
'learning.handoff.body': 'Your focused space — Ava builds a course just for you and teaches it step by step.',
|
|
2387
|
+
'learning.handoff.button': 'Open the Learning room',
|
|
2388
|
+
// My Learning inner sub-tabs
|
|
2389
|
+
'learning.tab.progression': 'Progression',
|
|
2390
|
+
'learning.tab.my_courses': 'My Courses',
|
|
2391
|
+
// Progression profile (the learner CV)
|
|
2392
|
+
'learning.progression.loading': 'Loading your profile…',
|
|
2393
|
+
'learning.progression.learner': 'Learner',
|
|
2394
|
+
'learning.progression.edit': 'Edit profile',
|
|
2395
|
+
'learning.progression.done': 'Done',
|
|
2396
|
+
'learning.progression.save': 'Save profile',
|
|
2397
|
+
'learning.progression.add': 'Add',
|
|
2398
|
+
'learning.progression.empty': 'Finish a course in the Ava tab and your earned skills, certificates and a shareable CV start building here. You can add your own skills any time.',
|
|
2399
|
+
'learning.progression.skills': 'Skills',
|
|
2400
|
+
'learning.progression.certificates': 'Certificates',
|
|
2401
|
+
'learning.progression.achievements': 'Achievements',
|
|
2402
|
+
'learning.progression.activity': 'Activity',
|
|
2403
|
+
'learning.progression.verified': 'Verified',
|
|
2404
|
+
'learning.progression.self_tag': 'added by you',
|
|
2405
|
+
'learning.progression.cert_badge': 'Certificate',
|
|
2406
|
+
'learning.progression.lessons_mastered': 'lessons mastered',
|
|
2407
|
+
'learning.progression.stale': 'Time for a refresh',
|
|
2408
|
+
'learning.progression.export_cert': 'Export certificate',
|
|
2409
|
+
'learning.progression.export_cv': 'Export CV',
|
|
2410
|
+
'learning.progression.open_folder': 'Open folder',
|
|
2411
|
+
'learning.progression.stat.streak': 'day streak',
|
|
2412
|
+
'learning.progression.stat.courses': 'courses',
|
|
2413
|
+
'learning.progression.stat.lessons': 'lessons',
|
|
2414
|
+
'learning.progression.stat.hours': 'hours',
|
|
2415
|
+
'learning.progression.stat.avg': 'avg score',
|
|
2416
|
+
'learning.progression.headline_ph': 'Headline — e.g. Learning Rust & systems design',
|
|
2417
|
+
'learning.progression.bio_ph': 'A short bio',
|
|
2418
|
+
'learning.progression.add_skills': 'Your skills (added by you)',
|
|
2419
|
+
'learning.progression.skill_ph': 'Add a skill',
|
|
2420
|
+
'learning.progression.add_achievements': 'Your achievements (added by you)',
|
|
2421
|
+
'learning.progression.achievement_ph': 'Add an achievement — e.g. Shipped my first app',
|
|
2422
|
+
// Course manager + course-path sidebar
|
|
2423
|
+
'learning.courses.active': 'Active',
|
|
2424
|
+
'learning.courses.active_tag': 'Active',
|
|
2425
|
+
'learning.courses.in_progress': 'In progress',
|
|
2426
|
+
'learning.courses.completed': 'Completed',
|
|
2427
|
+
'learning.courses.set_active': 'Set active',
|
|
2428
|
+
'learning.courses.continue': 'Continue with Ava',
|
|
2429
|
+
'learning.courses.revisit': 'Revisit',
|
|
2430
|
+
'learning.courses.view': 'View path',
|
|
2431
|
+
'learning.courses.empty_title': 'No courses yet',
|
|
2432
|
+
'learning.courses.empty_body': 'Ask Ava to build your first course — she assesses your level, builds a curriculum, and teaches it one concept at a time. It lands here as a course you can manage, set active, and track.',
|
|
2433
|
+
'learning.courses.start': 'Start a course with Ava',
|
|
2434
|
+
'learning.courses.how1': 'Tell Ava',
|
|
2435
|
+
'learning.courses.how1_desc': 'Say what you want to learn.',
|
|
2436
|
+
'learning.courses.how2': 'She builds it',
|
|
2437
|
+
'learning.courses.how2_desc': 'A real curriculum, set active here.',
|
|
2438
|
+
'learning.courses.how3': 'Learn & earn',
|
|
2439
|
+
'learning.courses.how3_desc': 'Taught at your pace; skills land in Progression.',
|
|
2440
|
+
'learning.courses.delete': 'Delete',
|
|
2441
|
+
'learning.courses.delete_confirm': 'Delete this course?',
|
|
2442
|
+
'learning.courses.cancel': 'Cancel',
|
|
2443
|
+
'learning.courses.refresh': 'Refresh',
|
|
2444
|
+
'learning.path.title': 'Course path',
|
|
2445
|
+
'learning.path.collapse': 'Hide',
|
|
2446
|
+
'learning.path.expand': 'Show course path',
|
|
2447
|
+
'learning.path.start_lesson': 'Start this lesson with Ava',
|
|
2448
|
+
'learning.path.empty': 'No active course. Ask Ava to teach you something, or set one active from My Courses.',
|
|
2449
|
+
'learning.progression.today': 'today',
|
|
2450
|
+
'learning.progression.yesterday': 'yesterday',
|
|
2451
|
+
'learning.progression.days_ago': '{n}d ago',
|
|
2452
|
+
'learning.progression.months_ago': '{n}mo ago',
|
|
2453
|
+
'health.browse.tab.profile': 'Profile',
|
|
2454
|
+
'health.browse.workout.strength': 'Strength',
|
|
2455
|
+
'health.browse.workout.hypertrophy': 'Hypertrophy',
|
|
2456
|
+
'health.browse.workout.conditioning': 'Conditioning',
|
|
2457
|
+
'health.browse.workout.mobility': 'Mobility',
|
|
2458
|
+
'health.browse.workout.hybrid': 'Hybrid',
|
|
2459
|
+
'health.browse.workout.yoga': 'Yoga',
|
|
2460
|
+
'health.browse.workout.pilates': 'Pilates',
|
|
2461
|
+
'health.browse.workout.running': 'Running',
|
|
2462
|
+
'health.browse.workout.cycling': 'Cycling',
|
|
2463
|
+
'health.browse.workout.recovery': 'Recovery',
|
|
2464
|
+
'health.browse.workout.hiit': 'HIIT',
|
|
2465
|
+
'health.browse.course.breakfast': 'Breakfast',
|
|
2466
|
+
'health.browse.course.main': 'Mains',
|
|
2467
|
+
'health.browse.course.starter': 'Starters',
|
|
2468
|
+
'health.browse.course.side': 'Sides',
|
|
2469
|
+
'health.browse.course.snack': 'Snacks',
|
|
2470
|
+
'health.browse.course.dessert': 'Desserts',
|
|
2471
|
+
'health.browse.noun.exercises': 'exercises',
|
|
2472
|
+
'health.browse.noun.recipes': 'recipes',
|
|
2473
|
+
'health.browse.load_error': 'Couldn\'t load {noun}.',
|
|
2474
|
+
'health.browse.load_error_hint': 'The connection to the library failed — your data is safe, this is a network hiccup.',
|
|
2475
|
+
'health.browse.retry': 'Retry',
|
|
2476
|
+
'health.browse.search_exercises_placeholder': 'Search exercises — name, e.g. \'squat\'',
|
|
2477
|
+
'health.browse.search_recipes_placeholder': 'Search recipes — name, e.g. \'chicken\'',
|
|
2478
|
+
'health.browse.filter.all': 'All',
|
|
2479
|
+
'health.browse.from_scratch': 'From Scratch',
|
|
2480
|
+
'health.browse.from_scratch_hint': 'Made entirely from scratch — fresh ingredients, nothing processed',
|
|
2481
|
+
'health.browse.no_exercises_match_q': 'No exercises match "{q}".',
|
|
2482
|
+
'health.browse.no_exercises_match': 'No exercises match.',
|
|
2483
|
+
'health.browse.no_recipes_match_q': 'No recipes match "{q}".',
|
|
2484
|
+
'health.browse.no_recipes_match': 'No recipes match.',
|
|
2485
|
+
'health.browse.prev': 'Prev',
|
|
2486
|
+
'health.browse.next': 'Next',
|
|
2487
|
+
'health.browse.page_of': 'Page {current} of {total}',
|
|
2488
|
+
'health.browse.loading': 'loading…',
|
|
2489
|
+
'health.browse.close': 'Close',
|
|
2490
|
+
'health.browse.loading_exercise': 'Loading exercise…',
|
|
2491
|
+
'health.browse.loading_recipe': 'Loading recipe…',
|
|
2492
|
+
'health.browse.failed_to_load': 'Failed to load.',
|
|
2493
|
+
'health.browse.difficulty_n': 'Difficulty {n}/5',
|
|
2494
|
+
'health.browse.difficulty_of_5': 'Difficulty {n} of 5',
|
|
2495
|
+
'health.browse.routine.sets': 'Sets',
|
|
2496
|
+
'health.browse.routine.reps': 'Reps',
|
|
2497
|
+
'health.browse.routine.rest': 'Rest',
|
|
2498
|
+
'health.browse.routine.tempo': 'Tempo',
|
|
2499
|
+
'health.browse.routine.freq': 'Freq.',
|
|
2500
|
+
'health.browse.how_to_do_it': 'How to do it',
|
|
2501
|
+
'health.browse.how_to_use_it': 'How to use it',
|
|
2502
|
+
'health.browse.if_youre_new': 'If you\'re new to this',
|
|
2503
|
+
'health.browse.common_mistakes': 'Common mistakes',
|
|
2504
|
+
'health.browse.muscles': 'Muscles',
|
|
2505
|
+
'health.browse.equipment': 'Equipment',
|
|
2506
|
+
'health.browse.ingredients': 'Ingredients',
|
|
2507
|
+
'health.browse.opt': '(opt.)',
|
|
2508
|
+
'health.browse.just_for_level': 'Just for',
|
|
2509
|
+
'health.browse.per_serving_est': 'per serving, estimated',
|
|
2510
|
+
'health.browse.per_set': 'Per set',
|
|
2511
|
+
'health.browse.take_care': 'Take care with',
|
|
2512
|
+
'health.browse.cues': 'Cues',
|
|
2513
|
+
'health.browse.cardio': 'Cardio',
|
|
2514
|
+
'health.browse.easier': 'Easier',
|
|
2515
|
+
'health.browse.harder': 'Harder',
|
|
2516
|
+
'health.browse.instead': 'Instead',
|
|
2517
|
+
'health.browse.easier_harder_instead': 'Easier, harder, instead',
|
|
2518
|
+
'health.browse.cardio.style': 'Style',
|
|
2519
|
+
'health.browse.cardio.duration': 'Duration',
|
|
2520
|
+
'health.browse.cardio.zone': 'HR zone',
|
|
2521
|
+
'health.browse.cardio.work': 'Work',
|
|
2522
|
+
'health.browse.cardio.rest': 'Rest',
|
|
2523
|
+
'health.browse.cardio.rounds': 'Rounds',
|
|
2524
|
+
'health.browse.method': 'Method',
|
|
2525
|
+
// Detail view — tabs, sections, nutrition table, storage panel.
|
|
2526
|
+
'health.browse.overview': 'Overview',
|
|
2527
|
+
'health.browse.howto': 'How-to',
|
|
2528
|
+
'health.browse.routine': 'Routine',
|
|
2529
|
+
'health.browse.storage': 'Storage',
|
|
2530
|
+
'health.browse.nutrition': 'Nutrition',
|
|
2531
|
+
'health.browse.nothing_here': 'Nothing here yet.',
|
|
2532
|
+
'health.browse.no_overview': 'No overview yet.',
|
|
2533
|
+
'health.browse.per_serving': 'Per serving',
|
|
2534
|
+
'health.browse.per_serving_estimated': 'Per serving · Ava-estimated.',
|
|
2535
|
+
'health.browse.nutri.calories': 'Calories',
|
|
2536
|
+
'health.browse.nutri.protein': 'Protein',
|
|
2537
|
+
'health.browse.nutri.carbs': 'Carbs',
|
|
2538
|
+
'health.browse.nutri.fat': 'Fat',
|
|
2539
|
+
'health.browse.nutri.sat_fat': 'Sat fat',
|
|
2540
|
+
'health.browse.nutri.fibre': 'Fibre',
|
|
2541
|
+
'health.browse.nutri.sugar': 'Sugar',
|
|
2542
|
+
'health.browse.nutri.sodium': 'Sodium',
|
|
2543
|
+
'health.storage.fridge': 'In the fridge',
|
|
2544
|
+
'health.storage.freezer': 'In the freezer',
|
|
2545
|
+
'health.storage.cooking_frozen': 'Cooking from frozen',
|
|
2546
|
+
'health.storage.disclaimer': 'Storage times are a guide — use your judgement and store food safely.',
|
|
2547
|
+
'health.storage.day': 'day',
|
|
2548
|
+
'health.storage.days': 'days',
|
|
2549
|
+
'health.storage.month': 'month',
|
|
2550
|
+
'health.storage.months': 'months',
|
|
2551
|
+
'health.browse.level.beginner': 'beginner',
|
|
2552
|
+
'health.browse.level.intermediate': 'intermediate',
|
|
2553
|
+
'health.browse.level.expert': 'expert',
|
|
2554
|
+
'health.browse.prep': 'Prep',
|
|
2555
|
+
'health.browse.cook': 'Cook',
|
|
2556
|
+
'health.browse.total': 'Total',
|
|
2557
|
+
'health.browse.serves': 'Serves',
|
|
2558
|
+
'health.browse.optional': 'optional',
|
|
2559
|
+
'health.browse.tricky': 'tricky',
|
|
2560
|
+
'health.browse.status.pending': 'Pending review',
|
|
2561
|
+
'health.browse.status.rejected': 'Rejected',
|
|
2562
|
+
'health.browse.refresh': 'Refresh',
|
|
2563
|
+
'health.browse.refreshing': 'Refreshing',
|
|
2564
|
+
'health.browse.clear_search': 'Clear search',
|
|
2565
|
+
// ── Health · Home (today dashboard) ────────────────────────────────────
|
|
2566
|
+
'health.home.tab.overview': 'Overview',
|
|
2567
|
+
'health.home.tab.plans': 'Plans',
|
|
2568
|
+
'health.home.section.brief': 'Today\'s brief',
|
|
2569
|
+
'health.home.section.where_you_are': 'Where you are',
|
|
2570
|
+
'health.home.section.quick_log': 'Quick log',
|
|
2571
|
+
'health.home.section.todays_meals': 'Today\'s meals',
|
|
2572
|
+
'health.home.section.todays_training': 'Today\'s training',
|
|
2573
|
+
'health.home.section.recovery': 'Recovery & notes',
|
|
2574
|
+
'health.home.footer': 'Local-first — your health data stays on this machine unless you switch on sync in the Sync tab. {date}',
|
|
2575
|
+
'health.home.empty.before': 'Set up your ',
|
|
2576
|
+
'health.home.empty.profile': 'Profile',
|
|
2577
|
+
'health.home.empty.after': ' first — Ava reads it to draft your daily plan and brief. Body stats, goals, constraints, and your schedule.',
|
|
2578
|
+
'health.home.empty.cta': 'Set up your profile',
|
|
2579
|
+
'health.home.goals.prompt': 'Ava writes your brief around your goals — but you haven\'t set one yet.',
|
|
2580
|
+
'health.home.goals.cta': 'Set your goals',
|
|
2581
|
+
'health.home.brief.empty_profile': 'Ava will write today\'s brief once your profile is set up — what your week\'s looked like, what to do today, what to skip.',
|
|
2582
|
+
'health.home.brief.empty': 'Today\'s brief hasn\'t been written yet. Click \'Write today\'s brief\' below and Ava will draft it from your profile.',
|
|
2583
|
+
'health.home.brief.writing': 'Writing…',
|
|
2584
|
+
'health.home.brief.rewrite': 'Rewrite brief',
|
|
2585
|
+
'health.home.brief.write': 'Write today\'s brief',
|
|
2586
|
+
'health.home.brief.snapshot_note': 'Ava reads a snapshot of your profile to write this. The profile itself stays local.',
|
|
2587
|
+
'health.home.meals.empty_title': 'No meals planned yet',
|
|
2588
|
+
'health.home.meals.empty_body': 'When meal planning ships, this is a strip of recipe cards — hero image, macros, prep time — slotted to your meal times.',
|
|
2589
|
+
'health.home.training.empty_title': 'No training planned yet',
|
|
2590
|
+
'health.home.training.empty_body': 'When fitness planning ships, today\'s workout shows here — exercises with their imagery, sets, reps, and rest, plus total duration.',
|
|
2591
|
+
'health.home.n_min': '{n} min',
|
|
2592
|
+
'health.home.status.readiness': 'Readiness',
|
|
2593
|
+
'health.home.status.nutrition': 'Nutrition',
|
|
2594
|
+
'health.home.status.training_load': 'Training load',
|
|
2595
|
+
'health.home.readiness.empty': 'Log sleep and mood to see this',
|
|
2596
|
+
'health.home.readiness.strong': 'Strong',
|
|
2597
|
+
'health.home.readiness.good': 'Good',
|
|
2598
|
+
'health.home.readiness.fair': 'Fair',
|
|
2599
|
+
'health.home.readiness.low': 'Low',
|
|
2600
|
+
'health.home.readiness.sleep_of': '{actual} of {target} sleep',
|
|
2601
|
+
'health.home.readiness.mood': 'mood {n}/5',
|
|
2602
|
+
'health.home.nutrition.empty': 'Log meals and water to see this',
|
|
2603
|
+
'health.home.nutrition.meals_one': '1 meal',
|
|
2604
|
+
'health.home.nutrition.meals': '{n} meals',
|
|
2605
|
+
'health.home.nutrition.protein_of': '{actual} / {target} g protein',
|
|
2606
|
+
'health.home.nutrition.protein': '{n} g protein',
|
|
2607
|
+
'health.home.nutrition.kcal': '{n} kcal',
|
|
2608
|
+
'health.home.nutrition.water': '{n} ml water',
|
|
2609
|
+
'health.home.training_load.rest_day': 'Rest day',
|
|
2610
|
+
'health.home.training_load.none': 'No training scheduled today',
|
|
2611
|
+
'health.home.training_load.min_of': '{done}/{planned} min',
|
|
2612
|
+
'health.home.training_load.sessions_done_one': '{done} of 1 session done',
|
|
2613
|
+
'health.home.training_load.sessions_done': '{done} of {total} sessions done',
|
|
2614
|
+
'health.home.training_load.done_today_one': 'Session done today',
|
|
2615
|
+
'health.home.training_load.done_today': 'Sessions done today',
|
|
2616
|
+
'health.home.mood.drained': 'Drained',
|
|
2617
|
+
'health.home.mood.low': 'Low',
|
|
2618
|
+
'health.home.mood.okay': 'Okay',
|
|
2619
|
+
'health.home.mood.good': 'Good',
|
|
2620
|
+
'health.home.mood.thriving': 'Thriving',
|
|
2621
|
+
'health.home.mood.how_you_feel': 'How you feel today',
|
|
2622
|
+
'health.home.log.meals_count': 'Meals · {n}',
|
|
2623
|
+
'health.home.log.add_meal': '+ Meal',
|
|
2624
|
+
'health.home.log.water_count': 'Water · {v}',
|
|
2625
|
+
'health.home.log.add_water': '+ Water',
|
|
2626
|
+
'health.home.log.sleep_count': 'Sleep · {v}',
|
|
2627
|
+
'health.home.log.add_sleep': '+ Sleep',
|
|
2628
|
+
'health.home.log.mood_count': 'Mood {face}',
|
|
2629
|
+
'health.home.log.add_mood': '+ Mood',
|
|
2630
|
+
'health.home.water.today': 'Water today',
|
|
2631
|
+
'health.home.water.add_250': '+ 250 ml',
|
|
2632
|
+
'health.home.water.add_500': '+ 500 ml',
|
|
2633
|
+
'health.home.water.sub_250': '− 250 ml',
|
|
2634
|
+
'health.home.water.reset': 'Reset',
|
|
2635
|
+
'health.home.sleep.last_night': 'Last night\'s sleep',
|
|
2636
|
+
'health.home.sleep.not_logged': 'Not logged',
|
|
2637
|
+
'health.home.sleep.sub_30': '−30 min',
|
|
2638
|
+
'health.home.sleep.add_30': '+30 min',
|
|
2639
|
+
'health.home.sleep.clear': 'Clear',
|
|
2640
|
+
'health.home.meal.fallback': 'Meal',
|
|
2641
|
+
'health.home.meal.kcal': '{n} kcal',
|
|
2642
|
+
'health.home.meal.protein_g': '{n} g P',
|
|
2643
|
+
'health.home.meal.remove': 'Remove meal',
|
|
2644
|
+
'health.home.meal.desc_placeholder': 'What did you eat?',
|
|
2645
|
+
'health.home.meal.kcal_placeholder': 'kcal (optional)',
|
|
2646
|
+
'health.home.meal.protein_placeholder': 'protein g (optional)',
|
|
2647
|
+
'health.home.meal.add': 'Add',
|
|
2648
|
+
'health.home.why.title': 'Why Ava chose this',
|
|
2649
|
+
'health.home.greeting.late_night': 'Late night',
|
|
2650
|
+
'health.home.greeting.morning': 'Morning',
|
|
2651
|
+
'health.home.greeting.afternoon': 'Afternoon',
|
|
2652
|
+
'health.home.greeting.evening': 'Evening',
|
|
2653
|
+
'health.home.greeting.late_evening': 'Late evening',
|
|
2654
|
+
// ── Health · Profile ───────────────────────────────────────────────────
|
|
2655
|
+
'health.profile.loading': 'Loading your profile…',
|
|
2656
|
+
'health.profile.your_profile': 'Your profile',
|
|
2657
|
+
// Was: "Sync any category to the cloud only if you want it on other
|
|
2658
|
+
// devices." That describes a feature that does not exist — the privacy
|
|
2659
|
+
// sync flags are stored and never touch the network, and cloud storage is
|
|
2660
|
+
// sunsetting. Promising sync for the most personal data in the product is
|
|
2661
|
+
// the worst place to be inaccurate.
|
|
2662
|
+
'health.profile.intro_blurb': 'What Ava reads to scale plans, recipes, and training to you. It stays on this machine — nothing here is uploaded, and it works fully without an account. Use Export if you want it on another device.',
|
|
2663
|
+
'general.profile.title': 'General',
|
|
2664
|
+
'general.profile.intro': 'The basics about you — name and body facts. Ava reads these everywhere, including when she builds your health plans. Autosaves locally.',
|
|
2665
|
+
'general.profile.identity': 'Identity',
|
|
2666
|
+
'general.profile.identity_subtitle': 'How Ava refers to you, and the basics for age-aware guidance.',
|
|
2667
|
+
'general.profile.display_name': 'Display name',
|
|
2668
|
+
'general.profile.display_name_placeholder': 'What should Ava call you?',
|
|
2669
|
+
'general.profile.body': 'Body',
|
|
2670
|
+
'general.profile.body_subtitle': 'Height and weight take metric or imperial — type in either, the rest fills in.',
|
|
2671
|
+
'general.profile.tab': 'General',
|
|
2672
|
+
'general.profile.health_tab': 'Health Profile',
|
|
2673
|
+
'general.profile.account_tab': 'Your profile',
|
|
2674
|
+
'general.profile.account_tab_named': '{name}’s profile',
|
|
2675
|
+
'health.profile.body': 'Body',
|
|
2676
|
+
'health.profile.body_subtitle': 'What Ava reads to scale plans and nutrition targets to you.',
|
|
2677
|
+
'health.profile.sex': 'Sex',
|
|
2678
|
+
'health.profile.sex.female': 'Female',
|
|
2679
|
+
'health.profile.sex.male': 'Male',
|
|
2680
|
+
'health.profile.sex.other': 'Other / prefer not to say',
|
|
2681
|
+
'health.profile.date_of_birth': 'Date of birth',
|
|
2682
|
+
'health.profile.height': 'Height',
|
|
2683
|
+
'health.profile.weight': 'Weight',
|
|
2684
|
+
'health.profile.body_fat': 'Body fat % (optional)',
|
|
2685
|
+
'health.profile.goals': 'Goals',
|
|
2686
|
+
'health.profile.goals_subtitle': 'The shape of what you\'re working toward. Ava biases plans this way.',
|
|
2687
|
+
'health.profile.goal.fat_loss': 'Fat loss',
|
|
2688
|
+
'health.profile.goal.fat_loss.hint': 'Calorie deficit, preserve muscle',
|
|
2689
|
+
'health.profile.goal.muscle_gain': 'Muscle gain',
|
|
2690
|
+
'health.profile.goal.muscle_gain.hint': 'Calorie surplus, progressive overload',
|
|
2691
|
+
'health.profile.goal.maintenance': 'Maintenance',
|
|
2692
|
+
'health.profile.goal.maintenance.hint': 'Hold current composition, sustain energy',
|
|
2693
|
+
'health.profile.goal.athletic': 'Athletic',
|
|
2694
|
+
'health.profile.goal.athletic.hint': 'Sport-specific, performance over aesthetics',
|
|
2695
|
+
'health.profile.goal.recovery': 'Recovery',
|
|
2696
|
+
'health.profile.goal.recovery.hint': 'Healing from injury / illness / burnout',
|
|
2697
|
+
'health.profile.goal.longevity': 'Longevity',
|
|
2698
|
+
'health.profile.goal.longevity.hint': 'Strength + mobility + cardiovascular health',
|
|
2699
|
+
'health.profile.weekly_focus': 'Weekly focus (optional)',
|
|
2700
|
+
'health.profile.weekly_focus_placeholder': 'e.g. deload week / shoulder rehab / event prep',
|
|
2701
|
+
'health.profile.constraints': 'Constraints',
|
|
2702
|
+
'health.profile.constraints_subtitle': 'Allergens, injuries, what you\'ve got to train with, how much time you can give it.',
|
|
2703
|
+
'health.profile.allergens': 'Allergens',
|
|
2704
|
+
'health.profile.allergens_loading': 'Loading allergen list…',
|
|
2705
|
+
'health.profile.dietary': 'Dietary preferences',
|
|
2706
|
+
'health.profile.diet.vegan': 'Vegan',
|
|
2707
|
+
'health.profile.diet.vegetarian': 'Vegetarian',
|
|
2708
|
+
'health.profile.diet.pescatarian': 'Pescatarian',
|
|
2709
|
+
'health.profile.diet.gluten_free': 'Gluten-free',
|
|
2710
|
+
'health.profile.diet.dairy_free': 'Dairy-free',
|
|
2711
|
+
'health.profile.diet.low_fodmap': 'Low FODMAP',
|
|
2712
|
+
'health.profile.diet.keto': 'Keto',
|
|
2713
|
+
'health.profile.diet.mediterranean': 'Mediterranean',
|
|
2714
|
+
'health.profile.diet.halal': 'Halal',
|
|
2715
|
+
'health.profile.diet.kosher': 'Kosher',
|
|
2716
|
+
'health.profile.equipment': 'Equipment available',
|
|
2717
|
+
'health.profile.equip.bodyweight': 'Bodyweight only',
|
|
2718
|
+
'health.profile.equip.dumbbells': 'Dumbbells',
|
|
2719
|
+
'health.profile.equip.barbell': 'Barbell + plates',
|
|
2720
|
+
'health.profile.equip.kettlebell': 'Kettlebell',
|
|
2721
|
+
'health.profile.equip.pull_up_bar': 'Pull-up bar',
|
|
2722
|
+
'health.profile.equip.bench': 'Bench',
|
|
2723
|
+
'health.profile.equip.squat_rack': 'Squat rack',
|
|
2724
|
+
'health.profile.equip.cable_machine': 'Cable machine',
|
|
2725
|
+
'health.profile.equip.rowing_machine': 'Rowing machine',
|
|
2726
|
+
'health.profile.equip.treadmill': 'Treadmill',
|
|
2727
|
+
'health.profile.equip.exercise_bike': 'Exercise bike',
|
|
2728
|
+
'health.profile.equip.mat': 'Yoga mat',
|
|
2729
|
+
'health.profile.equip.resistance_bands': 'Resistance bands',
|
|
2730
|
+
'health.profile.equip.foam_roller': 'Foam roller',
|
|
2731
|
+
'health.profile.injuries': 'Current injuries / limitations',
|
|
2732
|
+
'health.profile.injuries_placeholder': 'One per line — e.g. left shoulder impingement, lower back flare-up',
|
|
2733
|
+
'health.profile.minutes_per_day': 'Time per day target (minutes)',
|
|
2734
|
+
'health.profile.food_taste': 'Food & taste',
|
|
2735
|
+
'health.profile.food_taste_subtitle': 'What you love, what to skip, and the cuisines you want Ava to lean into. Likes and dislikes are soft — they shape plans without being hard rules.',
|
|
2736
|
+
'health.profile.likes': 'Foods you love',
|
|
2737
|
+
'health.profile.likes_placeholder': 'One per line — e.g. salmon, sweet potato, dark chocolate',
|
|
2738
|
+
'health.profile.dislikes': 'Foods to avoid',
|
|
2739
|
+
'health.profile.dislikes_placeholder': 'One per line — e.g. mushrooms, blue cheese, olives',
|
|
2740
|
+
'health.profile.cuisines': 'Favourite cuisines',
|
|
2741
|
+
'health.profile.schedule': 'Schedule',
|
|
2742
|
+
'health.profile.schedule_subtitle': 'When your day runs. Ava slots plans into your windows, not a default.',
|
|
2743
|
+
'health.profile.training_start': 'Training window — start',
|
|
2744
|
+
'health.profile.training_end': 'Training window — end',
|
|
2745
|
+
'health.profile.breakfast': 'Breakfast',
|
|
2746
|
+
'health.profile.lunch': 'Lunch',
|
|
2747
|
+
'health.profile.dinner': 'Dinner',
|
|
2748
|
+
'health.profile.bedtime': 'Bedtime',
|
|
2749
|
+
'health.profile.wake': 'Wake',
|
|
2750
|
+
'health.profile.cooking_time': 'Cooking time',
|
|
2751
|
+
'health.profile.cooking_time_hint': 'How long you realistically have to cook. Ava plans quicker meals into your tighter days.',
|
|
2752
|
+
'health.profile.cooking_any': 'Any',
|
|
2753
|
+
'health.profile.cooking_15': '≤15 min',
|
|
2754
|
+
'health.profile.cooking_30': '≤30 min',
|
|
2755
|
+
'health.profile.cooking_60': '≤60 min',
|
|
2756
|
+
'health.profile.cooking_60plus': '60+ min',
|
|
2757
|
+
'health.profile.no_options': 'No options available',
|
|
2758
|
+
// ── Health · Profile · Training & Kitchen ──────────────────────────────
|
|
2759
|
+
// The two sections generation plans against and the extension had nowhere to
|
|
2760
|
+
// type in. Their absence is why a plan could prescribe a five-day split to a
|
|
2761
|
+
// twice-a-week trainer and a ninety-minute braise on a Tuesday.
|
|
2762
|
+
'health.profile.training': 'Training',
|
|
2763
|
+
'health.profile.training_subtitle': 'How often you train, and which days. Ava shapes the week around this rather than guessing.',
|
|
2764
|
+
'health.profile.experience': 'Experience',
|
|
2765
|
+
// No inner double quotes: a translator returning German or French quotation
|
|
2766
|
+
// marks inside a JSON string value breaks the batch it arrives in.
|
|
2767
|
+
'health.profile.experience_hint': 'Sets how progressions are written. Without it Ava can only fall back to a vague effort rating, which is a dodge dressed up as a prescription.',
|
|
2768
|
+
'health.profile.days_per_week': 'Training days per week',
|
|
2769
|
+
'health.profile.training_days': 'Which days',
|
|
2770
|
+
'health.profile.training_days_hint': 'Leave blank and Ava spaces them for you.',
|
|
2771
|
+
'health.profile.kitchen': 'Kitchen',
|
|
2772
|
+
'health.profile.kitchen_subtitle': 'What you can realistically cook, and for how many. Every quantity on a shopping list depends on it.',
|
|
2773
|
+
'health.profile.household': 'People you cook for',
|
|
2774
|
+
'health.profile.household_hint': 'Drives servings, leftovers and the shopping list. Left blank, everything assumes one.',
|
|
2775
|
+
'health.profile.cooking_level': 'Cooking level',
|
|
2776
|
+
'health.profile.cooking_level_hint': 'Recipes carry a method per level — this picks which one you get, not which recipes.',
|
|
2777
|
+
'health.profile.minutes_weekday': 'Weekday minutes',
|
|
2778
|
+
'health.profile.minutes_weekend': 'Weekend minutes',
|
|
2779
|
+
'health.profile.minutes_fill_hint': 'A shortcut into the grid above: weekday fills Monday to Friday, weekend fills Saturday and Sunday. Edit any cell afterwards and your edit wins.',
|
|
2780
|
+
'health.profile.minutes_fill_action': 'Fill the grid',
|
|
2781
|
+
'health.profile.level.beginner': 'Beginner',
|
|
2782
|
+
'health.profile.level.intermediate': 'Intermediate',
|
|
2783
|
+
'health.profile.level.advanced': 'Advanced',
|
|
2784
|
+
'health.profile.level.expert': 'Expert',
|
|
2785
|
+
'health.profile.unset': 'Not set',
|
|
2786
|
+
// ── Health · Rest days ─────────────────────────────────────────────────
|
|
2787
|
+
// A rest day is PART of the programme, not a gap in it. Rendering it with
|
|
2788
|
+
// the same "nothing scheduled" copy as an uncovered date made a deliberate
|
|
2789
|
+
// recovery day look like a hole somebody forgot to fill — and the whole
|
|
2790
|
+
// point of scheduling rest is that it is a decision.
|
|
2791
|
+
'health.rest.title': 'Rest day',
|
|
2792
|
+
'health.rest.blurb': 'Scheduled, not skipped. Training is the stimulus; this is where the adaptation happens.',
|
|
2793
|
+
'health.rest.recovery_title': 'Active recovery',
|
|
2794
|
+
'health.rest.recovery_blurb': 'Move gently — a walk, mobility, something easy. The aim is blood flow, not effort.',
|
|
2795
|
+
'health.rest.uncovered': 'No plan covers this day.',
|
|
2796
|
+
// ── Health · The training log ──────────────────────────────────────────
|
|
2797
|
+
// What actually happened, as opposed to what the plan asked for. Filled in
|
|
2798
|
+
// AFTER the session on desktop — nobody logs sets between reps at a
|
|
2799
|
+
// keyboard — so it opens pre-filled with the targets and you correct them.
|
|
2800
|
+
'health.log.open': 'Log this session',
|
|
2801
|
+
'health.log.title': 'What you actually did',
|
|
2802
|
+
'health.log.nothing': 'No training planned this day.',
|
|
2803
|
+
'health.log.planned': 'planned',
|
|
2804
|
+
'health.log.sets': 'Sets',
|
|
2805
|
+
'health.log.weight': 'kg',
|
|
2806
|
+
'health.log.reps': 'reps',
|
|
2807
|
+
'health.log.add_set': 'Add set',
|
|
2808
|
+
'health.log.remove_set': 'Remove',
|
|
2809
|
+
'health.log.did_it': 'Did it',
|
|
2810
|
+
'health.log.skipped': 'Skipped',
|
|
2811
|
+
'health.log.what_happened': 'What happened',
|
|
2812
|
+
'health.log.what_happened_hint': 'Only you know this. Blank means unrecorded — it does not mean skipped.',
|
|
2813
|
+
'health.log.ate': 'Ate it',
|
|
2814
|
+
'health.log.ate_other': 'Ate something else',
|
|
2815
|
+
'health.log.your_note': 'Your note',
|
|
2816
|
+
'health.log.note_seen': 'Ava reads this. Say what she could not see — how it felt, what you changed, what hurt.',
|
|
2817
|
+
'health.log.note_placeholder': 'Lower back tight, cut the last set short…',
|
|
2818
|
+
'health.log.save_record': 'Save',
|
|
2819
|
+
'health.log.skipped_hint': 'Marking it skipped is worth more than leaving it blank — blank is unknown, skipped is a fact.',
|
|
2820
|
+
'health.log.notes': 'Anything worth remembering?',
|
|
2821
|
+
'health.log.notes_placeholder': 'Felt strong / lower back twinged / cut it short',
|
|
2822
|
+
'health.log.save': 'Save session',
|
|
2823
|
+
'health.log.saved': 'Saved',
|
|
2824
|
+
'health.log.logged_count': 'logged',
|
|
2825
|
+
'health.log.prefill_note': 'Filled in with what the plan asked for. Change what was different — that difference is the whole point.',
|
|
2826
|
+
'health.log.nothing_logged': 'Nothing logged yet',
|
|
2827
|
+
// ── Health · Ask Ava about THIS day ────────────────────────────────────
|
|
2828
|
+
// The hybrid the builder exists for: you drive, Ava helps with the part you
|
|
2829
|
+
// ask about. It PROPOSES — nothing is written until you accept — and it says
|
|
2830
|
+
// what it did, because a change you cannot see the reasoning for is a change
|
|
2831
|
+
// you cannot trust.
|
|
2832
|
+
'health.assist.open': 'Ask Ava about this day',
|
|
2833
|
+
'health.assist.title': 'Ask Ava',
|
|
2834
|
+
'health.assist.placeholder': 'What would you like changed about this day?',
|
|
2835
|
+
'health.assist.ask': 'Ask',
|
|
2836
|
+
'health.assist.working': 'Ava is working on it. This takes about a minute.',
|
|
2837
|
+
'health.assist.needs_account': 'Ava generation needs a platform account or your own provider key in Settings.',
|
|
2838
|
+
'health.assist.failed': 'That did not work.',
|
|
2839
|
+
'health.assist.current': 'This day now',
|
|
2840
|
+
'health.assist.proposed': "Ava's suggestion",
|
|
2841
|
+
'health.assist.accept': 'Use this',
|
|
2842
|
+
'health.assist.discard': 'Discard',
|
|
2843
|
+
'health.assist.nothing_changed': 'Ava did not change anything.',
|
|
2844
|
+
'health.assist.rest': 'Rest',
|
|
2845
|
+
'health.assist.empty_day': 'Nothing on this day yet',
|
|
2846
|
+
'health.assist.unverifiable': 'The library holds no allergen information for some of these. They were not checked, only left alone:',
|
|
2847
|
+
// Openers, so nobody faces a blank box. Real sentences to edit, not modes.
|
|
2848
|
+
'health.assist.prompt.fill': 'Fill this day in for me.',
|
|
2849
|
+
'health.assist.prompt.finisher': 'Add a short finisher at the end.',
|
|
2850
|
+
'health.assist.prompt.warmup': 'Add a proper warm-up.',
|
|
2851
|
+
'health.assist.prompt.easier': 'Make this day easier — I am not recovered.',
|
|
2852
|
+
'health.assist.prompt.protein': 'Get more protein into this day.',
|
|
2853
|
+
'health.assist.prompt.quicker': 'Swap these for something quicker to cook.',
|
|
2854
|
+
// ── Health · Duplicate a day or a week ─────────────────────────────────
|
|
2855
|
+
// Copying is the ONE action in the builder that destroys work — every other
|
|
2856
|
+
// edit changes a single field — so it says what it will overwrite first.
|
|
2857
|
+
'health.dup.open': 'Copy this day',
|
|
2858
|
+
'health.dup.title': 'Copy',
|
|
2859
|
+
'health.dup.mode_day': 'Onto other days',
|
|
2860
|
+
'health.dup.mode_week': 'Onto another week',
|
|
2861
|
+
'health.dup.pick_days': 'Copy day {n} onto',
|
|
2862
|
+
'health.dup.pick_week': 'Copy week {n} onto',
|
|
2863
|
+
'health.dup.week_n': 'Week {n}',
|
|
2864
|
+
'health.dup.day_n': 'Day {n}',
|
|
2865
|
+
'health.dup.has_content': 'has something on it',
|
|
2866
|
+
'health.dup.apply': 'Copy',
|
|
2867
|
+
'health.dup.will_replace_one': 'This replaces what is on 1 day.',
|
|
2868
|
+
'health.dup.will_replace_many': 'This replaces what is on {n} days.',
|
|
2869
|
+
'health.dup.nothing_to_copy': 'There is nothing on this day to copy.',
|
|
2870
|
+
// Progression is an explicit choice, never a silent rule — see the note in
|
|
2871
|
+
// core health/duplicate.ts on why load cannot be stepped honestly here.
|
|
2872
|
+
'health.dup.progression': 'As it lands',
|
|
2873
|
+
'health.dup.prog_same': 'Exactly the same',
|
|
2874
|
+
'health.dup.prog_rep': 'One more rep',
|
|
2875
|
+
'health.dup.prog_set': 'One more set',
|
|
2876
|
+
'health.dup.prog_hint': 'Steps the COPY, never the original. Warm-ups, cool-downs and recovery days are left alone.',
|
|
2877
|
+
// ── Health · Curated starters ──────────────────────────────────────────
|
|
2878
|
+
// A shelf of plans somebody can start on day one, for free. Starting takes a
|
|
2879
|
+
// COPY: from that moment the week is theirs, and a later correction to the
|
|
2880
|
+
// template never changes it under them halfway through.
|
|
2881
|
+
// Provenance on a plan card. 'manual' gets NO chip — a plan you built
|
|
2882
|
+
// yourself needs no label, and badging everything makes the badge mean
|
|
2883
|
+
// nothing.
|
|
2884
|
+
'health.plans.source.ava': 'Written by Ava',
|
|
2885
|
+
'health.plans.source.curated': 'Starter plan',
|
|
2886
|
+
'health.starters.title': 'Starter plans',
|
|
2887
|
+
'health.starters.subtitle': 'Built and tested. Start one and it becomes yours to change.',
|
|
2888
|
+
'health.starters.open': 'Start from a plan',
|
|
2889
|
+
'health.starters.loading': 'Loading the shelf…',
|
|
2890
|
+
'health.starters.failed': 'The shelf could not be loaded. Check your connection and try again.',
|
|
2891
|
+
'health.starters.retry': 'Try again',
|
|
2892
|
+
'health.starters.empty': 'No starter plans published yet.',
|
|
2893
|
+
'health.starters.start': 'Start this plan',
|
|
2894
|
+
'health.starters.starting': 'Starting…',
|
|
2895
|
+
'health.starters.back': 'All starters',
|
|
2896
|
+
'health.starters.one_week': '1 week',
|
|
2897
|
+
'health.starters.single_session': 'Single session',
|
|
2898
|
+
'health.starters.days': 'days',
|
|
2899
|
+
'health.starters.day': 'Day',
|
|
2900
|
+
'health.starters.sessions': 'sessions',
|
|
2901
|
+
'health.starters.rest_days': 'rest days',
|
|
2902
|
+
'health.starters.rest': 'Rest',
|
|
2903
|
+
'health.starters.exercises': 'exercises',
|
|
2904
|
+
'health.starters.minutes': 'min a session',
|
|
2905
|
+
'health.starters.equipment': 'What you need',
|
|
2906
|
+
'health.starters.no_equipment': 'Nothing — bodyweight only',
|
|
2907
|
+
'health.starters.started_count': 'started',
|
|
2908
|
+
// Said before the button, not after. Starting should be an informed act.
|
|
2909
|
+
'health.starters.copy_note': 'This becomes your own copy. Change anything you like — the original is untouched, and it will never change under you.',
|
|
2910
|
+
'health.starters.not_adapted': 'Started exactly as written, not reshaped around your profile. The builder flags anything that clashes with an injury or kit you have not got, and a swap is one tap away.',
|
|
2911
|
+
// ── Health · Shopping list ─────────────────────────────────────────────
|
|
2912
|
+
// The step that turns a meal plan into food. Everything before it is a
|
|
2913
|
+
// proposal; this is the bit you take to a shop.
|
|
2914
|
+
'health.shopping.title': 'Shopping list',
|
|
2915
|
+
'health.shopping.shopping_for': 'Shopping for',
|
|
2916
|
+
'health.shopping.select_all': 'All',
|
|
2917
|
+
'health.shopping.select_none': 'None',
|
|
2918
|
+
'health.shopping.no_ingredients': 'No ingredients captured for this meal yet',
|
|
2919
|
+
'health.shopping.meals_selected': 'meals',
|
|
2920
|
+
'health.shopping.open': 'Shopping list',
|
|
2921
|
+
'health.shopping.looking': 'Reading the recipes…',
|
|
2922
|
+
'health.shopping.no_meals': 'No meals in this plan yet.',
|
|
2923
|
+
'health.shopping.no_meals_week': 'Nothing planned to eat this week.',
|
|
2924
|
+
'health.shopping.week_n': 'Week',
|
|
2925
|
+
'health.shopping.this_week': 'This week',
|
|
2926
|
+
'health.shopping.back_to_this_week': 'Back to this week',
|
|
2927
|
+
'health.shopping.prev_week': 'Previous week',
|
|
2928
|
+
'health.shopping.next_week': 'Next week',
|
|
2929
|
+
'health.shopping.meals': 'meals',
|
|
2930
|
+
'health.shopping.hide_optional': 'Hide optional',
|
|
2931
|
+
'health.shopping.reset': 'Clear ticks',
|
|
2932
|
+
'health.shopping.retry': 'Try again',
|
|
2933
|
+
'health.shopping.scope_plan': 'This plan',
|
|
2934
|
+
'health.shopping.scope_week': 'The whole week',
|
|
2935
|
+
// Honesty: a list that looks complete and is not sends somebody home
|
|
2936
|
+
// without dinner. The two reasons need different words and different fixes.
|
|
2937
|
+
'health.shopping.surplus': 'Already in your kitchen',
|
|
2938
|
+
'health.shopping.surplus.hint': 'Shopped for but never cooked. Use these up before buying more.',
|
|
2939
|
+
'health.shopping.settled': 'Already logged, so left off the list:',
|
|
2940
|
+
'health.shopping.settled.ate': 'eaten',
|
|
2941
|
+
'health.shopping.settled.skipped': 'skipped',
|
|
2942
|
+
'health.shopping.settled.other': 'had something else',
|
|
2943
|
+
'health.shopping.all_settled': 'Every meal this week is already logged — nothing left to buy.',
|
|
2944
|
+
'health.shopping.incomplete': 'These meals are missing from the list — their ingredients could not be read:',
|
|
2945
|
+
'health.shopping.not_in_library': 'These meals are not library recipes, so nothing knows what goes in them. Swap them for a recipe to shop for them:',
|
|
2946
|
+
'health.shopping.aisle.produce': 'Fruit & veg',
|
|
2947
|
+
'health.shopping.aisle.meat_fish': 'Meat & fish',
|
|
2948
|
+
'health.shopping.aisle.dairy_eggs': 'Dairy & eggs',
|
|
2949
|
+
'health.shopping.aisle.bakery': 'Bakery',
|
|
2950
|
+
'health.shopping.aisle.cupboard': 'Cupboard',
|
|
2951
|
+
'health.shopping.aisle.spices': 'Herbs & spices',
|
|
2952
|
+
'health.shopping.aisle.tins_jars': 'Tins & jars',
|
|
2953
|
+
'health.shopping.aisle.oils_vinegars': 'Oils & vinegars',
|
|
2954
|
+
'health.shopping.aisle.frozen': 'Frozen',
|
|
2955
|
+
'health.shopping.aisle.other': 'Other',
|
|
2956
|
+
'health.shopping.loose_lines': 'to taste',
|
|
2957
|
+
'health.shopping.optional': 'optional',
|
|
2958
|
+
'health.shopping.for_people': 'Quantities are for the number of people on your profile.',
|
|
2959
|
+
// ── Health · Prep & batch cooking ──────────────────────────────────────
|
|
2960
|
+
// Where the cooking actually lands in a week — the difference between a plan
|
|
2961
|
+
// that survives a work week and one abandoned on day three.
|
|
2962
|
+
'health.prep.title': 'Prep & batch cooking',
|
|
2963
|
+
'health.prep.open': 'Prep plan',
|
|
2964
|
+
'health.prep.nothing': 'Nothing to cook in this plan yet.',
|
|
2965
|
+
'health.prep.hands_on': 'Hands-on this week',
|
|
2966
|
+
'health.prep.heaviest': 'Heaviest day',
|
|
2967
|
+
'health.prep.over_budget': 'over your budget',
|
|
2968
|
+
'health.prep.no_budget': 'No cooking-time budget set — add one on your profile and this will flag the days that run over.',
|
|
2969
|
+
'health.prep.start_ahead': 'Start ahead',
|
|
2970
|
+
'health.prep.start_ahead_hint': 'Unattended time, not work — it just has to begin earlier.',
|
|
2971
|
+
'health.prep.day_before': 'the day before',
|
|
2972
|
+
'health.prep.days_before': 'days before',
|
|
2973
|
+
'health.prep.cook_once': 'Cook once, eat more than once',
|
|
2974
|
+
'health.prep.cook_once_hint': 'Same dish, more than once, inside the days the recipe says it keeps.',
|
|
2975
|
+
'health.prep.cook_on_day': 'Cook on day',
|
|
2976
|
+
'health.prep.covers_days': 'covers days',
|
|
2977
|
+
'health.prep.make_servings': 'servings',
|
|
2978
|
+
'health.prep.keeps_days': 'keeps',
|
|
2979
|
+
'health.prep.saves': 'saves',
|
|
2980
|
+
'health.prep.rest_day': 'Rest',
|
|
2981
|
+
'health.prep.no_cooking': 'nothing to cook',
|
|
2982
|
+
// ── Health · Submission modal (contribute) ─────────────────────────────
|
|
2983
|
+
'health.submit.close': 'Close',
|
|
2984
|
+
'health.submit.step.type': 'Type',
|
|
2985
|
+
'health.submit.step.method': 'Method',
|
|
2986
|
+
'health.submit.step.intake': 'Intake',
|
|
2987
|
+
'health.submit.step.drafting': 'Drafting',
|
|
2988
|
+
'health.submit.step.review': 'Review',
|
|
2989
|
+
'health.submit.step.details': 'Details',
|
|
2990
|
+
'health.submit.step.submitted': 'Submitted',
|
|
2991
|
+
'health.submit.loading_taxonomy': 'Loading safety taxonomy…',
|
|
2992
|
+
'health.submit.tax_failed_title': 'Couldn\'t load the safety taxonomy',
|
|
2993
|
+
'health.submit.tax_failed_body': 'We need the allergen + contraindication lists to render the form — the form is unsafe to fill in without them. Check your connection or wait a moment if the platform\'s deploying.',
|
|
2994
|
+
'health.submit.back': 'Back',
|
|
2995
|
+
'health.submit.retry': 'Retry',
|
|
2996
|
+
'health.submit.success_title': 'Submitted for review',
|
|
2997
|
+
'health.submit.success_is': 'is',
|
|
2998
|
+
'health.submit.success_body_a': 'in the moderation queue. You\'ll see it under',
|
|
2999
|
+
'health.submit.my_submissions': 'My submissions',
|
|
3000
|
+
'health.submit.success_body_b': 'while it\'s reviewed. Held-until-reviewed because health content can affect bodies — thank you for the contribution.',
|
|
3001
|
+
'health.submit.submit_another': 'Submit another',
|
|
3002
|
+
'health.submit.done': 'Done',
|
|
3003
|
+
'health.submit.fail_title': 'Submission failed',
|
|
3004
|
+
'health.submit.unknown_error': 'Unknown error',
|
|
3005
|
+
'health.submit.try_again': 'Try again',
|
|
3006
|
+
'health.submit.contribute_title': 'Contribute to the library',
|
|
3007
|
+
'health.submit.contribute_blurb': 'Submissions are held for review before they go live. The operator locks the safety taxonomy (allergens, contraindications) on every submission before approval — flag what you know, leave the rest blank.',
|
|
3008
|
+
'health.submit.kind.exercise': 'Exercise',
|
|
3009
|
+
'health.submit.kind.exercise_detail': 'Sets, reps, technique, contraindications.',
|
|
3010
|
+
'health.submit.kind.recipe': 'Recipe',
|
|
3011
|
+
'health.submit.kind.recipe_detail': 'Ingredients, method, allergens.',
|
|
3012
|
+
'health.submit.subject.exercise': 'exercise',
|
|
3013
|
+
'health.submit.subject.recipe': 'recipe',
|
|
3014
|
+
'health.submit.back_arrow': '← Back',
|
|
3015
|
+
'health.submit.method_title': 'How do you want to draft this {subject}?',
|
|
3016
|
+
'health.submit.method_manual_kicker': 'Fill manually',
|
|
3017
|
+
'health.submit.method_manual_title': 'You write it',
|
|
3018
|
+
'health.submit.method_manual_body': 'Type the details yourself. Free. Best when you know exactly what you want to share.',
|
|
3019
|
+
'health.submit.method_ava_kicker': 'Ask Ava to draft',
|
|
3020
|
+
'health.submit.credits_2': '2 credits',
|
|
3021
|
+
'health.submit.method_ava_title': 'Ava drafts, you review',
|
|
3022
|
+
'health.submit.method_ava_body': 'Answer 3 short questions. Ava drafts the {subject}. You review, edit, submit.',
|
|
3023
|
+
'health.submit.method_footnote': 'Either path lands the submission in the same review queue. Ava\'s draft is a starting point — the operator still locks the safety taxonomy before approval.',
|
|
3024
|
+
'health.submit.ex_intake_title': 'Tell Ava about the exercise',
|
|
3025
|
+
'health.submit.ex_intake_what': 'What is it?',
|
|
3026
|
+
'health.submit.ex_intake_describe_label': 'Describe the movement (required)',
|
|
3027
|
+
'health.submit.ex_intake_describe_ph': 'e.g. A goblet squat variation where the bottom position is held for 3 seconds before standing — for hypertrophy.',
|
|
3028
|
+
'health.submit.optional_hints': 'Optional hints',
|
|
3029
|
+
'health.submit.ex_goal_label': 'Primary goal',
|
|
3030
|
+
'health.submit.goal.strength': 'Strength',
|
|
3031
|
+
'health.submit.goal.hypertrophy': 'Hypertrophy',
|
|
3032
|
+
'health.submit.goal.conditioning': 'Conditioning',
|
|
3033
|
+
'health.submit.goal.mobility': 'Mobility',
|
|
3034
|
+
'health.submit.goal.general': 'General fitness',
|
|
3035
|
+
'health.submit.ex_equipment_label': 'Equipment available',
|
|
3036
|
+
'health.submit.ex_equipment_ph': 'e.g. dumbbells + bench, bodyweight only, full gym',
|
|
3037
|
+
'health.submit.ex_level_label': 'Submitter level',
|
|
3038
|
+
'health.submit.level.beginner': 'Beginner',
|
|
3039
|
+
'health.submit.level.intermediate': 'Intermediate',
|
|
3040
|
+
'health.submit.level.advanced': 'Advanced',
|
|
3041
|
+
'health.submit.ex_surprise_title': 'Skip the form — Ava picks a fresh exercise the catalog doesn\'t already have',
|
|
3042
|
+
'health.submit.surprise_me': '✨ Surprise me',
|
|
3043
|
+
'health.submit.draft_with_ava': 'Draft with Ava · 2 credits →',
|
|
3044
|
+
'health.submit.rc_intake_title': 'Tell Ava about the dish',
|
|
3045
|
+
'health.submit.rc_intake_what': 'What\'s the recipe?',
|
|
3046
|
+
'health.submit.rc_intake_describe_label': 'Describe the dish (required)',
|
|
3047
|
+
'health.submit.rc_intake_describe_ph': 'e.g. A simple Mediterranean roast chicken with lemon and herbs — 4 servings, dinner main.',
|
|
3048
|
+
'health.submit.rc_cuisine_label': 'Cuisine direction',
|
|
3049
|
+
'health.submit.rc_cuisine_ph': 'e.g. Italian, Japanese, Mediterranean',
|
|
3050
|
+
'health.submit.rc_course_label': 'Course',
|
|
3051
|
+
'health.submit.rc_dietary_label': 'Dietary notes',
|
|
3052
|
+
'health.submit.rc_dietary_ph': 'e.g. vegan, gluten-free, low-FODMAP',
|
|
3053
|
+
'health.submit.rc_three_levels_note': 'Ava drafts all three skill levels — beginner, intermediate, and expert — automatically.',
|
|
3054
|
+
'health.submit.rc_surprise_title': 'Skip the form — Ava picks a fresh recipe the catalog doesn\'t already have',
|
|
3055
|
+
'health.submit.generating_title': 'Ava is drafting your {subject}…',
|
|
3056
|
+
'health.submit.flag.allergen': 'allergen',
|
|
3057
|
+
'health.submit.flag.contraindication': 'contraindication',
|
|
3058
|
+
'health.submit.generating_body': 'Pulling from her training, biasing toward conservative {flag} flags. Usually 20–40 seconds.',
|
|
3059
|
+
'health.submit.ex_review_title': 'Review Ava’s draft',
|
|
3060
|
+
'health.submit.ex_new_title': 'New exercise',
|
|
3061
|
+
'health.submit.ex_from_ava_note': 'Ava drafted this from your description. Review and edit before submitting — she flagged contraindications generously, you may want to add or remove some.',
|
|
3062
|
+
'health.submit.identity': 'Identity',
|
|
3063
|
+
'health.submit.name': 'Name',
|
|
3064
|
+
'health.submit.ex_name_ph': 'e.g. Bulgarian Split Squat',
|
|
3065
|
+
'health.submit.exercise_type': 'Exercise type',
|
|
3066
|
+
'health.submit.workout_type': 'Workout type',
|
|
3067
|
+
'health.submit.ex_type.compound': 'Compound',
|
|
3068
|
+
'health.submit.ex_type.isolation': 'Isolation',
|
|
3069
|
+
'health.submit.ex_type.bodyweight': 'Bodyweight',
|
|
3070
|
+
'health.submit.ex_type.plyometric': 'Plyometric',
|
|
3071
|
+
'health.submit.ex_type.mobility': 'Mobility',
|
|
3072
|
+
'health.submit.ex_type.cardio': 'Cardio',
|
|
3073
|
+
'health.submit.ex_type.isometric': 'Isometric',
|
|
3074
|
+
'health.submit.ex_type.stretching': 'Stretching',
|
|
3075
|
+
'health.submit.ex_type.breathing': 'Breathing',
|
|
3076
|
+
'health.submit.wk_type.strength': 'Strength',
|
|
3077
|
+
'health.submit.wk_type.hypertrophy': 'Hypertrophy',
|
|
3078
|
+
'health.submit.wk_type.conditioning': 'Conditioning',
|
|
3079
|
+
'health.submit.wk_type.hiit': 'HIIT',
|
|
3080
|
+
'health.submit.wk_type.mobility': 'Mobility',
|
|
3081
|
+
'health.submit.wk_type.yoga': 'Yoga',
|
|
3082
|
+
'health.submit.wk_type.pilates': 'Pilates',
|
|
3083
|
+
'health.submit.wk_type.recovery': 'Recovery',
|
|
3084
|
+
'health.submit.wk_type.running': 'Running',
|
|
3085
|
+
'health.submit.wk_type.cycling': 'Cycling',
|
|
3086
|
+
'health.submit.wk_type.hybrid': 'Hybrid',
|
|
3087
|
+
'health.submit.difficulty': 'Difficulty',
|
|
3088
|
+
'health.submit.description': 'Description',
|
|
3089
|
+
'health.submit.overview_optional': 'Overview (optional)',
|
|
3090
|
+
'health.submit.ex_overview_ph': 'What is this movement? How should it feel done well?',
|
|
3091
|
+
'health.submit.ex_beginner_label': 'If you\'re new to this (optional)',
|
|
3092
|
+
'health.submit.ex_beginner_ph': 'Beginner cues, regressions, warm-up notes.',
|
|
3093
|
+
'health.submit.ex_mistakes_label': 'Common mistakes (optional)',
|
|
3094
|
+
'health.submit.ex_mistakes_ph': 'What to watch out for.',
|
|
3095
|
+
'health.submit.steps_required': 'Steps (required)',
|
|
3096
|
+
'health.submit.steps_hint': 'Numbered execution. Keep each step short — one action per line.',
|
|
3097
|
+
'health.submit.step_action_ph': 'Action…',
|
|
3098
|
+
'health.submit.remove_step': 'Remove step',
|
|
3099
|
+
'health.submit.add_step': '+ Add step',
|
|
3100
|
+
'health.submit.safety_contra_title': 'Safety · Contraindications (recommended)',
|
|
3101
|
+
'health.submit.safety_contra_blurb': 'Flag any condition or injury where this exercise should NOT be performed. The reviewer locks the final list before publishing — be liberal here; missed contraindications affect every user.',
|
|
3102
|
+
'health.submit.badge.hard_block': 'hard block',
|
|
3103
|
+
'health.submit.submit_for_review': 'Submit for review',
|
|
3104
|
+
'health.submit.rc_review_title': 'Review Ava’s draft',
|
|
3105
|
+
'health.submit.rc_new_title': 'New recipe',
|
|
3106
|
+
'health.submit.rc_from_ava_note': 'Ava drafted this from your description. Review and edit before submitting — she flagged allergens generously, including hidden ones. Double-check the ingredient list.',
|
|
3107
|
+
'health.submit.rc_name_ph': 'e.g. Lemon Herb Roast Chicken',
|
|
3108
|
+
'health.submit.rc_cuisine_optional': 'Cuisine (optional)',
|
|
3109
|
+
'health.submit.rc_course_optional': 'Course (optional)',
|
|
3110
|
+
'health.submit.rc_origin_optional': 'Origin (optional)',
|
|
3111
|
+
'health.submit.rc_origin_ph': 'e.g. Italy',
|
|
3112
|
+
'health.submit.rc_overview_ph': 'Story, technique notes, what makes this dish what it is.',
|
|
3113
|
+
'health.submit.skill_versions': 'Skill versions · {n}',
|
|
3114
|
+
'health.submit.skill_versions_blurb': 'Ava produced one method per skill level — beginner, intermediate, and expert. Submitted as-is; the operator can fine-tune timings, steps, or equipment after approval.',
|
|
3115
|
+
'health.submit.ingredients_required': 'Ingredients (required)',
|
|
3116
|
+
'health.submit.qty': 'Qty',
|
|
3117
|
+
'health.submit.unit': 'Unit',
|
|
3118
|
+
'health.submit.optional_ingredient': 'Optional ingredient',
|
|
3119
|
+
'health.submit.remove': 'Remove',
|
|
3120
|
+
'health.submit.tick_optional': 'Tick = optional ingredient',
|
|
3121
|
+
'health.submit.add_ingredient': '+ Add ingredient',
|
|
3122
|
+
'health.submit.safety_allergen_title': 'Safety · Allergens (strongly recommended)',
|
|
3123
|
+
'health.submit.safety_allergen_blurb': 'Flag every allergen present, including hidden ones (dairy in butter, gluten in soy sauce, sulphites in wine vinegar). A missed allergen here lands in every Ava-generated meal plan that selects this recipe.',
|
|
3124
|
+
'health.submit.badge.major': 'major',
|
|
3125
|
+
'health.submit.prep_m': 'Prep {n}m',
|
|
3126
|
+
'health.submit.cook_m': 'Cook {n}m',
|
|
3127
|
+
'health.submit.total_m': 'Total {n}m',
|
|
3128
|
+
'health.submit.serves_n': 'Serves {n}',
|
|
3129
|
+
'health.submit.opt': '(opt.)',
|
|
3130
|
+
'health.submit.equipment': 'Equipment',
|
|
3131
|
+
'health.submit.method_n_steps': 'Method · {n} steps',
|
|
3132
|
+
'health.submit.tricky': 'tricky',
|
|
3133
|
+
'health.submit.submitting': 'Submitting…',
|
|
3134
|
+
// ── Health · My submissions ────────────────────────────────────────────
|
|
3135
|
+
'health.mysubs.empty': 'You haven\'t submitted anything yet.',
|
|
3136
|
+
'health.mysubs.contribute_now': 'Contribute now',
|
|
3137
|
+
'health.mysubs.intro': 'Pending and recently reviewed contributions. Approved rows stay listed for 30 days, then move into the public catalog.',
|
|
3138
|
+
'health.mysubs.clearing': 'Clearing…',
|
|
3139
|
+
'health.mysubs.clear_rejected': 'Clear rejected ({n})',
|
|
3140
|
+
'health.mysubs.refresh': 'Refresh',
|
|
3141
|
+
'health.mysubs.confirm_delete_one': 'Permanently delete {n} rejected submission? This can\'t be undone.',
|
|
3142
|
+
'health.mysubs.confirm_delete_many': 'Permanently delete {n} rejected submissions? This can\'t be undone.',
|
|
3143
|
+
'health.mysubs.cancel': 'Cancel',
|
|
3144
|
+
'health.mysubs.clear_them': 'Clear them',
|
|
3145
|
+
'health.mysubs.exercises': 'Exercises ({n})',
|
|
3146
|
+
'health.mysubs.recipes': 'Recipes ({n})',
|
|
3147
|
+
'health.mysubs.submitted': 'Submitted {date}',
|
|
3148
|
+
'health.mysubs.reviewed': 'Reviewed {date}',
|
|
3149
|
+
'health.mysubs.reviewer_feedback': 'Reviewer feedback:',
|
|
3150
|
+
'health.mysubs.reviewer_note': 'Reviewer note:',
|
|
3151
|
+
'health.mysubs.status.pending': 'Pending review',
|
|
3152
|
+
'health.mysubs.status.rejected': 'Rejected',
|
|
3153
|
+
'health.mysubs.status.published': 'Published',
|
|
3154
|
+
// ── Health · IDE-specific variants (shorter labels / CSV inputs) ───────
|
|
3155
|
+
'health.home.loading': 'Loading your day…',
|
|
3156
|
+
'health.home.brief.error': 'Could not write the brief.',
|
|
3157
|
+
'health.home.training_load.sessions_one': '{n} session',
|
|
3158
|
+
'health.home.training_load.sessions': '{n} sessions',
|
|
3159
|
+
'health.home.quick.meal': 'Meal',
|
|
3160
|
+
'health.home.quick.water': 'Water',
|
|
3161
|
+
'health.home.quick.sleep': 'Sleep',
|
|
3162
|
+
'health.home.quick.mood': 'Mood',
|
|
3163
|
+
'health.home.quick.meals_logged': '{n} logged',
|
|
3164
|
+
'health.home.quick.none_yet': 'none yet',
|
|
3165
|
+
'health.home.quick.ml': '{n} ml',
|
|
3166
|
+
'health.home.quick.not_set': 'not set',
|
|
3167
|
+
'health.home.quick.mood_value': '{face} {n}/5',
|
|
3168
|
+
'health.home.quick.water_today': '{n} ml today',
|
|
3169
|
+
'health.home.quick.hours_slept': 'Hours slept',
|
|
3170
|
+
'health.home.quick.how_feeling': 'How are you feeling?',
|
|
3171
|
+
'health.home.quick.meal_placeholder': 'What did you eat? (Enter to log)',
|
|
3172
|
+
'health.home.plans.empty_meals': 'When meal planning ships, your meals for the day show here.',
|
|
3173
|
+
'health.home.plans.empty_training': 'When fitness planning ships, today\'s workout shows here.',
|
|
3174
|
+
'health.browse.subtitle': 'A free, open library of exercises and recipes. Informational only.',
|
|
3175
|
+
'health.browse.loading_exercises': 'Loading exercises…',
|
|
3176
|
+
'health.browse.loading_recipes': 'Loading recipes…',
|
|
3177
|
+
'health.browse.no_exercises_found': 'No exercises found.',
|
|
3178
|
+
'health.browse.no_recipes_found': 'No recipes found.',
|
|
3179
|
+
'health.browse.couldnt_load_exercise': 'Couldn\'t load this exercise.',
|
|
3180
|
+
'health.browse.couldnt_load_recipe': 'Couldn\'t load this recipe.',
|
|
3181
|
+
'health.profile.local_blurb': 'Stored on this machine. Ava reads it to shape your daily brief and plan.',
|
|
3182
|
+
'health.profile.saved': 'Saved',
|
|
3183
|
+
'health.profile.sex.other_short': 'Other',
|
|
3184
|
+
'health.profile.height_cm': 'Height (cm)',
|
|
3185
|
+
'health.profile.weight_kg': 'Weight (kg)',
|
|
3186
|
+
'health.profile.body_fat_pct': 'Body fat (%)',
|
|
3187
|
+
'health.profile.primary_goal': 'Primary goal',
|
|
3188
|
+
'health.profile.goal.athletic_performance': 'Athletic performance',
|
|
3189
|
+
'health.profile.this_weeks_focus': 'This week\'s focus',
|
|
3190
|
+
'health.profile.weekly_focus_short_placeholder': 'e.g. deload week',
|
|
3191
|
+
'health.profile.allergens_csv': 'Allergens (comma-separated)',
|
|
3192
|
+
'health.profile.dietary_csv': 'Dietary (comma-separated)',
|
|
3193
|
+
'health.profile.dietary_csv_placeholder': 'e.g. vegan, gluten_free',
|
|
3194
|
+
'health.profile.injuries_csv': 'Injuries / limiting conditions (comma-separated)',
|
|
3195
|
+
'health.profile.equipment_csv': 'Equipment available (comma-separated)',
|
|
3196
|
+
'health.profile.equipment_csv_placeholder': 'e.g. dumbbells, pull_up_bar',
|
|
3197
|
+
'health.profile.minutes_per_day_available': 'Minutes per day available',
|
|
3198
|
+
'health.profile.training_start_short': 'Training — start',
|
|
3199
|
+
'health.profile.training_end_short': 'Training — end',
|
|
3200
|
+
'health.submit.contribute_short': 'Contribute',
|
|
3201
|
+
'health.submit.contribute_short_blurb': 'Add to the open library. Submissions are reviewed before they appear publicly.',
|
|
3202
|
+
'health.submit.published_thanks': 'Published — thank you for contributing.',
|
|
3203
|
+
'health.submit.submitted_thanks': 'Submitted for review — thank you for contributing.',
|
|
3204
|
+
'health.submit.submission_failed': 'Submission failed.',
|
|
3205
|
+
'health.submit.difficulty_1_5': 'Difficulty (1–5)',
|
|
3206
|
+
'health.submit.how_to_do_it_steps': 'How to do it — steps',
|
|
3207
|
+
'health.submit.ex_beginner_label_short': 'If you\'re new to this',
|
|
3208
|
+
'health.submit.ex_mistakes_label_short': 'Common mistakes',
|
|
3209
|
+
'health.submit.contraindications_label': 'Contraindications — who should avoid this',
|
|
3210
|
+
'health.submit.step_n_placeholder': 'Step {n}',
|
|
3211
|
+
'health.submit.cuisine': 'Cuisine',
|
|
3212
|
+
'health.submit.origin_country': 'Origin country',
|
|
3213
|
+
'health.submit.overview': 'Overview',
|
|
3214
|
+
'health.submit.ingredients': 'Ingredients',
|
|
3215
|
+
'health.submit.method_steps': 'Method — steps',
|
|
3216
|
+
'health.submit.allergens': 'Allergens',
|
|
3217
|
+
'health.submit.ingredient_n_placeholder': 'Ingredient {n}',
|
|
3218
|
+
'health.submit.opt_short': 'opt.',
|
|
3219
|
+
'health.submit.remove_ingredient': 'Remove ingredient',
|
|
3220
|
+
'health.mysubs.loading': 'Loading your submissions…',
|
|
3221
|
+
'health.mysubs.empty_use_contribute': 'You haven\'t submitted anything yet — use Contribute to add an exercise or recipe.',
|
|
3222
|
+
'health.mysubs.clear_rejected_short': 'Clear rejected',
|
|
3223
|
+
'health.mysubs.submitted_no_date': 'Submitted',
|
|
3224
|
+
// ── Dashboard chrome (migrated from dashboard chatStrings) ─────────────
|
|
3225
|
+
'dash.nav.chat': 'Chat with Ava',
|
|
3226
|
+
'dash.nav.sync': 'Sync',
|
|
3227
|
+
'dash.nav.releases': 'Releases',
|
|
3228
|
+
'welcome.tagline': '110+ tools \u00B7 7 providers \u00B7 2 free models \u00B7 20 languages',
|
|
3229
|
+
'welcome.setup_title': 'Get Started \u2014 Add an API Key',
|
|
3230
|
+
'welcome.setup_desc': 'Sign up for 3M free Qwen tokens, or add your own API key from any provider.',
|
|
3231
|
+
'welcome.setup_cta': 'Open Settings',
|
|
3232
|
+
'welcome.ready_with': 'Ready with',
|
|
3233
|
+
'welcome.quick_start': 'Quick Start',
|
|
3234
|
+
'welcome.capabilities': 'What Ava Can Do',
|
|
3235
|
+
'welcome.modes': 'Modes',
|
|
3236
|
+
'welcome.footer': 'Open source \u00B7 Your keys, your data \u00B7 Privacy first',
|
|
3237
|
+
'welcome.cap.files': 'Read & Write Files',
|
|
3238
|
+
'welcome.cap.files_desc': 'Create, edit, and manage any file in your project',
|
|
3239
|
+
'welcome.cap.search': 'Search & Navigate',
|
|
3240
|
+
'welcome.cap.search_desc': 'Find files, symbols, and grep across your codebase',
|
|
3241
|
+
'welcome.cap.terminal': 'Run Commands',
|
|
3242
|
+
'welcome.cap.terminal_desc': 'Execute shell commands and scripts directly',
|
|
3243
|
+
'welcome.cap.web': 'Web & APIs',
|
|
3244
|
+
'welcome.cap.web_desc': 'Search the web, make HTTP requests, browse pages',
|
|
3245
|
+
'welcome.cap.security': 'Security Audit',
|
|
3246
|
+
'welcome.cap.security_desc': 'Scan for vulnerabilities and security issues',
|
|
3247
|
+
'welcome.cap.memory': 'Persistent Memory',
|
|
3248
|
+
'welcome.cap.memory_desc': 'Remembers context across conversations',
|
|
3249
|
+
'welcome.mode.code_desc': 'Full agent with all tools',
|
|
3250
|
+
'welcome.mode.plan_desc': 'Architecture & planning',
|
|
3251
|
+
'welcome.mode.chat_desc': 'Discussion only',
|
|
3252
|
+
'welcome.mode.security_desc': 'Security scanning',
|
|
3253
|
+
'welcome.mode.teach': 'Teach',
|
|
3254
|
+
'welcome.mode.teach_desc': 'Ava becomes your personal tutor',
|
|
3255
|
+
'memory.active': 'Active ({count})',
|
|
3256
|
+
'memory.archived': 'Archived ({count})',
|
|
3257
|
+
'memory.recalled': 'recalled {count}x',
|
|
3258
|
+
'memory.last_recalled': 'last: {time}',
|
|
3259
|
+
'feedback.perfect': 'Perfect',
|
|
3260
|
+
'feedback.helpful': 'Helpful',
|
|
3261
|
+
'feedback.creative': 'Creative',
|
|
3262
|
+
'feedback.good_explanation': 'Good explanation',
|
|
3263
|
+
'feedback.wrong': 'Wrong',
|
|
3264
|
+
'feedback.incomplete': 'Incomplete',
|
|
3265
|
+
'feedback.too_verbose': 'Too verbose',
|
|
3266
|
+
'feedback.didnt_understand': 'Didn\x27t understand me',
|
|
3267
|
+
'feedback.off_topic': 'Off topic',
|
|
3268
|
+
// Free text after a thumbs-down. Optional and skippable -- five fixed chips
|
|
3269
|
+
// cannot say "it invented a function that does not exist", which is the
|
|
3270
|
+
// feedback actually worth reading.
|
|
3271
|
+
'feedback.detail_heading': 'What happened?',
|
|
3272
|
+
'feedback.detail_placeholder': 'Optional — what did it get wrong?',
|
|
3273
|
+
'feedback.detail_skip': 'Skip',
|
|
3274
|
+
'feedback.detail_send': 'Send',
|
|
3275
|
+
'feedback.send_failed': 'Could not reach the server.',
|
|
3276
|
+
'secrets.add': 'Add Secret',
|
|
3277
|
+
'input.placeholder.teach': 'What do you want to learn?',
|
|
3278
|
+
'input.placeholder.brainstorm': 'What do you want to explore?',
|
|
3279
|
+
'input.mode.brainstorm': 'Brainstorm',
|
|
3280
|
+
'input.mode.teach': 'Teach',
|
|
3281
|
+
'input.attach_image': 'Attach image',
|
|
3282
|
+
'input.attach_image_unsupported': 'This model is text-only — switch to a vision-capable model (Qwen 3.7 Plus) to attach images.',
|
|
3283
|
+
'input.compress_usage': 'Context usage \u2014 click to compress',
|
|
3284
|
+
'input.compress_click': 'Click to compress context',
|
|
3285
|
+
'input.voice_input': 'Voice input',
|
|
3286
|
+
'input.voice_stop': 'Stop listening',
|
|
3287
|
+
'input.voice_denied': 'Microphone denied \u2014 check browser settings',
|
|
3288
|
+
'input.voice_title': 'Voice Input',
|
|
3289
|
+
'input.voice_subtitle': 'Speak instead of typing',
|
|
3290
|
+
'input.voice_description': 'Ava can listen to your voice and convert it to text. Audio is processed entirely by your browser \u2014 nothing is recorded, stored, or sent to any server.',
|
|
3291
|
+
'input.voice_allow': 'Allow',
|
|
3292
|
+
'input.voice_deny': 'No Thanks',
|
|
3293
|
+
'input.pause_title': 'Tap: pause & check in | Hold: hard stop',
|
|
3294
|
+
'input.pause_aria': 'Pause',
|
|
3295
|
+
'input.provider_free': 'Free',
|
|
3296
|
+
'input.provider_platform': 'Platform',
|
|
3297
|
+
'input.provider_api_key': 'API Key',
|
|
3298
|
+
'input.provider_switch_free': 'Switch to free/platform tokens',
|
|
3299
|
+
'input.provider_use_own_key': 'Use your own API key',
|
|
3300
|
+
'input.tokens_remaining': '{remaining} free tokens remaining',
|
|
3301
|
+
'input.tokens_unlimited': 'Unlimited tokens',
|
|
3302
|
+
'input.mode_switch_hint': 'Click to switch mode (Ctrl+Shift+1\u20146)',
|
|
3303
|
+
'header.dashboard': 'Dashboard',
|
|
3304
|
+
'error_boundary.title': 'Something went wrong',
|
|
3305
|
+
'error_boundary.fallback': 'An unexpected error occurred in the webview.',
|
|
3306
|
+
'error_boundary.reset': 'Reset',
|
|
3307
|
+
'plan.pending': 'pending',
|
|
3308
|
+
'tasks.today': 'Today',
|
|
3309
|
+
'tasks.close': 'Close',
|
|
3310
|
+
'tasks.personal': 'Personal',
|
|
3311
|
+
'tasks.ava': 'Ava',
|
|
3312
|
+
'tasks.filter_today': 'Today',
|
|
3313
|
+
'tasks.filter_all': 'All',
|
|
3314
|
+
'tasks.filter_plans': 'Plans',
|
|
3315
|
+
'tasks.empty_plans': 'No decisions recorded yet. When you approve a plan it is written to Decisions/records/ and appears here.',
|
|
3316
|
+
'tasks.plan_chose': 'Chose',
|
|
3317
|
+
'tasks.plan_open': 'Open record',
|
|
3318
|
+
'tasks.no_tasks_today': 'No tasks for today',
|
|
3319
|
+
'tasks.no_active_tasks': 'No active tasks',
|
|
3320
|
+
'tasks.add_hint': 'Add tasks in the dashboard or ask Ava',
|
|
3321
|
+
'tasks.completed': 'Completed',
|
|
3322
|
+
'tasks.current': 'Current',
|
|
3323
|
+
'tasks.all_complete': 'All tasks complete',
|
|
3324
|
+
'tasks.step_of': 'Step {current} of {total}',
|
|
3325
|
+
'tasks.no_active_session': 'No active session',
|
|
3326
|
+
'tasks.no_completed_yet': 'No completed tasks yet',
|
|
3327
|
+
// Tasks — rich fields, detail editor, reminders, suggestion card.
|
|
3328
|
+
'tasks.open_folder': 'Open the tasks folder on disk',
|
|
3329
|
+
'tasks.new_task': 'New task',
|
|
3330
|
+
'tasks.create_task': 'Create task',
|
|
3331
|
+
'tasks.add_step': 'Add a step…',
|
|
3332
|
+
'tasks.more': 'More',
|
|
3333
|
+
'tasks.due_time': 'Time',
|
|
3334
|
+
'tasks.recurrence': 'Repeat',
|
|
3335
|
+
'tasks.reminder': 'Reminder',
|
|
3336
|
+
'tasks.subtasks': 'Subtasks',
|
|
3337
|
+
'tasks.from': 'From',
|
|
3338
|
+
'tasks.edit': 'Edit',
|
|
3339
|
+
'tasks.save': 'Save',
|
|
3340
|
+
'tasks.expand': 'Expand',
|
|
3341
|
+
'tasks.toggle_complete': 'Toggle complete',
|
|
3342
|
+
'tasks.priority_low': 'Low',
|
|
3343
|
+
'tasks.priority_medium': 'Medium',
|
|
3344
|
+
'tasks.priority_high': 'High',
|
|
3345
|
+
'tasks.priority_urgent': 'Urgent',
|
|
3346
|
+
'tasks.recurrence_none': 'No repeat',
|
|
3347
|
+
'tasks.recurrence_daily': 'Daily',
|
|
3348
|
+
'tasks.recurrence_weekdays': 'Weekdays',
|
|
3349
|
+
'tasks.recurrence_weekly': 'Weekly',
|
|
3350
|
+
'tasks.recurrence_monthly': 'Monthly',
|
|
3351
|
+
'tasks.reminder_-1': 'No reminder',
|
|
3352
|
+
'tasks.reminder_0': 'At time',
|
|
3353
|
+
'tasks.reminder_10': '10 min before',
|
|
3354
|
+
'tasks.reminder_30': '30 min before',
|
|
3355
|
+
'tasks.reminder_60': '1 hour before',
|
|
3356
|
+
'tasks.reminder_1440': '1 day before',
|
|
3357
|
+
'tasks.suggest_title': 'Ava suggests a task',
|
|
3358
|
+
'tasks.suggest_add': 'Add',
|
|
3359
|
+
'tasks.suggest_edit': 'Edit & add',
|
|
3360
|
+
'tasks.suggest_dismiss': 'Dismiss',
|
|
3361
|
+
'tasks.suggest_added': 'Added to your tasks',
|
|
3362
|
+
'tasks.suggest_dismissed': 'Suggestion dismissed',
|
|
3363
|
+
'memory.title': 'Memory v2',
|
|
3364
|
+
'memory.close': 'Close',
|
|
3365
|
+
'memory.global': 'Global',
|
|
3366
|
+
'memory.project': 'Project',
|
|
3367
|
+
'memory.add': '+ Add',
|
|
3368
|
+
'memory.add_title': 'Add memory',
|
|
3369
|
+
'memory.placeholder': 'Enter memory content...',
|
|
3370
|
+
'memory.save': 'Save',
|
|
3371
|
+
'memory.cancel': 'Cancel',
|
|
3372
|
+
'memory.no_archived': 'No archived memories.',
|
|
3373
|
+
'memory.no_global': 'No global memories yet. Ava saves memories as you work together.',
|
|
3374
|
+
'memory.no_project': 'No project memories yet. Ava saves project-specific patterns here.',
|
|
3375
|
+
'memory.restore': 'Restore',
|
|
3376
|
+
'memory.archive': 'Archive',
|
|
3377
|
+
'memory.delete': 'Delete',
|
|
3378
|
+
'memory.confirm': 'Confirm',
|
|
3379
|
+
'memory.confirm_delete': 'Confirm delete',
|
|
3380
|
+
'memory.delete_permanently': 'Delete permanently',
|
|
3381
|
+
'memory.clear_all': 'Clear All',
|
|
3382
|
+
'memory.confirm_clear_all': 'Confirm Clear All',
|
|
3383
|
+
'feedback.good': 'Good response',
|
|
3384
|
+
'feedback.bad': 'Bad response',
|
|
3385
|
+
'feedback.thanks': 'Thanks',
|
|
3386
|
+
'feedback.what_good': 'What was good?',
|
|
3387
|
+
'feedback.what_wrong': 'What went wrong?',
|
|
3388
|
+
'feedback.skip_reason': 'Skip reason',
|
|
3389
|
+
'feedback.cancel': 'Cancel',
|
|
3390
|
+
'secrets.title': 'Secret Vault',
|
|
3391
|
+
'secrets.label_placeholder': 'Label (e.g. Supabase Key)',
|
|
3392
|
+
'secrets.value_placeholder': 'Paste secret value',
|
|
3393
|
+
'secrets.save': 'Save',
|
|
3394
|
+
'secrets.empty': 'No secrets stored',
|
|
3395
|
+
'secrets.reveal': 'Reveal',
|
|
3396
|
+
'secrets.hide': 'Hide',
|
|
3397
|
+
'secrets.vault_tooltip': 'Secret Vault \u2014 store & inject secrets safely',
|
|
3398
|
+
'palette.title': 'Quick Actions',
|
|
3399
|
+
'palette.tooltip': 'Quick Actions \u2014 click or type / to open',
|
|
3400
|
+
'palette.empty': 'No matching commands',
|
|
3401
|
+
'palette.col.task': 'Task',
|
|
3402
|
+
'palette.col.journal': 'Journal',
|
|
3403
|
+
'palette.col.creative': 'Creative',
|
|
3404
|
+
'palette.col.support': 'Support',
|
|
3405
|
+
'palette.col.memory': 'Memory',
|
|
3406
|
+
'palette.col.learning': 'Learning',
|
|
3407
|
+
'palette.task.create': 'New task',
|
|
3408
|
+
'palette.journal.create': 'New entry',
|
|
3409
|
+
'palette.creative.image': 'Image',
|
|
3410
|
+
'palette.creative.music': 'Music',
|
|
3411
|
+
'palette.creative.video': 'Video',
|
|
3412
|
+
'palette.creative.voice': 'Voice',
|
|
3413
|
+
'palette.support.create': 'Contact support',
|
|
3414
|
+
'palette.memory.create': 'Remember this',
|
|
3415
|
+
'palette.learning.create': 'New path',
|
|
3416
|
+
'palette.col.plans': 'Plans',
|
|
3417
|
+
'palette.plans.meal': 'Meal plan',
|
|
3418
|
+
'palette.plans.fitness': 'Fitness plan',
|
|
3419
|
+
'palette.plans.combined': 'Combined plan',
|
|
3420
|
+
'app.model_switched': 'Switched to {model}',
|
|
3421
|
+
'app.context_compressed': 'Context compressed: ~{original} \u2192 ~{compressed} tokens',
|
|
3422
|
+
'app.continue': 'Continue where you left off.',
|
|
3423
|
+
// ── Dashboard pages (extracted hardcoded strings) ──────────────────────
|
|
3424
|
+
'dash.article.ai_curated': 'AI-Curated',
|
|
3425
|
+
'dash.article.at': 'at',
|
|
3426
|
+
'dash.article.avas_take': 'Ava\'s Take',
|
|
3427
|
+
'dash.article.back_to_news': 'Back to News',
|
|
3428
|
+
'dash.article.breaking': 'BREAKING',
|
|
3429
|
+
'dash.article.by': 'by',
|
|
3430
|
+
'dash.article.commentary': 'Ava Supernova Commentary',
|
|
3431
|
+
'dash.article.copied': 'Copied!',
|
|
3432
|
+
'dash.article.copy_link': 'Copy Link',
|
|
3433
|
+
'dash.article.m_read': '{n}m read',
|
|
3434
|
+
'dash.article.open_in_browser': 'Open in Browser',
|
|
3435
|
+
'dash.article.originally_reported': 'Originally reported',
|
|
3436
|
+
'dash.article.read_original': 'Read the original article',
|
|
3437
|
+
'dash.article.related': 'Related Articles',
|
|
3438
|
+
'dash.article.sources': 'Sources',
|
|
3439
|
+
// The Newsroom's receipts — the evidence that separates a report from an
|
|
3440
|
+
// assertion. Ava writes her OWN account and cites what she read; she is not
|
|
3441
|
+
// an aggregator, so the old "AI-curated, all credit to the original authors"
|
|
3442
|
+
// framing is retired. See core's write_article.
|
|
3443
|
+
'dash.article.quotes': 'Quotes',
|
|
3444
|
+
'dash.article.coverage': 'The coverage',
|
|
3445
|
+
'dash.article.coverage_line': '{n} independent {pieces} of reporting across {m} {outlets}.',
|
|
3446
|
+
'dash.article.piece': 'piece',
|
|
3447
|
+
'dash.article.pieces': 'pieces',
|
|
3448
|
+
'dash.article.outlet': 'outlet',
|
|
3449
|
+
'dash.article.outlets': 'outlets',
|
|
3450
|
+
// The number that flatters vs the number that means something. Forty-seven
|
|
3451
|
+
// outlets carrying one wire report is ONE source echoed — saying otherwise
|
|
3452
|
+
// launders a single claim into fake consensus.
|
|
3453
|
+
'dash.article.echoed': 'The rest are running the same copy — that is one report echoed, not corroboration.',
|
|
3454
|
+
'dash.article.echoed_wire': 'The rest are running the same {wire} report — that is one report echoed, not corroboration.',
|
|
3455
|
+
'dash.article.differ': 'Where they differ',
|
|
3456
|
+
'dash.article.not_covering': 'Not covering it',
|
|
3457
|
+
'dash.article.unverified': 'What we could not verify',
|
|
3458
|
+
'dash.article.transparency_ai': 'Written by Ava Supernova from the sources listed above. Every quote was checked, word for word, against the original reporting.',
|
|
3459
|
+
'dash.article.transparency_default': 'All credit belongs to the original authors and publications where applicable.',
|
|
3460
|
+
'dash.audit.arguments': 'Arguments',
|
|
3461
|
+
'dash.audit.byok_estimate_label': 'BYOK estimate:',
|
|
3462
|
+
'dash.audit.cat_file_ops': 'File Ops',
|
|
3463
|
+
'dash.audit.cat_shell': 'Shell',
|
|
3464
|
+
'dash.audit.cat_git': 'Git',
|
|
3465
|
+
'dash.audit.cat_web': 'Web',
|
|
3466
|
+
'dash.audit.cat_media': 'Media',
|
|
3467
|
+
'dash.audit.cat_database': 'Database',
|
|
3468
|
+
'dash.audit.cat_system': 'System',
|
|
3469
|
+
'dash.audit.cat_documents': 'Docs',
|
|
3470
|
+
'dash.audit.cat_memory': 'Memory',
|
|
3471
|
+
'dash.audit.cat_learning': 'Learning',
|
|
3472
|
+
'dash.audit.col_approval': 'Approval',
|
|
3473
|
+
'dash.audit.col_category': 'Category',
|
|
3474
|
+
'dash.audit.col_cost': 'Cost',
|
|
3475
|
+
'dash.audit.col_risk': 'Risk',
|
|
3476
|
+
'dash.audit.col_status': 'Status',
|
|
3477
|
+
'dash.audit.col_time': 'Time',
|
|
3478
|
+
'dash.audit.col_tool': 'Tool',
|
|
3479
|
+
'dash.audit.credits_label': 'Credits:',
|
|
3480
|
+
'dash.audit.empty_filtered': 'No entries match your filters.',
|
|
3481
|
+
'dash.audit.empty_none': 'No tool calls recorded yet.',
|
|
3482
|
+
'dash.audit.entries_shown': '{shown} of {total} entries shown',
|
|
3483
|
+
'dash.audit.export_json': 'Export .json',
|
|
3484
|
+
'dash.audit.export_json_title': 'Export the filtered audit log as JSON — for SIEM ingest or programmatic analysis.',
|
|
3485
|
+
'dash.audit.export_md': 'Export .md',
|
|
3486
|
+
'dash.audit.export_md_title': 'Export the filtered audit log as a Markdown report — auditable, human-readable, never leaves your machine.',
|
|
3487
|
+
'dash.audit.filter_placeholder': 'Filter by tool name or argument…',
|
|
3488
|
+
'dash.audit.finding_auto_fail': 'You auto-approve {tool} but {pct}% of those calls fail ({failed} of {total} this week).',
|
|
3489
|
+
'dash.audit.finding_auto_fail_hint': 'Consider tightening the approval rule to first-time, so failures get a second look.',
|
|
3490
|
+
'dash.audit.finding_dangerous_hint': 'Review these in the audit table to confirm they touched only what you expected.',
|
|
3491
|
+
'dash.audit.finding_dangerous_one': '{n} dangerous tool call succeeded this week.',
|
|
3492
|
+
'dash.audit.finding_dangerous_other': '{n} dangerous tool calls succeeded this week.',
|
|
3493
|
+
'dash.audit.finding_retry': '{tool} was called {count} times in a row at {time} — possible retry loop.',
|
|
3494
|
+
'dash.audit.finding_retry_hint': "Open the row to compare arguments. If they're identical, this is usually a provider hiccup or a stale cache.",
|
|
3495
|
+
'dash.audit.refresh': 'Refresh',
|
|
3496
|
+
'dash.audit.refresh_title': 'Refresh — re-verify file integrity and load new entries',
|
|
3497
|
+
'dash.audit.integrity_title': 'File integrity',
|
|
3498
|
+
'dash.audit.integrity_unchanged': 'Unchanged — as Ava left it',
|
|
3499
|
+
'dash.audit.integrity_modified': 'Modified since',
|
|
3500
|
+
'dash.audit.integrity_deleted': 'Deleted since',
|
|
3501
|
+
'dash.audit.integrity_unverifiable': 'Unverifiable',
|
|
3502
|
+
'dash.audit.integrity_hash_after': 'SHA-256 (after)',
|
|
3503
|
+
'dash.audit.integrity_git_sha': 'Git HEAD',
|
|
3504
|
+
'dash.audit.integrity_size': 'Size',
|
|
3505
|
+
'dash.audit.security_lens': 'Security',
|
|
3506
|
+
'dash.audit.security_lens_title': 'Security lens — show only calls that crossed a sandbox boundary: network, out-of-workspace writes, secret access, dangerous tools',
|
|
3507
|
+
'dash.audit.sec_network': 'network',
|
|
3508
|
+
'dash.audit.sec_outofws': 'out-of-scope',
|
|
3509
|
+
'dash.audit.sec_secret': 'secret',
|
|
3510
|
+
'dash.audit.sec_dangerous': 'dangerous',
|
|
3511
|
+
'dash.audit.result': 'Result',
|
|
3512
|
+
'dash.audit.risk_all': 'All risk',
|
|
3513
|
+
'dash.audit.risk_dangerous': 'Dangerous',
|
|
3514
|
+
'dash.audit.risk_safe': 'Safe',
|
|
3515
|
+
'dash.audit.risk_write': 'Write',
|
|
3516
|
+
'dash.audit.showing_range': 'Showing {from}–{to} of {total}',
|
|
3517
|
+
'dash.audit.status_all': 'All status',
|
|
3518
|
+
'dash.audit.status_denied': 'Denied',
|
|
3519
|
+
'dash.audit.status_failed': 'Failed',
|
|
3520
|
+
'dash.audit.status_success': 'Success',
|
|
3521
|
+
'dash.cc.add_name': '+ add name',
|
|
3522
|
+
'dash.cc.credits_used': 'Credits Used',
|
|
3523
|
+
'dash.cc.free_credits': 'Free credits',
|
|
3524
|
+
'dash.cc.loading_article': 'Loading article...',
|
|
3525
|
+
'dash.cc.name_change_title': 'Click to change what Ava calls you',
|
|
3526
|
+
'dash.cc.name_placeholder': 'What should Ava call you?',
|
|
3527
|
+
'dash.cc.name_set_title': 'Tell Ava what to call you',
|
|
3528
|
+
'dash.cc.refresh_widget': 'Refresh {name}',
|
|
3529
|
+
'dash.chat.copied_excl': 'Copied!',
|
|
3530
|
+
'dash.chat.copied_to_clipboard': 'Copied to clipboard',
|
|
3531
|
+
'dash.chat.copy_short': 'Copy',
|
|
3532
|
+
'dash.chat.copy_to_clipboard': 'Copy to clipboard',
|
|
3533
|
+
'dash.chat.diff_more_added': '… {count} more added lines hidden (expand to see all)',
|
|
3534
|
+
'dash.chat.diff_more_removed': '… {count} more removed lines hidden (expand to see all)',
|
|
3535
|
+
'dash.chat.greeting.afternoon': 'Afternoon{name}. {day} — what can I get into for you?',
|
|
3536
|
+
'dash.chat.greeting.evening': 'Evening{name}. Pull up a chair — what are we working on?',
|
|
3537
|
+
'dash.chat.greeting.late_anon': 'Late one here. I\'m awake if you are — what\'s on your mind?',
|
|
3538
|
+
'dash.chat.greeting.late_named': 'Late one{name}. I\'m awake if you are — what\'s on your mind?',
|
|
3539
|
+
'dash.chat.greeting.morning': 'Morning{name}. It\'s {day} — what are we tackling today?',
|
|
3540
|
+
'dash.chat.messages_log': 'Chat messages',
|
|
3541
|
+
'dash.chat.persona_verb.default': 'Working',
|
|
3542
|
+
// Persona timeline — labels + the present-tense verb shown while each runs.
|
|
3543
|
+
// Covers every specialist across Work / Plan / Teach / Security / Brainstorm.
|
|
3544
|
+
'dash.chat.persona_label.scout': 'Scout',
|
|
3545
|
+
'dash.chat.persona_label.architect': 'Architect',
|
|
3546
|
+
'dash.chat.persona_label.verifier': 'Verifier',
|
|
3547
|
+
'dash.chat.persona_label.sequencer': 'Sequencer',
|
|
3548
|
+
'dash.chat.persona_label.challenger': 'Challenger',
|
|
3549
|
+
'dash.chat.persona_label.builder': 'Builder',
|
|
3550
|
+
'dash.chat.persona_label.researcher': 'Researcher',
|
|
3551
|
+
'dash.chat.persona_label.curriculum_architect': 'Curriculum Architect',
|
|
3552
|
+
'dash.chat.persona_label.content_writer': 'Content Writer',
|
|
3553
|
+
'dash.chat.persona_label.fact_checker': 'Fact Checker',
|
|
3554
|
+
'dash.chat.persona_label.quiz_master': 'Quiz Master',
|
|
3555
|
+
'dash.chat.persona_label.tutor': 'Tutor',
|
|
3556
|
+
'dash.chat.persona_label.recon': 'Recon',
|
|
3557
|
+
'dash.chat.persona_label.scanner': 'Scanner',
|
|
3558
|
+
'dash.chat.persona_label.cve_researcher': 'CVE Researcher',
|
|
3559
|
+
'dash.chat.persona_label.reporter': 'Reporter',
|
|
3560
|
+
'dash.chat.persona_label.explorer': 'Explorer',
|
|
3561
|
+
'dash.chat.persona_label.ideator': 'Ideator',
|
|
3562
|
+
'dash.chat.persona_label.refiner': 'Refiner',
|
|
3563
|
+
'dash.chat.persona_verb.scout': 'Mapping the codebase',
|
|
3564
|
+
'dash.chat.persona_verb.architect': 'Designing the approach',
|
|
3565
|
+
'dash.chat.persona_verb.verifier': 'Verifying assumptions',
|
|
3566
|
+
'dash.chat.persona_verb.sequencer': 'Sequencing the steps',
|
|
3567
|
+
'dash.chat.persona_verb.challenger': 'Challenging the plan',
|
|
3568
|
+
'dash.chat.persona_verb.builder': 'Building',
|
|
3569
|
+
'dash.chat.persona_verb.researcher': 'Researching',
|
|
3570
|
+
'dash.chat.persona_verb.curriculum_architect': 'Designing the curriculum',
|
|
3571
|
+
'dash.chat.persona_verb.content_writer': 'Writing the content',
|
|
3572
|
+
'dash.chat.persona_verb.fact_checker': 'Fact-checking',
|
|
3573
|
+
'dash.chat.persona_verb.quiz_master': 'Building the quiz',
|
|
3574
|
+
'dash.chat.persona_verb.tutor': 'Teaching',
|
|
3575
|
+
'dash.chat.persona_verb.recon': 'Mapping the attack surface',
|
|
3576
|
+
'dash.chat.persona_verb.scanner': 'Scanning for issues',
|
|
3577
|
+
'dash.chat.persona_verb.cve_researcher': 'Researching CVEs',
|
|
3578
|
+
'dash.chat.persona_verb.reporter': 'Writing the report',
|
|
3579
|
+
'dash.chat.persona_verb.explorer': 'Exploring your context',
|
|
3580
|
+
'dash.chat.persona_verb.ideator': 'Generating ideas',
|
|
3581
|
+
'dash.chat.persona_verb.refiner': 'Refining the ideas',
|
|
3582
|
+
'dash.chat.planning_complete': 'Planning complete',
|
|
3583
|
+
'dash.chat.preparing_next_specialist': 'Preparing next specialist...',
|
|
3584
|
+
'dash.chat.starter.audit': 'Audit security',
|
|
3585
|
+
'dash.chat.starter.audit_prompt': '!! Audit this project for security issues',
|
|
3586
|
+
'dash.chat.starter.brainstorm': 'Brainstorm',
|
|
3587
|
+
'dash.chat.starter.brainstorm_prompt': '** Help me think through ',
|
|
3588
|
+
'dash.chat.starter.chat': 'Just chat',
|
|
3589
|
+
'dash.chat.starter.explain': 'Explain a file',
|
|
3590
|
+
'dash.chat.starter.explain_prompt': 'Explain what this file does: ',
|
|
3591
|
+
'dash.chat.starter.heading': 'Where do we start?',
|
|
3592
|
+
'dash.chat.starter.plan': 'Plan a feature',
|
|
3593
|
+
'dash.chat.starter.plan_prompt': ':: How should I approach adding ',
|
|
3594
|
+
'dash.chat.starter.subheading': 'I can read your code, plan a feature, teach you something, audit security, brainstorm, or just chat. Pick one — you can edit before sending.',
|
|
3595
|
+
'dash.chat.starter.teach': 'Teach me',
|
|
3596
|
+
'dash.chat.starter.teach_prompt': '?? Teach me about ',
|
|
3597
|
+
'dash.chat.starter.tip_prefix': 'Tip: type',
|
|
3598
|
+
'dash.chat.starter.tip_suffix': 'at the start of a message to switch modes any time.',
|
|
3599
|
+
'dash.chat.team_planning': 'Ava\'s {mode} team is planning',
|
|
3600
|
+
'dash.chat.thinking_in_progress': 'Thinking in progress',
|
|
3601
|
+
'dash.chat.thought_for': 'Thought for {duration}',
|
|
3602
|
+
'dash.cloud.addons_amount': '+ {amount} add-ons',
|
|
3603
|
+
'dash.cloud.by_type': 'By type',
|
|
3604
|
+
'dash.cloud.by_type_desc': 'Clear everything in a category from your cloud copy. Local data is never touched.',
|
|
3605
|
+
'dash.cloud.clear_all': 'Clear all from cloud',
|
|
3606
|
+
'dash.cloud.clearing': 'Clearing…',
|
|
3607
|
+
'dash.cloud.management_tab': 'Cloud Management',
|
|
3608
|
+
'dash.cloud.of_total': 'of {total}',
|
|
3609
|
+
'dash.cloud.plan_amount': '{amount} plan',
|
|
3610
|
+
'dash.cloud.recalculate': 'Recalculate storage usage',
|
|
3611
|
+
'dash.cloud.signin_prompt': 'Sign in to see what\'s in your cloud storage.',
|
|
3612
|
+
'dash.cloud.storage_blurb': 'Your cloud copy. Clearing anything here only touches the cloud — local files always stay on your machine.',
|
|
3613
|
+
'dash.cloud.storage_title': 'Cloud Storage',
|
|
3614
|
+
'dash.creative.action_animate': 'Animate',
|
|
3615
|
+
'dash.creative.action_use_as_score': 'Use as score',
|
|
3616
|
+
'dash.creative.action_variations': 'Variations',
|
|
3617
|
+
'dash.creative.action_voiceover': 'Voice over',
|
|
3618
|
+
'dash.creative.admin_no_caps': 'Admin tier — no caps',
|
|
3619
|
+
'dash.creative.attach_first_frame': 'Attach a first-frame image for image-to-video',
|
|
3620
|
+
'dash.creative.avas_voice': 'Ava\'s voice',
|
|
3621
|
+
'dash.creative.avoid_placeholder': 'blurry, watermark, low detail…',
|
|
3622
|
+
'dash.creative.camera_auto': 'Auto',
|
|
3623
|
+
'dash.creative.camera_static': 'Static',
|
|
3624
|
+
'dash.creative.camera_pan': 'Pan',
|
|
3625
|
+
'dash.creative.camera_zoom': 'Zoom',
|
|
3626
|
+
'dash.creative.camera_dolly': 'Dolly',
|
|
3627
|
+
'dash.creative.camera_orbit': 'Orbit',
|
|
3628
|
+
'dash.creative.click_again': 'Click again',
|
|
3629
|
+
'dash.creative.click_again_confirm': 'Click again to confirm',
|
|
3630
|
+
'dash.creative.close_esc': 'Close (Esc)',
|
|
3631
|
+
'dash.creative.copied': 'Copied',
|
|
3632
|
+
'dash.creative.copy_prompt': 'Copy prompt',
|
|
3633
|
+
'dash.creative.cost_cr': '{credits} cr',
|
|
3634
|
+
'dash.creative.cost_for_generation': '{credits} credits for this generation',
|
|
3635
|
+
'dash.creative.cost_over_balance': '{credits} credits — over your remaining {balance} balance',
|
|
3636
|
+
'dash.creative.credit_balance': 'Credit balance',
|
|
3637
|
+
'dash.creative.credits_left': 'credits left',
|
|
3638
|
+
'dash.creative.done': 'Done',
|
|
3639
|
+
'dash.creative.emotion_neutral': 'Neutral',
|
|
3640
|
+
'dash.creative.emotion_calm': 'Calm',
|
|
3641
|
+
'dash.creative.emotion_excited': 'Excited',
|
|
3642
|
+
'dash.creative.emotion_playful': 'Playful',
|
|
3643
|
+
'dash.creative.emotion_serious': 'Serious',
|
|
3644
|
+
'dash.creative.emotion_whispered': 'Whispered',
|
|
3645
|
+
'dash.creative.err_no_audio_url': 'No audio URL returned',
|
|
3646
|
+
'dash.creative.err_no_image_url': 'No image URL returned',
|
|
3647
|
+
'dash.creative.err_no_video_url': 'No video URL returned',
|
|
3648
|
+
'dash.creative.err_no_voice_url': 'No voice URL returned',
|
|
3649
|
+
'dash.creative.err_video_failed': 'Video generation failed',
|
|
3650
|
+
'dash.creative.gallery_empty': 'Your generations will appear here. Make something — they stack up newest first.',
|
|
3651
|
+
'dash.creative.gen_eta': 'Should be ready in moments.',
|
|
3652
|
+
'dash.creative.gen_image': 'Generating image…',
|
|
3653
|
+
'dash.creative.gen_music': 'Composing music…',
|
|
3654
|
+
'dash.creative.gen_video': 'Rendering video… {elapsed}s',
|
|
3655
|
+
'dash.creative.gen_video_eta': 'Typically 2–4 minutes for video.',
|
|
3656
|
+
'dash.creative.gen_voice': 'Synthesising voice…',
|
|
3657
|
+
'dash.creative.generated_image_alt': 'Generated image',
|
|
3658
|
+
'dash.creative.generating': 'Generating…',
|
|
3659
|
+
'dash.creative.generation_failed': 'Generation failed',
|
|
3660
|
+
'dash.creative.hint_drop_image': 'drop an image to set the first frame',
|
|
3661
|
+
'dash.creative.hint_newline': 'Enter for new line',
|
|
3662
|
+
'dash.creative.hint_to_send': 'to send',
|
|
3663
|
+
'dash.creative.label_avoid': 'Avoid',
|
|
3664
|
+
'dash.creative.label_camera': 'Camera',
|
|
3665
|
+
'dash.creative.label_duration': 'Duration',
|
|
3666
|
+
'dash.creative.label_emotion': 'Emotion',
|
|
3667
|
+
'dash.creative.label_lyrics': 'Lyrics',
|
|
3668
|
+
'dash.creative.label_mood': 'Mood',
|
|
3669
|
+
'dash.creative.label_motion': 'Motion',
|
|
3670
|
+
'dash.creative.label_pitch': 'Pitch',
|
|
3671
|
+
'dash.creative.label_size': 'Size',
|
|
3672
|
+
'dash.creative.label_speed': 'Speed',
|
|
3673
|
+
'dash.creative.label_style': 'Style',
|
|
3674
|
+
'dash.creative.label_variations': 'Variations',
|
|
3675
|
+
'dash.creative.label_voice': 'Voice',
|
|
3676
|
+
'dash.creative.lyrics_placeholder': 'Optional — leave empty for instrumental',
|
|
3677
|
+
'dash.creative.mode_image': 'Image',
|
|
3678
|
+
'dash.creative.mode_music': 'Music',
|
|
3679
|
+
'dash.creative.mode_settings': '{mode} settings',
|
|
3680
|
+
'dash.creative.mode_video': 'Video',
|
|
3681
|
+
'dash.creative.mode_voice': 'Voice',
|
|
3682
|
+
'dash.creative.modeword_images': 'images',
|
|
3683
|
+
'dash.creative.modeword_music': 'music',
|
|
3684
|
+
'dash.creative.modeword_video': 'video',
|
|
3685
|
+
'dash.creative.modeword_voice': 'voice',
|
|
3686
|
+
'dash.creative.mood_auto': 'Auto',
|
|
3687
|
+
'dash.creative.mood_cinematic': 'Cinematic',
|
|
3688
|
+
'dash.creative.mood_lofi': 'Lo-fi',
|
|
3689
|
+
'dash.creative.mood_synthwave': 'Synthwave',
|
|
3690
|
+
'dash.creative.mood_orchestral': 'Orchestral',
|
|
3691
|
+
'dash.creative.mood_ambient': 'Ambient',
|
|
3692
|
+
'dash.creative.mood_trailer': 'Trailer',
|
|
3693
|
+
'dash.creative.motion_dynamic': 'Dynamic',
|
|
3694
|
+
'dash.creative.motion_subtle': 'Subtle',
|
|
3695
|
+
'dash.creative.motion_wild': 'Wild',
|
|
3696
|
+
'dash.creative.n_variations': '{n} variations',
|
|
3697
|
+
'dash.creative.no_prompt': '(no prompt)',
|
|
3698
|
+
'dash.creative.one_image': '1 image',
|
|
3699
|
+
'dash.creative.placeholder_image': 'A 4K cinematic shot of…',
|
|
3700
|
+
'dash.creative.placeholder_music': 'A lo-fi track with mellow drums and warm bass…',
|
|
3701
|
+
'dash.creative.placeholder_video': 'A sweeping aerial shot of…',
|
|
3702
|
+
'dash.creative.placeholder_voice': 'What should she say?',
|
|
3703
|
+
'dash.creative.ready_desc': 'Describe the {mode} you want — anything from a one-line idea to a fully scoped scene. Or pick a starter below.',
|
|
3704
|
+
'dash.creative.ready_title': 'Ready when you are.',
|
|
3705
|
+
'dash.creative.regenerate': 'Regenerate',
|
|
3706
|
+
'dash.creative.remove_first_frame': 'Remove first-frame image',
|
|
3707
|
+
'dash.creative.replace_first_frame': 'Replace first-frame image',
|
|
3708
|
+
'dash.creative.send': 'Send',
|
|
3709
|
+
'dash.creative.shuffle_suggestions': 'Show me different ones',
|
|
3710
|
+
'dash.creative.sign_in_credits': 'Sign in to see your credits.',
|
|
3711
|
+
'dash.creative.size_landscape': 'Landscape',
|
|
3712
|
+
'dash.creative.size_portrait': 'Portrait',
|
|
3713
|
+
'dash.creative.size_square': 'Square',
|
|
3714
|
+
'dash.creative.storage_both': 'both',
|
|
3715
|
+
'dash.creative.storage_cloud': 'cloud',
|
|
3716
|
+
'dash.creative.storage_local': 'local',
|
|
3717
|
+
'dash.creative.style_auto': 'Auto',
|
|
3718
|
+
'dash.creative.style_cinematic': 'Cinematic',
|
|
3719
|
+
'dash.creative.style_photoreal': 'Photoreal',
|
|
3720
|
+
'dash.creative.style_illustration': 'Illustration',
|
|
3721
|
+
'dash.creative.style_anime': 'Anime',
|
|
3722
|
+
'dash.creative.style_watercolour': 'Watercolour',
|
|
3723
|
+
'dash.creative.style_graphic': 'Graphic',
|
|
3724
|
+
'dash.creative.subtitle': 'Tell Ava what you want to make.',
|
|
3725
|
+
'dash.creative.unlimited': 'Unlimited',
|
|
3726
|
+
'dash.creative.voice_ava': 'Ava',
|
|
3727
|
+
'dash.creative.voice_calm_woman': 'Calm Woman',
|
|
3728
|
+
'dash.creative.voice_calm_man': 'Calm Man',
|
|
3729
|
+
'dash.creative.voice_wise_woman': 'Wise Woman',
|
|
3730
|
+
'dash.creative.voice_deep': 'Deep Voice',
|
|
3731
|
+
'dash.creative.voice_determined': 'Determined',
|
|
3732
|
+
'dash.creative.voice_friendly': 'Friendly',
|
|
3733
|
+
'dash.creative.voice_inspirational': 'Inspirational',
|
|
3734
|
+
'dash.creative.voice_lively': 'Lively',
|
|
3735
|
+
'dash.creative.voice_newscaster': 'Newscaster',
|
|
3736
|
+
'dash.creative.voice_patient': 'Patient',
|
|
3737
|
+
'dash.creative.voice_locked': 'Locked',
|
|
3738
|
+
'dash.creative.voice_pick_character': 'Pick a character',
|
|
3739
|
+
'dash.creative.with_lyrics': 'with lyrics',
|
|
3740
|
+
'dash.docs.callout_note': 'Note',
|
|
3741
|
+
'dash.docs.callout_tip': 'Tip',
|
|
3742
|
+
'dash.docs.callout_warning': 'Warning',
|
|
3743
|
+
'dash.docs.col_action': 'Action',
|
|
3744
|
+
'dash.docs.col_capabilities': 'Capabilities',
|
|
3745
|
+
'dash.docs.col_category': 'Category',
|
|
3746
|
+
'dash.docs.col_context': 'Context',
|
|
3747
|
+
'dash.docs.col_description': 'Description',
|
|
3748
|
+
'dash.docs.col_mindset': 'Mindset',
|
|
3749
|
+
'dash.docs.col_mode': 'Mode',
|
|
3750
|
+
'dash.docs.col_model': 'Model',
|
|
3751
|
+
'dash.docs.col_prefix': 'Prefix',
|
|
3752
|
+
'dash.docs.col_price': '$/1M in/out',
|
|
3753
|
+
'dash.docs.col_risk': 'Risk',
|
|
3754
|
+
'dash.docs.col_summary': 'Summary',
|
|
3755
|
+
'dash.docs.col_surface': 'Surface',
|
|
3756
|
+
'dash.docs.col_tool': 'Tool',
|
|
3757
|
+
'dash.docs.col_win_mac': 'Win / Mac',
|
|
3758
|
+
'dash.docs.sections': 'Sections',
|
|
3759
|
+
'dash.docs.team_label': '{mode} team',
|
|
3760
|
+
'dash.history.n_credits': '{n} credits',
|
|
3761
|
+
'dash.history.no_conversations': 'No conversations yet. Start chatting with Ava!',
|
|
3762
|
+
'dash.history.no_match': 'No conversations match your search.',
|
|
3763
|
+
'dash.history.search_conversations': 'Search conversations…',
|
|
3764
|
+
'dash.history.subtitle': 'Conversations, credits, and tool-call audit',
|
|
3765
|
+
'dash.history.tab_audit': 'Audit',
|
|
3766
|
+
'dash.history.tab_conversations': 'Conversations',
|
|
3767
|
+
'dash.history.tab_usage': 'Usage',
|
|
3768
|
+
'dash.history.title': 'History',
|
|
3769
|
+
'dash.library_papers.abstract': 'Abstract',
|
|
3770
|
+
// Discipline filter chips
|
|
3771
|
+
'dash.library_papers.disc_all': 'All',
|
|
3772
|
+
'dash.library_papers.disc_ai_cs': 'AI & CS',
|
|
3773
|
+
'dash.library_papers.disc_biology': 'Biology',
|
|
3774
|
+
'dash.library_papers.disc_medicine': 'Medicine',
|
|
3775
|
+
'dash.library_papers.disc_physics': 'Physics',
|
|
3776
|
+
'dash.library_papers.disc_chemistry': 'Chemistry',
|
|
3777
|
+
'dash.library_papers.disc_earth_sciences': 'Earth Sciences',
|
|
3778
|
+
'dash.library_papers.disc_social_sciences': 'Social Sciences',
|
|
3779
|
+
'dash.library_papers.disc_economics': 'Economics',
|
|
3780
|
+
'dash.library_papers.disc_engineering': 'Engineering',
|
|
3781
|
+
'dash.library_papers.disc_math': 'Mathematics',
|
|
3782
|
+
'dash.library_papers.disc_other': 'Other',
|
|
3783
|
+
// Discipline badges (short)
|
|
3784
|
+
'dash.library_papers.badge_ai_cs': 'AI/CS',
|
|
3785
|
+
'dash.library_papers.badge_biology': 'Biology',
|
|
3786
|
+
'dash.library_papers.badge_medicine': 'Medicine',
|
|
3787
|
+
'dash.library_papers.badge_physics': 'Physics',
|
|
3788
|
+
'dash.library_papers.badge_chemistry': 'Chemistry',
|
|
3789
|
+
'dash.library_papers.badge_earth_sciences': 'Earth Sci.',
|
|
3790
|
+
'dash.library_papers.badge_social_sciences': 'Social Sci.',
|
|
3791
|
+
'dash.library_papers.badge_economics': 'Economics',
|
|
3792
|
+
'dash.library_papers.badge_engineering': 'Engineering',
|
|
3793
|
+
'dash.library_papers.badge_math': 'Math',
|
|
3794
|
+
'dash.library_papers.badge_other': 'Other',
|
|
3795
|
+
// Tabs
|
|
3796
|
+
'dash.library_papers.tab_featured': 'Featured',
|
|
3797
|
+
'dash.library_papers.tab_featured_hint': 'Hand-picked papers worth your time.',
|
|
3798
|
+
'dash.library_papers.tab_trending': 'Trending',
|
|
3799
|
+
'dash.library_papers.tab_trending_hint': 'What people are reading right now.',
|
|
3800
|
+
'dash.library_papers.tab_latest': 'Latest',
|
|
3801
|
+
'dash.library_papers.tab_latest_hint': 'Freshest research, just published.',
|
|
3802
|
+
'dash.library_papers.authors_et_al': '{authors}, et al.',
|
|
3803
|
+
'dash.library_papers.citations': '{n} citations',
|
|
3804
|
+
'dash.library_papers.clear_search': 'Clear search',
|
|
3805
|
+
'dash.library_papers.close': 'Close',
|
|
3806
|
+
'dash.library_papers.empty_search': 'No papers found for "{query}"',
|
|
3807
|
+
'dash.library_papers.empty_search_hint': 'Try different keywords or remove the discipline filter.',
|
|
3808
|
+
'dash.library_papers.empty_tab': 'No papers in this tab yet',
|
|
3809
|
+
'dash.library_papers.empty_tab_hint': 'New picks land regularly. Try the search bar to find something specific.',
|
|
3810
|
+
'dash.library_papers.loading_detail': 'Loading paper details…',
|
|
3811
|
+
'dash.library_papers.medical_banner': 'Some papers in this list are clinical or medical. Ava will summarise — that is not medical advice. Check with a healthcare professional before acting on anything you read here.',
|
|
3812
|
+
'dash.library_papers.not_medical_advice_body': 'Ava\'s explanation is summarisation, not clinical guidance. Talk to a healthcare professional before acting on anything from this paper.',
|
|
3813
|
+
'dash.library_papers.not_medical_advice_lead': 'Not medical advice.',
|
|
3814
|
+
'dash.library_papers.open_access_pdf': 'Open-access PDF',
|
|
3815
|
+
'dash.library_papers.original_publisher': 'Original (publisher)',
|
|
3816
|
+
'dash.library_papers.read_with_ava': 'Read with Ava',
|
|
3817
|
+
'dash.library_papers.retracted': 'RETRACTED',
|
|
3818
|
+
'dash.library_papers.search_placeholder': 'Search across all sciences — title, author, topic...',
|
|
3819
|
+
'dash.models.cell_title': '{score}% over {runs} runs{conf}',
|
|
3820
|
+
'dash.models.col_model': 'Model',
|
|
3821
|
+
'dash.models.col_overall': 'Overall',
|
|
3822
|
+
'dash.models.generated': 'Generated {date} · {runs} total runs · {models} models',
|
|
3823
|
+
'dash.models.how_it_works_body': 'Ava runs a hand-curated suite of real coding tasks against every supported model on a weekly cadence. Every score links to the exact prompt sent and the exact response received — open the public repo to read any transcript, propose a tighter scoring rubric, or reproduce a score on your own machine with one command. No user data ever enters this repo.',
|
|
3824
|
+
'dash.models.how_it_works_lead': 'How this works.',
|
|
3825
|
+
'dash.models.launching_soon': 'Leaderboard launching soon',
|
|
3826
|
+
'dash.models.low_confidence_suffix': ' (low confidence)',
|
|
3827
|
+
'dash.models.no_data': 'No leaderboard data yet',
|
|
3828
|
+
'dash.models.no_runs': 'no runs in this category yet',
|
|
3829
|
+
'dash.models.refresh': 'Refresh',
|
|
3830
|
+
'dash.models.refreshing': 'Refreshing…',
|
|
3831
|
+
'dash.models.repo_not_live': 'The public benchmark repo isn\'t live yet — the leaderboard publishes the moment Ava\'s first run batch is pushed.',
|
|
3832
|
+
'dash.models.subtitle': 'Real coding tasks. Real model outputs. Real receipts. Auditable in the public bench repo.',
|
|
3833
|
+
'dash.models.title': 'Models',
|
|
3834
|
+
'dash.models.section_models': 'Models',
|
|
3835
|
+
'dash.models.section_modes': 'Ava Modes',
|
|
3836
|
+
'dash.models.modes_explainer': 'Modes orchestrate several models. They are compared only to each other — never ranked against a raw model, because a mode costs more and runs slower by design. Expand a mode to see the fleet it actually ran.',
|
|
3837
|
+
'dash.models.col_mode': 'Mode',
|
|
3838
|
+
'dash.models.receipts': 'receipts',
|
|
3839
|
+
'dash.models.fleet': 'Fleet',
|
|
3840
|
+
'dash.models.clean': 'clean',
|
|
3841
|
+
'dash.models.clean_title': 'Tasks published after this model shipped — no training-data contamination on those.',
|
|
3842
|
+
'dash.models.losses_title': 'Where we lose',
|
|
3843
|
+
'dash.models.losses_body': 'Our weakest results, shown on purpose. Publishing your own losses is the part nobody fakes.',
|
|
3844
|
+
'dash.models.mode_tag': 'mode',
|
|
3845
|
+
'dash.models.view_on_github': 'View on GitHub',
|
|
3846
|
+
'dash.nav.coming_soon_full': 'coming soon',
|
|
3847
|
+
'dash.nav.expand_sidebar': 'Expand sidebar',
|
|
3848
|
+
'dash.nav.export_import': 'Export / Import data',
|
|
3849
|
+
'dash.nav.hide_calendar': 'Hide calendar',
|
|
3850
|
+
'dash.nav.hide_sidebar': 'Hide sidebar',
|
|
3851
|
+
'dash.nav.move_sidebar_left': 'Move sidebar to left',
|
|
3852
|
+
'dash.nav.move_sidebar_right': 'Move sidebar to right',
|
|
3853
|
+
'dash.nav.show_calendar': 'Show calendar',
|
|
3854
|
+
'dash.portability.accepts_json': 'Accepts multiple JSON files at once',
|
|
3855
|
+
'dash.portability.click_select': 'Click to select files',
|
|
3856
|
+
'dash.portability.detected_files': 'Detected files',
|
|
3857
|
+
'dash.portability.download_all': 'Download all my cloud data',
|
|
3858
|
+
'dash.portability.download_all_desc': 'Everything the platform holds — GDPR Article 20 right of portability.',
|
|
3859
|
+
'dash.portability.cloud_sunset': 'Cloud storage is going away forever on 1 July 2026. Download your data before then — after that, it is gone.',
|
|
3860
|
+
'dash.portability.type.memory_desc': 'Your saved memories and the facts Ava remembers about you.',
|
|
3861
|
+
'dash.portability.type.tasks_desc': 'Your tasks, to-dos, and their due dates.',
|
|
3862
|
+
'dash.portability.type.journal_desc': "Your daily journal entries — yours and Ava's.",
|
|
3863
|
+
'dash.portability.type.learning_desc': 'Your courses, lessons, and learning progress.',
|
|
3864
|
+
'dash.portability.type.history_desc': 'Your saved chat conversations.',
|
|
3865
|
+
'dash.portability.type.health_desc': 'Your fitness and recipe plans, workouts, and health profile.',
|
|
3866
|
+
'dash.portability.type.creative_desc': 'Your generated images, music, video, and voice — metadata plus the media files.',
|
|
3867
|
+
'dash.portability.type.settings_desc': 'Your app configuration and preferences.',
|
|
3868
|
+
'dash.portability.type.personality_desc': "Ava's name, pronouns, and personality.",
|
|
3869
|
+
'dash.portability.type.profile': 'Profile',
|
|
3870
|
+
'dash.portability.type.profile_desc': 'Your name, pronouns, and body basics.',
|
|
3871
|
+
'dash.portability.type.brain': 'Learned skills',
|
|
3872
|
+
'dash.portability.type.brain_desc': 'Procedures Ava has learned and the lessons she has drawn from past mistakes.',
|
|
3873
|
+
'dash.portability.type.datasets': 'Captured data',
|
|
3874
|
+
'dash.portability.type.datasets_desc': 'The training data captured from your sessions, if you opted in.',
|
|
3875
|
+
'dash.portability.type.audit': 'Activity log',
|
|
3876
|
+
'dash.portability.type.audit_desc': 'A record of every tool Ava has run on this machine.',
|
|
3877
|
+
'dash.portability.exported': 'Exported {count} file(s).',
|
|
3878
|
+
'dash.portability.import_unknown': "That file isn't a recognised Ava export.",
|
|
3879
|
+
'dash.portability.keys_not_exported': 'Your API keys are stored in your operating system\'s keychain, not in this data — so a restore brings back everything except the keys.',
|
|
3880
|
+
'dash.portability.export': 'Export',
|
|
3881
|
+
'dash.portability.enc_backup': "Encrypted backup",
|
|
3882
|
+
'dash.portability.enc_backup_desc': "Passphrase-locked copy — back up or move to another device.",
|
|
3883
|
+
'dash.portability.readable': "Readable export",
|
|
3884
|
+
'dash.portability.readable_desc': "Plain JSON — see exactly what's stored. Keep it safe.",
|
|
3885
|
+
'dash.portability.import_backup': "Import backup",
|
|
3886
|
+
'dash.portability.local_title': "Your data, on your machine",
|
|
3887
|
+
'dash.portability.pass_set': "Set a backup passphrase",
|
|
3888
|
+
'dash.portability.pass_enter': "Enter the backup passphrase",
|
|
3889
|
+
'dash.portability.pass_set_desc': "Encrypts on this device. We never see it — if you lose it, the backup can't be opened.",
|
|
3890
|
+
'dash.portability.passphrase': "Passphrase",
|
|
3891
|
+
'dash.portability.create_backup': "Create backup",
|
|
3892
|
+
'dash.portability.restore': "Restore",
|
|
3893
|
+
'dash.portability.cancel': "Cancel",
|
|
3894
|
+
'dash.portability.working': "Working…",
|
|
3895
|
+
'dash.portability.backup_saved': "Encrypted backup saved.",
|
|
3896
|
+
'dash.portability.readable_saved': "Readable export saved — keep it safe.",
|
|
3897
|
+
'dash.portability.restored': "Backup restored.",
|
|
3898
|
+
'dash.portability.import_failed': "Import failed — wrong passphrase or corrupted file.",
|
|
3899
|
+
'dash.portability.preparing': "Preparing…",
|
|
3900
|
+
'dash.portability.export_n_selected': 'Export {n} selected',
|
|
3901
|
+
'dash.portability.export_one': 'Export {name}',
|
|
3902
|
+
'dash.portability.exporting': 'Exporting...',
|
|
3903
|
+
'dash.portability.footer': 'Your data. Your choice. No cloud required.',
|
|
3904
|
+
'dash.portability.import': 'Import',
|
|
3905
|
+
'dash.portability.import_n_files': 'Import {n} files',
|
|
3906
|
+
'dash.portability.imported_result': 'Imported {count} entries into {dataType}',
|
|
3907
|
+
'dash.portability.importing': 'Importing...',
|
|
3908
|
+
'dash.portability.pick_specific': 'Or pick specific data types to export individually:',
|
|
3909
|
+
'dash.portability.select_all': 'Select all',
|
|
3910
|
+
// The same button flips once everything is ticked — a 'Select all' that
|
|
3911
|
+
// does nothing when all is already selected is a dead control.
|
|
3912
|
+
'dash.portability.deselect_all': 'Deselect all',
|
|
3913
|
+
'dash.portability.select_data': 'Select data to export',
|
|
3914
|
+
'dash.portability.title': 'Data Portability',
|
|
3915
|
+
'dash.portability.unknown_format': 'Unknown format',
|
|
3916
|
+
'dash.purchase.active': 'Active',
|
|
3917
|
+
'dash.purchase.best_value': 'Best value',
|
|
3918
|
+
'dash.settings.api_key': 'API key',
|
|
3919
|
+
'dash.settings.api_key_empty_placeholder': 'Most local servers don\'t require one',
|
|
3920
|
+
'dash.settings.api_key_optional': '(optional — leave empty for local servers)',
|
|
3921
|
+
'dash.settings.api_key_saved_placeholder': '•••••••• (saved — re-enter to change)',
|
|
3922
|
+
'dash.settings.autonomous_confirm': 'Switch to Autonomous mode?\n\nThis auto-approves every tool category — bash, git, file_write, file_edit, database_query, browser, http_request — including their destructive subset (rm, format, deletes, overwrites). The only operations that still prompt are irreversible patterns (force-push, hard reset, history rewrites, package publish, git_commit --amend) — those never graduate.\n\nPick this only if you want Ava to run without confirmations across long sessions, and only on a workspace where you can recover from a wrong write via git.',
|
|
3923
|
+
'dash.settings.avatar': 'Avatar',
|
|
3924
|
+
'dash.settings.avatar_hint': 'Saved locally. Sync to cloud from the Sync page. JPEG, PNG, WebP or GIF. Max 2 MB.',
|
|
3925
|
+
'dash.settings.base_url': 'Base URL',
|
|
3926
|
+
'dash.settings.change_avatar': 'Change Avatar',
|
|
3927
|
+
'dash.settings.configured': 'Configured',
|
|
3928
|
+
'dash.settings.detect_models': 'Detect models',
|
|
3929
|
+
'dash.settings.detecting': 'Detecting…',
|
|
3930
|
+
'dash.settings.detect_found': 'Found {n} — tick the ones to show in the picker:',
|
|
3931
|
+
'dash.settings.custom_banner': 'Custom — you\'ve adjusted individual categories. Select a preset above to reset.',
|
|
3932
|
+
'dash.settings.custom_model': 'Custom Model',
|
|
3933
|
+
'dash.settings.custom_model_desc': 'Point Ava at any model — local (Ollama, LM Studio, vLLM on your machine) or remote (private vLLM cluster, self-hosted finetune, OpenRouter, Together, anything that speaks the OpenAI Chat Completions API). Local servers stay on your machine; remote endpoints get whatever security your endpoint exposes. Restart the chat panel after saving for changes to take effect.',
|
|
3934
|
+
'dash.settings.custom_model_title': 'Custom model — Ollama, LM Studio, vLLM, or any OpenAI-compatible endpoint',
|
|
3935
|
+
'dash.settings.customise_by_category': 'Customise by Category',
|
|
3936
|
+
'dash.settings.dataset_capture_desc': 'Records Ava\'s tool choices, persona handoffs, memory ops, etc. to ~/.ava/datasets/. Local-only by default. Never captures your prompts or files — only her decisions and shape-only context.',
|
|
3937
|
+
'dash.settings.dataset_capture_title': 'Capture Ava\'s actions as training data',
|
|
3938
|
+
'dash.settings.dataset_kinds': 'Dataset kinds',
|
|
3939
|
+
'dash.settings.dataset_kinds_desc': 'The 12 distinct training datasets Ava generates. All on by default; uncheck any you\'d rather not contribute to.',
|
|
3940
|
+
'dash.settings.dataset_modes': 'Modes captured',
|
|
3941
|
+
'dash.settings.dataset_modes_desc': 'Choose which thought modes feed the dataset. Toggle any off to keep that mode private.',
|
|
3942
|
+
'dash.settings.dataset_note': 'All capture is local and append-only. Nothing leaves your machine until you explicitly push to your private dataset repo (separate, opt-in).',
|
|
3943
|
+
'dash.settings.dataset_section': 'Help train Ava\'s own model',
|
|
3944
|
+
'dash.settings.display_name': 'Display name',
|
|
3945
|
+
'dash.settings.display_name_hint': 'What you\'ll see in the chat model picker.',
|
|
3946
|
+
'dash.settings.display_name_placeholder': 'Defaults to the model name',
|
|
3947
|
+
'dash.settings.get_ollama': 'Get Ollama →',
|
|
3948
|
+
'dash.settings.loop_prevention': 'Loop prevention',
|
|
3949
|
+
'dash.settings.loop_prevention_desc': 'Run typecheck/tests before declaring a turn done. If the same failure recurs three times in a row, an independent review fires (one extra LLM call). Off = faster turn-end, but build-broken edits may slip through.',
|
|
3950
|
+
'dash.settings.model_name': 'Model name',
|
|
3951
|
+
'dash.settings.model_name_hint': 'Exact id your server reports (e.g.',
|
|
3952
|
+
'dash.settings.optional_paren': '(optional)',
|
|
3953
|
+
'dash.settings.perm_always_ask': 'Always Ask',
|
|
3954
|
+
'dash.settings.perm_auto': 'Auto',
|
|
3955
|
+
'dash.settings.perm_first_time': 'First Time',
|
|
3956
|
+
'dash.settings.saved_check': 'Saved ✓',
|
|
3957
|
+
'dash.settings.upload_avatar': 'Upload Avatar',
|
|
3958
|
+
'dash.storage.cloud_sync': 'Cloud sync',
|
|
3959
|
+
'dash.storage.local_only': 'Local only',
|
|
3960
|
+
'dash.support.legal': 'Legal',
|
|
3961
|
+
'dash.support.privacy': 'Privacy Policy',
|
|
3962
|
+
'dash.support.terms': 'Terms of Service',
|
|
3963
|
+
'dash.topbar.byok_no_account': 'BYOK / no account',
|
|
3964
|
+
'dash.topbar.credits_left': '{remaining} credits left',
|
|
3965
|
+
'dash.topbar.credits_remaining_title': '{remaining} of {limit} credits remaining ({pct}% used)',
|
|
3966
|
+
'dash.topbar.loading_credits': 'Loading credits…',
|
|
3967
|
+
'dash.topbar.plan_title': 'Plan: {tier}',
|
|
3968
|
+
'dash.topbar.sign_in_balance': 'Sign in to see your credit balance',
|
|
3969
|
+
'dash.topbar.unlimited_credits': 'Unlimited credits',
|
|
3970
|
+
'dash.usage.credit_balance': 'Credit Balance',
|
|
3971
|
+
'dash.usage.credit_pools': 'Credit Pools',
|
|
3972
|
+
'dash.usage.credits_used': 'Credits Used',
|
|
3973
|
+
'dash.usage.free_credits': 'Free Credits',
|
|
3974
|
+
// ── Settings · dataset capture modes + kinds (translated display labels) ─
|
|
3975
|
+
'dash.settings.dataset_mode.work': 'Work',
|
|
3976
|
+
'dash.settings.dataset_mode.plan': 'Plan',
|
|
3977
|
+
'dash.settings.dataset_mode.chat': 'Chat',
|
|
3978
|
+
'dash.settings.dataset_mode.teach': 'Teach',
|
|
3979
|
+
'dash.settings.dataset_mode.security': 'Security',
|
|
3980
|
+
'dash.settings.dataset_mode.brainstorm': 'Brainstorm',
|
|
3981
|
+
'dash.settings.dataset_kind.tool-trajectories': 'Tool trajectories',
|
|
3982
|
+
'dash.settings.dataset_kind.persona-handoffs': 'Persona handoffs',
|
|
3983
|
+
'dash.settings.dataset_kind.verification-pairs': 'Verification pairs',
|
|
3984
|
+
'dash.settings.dataset_kind.auto-mode-classification': 'Auto-mode classification',
|
|
3985
|
+
'dash.settings.dataset_kind.error-recovery': 'Error recovery',
|
|
3986
|
+
'dash.settings.dataset_kind.memory-operations': 'Memory operations',
|
|
3987
|
+
'dash.settings.dataset_kind.continuation-recovery': 'Continuation recovery',
|
|
3988
|
+
'dash.settings.dataset_kind.mode-transitions': 'Mode transitions',
|
|
3989
|
+
'dash.settings.dataset_kind.generation-effectiveness': 'Generation effectiveness',
|
|
3990
|
+
'dash.settings.dataset_kind.knowledge-pack-effectiveness': 'Knowledge-pack effectiveness',
|
|
3991
|
+
'dash.settings.dataset_kind.context-management': 'Context management',
|
|
3992
|
+
'dash.settings.dataset_kind.perception': 'Perception (vision)',
|
|
3993
|
+
// ── Health · Browse course taxonomy (cards/detail labels) ─────────────
|
|
3994
|
+
'health.browse.course.beverage': 'Beverages',
|
|
3995
|
+
'health.browse.course.sauce': 'Sauces',
|
|
3996
|
+
'health.browse.course.bread': 'Breads',
|
|
3997
|
+
// ── Weather Conditions ────────────────────────────────────────────────
|
|
3998
|
+
// ── Auto-wrapped UI strings (i18n sweep) ──────────────────────────────
|
|
3999
|
+
'tasks.collapse': 'Collapse',
|
|
4000
|
+
'tasks.tasks': 'Tasks',
|
|
4001
|
+
'tasks.open_tasks': 'Open tasks',
|
|
4002
|
+
'tasks.add_task': 'Add a task',
|
|
4003
|
+
'tasks.add_placeholder': 'What needs doing?',
|
|
4004
|
+
'tasks.cancel': 'Cancel',
|
|
4005
|
+
'tasks.ava_recent_work': "Ava's recent work",
|
|
4006
|
+
'tasks.priority': 'Priority',
|
|
4007
|
+
'tasks.category': 'Category',
|
|
4008
|
+
'tasks.due_date': 'Due date',
|
|
4009
|
+
'tasks.add': 'Add',
|
|
4010
|
+
'tasks.section_active': 'Active',
|
|
4011
|
+
'tasks.section_done': 'Done',
|
|
4012
|
+
'tasks.empty_today': 'No tasks today. Enjoy the clear board!',
|
|
4013
|
+
'tasks.empty_all': 'No tasks yet.',
|
|
4014
|
+
'tasks.just_now': 'just now',
|
|
4015
|
+
'tasks.reminder_none': 'No reminder',
|
|
4016
|
+
'tasks.reminder_at_time': 'At time',
|
|
4017
|
+
'tasks.reminder_10m': '10 min before',
|
|
4018
|
+
'tasks.reminder_30m': '30 min before',
|
|
4019
|
+
'tasks.reminder_1h': '1 hour before',
|
|
4020
|
+
'tasks.reminder_1d': '1 day before',
|
|
4021
|
+
'dash.secrets.empty_yet': 'No secrets stored yet',
|
|
4022
|
+
'dash.secrets.add_hint': 'Add an API key, password, or token below.',
|
|
4023
|
+
'dash.article.min_read': '{n} min read',
|
|
4024
|
+
'dash.history.subtitle_short': 'Credits, sessions, models',
|
|
4025
|
+
'dash.usage.admin': 'Admin',
|
|
4026
|
+
'dash.usage.credits_remaining': 'Credits Remaining',
|
|
4027
|
+
'dash.usage.n_used': '{n} used',
|
|
4028
|
+
'dash.usage.n_limit': '{n} limit',
|
|
4029
|
+
'dash.usage.credits_this_month': 'Credits This Month',
|
|
4030
|
+
'dash.usage.active_days': 'Active Days',
|
|
4031
|
+
'dash.usage.avg_request': 'Avg / Request',
|
|
4032
|
+
'dash.usage.daily_tooltip': '{date}: {credits} credits',
|
|
4033
|
+
'dash.usage.model_credits_req': '{credits} credits ({req} req)',
|
|
4034
|
+
'dash.usage.connect_analytics': 'Connect your account to see usage analytics.',
|
|
4035
|
+
'dash.memory.delete_all': 'Delete All',
|
|
4036
|
+
'dash.memory.delete_all_q': 'Delete all memories?',
|
|
4037
|
+
'dash.memory.delete_all_body': 'This permanently deletes every memory — on this machine and any cloud copy. It cannot be undone.',
|
|
4038
|
+
'dash.memory.delete_everything': 'Delete Everything',
|
|
4039
|
+
'dash.memory.deleting_all': 'Deleting all memories... This may take a moment.',
|
|
4040
|
+
'dash.memory.deleting_stay': 'Please stay on this page — leaving will interrupt the deletion.',
|
|
4041
|
+
'dash.learning_library.level_beginner': 'Beginner',
|
|
4042
|
+
'dash.learning_library.level_intermediate': 'Intermediate',
|
|
4043
|
+
'dash.learning_library.level_advanced': 'Advanced',
|
|
4044
|
+
'dash.learning_library.level_mixed': 'Mixed',
|
|
4045
|
+
'dash.library.tab.courses': 'Courses',
|
|
4046
|
+
'dash.library.tab.papers': 'Papers',
|
|
4047
|
+
'dash.library.tab.assets': 'Assets',
|
|
4048
|
+
'dash.library.tab.documents': 'Documents',
|
|
4049
|
+
'dash.library.hub_subtitle': 'Your courses, papers, assets, and documents — everything Ava has made for you.',
|
|
4050
|
+
'dash.newdoc.title': 'New document',
|
|
4051
|
+
'dash.newdoc.saves_to_pre': 'Saves to',
|
|
4052
|
+
'dash.newdoc.saves_to_post': 'in your project, then opens in your default app.',
|
|
4053
|
+
'dash.newdoc.save_prompt': "You'll be asked where to save the file, then it opens in your default app.",
|
|
4054
|
+
'dash.newdoc.blank_file': 'Blank file',
|
|
4055
|
+
'dash.newdoc.from_template': 'From template',
|
|
4056
|
+
'dash.sync.how1': 'All data is saved locally by default — nothing leaves your machine automatically',
|
|
4057
|
+
'dash.sync.how2': 'Push to Cloud sends your local data to the platform for cross-device access',
|
|
4058
|
+
'dash.sync.how3': 'Your companion app and web dashboard will show the synced data',
|
|
4059
|
+
'dash.sync.how4': 'You control what syncs and when — complete privacy by default',
|
|
4060
|
+
'dash.usage.active_mode': 'Active Mode',
|
|
4061
|
+
'dash.usage.active_mode_explainer': 'Models below show specialists that actually fired this session. Chat-only sessions typically only invoke the coordinator — the rest activate when the orchestrator spawns Builders, vision, long-form, etc.',
|
|
4062
|
+
'dash.usage.n_reqs': '{n} reqs',
|
|
4063
|
+
'dash.usage.in_label': 'In: {n}',
|
|
4064
|
+
'dash.usage.out_label': 'Out: {n}',
|
|
4065
|
+
'dash.usage.total_label': 'Total: {n}',
|
|
4066
|
+
'dash.usage.no_data_yet': 'No usage data available yet. Start using Ava to see your stats here.',
|
|
4067
|
+
'dash.usage.daily_tooltip_tokens': '{date}: {tokens} tokens',
|
|
4068
|
+
'dash.usage.n_of_m': '{n} of {m}',
|
|
4069
|
+
'dash.usage.no_credits_period': 'No credits this period',
|
|
4070
|
+
'dash.settings.configured_badge': 'CONFIGURED',
|
|
4071
|
+
'dash.settings.base_url_hint_remote': 'Remote endpoints',
|
|
4072
|
+
'dash.settings.model_name_hint_full': 'The exact id your server reports (e.g.',
|
|
4073
|
+
'dash.settings.section.chat_backend': 'CHAT BACKEND',
|
|
4074
|
+
'dash.settings.section.custom_model': 'CUSTOM MODEL',
|
|
4075
|
+
'dash.settings.section.semantic_recall': 'SEMANTIC RECALL',
|
|
4076
|
+
'dash.settings.section.desktop_automation': 'DESKTOP AUTOMATION',
|
|
4077
|
+
'dash.settings.dataset_kinds_desc_ide': "The 10 distinct training datasets Ava generates. All on by default; turn off any you'd rather not contribute to.",
|
|
4078
|
+
'dash.recall.title': 'Local semantic recall',
|
|
4079
|
+
'dash.recall.on': 'ON',
|
|
4080
|
+
'dash.recall.desc': 'Recall memories by meaning, not just keywords — embeddings run on a local model (Ollama by default), so nothing leaves your machine. Off → keyword recall, no dependency. Restart the chat panel after changing.',
|
|
4081
|
+
'dash.recall.embedding_model': 'Embedding model',
|
|
4082
|
+
'dash.recall.pull_first': 'Pull it first:',
|
|
4083
|
+
'dash.recall.embeddings_base_url': 'Embeddings base URL',
|
|
4084
|
+
'dash.recall.endpoint_hint': "Ollama's OpenAI-compatible endpoint.",
|
|
4085
|
+
'dash.recall.saved_restart': 'Saved ✓ — restart the chat panel to apply.',
|
|
4086
|
+
'dash.backend.platform': 'Platform',
|
|
4087
|
+
'dash.backend.platform_desc': 'Run the chat on the Ava platform — needs a connected account.',
|
|
4088
|
+
'dash.backend.local_sidecar': 'Local sidecar',
|
|
4089
|
+
'dash.backend.local_sidecar_desc': 'Run the chat on this machine with your own API keys (BYOK).',
|
|
4090
|
+
'dash.desktop.title': 'Desktop Automation',
|
|
4091
|
+
'dash.desktop.desc': 'Lets Ava reach out of the IDE into the rest of your OS — launch apps, click UI elements, type into forms, drive a visible browser. Same memory, mission, and audit log as code mode; additional safety gates apply.',
|
|
4092
|
+
'dash.desktop.permission_level': 'Permission level',
|
|
4093
|
+
'dash.desktop.permission_level_desc': 'How aggressively Ava is allowed to act on your screen. Irreversible actions (Send, Pay, Delete, destructive key combos) always re-prompt regardless of level.',
|
|
4094
|
+
'dash.desktop.level.watch': 'Watch',
|
|
4095
|
+
'dash.desktop.level.watch_desc': 'Ava describes; you stay on the mouse + keyboard. Safest.',
|
|
4096
|
+
'dash.desktop.level.ask': 'Ask',
|
|
4097
|
+
'dash.desktop.level.ask_desc': 'You approve every click / keystroke / launch. Default.',
|
|
4098
|
+
'dash.desktop.level.drive': 'Drive',
|
|
4099
|
+
'dash.desktop.level.drive_desc': 'Reversible plan steps run silently after one approval.',
|
|
4100
|
+
'library.tab.courses': 'Courses',
|
|
4101
|
+
'library.tab.papers': 'Papers',
|
|
4102
|
+
'library.tab.assets': 'Assets',
|
|
4103
|
+
'library.tab.documents': 'Documents',
|
|
4104
|
+
'library.subtitle_made': 'Your courses, assets, and documents — everything Ava has made for you.',
|
|
4105
|
+
'library.filter.type': 'Type',
|
|
4106
|
+
'library.filter.source': 'Source',
|
|
4107
|
+
'library.filter.documents': 'Documents',
|
|
4108
|
+
'library.filter.spreadsheets': 'Spreadsheets',
|
|
4109
|
+
'library.kind.image': 'Image',
|
|
4110
|
+
'library.kind.video': 'Video',
|
|
4111
|
+
'library.source.cloud': 'Cloud',
|
|
4112
|
+
'library.source.local': 'Local',
|
|
4113
|
+
'library.open_save_folder': 'Open save folder',
|
|
4114
|
+
'library.open_save_folder.title': 'Open the local creative folder on disk',
|
|
4115
|
+
'library.pulling_cloud_assets': 'Pulling cloud assets…',
|
|
4116
|
+
'library.pulling_cloud_documents': 'Pulling cloud documents…',
|
|
4117
|
+
'library.no_assets': 'No assets yet',
|
|
4118
|
+
'library.no_assets_hint': 'Ask Ava to generate an image, or head to Creative Studio to start.',
|
|
4119
|
+
'library.no_documents': 'No documents yet',
|
|
4120
|
+
'library.no_documents_hint_pre': 'Click',
|
|
4121
|
+
'library.no_documents_hint_post': 'to start from blank or a template — or ask Ava to write one for you.',
|
|
4122
|
+
'library.new_document_plus': '+ New document',
|
|
4123
|
+
'library.new_document': 'New document',
|
|
4124
|
+
'library.new_document_note_pre': "Files save to your project's",
|
|
4125
|
+
'library.new_document_note_post': 'folder and appear here.',
|
|
4126
|
+
'library.blank_file': 'Blank file',
|
|
4127
|
+
'library.from_template': 'From template',
|
|
4128
|
+
'library.format.word': 'Word Document',
|
|
4129
|
+
'library.format.spreadsheet': 'Spreadsheet',
|
|
4130
|
+
'library.template.proposal.label': 'Project Proposal',
|
|
4131
|
+
'library.template.proposal.desc': 'Executive summary, objectives, timeline',
|
|
4132
|
+
'library.template.report.label': 'Status Report',
|
|
4133
|
+
'library.template.report.desc': 'Progress, issues, next steps',
|
|
4134
|
+
'library.template.invoice.label': 'Invoice',
|
|
4135
|
+
'library.template.invoice.desc': 'Items table, payment terms',
|
|
4136
|
+
'library.template.letter.label': 'Formal Letter',
|
|
4137
|
+
'library.template.letter.desc': 'Recipient, body, closing',
|
|
4138
|
+
'library.template.meeting.label': 'Meeting Notes',
|
|
4139
|
+
'library.template.meeting.desc': 'Agenda, discussion, action items',
|
|
4140
|
+
'library.template.resume.label': 'Resume',
|
|
4141
|
+
'library.template.resume.desc': 'Contact, experience, education, skills',
|
|
4142
|
+
'library.close_preview': 'Close preview',
|
|
4143
|
+
'library.inline_playback_unavailable': 'Inline playback unavailable — use Open to play in your default app.',
|
|
4144
|
+
'library.open_libreoffice': 'Open (LibreOffice)',
|
|
4145
|
+
'library.reveal': 'Reveal',
|
|
4146
|
+
'library.use_in_project': 'Use in project',
|
|
4147
|
+
'library.rename': 'Rename',
|
|
4148
|
+
'library.rename_save': 'Save',
|
|
4149
|
+
'library.download': 'Download',
|
|
4150
|
+
'library.copied': 'Copied ✓',
|
|
4151
|
+
'library.copy_url': 'Copy URL',
|
|
4152
|
+
'library.confirm_delete': 'Confirm delete',
|
|
4153
|
+
'library.delete': 'Delete',
|
|
4154
|
+
'library.play': 'Play',
|
|
4155
|
+
'library.fullscreen': 'Fullscreen',
|
|
4156
|
+
'support.cat.bug': 'Bug or broken',
|
|
4157
|
+
'support.cat.bug.placeholder': 'What broke, and what were you doing when it happened?',
|
|
4158
|
+
'support.cat.question': 'Question / how-to',
|
|
4159
|
+
'support.cat.question.placeholder': 'What are you trying to do?',
|
|
4160
|
+
'support.cat.feature': 'Feature request',
|
|
4161
|
+
'support.cat.feature.placeholder': 'What would you love Ava to do?',
|
|
4162
|
+
'support.cat.billing': 'Billing & payments',
|
|
4163
|
+
'support.cat.billing.placeholder': 'Tell us about the billing or payment issue…',
|
|
4164
|
+
'support.cat.account': 'Account & login',
|
|
4165
|
+
'support.cat.account.placeholder': 'What is happening with your account or sign-in?',
|
|
4166
|
+
'support.cat.feedback': 'Feedback',
|
|
4167
|
+
'support.cat.feedback.placeholder': "What's on your mind?",
|
|
4168
|
+
'support.cat.other': 'Something else',
|
|
4169
|
+
'support.cat.other.placeholder': 'How can we help?',
|
|
4170
|
+
'support.header_subtitle': "Stuck on something? Send it through and I'll take a look first — the team picks up if I can't solve it.",
|
|
4171
|
+
'support.new_ticket_plus': '+ New ticket',
|
|
4172
|
+
'support.pick_reason_heading': 'New ticket — pick a reason',
|
|
4173
|
+
'support.conversations': 'Conversations',
|
|
4174
|
+
'support.rail_empty': 'Nothing here yet. Send a message to start a thread.',
|
|
4175
|
+
'support.new_conversation': 'New conversation',
|
|
4176
|
+
'support.pick_reason_placeholder': 'Pick a reason above to start…',
|
|
4177
|
+
'support.reply_placeholder': 'Reply…',
|
|
4178
|
+
'support.enter_hint': 'Enter to send · Shift+Enter for a new line',
|
|
4179
|
+
'support.empty.picked_body': "Tell me what's going on in the box below — I'll do my best to help right now, and if it needs the team I'll hand it over and they'll pick up the same thread.",
|
|
4180
|
+
'support.empty.greeting': "Hey — I'm Ava.",
|
|
4181
|
+
'support.empty.hint_pre': 'Hit',
|
|
4182
|
+
'support.empty.hint_post': "up top and pick what it's about — I'll route you to the right place and do my best to help right now.",
|
|
4183
|
+
'support.byok.title': 'Need help?',
|
|
4184
|
+
'support.byok.subtitle': "You're running BYOK without a platform account, so live chat support is off. These three places will get you unstuck — connect an account any time to bring me back into the loop.",
|
|
4185
|
+
'support.byok.github': 'GitHub Issues',
|
|
4186
|
+
'support.byok.github_desc': 'Report bugs, request features, ask questions in the open.',
|
|
4187
|
+
'support.byok.community': 'Community',
|
|
4188
|
+
'support.byok.community_desc': 'Discord server — get help from people building with Ava.',
|
|
4189
|
+
'support.byok.docs': 'Documentation',
|
|
4190
|
+
'support.byok.docs_desc': 'Setup guides, references, and the deeper how-it-works.',
|
|
4191
|
+
'connections.services_connected': "services connected. Credentials are stored securely in VS Code's secret storage.",
|
|
4192
|
+
'connections.github_desc': 'Connect your GitHub account to let Ava create branches, PRs, and issues.',
|
|
4193
|
+
'connections.email_desc': 'Allow Ava to send emails on your behalf with your approval.',
|
|
4194
|
+
'connections.slack_desc': 'Post messages or summaries to your Slack workspace.',
|
|
4195
|
+
'connections.discord_desc': 'Send notifications or summaries to your Discord server.',
|
|
4196
|
+
'dash.learning_library.beginner': 'Beginner',
|
|
4197
|
+
'dash.learning_library.intermediate': 'Intermediate',
|
|
4198
|
+
'dash.learning_library.advanced': 'Advanced',
|
|
4199
|
+
'dash.learning_library.mixed': 'Mixed',
|
|
4200
|
+
'learning_library.refresh_title': 'Refresh library',
|
|
4201
|
+
'learning_library.no_paths_filters': 'No paths found matching your filters.',
|
|
4202
|
+
'learning_library.no_paths_hint': 'Try a different search or ask Ava to create a custom learning path.',
|
|
4203
|
+
'learning_library.your_path': 'Your learning path',
|
|
4204
|
+
'learning_library.rate_course': 'Rate this course',
|
|
4205
|
+
'learning_library.rate_star': 'Rate {star}/5',
|
|
4206
|
+
'learning_library.by_author': 'by {author}',
|
|
4207
|
+
'learning_library.stat_estimated': 'estimated',
|
|
4208
|
+
'learning_library.stat_rating': 'rating',
|
|
4209
|
+
'memory.tab.active': 'Active',
|
|
4210
|
+
'memory.tab.stale': 'Stale',
|
|
4211
|
+
'memory.tab.archived': 'Archived',
|
|
4212
|
+
'memory.tab.conflicts': 'Conflicts',
|
|
4213
|
+
'memory.tab.patterns': 'Patterns',
|
|
4214
|
+
'memory.refresh_title': 'Refresh memories',
|
|
4215
|
+
'memory.delete_all': 'Delete All',
|
|
4216
|
+
'memory.delete_all_q': 'Delete all memories?',
|
|
4217
|
+
'memory.delete_all_body': 'This permanently deletes every memory — on this machine and any cloud copy. It cannot be undone.',
|
|
4218
|
+
'memory.delete_everything': 'Delete Everything',
|
|
4219
|
+
'memory.local_only_notice': 'Memories are stored on this machine — turn on Cloud sync to back them up across devices.',
|
|
4220
|
+
'memory.stale_banner': "These memories haven't been recalled in 90+ days. Review them — archive what's no longer needed, update what's outdated.",
|
|
4221
|
+
'memory.archived_banner': "Archived memories are excluded from Ava's active recall. Restore any that are still relevant.",
|
|
4222
|
+
'memory.empty_archived': 'No archived memories.',
|
|
4223
|
+
'memory.empty_stale': 'No stale memories — everything is fresh!',
|
|
4224
|
+
'memory.empty_active': 'No memories yet. Ava will remember things as you work together — patterns, preferences, decisions, and more.',
|
|
4225
|
+
'memory.archived_label': 'Archived',
|
|
4226
|
+
'memory.restore_title': 'Restore',
|
|
4227
|
+
'memory.edit_title': 'Edit',
|
|
4228
|
+
'memory.archive_title': 'Archive',
|
|
4229
|
+
'memory.delete_title': 'Delete',
|
|
4230
|
+
'billing.manage_plan': 'Manage Plan',
|
|
4231
|
+
'billing.signin_title': 'Sign in to view billing',
|
|
4232
|
+
'billing.signin_desc': 'Your plan, credits and upgrades are managed on your web dashboard.',
|
|
4233
|
+
'billing.signin_cta': 'Sign in to dashboard',
|
|
4234
|
+
'billing.credits_remaining': 'Credits Remaining',
|
|
4235
|
+
'billing.no_credits_period': 'No credits this period',
|
|
4236
|
+
'billing.resets_monthly': 'Resets monthly. Upgrade for more.',
|
|
4237
|
+
'billing.unlimited_usage': 'Unlimited usage.',
|
|
4238
|
+
'billing.includes_allowance': 'Includes your monthly plan allowance + any top-ups.',
|
|
4239
|
+
'billing.topup_balance': 'Top-Up Balance',
|
|
4240
|
+
'billing.active': 'Active',
|
|
4241
|
+
'billing.topup_credits': 'Top Up Credits',
|
|
4242
|
+
'billing.topup_credits_desc': 'Running low? Add extra credits — they never expire.',
|
|
4243
|
+
'billing.buy_credits': 'Buy credits',
|
|
4244
|
+
'billing.plans': 'Plans',
|
|
4245
|
+
'billing.your_plan': 'Your plan',
|
|
4246
|
+
'billing.current_plan_badge': 'Current plan',
|
|
4247
|
+
'billing.downgrade_free': 'Downgrade to Free',
|
|
4248
|
+
'billing.upgrade_to': 'Upgrade to {tier}',
|
|
4249
|
+
'releases.loading': 'Loading release notes...',
|
|
4250
|
+
'plan.confidence.high': 'High confidence',
|
|
4251
|
+
'plan.confidence.medium': 'Medium confidence',
|
|
4252
|
+
'plan.confidence.low': 'Low confidence',
|
|
4253
|
+
'plan.step_count': '{count} steps',
|
|
4254
|
+
'help.title': 'Help',
|
|
4255
|
+
'help.subtitle': 'Support, documentation, release notes, and roadmap',
|
|
4256
|
+
'help.health_safety': 'Health & Fitness Safety',
|
|
4257
|
+
// ── Creative Studio — shared ──────────────────────────────────────────────
|
|
4258
|
+
'dash.studio.check_against': 'Check against',
|
|
4259
|
+
'dash.studio.colour_brand': 'Colour — from Brand Kit',
|
|
4260
|
+
'dash.studio.finish': 'Finish',
|
|
4261
|
+
// ── Creative Studio — Logo room ───────────────────────────────────────────
|
|
4262
|
+
'dash.studio.logo.title': 'Logo',
|
|
4263
|
+
'dash.studio.logo.subtitle': "Your brand's whole identity — one system, all its forms. Talk to Ava to design it; check every form against light and dark right here.",
|
|
4264
|
+
'dash.studio.logo.pick_hint': "Click a direction to pick it — or ask Ava which she'd choose.",
|
|
4265
|
+
'dash.studio.logo.empty_title': "Let's design a logo for",
|
|
4266
|
+
'dash.studio.logo.empty_desc': "Tell Ava about the brand — what it does, who it's for, the one idea the mark should carry. She'll design it and it lands here.",
|
|
4267
|
+
'dash.studio.logo.busy': 'Constructing the mark → wordmark → variants…',
|
|
4268
|
+
'dash.studio.logo.form': 'Form',
|
|
4269
|
+
'dash.studio.logo.form.combination': 'Mark + name',
|
|
4270
|
+
'dash.studio.logo.form.emblem': 'Emblem',
|
|
4271
|
+
'dash.studio.logo.form.emblem_desc': 'A badge — name curved over the top, mark centred, tagline under the bottom.',
|
|
4272
|
+
'dash.studio.logo.form.combination_desc': 'The mark beside or above the name.',
|
|
4273
|
+
'dash.studio.logo.tagline_ph': 'Tagline / date — "EST 2026", "ROASTERS"',
|
|
4274
|
+
'dash.studio.logo.mark_type': 'Mark type',
|
|
4275
|
+
'dash.studio.marktype.geometry': 'Constructed',
|
|
4276
|
+
'dash.studio.marktype.letter': 'Lettermark',
|
|
4277
|
+
'dash.studio.marktype.icon': 'Icon',
|
|
4278
|
+
'dash.studio.marktype.letter_desc': 'Your initial, built from the wordmark font — clean and distinctively yours.',
|
|
4279
|
+
'dash.studio.marktype.icon_desc': 'A shape from the icon library, for when a literal object fits.',
|
|
4280
|
+
'dash.studio.marktype.geometry_desc': 'Ava draws the mark herself, as exact vector geometry. Where the good ones come from.',
|
|
4281
|
+
'dash.studio.logo.emblem_ring': 'Emblem',
|
|
4282
|
+
'dash.studio.logo.container.none': 'Letter',
|
|
4283
|
+
'dash.studio.logo.container.ring': 'In a ring',
|
|
4284
|
+
'dash.studio.logo.mark_shape': 'Mark shape',
|
|
4285
|
+
'dash.studio.logo.shape_search_ph': 'Search 1,990 shapes… "star"',
|
|
4286
|
+
'dash.studio.logo.shape_hint': 'The shape Ava builds the mark from — set one to lock it.',
|
|
4287
|
+
'dash.studio.logo.construction': 'Construction',
|
|
4288
|
+
'dash.studio.logo.construction_hint': 'Ask Ava for a direction — she composes the geometry herself, and it lands here.',
|
|
4289
|
+
'dash.studio.logo.style': 'Style',
|
|
4290
|
+
'dash.studio.style.flat': 'Solid',
|
|
4291
|
+
'dash.studio.style.gradient': 'Gradient',
|
|
4292
|
+
'dash.studio.style.line': 'Monoline',
|
|
4293
|
+
'dash.studio.style.duotone': 'Duotone',
|
|
4294
|
+
'dash.studio.logo.style_hint': 'True vector, every one — a gradient logo stays infinitely scalable.',
|
|
4295
|
+
'dash.studio.logo.mark_colour': 'Mark colour',
|
|
4296
|
+
'dash.studio.logo.second_colour': 'Second colour',
|
|
4297
|
+
'dash.studio.logo.wordmark': 'Wordmark',
|
|
4298
|
+
'dash.studio.logo.font': 'Font',
|
|
4299
|
+
'dash.studio.logo.wc.ink': 'Ink',
|
|
4300
|
+
'dash.studio.logo.wc.brand': 'Brand',
|
|
4301
|
+
'dash.studio.logo.wc.custom': 'Custom',
|
|
4302
|
+
'dash.studio.logo.wordmark_colour': 'Wordmark colour',
|
|
4303
|
+
'dash.studio.logo.wc.ink_desc': 'A deep tint of your brand colour — reads as ink, stays on-palette.',
|
|
4304
|
+
'dash.studio.logo.wc.brand_desc': 'The wordmark in the brand colour itself.',
|
|
4305
|
+
'dash.studio.logo.wc.custom_desc': 'A colour of your choosing.',
|
|
4306
|
+
'dash.studio.logo.set_as_logo': 'Set as {name}’s logo',
|
|
4307
|
+
'dash.studio.logo.save_all': 'Save all forms to Library',
|
|
4308
|
+
'dash.studio.logo.download': 'Download {label} (SVG)',
|
|
4309
|
+
'dash.studio.output': 'Output',
|
|
4310
|
+
// ── Creative Studio — Icon room ───────────────────────────────────────────
|
|
4311
|
+
'dash.studio.icon.title': 'Icon',
|
|
4312
|
+
'dash.studio.icon.subtitle': 'Your shape, your brand, any material — generated and matted to a clean transparent icon.',
|
|
4313
|
+
'dash.studio.icon.shape': 'Shape',
|
|
4314
|
+
'dash.studio.icon.shape_search_ph': 'Search 1,990 shapes… "bell"',
|
|
4315
|
+
'dash.studio.icon.shape_credit': 'Lucide · 1,990 shapes · licence-clean (ISC)',
|
|
4316
|
+
'dash.studio.icon.material': 'Material — generated (Qwen-Image)',
|
|
4317
|
+
'dash.studio.icon.material_hint': 'The shape becomes a reference the model paints onto — then matted to a transparent icon. Uses credits.',
|
|
4318
|
+
'dash.studio.icon.icon_colour': 'Icon colour',
|
|
4319
|
+
'dash.studio.icon.colour_hint': 'The material is rendered in this colour.',
|
|
4320
|
+
'dash.studio.icon.size': 'Icon size',
|
|
4321
|
+
'dash.studio.icon.output_hint': 'Generated at a 1024 master, exported at your chosen size. Save / export land next.',
|
|
4322
|
+
'dash.studio.icon.material_desc': '— Qwen restyles this shape into the material, then mattes it to a clean transparent icon.',
|
|
4323
|
+
'dash.studio.material.glass': 'Glass',
|
|
4324
|
+
'dash.studio.material.clay': 'Clay 3D',
|
|
4325
|
+
'dash.studio.material.glossy': 'Glossy 3D',
|
|
4326
|
+
'dash.studio.material.metal': 'Metal',
|
|
4327
|
+
'dash.studio.material.neon3d': 'Neon Glow',
|
|
4328
|
+
// ── Creative Studio — Video / Voice / Image rooms ─────────────────────────
|
|
4329
|
+
'dash.studio.video.title': 'Video',
|
|
4330
|
+
'dash.studio.video.subtitle': 'Describe a shot — Ava generates a short clip and it plays in this bespoke stage.',
|
|
4331
|
+
'dash.studio.video.duration': 'Duration',
|
|
4332
|
+
'dash.studio.video.aspect': 'Aspect ratio',
|
|
4333
|
+
'dash.studio.video.resolution': 'Resolution',
|
|
4334
|
+
'dash.studio.video.hint': 'Talk to Ava — she directs the shot and generates it.',
|
|
4335
|
+
'dash.studio.voice.title': 'Voiceover',
|
|
4336
|
+
'dash.studio.voice.subtitle': 'Talk to Ava — she writes the read, directs the delivery, and voices it as a waveform you can scrub.',
|
|
4337
|
+
'dash.studio.voice.voice': 'Voice',
|
|
4338
|
+
'dash.studio.voice.language': 'Language',
|
|
4339
|
+
'dash.studio.voice.hint': 'Qwen3-TTS voices. Pace and emotion are directed in words — Ava has no speed knob.',
|
|
4340
|
+
'dash.studio.voice.foot': 'Talk to Ava — she writes the read, directs the delivery, and voices it.',
|
|
4341
|
+
'dash.studio.image.title': 'Image',
|
|
4342
|
+
'dash.studio.image.subtitle': 'Free-form — a hero shot, illustration, background or scene. Describe it; Ava composes it and it appears here.',
|
|
4343
|
+
'dash.studio.image.size': 'Size',
|
|
4344
|
+
'dash.studio.image.square': '1:1 square',
|
|
4345
|
+
'dash.studio.image.hint': 'Talk to Ava — she composes the image and renders it.',
|
|
4346
|
+
};
|
|
4347
|
+
//# sourceMappingURL=en.js.map
|