{
  "paginatitel_index": "VeloGrit — your training data, turned into a plan",
  "merk_tagline": "Your training data, turned into a plan",
  "aanmelden_kop": "Take a look around",
  "aanmelden_uitleg": "Enter your email address and we'll send you a link to get started. No password to remember. Already have an account? This signs you in.",
  "aanmelden_label": "Email address",
  "aanmelden_plaatshouder": "you@example.com",
  "aanmelden_knop": "Send me a link",
  "aanmelden_bezig": "Working…",
  "aanmelden_akkoord": "I agree to the processing of my data, including my training data, as described in the <a href=\"/privacy-en.html\" target=\"_blank\" rel=\"noopener\">privacy statement</a>.",
  "aanmelden_akkoord_nodig": "You need to agree to the privacy statement to continue.",
  "aanmelden_ongeldig": "Please enter a valid email address.",
  "aanmelden_mislukt": "Something went wrong. Please try again in a moment.",
  "verstuurd_kop": "Check your inbox",
  "verstuurd_uitleg": "We've sent a link to {email}. It's valid for 15 minutes and works once.",
  "verstuurd_spam": "Nothing yet? Check your spam folder, or",
  "verstuurd_ander": "try a different address",
  "sessie_verlopen": "Your session had expired. Request a new sign-in link below.",
  "voet_over": "About VeloGrit",
  "voet_privacy": "Privacy statement",
  "voet_voorwaarden": "Terms",
  "tab_vandaag": "Today",
  "tab_week": "Week",
  "tab_coach": "Coach",
  "tab_voortgang": "Progress",
  "tab_plan": "Goals",
  "tab_kast": "PRs",
  "kop_ftp": "FTP",
  "kop_gewicht": "Weight",
  "kop_kast": "Case",
  "kop_race": "Next race",
  "readiness": "Readiness",
  "checkin_kop": "How do you feel today?",
  "checkin_eyebrow": "Daily check-in",
  "knop_checkin": "Save check-in",
  "knop_duiding": "What does this mean?",
  "knop_evalueer": "Review last session",
  "coach_kop": "Coach",
  "knop_gesprekken": "Conversations",
  "knop_nieuwgesprek": "+ New conversation",
  "knop_stuur": "Send",
  "chat_plaatshouder": "Ask about your training, form or next race…",
  "week_eyebrow": "Week plan",
  "besch_eyebrow": "Availability",
  "besch_kop": "How much time do you have?",
  "knop_herplan": "Let the coach replan",
  "strategie": "Planning strategy",
  "shift_eyebrow": "Changes this week",
  "shift_kop": "What VeloGrit moved",
  "vg_bscore_kop": "Where you're heading",
  "vg_vorm_kop": "Form curve",
  "vg_curve_kop": "Best power by duration",
  "vg_profiel_kop": "Where is your strength?",
  "vg_checkins_kop": "Recent check-ins",
  "plan_import_kop": "Import races from a link",
  "knop_import": "Load races",
  "knop_resetraces": "Clear calendar",
  "zones_kop": "Your zones",
  "kast_kop": "Trophy case",
  "knop_sync": "Sync with intervals.icu",
  "knop_handmatig": "Add manually",
  "kast_mijlpalen": "Milestones · last 2 years",
  "proef_knop": "Start free trial",
  "vraag_sleep": "Sleep quality",
  "hint_sleep": "How rested did you wake up?",
  "vraag_energy": "Energy",
  "hint_energy": "Overall energy right now",
  "vraag_legs": "Legs",
  "hint_legs": "Heavy or springy?",
  "vraag_motiv": "Motivation",
  "hint_motiv": "Keen to train?",
  "vraag_stress": "Stress",
  "hint_stress": "5 = relaxed, 1 = burnt out",
  "kop_stap": "One more step",
  "kop_koppel": "Connect intervals.icu",
  "koppel_uitleg": "VeloGrit reads your training data from intervals.icu, which already pulls your rides from Strava, Garmin or Wahoo. No subscription needed.",
  "koppel_sleutel": "Personal API key",
  "koppel_athlete": "Athlete ID (optional)",
  "koppel_knop": "Connect",
  "koppel_waar": "Where do I find that key?",
  "uitloggen": "Sign out",
  "abo_tag": "Final step",
  "abo_kop": "Try VeloGrit for five days",
  "abo_uitleg": "You're connected. Start your trial and the coach begins working with you right away — nothing to pay while the trial runs.",
  "abo_permaand": "per month",
  "abo_btw": "incl. VAT<br>cancel any time",
  "abo_punt1": "Five days free. Cancel within that period and you pay nothing.",
  "abo_punt2": "After that €2.95 a month, one month at a time. Cancel any time from your settings.",
  "abo_punt3": "Your schedule, coach conversations and trophy case stay yours; export them whenever you like.",
  "abo_knop": "Start free trial",
  "abo_rondkijk": "Look around first, no payment details",
  "abo_punt4": "Pay with <strong>Wero or iDEAL</strong> or by card, through Stripe. VeloGrit never sees your bank or card details.",
  "abo_punt5": "<strong>5% of your first payment period goes to intervals.icu</strong>, the service your training data comes from. Without them there'd be no VeloGrit.",
  "abo_akkoord": "I agree to the <a href=\"/terms-en.html\" target=\"_blank\" rel=\"noopener\">terms and conditions</a> and the <a href=\"/privacy-en.html\" target=\"_blank\" rel=\"noopener\">privacy statement</a>.",
  "abo_herroep": "I want VeloGrit to start immediately and understand that my fourteen-day right of withdrawal ends once the service has been fully delivered.",
  "over_titel": "Welcome to VeloGrit",
  "over_p1": "VeloGrit grew out of two of my biggest passions: cycling and data. My main goal was — and still is — simple: stay fit, but do it intelligently and efficiently.",
  "over_p2": "As a keen cyclist I've worked my way through countless paid apps. One was great for analysis, another for workout plans, a third for course insights. But none of them did exactly what I was after, without the clutter. So I set out to take the best parts of those tools and bring them together in one clear platform — with only the features that genuinely matter.",
  "over_p3": "VeloGrit looks further than a distant goal or an event six months out. What matters is the specific road towards it. You can load a particular course or prepare for one Zwift race, so your training always lines up with this week's challenge.",
  "over_p4": "I hope you get as much enjoyment and motivation out of VeloGrit as I do.",
  "over_giving": "Giving back",
  "over_p5": "To support the cycling community and to thank intervals.icu for their outstanding platform, <strong>5% of your first payment period</strong> goes straight to them as a donation. That way we build better tools for everyone.",
  "over_slot": "Enjoy your training, and good luck out there.",
  "over_knop1": "Get started",
  "over_knop2": "Send me a message",
  "over_home": "Home",
  "fout_verlopen": "That link has expired or was already used. Request a new one below.",
  "fout_geen_token": "Something was missing from that link. Request a new one below.",
  "fout_geblokkeerd": "This account has been blocked. Please get in touch at {support}.",
  "sess_t1": "ZRL: ",
  "sess_t2": "Replacement session: threshold",
  "sess_t3": "Replacement Zwift race",
  "sess_t4": "Replacement session: VO2max",
  "sess_t5": "Recovery week",
  "sess_t6": "Openers",
  "sess_t7": "VO2max 5×3 min",
  "sess_t8": "VO2max 4×3 min",
  "sess_t9": "Anaerobic 6×2 min",
  "sess_t10": "Sweet spot 3×10 min",
  "sess_t11": "Threshold 4×8 min",
  "sess_t12": "Threshold 2×12 min",
  "sess_t13": "Sweet spot 3×15 min",
  "sess_t14": "VO2max 4×4 min",
  "sess_t15": "Surges + sprint 5×90s",
  "sess_t16": "Sprints 8×45s",
  "sess_t17": "Attack on tired legs",
  "sess_t18": "Climb simulation",
  "sess_t19": "Endurance ride 2.5 hours",
  "sess_t20": "Endurance ride 3 hours",
  "sess_t21": "Endurance ride 2 hours",
  "sess_t22": "Endurance ride 1.5–2 hours",
  "sess_t23": "Endurance ride 2 hours + sprints",
  "sess_t24": "Endurance ride 2 hours — steady",
  "sess_t25": "Easy spin",
  "sess_t26": "Easy spin 45 min",
  "sess_d1": "You're not racing this week. Instead: a solid threshold block with a similar load.",
  "sess_d2": "Find a public Zwift race of similar length and profile. Racing remains the best stimulus.",
  "sess_d3": "No race this week — so we build top-end. Five hard efforts.",
  "sess_d4": "No race, no replacement. Use this week to shed fatigue.",
  "sess_d5": "Easy ride to wake the legs for tomorrow's race.",
  "sess_d6": "Five three-minute efforts at VO2max power. Builds top-end for the short climbs.",
  "sess_d7": "Shortened — you're building freshness towards the first race.",
  "sess_d8": "KOM simulation: short, hard efforts above VO2max — exactly the power you need on Montmartre and Leg Snapper.",
  "sess_d9": "Three blocks just under threshold. The engine beneath your race power.",
  "sess_d10": "Four eight-minute blocks at threshold power.",
  "sess_d11": "Calmer than the weeks before. Hold the quality, shed the fatigue.",
  "sess_d12": "A TTT asks for sustained, even power — not spikes. Practise exactly that.",
  "sess_d13": "Longer than an average KOM effort — builds headroom above what the race demands.",
  "sess_d14": "Repeated hard efforts with a sprint at the end. Simulates Innsbruckring: the Leg Snapper every lap, then the finish.",
  "sess_d15": "Short explosive efforts for Makuri's flat sprint segments.",
  "sess_d16": "A VO2 block straight into a sprint — exactly what happens when someone attacks on the Brooklyn Bridge KOM.",
  "sess_d17": "Long blocks for the Volcano KOM, short ones for Jarvis. The hilliest race asks for both.",
  "sess_d18": "Easy aerobic riding outdoors. Road or MTB — as long as the pace stays low.",
  "sess_d19": "Longest ride of the block. Work in a few short climbs at tempo.",
  "sess_d20": "Aerobic maintenance ride between races.",
  "sess_d21": "Easy and shortened. Freshness now beats volume.",
  "sess_d22": "Aerobic base with sprints mixed in to stay sharp.",
  "sess_d23": "Practise holding one steady pace. Direct preparation for the team time trial.",
  "sess_d24": "Active recovery. Low power, high cadence, no ambition.",
  "sess_d25": "Move some blood around, nothing more.",
  "band_none": "Not checked in yet",
  "band_green": "Green — full plan",
  "band_amber": "Amber — ease off the intensity",
  "band_red": "Red — recover",
  "bs_beginner": "Beginner / rebuilding",
  "bs_recreatief": "Recreationally trained",
  "bs_getraind": "Trained to very strong",
  "bs_elite": "Elite amateur",
  "bs_prof": "Professional level",
  "tik_opbouw": "tap for breakdown",
  "geen_data": "no data yet",
  "via_icu": "via intervals.icu",
  "vrije_dag": "Day off",
  "rustdag": "Rest day",
  "rust": "Rest",
  "gereden": "ridden",
  "buiten_schema": "outside plan",
  "niet_beschikbaar": "Unavailable",
  "volbracht": "✓ completed",
  "gereden_tag": "✓ ridden",
  "race_volbracht": "Race completed",
  "sessie_volbracht": "Session completed",
  "uitvoering": "execution",
  "welkom_coach": "Hi {naam}. I'm VeloGrit, your coach.\n\n- **Adaptive plan** — mark a day unavailable and I'll redistribute your sessions\n- **Readiness** — your HRV, sleep and resting heart rate plus your own check-in decide whether today's session goes ahead, gets easier, or is dropped\n- **Workouts** — push a session straight to Zwift, Garmin and Wahoo via intervals.icu\n- **Review** — updated as soon as a new ride comes in\n- **Trophy case** — your power records and milestones on one shelf\n- **Conversations** — hit ‘Conversations’ above the chat to read back earlier sessions\n- **Change your plan** — just ask me here (\"make Thursday a rest day\") and I'll do it\n\nStart with a check-in on the Today tab, or ask me something straight away. I have standards, so come prepared.",
  "f_stappen_mislukt": "Every step failed — check your connections via the gear icon → Test connection",
  "f_min_een_vraag": "Answer at least one question first",
  "f_bestand_klaar": "File downloaded — the session is now in your intervals.icu calendar too",
  "f_bijgewerkt": "Updated",
  "f_budget_laden": "Budget not loaded yet",
  "f_geen_bestand": "This session has no fixed workout file — it's a race or a free ride.",
  "f_gesprek_weg": "Conversation not found",
  "f_abo_beheer_fout": "Couldn't open subscription management",
  "f_lokaal": "Note: saved locally only — the server is unreachable",
  "f_kalender_terug": "Calendar cleared",
  "f_sync_leeg": "Sync ran, but found nothing",
  "f_kast_toegevoegd": "Added to your trophy case",
  "f_url_leeg": "Enter a URL first",
  "f_download_fout": "Download failed: ",
  "f_versturen_fout": "Sending failed: ",
  "inst_kop": "Settings",
  "inst_abo": "Subscription",
  "inst_abo_beheer": "Manage subscription",
  "inst_foto": "Profile photo",
  "inst_foto_wis": "Remove photo",
  "sluiten": "Close",
  "inst_wis": "Delete all my data",
  "inst_test": "Test connection",
  "inst_wis_uitleg": "Are you sure? This erases everything you've entered or loaded into your VeloGrit.",
  "inst_wis_bevestig": "Yes, delete everything permanently",
  "inst_wis_klaar": "Everything has been deleted. Signing you out.",
  "inst_wis_fout": "Deletion failed: ",
  "test_ingelogd": "Signed in",
  "test_gekoppeld": "intervals.icu connected",
  "test_coach": "Coach key present",
  "test_data": "Fetching training data",
  "test_ontbreekt": "missing",
  "abo_status_fout": "Couldn't load status.",
  "inst_backup": "Request my data",
  "err_backend": "The backend isn't responding. Check in settings whether the server is reachable.",
  "err_geen_antwoord": "Couldn't get a reply: ",
  "err_data": "I couldn't fetch your data. Check whether your intervals.icu connection still works, via the gear icon top right.",
  "err_leeg_antwoord": "I didn't get a usable answer back.",
  "err_getal": "Enter a number greater than zero.",
  "err_watt": "That doesn't look like a realistic wattage.",
  "err_geen_beeld": "That is not an image.",
  "err_foto_groot": "That photo is too large (max 12 MB).",
  "err_lezen": "Couldn't read the file.",
  "err_beeld_open": "Couldn't open the image.",
  "err_foto_blijft": "The photo is still too large after resizing.",
  "err_opslaan": "Saving failed.",
  "ok_foto": "Photo saved.",
  "ok_foto_weg": "Photo removed.",
  "u_checkin": "Five questions about how you feel. Together with your HRV, sleep and form they decide whether today's session goes ahead, gets easier, or is dropped. The more measured data there is, the more it counts; with nothing connected, only your own read counts.",
  "u_week_ritten": "<strong>VeloGrit picks up your rides automatically.</strong> As soon as an activity lands in intervals.icu it appears here with a tick and counts towards your form, your VeloGrit score and the coach's analysis. Rides that weren't in your plan get the label “outside plan” — they still count, but they don't replace a session.",
  "u_week_dag": "Switch a day off when it doesn't suit you — VeloGrit redistributes your sessions and keeps hard days apart. On the Today tab you can push a session straight to Zwift, Garmin and Wahoo.",
  "u_besch": "The next seven days, starting today. Set how much time you have each day and the coach adjusts your sessions to match.",
  "u_coach": "VeloGrit pulls your activities, HRV, sleep and power data directly.",
  "u_coach_eyebrow": "AI coach · live from intervals.icu",
  "u_bscore": "Your VeloGrit score per week, with a four-week projection based on your planned sessions. The bars show training hours per week, so you can see the volume behind the line.",
  "u_curve": "All-time against your form over the last 42 and 7 days. When the red line sits close to the grey one, you're in shape.",
  "u_profiel": "Your all-time w/kg by duration, against the level of a strong amateur (100%).",
  "u_import": "Paste a Zwift Insider ZRL page or another race calendar. VeloGrit reads distance, elevation, format and difficulty, and loads the races into your plan.",
  "u_races": "Not racing a given week? Swap the race for an alternative session and the week plan adjusts straight away.",
  "u_sync": "Power records come from the all-time power curve at intervals.icu, which works across all your raw data there. Milestones are calculated from your rides over the past two years, so records from before that aren't included. Missing something, or a value that looks wrong? Add it manually — that overrides the calculated value and survives the next sync.",
  "u_kast": "Your power records and milestones on one shelf.",
  "dag_k0": "Mon",
  "dag_k1": "Tue",
  "dag_k2": "Wed",
  "dag_k3": "Thu",
  "dag_k4": "Fri",
  "dag_k5": "Sat",
  "dag_k6": "Sun",
  "dag_l0": "Monday",
  "dag_l1": "Tuesday",
  "dag_l2": "Wednesday",
  "dag_l3": "Thursday",
  "dag_l4": "Friday",
  "dag_l5": "Saturday",
  "dag_l6": "Sunday",
  "mnd0": "Jan",
  "mnd1": "Feb",
  "mnd2": "Mar",
  "mnd3": "Apr",
  "mnd4": "May",
  "mnd5": "Jun",
  "mnd6": "Jul",
  "mnd7": "Aug",
  "mnd8": "Sep",
  "mnd9": "Oct",
  "mnd10": "Nov",
  "mnd11": "Dec",
  "fase1": "Race-specific build · week 1",
  "fase2": "Race-specific build · week 2",
  "fase3": "Taper into race 1",
  "fase4": "Race week 1",
  "fase5": "Race week 2",
  "fase6": "Race week 3",
  "fase7": "Race week 4",
  "fase8": "Race week 5",
  "fase9": "Race week 6",
  "fase10": "Geen doel gepland",
  "quick_q1": "Analyse my latest ride",
  "quick_q2": "How were my intervals?",
  "quick_q3": "Am I recovered enough for today?",
  "quick_q4": "Race strategy for my next race",
  "quick_q5": "Am I on track for my goal?",
  "quick_q6": "Give me an honest read on my week",
  "geen_verschuiving": "No changes. Your plan stands as intended",
  "ondanks_dagen": ", despite {n} unavailable day(s)",
  "icu_7dagen": "intervals.icu · last 7 days",
  "u_radar_voet": "100% equals the level of a strong amateur. Above 100% means you're beyond that.",
  "nieuw_gesprek": "New conversation. What would you like to know?",
  "geen_gesprekken": "No earlier conversations yet.",
  "geen_checkins": "No check-ins yet.",
  "geen_races": "No races loaded.",
  "berichten": "messages",
  "huidig": "current",
  "buiten_blok": "Outside the current training block",
  "sync_laatst": "Last synced: ",
  "sync_nooit": "Not synced yet.",
  "nog_niet_bekend": "not known yet",
  "kast_records": "Records",
  "kast_mijl": "Milestones",
  "duiding": "Interpretation",
  "eval_kop": "Review of last session",
  "knop_stuurnaar": "Send to Zwift, Garmin &amp; Wahoo",
  "knop_fit": "Download file",
  "knop_fit_titel": "Puts the session in intervals.icu first, then downloads it as .fit",
  "knop_stuur_titel": "Send to Zwift, Garmin and Wahoo via intervals.icu",
  "m_voortgang": "Progress score",
  "m_vo2": "Cycling VO2max",
  "over_dagen": "across {n} days",
  "vandaag": "Today",
  "strat_verkort": "Shorten sessions to fit the time — keep them on their own day",
  "strat_verplaats": "Keep the planned duration — move to a day with room instead",
  "wk8": "8 wks back",
  "wk12": "12 wks back",
  "wk20": "20 wks back",
  "vg_conditie": "Fitness & fatigue",
  "zone1": "Recovery",
  "zone2": "Endurance",
  "zone3": "Tempo",
  "zone4": "Threshold",
  "zone5": "VO2max",
  "zone6": "Anaerobic",
  "zone7": "Neuromuscular",
  "kast_vermogen": "Power records · all-time",
  "inst_foto_uitleg": "Resized to 256 px and stored on the server.",
  "inst_abo_uitleg": "Cancelling, changing your payment details and downloading invoices all happen in Stripe's secure customer portal.",
  "abo_st_proef": "Free trial — {n} days left",
  "abo_st_daarna": ", then {prijs} from {datum}",
  "abo_st_actief": "Active",
  "abo_st_incasso": ", next payment {datum}",
  "abo_st_opgezegd": "Cancelled — valid until {datum}",
  "abo_st_eindeperiode": "the end of the period",
  "abo_st_verlopen": "Ended. The coach works again as soon as you subscribe.",
  "abo_st_geen": "Not started yet.",
  "abo_afsluiten": "Start subscription",
  "bscore_naam": "VeloGrit score",
  "vg_bs_eyebrow": "VeloGrit score per week",
  "lg_gerealiseerd": "Achieved",
  "lg_prognose": "Projection",
  "lg_uren": "Training hours per week",
  "lg_gepland": "{u} h planned across {n} weeks ({gem} h/week)",
  "lg_punten": "{n} points if you follow the plan",
  "lg_conditie": "Fitness (CTL)",
  "lg_vermoeid": "Fatigue (ATL)",
  "lg_vorm": "Form (TSB)",
  "lg_dagbelasting": "Daily load",
  "lg_race": "Race",
  "lg_vo2": "VO2 / anaerobic",
  "lg_drempel": "Threshold",
  "lg_duur": "Endurance",
  "lg_herstel": "Recovery / openers",
  "budget_uitleg": "explain",
  "budget_titel": "AI budget",
  "budget_modal_uitleg": "Every question to the coach is answered by a language model, and that costs money per answer. The allowance tracks how much of that you use, so the costs stay manageable. Under normal use you won't run into it.\n\nWhat uses allowance: asking the coach questions, having a ride analysed, having your week replanned, and reading in a race calendar.\n\nWhat doesn't: viewing your plan, adjusting your availability, filling in the check-in, your charts and trophy case, and sending sessions to Zwift, Garmin and Wahoo.\n\nIf you reach a limit, you can't use the coach until the end of that period — the app shows how long that is. Creating and adjusting your sessions keeps working: we always hold a reserve for that, so your plan never stalls.",
  "budget_vandaag": "Today",
  "budget_week": "This week",
  "budget_maand": "This month",
  "knop_vernieuw": "Refresh",
  "sp_dag": "Day",
  "sp_week": "Week",
  "sp_maand": "Month",
  "budget_vol": "Your {periode} allowance is filling up.",
  "dur_p1": "1 second",
  "dur_p5": "5 seconds",
  "dur_p60": "1 minute",
  "dur_p300": "5 minutes",
  "dur_p900": "15 minutes",
  "dur_p1200": "20 minutes",
  "dur_p1800": "30 minutes",
  "dur_p3600": "1 hour",
  "dur_p5400": "90 minutes",
  "mijl_maxspeed": "Top speed",
  "eenh_maxspeed": "km/h",
  "mijl_maxclimb": "Most elevation",
  "eenh_maxclimb": "m",
  "mijl_longest": "Longest ride",
  "eenh_longest": "km",
  "mijl_bigweek": "Biggest week",
  "eenh_bigweek": "km",
  "mijl_maxwkg": "Best w/kg (20 min)",
  "eenh_maxwkg": "w/kg",
  "mijl_maxhr": "Highest heart rate",
  "eenh_maxhr": "bpm",
  "watt": "watts",
  "over_x_dagen": " · in {n} days",
  "vandaag_kort": " · today",
  "th_kop": "Add manually",
  "th_uitleg": "For records that aren't in intervals.icu. They stay put if you sync later.",
  "th_soort": "Type",
  "th_vermogen": "Power record",
  "th_mijlpaal": "Milestone",
  "th_onderdeel": "Item",
  "th_vermogen_watt": "Power (watts)",
  "th_bijv": "e.g. 420",
  "th_datum": "Date (optional)",
  "th_opslaan": "Save",
  "annuleren": "Cancel",
  "th_waarde": "Value",
  "besch_dezeweek": "this week",
  "type_endurance": "Endurance",
  "type_race": "Race",
  "type_vo2": "VO2 / anaerobic",
  "type_threshold": "Threshold",
  "type_recovery": "Recovery",
  "type_openers": "Openers",
  "type_anaerobic": "Anaerobic",
  "dm_kop_plannen": "Plan your own ride",
  "dm_kop_gereden": "Log a completed ride",
  "dm_uitleg_plannen": "this replaces what was planned and is pushed to intervals.icu.",
  "dm_uitleg_gereden": "for a ride that didn't come through automatically.",
  "dm_type": "Type",
  "dm_duur": "Duration in minutes",
  "dm_duur_hint": "e.g. 90",
  "dm_titel": "Name (optional)",
  "dm_titel_hint": "e.g. Loop around the lake",
  "dm_afstand": "Distance in km",
  "dm_optioneel": "optional",
  "dm_zwaarte": "How hard did it feel?",
  "zwaar_licht": "Easy",
  "zwaar_matig": "Moderate",
  "zwaar_zwaar": "Hard",
  "dm_zonder_meter": "No power or heart-rate meter? The coach estimates the load from duration, type and how hard it felt.",
  "dm_plan": "Plan it",
  "dm_noteer": "Log it",
  "dm_rustdag": "Make it a rest day",
  "dm_err_duur": "Enter a duration between 10 and 600 minutes.",
  "dm_gepland": "Planned and sent to intervals.icu",
  "dm_genoteerd": "Ride added",
  "dm_nu_rustdag": "Set as a rest day",
  "dm_coach_denkt": "the coach is looking at the rest of your week…",
  "dm_geen_doel": "no race planned",
  "dm_eigen_desc": "Ride you planned yourself.",
  "dm_coach_gepland": "I've planned {titel} of {min} minutes myself on this day, instead of what was scheduled.",
  "dm_coach_gereden": "I rode {titel}, {min} minutes, and it felt {zwaarte}.",
  "dm_coach_prompt": "Something changed in my week on {datum}: {wat}\\n\\nMy next goal: {doel}.\\n\\nCheck whether the rest of this week and the next still make sense. If the load is now too low to build towards that goal, add to it; if it's too high, take some out. Only change days that genuinely need it and leave the rest alone. Never move the race. Don't put two hard days back to back. Use update_schedule for every change and always fill in the structure field for set_custom. Close with at most four sentences: what you changed and why.",
  "knop_analyse": "Analyse",
  "an_geen_rit": "No ride found on that day",
  "an_handmatig": "{naam}, {min} minutes, felt {zwaarte}. Logged manually, so without power or heart-rate data.",
  "an_automatisch": "{naam} on {datum}: {min} minutes, {km} km, {watt} W average.",
  "an_vraag": "Analyse my ride from {datum}. {rit} Compare it with what was planned that day and tell me what it means for the rest of my week.",
  "hp_doel": "My next goal is {datum} — {naam} ({format}, {km} km, {hm} hm), roughly {weken} weeks away. Build towards that.",
  "hp_geen_doel": "No race is planned. Keep the build general and sustainable.",
  "hp_prompt": "My availability for this week has changed. Adjust my schedule accordingly using update_schedule.\\n\\n{rijen}\\n\\n{doel}\\n\\n{strategie}\\n\\nRules: never move a planned race. Don't put two hard days back to back. Fully respect days with 0 minutes. Leave days that have already been ridden alone — they've happened; do factor them into the load of the days after. If this week's total load is too light to build towards the goal, add to it; if it's too heavy, take some out. Only change days that genuinely need it. Always fill in the structure field for set_custom, otherwise I can't send the session to Zwift. Close with a short summary of what you changed and why, in at most five sentences.",
  "hp_strat_verkort": "Preference: shorten sessions to fit the available time, keep them on their own day. In interval work, drop repeats rather than lowering intensity.",
  "hp_strat_verplaats": "Preference: keep the planned duration and move a session to a day with room. If it fits nowhere, shorten it after all.",
  "knop_rit_plannen": "+ Plan your own ride",
  "knop_rit_vervangen": "Replace",
  "dm_err_opslaan": "The ride couldn't be saved. Check your connection and try again.",
  "dag_aan": "{dag} available again",
  "dag_uit": "{dag} switched off — plan and availability updated",
  "sport_run": "ran",
  "sport_walk": "walked",
  "sport_swim": "swam",
  "sport_ski": "skied",
  "sport_row": "rowed",
  "sport_gym": "strength",
  "sport_overig": "activity",
  "handmatig_tag": "logged manually",
  "ook_gedaan": "also done",
  "kast_vermogen_bron": "full history",
  "kast_mijlpalen_bron": "last 24 months",
  "knop_rit_kort": "+ ride",
  "knop_rit_verwijderen": "Remove",
  "knop_rit_verwijderen_titel": "Take this ride out of your schedule. It stays in intervals.icu.",
  "f_rit_verwijderd": "Ride removed from your schedule.",
  "f_rit_terug": "Ride is back.",
  "knop_ongedaan": "Undo",
  "knop_alles_terug": "Restore all",
  "act_verborgen": "{aantal} ride(s) removed from your schedule.",
  "info_kop": "About this",
  "i_checkin": "Five questions about how you feel. Together with your HRV, sleep and resting heart rate they set your readiness score. Skip it and VeloGrit works from the measurements alone.",
  "i_weekplan": "Your sessions for this week. Use the arrows to move to another week. Click a day to plan something yourself or log a completed ride.\n\nVeloGrit picks up your rides automatically: as soon as an activity lands in intervals.icu it appears here with a tick and counts towards your form, your VeloGrit score and the coach's analysis. Rides that weren't in your plan get the label “outside plan” — they still count, but they don't replace a session.",
  "i_besch": "Set how much time you have each day. This applies to the week you're viewing. When you let the coach replan, it works from this and from your next race.",
  "i_shift": "What the coach moved compared with the default schedule, and why. Empty means your plan stands as intended.",
  "i_bscore": "Your score from 0 to 50, with a four-week projection if you follow the plan. The bars show your training hours per week.",
  "i_load": "Fitness is the form you've built over six weeks, fatigue your load over the past week. The difference is your form: positive means fresh, negative means tired.",
  "i_curve": "Your best power by duration. The grey line is your all-time best, the coloured ones your form over the last 42 and 7 days. Hover over the chart for the numbers.",
  "i_profiel": "Where your strength lies: sprint, short climb, threshold or endurance. 100% is the level of a strong amateur.",
  "i_zones": "Your training zones, calculated from your FTP. Change your FTP and these move with it.",
  "i_readiness": "Your readiness over recent weeks. A downward line across several days says more than one bad day.",
  "i_import": "Pick a competition VeloGrit already knows, plan your own goal from a GPX file or by hand, or load a race calendar from a web page. VeloGrit reads distance, elevation and difficulty, and builds your plan towards it.",
  "i_races": "Your planned races. Not racing a given week? Swap the race for an alternative session.",
  "i_kast": "Power records come from the all-time power curve at intervals.icu, which works across all your raw data there. Milestones are calculated from your rides over the past two years, so records from before that aren't included.\n\nMissing something, or a value that looks wrong? Add it manually — that overrides the calculated value and survives the next sync.",
  "koppel_oauth": "Connect with intervals.icu",
  "koppel_oauth_uitleg": "You'll be sent to intervals.icu, where you choose what VeloGrit is allowed to see.",
  "koppel_of": "or use an API key",
  "koppel_bezig": "Working…",
  "koppelfout_geweigerd": "You declined access at intervals.icu. Without permission VeloGrit can't read your data.",
  "koppelfout_verlopen": "The connection took too long. Please try again.",
  "koppelfout_onvolledig": "intervals.icu sent back an incomplete response. Please try again.",
  "koppelfout_token": "The connection couldn't be completed. Try again or use an API key.",
  "koppelfout_geen_account": "Your account wasn't found. Please sign in again.",
  "koppelfout_onbekend": "Something went wrong while connecting. Please try again.",
  "inst_account": "Account",
  "inst_email_label": "Your sign-in address",
  "inst_email_wijzig": "Change email address",
  "inst_email_uitleg": "This is how you sign in to VeloGrit. It's separate from the address registered at intervals.icu. Changing it keeps all your data intact.",
  "inst_koppeling_oauth": "Connected to intervals.icu by authorisation",
  "inst_koppeling_sleutel": "Connected to intervals.icu with an API key",
  "inst_koppeling_geen": "Not connected to intervals.icu yet",
  "em_kop": "Change email address",
  "em_uitleg": "We'll send a confirmation to your new address. It only switches once you click that link — until then your current address keeps working.",
  "em_nieuw": "New email address",
  "em_plaatshouder": "you@example.com",
  "em_versturen": "Send confirmation",
  "em_verstuurd_knop": "Sent",
  "em_verstuurd": "A confirmation is waiting in your new inbox.",
  "em_ongeldig": "Please enter a valid email address.",
  "emres_gewijzigd": "Your email address has been changed. From now on you sign in with the new address.",
  "emres_verlopen": "That confirmation link has expired. Request a new one from settings.",
  "emres_bezet": "That address is now in use. Please choose another.",
  "emres_onvolledig": "Something was missing from the link. Please try again.",
  "emres_geen_account": "Your account wasn't found.",
  "emres_onbekend": "Something went wrong while changing your email address.",
  "ref_kop": "Use this week as a reference",
  "ref_uitleg": "for the weeks that follow",
  "i_referentie": "With this on, the coach adjusts not only this week but the weeks that follow. The availability you set here becomes the starting point.\n\nLeave it off and every change stays within the week you're currently viewing.",
  "ref_aan": "This week now serves as a reference for the weeks ahead",
  "ref_uit": "The coach only adjusts this week",
  "hp_ref_aan": "This week is the reference. Above you'll also find the two weeks that follow, with their availability and what's currently planned. Adjust those weeks too where needed to build towards the goal: increase the load gradually, keep hard days apart, and fully respect days with 0 minutes. Never move a planned race. Use update_schedule for every change, including in those later weeks.",
  "hp_ref_uit": "Limit your changes to this week only. Leave the following weeks untouched.",
  "hp_week_kop": "The week after that (+{n}):",
  "voet_cookies": "Cookie policy",
  "koppel_beeld_alt": "VeloGrit and intervals.icu exchanging data",
  "rd_verdeling": " — {data}% measured data, {jij}% your own read",
  "rd_alleen_jij": " — based entirely on your own read",
  "rd_geen_checkin": "No check-in today yet. Answer the five questions below — the score combines that with your HRV, sleep and form once they're available.",
  "rd_jouw_inschatting": "Your own read",
  "rd_gemeten": "Measured data",
  "rd_gemeten_uitleg": "HRV, sleep and form against your own average",
  "rd_hrv_uitleg": "your own 14-day average: {basis} ms",
  "rd_slaap": "Sleep",
  "rd_slaap_uitleg": "scale runs from 5 to 8 hours",
  "rd_vorm": "Form (TSB)",
  "rd_vorm_uitleg": "scale runs from -30 to +10",
  "rd_meer_signalen": "Connect a watch or HRV measurement to intervals.icu for a more accurate readiness. The more measured signals there are, the more they count — and the less the score depends on how you happen to feel at that moment.",
  "rd_geen_data": "No measured data was available for this check-in, so the score comes entirely from your own read. Connect a watch or HRV measurement to intervals.icu to add to it.",
  "wellness_geen": "There's no HRV, sleep or resting heart rate data in intervals.icu yet. Connect a watch or HRV measurement there and your readiness becomes more accurate. Until then VeloGrit works from your own check-in.",
  "tip_historie": "Your score is based on limited history. Load more history for an accurate chart.",
  "i_historie": "For an accurate chart VeloGrit needs your older training data — usually at least 90 days. If your chart looks incomplete or your fitness (CTL) seems too low, do the following:\n\n1. Sign in to intervals.icu in a browser.\n2. Go to Settings and find all your connected sources, such as Garmin Connect, Wahoo or Zwift.\n3. For each source click “Download old data” and pick a start date 90 to 180 days back. Wait for intervals.icu to finish importing.\n4. Once your older rides show up in the intervals.icu calendar, come back to VeloGrit and click “Load more history” under Settings.",
  "inst_historie": "Load more history",
  "f_historie_klaar": "History loaded: {dagen} days and {ritten} rides",
  "f_historie_fout": "Loading history failed: ",
  "f_gegevens_verstuurd": "Your data is on its way to {email}",
  "f_gegevens_fout": "Request failed: ",
  "faq_kop": "Frequently asked questions",
  "faq_cat_algemeen": "General",
  "faq_cat_prijzen": "Pricing and subscription",
  "faq_cat_connecties": "Connections",
  "faq_cat_technisch": "Technical",
  "faq_v_a1": "What is VeloGrit?",
  "faq_a_a1": "A cycling coach that reads your training data from intervals.icu and builds a weekly plan from it. That plan adapts to your form, your availability and your next goal.",
  "faq_v_a2": "Who is it for?",
  "faq_a_a2": "For riders who want to train with structure without building their own plan. Road, gravel, mountain bike or Zwift: anything that lands in intervals.icu counts.",
  "faq_v_a3": "Does this replace a real coach?",
  "faq_a_a3": "No. VeloGrit is a tool that turns your data into a plan. A human coach sees things no app can.",
  "faq_v_a4": "Can I try it first?",
  "faq_a_a4": "Five days free. Cancel within that period and you pay nothing. You can also look around first without payment details; only the coach stays locked.",
  "faq_v_a5": "Is this medical advice?",
  "faq_a_a5": "No. Consult a doctor before starting a training programme, especially with existing complaints. If you get chest pain or dizziness while exercising, stop and seek help.",
  "faq_v_p1": "What does VeloGrit cost?",
  "faq_a_p1": "€2.95 per month, or €29.95 per year — that's almost two months free. Both include VAT.",
  "faq_v_p2": "How can I pay?",
  "faq_a_p2": "With Wero, iDEAL or card, through Stripe. VeloGrit never sees your bank or card details.",
  "faq_v_p3": "How do I cancel?",
  "faq_a_p3": "From the settings in the app, with no notice period. You keep access until the end of the period you've already paid for — a month or a year, depending on your plan.",
  "faq_v_p4": "What happens after the trial?",
  "faq_a_p4": "If you don't cancel, your trial becomes a paid subscription and the first payment follows the day after it ends.",
  "faq_v_p5": "Why does money go to intervals.icu?",
  "faq_a_p5": "5% of your first payment period goes to them. Without their platform there'd be no VeloGrit.",
  "faq_v_c1": "Why do I need intervals.icu?",
  "faq_a_c1": "That's the source of all your data. Intervals.icu pulls your rides from Strava, Garmin, Wahoo or Zwift; VeloGrit reads them there.",
  "faq_v_c2": "Do I have to pay for intervals.icu?",
  "faq_a_c2": "No, a free account is enough.",
  "faq_v_c3": "How do I connect my account?",
  "faq_a_c3": "With one button. You approve at intervals.icu what VeloGrit may see, then return to the app.",
  "faq_v_c4": "What exactly can VeloGrit see?",
  "faq_a_c4": "It reads your activities, health data and settings, and writes sessions to your calendar. Only the calendar is a write permission; everything else is read-only.",
  "faq_v_c5": "My ride isn't showing in VeloGrit.",
  "faq_a_c5": "First check whether it's in intervals.icu. Rides coming in via Strava can take a while. If it's there but not in VeloGrit, reopen the app — it refetches your rides every time you open it.",
  "faq_v_t1": "Can I send sessions to Zwift or my Garmin?",
  "faq_a_t1": "Yes. VeloGrit writes them to your intervals.icu calendar, where Zwift, Garmin and Wahoo pick them up automatically if you have those connections enabled there.",
  "faq_v_t2": "I don't have a heart rate strap or sleep watch.",
  "faq_a_t2": "That's fine. VeloGrit then works from your own daily check-in. The more measured signals there are — HRV, sleep, form — the more they count.",
  "faq_v_t3": "What happens to my data?",
  "faq_a_t3": "Your rides, HRV and sleep are fetched live from intervals.icu and not stored. What is stored you can request or delete in one go from the settings.",
  "faq_v_t4": "Does it work on my phone?",
  "faq_a_t4": "Yes. You can add VeloGrit to your home screen and it behaves like an app. No app store download needed.",
  "inst_hulp": "Need help?",
  "inst_hulp_uitleg": "Idea or question? Send a message to",
  "inst_hulp_onderwerp": "Question about VeloGrit",
  "plan_doel_eyebrow": "Your goal",
  "plan_doel_kop": "What are you training for?",
  "plan_zwift": "Zwift competitions",
  "plan_zrl": "ZRL season 26/27 · round 1",
  "plan_dirt": "Dirt Series season 13",
  "plan_eigen": "Something else",
  "plan_eigen_knop": "Plan your own goal",
  "plan_url_kop": "Another race calendar from a link",
  "plan_url_label": "Calendar URL",
  "i_zrl": "VeloGrit loads the ZRL races for you. No need to find a link yourself — one click and the calendar is in your plan, with dates, distances and difficulty.",
  "i_dirt": "VeloGrit loads the full Dirt Series schedule for you: six Tuesday race days, with the prologue and every stage. Dates, distances and the special formats are included.",
  "f_kalender_geladen": "{n} races loaded",
  "f_kalender_lezen": "reading race calendar…",
  "f_kalender_leeg": "No races were found on that page.",
  "f_kalender_naamloos": "Imported calendar",
  "f_kalender_fout": "Couldn't read that calendar. Check that the URL is correct and publicly accessible.",
  "doel_kop": "Plan your own goal",
  "doel_uitleg": "Load a GPX file or fill in the details yourself. VeloGrit builds your plan towards this date.",
  "doel_gpx": "GPX file (optional)",
  "doel_gpx_bezig": "Reading file…",
  "doel_gpx_klaar": "Read: {km} km and {hm} m of climbing",
  "doel_gpx_ongeldig": "That isn't a valid GPX file.",
  "doel_gpx_leeg": "There are no track points in this file.",
  "doel_naam": "Name of your goal",
  "doel_naam_hint": "e.g. Amstel Gold Race sportive",
  "doel_soort": "Type",
  "doel_niveau": "Level or category",
  "doel_datum": "Date",
  "doel_km": "Distance in km",
  "doel_hm": "Elevation in m",
  "doel_opslaan": "Save goal",
  "doel_err_naam": "Enter a name.",
  "doel_err_datum": "Pick a date.",
  "doel_err_verleden": "Pick a date in the future.",
  "doel_err_km": "Enter a distance.",
  "doel_note": "Your own goal: {soort}.",
  "doel_kalender_naam": "My goals",
  "f_doel_opgeslagen": "{naam} added to your plan",
  "doel_s_granfondo": "Gran fondo",
  "doel_s_criterium": "Criterium",
  "doel_s_mtb_xcm": "MTB marathon (XCM)",
  "doel_s_mtb_xco": "MTB olympic (XCO)",
  "doel_s_ultra": "Ultra",
  "doel_s_tijdrit": "Time trial",
  "doel_s_tourversie": "Sportive",
  "doel_s_klassieker": "Classic",
  "doel_s_overig": "Other",
  "niv_crit_1": "Category 1",
  "niv_crit_2": "Category 2",
  "niv_crit_3": "Category 3",
  "niv_mtb_blauw": "Easy (blue)",
  "niv_mtb_rood": "Hard (red)",
  "niv_mtb_zwart": "Very hard (black)",
  "niv_uci_19": "19–34 years",
  "niv_uci_35": "35–39 years",
  "niv_uci_40": "40–44 years",
  "niv_uci_45": "45–49 years",
  "niv_uci_50": "50–54 years",
  "niv_uci_55": "55–59 years",
  "niv_uci_60": "60–64 years",
  "niv_uci_65": "65–69 years",
  "niv_uci_70": "70–74 years",
  "niv_uci_75": "75–79 years",
  "kop_geen_doel": "No goal yet — pick one under Plan & races",
  "cal_eyebrow": "Calendar",
  "cal_leeg": "No calendar chosen yet",
  "doel_s_gravel": "Gravel",
  "doel_s_zwift_race": "Zwift race",
  "niv_elite": "Elite",
  "niv_zw_a": "Category A",
  "niv_zw_b": "Category B",
  "niv_zw_c": "Category C",
  "niv_zw_d": "Category D",
  "niv_zw_e": "Category E",
  "niv_zrs_5": "ZRS 5 — beginner · 0–180 or 0–225 points",
  "niv_zrs_4": "ZRS 4 — 180–350 or 225–400 points",
  "niv_zrs_3": "ZRS 3 — 350–520 or 400–575 points",
  "niv_zrs_2": "ZRS 2 — 520–690 or 575–725 points",
  "niv_zrs_1": "ZRS 1 — 690–1000 or 725–1000 points",
  "vriend_kop": "Tell a friend",
  "vriend_uitleg": "Know someone who'd get something out of this? Share your link: your friend gets 10% off their first month.",
  "vriend_deel": "Share",
  "vriend_whatsapp": "WhatsApp",
  "vriend_mail": "Email",
  "vriend_link": "Your link",
  "vriend_kopieer": "Copy",
  "vriend_gekopieerd": "Copied",
  "vriend_onderwerp": "Something for you: VeloGrit",
  "vriend_bericht": "Train smarter on the bike? VeloGrit analyses all your rides, builds a plan and syncs your workouts automatically 🚀\n\nThrough this link you get 10% off: {link}",
  "vriend_klein": "You share it yourself, from your own email or WhatsApp. VeloGrit never sees your friend's address and sends them nothing.",
  "vriend_blok_kop": "Know someone who'd benefit from this?",
  "vriend_blok_sub": "Share your link: your friend gets 10% off their first month.",
  "uitnodiging_tekst": "<b>You've been invited.</b> After your free five-day trial you get 10% off your first month. Choose the annual plan and you get two months free instead of this discount.",
  "inst_gegevens": "Your data",
  "hist_uitleg": "{n} check-ins over the past {totaal} days. Days without a check-in stay empty.",
  "budget_op_dag": "Your AI allowance for today has run out ({gebruikt} of {limiet} credits).",
  "budget_op_week": "Your AI allowance for this week has run out ({gebruikt} of {limiet} credits).",
  "budget_op_maand": "Your AI allowance for this month has run out, reserve included ({gebruikt} of {limiet} credits).",
  "budget_over": "You'll have allowance again in {tijd}.",
  "tijd_um": "{u} hours and {m} minutes",
  "tijd_m": "{m} minutes",
  "tijd_dag": "1 day and {u} hours",
  "tijd_dagen": "{n} days and {u} hours",
  "budget_reserve": "Your monthly allowance is nearly gone. What's left is reserved for building your sessions.",
  "abo_perjaar": "per year",
  "abo_maand_note": "cancel monthly",
  "abo_jaar_vlag": "2 months free",
  "abo_jaar_note": "€2.50 per month",
  "abo_btw_regel": "Both prices include VAT.",
  "abo_punt2_jaar": "After that €29.95 a year — almost two months free compared with paying monthly. Cancel any time from your settings.",
  "faq_v_p6": "Can I switch from monthly to yearly?",
  "faq_a_p6": "Yes. You arrange that in the customer portal via the settings in the app. Stripe accounts for what you've already paid.",
  "prijs_maand": "€2.95 a month",
  "prijs_jaar": "€29.95 a year",
  "betaald_bezig": "Your payment went through. Waiting for Stripe's confirmation…",
  "betaald_klaar": "Your subscription is active. The coach is ready for you.",
  "betaald_traag": "Your payment went through, but the confirmation hasn't arrived yet. That sometimes takes a minute. Refresh this page shortly; if it persists, let us know.",
  "betaald_ververs": "Check again",
  "proefbalk_geen": "You're looking around. <b>The coach isn't active yet</b> — start your five-day trial to use it. All your other screens work as normal.",
  "proefbalk_verlopen": "Your trial or subscription has ended. <b>The coach is off</b>; your plan, charts and trophy case keep working.",
  "proefbalk_opgezegd": "Your subscription is cancelled and ends soon.",
  "proefbalk_anders": "Start your trial to use the coach.",
  "proefbalk_knop_start": "Start trial",
  "proefbalk_knop_afsluiten": "Start subscription",
  "abo_land": "VeloGrit is currently only for sale within the EU, Norway, Iceland, Liechtenstein, Switzerland and the United Kingdom. If you do live there and still see this — because you're travelling or using a VPN, for instance — please get in touch at support@velogrit.cc.",
  "inst_nieuwsbrief": "Keep me posted about new features through the monthly newsletter.",
  "inst_nieuwsbrief_uitleg": "One message a month about what's been added and changed. You can turn this off again here at any time, and every newsletter has an unsubscribe link.",
  "nb_aan": "You're subscribed to the newsletter",
  "nb_uit": "You've unsubscribed from the newsletter",
  "nb_fout": "Couldn't save your preference. Please try again in a moment.",
  "inst_abo_nognietuitleg": "You don't have a subscription yet. Start one to use the coach; your plan and charts keep working without it.",
  "kpi_conditie": "Fitness",
  "kpi_vermoeidheid": "Fatigue",
  "kpi_vorm": "Form",
  "kpi_vo2max": "VO2max",
  "kpi_map": "MAP",
  "kpi_map_uitleg": "maximal aerobic",
  "kpi_tov28": "vs. 28 days ago",
  "kpi_tov7": "vs. 7 days ago",
  "kpi_uit5min": "estimated from 5 min",
  "kpi_anaeroob": "anaerobic capacity",
  "budget_pct": "{pct}% used",
  "zones_eyebrow": "Power zones",
  "alt_alt_race_l": "Another Zwift race",
  "alt_alt_race_d": "A public race of similar length — racing stays the best stimulus.",
  "alt_alt_vo2_l": "VO2max session",
  "alt_alt_vo2_d": "5×3 min at VO2max power. Builds top-end power.",
  "alt_alt_thr_l": "Threshold session",
  "alt_alt_thr_d": "3×10 min around your threshold. Similar load, easier to control.",
  "alt_alt_rest_l": "Recovery week",
  "alt_alt_rest_d": "No replacement. Clear the fatigue.",
  "race_verv_kop": "Replace race",
  "race_verv_vraag": "What would you like to do that day instead?",
  "race_verv_undo": "Undo replacement",
  "race_verv_undo_d": "Puts the race back in your plan.",
  "race_verv_terug": "Race restored",
  "race_verv_klaar": "Replaced with {wat}",
  "race_verv_door": "Replaced with: {wat}",
  "race_wijzig": "Change",
  "race_vervang": "Replace",
  "besch_krap": "You have {uren} hours available this week. Towards {naam} in {weken} weeks, around {nodig} hours a week is more realistic. With less time the coach can still build your plan, but your base grows more slowly.",
  "kpi_7dagen": "Trend over the past 7 days",
  "kpi_verschil": "From {van} to {tot}",
  "kpi_teweinig": "Not enough data to show a trend.",
  "kpi_eftp": "eFTP 42d",
  "kpi_eftp_uitleg": "recent form",
  "kpi_ftpdoel": "FTP target",
  "kpi_nogte": "{w} W to go for {wkg} w/kg",
  "kpi_doelgehaald": "target reached",
  "kpi_letop": "Note",
  "profiel_eyebrow": "Power profile",
  "zt_zone": "Zone",
  "zt_naam": "Name",
  "zt_watt": "Watts",
  "zt_bereik": "Range",
  "wellness_leeg": "No wellness data found at intervals.icu for this period.",
  "rd_samen": "you {jij} · data {data} — tap for breakdown",
  "rd_alleen_handmatig": "manual only — tap for breakdown",
  "rd_alleen_gemeten": "based on your measured data — tap for breakdown",
  "checkin_nietnodig": "Your measured values are at {score}. If you'd still like to share how you feel, you can always do so.",
  "checkin_toch": "Check in anyway",
  "vrije_dag_uitleg": "You've marked today as unavailable. VeloGrit has spread your sessions across the rest of the week.",
  "rd_aria": "View the readiness score breakdown",
  "vg_opbouw": "consistency {c}% · trend {t}% · block {b}%",
  "i_voortgang": "Average of three things: how many days in a row you check in, whether your readiness is trending up, and how far you are through your training block.",
  "promo_uitleg": "Five days free. Cancel within that period and you pay nothing.\n\n* €2.50 a month applies to the annual plan of €29.95 — that's €29.95 divided by twelve months. Paying monthly costs €2.95. Both prices include VAT and can be cancelled monthly.",
  "via_eftp": "estimated (eFTP)",
  "ftp_oud_tekst": "Your FTP from intervals.icu is about {maanden} months old, so your training zones may no longer be accurate. Do a test, or continue with your estimated eFTP.",
  "ftp_kies_test": "Schedule an FTP test",
  "ftp_kies_eftp": "Use my eFTP",
  "ftp_nu_eftp": "You're now using your estimated eFTP. If a new FTP comes in from intervals.icu, we'll switch back automatically.",
  "ftp_test_wordt_gepland": "The coach is scheduling your FTP test",
  "ftp_test_prompt": "Schedule an FTP test in my plan using update_schedule and set_library, session_key ftptest. The test takes 78 minutes, so pick a day with at least 80 minutes available. Never plan on a day marked as not available. Don't put a hard day directly before or after. If there's no suitable day at all, say so and plan nothing. Explain in two sentences which day you chose and why.",
  "sess_ftp_t": "FTP test (20 minutes)",
  "sess_ftp_d": "Standard test to re-establish your threshold power. Your FTP is about 95% of your average power over the 20 minutes in the middle. Don't start too fast.",
  "sess_ftp_doel1": "20 min as hard and evenly as possible",
  "sess_ftp_doel2": "5 min clearing effort beforehand",
  "ftpstap_wu": "Warm-up",
  "ftpstap_snel": "Fast pedals",
  "ftpstap_rust": "Recovery",
  "ftpstap_open": "Clearing effort (all-out)",
  "ftpstap_test": "TEST - 20 min as hard as possible",
  "ftpstap_cd": "Cool-down",
  "ftp_keuze_wel_opgeslagen": "Your choice was saved, but what followed went wrong. Refresh the app and try again.",
  "ftp_test_besch": "My availability for the next two weeks (days marked 'not available' are out - don't plan anything there):",
  "ftp_test_weg": "The scheduled FTP test is no longer in your plan. Schedule it again, or continue with your estimated eFTP.",
  "knop_toch_eftp": "Use my eFTP instead",
  "ftp_test_weggehaald": "Your FTP test has been removed and your weekly plan has been revised. Your zones are now based on your estimated eFTP.",
  "type_ftptest": "FTP test (20 min)",
  "onboard_eyebrow": "Getting started",
  "onboard_titel": "Three steps to your best plan",
  "onboard_knop": "Let's go",
  "onboard_s1_kop": "Set your availability",
  "onboard_s1_tekst": "Go to the Week tab and set how much time you have each day. This is the foundation: without it the coach doesn't know when it can plan.",
  "onboard_s2_kop": "Pick a goal (optional)",
  "onboard_s2_tekst": "Go to Goals and pick a race or your own goal. No goal yet? The coach still builds a sensible progressive plan — this just makes it more targeted, it's not required.",
  "onboard_s3_kop": "Do your daily check-in",
  "onboard_s3_tekst": "Five short questions on the Today tab. Together with your measured values, this decides whether today's session goes ahead, gets lighter, or becomes a rest day. With a high score you can skip it.",
  "knop_bekijk_training": "View workout",
  "tp_duur": "Duration",
  "tp_belasting": "Load (estimate)",
  "tp_zoneverdeling": "Zone distribution",
  "inst_dossier": "What the coach remembers",
  "dossier_uitleg": "The coach brings this into every conversation, including a new one. If something no longer applies, remove it.",
  "dossier_leeg": "The coach hasn't remembered anything yet. That happens automatically once you mention something lasting.",
  "dossier_wis": "Clear all",
  "dossier_gewist": "The dossier is empty.",
  "push_opbouw": "Structure",
  "push_doel": "Target",
  "push_ftp": "Planned at FTP {ftp} W",
  "doel_coach_prompt": "I've set a new goal: {naam} on {datum}, in about {weken} weeks ({km} km, {hm} m elevation). Adjust my plan for the next two weeks with update_schedule so I build specifically towards it. Also look at my other goals in the context: decide which is most important and build towards that. Never plan on a day marked as not available. Explain in three sentences what you changed and why.",
  "inst_ftp": "FTP",
  "ftp_nu": "You're currently at {ftp} W ({bron}). Adjust it, use your estimated eFTP, or schedule a test.",
  "ftp_bewaar": "Save",
  "ftp_bron_hand": "set manually",
  "ftp_ongeldig": "Enter an FTP between 50 and 600 watts.",
  "ftp_opgeslagen": "Your FTP is now {ftp} W. Your zones have been updated.",
  "ftp_terug_icu": "Back to the FTP from intervals.icu",
  "kpi_ftp_verschil": "intervals.icu estimates your FTP at <strong>{model} W</strong> ({verschil} W compared to the {ftp} W you're currently using).",
  "kpi_ftp_aanpassen": "Adjust your FTP in settings",
  "checkin_kop_klaar": "No check-in needed today",
  "doel_coach_categorie": "Category: {cat}.",
  "werktmet_label": "WORKS WITH",
  "werktmet_meer": "& more...",
  "coaching_eyebrow": "VeloGrit coaching",
  "coaching_titel": "You finished the ride. But did it make you faster?",
  "coaching_tekst": "Your head unit shows you numbers. VeloGrit tells you what they mean and builds an adaptive plan for every ride, every goal and every training plan. You get the feedback that keeps you fit and makes you better.",
  "features_kop": "What you see every day",
  "feat_vandaag_kop": "Today",
  "feat_vandaag_tekst": "Your readiness at a glance: a ring from 0 to 100, built from your HRV, sleep and resting heart rate where available, combined with how you say you feel. Below it, today's session — and why it looks the way it does.",
  "feat_week_kop": "Week & availability",
  "feat_week_tekst": "Set how much time you have each day with a slider, and the coach rebuilds your week around it. Turn a day to zero and the rest shifts automatically — no manual replanning needed.",
  "feat_coach_kop": "Coach",
  "feat_coach_tekst": "Ask anything about your form, your last ride or the race ahead. The coach knows your training data, your goals and what you've discussed before, and adjusts your plan right away when needed.",
  "feat_voortgang_kop": "Progress",
  "feat_voortgang_tekst": "Your fitness, fatigue and form over time, with your power curve and training zones. Every value is clickable to see the trend over the past seven days.",
  "feat_plan_kop": "Goals",
  "feat_plan_tekst": "Plan a race or your own goal, with category and level. As soon as you save it, the coach adjusts your plan right away — no need to ask separately.",
  "feat_kast_kop": "PRs",
  "feat_kast_tekst": "Your personal records by duration, plus milestones like your top speed or longest ride. All updated automatically from your own data, without filling in anything.",
  "voet_vragen": "Questions?",
  "budget_bijna_op_dag": "You've used {pct}% of today's AI allowance. {over} credits left; after that the coach pauses until tomorrow.",
  "budget_bijna_op_week": "You've used {pct}% of this week's AI allowance. {over} credits left; after that the coach pauses until Monday.",
  "budget_bijna_op_maand": "You've used {pct}% of this month's AI allowance. {over} credits left; after that the coach pauses until the 1st of next month.",
  "geen_sessie_uitleg": "No session planned. You get stronger between sessions, not during them.",
  "plan_band_kop": "{naam} · week {week} of {totaal}",
  "sessdoel_endurance": "Steady and long: builds your base and fat burning.",
  "sessdoel_threshold": "Around your threshold: raises the power you can hold for a long time.",
  "sessdoel_vo2": "Short, hard blocks: increases your oxygen uptake and your ceiling.",
  "sessdoel_anaerobic": "Very short and very hard: trains attacking and closing gaps.",
  "sessdoel_sprint": "Sprints with full recovery: trains your peak power.",
  "sessdoel_recovery": "Very light: the recovery makes you stronger, not this ride.",
  "sessdoel_openers": "Short and sharp: wakes the legs without tiring them.",
  "sessdoel_test": "Test: measures where you stand now, so your zones are accurate again.",
  "soort_event": "Plan an event",
  "soort_schema": "Choose a training plan",
  "schema_uitleg": "Choose an eight-week plan. The intensity builds gradually, and races you plan separately stay in place — in a race week the hardest session drops out.",
  "schema_label": "Training plan",
  "schema_start": "Start this plan",
  "schema_wissel": "Switch to this plan",
  "schema_stop": "Stop plan",
  "schema_gestart": "{naam} starts on Monday {datum}.",
  "schema_gestopt": "Your plan has stopped. Your week is filled in freely again.",
  "schema_loopt": "{naam} is running — week {week} of {totaal}.",
  "schema_afgerond": "{naam} is complete. Choose a new plan or plan an event.",
  "plan_opbouwen_naam": "Build base",
  "plan_opbouwen_uitleg": "Improve your fitness and lay the foundation for future goals. Eight weeks in which your endurance rises step by step, with steady rides at the core and gradually increasing intensity.",
  "plan_ftp_naam": "Raise FTP",
  "plan_ftp_uitleg": "Eight weeks with more work around your threshold than the base plan. The goal is to raise your FTP: the power you can hold for an hour. The final week ends with an FTP test, so you can see in black and white what it delivered.",
  "plan_verbeteren_naam": "Improve",
  "plan_kort_klim_naam": "Short climbs",
  "plan_kort_klim_uitleg": "Designed to help you improve on short climbs of six to eight minutes. The plan builds your anaerobic engine and your strength, so you can keep pushing above threshold all the way to the top.",
  "plan_lang_klim_naam": "Long climbs",
  "plan_lang_klim_uitleg": "Designed for climbs of eight minutes and longer. The plan builds a high FTP and a strong VO2max, the two qualities you need to handle a long climb well.",
  "plan_criterium_naam": "Criterium",
  "plan_criterium_uitleg": "Criteriums consist of short, fierce efforts back to back: accelerating out of corners, surviving attacks and going clear yourself. This plan trains exactly that, with the emphasis on how quickly you recover between efforts.",
  "pf_gewenning": "Settling into the rhythm",
  "pf_volume": "Building volume",
  "pf_licht": "Easier week",
  "pf_tempo": "Adding tempo",
  "pf_piek": "Hardest week",
  "pf_afsluiten": "Winding down",
  "pf_drempel_kennis": "Getting to know your threshold",
  "pf_drempel_opbouw": "Building threshold work",
  "pf_drempel_lang": "Longer blocks at threshold",
  "pf_test": "Measuring what it delivered",
  "pf_kracht": "Strength on the climb",
  "pf_anaeroob": "Anaerobic engine",
  "pf_herhaling": "Repeating without fading",
  "pf_basis_klim": "Base for the long climb",
  "pf_vo2": "Sharpening VO2max",
  "pf_snelheid": "Speed and explosiveness",
  "pf_herstelvermogen": "Recovering between efforts",
  "pf_scherp": "Getting sharp",
  "tab_schema": "Plan",
  "feat_schema_kop": "Training plan",
  "feat_schema_tekst": "You can choose a training plan, such as building your base, raising your FTP or getting better at climbing. VeloGrit places the plan into your weekly schedules automatically and takes your goals — events or races — into account.",
  "tab_activiteiten": "Rides",
  "act_eyebrow": "Completed",
  "act_kop": "Your activities",
  "act_uitleg": "Everything you've done, newest first. Tap a day for the details.",
  "act_meer": "Load more",
  "act_leeg": "No activities yet. As soon as you ride and it's in intervals.icu, it shows up here.",
  "act_naamloos": "Untitled",
  "act_afstand": "Distance",
  "act_hoogte": "Elevation",
  "act_duur": "Moving time",
  "act_watt": "Avg power",
  "act_np": "Normalised",
  "act_snelheid": "Avg speed",
  "act_volbracht": "Completed — {pct}% of the planned session.",
  "act_deels": "Partly done — {pct}% of the planned session.",
  "act_bekijk_analyse": "View analysis",
  "act_route_bekijk": "View route",
  "act_route_uitleg": "The shape of your route, drawn from your GPS data. The starting point is marked.",
  "act_route_laden": "Loading route…",
  "eenheid_min": "min",
  "eenheid_uur": "h",
  "act_in_maps": "Open in Google Maps",
  "mockup_alt_telefoon": "VeloGrit on a phone: your readiness score and today's session.",
  "mockup_alt_laptop": "VeloGrit on a laptop: your weekly plan with the sessions per day.",
  "mockup_alt_duo": "VeloGrit on a phone and a laptop: your readiness score, today's session and your weekly plan.",
  "ingehaald_van": "moved from {dag}",
  "f_checkin_dank": "Thanks for filling that in. Your readiness is {score} (you {jij} · data {data}).",
  "f_checkin_dank_zonder": "Thanks for filling that in. Your readiness is {score}; no measured data yet.",
  "inst_karakter": "How the coach sounds",
  "inst_karakter_uitleg": "Only the tone changes. What the coach says about your training stays the same.",
  "karakter_neutraal": "Neutral",
  "karakter_streng": "Strict",
  "karakter_inlevend": "Understanding",
  "karakter_neutraal_uitleg": "Businesslike and clear, as it is now.",
  "karakter_streng_uitleg": "Direct and demanding. Holds you to your plan and names what needs to improve.",
  "karakter_inlevend_uitleg": "Warm and encouraging. Starts with what went well, stays honest.",
  "f_karakter": "The coach now sounds {naam}.",
  "knop_lees": "Read",
  "lees_kop": "Coach analysis",
  "type_doel": "Goal",
  "dm_overslaan": "Skip — I did something else",
  "dm_toch_doen": "Put it back on the plan",
  "dm_nu_overgeslagen": "Skipped. What you did instead still counts.",
  "dm_weer_gepland": "Back on the plan.",
  "tag_overgeslagen": "skipped",
  "promo_sticker_kop": "Try 5 days free",
  "promo_sticker_sub": "then €2.50 a month*",
  "vandaag_overgeslagen": "You skipped this session. It doesn't count as missed.",
  "vandaag_overgeslagen_wel": "You skipped this session; you did {wat} instead."
}
