{
  "healthConsent": {
    "title": "Consent for your health data",
    "body": "Your recovery (sleep, energy, mood) and body measurements like weight count as health data. We only process them with your consent, so we can track your training load, recovery, and development.",
    "point1": "Special-category data (art. 9 GDPR). Visible only to you and the coaches you choose to share with.",
    "point2": "You enter it voluntarily. Stop anytime.",
    "point3": "You can delete your data anytime.",
    "accept": "I give my consent",
    "once": "You confirm this once. It covers all your health data in JudoLytics.",
    "readMore": "Read our privacy policy"
  },
  "save": "Save",
  "cancel": "Cancel",
  "delete": "Delete",
  "edit": "Edit",
  "back": "Back",
  "editedAgo": "Edited {{time}}",
  "lastUpdatedAgo": "Last updated {{time}}",
  "more": "More",
  "settings": "Settings",
  "signOut": "Sign out",
  "copy": {
    "button": "Copy",
    "copied": "Copied",
    "success": "Copied to clipboard",
    "failed": "Copy failed"
  },
  "actions": {
    "save": "Save",
    "cancel": "Cancel",
    "delete": "Delete",
    "edit": "Edit",
    "add": "Add",
    "close": "Close",
    "confirm": "Confirm",
    "back": "Back",
    "next": "Next",
    "search": "Search",
    "filter": "Filter",
    "export": "Export",
    "import": "Import",
    "retry": "Retry",
    "changeLanguage": "Change language",
    "exportCsv": "Export CSV",
    "menu": "Actions",
    "clearSearch": "Clear search",
    "undo": "Undo"
  },
  "errors": {
    "generic": "Something went wrong",
    "unauthorized": "No access"
  },
  "error": {
    "title": "Something went wrong",
    "profileLoad": "Your profile could not be loaded. Please try again.",
    "retry": "Try again"
  },
  "roles": {
    "coach": "Coach",
    "judoka": "Judoka",
    "beheerder": "Manager"
  },
  "status": {
    "loading": "Loading...",
    "saving": "Saving...",
    "deleting": "Deleting...",
    "noResults": "No results found",
    "error": "Something went wrong",
    "success": "Successfully saved",
    "unexpectedError": "An unexpected error occurred",
    "errorRetry": "An error occurred. Please try again.",
    "noConnection": "No internet connection. Please try again once you're back online."
  },
  "nav": {
    "dashboard": "Dashboard",
    "home": "Home",
    "new": "New",
    "newAnalysis": "Add match",
    "myMatches": "My matches",
    "matches": "Matches",
    "import": "Import",
    "opponents": "Opponents",
    "tournaments": "Tournaments",
    "stats": "Statistics",
    "training": "Training",
    "loadMonitor": "Load monitor",
    "tracking": "Tracking",
    "developmentPlan": "Development plan",
    "myClubs": "Clubs",
    "referral": "Earn a free month",
    "settings": "Settings",
    "settingsProfile": "Profile",
    "settingsSecurity": "Security",
    "settingsBilling": "Subscription",
    "settingsNotifications": "Notifications",
    "settingsApp": "App preferences",
    "settingsModules": "Modules",
    "settingsPrivacy": "Privacy & sharing",
    "settingsData": "My data",
    "dataIntegrity": "Data check",
    "adminCockpit": "Admin Cockpit",
    "usersAndSubs": "Users & Subs",
    "tournamentsAdmin": "Tournaments admin",
    "manageClubs": "Manage clubs",
    "feedback": "Feedback",
    "analytics": "Platform analytics",
    "emailAdmin": "Email admin",
    "stripeInsights": "Stripe insights",
    "helpOffline": "Help — Offline mode",
    "helpMfa": "Help — Two-step verification",
    "systemHealth": "System health",
    "badges": "Badges",
    "pushNotifications": "Push notifications",
    "adminOnboarding": "Onboarding admin",
    "freePlan": "Free",
    "tierRequired": "{{tier}} required for {{feature}}",
    "personal": "Personal",
    "personalDesc": "Your personal dashboard",
    "clubOverview": "Overview",
    "clubMembers": "Members",
    "clubGroups": "Groups",
    "clubStats": "Statistics",
    "clubPrivacy": "Privacy",
    "coachCockpit": "Cockpit",
    "coachTeamSessions": "Training overview",
    "coachPlanner": "Week planner",
    "coachLoad": "Load",
    "coachTracking": "Tracking",
    "coachDevelopment": "Development",
    "clubSettings": "Settings",
    "clubSubscription": "Subscription",
    "sections": {
      "matches": "Matches",
      "training": "Training",
      "development": "Development",
      "insights": "Insights",
      "more": "More",
      "admin": "Admin",
      "coach": "Coach",
      "personal": "Personal",
      "general": "General",
      "clubCore": "General",
      "clubs": "My clubs",
      "account": "Account"
    },
    "searchPlaceholder": "Search menu...",
    "searchEmpty": "No pages found",
    "searchClear": "Clear search",
    "tabs": {
      "personal": "Personal",
      "clubs": "Clubs",
      "admin": "Admin"
    },
    "menu": {
      "title": "Menu",
      "a11yDescription": "Navigation to pages, clubs and settings",
      "settings": "Settings",
      "notifications": "Notifications",
      "logout": "Sign out",
      "search": "Search matches, opponents, more…",
      "sections": {
        "today": "Today"
      },
      "smartTile": {
        "recovery": "Recovery",
        "trainingNow": "Training · {{time}}",
        "matchTomorrow": "Match tomorrow",
        "matchTomorrowSub": "{{name}}",
        "popDue": "PDP review",
        "reflection": "Reflection"
      },
      "clubsub": {
        "core": "General",
        "coach": "Coach",
        "admin": "Admin"
      }
    },
    "adminOpponents": "Opponents (admin)",
    "autoOptimization": "Auto-optimization"
  },
  "validation": {
    "required": "This field is required",
    "invalidEmail": "Invalid email address",
    "tooShort": "Must be at least {{min}} characters",
    "tooLong": "Must be at most {{max}} characters"
  },
  "confirm": {
    "deleteTitle": "Are you sure?",
    "deleteMessage": "This action cannot be undone.",
    "deleteConfirm": "Yes, delete",
    "deleteCancel": "Cancel"
  },
  "select": {
    "placeholder": "Select...",
    "searchPlaceholder": "Search...",
    "selectAll": "Select all",
    "selected": "{{count}} selected",
    "country": "Select country...",
    "searchCountry": "Search country...",
    "noCountryFound": "No country found.",
    "opponent": "Select opponent...",
    "searchOpponent": "Search opponent...",
    "noOpponentFound": "No opponent found",
    "addNew": "Add new",
    "addNewOpponent": "Add new opponent",
    "weightCategory": "Select weight category",
    "countryAIN": "Individual neutral (AIN)",
    "countryEOR": "Refugee Olympic Team (EOR)"
  },
  "gender": {
    "male": "Male",
    "female": "Female",
    "prefer_not_to_say": "Prefer not to say"
  },
  "weightClass": {
    "label": "Weight class",
    "nonStandard": "Non-standard class",
    "otherCategories": "Other categories",
    "otherGender": "Other gender",
    "kg": "{{weight}} kg"
  },
  "command": {
    "searchPlaceholder": "Search pages, matches, opponents...",
    "navigation": "Navigation",
    "actions": "Actions",
    "addNewMatch": "Add new match",
    "signOut": "Sign out",
    "admin": "Admin",
    "adminCockpit": "Admin Cockpit",
    "adminUsers": "Users & Subscriptions",
    "adminTournaments": "Tournament management",
    "adminFeedback": "Feedback",
    "adminClubs": "Club management",
    "adminAnalytics": "Analytics",
    "adminEmail": "Email management",
    "adminSystemHealth": "System health",
    "adminBadges": "Badge management",
    "searching": "Searching...",
    "groups": {
      "matches": "Matches",
      "opponents": "Opponents",
      "trainings": "Training",
      "goals": "Goals",
      "members": "Club members",
      "recent": "Recent"
    },
    "search": {
      "vs": "vs."
    },
    "removeRecentSearch": "Remove recent search"
  },
  "withdrawalWaiver": {
    "title": "Immediate access to JudoLytics",
    "description": "You are requesting immediate delivery of a digital service. We need your explicit consent for that.",
    "checkboxLabel": "I expressly agree to immediate delivery and confirm that I thereby waive my statutory 14-day right of withdrawal (Article 6:230p(1)(e) of the Dutch Civil Code). You can still cancel at any time, effective at the end of the current billing period.",
    "termsLink": "Read more about the right of withdrawal in our Terms of Service",
    "confirm": "Continue to checkout"
  },
  "paywall": {
    "availableFrom": "Available from {{tier}}",
    "upgrade": "Upgrade",
    "upgradeTo": "Upgrade to {{tier}}",
    "availableIn": "Part of {{tier}}.",
    "from": "from",
    "perMonth": "/month",
    "changeTo": "Switch to {{tier}}",
    "subscribeTo": "Subscribe to {{tier}}",
    "loading": "Loading...",
    "viewAllPlans": "View all plans",
    "monthly": "Monthly",
    "yearly": "Yearly",
    "discount": "Discount",
    "mostChosen": "Most popular",
    "yourPlan": "Your plan",
    "perYear": "/year billed",
    "savePerYear": "Save €{{amount}}/year",
    "yearlyBadge": "2+ months free",
    "tryFree": "Try {{plan}} for free",
    "currentPlan": "Current plan",
    "payAfterTrial": "You only pay after your trial ends",
    "lessFeatures": "Fewer features",
    "moreFeatures": "+ {{count}} more features",
    "subscriptionExpired": "Your subscription has expired. Renew your subscription to make changes.",
    "allOfPlanPlus": "Everything in {{plan}}, plus:",
    "bestValue": "Best value",
    "compareAll": "Compare all features",
    "hideComparison": "Hide comparison",
    "includedFeatures": "Included features",
    "states": {
      "neverTrialedDescription": "{{days}} days of full access. No credit card required.",
      "postTrialDescription": "Your data stays saved. Choose a plan to continue.",
      "paidLowerDescription": "This feature is part of {{tier}}. Upgrade when you're ready."
    },
    "cta": {
      "viewPlans": "View plans",
      "comparePlans": "Compare plans",
      "managePlan": "Manage subscription"
    },
    "featurePreview": {
      "intro": "What you get in your trial:"
    },
    "dataSummary": {
      "matches_one": "match",
      "matches_other": "matches",
      "opponents_one": "opponent",
      "opponents_other": "opponents",
      "trainings_one": "training session",
      "trainings_other": "training sessions",
      "retention": "All of it stays saved. Upgrade to work with it again."
    }
  },
  "plans": {
    "basis": {
      "description": "Log your matches, track your progress, and get to know your opponents"
    },
    "pro": {
      "description": "Discover patterns in your judo, prevent overtraining, and grow as a judoka"
    },
    "max": {
      "description": "Full control: coach dashboards, tactical plans, and AI insights coming soon"
    }
  },
  "tierNames": {
    "free": "Free",
    "basis": "Starter",
    "pro": "Pro",
    "max": "Elite"
  },
  "featureGroups": {
    "basic": "Basic",
    "analysis": "Analysis & Reflection",
    "clubSocial": "Club & Social",
    "advanced": "Advanced",
    "limits": "Limits",
    "matches": "Matches & Opponents",
    "stats": "Statistics & Analysis",
    "training": "Training & Load",
    "development": "Development & Reflection",
    "tracking": "Tracking & Club"
  },
  "featureNames": {
    "matches_add": "Record every match",
    "matches_view": "See your results and progress",
    "stats_basic": "View your win/loss ratio",
    "opponents_simple": "Know your opponents",
    "reflections": "Build your personal playbook",
    "data_integrity": "Keep your data clean",
    "club_membership": "Train with your club",
    "match_plans": "Plan + lessons learned per opponent",
    "grip_tracking": "Improve your kumi kata",
    "tracking_basic": "Track your body measurements",
    "tracking_full": "See trends in your measurements",
    "pop_basic": "Set your development goals",
    "pop_full": "Link goals to your results",
    "pop_coach": "Guide your judokas with purpose",
    "training_basic": "Log your training sessions",
    "training_load": "Prevent overtraining",
    "training_coach": "Monitor all your judokas",
    "stats_advanced": "Discover patterns in your judo",
    "stats_explorer": "Analyze all your data your way",
    "coach_cockpit": "Team overview dashboard"
  },
  "featureDescriptions": {
    "matches_add": "Record every match with throw, score, and opponent",
    "matches_view": "View your results, win rates, and progression per tournament",
    "stats_basic": "Overview of win/loss ratio per tournament and period",
    "stats_advanced": "Discover patterns in your throws, ne-waza, and shidos over time",
    "stats_explorer": "Filter, combine, and analyze all your match data exactly the way you want",
    "opponents_simple": "Note strengths, weaknesses, and fighting style of opponents",
    "reflections": "Write learning points after every match and build a personal playbook",
    "data_integrity": "Automatic alerts for missing or conflicting match data",
    "club_membership": "Join a judo club and share data with your team",
    "match_plans": "Write your approach before the match. Capture lessons learned afterwards. Shareable with your club or coaches.",
    "grip_tracking": "Record and analyze your kumi kata per match",
    "tracking_basic": "Track your weight, height, and other measurements",
    "tracking_full": "Follow trends in your measurements with charts and comparisons",
    "pop_basic": "Set development goals and work towards them step by step",
    "pop_full": "See how your goals relate directly to your match results",
    "pop_coach": "View progress and goals of your judokas in one central place",
    "training_basic": "Log your training sessions with duration, intensity, and type",
    "training_load": "Prevent overtraining by tracking load vs. recovery",
    "training_coach": "View training load and progress of all your judokas",
    "coach_cockpit": "One dashboard with KPIs, red flags and monitoring of all your judokas"
  },
  "limitNames": {
    "max_clubs": "Club memberships",
    "max_matches_per_month": "Max matches per month",
    "max_matches_total": "Max matches total",
    "max_opponents": "Max opponents",
    "max_training_logs_per_month": "Max training logs per month",
    "max_pop_goals": "Max PDP goals"
  },
  "limitValues": {
    "unlimited": "Unlimited"
  },
  "comingSoon": {
    "badge": "Coming soon",
    "statsExplorer": "Analyze all your data your way",
    "statsExplorerDescription": "Filter, combine, and analyze all your match data exactly the way you want",
    "customReports": "Build your own reports",
    "customReportsDescription": "Choose your data, period, and chart type, giving you total freedom to discover insights",
    "aiInsights": "AI-powered insights",
    "aiInsightsDescription": "Let AI discover patterns you might miss yourself"
  },
  "limits": {
    "atLimitTitle": "Limit reached",
    "atLimitDescription": "You have reached the maximum of {{max}} for {{limit}} ({{current}}/{{max}}). Upgrade your plan to add more.",
    "approachingTitle": "Approaching your limit",
    "approachingDescription": "You have used {{current}} of {{max}} for {{limit}}. You can add {{remaining}} more."
  },
  "freeLimit": {
    "freeTitle": "Try JudoLytics with {{max}} free matches",
    "freeDescription": "Enter up to {{max}} matches and discover what JudoLytics can do for you.",
    "matchProgress": "{{current}} of {{max}} free matches",
    "matchesRemaining": "{{remaining}} free matches remaining",
    "limitReached": "You've used all {{max}} free matches",
    "limitReachedDescription": "Start a free trial for unlimited match tracking.",
    "addFirstMatch": "Enter your first match",
    "freeMatches": "{{max}} free matches · no credit card required",
    "continueMatches": "Or enter another free match ({{remaining}} left)"
  },
  "loading": "Loading...",
  "feedback": {
    "toast": {
      "notLoggedIn": "Not logged in",
      "thankYou": "Thank you for your feedback!",
      "sendError": "Failed to send feedback",
      "submitted": "We will review your report as soon as possible.",
      "tryAgainLater": "Please try again later."
    },
    "giveFeedback": "Give feedback",
    "types": {
      "bug": "Bug",
      "feature": "Idea",
      "other": "Other"
    },
    "dialog": {
      "whatToReport": "What do you want to report?",
      "describeLabel": "Describe your feedback",
      "placeholder": "Be as specific as possible. What did you expect? What happened?",
      "minChars": "Minimum {{min}} characters ({{remaining}} remaining)",
      "autoInfo": "We automatically include your page, browser, and account info",
      "screenshotLabel": "Screenshot (optional)",
      "dropzoneText": "Drag an image, paste (Ctrl+V), or click to upload",
      "sending": "Sending...",
      "submit": "Submit feedback",
      "helpImprove": "Help us improve JudoLytics"
    }
  },
  "invitations": {
    "toast": {
      "sent": "Invitation sent",
      "sendError": "Invitation failed",
      "joined": "You are now a member of {{club}}!",
      "acceptError": "Could not accept invitation",
      "revoked": "Invitation revoked",
      "revokeError": "Could not revoke invitation",
      "emailFailed": "Email not sent",
      "emailFailedDescription": "The invitation was created but the email could not be sent. Check email configuration."
    },
    "status": {
      "pending": "Pending",
      "accepted": "Accepted",
      "expired": "Expired",
      "revoked": "Revoked"
    },
    "invalidEmail": "Enter a valid email address",
    "emailPlaceholder": "name@example.com",
    "send": "Send",
    "sentInvitations": "Sent invitations",
    "revoke": "Revoke",
    "showMore": "Show {{count}} more"
  },
  "layout": {
    "shortcutsTooltip": "Keyboard shortcuts (?)",
    "logout": "Log out",
    "loggingOut": "Logging out...",
    "logoHome": "Go to dashboard",
    "searchTrigger": {
      "placeholder": "Search matches, opponents, more…",
      "ariaLabel": "Open search ({{shortcut}})"
    },
    "roleBadge": {
      "admin": "Admin",
      "support": "Support"
    },
    "planLabel": "{{tier}} plan",
    "menu": "Menu",
    "userMenu": {
      "trigger": "Account menu",
      "settings": "Settings",
      "language": "Language",
      "help": "Help & guide",
      "feedback": "Send feedback",
      "logout": "Log out",
      "loggingOut": "Logging out..."
    },
    "sidebar": {
      "collapse": "Collapse",
      "expand": "Expand"
    },
    "shortcuts": {
      "label": "Keyboard shortcuts",
      "toggle": "Show/hide keyboard shortcuts",
      "newMatch": "New match",
      "goToDashboard": "Go to Dashboard",
      "goToMatches": "Go to Matches",
      "goToStats": "Go to Statistics",
      "goToOpponents": "Go to Opponents",
      "search": "Search (if available)",
      "closeDialog": "Close dialog",
      "pressToOpen": "Press ? to open this window"
    }
  },
  "quickCreate": {
    "trigger": "Quick add",
    "title": "What do you want to add?",
    "description": "Pick what you want to log.",
    "match": "Match",
    "matchDescription": "Analyze a new match",
    "training": "Training",
    "trainingDescription": "Log a training session",
    "measurement": "Measurement",
    "measurementDescription": "Body measurement or test",
    "recovery": "Recovery",
    "recoveryDescription": "Fill in a recovery check",
    "coachSection": "For your group",
    "personalSection": "For yourself"
  },
  "notifications": {
    "toast": {
      "paymentFailed": "Payment failed",
      "subscriptionCanceling": "Subscription canceling",
      "clubInvite": "You've been invited to join {{name}} as {{role}}.",
      "freeAccount": "Free account"
    },
    "trialEnding": "Trial ending in {{count}} day",
    "trialEnding_other": "Trial ending in {{count}} days",
    "trialEndingDescription": "After your trial, your first payment will be processed.",
    "trialExpired": "Your trial has expired",
    "trialExpiredDescription": "Choose a plan to keep your premium features.",
    "pastDueDescription": "Update your payment details to maintain access.",
    "cancelPendingDescription": "Your subscription ends on {{date}}.",
    "planChangeScheduled": "Plan change scheduled",
    "planChangeDescription": "Your plan will change to {{plan}} on {{date}}.",
    "clubInviteTitle": "Invitation to join {{name}}",
    "freeAccountDescription": "Upgrade to a paid plan for all features.",
    "title": "Notifications",
    "typeWarning": "Warning",
    "typeAction": "Action",
    "typeInfo": "Info",
    "actionsRequired": "{{count}} action required",
    "actionsRequired_other": "{{count}} actions required",
    "noActions": "No pending actions",
    "empty": "No notifications",
    "emptyTitle": "You're all caught up",
    "emptyDescription": "No new notifications. We'll let you know when something comes up.",
    "manageSettings": "Notification settings",
    "markAllRead": "Mark all read",
    "dismiss": "Dismiss",
    "timeJustNow": "Just now",
    "timeMinutes": "{{count}} min ago",
    "timeHours": "{{count}}h ago",
    "timeDays": "{{count}} day ago",
    "timeDays_other": "{{count}} days ago",
    "groupToday": "Today",
    "groupYesterday": "Yesterday",
    "groupEarlier": "Earlier",
    "orphanedPushHint": "Push notifications are on, but no device is connected. Re-enable"
  },
  "referral": {
    "extendedTrial": "You get {{days}} days free trial (normally 7 days)",
    "welcomeBanner": "{{name}} invited you to JudoLytics!"
  },
  "trial": {
    "startButton": "Start free trial ({{days}} days)",
    "startTitle": "Try JudoLytics Pro for free",
    "startDescription": "{{days}} days free access to all Pro features. No credit card required.",
    "skipButton": "Decide later",
    "noCreditCard": "No credit card required",
    "startedTitle": "Trial started!",
    "startedDescription": "You have {{days}} days of Pro access.",
    "errorNotLoggedIn": "Log in to start a trial.",
    "features": {
      "matches": "Analyze matches",
      "opponents": "Track opponents",
      "stats": "Statistics & insights",
      "training": "Track training"
    },
    "freeTitle": "Try all features",
    "freeDescription": "Start a free trial and discover what JudoLytics can do for you.",
    "postTrialTitle": "Your trial is over",
    "postTrialDescription": "Your data stays saved. Choose a plan to continue.",
    "upgradeButton": "View plans",
    "bannerDays": "Your trial has {{count}} day remaining",
    "bannerDays_other": "Your trial has {{count}} days remaining",
    "bannerUrgent": "Your trial expires in {{hours}} hours!",
    "subscribeNow": "Subscribe now",
    "bannerPayAfter": "Subscribe now, only pay after your trial ends",
    "waitlistBonusTitle": "Waitlist bonus",
    "waitlistBonusDescription": "You received extra trial days for signing up via the waitlist!",
    "notNowExplore": "Not now, I'll explore first"
  },
  "subscriptionStatus": {
    "noSubscription": "No subscription"
  },
  "not_found": {
    "message": "Oops! Page not found",
    "return_home": "Return to home"
  },
  "errorPages": {
    "notFound": {
      "title": "Page not found",
      "code": "404",
      "subtitle": "The page you're looking for doesn't exist or has been moved.",
      "subtitleDashboard": "This page doesn't exist. Check the URL or go back.",
      "goHome": "Go to home",
      "goDashboard": "Go to dashboard",
      "goBack": "Go back",
      "viewMatches": "View matches",
      "viewOpponents": "View opponents"
    },
    "serverError": {
      "title": "Something went wrong",
      "code": "500",
      "subtitle": "An unexpected error occurred. Please try again later.",
      "reportProblem": "Report a problem",
      "retry": "Try again",
      "reloadPage": "Reload page"
    },
    "accessDenied": {
      "title": "Access denied",
      "code": "403",
      "subtitle": "You don't have permission to access this page.",
      "requiredRole": "This page is only available for {{role}}.",
      "contactAdmin": "Contact your club manager",
      "upgradePlan": "Upgrade your plan",
      "goBack": "Go back",
      "goDashboard": "Go to dashboard"
    },
    "roleTimeout": {
      "title": "Slow connection",
      "subtitle": "Your role could not be verified due to a slow or missing connection. Please try again.",
      "retry": "Try again"
    },
    "maintenance": {
      "title": "We're updating",
      "subtitle": "JudoLytics is temporarily unavailable due to scheduled maintenance. We'll be back online as soon as possible.",
      "estimatedReturn": "Estimated return: {{time}}",
      "statusPage": "View status page",
      "contactUs": "Contact us"
    }
  },
  "externalLinks": {
    "viewMatchOnJudoTV": "Watch this match on JudoTV",
    "viewVideosOnJudoTV": "Watch videos on JudoTV",
    "viewMatchDataOnJudobase": "View match data on Judobase",
    "viewCompetitionOnIJF": "View competition on IJF.org",
    "opponentLabel": "Opponent",
    "viewOpponentOnIJF": "View opponent on IJF.org",
    "viewCompetitionOnJM": "View competition on JudoManager",
    "viewProfileOnJudobase": "View profile on Judobase",
    "ijfProfileLabel": "IJF profile",
    "viewProfileOnIJF": "View profile on IJF.org",
    "viewProfileOnJM": "View profile on JudoManager",
    "viewAltProfileOnJM": "View alternative JudoManager profile"
  },
  "offlineBanner": {
    "title": {
      "offline": "You're offline",
      "slow": "Slow connection"
    },
    "lastSynced": "Last synced {{relativeTime}}",
    "noCache": "No local data. Connect to the internet to load.",
    "helpLink": "What does this mean?",
    "dataAge": {
      "updatedAt": "Data last updated at {{time}}"
    }
  },
  "offline": {
    "prepare": {
      "button": "Prepare for offline",
      "preparing": "Preparing...",
      "done": "Ready — {{n}} items saved locally",
      "partial": "Ready — {{n}} of {{total}} saved",
      "skippedSlowConnection": "Skipped — connection too slow for prefetch",
      "error": "Preparation failed. Try again on a better connection."
    },
    "storage": {
      "nearlyFull": "Local storage almost full ({{usageMB}} / {{quotaMB}} MB). Older cache will be cleared."
    },
    "queued": {
      "message": "Will be sent as soon as you're back online"
    },
    "permanentFail": {
      "description": "Change could not be saved: {{reason}}",
      "discard": "Remove"
    },
    "pending": {
      "badge": "{{count}} waiting for connection",
      "badgeOne": "1 change waiting for connection",
      "title": "Unsent changes",
      "empty": "All changes are synced",
      "retry": "Retry",
      "retrying": "Retrying…",
      "remove": "Remove from queue",
      "statusPending": "Waiting for connection",
      "statusSyncing": "Sending",
      "statusFailed": "Failed",
      "statusConflict": "Conflict"
    },
    "reloginRequired": {
      "title": "Session expired",
      "description": "You have {{count}} unsent changes. Log in again to keep them.",
      "descriptionOne": "You have 1 unsent change. Log in again to keep it.",
      "loginButton": "Log in again",
      "later": "Later"
    },
    "label": {
      "recoveryUpsert": "Recovery check-in {{date}}",
      "measurementInsert": "Measurement {{metric}}",
      "measurementDelete": "Delete measurement",
      "opponentNoteInsert": "Opponent note",
      "opponentNoteUpdate": "Update note",
      "opponentInsert": "Opponent {{name}}",
      "tournamentInsert": "Tournament {{name}}",
      "matchInsert": "Save match",
      "matchUpdate": "Update match",
      "matchDelete": "Delete match",
      "matchFields": "Update match fields",
      "matchPlanInsert": "Save match plan",
      "matchPlanUpdate": "Update match plan",
      "matchPlanDelete": "Delete match plan",
      "matchReflectionUpsert": "Save match reflection",
      "reflectionInsert": "Save reflection",
      "reflectionUpdate": "Update reflection",
      "measurementSessionInsert": "Save measurement session",
      "measurementSessionUpdate": "Update measurement session",
      "measurementSessionDelete": "Delete measurement session",
      "trainingSessionInsert": "Save training",
      "trainingSessionUpdate": "Update training",
      "trainingSessionDelete": "Delete training",
      "trainingSeriesDelete": "Delete training series",
      "trainingSeriesTruncate": "Shorten training series",
      "popIndicatorUpdate": "Update PDP indicator",
      "scoreInsert": "Add score",
      "scoreDelete": "Delete score"
    },
    "swUpdate": {
      "title": "App update available",
      "description": "You have {{count}} unsynced changes. Tap to apply once they are synced.",
      "applyNow": "Update now"
    },
    "help": {
      "title": "Working offline in JudoLytics",
      "intro": "JudoLytics works without internet too. Useful in dōjōs and tournament halls where Wi-Fi is often poor. Below we explain how to recognize when you're offline, what works, and how to manage your data.",
      "statusIcons": {
        "heading": "What do the status icons mean?",
        "online": {
          "title": "Online — everything is saved instantly",
          "body": "No banner shown. Changes go straight to the server."
        },
        "offline": {
          "title": "Offline — your changes wait in a local queue",
          "body": "A yellow banner appears at the top. You can keep entering matches, logging training sessions and adding measurements. Everything is sent automatically when the connection returns."
        },
        "pending": {
          "title": "Unsynced changes",
          "body": "A badge in the header shows how many changes are waiting. Tap it for the list and a manual-sync option."
        },
        "stale": {
          "title": "Changes older than 3-5 days",
          "body": "A red warning appears if you've been offline longer than iOS allows (3 days) or our safety margin (5 days). Sync as soon as possible to prevent data loss."
        }
      },
      "worksOffline": {
        "heading": "What works offline?",
        "items": [
          "Entering matches via the match-wizard (all 5 steps)",
          "Logging and editing training sessions",
          "Adding or deleting measurements",
          "Filling in your recovery check-in",
          "Creating opponents and adding notes",
          "Writing and editing match plans",
          "Updating PDP indicators and saving reflections",
          "Viewing previously synced data (lists, statistics, profile)"
        ],
        "note": "Not offline: payments, club invitations, push-notification settings, and other actions that need direct server communication."
      },
      "faq": {
        "heading": "Frequently asked questions",
        "q1": {
          "question": "How do I know my training has been saved?",
          "answer": "A green toast confirms the change is synced. When offline, you'll see a 'Will be sent as soon as you're back online' toast instead, and the change appears in the pending badge in the header. As soon as the connection returns, JudoLytics syncs automatically and the badge clears."
        },
        "q2": {
          "question": "What happens if I close my phone with pending changes?",
          "answer": "Your changes stay safely in your device's local storage. When you reopen JudoLytics, the app resumes syncing once you have internet. On iOS we recommend not keeping the PWA offline longer than 3 days. Safari may clear the storage by itself."
        },
        "q3": {
          "question": "What if I accidentally swipe away the PWA mid-tournament?",
          "answer": "No worries. Your last match-wizard draft is preserved: when you reopen the wizard, it returns to the step you were on. Previously entered matches that are still pending sync also stay safe."
        },
        "q4": {
          "question": "My coach can't see my changes. Now what?",
          "answer": "Check the pending badge in your header. If there's a number, your changes are still waiting. Tap the lightning icon to sync manually. If that doesn't work, verify you're really online (banner gone?) and try logging out and in again."
        },
        "q5": {
          "question": "How much space does JudoLytics use on my device?",
          "answer": "The PWA caches around 7-10 MB for the app itself, plus your own data. iOS limits PWAs to 50 MB. JudoLytics warns automatically when storage is nearly full and clears older cache."
        },
        "q6": {
          "question": "A page stays empty or keeps loading while I'm offline. Why?",
          "answer": "Offline we can only show pages you've opened online before. On a fresh install or a page you've never visited without a network, it stays empty until the connection returns. Tip: before a tournament or training, briefly open every page you'll need (matches, measurements, opponents). They'll then stay available in the hall."
        }
      },
      "clearData": {
        "heading": "Clear local data",
        "body": "Handing over your device or want a fresh start? Clear your local offline cache. We'll warn you about any unsynced changes before they disappear.",
        "cta": "Open privacy settings"
      }
    },
    "stale": {
      "title": "Unsynced changes",
      "description": "You have {{count}} changes that are {{oldestAgeDays}} days old. Reconnect to save them, otherwise they may be lost.",
      "syncNow": "Sync now"
    },
    "clearData": {
      "trigger": "Clear locally stored data",
      "title": "Clear local data?",
      "description": "This removes the offline cache and any pages that were available without a connection.",
      "warningPending": "You have {{count}} unsynced changes that will be lost. Sync first if you want to keep them.",
      "confirm": "Clear",
      "cancel": "Cancel",
      "success": "Local data cleared",
      "error": "Could not clear local data. Please try again."
    },
    "fallback": {
      "title": "Nothing stored on this device yet",
      "titleForPage": "No {{page}} stored on this device yet",
      "bodyOffline": "You haven't opened this page online before, so there's nothing to show offline. Connect to the internet to load it. Once loaded, it'll stay available without a network.",
      "bodyOnline": "We're still loading your data. This can take a bit longer on a slow connection.",
      "retry": "Try again",
      "learnMore": "How does offline work?"
    },
    "audit": {
      "loading": "Loading audit log…",
      "heading": "Edits where someone overrode your version",
      "intro": "When someone makes an offline change to a row you'd updated online in the meantime, they can choose to override your version through the conflict resolver. Below are the records this has affected.",
      "rowDescription": "Row {{rowId}}",
      "partOfBatch": "(part of bulk choice)",
      "retentionNotice": "Audit records are kept for 90 days and then automatically deleted.",
      "tables": {
        "matches": "Match",
        "match_plans": "Match plan",
        "opponent_notes": "Opponent note",
        "opponents": "Opponent",
        "measurements": "Measurement",
        "measurement_sessions": "Measurement session",
        "training_sessions": "Training",
        "goal_check_ins": "Reflection",
        "goal_indicators": "PDP indicator",
        "recovery_checkins": "Recovery check"
      }
    },
    "lww": {
      "title": "Change rolled back",
      "description": "Someone else had already updated {{domain}} online. The online version is back in view.",
      "undo": "Keep my version anyway",
      "undoApplied": "Your version has been restored",
      "undoFailed": "Couldn't restore your version. Please try again.",
      "domain": {
        "recovery": "your recovery check-in",
        "measurements": "this measurement",
        "measurementSessions": "this measurement session",
        "opponentNotes": "this opponent note",
        "opponents": "this opponent",
        "matches": "this match",
        "matchPlans": "this match plan",
        "reflections": "this reflection",
        "training": "this training",
        "pop": "this development plan item"
      }
    },
    "conflict": {
      "title": "Change clashes with another update",
      "description_one": "There is {{count}} conflict to review",
      "description_other": "There are {{count}} conflicts to review",
      "description": "There are {{count}} conflicts to review",
      "empty": "All conflicts resolved",
      "queueProgress": "{{current}} of {{total}}",
      "resolve": "Review",
      "serverHeading": "Online version:",
      "localHeading": "Your version:",
      "editedBy": "Edited by {{name}}, {{time}} ago",
      "fields": {
        "local": "My offline change",
        "server": "Current online version"
      },
      "fieldNotes": "note",
      "fieldReflection": "reflection",
      "matchPlanFields": {
        "strategy_notes": "Strategy",
        "strengths_to_exploit": "Strengths",
        "risks_to_avoid": "Risks"
      },
      "reflectionFields": {
        "reflection_good": "What went well?",
        "reflection_improve": "What can be improved?",
        "reflection_actions": "Action items & learnings"
      },
      "merge": {
        "fieldChooser": "Which version for {{field}}?"
      },
      "actions": {
        "keepLocal": "My version",
        "keepLocalHint": "Created {{time}} ago ({{device}})",
        "keepServer": "Online version",
        "keepServerHint": "Edited by {{name}}, {{time}} ago",
        "merge": "Merge",
        "saveMerge": "Save merged version",
        "cancel": "Cancel",
        "someoneElse": "someone else"
      },
      "batch": {
        "heading": "{{count}} conflicts queued",
        "description": "Resolve them all at once or one by one.",
        "keepAllLocal": "Keep all my changes ({{count}})",
        "keepAllServer": "Keep all online versions ({{count}})"
      },
      "resolveFailed": "Saving your choice failed. The item is queued as failed. Please try again later.",
      "batchPartialFail": "{{resolved}} resolved, {{failed}} failed. Failed items remain in the queue.",
      "resolveRetryLater": "Saving your choice didn't go through yet (network issue). The conflict stays in the queue. Try again later.",
      "unknownDomain": "Unknown domain: {{domain}}"
    }
  },
  "voiceInput": {
    "startAriaLabel": "Start voice dictation",
    "stopAriaLabel": "Stop voice dictation",
    "consentTitle": "Use voice dictation?",
    "consentDescription": "Your microphone will be activated and audio is processed by your browser's speech-recognition service (Apple/Google). JudoLytics never sees the raw audio. Continue?",
    "consentAccept": "Enable",
    "consentCancel": "Cancel",
    "interimPrefix": "Listening…",
    "errors": {
      "permissionDenied": "Microphone access denied. Enable it in your browser settings and try again.",
      "noMicrophone": "No microphone detected on this device.",
      "network": "Speech recognition needs an internet connection.",
      "langUnsupported": "Voice dictation isn't available in your language yet.",
      "unsupported": "Your browser doesn't support voice dictation. Try Chrome or Safari.",
      "insecureContext": "Voice dictation only works over a secure connection (HTTPS).",
      "startFailed": "Could not start voice dictation. Please try again.",
      "generic": "Voice dictation stopped unexpectedly."
    }
  },
  "errorBoundary": {
    "networkTitle": "Network issue",
    "networkDescription": "There is a problem with the network connection. Check your internet connection and try again.",
    "autoRetried": "Automatically retried: {{count}}/{{max}}",
    "retry": "Try again",
    "updateTitle": "Update available",
    "updateDescription": "A new version of the application is available. Reload the page to use the latest version.",
    "reloadPage": "Reload page",
    "generalTitle": "Something went wrong",
    "generalDescription": "An unexpected error occurred. Try reloading the page or contact support if the problem persists.",
    "goToDashboard": "Go to dashboard",
    "showDetails": "Show technical details"
  },
  "videoPlayer": {
    "ijfLocked": "IJF video (subscription required)",
    "externalVideo": "External video",
    "open": "Open"
  },
  "badges": {
    "title": "Badges",
    "newBadgeEarned": "New badge earned!",
    "newBadgeEarned_one": "New badge earned!",
    "newBadgeEarned_other": "{{count}} new badges earned!",
    "names": {
      "first_match": "First match",
      "profile_complete": "Profile complete",
      "first_club_join": "Club member",
      "match_10": "10 matches",
      "match_50": "50 matches",
      "match_100": "100 matches",
      "match_250": "250 matches",
      "streak_7": "7-day streak",
      "streak_30": "30-day streak",
      "streak_100": "100-day streak",
      "recovery_streak_7": "Recovery streak: 7 days",
      "recovery_streak_14": "Recovery streak: 14 days",
      "recovery_streak_30": "Recovery streak: 30 days",
      "recovery_streak_60": "Recovery streak: 60 days",
      "recovery_streak_100": "Recovery streak: 100 days",
      "technique_variety": "Technique master",
      "opponent_variety": "Versatile judoka",
      "first_reflection": "First reflection",
      "reflection_10": "Self-aware",
      "team_player": "Team player",
      "mentor": "Mentor",
      "growing_club": "Growing club",
      "thriving_club": "Thriving club",
      "powerhouse": "Powerhouse",
      "recruiter": "Recruiter",
      "ambassador": "Ambassador"
    },
    "descriptions": {
      "first_match": "Registered your first match",
      "profile_complete": "Your profile is fully filled in",
      "first_club_join": "Joined your first club",
      "match_10": "Registered 10 matches",
      "match_50": "Registered 50 matches",
      "match_100": "Registered 100 matches",
      "match_250": "Registered 250 matches",
      "streak_7": "Logged 7 days in a row",
      "streak_30": "Logged 30 days in a row",
      "streak_100": "Logged 100 days in a row",
      "recovery_streak_7": "Checked in 7 days in a row",
      "recovery_streak_14": "Checked in 14 days in a row",
      "recovery_streak_30": "Checked in 30 days in a row",
      "recovery_streak_60": "Checked in 60 days in a row",
      "recovery_streak_100": "Checked in 100 days in a row",
      "technique_variety": "Used 10 different throws",
      "opponent_variety": "Fought 20 different opponents",
      "first_reflection": "Wrote your first reflection",
      "reflection_10": "Wrote 10 reflections",
      "team_player": "Actively contributed to your club",
      "mentor": "Shared data with your team",
      "growing_club": "Club has 10+ members",
      "thriving_club": "Club has 25+ members",
      "powerhouse": "Club has 50+ members",
      "recruiter": "5 successful referrals",
      "ambassador": "10 successful referrals"
    },
    "categories": {
      "onboarding": "Onboarding",
      "activity": "Activity",
      "streak": "Streaks",
      "diversity": "Diversity",
      "reflection": "Reflection",
      "community": "Community",
      "club": "Club",
      "referral": "Referral"
    },
    "progressLabel": "{{earned}} of {{total}} badges earned",
    "categoryProgressLabel": "Badge progress: {{current}} of {{target}}"
  },
  "streaks": {
    "title": "Streaks",
    "types": {
      "match_logging": "Match logging",
      "training_logging": "Training logging",
      "reflection": "Writing reflections",
      "recovery_checkin": "Recovery check-in"
    },
    "days": "days",
    "best": "Best: {{count}} days"
  },
  "gamification": {
    "dashboardTitle": "Achievements",
    "recentBadges": "Recent badges",
    "almostEarned": "Almost earned",
    "viewAll": "View all badges",
    "freshSealLabel": "NEW",
    "freshSealSublabel": "BADGE",
    "overallProgressLabel": "Overall badge progress: {{pct}}%",
    "badgeProgressLabel": "Progress toward {{name}} badge"
  },
  "edgeErrors": {
    "RATE_LIMIT": "Too many requests. Please try again later.",
    "AUTH_FAILED": "Authentication failed. Sign in again and try once more.",
    "NOT_AUTHORIZED": "You don't have permission for this action.",
    "INTERNAL_ERROR": "An internal error occurred. Please try again later.",
    "ALREADY_SUBSCRIBED": "You already have an active subscription. Use the customer portal to change your plan.",
    "INVALID_PRICE": "Invalid price. Please contact support.",
    "NO_SUBSCRIPTION": "You don't have a subscription yet. Start a subscription from the pricing page.",
    "NO_SCHEDULED_CHANGE": "There is no scheduled change to cancel.",
    "CANCEL_SCHEDULE_FAILED": "Failed to cancel the scheduled change. Please try again.",
    "TRIAL_ALREADY_USED": "You have already used your trial period.",
    "EMAIL_NOT_VERIFIED": "Please verify your email address before starting a trial.",
    "EMAIL_ALREADY_VERIFIED": "Your email address is already verified.",
    "VERIFICATION_TOKEN_INVALID": "This verification link is invalid or expired.",
    "TRIAL_START_FAILED": "Could not start trial. Please try again.",
    "SUBSCRIPTION_UPDATE_FAILED": "Failed to update subscription.",
    "SYNC_FAILED": "Synchronization failed. Please try again.",
    "UNKNOWN_STRIPE_PRODUCT": "Unknown Stripe product.",
    "NO_STRIPE_PRODUCTS": "Stripe subscription has no products.",
    "FETCH_SUBSCRIPTION_FAILED": "Failed to fetch subscription.",
    "CAPTCHA_REQUIRED": "CAPTCHA verification required. Refresh the page and try again.",
    "CAPTCHA_FAILED": "CAPTCHA verification failed. Please try again.",
    "EMAIL_ALREADY_REGISTERED": "This email address is already registered.",
    "REGISTRATION_FAILED": "Registration failed. Please try again.",
    "PROFILE_CREATION_FAILED": "Registration failed: profile could not be created.",
    "USER_CREATION_FAILED": "Failed to create user. Check the details and try again.",
    "CANNOT_INVITE_SELF": "You cannot invite yourself.",
    "NO_INVITE_PERMISSION": "You don't have permission to invite members to this club.",
    "CLUB_NOT_FOUND": "Club not found.",
    "ALREADY_CLUB_MEMBER": "This person already has an account and is already a member of this club.",
    "ALREADY_HAS_ACCOUNT": "This person already has a JudoLytics account.",
    "INVITATION_CREATE_FAILED": "Could not create invitation.",
    "INVITATION_NOT_FOUND": "Invitation not found.",
    "INVITATION_NOT_FOR_YOU": "This invitation is not for your account.",
    "MAX_INVITATIONS_TODAY": "You've reached the maximum number of invitations for today. Try again tomorrow.",
    "PROFILE_UPDATE_FAILED": "Failed to update profile.",
    "EMAIL_UPDATE_FAILED": "Failed to update email.",
    "PASSWORD_UPDATE_FAILED": "Failed to update password.",
    "ROLE_UPDATE_FAILED": "Failed to update role.",
    "USER_DELETE_FAILED": "Failed to delete user.",
    "SUBSCRIPTION_SETTING_FAILED": "Failed to update subscription.",
    "FREE_ACCOUNT_FAILED": "Failed to set up free account.",
    "MAX_CLUBS_REACHED": "You are already a member of the maximum number of clubs for your subscription. Upgrade your plan or leave a club first.",
    "MEMBERSHIP_ACTIVATION_FAILED": "Could not activate membership.",
    "MEMBERSHIP_CREATION_FAILED": "Could not create membership.",
    "INVITATION_UPDATE_FAILED": "Could not update invitation.",
    "INVALID_OR_EXPIRED_LINK": "Invalid or expired link.",
    "PREFERENCES_SAVE_FAILED": "Could not save preferences.",
    "PREFERENCES_FETCH_FAILED": "Could not retrieve preferences.",
    "MISSING_REQUIRED_FIELDS": "Please fill in all required fields."
  },
  "reactivation": {
    "banner": "Your account will be deleted in {{days}} days. Reactivate your account to prevent this.",
    "banner_0": "Your account will be deleted today. Reactivate your account to prevent this.",
    "reactivate": "Reactivate",
    "reactivating": "Reactivating...",
    "success": "Your account has been successfully reactivated!",
    "error": "Reactivation failed. Please try again."
  },
  "tosReconsent": {
    "title": "Our terms have been updated",
    "description": "Please review the updated",
    "tosLink": "Terms of Service",
    "and": "and",
    "privacyLink": "Privacy Policy",
    "accept": "I agree",
    "accepting": "Processing...",
    "accepted": "Thank you! You have accepted the updated terms.",
    "error": "Could not accept terms. Please try again."
  },
  "pushPrimer": {
    "title": "Stay in the loop",
    "description": "Get notifications so you never miss a thing in your judo progress.",
    "benefitReminders": "Reminders to enter your matches after a tournament",
    "benefitLoad": "Alerts when your training load gets too high",
    "benefitMotivation": "Motivation when you hit new personal records and streaks",
    "enable": "Enable notifications",
    "notNow": "Not now",
    "contextual": {
      "settings": {
        "title": "Check-in reminders work via push",
        "description": "Turn on push notifications to get a nudge for your check-in every morning, even when the app is closed."
      },
      "tournament": {
        "title": "Reminder after your tournament?",
        "description": "Get a notification the day after the tournament to enter your matches while they're still fresh."
      },
      "training": {
        "title": "Want to track how training went?",
        "description": "Get a short notification after each planned training to log how it went."
      },
      "club": {
        "title": "Stay up to date with your club",
        "description": "Get a notification when your request is approved and when your coach gives feedback."
      },
      "standalone": {
        "title": "Complete your app",
        "description": "Turn on notifications so reminders and coach feedback reach you right on this device."
      }
    }
  },
  "pushBanner": {
    "title": "Don't miss a reminder",
    "description": "Enable notifications to receive reminders and updates.",
    "benefitMatches": "Match reminders",
    "benefitLoad": "Training reminders",
    "enable": "Enable",
    "later": "Later"
  },
  "progress": {
    "percentage": "{{value}}% progress"
  },
  "pwaInstall": {
    "bannerTitle": "Install JudoLytics on your device",
    "bannerDescription": "Add JudoLytics to your home screen for the best experience.",
    "benefitFast": "Faster loading",
    "benefitNotifications": "Push notifications",
    "benefitOffline": "Works offline",
    "benefitHomeScreen": "Its own app icon",
    "installButton": "Install",
    "later": "Later",
    "iosTitle": "Install JudoLytics",
    "iosDescription": "Add JudoLytics to your home screen in three simple steps. It will work just like a native app.",
    "iosStep1Title": "Tap the Share icon",
    "iosStep1Desc": "The square icon with an upward arrow at the bottom of your screen.",
    "iosStep2Title": "Choose 'Add to Home Screen'",
    "iosStep2Desc": "Scroll down in the share menu and tap 'Add to Home Screen'.",
    "iosStep3Title": "Confirm with 'Add'",
    "iosStep3Desc": "Tap 'Add' in the top right corner. JudoLytics will now appear on your home screen.",
    "iosShareLabel": "Share",
    "iosAddLabel": "Add to Home Screen",
    "iosDoneHint": "After installation, JudoLytics opens as a full app with push notifications and offline access.",
    "openInAppTitle": "JudoLytics app is installed",
    "openInAppDescription": "Open the app for the best experience with push notifications and offline access.",
    "openApp": "Open app"
  },
  "table": {
    "sortBy": "Sort by {{column}}",
    "sortedAscending": "Sorted ascending",
    "sortedDescending": "Sorted descending",
    "notSorted": "Not sorted"
  },
  "optionalFields": {
    "show_one": "+ {{count}} field",
    "show_other": "+ {{count}} fields",
    "hide": "Show less",
    "seenInlineToast": "Want to see this field more often?",
    "seenInlineAction": "Always show"
  },
  "forms": {
    "draftRestored": {
      "text": "Unsaved draft restored.",
      "discard": "Clear"
    }
  },
  "sharing": {
    "title": "Who can see this?",
    "change": "change",
    "changeAria": "Change who can see this",
    "shareWithClubs": "Share with clubs",
    "privateOnlyHint": "Only visible to you",
    "saveAsDefault": "Make this my default",
    "updateDefault": "Update default",
    "saveAsDefaultHint": "Use this scope by default for new entries",
    "saveDefaultSuccess": "Default sharing saved",
    "saveDefaultError": "Couldn't save sharing default",
    "applyChange": "Apply",
    "defaultScopeHint": "This is your default for this type of entry. Changing it applies to all of them.",
    "advancedPerClub": "Set per club",
    "clearDefault": "Reset to ask each time",
    "clearDefaultSuccess": "Sharing default cleared",
    "overrideLabel": "adjusted",
    "overrideTooltip": "Different from your default",
    "scopes": {
      "private": {
        "label": "Only me",
        "description": "Visible only to you. Coaches and clubmates won't see this."
      },
      "coaches": {
        "label": "Coaches",
        "description": "Coaches of your selected clubs can see this. Clubmates cannot."
      },
      "club": {
        "label": "Club",
        "description": "Coaches and clubmates of your selected clubs can see this."
      }
    },
    "summary": {
      "private": "Only visible to you",
      "coachesWith": "Shared with coaches at {{clubs}}",
      "clubWith": "Shared with {{clubs}}",
      "popCoaches": "Visible to your coaches",
      "popClubMembers": "Visible to coaches and clubmates",
      "noClubs": "no clubs selected",
      "clubsCount": "{{first}} +{{count}} more"
    },
    "pop": {
      "visibleToCoaches": "Coaches",
      "visibleToCoachesHint": "Your coaches can read your goals and feedback.",
      "visibleToMembers": "Clubmates",
      "visibleToMembersHint": "Other club members can see your goals."
    },
    "measurements": {
      "all": "All clubs",
      "none": "Only me",
      "allHint": "New measurements are shared with all your active clubs.",
      "noneHint": "New measurements stay private. Your coaches won't see them.",
      "selectedHint": "New measurements are only shared with the clubs you pick below."
    },
    "settings": {
      "title": "Sharing defaults",
      "description": "Set once how you'd like to share new entries. You can still change it per item.",
      "domains": {
        "matches": "Match plans",
        "opponents": "Opponent notes",
        "pop": "Development plan (PDP)",
        "measurements": "Measurements"
      },
      "noClubs": "Join or create a club to share entries with coaches and clubmates.",
      "notSetYet": "Not set yet. Uses the standard default.",
      "resetButton": "Reset to ask each time",
      "trackedSummary": "Currently: {{summary}}"
    },
    "visibilityPrefix": "Visibility",
    "variesPerClub": "Differs per club"
  },
  "subscription": {
    "source": {
      "personal": "Personal",
      "club": "Via {{clubName}}",
      "adminGrant": "Granted",
      "none": "—"
    },
    "lifecycle": {
      "active": "Active",
      "trial": "Trial",
      "pastDue": "Past due",
      "canceledActive": "Cancels on {{date}}",
      "expired": "Expired",
      "none": "Inactive"
    },
    "trial": {
      "daysLeft": "{{count}}d",
      "hoursLeft": "{{count}}h",
      "hoursLeftLastHour": "<1h"
    },
    "paymentMode": {
      "stripe": "Stripe",
      "manual": "Manual"
    }
  },
  "wizard": {
    "progressAriaLabel": "Wizard progress"
  },
  "a11y": {
    "refresh": "Refresh",
    "close": "Close",
    "toggleSidebar": "Toggle sidebar",
    "breadcrumb": "Breadcrumb"
  },
  "brand": {
    "logoAltText": "JudoLytics home"
  }
}
