{
  "app": {
    "name": "TrainUs",
    "loading": "Loading…"
  },
  "common": {
    "markdownHint": "Basic Markdown supported",
    "back": "Back",
    "clearSearch": "Clear search"
  },
  "error": {
    "dbInitFailed": "Unable to initialize the database",
    "browserNotCompatible": "Your browser does not support the required storage features. Please make sure you are using a recent version of your browser and that you are not in private browsing mode.",
    "dbNewerThanApp": "Your data was created by a newer version of the app. Your data has not been modified. Please reload the page to get the latest version of the app.",
    "dbMigrationFailed": "The database update failed and your data was left unchanged. Reload the page to try again, or restore the backup you just downloaded if the problem persists.",
    "dbConnectionLost": "The database connection was lost due to an unexpected error. Reload the page to reconnect.",
    "reload": "Reload"
  },
  "migration": {
    "title": "Database update required",
    "body": "The app has been updated and your database needs to be migrated from version {{from}} to version {{to}}.",
    "backupRequired": "Before updating, please download a backup of your data. The update can only start once the backup has been saved.",
    "downloadBackup": "Download backup",
    "update": "Update",
    "updating": "Updating…"
  },
  "nav": {
    "mainNav": "Main navigation",
    "home": "Home",
    "exercises": "Exercises",
    "combos": "Combos",
    "sessions": "Sessions",
    "collections": "Collections",
    "stats": "Statistics",
    "settings": "Settings"
  },
  "home": {
    "title": "Home",
    "empty": "No training sessions executed yet. Start a session to see your activity here!",
    "recentSessions": "Recent Sessions",
    "sessionsLast7Days": "Sessions (last 7 days)",
    "sessionsLast30Days": "Sessions (last 30 days)",
    "history": "History",
    "exportHtml": "Export as HTML",
    "exportedOn": "Exported on {{date}}"
  },
  "exercises": {
    "title": "Exercises",
    "empty": "No exercises yet. Create your first exercise to get started!",
    "searchPlaceholder": "Search exercises…",
    "noResults": "No exercises match your search.",
    "new": "New Exercise",
    "edit": "Edit Exercise",
    "detail": "Exercise Details",
    "deleteConfirm": "Are you sure you want to delete \"{{title}}\"? This cannot be undone.",
    "deleteConfirmWithHistory": "Are you sure you want to delete \"{{title}}\"? This will also delete {{count}} journal entry/entries. This cannot be undone.",
    "deleted": "Exercise deleted.",
    "form": {
      "title": "Title",
      "titlePlaceholder": "e.g. Push-ups",
      "description": "Description",
      "descriptionPlaceholder": "Optional description…",
      "asymmetric": "Asymmetric exercise",
      "alternate": "Alternate sides each repetition",
      "alternateFalse": "Complete all reps on one side, then switch",
      "imageUrls": "Image URLs",
      "videoUrls": "Video URLs",
      "urlPlaceholder": "https://…",
      "addUrl": "Add URL",
      "removeUrl": "Remove",
      "defaultReps": "Default repetitions",
      "defaultWeight": "Default weight (kg)",
      "save": "Save",
      "cancel": "Cancel"
    },
    "reps": "reps",
    "weight": "kg",
    "asymmetricLabel": "Asymmetric",
    "alternateLabel": "Alternating",
    "delete": "Delete exercise",
    "videoOffline": "Videos are not available offline.",
    "evenRepsHint": "Repetitions must be even for asymmetric exercises."
  },
  "combos": {
    "title": "Combos",
    "empty": "No combos yet. Create your first combo to get started!",
    "searchPlaceholder": "Search combos…",
    "noResults": "No combos match your search.",
    "new": "New Combo",
    "edit": "Edit Combo",
    "detail": "Combo Details",
    "deleteConfirm": "Are you sure you want to delete \"{{title}}\"? This cannot be undone.",
    "deleted": "Combo deleted.",
    "exercises": "exercises",
    "timerConfig": "Timer Configuration",
    "delete": "Delete combo",
    "form": {
      "title": "Title",
      "titlePlaceholder": "e.g. Upper Body Blast",
      "description": "Description",
      "descriptionPlaceholder": "Optional description…",
      "type": "Type",
      "exercises": "Exercises",
      "selectExercise": "Select an exercise",
      "noExercises": "No exercises available — create exercises first",
      "addExercise": "Add Exercise",
      "reps": "Reps",
      "weight": "Weight (kg)",
      "save": "Save",
      "cancel": "Cancel"
    },
    "types": {
      "none": "None",
      "emom": "EMOM",
      "amrap": "AMRAP",
      "tabata": "TABATA"
    },
    "timer": {
      "emomDuration": "Duration",
      "amrapDuration": "Duration",
      "tabataWorkTime": "Work time (s)",
      "tabataRestTime": "Rest time (s)",
      "tabataSeconds": "seconds",
      "minutes": "minutes",
      "rounds": "rounds"
    }
  },
  "collections": {
    "title": "Collections",
    "empty": "No collections yet. Create your first collection to organize your sessions!",
    "searchPlaceholder": "Search collections…",
    "noResults": "No collections match your search.",
    "new": "New Collection",
    "edit": "Edit Collection",
    "detail": "Collection Details",
    "deleteConfirm": "Are you sure you want to delete \"{{label}}\"? This cannot be undone.",
    "deleted": "Collection deleted.",
    "sessions": "sessions",
    "delete": "Delete collection",
    "form": {
      "label": "Label",
      "labelPlaceholder": "e.g. Weekly Training",
      "sessions": "Sessions",
      "selectSession": "Select a session",
      "noSessions": "No sessions available — create sessions first",
      "addSession": "Add Session",
      "save": "Save",
      "cancel": "Cancel"
    }
  },
  "sessions": {
    "title": "Sessions",
    "empty": "No sessions yet.",
    "searchPlaceholder": "Search sessions…",
    "noResults": "No sessions match your search.",
    "new": "New Session",
    "edit": "Edit Session",
    "detail": "Session Details",
    "deleteConfirm": "Are you sure you want to delete \"{{title}}\"? This cannot be undone.",
    "deleteConfirmWithHistory": "Are you sure you want to delete \"{{title}}\"? This will also delete {{count}} journal log(s). This cannot be undone.",
    "deleted": "Session deleted.",
    "items": "items",
    "delete": "Delete session",
    "itemType": {
      "exercise": "Exercise",
      "combo": "Combo"
    },
    "form": {
      "title": "Title",
      "titlePlaceholder": "e.g. Upper Body Day",
      "description": "Description",
      "descriptionPlaceholder": "Optional description…",
      "items": "Items",
      "reps": "Reps",
      "durationMin": "Duration (min)",
      "weight": "Weight (kg)",
      "selectExercise": "Select an exercise",
      "selectCombo": "Select a combo",
      "noExercises": "No exercises available — create exercises first",
      "noCombos": "No combos available — create combos first",
      "addItem": "Add Item",
      "save": "Save",
      "cancel": "Cancel"
    }
  },
  "stats": {
    "title": "Statistics",
    "empty": "No data yet. Execute a session to see your statistics.",
    "usingSince": "You are using TrainUs since {{date}}",
    "dateRange": {
      "7d": "7 days",
      "30d": "30 days",
      "3m": "3 months",
      "all": "All time"
    },
    "summary": {
      "sessions": "Sessions",
      "exercises": "Exercises done",
      "streak": "Day streak"
    },
    "charts": {
      "frequency": {
        "title": "Frequency",
        "week": "Per week",
        "month": "Per month",
        "yLabel": "Sessions",
        "noData": "No sessions in this period."
      },
      "volume": {
        "title": "Volume",
        "yLabel": "Volume (kg·reps)",
        "noData": "No volume data in this period."
      },
      "progression": {
        "title": "Progression",
        "selectExercise": "Select an exercise…",
        "reps": "Reps",
        "weight": "Weight (kg)",
        "noData": "No data for this exercise in this period."
      }
    }
  },
  "settings": {
    "title": "Settings",
    "language": "Language",
    "userName": "User Name",
    "userNamePlaceholder": "Enter your name",
    "nameRequired": "Name cannot be empty",
    "userId": "User ID",
    "theme": "Theme",
    "themeLight": "Light",
    "themeDark": "Dark",
    "themeTrainus": "TrainUs",
    "database": "Database",
    "downloadDb": "Download Database",
    "downloadDbHint": "Download or restore the raw SQLite database file.",
    "restoreDb": "Restore Database",
    "restoreDbWarning": "This will replace ALL current data with the contents of the selected file. This cannot be undone.\n\nCurrent app version: {{version}}\n\nAre you sure you want to continue?",
    "restoreInProgress": "Restoring database…",
    "restoreSuccess": "Database restored successfully",
    "restoreError": "Database restore failed",
    "restoreAdapted": "Schema adapted from version {{from}} to {{to}}.",
    "restoreRows": "row(s)",
    "restoreDismiss": "OK",
    "restoreErrorCodes": {
      "INVALID_FILE": "The selected file is not a valid SQLite database or is corrupted.",
      "INCOMPLETE_DB": "The selected file is not a valid TrainUs database (missing required tables).",
      "INCOMPATIBLE_VERSION": "The database version is incompatible and no migration path is available.",
      "ADAPT_FAILED": "Failed to adapt the database schema to the current version.",
      "RESTORE_FAILED": "An error occurred while restoring the data.",
      "UNEXPECTED": "An unexpected error occurred."
    },
    "exportImport": "Export / Import",
    "exportAllData": "Export All Data",
    "exportData": "Export Data",
    "importData": "Import Data",
    "importAsMine": "Import as Mine",
    "comingSoon": "Coming soon in a future update.",
    "suffixManagement": "Import Suffixes",
    "suffixHint": "Manage suffixes used to distinguish imported exercises from other users.",
    "suffixDeleteConfirm": "Delete suffix \"{{suffix}}\" for {{name}}? This will not remove imported exercises.",
    "suffixDeleteTitle": "Delete Suffix",
    "backupReminderInvalid": "Must be between 1 and 365",
    "initializeDb": "Initialize Database",
    "initializeDbHint": "Delete all data and reset the database to its initial state. This action cannot be undone.",
    "initializeDbTitle": "Initialize Database",
    "initializeDbConfirm": "I understand that this will permanently delete all my data and cannot be reversed",
    "backup": {
      "lastBackup": "Last backup: {{when}}",
      "neverBackedUp": "Never backed up",
      "reminderEvery": "Remind me every",
      "reminderEveryUnit": "days"
    },
    "sound": "Sound",
    "soundVolume": "Volume",
    "soundTest": "Test",
    "credits": "Credits",
    "manageJournal": "Manage Exercise Logs",
    "manageJournalHint": "Delete exercise log entries within a date range.",
    "cleanJournalBtn": "Clean Journal Data"
  },
  "cleanJournal": {
    "title": "Clean Journal Data",
    "hint": "Select a date range to permanently delete all exercise log entries within it.",
    "from": "From",
    "to": "To",
    "errorToBeforeFrom": "End date must be on or after the start date.",
    "matchCount_one": "{{count}} session will be deleted.",
    "matchCount_other": "{{count}} sessions will be deleted.",
    "matchCount": "{{count}} session(s) will be deleted.",
    "confirmLabel": "I understand this will permanently delete the selected exercise log entries and cannot be undone.",
    "deleteBtn": "Delete"
  },
  "credits": {
    "title": "Credits",
    "intro": "Open-source icons used in this application:",
    "appIcon": {
      "name": "Mighty Force",
      "description": "App icon, by Delapouite",
      "author": "Delapouite"
    },
    "bootstrapIcons": {
      "name": "Bootstrap Icons",
      "description": "UI icons used throughout the application"
    },
    "gameIcons": "game-icons.net is maintained by Lorc, Delapouite & contributors",
    "thirdParties": {
      "title": "Third-party libraries"
    },
    "testingTools": {
      "title": "Testing Tools"
    }
  },
  "export": {
    "exercises": "Export all exercises",
    "exercise": "Export this exercise",
    "combos": "Export all combos",
    "combo": "Export this combo",
    "sessions": "Export all sessions",
    "session": "Export this session",
    "collections": "Export all collections",
    "collection": "Export this collection",
    "executionLogs": "Execution Logs",
    "settings": "Settings",
    "filterTitle": "Export Data",
    "filterDescription": "Select which data types to export."
  },
  "import": {
    "title": "Import Data",
    "titleAsMine": "Import as Mine",
    "exercises": "Import exercises",
    "importAsMine": "Import as mine",
    "cancel": "Cancel",
    "continue": "Continue",
    "apply": "Import",
    "done": "Done",
    "importing": "Importing…",
    "exerciseCount": "exercise(s)",
    "totalCount": "item(s)",
    "executionLogs": "execution log(s)",
    "from": "From {{name}} on {{date}}",
    "usingSuffix": "Suffix: [{{suffix}}]",
    "suffixExplanation": "These items are from {{name}}. Choose a short suffix to distinguish them from your own.",
    "suffixLabel": "Suffix",
    "suffixPlaceholder": "e.g. JD",
    "suffixPreview": "Titles will look like: \"{{title}} [{{suffix}}]\"",
    "suffixRequired": "Suffix is required.",
    "suffixTaken": "This suffix is already used by another user.",
    "collisionExplanation": "{{count}} item(s) conflict with existing data. Choose what to do for each:",
    "replace": "Replace",
    "skip": "Skip",
    "replaceAll": "Replace All",
    "skipAll": "Skip All",
    "exportedOn": "Exported on {{date}}",
    "reportTitle": "Import Complete",
    "reportTotalImported": "{{count}} item(s) imported",
    "reportImported": "{{count}} imported",
    "reportReplaced": "{{count}} replaced",
    "reportUpdated": "{{count}} updated",
    "reportSkipped": "{{count}} skipped",
    "errors": {
      "invalidJson": "The file does not contain valid JSON.",
      "invalidFormat": "The file format is not recognized.",
      "missingMetadata": "The file is missing metadata.",
      "wrongApp": "This file was not exported from TrainUs.",
      "missingSchema": "The file is missing schema version information.",
      "newerSchema": "This file was exported from a newer version of TrainUs. Please update the application.",
      "missingData": "The file does not contain any data.",
      "missingExporter": "The file is missing exporter information."
    }
  },
  "validation": {
    "required": "This field is required.",
    "minValue": "Value must be ≥ {{min}}.",
    "invalidUrl": "Please enter a valid URL (https://…).",
    "titleTaken": "An exercise with this title already exists.",
    "comboTitleTaken": "A combo with this title already exists.",
    "collectionLabelTaken": "A collection with this label already exists."
  },
  "shortcuts": {
    "edit": "— press E",
    "new": "— press N",
    "back": "— press Esc",
    "save": "— Ctrl+Enter"
  },
  "execution": {
    "start": "Start session",
    "exit": "Exit session",
    "steps": "steps",
    "now": "NOW",
    "next": "NEXT",
    "round": "Round",
    "reps": "Reps",
    "weight": "Weight",
    "side": "Side",
    "sideLeft": "LEFT",
    "sideRight": "RIGHT",
    "asymAlternate": "(1x{{left}} ↔ 1x{{right}}) × {{count}}",
    "asymSequential": "{{count}}x {{left}} → {{count}}x {{right}}",
    "done": "Done",
    "continue": "Continue",
    "oneMoreRound": "One More Round",
    "comboContext": "Combo: {{title}} — Round {{round}} of {{total}}",
    "comboComplete": "{{title}} — {{rounds}} round(s) complete",
    "complete": "Session complete!",
    "backToSession": "Back to session",
    "timer": {
      "pause": "Pause",
      "resume": "Resume",
      "rest": "REST",
      "nextExercise": "Next:",
      "timeUp": "Time's up",
      "timeUpTitle": "⏱ Time's up — {{title}}"
    },
    "showDetails": "Show exercise details",
    "hideDetails": "Hide exercise details",
    "videoOffline": "Videos are not available offline.",
    "leaveConfirm": "You are in the middle of a session. Leave anyway? The session will be marked as aborted."
  },
  "backup": {
    "reminder": {
      "tooltip": "Last backup {{days}} day(s) ago — click to back up",
      "tooltipNever": "No backup yet — click to create one"
    },
    "modal": {
      "title": "Backup reminder",
      "body": "Your last backup was {{days}} day(s) ago. We recommend backing up your data regularly.",
      "bodyNever": "You have never backed up your data. We recommend creating a backup.",
      "dismiss": "Dismiss",
      "goToSettings": "Go to Settings"
    }
  },
  "firstLoadWarning": {
    "title": "Before you start",
    "singleTab": "TrainUs can only be open in one browser tab at a time. Opening it in a second tab will cause errors.",
    "privateMode": "TrainUs does not work in private/incognito browsing mode — your data would not be saved.",
    "dismiss": "Got it"
  },
  "install": {
    "button": "Install app",
    "dismiss": "Dismiss install prompt"
  },
  "modal": {
    "close": "Close dialog"
  },
  "saveFile": {
    "title": "Save file",
    "label": "File name",
    "cancel": "Cancel",
    "save": "Save"
  },
  "about": {
    "title": "About TrainUs",
    "appVersion": "Application Version",
    "dbVersion": "Database Version",
    "author": "Created by",
    "links": "Links",
    "repository": "Repository",
    "website": "Website",
    "license": "License",
    "licenseBtn": "View License"
  },
  "license": {
    "title": "License"
  }
}
