halkyon/apps/train/halkyon_train_flutter/lib/l10n/app_localizations.dart
Tizian 「ティツィアーン」 011b144ba1
All checks were successful
CI / check (push) Successful in 45m21s
CI / deploy (push) Successful in 1m1s
feat(train): a weight vest among the equipment (ADR 0034, D7)
A vest keeps its weight and, if adjustable, how far it goes. At a place
that has one, a set of bodyweight work offers it beside the weight, a
tap writing its weight in.

Whats-New: Add a weight vest to your equipment, and put its weight on a bodyweight set with a tap.
Whats-New-De: Trage eine Gewichtsweste bei deiner Ausrüstung ein und übernimm ihr Gewicht mit einem Tipp in einen Satz mit Körpergewicht.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-05 22:55:30 +01:00

4752 lines
138 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart' as intl;
import 'app_localizations_de.dart';
import 'app_localizations_en.dart';
// ignore_for_file: type=lint
/// Callers can lookup localized strings with an instance of AppLocalizations
/// returned by `AppLocalizations.of(context)`.
///
/// Applications need to include `AppLocalizations.delegate()` in their app's
/// `localizationDelegates` list, and the locales they support in the app's
/// `supportedLocales` list. For example:
///
/// ```dart
/// import 'l10n/app_localizations.dart';
///
/// return MaterialApp(
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
/// supportedLocales: AppLocalizations.supportedLocales,
/// home: MyApplicationHome(),
/// );
/// ```
///
/// ## Update pubspec.yaml
///
/// Please make sure to update your pubspec.yaml to include the following
/// packages:
///
/// ```yaml
/// dependencies:
/// # Internationalization support.
/// flutter_localizations:
/// sdk: flutter
/// intl: any # Use the pinned version from flutter_localizations
///
/// # Rest of dependencies
/// ```
///
/// ## iOS Applications
///
/// iOS applications define key application metadata, including supported
/// locales, in an Info.plist file that is built into the application bundle.
/// To configure the locales supported by your app, you’ll need to edit this
/// file.
///
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
/// Then, in the Project Navigator, open the Info.plist file under the Runner
/// project’s Runner folder.
///
/// Next, select the Information Property List item, select Add Item from the
/// Editor menu, then select Localizations from the pop-up menu.
///
/// Select and expand the newly-created Localizations item then, for each
/// locale your application supports, add a new item and select the locale
/// you wish to add from the pop-up menu in the Value field. This list should
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
/// property.
abstract class AppLocalizations {
AppLocalizations(String locale)
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
final String localeName;
static AppLocalizations of(BuildContext context) {
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
}
static const LocalizationsDelegate<AppLocalizations> delegate =
_AppLocalizationsDelegate();
/// A list of this localizations delegate along with the default localizations
/// delegates.
///
/// Returns a list of localizations delegates containing this delegate along with
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
/// and GlobalWidgetsLocalizations.delegate.
///
/// Additional delegates can be added by appending to this list in
/// MaterialApp. This list does not have to be used at all if a custom list
/// of delegates is preferred or required.
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
<LocalizationsDelegate<dynamic>>[
delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
];
/// A list of this localizations delegate's supported locales.
static const List<Locale> supportedLocales = <Locale>[
Locale('de'),
Locale('en'),
Locale('en', 'GB'),
Locale('en', 'US'),
];
/// The app's name: the window's title, and where halkyon_app's texts name the app.
///
/// In en, this message translates to:
/// **'Halkyon Train'**
String get appTitle;
/// The app's word in its wordmark, under "Halkyon".
///
/// In en, this message translates to:
/// **'Train'**
String get launchProduct;
/// No description provided for @instanceFirstStartSubtitle.
///
/// In en, this message translates to:
/// **'Choose the instance to keep your workouts on. Someone runs each one; you can add others later.'**
String get instanceFirstStartSubtitle;
/// No description provided for @homeEmptyTitle.
///
/// In en, this message translates to:
/// **'No workouts yet'**
String get homeEmptyTitle;
/// No description provided for @homeEmptyHint.
///
/// In en, this message translates to:
/// **'Workouts recorded on your phone show here.'**
String get homeEmptyHint;
/// No description provided for @accountTitle.
///
/// In en, this message translates to:
/// **'Account'**
String get accountTitle;
/// No description provided for @accountDeleteMessage.
///
/// In en, this message translates to:
/// **'Your account is deleted on the server and on all your devices. This can\'t be undone.'**
String get accountDeleteMessage;
/// No description provided for @aboutTitle.
///
/// In en, this message translates to:
/// **'About Halkyon Train'**
String get aboutTitle;
/// No description provided for @homeRecordHint.
///
/// In en, this message translates to:
/// **'Record one from the Record tab.'**
String get homeRecordHint;
/// No description provided for @recordBack.
///
/// In en, this message translates to:
/// **'Back to the recording'**
String get recordBack;
/// No description provided for @activityRunning.
///
/// In en, this message translates to:
/// **'Running'**
String get activityRunning;
/// No description provided for @activityWalking.
///
/// In en, this message translates to:
/// **'Walking'**
String get activityWalking;
/// No description provided for @activityHiking.
///
/// In en, this message translates to:
/// **'Hiking'**
String get activityHiking;
/// No description provided for @activityCycling.
///
/// In en, this message translates to:
/// **'Cycling'**
String get activityCycling;
/// No description provided for @activityStrength.
///
/// In en, this message translates to:
/// **'Strength training'**
String get activityStrength;
/// No description provided for @activityIndoorCycling.
///
/// In en, this message translates to:
/// **'Cycling indoors'**
String get activityIndoorCycling;
/// No description provided for @activityIndoorRowing.
///
/// In en, this message translates to:
/// **'Rowing indoors'**
String get activityIndoorRowing;
/// No description provided for @activityOther.
///
/// In en, this message translates to:
/// **'Other workout'**
String get activityOther;
/// The switch for auto-pause, as the recording starts.
///
/// In en, this message translates to:
/// **'Pause by itself'**
String get recordAutoPause;
/// No description provided for @recordAutoPauseHint.
///
/// In en, this message translates to:
/// **'When you stand still, and going on as you move again'**
String get recordAutoPauseHint;
/// No description provided for @recordStart.
///
/// In en, this message translates to:
/// **'Start'**
String get recordStart;
/// No description provided for @recordPlan.
///
/// In en, this message translates to:
/// **'Plan'**
String get recordPlan;
/// No description provided for @recordNoPlan.
///
/// In en, this message translates to:
/// **'None'**
String get recordNoPlan;
/// No description provided for @recordingLap.
///
/// In en, this message translates to:
/// **'Lap'**
String get recordingLap;
/// No description provided for @recordingPlanDone.
///
/// In en, this message translates to:
/// **'Plan done'**
String get recordingPlanDone;
/// No description provided for @recordingStepOf.
///
/// In en, this message translates to:
/// **'Step {index} of {count}'**
String recordingStepOf(int index, int count);
/// No description provided for @recordingNextStep.
///
/// In en, this message translates to:
/// **'Next: {step}'**
String recordingNextStep(String step);
/// No description provided for @recordingStepTapLap.
///
/// In en, this message translates to:
/// **'Until you tap Lap'**
String get recordingStepTapLap;
/// No description provided for @recordLocationRefused.
///
/// In en, this message translates to:
/// **'Train needs your location to record this. You can allow it in the system\'s settings.'**
String get recordLocationRefused;
/// No description provided for @recordActivityRefused.
///
/// In en, this message translates to:
/// **'Train needs the physical activity permission to record a ride indoors. You can allow it in the system\'s settings.'**
String get recordActivityRefused;
/// No description provided for @recordingWaitingForGps.
///
/// In en, this message translates to:
/// **'Waiting for GPS'**
String get recordingWaitingForGps;
/// No fix at all for a minute while recording: location off, or allowed only approximately.
///
/// In en, this message translates to:
/// **'No GPS for a minute. Is location on, and is Train allowed your precise location?'**
String get recordingGpsSilent;
/// Before a fix precise enough: how far off the last one may be.
///
/// In en, this message translates to:
/// **'Waiting for GPS · ±{metres} m'**
String recordingWaitingForGpsAccuracy(int metres);
/// How far off the last fix may be.
///
/// In en, this message translates to:
/// **'GPS ±{metres} m'**
String recordingGpsAccuracy(int metres);
/// Under the time, lower case: the time moved, pauses left out.
///
/// In en, this message translates to:
/// **'moving time'**
String get recordingMovingTime;
/// No description provided for @recordingDistance.
///
/// In en, this message translates to:
/// **'distance'**
String get recordingDistance;
/// No description provided for @recordingPace.
///
/// In en, this message translates to:
/// **'pace'**
String get recordingPace;
/// No description provided for @recordingSpeed.
///
/// In en, this message translates to:
/// **'speed'**
String get recordingSpeed;
/// No description provided for @recordingDistanceValue.
///
/// In en, this message translates to:
/// **'{km} km'**
String recordingDistanceValue(String km);
/// Minutes and seconds a kilometre takes.
///
/// In en, this message translates to:
/// **'{pace} /km'**
String recordingPaceValue(String pace);
/// No description provided for @recordingSpeedValue.
///
/// In en, this message translates to:
/// **'{kmh} km/h'**
String recordingSpeedValue(String kmh);
/// Train paused the recording by itself (auto-pause).
///
/// In en, this message translates to:
/// **'Paused: not moving'**
String get recordingPausedAuto;
/// No description provided for @recordingPausedByHand.
///
/// In en, this message translates to:
/// **'Paused'**
String get recordingPausedByHand;
/// No description provided for @recordingPause.
///
/// In en, this message translates to:
/// **'Pause'**
String get recordingPause;
/// No description provided for @recordingResume.
///
/// In en, this message translates to:
/// **'Resume'**
String get recordingResume;
/// No description provided for @recordingStop.
///
/// In en, this message translates to:
/// **'Stop'**
String get recordingStop;
/// No description provided for @recordingHoldToStop.
///
/// In en, this message translates to:
/// **'Hold Stop to end the workout'**
String get recordingHoldToStop;
/// No description provided for @recordingStoppedTitle.
///
/// In en, this message translates to:
/// **'Save this workout?'**
String get recordingStoppedTitle;
/// No description provided for @recordingSave.
///
/// In en, this message translates to:
/// **'Save'**
String get recordingSave;
/// No description provided for @recordingDiscard.
///
/// In en, this message translates to:
/// **'Discard'**
String get recordingDiscard;
/// No description provided for @recordingDiscardTitle.
///
/// In en, this message translates to:
/// **'Discard this workout?'**
String get recordingDiscardTitle;
/// No description provided for @recordingDiscardMessage.
///
/// In en, this message translates to:
/// **'Its time and track are deleted from this device. This can\'t be undone.'**
String get recordingDiscardMessage;
/// No description provided for @recordingSaveFailed.
///
/// In en, this message translates to:
/// **'It can\'t be saved on this device, which doesn\'t hold your account\'s keys. It stays here until it can be.'**
String get recordingSaveFailed;
/// No description provided for @recordingCutOffTitle.
///
/// In en, this message translates to:
/// **'A recording was cut off'**
String get recordingCutOffTitle;
/// A recording found unfinished as the app opened: when it started and its last sample.
///
/// In en, this message translates to:
/// **'A recording from {start} was cut off. Save it up to {end}, or discard it?'**
String recordingCutOffMessage(String start, String end);
/// The name of the recording's notification channel, in the system's settings.
///
/// In en, this message translates to:
/// **'Recording'**
String get recordingNotificationChannel;
/// The notification's title while paused.
///
/// In en, this message translates to:
/// **'{activity} · paused'**
String recordingNotificationPaused(String activity);
/// A workout's name where the person gave none: the time of day it started (morning 5–12, afternoon 12–17, evening 17–22, night) and its activity, as Strava names them.
///
/// In en, this message translates to:
/// **'{when, select, morning_strength{Morning strength} afternoon_strength{Afternoon strength} evening_strength{Evening strength} night_strength{Night strength} morning_running{Morning run} morning_walking{Morning walk} morning_hiking{Morning hike} morning_cycling{Morning ride} morning_indoorCycling{Morning indoor ride} afternoon_indoorCycling{Afternoon indoor ride} evening_indoorCycling{Evening indoor ride} night_indoorCycling{Night indoor ride} morning_indoorRowing{Morning row} afternoon_running{Afternoon run} afternoon_walking{Afternoon walk} afternoon_hiking{Afternoon hike} afternoon_cycling{Afternoon ride} afternoon_indoorRowing{Afternoon row} evening_running{Evening run} evening_walking{Evening walk} evening_hiking{Evening hike} evening_cycling{Evening ride} evening_indoorRowing{Evening row} night_running{Night run} night_walking{Night walk} night_hiking{Night hike} night_cycling{Night ride} night_indoorRowing{Night row} other{Workout}}'**
String workoutName(String when);
/// No description provided for @workoutLocked.
///
/// In en, this message translates to:
/// **'Locked workout'**
String get workoutLocked;
/// Under a workout this device can't open (its key is missing here).
///
/// In en, this message translates to:
/// **'This device doesn\'t hold the key it\'s sealed with.'**
String get workoutLockedHint;
/// No description provided for @workoutEdit.
///
/// In en, this message translates to:
/// **'Edit'**
String get workoutEdit;
/// No description provided for @workoutEditTitle.
///
/// In en, this message translates to:
/// **'Edit workout'**
String get workoutEditTitle;
/// No description provided for @workoutNameLabel.
///
/// In en, this message translates to:
/// **'Name'**
String get workoutNameLabel;
/// No description provided for @workoutActivityLabel.
///
/// In en, this message translates to:
/// **'Activity'**
String get workoutActivityLabel;
/// No description provided for @workoutNotesLabel.
///
/// In en, this message translates to:
/// **'Notes'**
String get workoutNotesLabel;
/// No description provided for @workoutSave.
///
/// In en, this message translates to:
/// **'Save'**
String get workoutSave;
/// No description provided for @workoutDelete.
///
/// In en, this message translates to:
/// **'Delete'**
String get workoutDelete;
/// No description provided for @workoutDeleteTitle.
///
/// In en, this message translates to:
/// **'Delete this workout?'**
String get workoutDeleteTitle;
/// No description provided for @workoutDeleteMessage.
///
/// In en, this message translates to:
/// **'It\'s deleted on all your devices.'**
String get workoutDeleteMessage;
/// No description provided for @workoutDeleted.
///
/// In en, this message translates to:
/// **'Workout deleted'**
String get workoutDeleted;
/// No description provided for @workoutMovingTime.
///
/// In en, this message translates to:
/// **'moving time'**
String get workoutMovingTime;
/// Lower case, under a figure: from start to end, pauses included.
///
/// In en, this message translates to:
/// **'whole time'**
String get workoutTotalTime;
/// No description provided for @workoutDistance.
///
/// In en, this message translates to:
/// **'distance'**
String get workoutDistance;
/// No description provided for @workoutPace.
///
/// In en, this message translates to:
/// **'pace'**
String get workoutPace;
/// No description provided for @workoutSpeed.
///
/// In en, this message translates to:
/// **'speed'**
String get workoutSpeed;
/// Lower case, under a figure: the elevation gained.
///
/// In en, this message translates to:
/// **'climbed'**
String get workoutClimb;
/// No description provided for @workoutClimbValue.
///
/// In en, this message translates to:
/// **'{metres} m'**
String workoutClimbValue(int metres);
/// No description provided for @workoutSplits.
///
/// In en, this message translates to:
/// **'Splits'**
String get workoutSplits;
/// No description provided for @workoutSteps.
///
/// In en, this message translates to:
/// **'Steps of {plan}'**
String workoutSteps(String plan);
/// No description provided for @workoutOnTarget.
///
/// In en, this message translates to:
/// **'On target'**
String get workoutOnTarget;
/// No description provided for @workoutOffTarget.
///
/// In en, this message translates to:
/// **'Off target'**
String get workoutOffTarget;
/// A kilometre's split, its number.
///
/// In en, this message translates to:
/// **'km {number}'**
String workoutSplitKm(int number);
/// A cycling split of 5 km: where it starts and ends.
///
/// In en, this message translates to:
/// **'{from}–{to} km'**
String workoutSplitFiveKm(int from, int to);
/// No description provided for @workoutPaceChart.
///
/// In en, this message translates to:
/// **'Pace'**
String get workoutPaceChart;
/// No description provided for @workoutSpeedChart.
///
/// In en, this message translates to:
/// **'Speed'**
String get workoutSpeedChart;
/// No description provided for @workoutElevationChart.
///
/// In en, this message translates to:
/// **'Elevation'**
String get workoutElevationChart;
/// Under a workout's map: what the map's source sees.
///
/// In en, this message translates to:
/// **'Map by {name}: it sees your device\'s address and the area shown, not your track.'**
String workoutMapSource(String name);
/// Under a workout's map drawn from the instance's own tiles (D50): what it sees.
///
/// In en, this message translates to:
/// **'Map by your instance, {name}, from OpenStreetMap: it keeps nothing of the area shown.'**
String workoutMapOwn(String name);
/// A link to the map source's page about what it keeps.
///
/// In en, this message translates to:
/// **'What {name} keeps'**
String workoutMapSourceAbout(String name);
/// No description provided for @workoutMapUnavailable.
///
/// In en, this message translates to:
/// **'The map can\'t be loaded now.'**
String get workoutMapUnavailable;
/// Title of the explanation behind the question mark on a workout's page (D63): what the map's source sees.
///
/// In en, this message translates to:
/// **'About the map'**
String get workoutMapAbout;
/// Tooltip of the chevron that lowers a workout's sheet, the page pulled up, so that the map shows again (D63).
///
/// In en, this message translates to:
/// **'Show the map'**
String get workoutShowMap;
/// Tooltip of the button over a map that shows whose map and data it is.
///
/// In en, this message translates to:
/// **'Map credits'**
String get mapCredits;
/// Title of the explanation behind the question mark over the route planner's map (D63).
///
/// In en, this message translates to:
/// **'Planning a route'**
String get routeHelpTitle;
/// No description provided for @workoutNotFound.
///
/// In en, this message translates to:
/// **'This workout is gone.'**
String get workoutNotFound;
/// No description provided for @recordHeartRate.
///
/// In en, this message translates to:
/// **'Heart rate'**
String get recordHeartRate;
/// On the Record sheet, under Heart rate, where no strap is chosen.
///
/// In en, this message translates to:
/// **'No strap'**
String get recordNoStrap;
/// No description provided for @recordHeartLoop.
///
/// In en, this message translates to:
/// **'From the Polar Loop'**
String get recordHeartLoop;
/// No description provided for @recordHeartStrapThenLoop.
///
/// In en, this message translates to:
/// **'{strap}, the Loop while it is lost'**
String recordHeartStrapThenLoop(String strap);
/// No description provided for @strapSheetTitle.
///
/// In en, this message translates to:
/// **'Heart-rate strap'**
String get strapSheetTitle;
/// No description provided for @strapSearching.
///
/// In en, this message translates to:
/// **'Looking for straps nearby…'**
String get strapSearching;
/// No description provided for @strapSearchingHint.
///
/// In en, this message translates to:
/// **'Put the strap on: most wake up only once they touch skin.'**
String get strapSearchingHint;
/// Under a strap found: its signal is strong.
///
/// In en, this message translates to:
/// **'close by'**
String get strapNear;
/// Under a strap found: its signal is weak.
///
/// In en, this message translates to:
/// **'further off'**
String get strapFar;
/// A strap that sends no name.
///
/// In en, this message translates to:
/// **'Unnamed strap'**
String get strapUnnamed;
/// No description provided for @strapForget.
///
/// In en, this message translates to:
/// **'Forget strap'**
String get strapForget;
/// No description provided for @strapRefused.
///
/// In en, this message translates to:
/// **'Train needs nearby devices to find your strap. You can allow it in the system\'s settings.'**
String get strapRefused;
/// No description provided for @strapBluetoothOff.
///
/// In en, this message translates to:
/// **'Bluetooth is off. Turn it on to look for devices nearby.'**
String get strapBluetoothOff;
/// Under the heart rate, lower case.
///
/// In en, this message translates to:
/// **'heart rate'**
String get recordingHeartRate;
/// While recording: the strap is out of reach or off; Train keeps asking for it.
///
/// In en, this message translates to:
/// **'Strap lost'**
String get recordingStrapLost;
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'average heart rate'**
String get workoutAverageHeartRate;
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'highest heart rate'**
String get workoutMaxHeartRate;
/// No description provided for @workoutBpmValue.
///
/// In en, this message translates to:
/// **'{bpm} bpm'**
String workoutBpmValue(int bpm);
/// No description provided for @workoutHeartRateChart.
///
/// In en, this message translates to:
/// **'Heart rate'**
String get workoutHeartRateChart;
/// No description provided for @recordRower.
///
/// In en, this message translates to:
/// **'Rowing machine'**
String get recordRower;
/// No description provided for @recordNoRower.
///
/// In en, this message translates to:
/// **'Choose your rowing machine'**
String get recordNoRower;
/// No description provided for @recordRowerRefused.
///
/// In en, this message translates to:
/// **'Train needs nearby devices to record from your rowing machine. You can allow it in the system\'s settings.'**
String get recordRowerRefused;
/// No description provided for @rowerSheetTitle.
///
/// In en, this message translates to:
/// **'Rowing machine'**
String get rowerSheetTitle;
/// No description provided for @rowerSearching.
///
/// In en, this message translates to:
/// **'Looking for rowing machines nearby…'**
String get rowerSearching;
/// No description provided for @rowerSearchingHint.
///
/// In en, this message translates to:
/// **'Wake the console: most show once you pull or press a button. One another app holds (Christopeit Connect, Kinomap) can\'t be found: close that app first.'**
String get rowerSearchingHint;
/// No description provided for @rowerUnnamed.
///
/// In en, this message translates to:
/// **'Unnamed rowing machine'**
String get rowerUnnamed;
/// No description provided for @rowerForget.
///
/// In en, this message translates to:
/// **'Forget rowing machine'**
String get rowerForget;
/// No description provided for @rowerRefused.
///
/// In en, this message translates to:
/// **'Train needs nearby devices to find your rowing machine. You can allow it in the system\'s settings.'**
String get rowerRefused;
/// While recording a row: the rower isn't connected yet. Another app may hold it.
///
/// In en, this message translates to:
/// **'Looking for the rowing machine'**
String get recordingRowerConnecting;
/// While recording a row: the rower is out of reach or off; Train keeps asking for it.
///
/// In en, this message translates to:
/// **'Rowing machine lost'**
String get recordingRowerLost;
/// Lower case, under a figure: how long 500 m take now.
///
/// In en, this message translates to:
/// **'split'**
String get recordingSplit;
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'strokes a minute'**
String get recordingStrokeRate;
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'watts'**
String get recordingWatts;
/// Minutes and seconds 500 m take.
///
/// In en, this message translates to:
/// **'{split} /500 m'**
String workoutSplitValue(String split);
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'average split'**
String get workoutAverageSplit;
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'average stroke rate'**
String get workoutAverageStrokeRate;
/// Strokes a minute.
///
/// In en, this message translates to:
/// **'{rate} /min'**
String workoutStrokeRateValue(String rate);
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'average power'**
String get workoutAveragePower;
/// Lower case, under a figure.
///
/// In en, this message translates to:
/// **'highest power'**
String get workoutMaxPower;
/// No description provided for @workoutWattsValue.
///
/// In en, this message translates to:
/// **'{watts} W'**
String workoutWattsValue(int watts);
/// Lower case, under a figure: how many strokes.
///
/// In en, this message translates to:
/// **'strokes'**
String get workoutStrokes;
/// A rowing split of 500 m: where it starts and ends.
///
/// In en, this message translates to:
/// **'{from}–{to} m'**
String workoutSplitMetres(int from, int to);
/// No description provided for @workoutSplitChart.
///
/// In en, this message translates to:
/// **'Split'**
String get workoutSplitChart;
/// No description provided for @workoutStrokeRateChart.
///
/// In en, this message translates to:
/// **'Stroke rate'**
String get workoutStrokeRateChart;
/// No description provided for @workoutPowerChart.
///
/// In en, this message translates to:
/// **'Power'**
String get workoutPowerChart;
/// No description provided for @recordAutoPauseRowingHint.
///
/// In en, this message translates to:
/// **'When you stop rowing, going on with the next stroke'**
String get recordAutoPauseRowingHint;
/// No description provided for @recordingMetres.
///
/// In en, this message translates to:
/// **'metres'**
String get recordingMetres;
/// No description provided for @healthTitle.
///
/// In en, this message translates to:
/// **'Health Connect'**
String get healthTitle;
/// Under Health Connect in the account sheet.
///
/// In en, this message translates to:
/// **'Share workouts with other apps on this phone'**
String get healthHint;
/// No description provided for @healthUnavailable.
///
/// In en, this message translates to:
/// **'Health Connect isn\'t on this phone. Android 14 and later have it built in; before 14, it\'s an app of its own.'**
String get healthUnavailable;
/// No description provided for @healthNeedsUpdate.
///
/// In en, this message translates to:
/// **'Update the Health Connect app to use it with Train.'**
String get healthNeedsUpdate;
/// No description provided for @healthWrite.
///
/// In en, this message translates to:
/// **'Write my workouts'**
String get healthWrite;
/// No description provided for @healthWriteHint.
///
/// In en, this message translates to:
/// **'Every workout on this phone, kept up to date as you edit or delete it'**
String get healthWriteHint;
/// No description provided for @healthTakenBack.
///
/// In en, this message translates to:
/// **'Health Connect took this back. Allow it there to turn it on again.'**
String get healthTakenBack;
/// No description provided for @healthRefused.
///
/// In en, this message translates to:
/// **'Health Connect didn\'t allow it. You can allow it in its settings.'**
String get healthRefused;
/// No description provided for @healthOpenSettings.
///
/// In en, this message translates to:
/// **'Open Health Connect'**
String get healthOpenSettings;
/// No description provided for @healthWhy.
///
/// In en, this message translates to:
/// **'Why Train asks'**
String get healthWhy;
/// No description provided for @healthRationaleTitle.
///
/// In en, this message translates to:
/// **'Train and Health Connect'**
String get healthRationaleTitle;
/// No description provided for @healthRationaleWrite.
///
/// In en, this message translates to:
/// **'Train writes your workouts to Health Connect only once you turn it on: each one with its route, heart rate, speed, power, distance and climb, so that other apps on this phone can use them. A workout edited or deleted in Train is edited or deleted there too.'**
String get healthRationaleWrite;
/// No description provided for @healthRationaleRead.
///
/// In en, this message translates to:
/// **'Train reads other apps\' workouts only once you turn it on, and only from the apps you choose: their heart rate, distance and power come into Train as workouts, sealed with your key before they\'re synced to your instance, which can\'t read them.'**
String get healthRationaleRead;
/// No description provided for @healthRationaleNothingElse.
///
/// In en, this message translates to:
/// **'What Train reads there is shown to you and nobody else, and isn\'t used for anything else. Turning a switch off, or taking a permission back in Health Connect, stops it.'**
String get healthRationaleNothingElse;
/// No description provided for @healthRead.
///
/// In en, this message translates to:
/// **'Read from other apps'**
String get healthRead;
/// No description provided for @healthReadHint.
///
/// In en, this message translates to:
/// **'Their workouts come into Train, from the apps you choose below'**
String get healthReadHint;
/// No description provided for @healthReadWeight.
///
/// In en, this message translates to:
/// **'Read my weight'**
String get healthReadWeight;
/// No description provided for @healthReadWeightHint.
///
/// In en, this message translates to:
/// **'Weights other apps wrote, a scale\'s say, come into Train'**
String get healthReadWeightHint;
/// No description provided for @healthRationaleWeight.
///
/// In en, this message translates to:
/// **'Train reads the weights other apps wrote only once you turn it on: each comes into Train once, sealed with your key before it\'s synced to your instance, which can\'t read it.'**
String get healthRationaleWeight;
/// Over the apps that wrote workouts to Health Connect, each with its switch.
///
/// In en, this message translates to:
/// **'Apps'**
String get healthApps;
/// No description provided for @healthAppsEmpty.
///
/// In en, this message translates to:
/// **'No app has written workouts to Health Connect yet.'**
String get healthAppsEmpty;
/// In the list, after when an imported workout was: the app it came from.
///
/// In en, this message translates to:
/// **'from {app}'**
String workoutFromList(String app);
/// On an imported workout's page.
///
/// In en, this message translates to:
/// **'From {app}, through Health Connect'**
String workoutFrom(String app);
/// On an imported workout's page: asks Health Connect for its route.
///
/// In en, this message translates to:
/// **'Bring in the track'**
String get workoutBringTrack;
/// No description provided for @workoutNoTrack.
///
/// In en, this message translates to:
/// **'Health Connect gave no track for it.'**
String get workoutNoTrack;
/// No description provided for @profileTitle.
///
/// In en, this message translates to:
/// **'Your body'**
String get profileTitle;
/// Under Your body in the account sheet.
///
/// In en, this message translates to:
/// **'What your band and your heart-rate zones work from'**
String get profileHint;
/// No description provided for @profileIntro.
///
/// In en, this message translates to:
/// **'Each figure is optional and sealed with your key, as your workouts are; your instance can\'t read them.'**
String get profileIntro;
/// No description provided for @profileLocked.
///
/// In en, this message translates to:
/// **'Your profile is sealed with a key this device doesn\'t hold.'**
String get profileLocked;
/// No description provided for @profileSex.
///
/// In en, this message translates to:
/// **'Sex'**
String get profileSex;
/// No description provided for @profileSexHint.
///
/// In en, this message translates to:
/// **'As Polar\'s formulas take it: the one your body\'s figures follow'**
String get profileSexHint;
/// No description provided for @profileSexFemale.
///
/// In en, this message translates to:
/// **'Female'**
String get profileSexFemale;
/// No description provided for @profileSexMale.
///
/// In en, this message translates to:
/// **'Male'**
String get profileSexMale;
/// No description provided for @profileNotGiven.
///
/// In en, this message translates to:
/// **'Not given'**
String get profileNotGiven;
/// No description provided for @profileBirthDate.
///
/// In en, this message translates to:
/// **'Birth date'**
String get profileBirthDate;
/// No description provided for @profileHeight.
///
/// In en, this message translates to:
/// **'Height'**
String get profileHeight;
/// No description provided for @profileHeightUnit.
///
/// In en, this message translates to:
/// **'cm'**
String get profileHeightUnit;
/// No description provided for @profileWeight.
///
/// In en, this message translates to:
/// **'Weight'**
String get profileWeight;
/// No description provided for @profileWeightUnit.
///
/// In en, this message translates to:
/// **'kg'**
String get profileWeightUnit;
/// No description provided for @profileRestingHeartRate.
///
/// In en, this message translates to:
/// **'Resting heart rate'**
String get profileRestingHeartRate;
/// No description provided for @profileMaxHeartRate.
///
/// In en, this message translates to:
/// **'Highest heart rate'**
String get profileMaxHeartRate;
/// No description provided for @profileBpmUnit.
///
/// In en, this message translates to:
/// **'bpm'**
String get profileBpmUnit;
/// No description provided for @profileVo2Max.
///
/// In en, this message translates to:
/// **'VO2max'**
String get profileVo2Max;
/// No description provided for @profileVo2MaxUnit.
///
/// In en, this message translates to:
/// **'ml/kg/min'**
String get profileVo2MaxUnit;
/// No description provided for @profileTrainingBackground.
///
/// In en, this message translates to:
/// **'Training background'**
String get profileTrainingBackground;
/// No description provided for @trainingOccasional.
///
/// In en, this message translates to:
/// **'Occasional'**
String get trainingOccasional;
/// No description provided for @trainingRegular.
///
/// In en, this message translates to:
/// **'Regular'**
String get trainingRegular;
/// No description provided for @trainingFrequent.
///
/// In en, this message translates to:
/// **'Frequent'**
String get trainingFrequent;
/// No description provided for @trainingHeavy.
///
/// In en, this message translates to:
/// **'Heavy'**
String get trainingHeavy;
/// No description provided for @trainingSemiPro.
///
/// In en, this message translates to:
/// **'Semi-pro'**
String get trainingSemiPro;
/// No description provided for @trainingPro.
///
/// In en, this message translates to:
/// **'Pro'**
String get trainingPro;
/// No description provided for @profileTypicalDay.
///
/// In en, this message translates to:
/// **'Typical day'**
String get profileTypicalDay;
/// No description provided for @typicalDaySitting.
///
/// In en, this message translates to:
/// **'Mostly sitting'**
String get typicalDaySitting;
/// No description provided for @typicalDayStanding.
///
/// In en, this message translates to:
/// **'Mostly standing'**
String get typicalDayStanding;
/// No description provided for @typicalDayMoving.
///
/// In en, this message translates to:
/// **'Mostly moving'**
String get typicalDayMoving;
/// No description provided for @profileSleepGoal.
///
/// In en, this message translates to:
/// **'Sleep goal'**
String get profileSleepGoal;
/// No description provided for @profileSave.
///
/// In en, this message translates to:
/// **'Save'**
String get profileSave;
/// No description provided for @profileSaved.
///
/// In en, this message translates to:
/// **'Saved'**
String get profileSaved;
/// No description provided for @profileInvalid.
///
/// In en, this message translates to:
/// **'Check the figures marked.'**
String get profileInvalid;
/// No description provided for @profileNeeded.
///
/// In en, this message translates to:
/// **'Needed for your band'**
String get profileNeeded;
/// No description provided for @loopTitle.
///
/// In en, this message translates to:
/// **'Polar Loop'**
String get loopTitle;
/// Under Polar Loop in the account sheet.
///
/// In en, this message translates to:
/// **'Your band: its setup, battery and clock'**
String get loopHint;
/// No description provided for @loopNone.
///
/// In en, this message translates to:
/// **'Train sets up a Polar Loop and keeps it itself, without Polar Flow or a Polar account. A band used with Polar Flow needs a factory reset first.'**
String get loopNone;
/// No description provided for @loopSetUp.
///
/// In en, this message translates to:
/// **'Set up a Loop'**
String get loopSetUp;
/// No description provided for @loopSetUpAgain.
///
/// In en, this message translates to:
/// **'Set up again'**
String get loopSetUpAgain;
/// No description provided for @loopLetGo.
///
/// In en, this message translates to:
/// **'Let the band go'**
String get loopLetGo;
/// No description provided for @loopLetGoTitle.
///
/// In en, this message translates to:
/// **'Let the band go?'**
String get loopLetGoTitle;
/// No description provided for @loopLetGoText.
///
/// In en, this message translates to:
/// **'The band is reset to the factory\'s state, and what it holds that hasn\'t reached Train is lost. Afterwards it can be paired with another phone, or with Polar Flow.'**
String get loopLetGoText;
/// No description provided for @loopLetGoConfirm.
///
/// In en, this message translates to:
/// **'Reset the band'**
String get loopLetGoConfirm;
/// No description provided for @loopConnected.
///
/// In en, this message translates to:
/// **'Connected'**
String get loopConnected;
/// No description provided for @loopLastSeen.
///
/// In en, this message translates to:
/// **'Last seen {when}'**
String loopLastSeen(String when);
/// No description provided for @loopNotInReach.
///
/// In en, this message translates to:
/// **'Not in reach'**
String get loopNotInReach;
/// No description provided for @loopBattery.
///
/// In en, this message translates to:
/// **'Battery {level} %'**
String loopBattery(int level);
/// No description provided for @loopCharging.
///
/// In en, this message translates to:
/// **'Battery {level} %, charging'**
String loopCharging(int level);
/// No description provided for @loopFirmware.
///
/// In en, this message translates to:
/// **'Firmware {version}'**
String loopFirmware(String version);
/// No description provided for @loopFirmwareCheck.
///
/// In en, this message translates to:
/// **'Check for a firmware update'**
String get loopFirmwareCheck;
/// No description provided for @loopFirmwareCurrent.
///
/// In en, this message translates to:
/// **'The band\'s firmware is up to date.'**
String get loopFirmwareCurrent;
/// No description provided for @loopFirmwareOffered.
///
/// In en, this message translates to:
/// **'Firmware {version} available'**
String loopFirmwareOffered(String version);
/// No description provided for @loopFirmwareViaPolar.
///
/// In en, this message translates to:
/// **'Fetched from Polar directly: Polar learns this phone\'s address (or its VPN\'s), with the band\'s firmware version and hardware code.'**
String get loopFirmwareViaPolar;
/// No description provided for @loopFirmwareViaInstance.
///
/// In en, this message translates to:
/// **'Fetched through your instance: Polar learns the instance\'s address, not this phone\'s, with the band\'s firmware version and hardware code.'**
String get loopFirmwareViaInstance;
/// No description provided for @loopFirmwareErases.
///
/// In en, this message translates to:
/// **'The update erases the band. Train first keeps what is on it, then sets it up again with your profile.'**
String get loopFirmwareErases;
/// No description provided for @loopFirmwareUpdate.
///
/// In en, this message translates to:
/// **'Update'**
String get loopFirmwareUpdate;
/// No description provided for @loopFirmwareUpdateTitle.
///
/// In en, this message translates to:
/// **'Update the band\'s firmware?'**
String get loopFirmwareUpdateTitle;
/// No description provided for @loopFirmwareUpdateText.
///
/// In en, this message translates to:
/// **'Train first keeps what is on the band, as the update erases it. The band restarts, which takes a few minutes, and Train then sets it up again with your profile. Keep it near the phone until then.'**
String get loopFirmwareUpdateText;
/// No description provided for @loopFirmwareStage.
///
/// In en, this message translates to:
/// **'{stage, select, reading{Keeping what is on the band…} fetching{Fetching the firmware…} preparing{Preparing the band…} writing{Writing the firmware…} finalizing{Finishing the update…} done{Written} restarting{The band restarts…} other{Updating…}}'**
String loopFirmwareStage(String stage);
/// No description provided for @loopFirmwareStageHint.
///
/// In en, this message translates to:
/// **'Keep the band near the phone, and Train open.'**
String get loopFirmwareStageHint;
/// No description provided for @loopFirmwareUpdated.
///
/// In en, this message translates to:
/// **'Firmware updated; the band is set up again.'**
String get loopFirmwareUpdated;
/// No description provided for @loopFirmwareThroughInstance.
///
/// In en, this message translates to:
/// **'Firmware through your instance'**
String get loopFirmwareThroughInstance;
/// No description provided for @loopFirmwareThroughInstanceHint.
///
/// In en, this message translates to:
/// **'Polar then learns the instance\'s address rather than this phone\'s. Off, the phone asks Polar directly.'**
String get loopFirmwareThroughInstanceHint;
/// No description provided for @loopProfileChanged.
///
/// In en, this message translates to:
/// **'Your body changed since the band was set up'**
String get loopProfileChanged;
/// No description provided for @loopProfileChangedHint.
///
/// In en, this message translates to:
/// **'Sending sets the band up again with your figures as they are now.'**
String get loopProfileChangedHint;
/// No description provided for @loopSend.
///
/// In en, this message translates to:
/// **'Send to the band'**
String get loopSend;
/// No description provided for @loopSent.
///
/// In en, this message translates to:
/// **'Sent to the band.'**
String get loopSent;
/// No description provided for @loopFailed.
///
/// In en, this message translates to:
/// **'The band didn\'t answer. Keep it close, and try again.'**
String get loopFailed;
/// No description provided for @loopSearching.
///
/// In en, this message translates to:
/// **'Looking for Loops nearby'**
String get loopSearching;
/// No description provided for @loopSearchingHint.
///
/// In en, this message translates to:
/// **'Keep the band close; tap it to wake it up.'**
String get loopSearchingHint;
/// No description provided for @loopRefused.
///
/// In en, this message translates to:
/// **'Train can\'t look for your band without nearby devices. Allow them in Android\'s settings.'**
String get loopRefused;
/// No description provided for @loopUnnamed.
///
/// In en, this message translates to:
/// **'Polar Loop'**
String get loopUnnamed;
/// No description provided for @loopSettingUp.
///
/// In en, this message translates to:
/// **'Setting up the band…'**
String get loopSettingUp;
/// No description provided for @loopSettingUpHint.
///
/// In en, this message translates to:
/// **'Android may ask you to pair it.'**
String get loopSettingUpHint;
/// No description provided for @loopSetUpDone.
///
/// In en, this message translates to:
/// **'The band is set up.'**
String get loopSetUpDone;
/// No description provided for @loopFormTitle.
///
/// In en, this message translates to:
/// **'For your band'**
String get loopFormTitle;
/// No description provided for @loopFormIntro.
///
/// In en, this message translates to:
/// **'Your band needs these. They\'re kept in Your body, sealed with your key. For a resting or highest heart rate or a VO2max you haven\'t given, the band takes Polar\'s defaults, and Your body stays as it is.'**
String get loopFormIntro;
/// No description provided for @loopFormSave.
///
/// In en, this message translates to:
/// **'Set up the band'**
String get loopFormSave;
/// No description provided for @homeWorkouts.
///
/// In en, this message translates to:
/// **'Workouts'**
String get homeWorkouts;
/// No description provided for @profileTabProgress.
///
/// In en, this message translates to:
/// **'Progress'**
String get profileTabProgress;
/// No description provided for @homeDays.
///
/// In en, this message translates to:
/// **'Days'**
String get homeDays;
/// No description provided for @homePlans.
///
/// In en, this message translates to:
/// **'Plans'**
String get homePlans;
/// No description provided for @plansNew.
///
/// In en, this message translates to:
/// **'New plan'**
String get plansNew;
/// No description provided for @plansNewEmpty.
///
/// In en, this message translates to:
/// **'From nothing'**
String get plansNewEmpty;
/// No description provided for @plansEmptyTitle.
///
/// In en, this message translates to:
/// **'No plans yet'**
String get plansEmptyTitle;
/// No description provided for @plansEmptyHint.
///
/// In en, this message translates to:
/// **'A plan\'s steps lead you through intervals as you record, with a tone, a vibration and a voice at each change. Start from a template, or from nothing.'**
String get plansEmptyHint;
/// No description provided for @planLocked.
///
/// In en, this message translates to:
/// **'A plan that doesn\'t open here'**
String get planLocked;
/// No description provided for @planTemplateFourByFour.
///
/// In en, this message translates to:
/// **'4×4 minutes'**
String get planTemplateFourByFour;
/// No description provided for @planTemplateTabata.
///
/// In en, this message translates to:
/// **'Tabata'**
String get planTemplateTabata;
/// No description provided for @planTemplateFourHundreds.
///
/// In en, this message translates to:
/// **'10×400 m'**
String get planTemplateFourHundreds;
/// No description provided for @planTitle.
///
/// In en, this message translates to:
/// **'Plan'**
String get planTitle;
/// No description provided for @planNewTitle.
///
/// In en, this message translates to:
/// **'New plan'**
String get planNewTitle;
/// No description provided for @planName.
///
/// In en, this message translates to:
/// **'Name'**
String get planName;
/// No description provided for @planActivity.
///
/// In en, this message translates to:
/// **'For'**
String get planActivity;
/// No description provided for @planActivityAny.
///
/// In en, this message translates to:
/// **'Any activity'**
String get planActivityAny;
/// No description provided for @planOffTarget.
///
/// In en, this message translates to:
/// **'Tell me when I\'m off target'**
String get planOffTarget;
/// No description provided for @planOffTargetHint.
///
/// In en, this message translates to:
/// **'A short cue at most every 30 seconds.'**
String get planOffTargetHint;
/// No description provided for @planSave.
///
/// In en, this message translates to:
/// **'Save'**
String get planSave;
/// No description provided for @planNotSaved.
///
/// In en, this message translates to:
/// **'The plan wasn\'t saved.'**
String get planNotSaved;
/// No description provided for @planAddStep.
///
/// In en, this message translates to:
/// **'Add a step'**
String get planAddStep;
/// No description provided for @planAddRepeat.
///
/// In en, this message translates to:
/// **'Add a repeat'**
String get planAddRepeat;
/// No description provided for @planRepeat.
///
/// In en, this message translates to:
/// **'{count}×'**
String planRepeat(int count);
/// No description provided for @planFewer.
///
/// In en, this message translates to:
/// **'Fewer rounds'**
String get planFewer;
/// No description provided for @planMore.
///
/// In en, this message translates to:
/// **'More rounds'**
String get planMore;
/// No description provided for @planBlockMenu.
///
/// In en, this message translates to:
/// **'More'**
String get planBlockMenu;
/// No description provided for @planMoveUp.
///
/// In en, this message translates to:
/// **'Move up'**
String get planMoveUp;
/// No description provided for @planMoveDown.
///
/// In en, this message translates to:
/// **'Move down'**
String get planMoveDown;
/// No description provided for @planRemove.
///
/// In en, this message translates to:
/// **'Remove'**
String get planRemove;
/// No description provided for @planDelete.
///
/// In en, this message translates to:
/// **'Delete'**
String get planDelete;
/// No description provided for @planDeleteTitle.
///
/// In en, this message translates to:
/// **'Delete this plan?'**
String get planDeleteTitle;
/// No description provided for @planDeleteMessage.
///
/// In en, this message translates to:
/// **'It\'s deleted on all your devices; workouts recorded with it keep their steps.'**
String get planDeleteMessage;
/// No description provided for @planDeleted.
///
/// In en, this message translates to:
/// **'Plan deleted'**
String get planDeleted;
/// No description provided for @planSteps.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 step} other{{count} steps}}'**
String planSteps(int count);
/// No description provided for @planSayRound.
///
/// In en, this message translates to:
/// **'{round} of {rounds}'**
String planSayRound(int round, int rounds);
/// No description provided for @planSayMinutes.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 minute} other{{count} minutes}}'**
String planSayMinutes(int count);
/// No description provided for @planSaySeconds.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 second} other{{count} seconds}}'**
String planSaySeconds(int count);
/// No description provided for @planSayMetres.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 metre} other{{count} metres}}'**
String planSayMetres(int count);
/// No description provided for @planSayKilometres.
///
/// In en, this message translates to:
/// **'{km} kilometres'**
String planSayKilometres(String km);
/// No description provided for @planSayUntilLap.
///
/// In en, this message translates to:
/// **'until you tap Lap'**
String get planSayUntilLap;
/// No description provided for @planSayPace.
///
/// In en, this message translates to:
/// **'{from} to {to} a kilometre'**
String planSayPace(String from, String to);
/// No description provided for @planSaySpeed.
///
/// In en, this message translates to:
/// **'{from} to {to} kilometres an hour'**
String planSaySpeed(String from, String to);
/// No description provided for @planSayHeartRate.
///
/// In en, this message translates to:
/// **'{from} to {to} beats a minute'**
String planSayHeartRate(String from, String to);
/// No description provided for @planSayZone.
///
/// In en, this message translates to:
/// **'zone {zone}'**
String planSayZone(int zone);
/// No description provided for @planSaySplit.
///
/// In en, this message translates to:
/// **'{from} to {to} per 500 metres'**
String planSaySplit(String from, String to);
/// No description provided for @planSayWatts.
///
/// In en, this message translates to:
/// **'{from} to {to} watts'**
String planSayWatts(String from, String to);
/// No description provided for @planSayStrokeRate.
///
/// In en, this message translates to:
/// **'{from} to {to} strokes a minute'**
String planSayStrokeRate(String from, String to);
/// No description provided for @planSayHarder.
///
/// In en, this message translates to:
/// **'Push a little'**
String get planSayHarder;
/// No description provided for @planSayEasier.
///
/// In en, this message translates to:
/// **'Ease off a little'**
String get planSayEasier;
/// No description provided for @planSayDone.
///
/// In en, this message translates to:
/// **'Plan done'**
String get planSayDone;
/// No description provided for @stepTitle.
///
/// In en, this message translates to:
/// **'Step'**
String get stepTitle;
/// No description provided for @stepKind.
///
/// In en, this message translates to:
/// **'Kind'**
String get stepKind;
/// No description provided for @stepWarmUp.
///
/// In en, this message translates to:
/// **'Warm-up'**
String get stepWarmUp;
/// No description provided for @stepWork.
///
/// In en, this message translates to:
/// **'Work'**
String get stepWork;
/// No description provided for @stepRecovery.
///
/// In en, this message translates to:
/// **'Recovery'**
String get stepRecovery;
/// No description provided for @stepCoolDown.
///
/// In en, this message translates to:
/// **'Cool-down'**
String get stepCoolDown;
/// No description provided for @stepEnds.
///
/// In en, this message translates to:
/// **'Ends'**
String get stepEnds;
/// No description provided for @stepEndTime.
///
/// In en, this message translates to:
/// **'After a time'**
String get stepEndTime;
/// No description provided for @stepEndDistance.
///
/// In en, this message translates to:
/// **'After a distance'**
String get stepEndDistance;
/// No description provided for @stepEndLap.
///
/// In en, this message translates to:
/// **'With a lap tap'**
String get stepEndLap;
/// No description provided for @stepTimeLabel.
///
/// In en, this message translates to:
/// **'Time (min:s)'**
String get stepTimeLabel;
/// No description provided for @stepMetresLabel.
///
/// In en, this message translates to:
/// **'Metres'**
String get stepMetresLabel;
/// No description provided for @stepTarget.
///
/// In en, this message translates to:
/// **'Target'**
String get stepTarget;
/// No description provided for @stepZone.
///
/// In en, this message translates to:
/// **'Zone'**
String get stepZone;
/// No description provided for @stepDone.
///
/// In en, this message translates to:
/// **'Done'**
String get stepDone;
/// No description provided for @stepMinutes.
///
/// In en, this message translates to:
/// **'{minutes} min'**
String stepMinutes(int minutes);
/// No description provided for @stepSeconds.
///
/// In en, this message translates to:
/// **'{seconds} s'**
String stepSeconds(int seconds);
/// No description provided for @stepMinutesSeconds.
///
/// In en, this message translates to:
/// **'{minutes} min {seconds} s'**
String stepMinutesSeconds(int minutes, int seconds);
/// No description provided for @stepMetres.
///
/// In en, this message translates to:
/// **'{metres} m'**
String stepMetres(int metres);
/// No description provided for @stepKilometres.
///
/// In en, this message translates to:
/// **'{km} km'**
String stepKilometres(String km);
/// No description provided for @stepUntilLap.
///
/// In en, this message translates to:
/// **'until a lap tap'**
String get stepUntilLap;
/// No description provided for @targetNone.
///
/// In en, this message translates to:
/// **'None'**
String get targetNone;
/// No description provided for @targetFrom.
///
/// In en, this message translates to:
/// **'From'**
String get targetFrom;
/// No description provided for @targetTo.
///
/// In en, this message translates to:
/// **'To'**
String get targetTo;
/// No description provided for @targetKindPace.
///
/// In en, this message translates to:
/// **'Pace (per km)'**
String get targetKindPace;
/// No description provided for @targetKindSpeed.
///
/// In en, this message translates to:
/// **'Speed (km/h)'**
String get targetKindSpeed;
/// No description provided for @targetKindHeartRate.
///
/// In en, this message translates to:
/// **'Heart rate (bpm)'**
String get targetKindHeartRate;
/// No description provided for @targetKindHeartZone.
///
/// In en, this message translates to:
/// **'Heart-rate zone'**
String get targetKindHeartZone;
/// No description provided for @targetKindSplit.
///
/// In en, this message translates to:
/// **'Split (per 500 m)'**
String get targetKindSplit;
/// No description provided for @targetKindWatts.
///
/// In en, this message translates to:
/// **'Power (W)'**
String get targetKindWatts;
/// No description provided for @targetKindStrokeRate.
///
/// In en, this message translates to:
/// **'Stroke rate (per min)'**
String get targetKindStrokeRate;
/// No description provided for @targetPace.
///
/// In en, this message translates to:
/// **'{from}–{to} per km'**
String targetPace(String from, String to);
/// No description provided for @targetSpeed.
///
/// In en, this message translates to:
/// **'{from}–{to} km/h'**
String targetSpeed(String from, String to);
/// No description provided for @targetHeartRate.
///
/// In en, this message translates to:
/// **'{from}–{to} bpm'**
String targetHeartRate(String from, String to);
/// No description provided for @targetZone.
///
/// In en, this message translates to:
/// **'Zone {zone}'**
String targetZone(int zone);
/// No description provided for @targetSplit.
///
/// In en, this message translates to:
/// **'{from}–{to} per 500 m'**
String targetSplit(String from, String to);
/// No description provided for @targetWatts.
///
/// In en, this message translates to:
/// **'{from}–{to} W'**
String targetWatts(String from, String to);
/// No description provided for @targetStrokeRate.
///
/// In en, this message translates to:
/// **'{from}–{to} strokes/min'**
String targetStrokeRate(String from, String to);
/// No description provided for @daysEmptyTitle.
///
/// In en, this message translates to:
/// **'No days yet'**
String get daysEmptyTitle;
/// No description provided for @daysEmptyHint.
///
/// In en, this message translates to:
/// **'The days and nights your Polar Loop counts show here.'**
String get daysEmptyHint;
/// No description provided for @daysSteps.
///
/// In en, this message translates to:
/// **'{steps, plural, =1{1 step} other{{steps} steps}}'**
String daysSteps(int steps);
/// No description provided for @daysActive.
///
/// In en, this message translates to:
/// **'{time} active'**
String daysActive(String time);
/// No description provided for @daysAsleep.
///
/// In en, this message translates to:
/// **'{time} asleep'**
String daysAsleep(String time);
/// No description provided for @daysRecharge.
///
/// In en, this message translates to:
/// **'Recharge {level} of 6'**
String daysRecharge(int level);
/// No description provided for @dayHoursMinutes.
///
/// In en, this message translates to:
/// **'{hours} h {minutes} min'**
String dayHoursMinutes(int hours, int minutes);
/// No description provided for @dayMinutes.
///
/// In en, this message translates to:
/// **'{minutes} min'**
String dayMinutes(int minutes);
/// No description provided for @dayCalories.
///
/// In en, this message translates to:
/// **'{calories} kcal'**
String dayCalories(int calories);
/// No description provided for @dayGoal.
///
/// In en, this message translates to:
/// **'{percent} % of the day\'s goal'**
String dayGoal(int percent);
/// No description provided for @dayNothing.
///
/// In en, this message translates to:
/// **'The band has given nothing for this day yet.'**
String get dayNothing;
/// No description provided for @dayTimes.
///
/// In en, this message translates to:
/// **'The day\'s time'**
String get dayTimes;
/// No description provided for @dayTimeNonWear.
///
/// In en, this message translates to:
/// **'Not worn'**
String get dayTimeNonWear;
/// No description provided for @dayTimeSleep.
///
/// In en, this message translates to:
/// **'Asleep'**
String get dayTimeSleep;
/// No description provided for @dayTimeSedentary.
///
/// In en, this message translates to:
/// **'Sitting still'**
String get dayTimeSedentary;
/// No description provided for @dayTimeLight.
///
/// In en, this message translates to:
/// **'Light activity'**
String get dayTimeLight;
/// No description provided for @dayTimeModerate.
///
/// In en, this message translates to:
/// **'Moderate activity'**
String get dayTimeModerate;
/// No description provided for @dayTimeVigorous.
///
/// In en, this message translates to:
/// **'Vigorous activity'**
String get dayTimeVigorous;
/// No description provided for @dayHeartRate.
///
/// In en, this message translates to:
/// **'Heart rate'**
String get dayHeartRate;
/// No description provided for @dayBpm.
///
/// In en, this message translates to:
/// **'{bpm} bpm'**
String dayBpm(int bpm);
/// No description provided for @dayNight.
///
/// In en, this message translates to:
/// **'The night'**
String get dayNight;
/// No description provided for @dayNightSpan.
///
/// In en, this message translates to:
/// **'{from} – {to}'**
String dayNightSpan(String from, String to);
/// No description provided for @daySleepWake.
///
/// In en, this message translates to:
/// **'Awake'**
String get daySleepWake;
/// No description provided for @daySleepRem.
///
/// In en, this message translates to:
/// **'REM'**
String get daySleepRem;
/// No description provided for @daySleepLight.
///
/// In en, this message translates to:
/// **'Light'**
String get daySleepLight;
/// No description provided for @daySleepDeep.
///
/// In en, this message translates to:
/// **'Deep'**
String get daySleepDeep;
/// No description provided for @dayRatingPoorly.
///
/// In en, this message translates to:
/// **'You slept poorly'**
String get dayRatingPoorly;
/// No description provided for @dayRatingSomewhatPoorly.
///
/// In en, this message translates to:
/// **'You slept somewhat poorly'**
String get dayRatingSomewhatPoorly;
/// No description provided for @dayRatingNeither.
///
/// In en, this message translates to:
/// **'You slept neither poorly nor well'**
String get dayRatingNeither;
/// No description provided for @dayRatingSomewhatWell.
///
/// In en, this message translates to:
/// **'You slept somewhat well'**
String get dayRatingSomewhatWell;
/// No description provided for @dayRatingWell.
///
/// In en, this message translates to:
/// **'You slept well'**
String get dayRatingWell;
/// No description provided for @dayRecharge.
///
/// In en, this message translates to:
/// **'Nightly Recharge'**
String get dayRecharge;
/// No description provided for @dayRecovery.
///
/// In en, this message translates to:
/// **'Recovery'**
String get dayRecovery;
/// No description provided for @dayRecoveryOf.
///
/// In en, this message translates to:
/// **'{level} of 6'**
String dayRecoveryOf(int level);
/// No description provided for @dayAns.
///
/// In en, this message translates to:
/// **'Autonomic nervous system'**
String get dayAns;
/// No description provided for @dayHrvName.
///
/// In en, this message translates to:
/// **'Heart rate variability'**
String get dayHrvName;
/// No description provided for @dayBreathingName.
///
/// In en, this message translates to:
/// **'Breathing'**
String get dayBreathingName;
/// No description provided for @dayPerMinute.
///
/// In en, this message translates to:
/// **'{rate} a minute'**
String dayPerMinute(String rate);
/// No description provided for @dayMs.
///
/// In en, this message translates to:
/// **'{ms} ms'**
String dayMs(int ms);
/// Below a figure of the night: the person's own usual, as Polar learnt it.
///
/// In en, this message translates to:
/// **'usually {value}'**
String dayUsual(String value);
/// No description provided for @dayRechargeHelp.
///
/// In en, this message translates to:
/// **'Nightly Recharge is Polar\'s measure of how your body recovered in the first hours of sleep, against your own usual. Recovery runs from 1 to 6. The autonomic nervous system\'s status runs from −10 to +10: above 0, it settled better than usual. Heart rate variability is how much the time between heartbeats varies; higher than usual tends to mean a better recovery. Breathing counts your breaths a minute. A figure the band has none of yet is left out.'**
String get dayRechargeHelp;
/// No description provided for @daySkin.
///
/// In en, this message translates to:
/// **'Skin temperature'**
String get daySkin;
/// No description provided for @dayCelsius.
///
/// In en, this message translates to:
/// **'{value} °C'**
String dayCelsius(String value);
/// No description provided for @daySkinDeviation.
///
/// In en, this message translates to:
/// **'{value} °C from your usual at night'**
String daySkinDeviation(String value);
/// No description provided for @homeRoutes.
///
/// In en, this message translates to:
/// **'Routes'**
String get homeRoutes;
/// No description provided for @routesNew.
///
/// In en, this message translates to:
/// **'New route'**
String get routesNew;
/// No description provided for @routesEmptyTitle.
///
/// In en, this message translates to:
/// **'No routes yet'**
String get routesEmptyTitle;
/// No description provided for @routesEmptyHint.
///
/// In en, this message translates to:
/// **'Tap the map to set waypoints, and your instance plans the way between them on paths and roads, with its climb and surfaces.'**
String get routesEmptyHint;
/// No description provided for @routeLocked.
///
/// In en, this message translates to:
/// **'A route that doesn\'t open here'**
String get routeLocked;
/// No description provided for @routeTitle.
///
/// In en, this message translates to:
/// **'Route'**
String get routeTitle;
/// No description provided for @routeNewTitle.
///
/// In en, this message translates to:
/// **'New route'**
String get routeNewTitle;
/// No description provided for @routeName.
///
/// In en, this message translates to:
/// **'Name'**
String get routeName;
/// No description provided for @routeActivity.
///
/// In en, this message translates to:
/// **'For'**
String get routeActivity;
/// No description provided for @routeActivityAny.
///
/// In en, this message translates to:
/// **'Any activity'**
String get routeActivityAny;
/// No description provided for @routeProfile.
///
/// In en, this message translates to:
/// **'Planned for'**
String get routeProfile;
/// No description provided for @routeProfileRun.
///
/// In en, this message translates to:
/// **'Running'**
String get routeProfileRun;
/// No description provided for @routeProfileHike.
///
/// In en, this message translates to:
/// **'Hiking'**
String get routeProfileHike;
/// No description provided for @routeProfileRoadBike.
///
/// In en, this message translates to:
/// **'Road bike'**
String get routeProfileRoadBike;
/// No description provided for @routeProfileTrekkingBike.
///
/// In en, this message translates to:
/// **'Trekking bike'**
String get routeProfileTrekkingBike;
/// No description provided for @routeProfileGravel.
///
/// In en, this message translates to:
/// **'Gravel bike'**
String get routeProfileGravel;
/// No description provided for @routeProfileMtb.
///
/// In en, this message translates to:
/// **'Mountain bike'**
String get routeProfileMtb;
/// No description provided for @routeTapHint.
///
/// In en, this message translates to:
/// **'Tap the map to add a waypoint, tap one to take it off. Hold one to drag it, or hold the line to pull out another.'**
String get routeTapHint;
/// The menu of a waypoint tapped on the planner's map (D59).
///
/// In en, this message translates to:
/// **'Take this waypoint off'**
String get routeWaypointRemove;
/// No description provided for @routeUndo.
///
/// In en, this message translates to:
/// **'Take the last waypoint off'**
String get routeUndo;
/// The planner's search field over the map (D50).
///
/// In en, this message translates to:
/// **'Search for a place'**
String get routeSearchHint;
/// No description provided for @routeSearchClear.
///
/// In en, this message translates to:
/// **'Clear the search'**
String get routeSearchClear;
/// Under the planner's search: the instance found no place.
///
/// In en, this message translates to:
/// **'Nothing found.'**
String get routeSearchNothing;
/// No description provided for @routeSearchTooOften.
///
/// In en, this message translates to:
/// **'Too many searches for now; try again in a minute.'**
String get routeSearchTooOften;
/// No description provided for @routeSearchUnreachable.
///
/// In en, this message translates to:
/// **'The search can\'t be reached now.'**
String get routeSearchUnreachable;
/// No description provided for @routePlanning.
///
/// In en, this message translates to:
/// **'Planning…'**
String get routePlanning;
/// No description provided for @routeRefusedInvalid.
///
/// In en, this message translates to:
/// **'A waypoint too many, or one off the map.'**
String get routeRefusedInvalid;
/// No description provided for @routeRefusedTooOften.
///
/// In en, this message translates to:
/// **'Planned too often: try again in a minute.'**
String get routeRefusedTooOften;
/// No description provided for @routeRefusedNoRoute.
///
/// In en, this message translates to:
/// **'No way found there: a waypoint may be off the paths, or outside the region your instance plans in.'**
String get routeRefusedNoRoute;
/// No description provided for @routeRefusedUnreachable.
///
/// In en, this message translates to:
/// **'Your instance can\'t be reached to plan the way.'**
String get routeRefusedUnreachable;
/// No description provided for @routeNotOffered.
///
/// In en, this message translates to:
/// **'Your instance doesn\'t plan routes.'**
String get routeNotOffered;
/// No description provided for @routeAscent.
///
/// In en, this message translates to:
/// **'{metres} m up'**
String routeAscent(int metres);
/// No description provided for @routeDescent.
///
/// In en, this message translates to:
/// **'{metres} m down'**
String routeDescent(int metres);
/// A route in the list: its distance and climb.
///
/// In en, this message translates to:
/// **'{distance} · {ascent}'**
String routeSummary(String distance, String ascent);
/// In the Routes tab: a route brought in from a GPX file (ADR 0030, D45).
///
/// In en, this message translates to:
/// **'Bring in a GPX file'**
String get routesBringIn;
/// No description provided for @routeBringInTitle.
///
/// In en, this message translates to:
/// **'Bring in {name}'**
String routeBringInTitle(String name);
/// No description provided for @routeBringInSnap.
///
/// In en, this message translates to:
/// **'Plan it along the paths'**
String get routeBringInSnap;
/// No description provided for @routeBringInSnapHint.
///
/// In en, this message translates to:
/// **'Through its points, with the profile you choose; its turns told'**
String get routeBringInSnapHint;
/// No description provided for @routeBringInDrawn.
///
/// In en, this message translates to:
/// **'Keep it as drawn'**
String get routeBringInDrawn;
/// No description provided for @routeBringInDrawnHint.
///
/// In en, this message translates to:
/// **'Its way as the file has it, no turns told'**
String get routeBringInDrawnHint;
/// No description provided for @routeNotGpx.
///
/// In en, this message translates to:
/// **'This file holds no route Train can read'**
String get routeNotGpx;
/// No description provided for @routeShareGpx.
///
/// In en, this message translates to:
/// **'Share as GPX'**
String get routeShareGpx;
/// No description provided for @routeSaveGpx.
///
/// In en, this message translates to:
/// **'Save as GPX'**
String get routeSaveGpx;
/// A switch on a saved route: its map kept on this device (ADR 0030, D45).
///
/// In en, this message translates to:
/// **'Keep the map offline'**
String get routeOffline;
/// No description provided for @routeOfflineOff.
///
/// In en, this message translates to:
/// **'Its map along the way, 2 km either side, on this device for when there\'s no network'**
String get routeOfflineOff;
/// No description provided for @routeOfflineLoading.
///
/// In en, this message translates to:
/// **'Keeping the map: {done} of {total} tiles'**
String routeOfflineLoading(int done, int total);
/// No description provided for @routeOfflineKept.
///
/// In en, this message translates to:
/// **'Kept on this device: {size} MB'**
String routeOfflineKept(String size);
/// No description provided for @routeOfflineMissing.
///
/// In en, this message translates to:
/// **'{missing} of {total} tiles didn\'t come: asked for again when the app next opens online'**
String routeOfflineMissing(int missing, int total);
/// No description provided for @routeOfflineNoMap.
///
/// In en, this message translates to:
/// **'The map can\'t be reached now: try again online'**
String get routeOfflineNoMap;
/// No description provided for @routeOfflineSaveFirst.
///
/// In en, this message translates to:
/// **'Save the route to keep its map offline'**
String get routeOfflineSaveFirst;
/// No description provided for @routeKeptOffline.
///
/// In en, this message translates to:
/// **'Map kept offline'**
String get routeKeptOffline;
/// No description provided for @routeSurfaces.
///
/// In en, this message translates to:
/// **'Surfaces'**
String get routeSurfaces;
/// No description provided for @surfacePaved.
///
/// In en, this message translates to:
/// **'Paved'**
String get surfacePaved;
/// No description provided for @surfaceCompacted.
///
/// In en, this message translates to:
/// **'Compacted'**
String get surfaceCompacted;
/// No description provided for @surfaceGravel.
///
/// In en, this message translates to:
/// **'Gravel'**
String get surfaceGravel;
/// No description provided for @surfaceNatural.
///
/// In en, this message translates to:
/// **'Natural ground'**
String get surfaceNatural;
/// No description provided for @surfaceUnknown.
///
/// In en, this message translates to:
/// **'Not known'**
String get surfaceUnknown;
/// No description provided for @routeSave.
///
/// In en, this message translates to:
/// **'Save'**
String get routeSave;
/// No description provided for @routeNotSaved.
///
/// In en, this message translates to:
/// **'The route wasn\'t saved.'**
String get routeNotSaved;
/// No description provided for @routeDelete.
///
/// In en, this message translates to:
/// **'Delete'**
String get routeDelete;
/// No description provided for @routeDeleteTitle.
///
/// In en, this message translates to:
/// **'Delete this route?'**
String get routeDeleteTitle;
/// No description provided for @routeDeleteMessage.
///
/// In en, this message translates to:
/// **'It\'s deleted on all your devices.'**
String get routeDeleteMessage;
/// No description provided for @routeDeleted.
///
/// In en, this message translates to:
/// **'Route deleted'**
String get routeDeleted;
/// No description provided for @turnStraight.
///
/// In en, this message translates to:
/// **'Go straight on'**
String get turnStraight;
/// No description provided for @turnLeft.
///
/// In en, this message translates to:
/// **'Turn left'**
String get turnLeft;
/// No description provided for @turnSlightLeft.
///
/// In en, this message translates to:
/// **'Bear left'**
String get turnSlightLeft;
/// No description provided for @turnSharpLeft.
///
/// In en, this message translates to:
/// **'Turn sharp left'**
String get turnSharpLeft;
/// No description provided for @turnRight.
///
/// In en, this message translates to:
/// **'Turn right'**
String get turnRight;
/// No description provided for @turnSlightRight.
///
/// In en, this message translates to:
/// **'Bear right'**
String get turnSlightRight;
/// No description provided for @turnSharpRight.
///
/// In en, this message translates to:
/// **'Turn sharp right'**
String get turnSharpRight;
/// No description provided for @turnKeepLeft.
///
/// In en, this message translates to:
/// **'Keep left'**
String get turnKeepLeft;
/// No description provided for @turnKeepRight.
///
/// In en, this message translates to:
/// **'Keep right'**
String get turnKeepRight;
/// No description provided for @turnAround.
///
/// In en, this message translates to:
/// **'Turn around'**
String get turnAround;
/// No description provided for @turnRoundabout.
///
/// In en, this message translates to:
/// **'At the roundabout, take exit {exit}'**
String turnRoundabout(int exit);
/// No description provided for @turnExitLeft.
///
/// In en, this message translates to:
/// **'Take the exit on the left'**
String get turnExitLeft;
/// No description provided for @turnExitRight.
///
/// In en, this message translates to:
/// **'Take the exit on the right'**
String get turnExitRight;
/// Spoken before a turn while following a route.
///
/// In en, this message translates to:
/// **'In {metres} metres: {turn}'**
String routeSayIn(int metres, String turn);
/// Spoken off the route; the recorder puts the figures in.
///
/// In en, this message translates to:
/// **'Off the route. It lies {metres} metres {direction}.'**
String routeSayOff(String metres, String direction);
/// No description provided for @routeSayOn.
///
/// In en, this message translates to:
/// **'Back on the route'**
String get routeSayOn;
/// No description provided for @routeSayArrived.
///
/// In en, this message translates to:
/// **'End of the route'**
String get routeSayArrived;
/// No description provided for @directionNorth.
///
/// In en, this message translates to:
/// **'to the north'**
String get directionNorth;
/// No description provided for @directionNorthEast.
///
/// In en, this message translates to:
/// **'to the north-east'**
String get directionNorthEast;
/// No description provided for @directionEast.
///
/// In en, this message translates to:
/// **'to the east'**
String get directionEast;
/// No description provided for @directionSouthEast.
///
/// In en, this message translates to:
/// **'to the south-east'**
String get directionSouthEast;
/// No description provided for @directionSouth.
///
/// In en, this message translates to:
/// **'to the south'**
String get directionSouth;
/// No description provided for @directionSouthWest.
///
/// In en, this message translates to:
/// **'to the south-west'**
String get directionSouthWest;
/// No description provided for @directionWest.
///
/// In en, this message translates to:
/// **'to the west'**
String get directionWest;
/// No description provided for @directionNorthWest.
///
/// In en, this message translates to:
/// **'to the north-west'**
String get directionNorthWest;
/// No description provided for @recordRoute.
///
/// In en, this message translates to:
/// **'Route'**
String get recordRoute;
/// No description provided for @recordNoRoute.
///
/// In en, this message translates to:
/// **'None'**
String get recordNoRoute;
/// No description provided for @recordingNextTurn.
///
/// In en, this message translates to:
/// **'In {distance}'**
String recordingNextTurn(String distance);
/// No description provided for @recordingOffRoute.
///
/// In en, this message translates to:
/// **'Off the route: {distance} {direction}'**
String recordingOffRoute(String distance, String direction);
/// No description provided for @recordingRouteEnd.
///
/// In en, this message translates to:
/// **'End of the route'**
String get recordingRouteEnd;
/// No description provided for @recordingFollowRoute.
///
/// In en, this message translates to:
/// **'Following {name}'**
String recordingFollowRoute(String name);
/// No description provided for @recordingMapHint.
///
/// In en, this message translates to:
/// **'Swipe for the map'**
String get recordingMapHint;
/// No description provided for @recordingFiguresHint.
///
/// In en, this message translates to:
/// **'Swipe back for the figures'**
String get recordingFiguresHint;
/// No description provided for @recordingNorthUp.
///
/// In en, this message translates to:
/// **'North up'**
String get recordingNorthUp;
/// No description provided for @recordingHeadingUp.
///
/// In en, this message translates to:
/// **'Heading up'**
String get recordingHeadingUp;
/// The music screen's title, and its tile in the account sheet.
///
/// In en, this message translates to:
/// **'Music'**
String get musicTitle;
/// Under Music in the account sheet.
///
/// In en, this message translates to:
/// **'Jellyfin playlists to run to'**
String get musicHint;
/// No description provided for @musicIntro.
///
/// In en, this message translates to:
/// **'Train plays music from your Jellyfin server, choosing tracks whose beat fits your steps. Your account and music stay on this phone.'**
String get musicIntro;
/// The label of the server's address.
///
/// In en, this message translates to:
/// **'Jellyfin server'**
String get musicServer;
/// No description provided for @musicConnect.
///
/// In en, this message translates to:
/// **'Connect'**
String get musicConnect;
/// No description provided for @musicBadAddress.
///
/// In en, this message translates to:
/// **'Enter the server\'s address, such as jellyfin.example.org.'**
String get musicBadAddress;
/// No description provided for @musicInClear.
///
/// In en, this message translates to:
/// **'Train connects to Jellyfin over https only: http would send the password unencrypted. Use the server\'s https address.'**
String get musicInClear;
/// No description provided for @musicUnreachable.
///
/// In en, this message translates to:
/// **'The server can\'t be reached. Check the address and the connection.'**
String get musicUnreachable;
/// No description provided for @musicNotJellyfin.
///
/// In en, this message translates to:
/// **'There is no Jellyfin server at this address.'**
String get musicNotJellyfin;
/// No description provided for @musicRefused.
///
/// In en, this message translates to:
/// **'Jellyfin refused. Check the user name and password.'**
String get musicRefused;
/// No description provided for @musicCodeExpired.
///
/// In en, this message translates to:
/// **'The code has expired.'**
String get musicCodeExpired;
/// No description provided for @musicFailed.
///
/// In en, this message translates to:
/// **'Jellyfin answered with an error. Try again later.'**
String get musicFailed;
/// No description provided for @musicQuickConnect.
///
/// In en, this message translates to:
/// **'To sign in to {server}, enter this code in Jellyfin on another device, under Settings, Quick Connect.'**
String musicQuickConnect(String server);
/// No description provided for @musicNewCode.
///
/// In en, this message translates to:
/// **'New code'**
String get musicNewCode;
/// No description provided for @musicBack.
///
/// In en, this message translates to:
/// **'Back'**
String get musicBack;
/// No description provided for @musicUsePassword.
///
/// In en, this message translates to:
/// **'Use a password'**
String get musicUsePassword;
/// No description provided for @musicPasswordIntro.
///
/// In en, this message translates to:
/// **'Sign in to {server} with your Jellyfin user name and password.'**
String musicPasswordIntro(String server);
/// No description provided for @musicUserName.
///
/// In en, this message translates to:
/// **'User name'**
String get musicUserName;
/// No description provided for @musicPassword.
///
/// In en, this message translates to:
/// **'Password'**
String get musicPassword;
/// No description provided for @musicSignIn.
///
/// In en, this message translates to:
/// **'Sign in'**
String get musicSignIn;
/// No description provided for @musicSignedInAs.
///
/// In en, this message translates to:
/// **'Signed in as {name}'**
String musicSignedInAs(String name);
/// No description provided for @musicSignOut.
///
/// In en, this message translates to:
/// **'Sign out'**
String get musicSignOut;
/// No description provided for @musicPlaylists.
///
/// In en, this message translates to:
/// **'Playlists for running'**
String get musicPlaylists;
/// No description provided for @musicPlaylistsHint.
///
/// In en, this message translates to:
/// **'Train chooses from the tracks of the playlists you mark, and keeps them on this phone.'**
String get musicPlaylistsHint;
/// No description provided for @musicNoPlaylists.
///
/// In en, this message translates to:
/// **'There are no music playlists on this server yet.'**
String get musicNoPlaylists;
/// No description provided for @musicRetry.
///
/// In en, this message translates to:
/// **'Try again'**
String get musicRetry;
/// No description provided for @musicTracks.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 track} other{{count} tracks}}'**
String musicTracks(int count);
/// No description provided for @musicKept.
///
/// In en, this message translates to:
/// **'On this phone'**
String get musicKept;
/// No description provided for @musicKeptWaiting.
///
/// In en, this message translates to:
/// **'{done} of {total} tracks: the rest waits for Wi-Fi'**
String musicKeptWaiting(int done, int total);
/// No description provided for @musicKeptLoading.
///
/// In en, this message translates to:
/// **'Downloading: {done} of {total} tracks'**
String musicKeptLoading(int done, int total);
/// No description provided for @musicKeptDone.
///
/// In en, this message translates to:
/// **'{count} tracks, {size} MB, {tempo} with a tempo'**
String musicKeptDone(int count, String size, int tempo);
/// No description provided for @musicKeptDelete.
///
/// In en, this message translates to:
/// **'Delete'**
String get musicKeptDelete;
/// No description provided for @musicKeptDeleteTitle.
///
/// In en, this message translates to:
/// **'Delete the music on this phone?'**
String get musicKeptDeleteTitle;
/// No description provided for @musicKeptDeleteText.
///
/// In en, this message translates to:
/// **'Every playlist is unmarked, and its tracks deleted from this phone. They stay on your Jellyfin server.'**
String get musicKeptDeleteText;
/// No description provided for @musicSmaller.
///
/// In en, this message translates to:
/// **'Smaller copies'**
String get musicSmaller;
/// No description provided for @musicSmallerHint.
///
/// In en, this message translates to:
/// **'Lossless files such as FLAC kept as Opus at 128 kbps, which your server makes. MP3 and AAC stay as they are.'**
String get musicSmallerHint;
/// No description provided for @recordMusic.
///
/// In en, this message translates to:
/// **'Music'**
String get recordMusic;
/// The segment playing the kept tracks by cadence.
///
/// In en, this message translates to:
/// **'Music'**
String get recordMusicOn;
/// No description provided for @recordMetronome.
///
/// In en, this message translates to:
/// **'Metronome'**
String get recordMetronome;
/// No description provided for @recordMusicOff.
///
/// In en, this message translates to:
/// **'Off'**
String get recordMusicOff;
/// No description provided for @recordAnnounce.
///
/// In en, this message translates to:
/// **'Announcements'**
String get recordAnnounce;
/// The switch's hint on foot (D49).
///
/// In en, this message translates to:
/// **'Every kilometre: time, pace and heart rate'**
String get recordAnnounceFoot;
/// The switch's hint on a bike (D49).
///
/// In en, this message translates to:
/// **'Every 5 km: time, speed and heart rate'**
String get recordAnnounceBike;
/// No description provided for @announceKilometres.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 kilometre} other{{count} kilometres}}'**
String announceKilometres(int count);
/// No description provided for @announceHours.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 hour} other{{count} hours}}'**
String announceHours(int count);
/// No description provided for @announceTime.
///
/// In en, this message translates to:
/// **'Time {time}'**
String announceTime(String time);
/// No description provided for @announcePace.
///
/// In en, this message translates to:
/// **'Pace {pace} a kilometre'**
String announcePace(String pace);
/// No description provided for @announceSpeed.
///
/// In en, this message translates to:
/// **'Speed {speed} kilometres an hour'**
String announceSpeed(String speed);
/// No description provided for @announceHeartRate.
///
/// In en, this message translates to:
/// **'Heart rate {bpm}'**
String announceHeartRate(String bpm);
/// No description provided for @workoutExport.
///
/// In en, this message translates to:
/// **'Export'**
String get workoutExport;
/// No description provided for @workoutExportTitle.
///
/// In en, this message translates to:
/// **'Export the workout'**
String get workoutExportTitle;
/// No description provided for @workoutExportGpxHint.
///
/// In en, this message translates to:
/// **'The track, for maps and other apps'**
String get workoutExportGpxHint;
/// No description provided for @workoutExportTcxHint.
///
/// In en, this message translates to:
/// **'Laps, heart rate and cadence, for most training sites'**
String get workoutExportTcxHint;
/// No description provided for @workoutExportFitHint.
///
/// In en, this message translates to:
/// **'What Strava, Garmin and intervals.icu read best'**
String get workoutExportFitHint;
/// No description provided for @recordSpeedSensor.
///
/// In en, this message translates to:
/// **'Speed and cadence sensor'**
String get recordSpeedSensor;
/// No description provided for @recordNoSpeedSensor.
///
/// In en, this message translates to:
/// **'None chosen'**
String get recordNoSpeedSensor;
/// No description provided for @recordPowerMeter.
///
/// In en, this message translates to:
/// **'Power meter'**
String get recordPowerMeter;
/// No description provided for @recordNoPowerMeter.
///
/// In en, this message translates to:
/// **'None chosen'**
String get recordNoPowerMeter;
/// No description provided for @speedSensorSheetTitle.
///
/// In en, this message translates to:
/// **'Speed and cadence sensor'**
String get speedSensorSheetTitle;
/// No description provided for @speedSensorSearching.
///
/// In en, this message translates to:
/// **'Looking for speed and cadence sensors nearby…'**
String get speedSensorSearching;
/// No description provided for @speedSensorSearchingHint.
///
/// In en, this message translates to:
/// **'Turn the wheel or the crank to wake it. One another app holds can\'t be found: close that app first.'**
String get speedSensorSearchingHint;
/// No description provided for @speedSensorUnnamed.
///
/// In en, this message translates to:
/// **'Unnamed sensor'**
String get speedSensorUnnamed;
/// No description provided for @speedSensorForget.
///
/// In en, this message translates to:
/// **'Forget sensor'**
String get speedSensorForget;
/// No description provided for @speedSensorRefused.
///
/// In en, this message translates to:
/// **'Train needs nearby devices to find your sensor. You can allow it in the system\'s settings.'**
String get speedSensorRefused;
/// No description provided for @powerMeterSheetTitle.
///
/// In en, this message translates to:
/// **'Power meter'**
String get powerMeterSheetTitle;
/// No description provided for @powerMeterSearching.
///
/// In en, this message translates to:
/// **'Looking for power meters nearby…'**
String get powerMeterSearching;
/// No description provided for @powerMeterSearchingHint.
///
/// In en, this message translates to:
/// **'Turn the crank to wake it. One another app holds can\'t be found: close that app first.'**
String get powerMeterSearchingHint;
/// No description provided for @powerMeterUnnamed.
///
/// In en, this message translates to:
/// **'Unnamed power meter'**
String get powerMeterUnnamed;
/// No description provided for @powerMeterForget.
///
/// In en, this message translates to:
/// **'Forget power meter'**
String get powerMeterForget;
/// No description provided for @powerMeterRefused.
///
/// In en, this message translates to:
/// **'Train needs nearby devices to find your power meter. You can allow it in the system\'s settings.'**
String get powerMeterRefused;
/// No description provided for @recordingCadence.
///
/// In en, this message translates to:
/// **'turns a minute'**
String get recordingCadence;
/// No description provided for @workoutPedalling.
///
/// In en, this message translates to:
/// **'Cadence'**
String get workoutPedalling;
/// No description provided for @workoutAverageCadence.
///
/// In en, this message translates to:
/// **'average cadence'**
String get workoutAverageCadence;
/// No description provided for @workoutNormalisedPower.
///
/// In en, this message translates to:
/// **'normalised power'**
String get workoutNormalisedPower;
/// No description provided for @workoutRpmValue.
///
/// In en, this message translates to:
/// **'{rpm} rpm'**
String workoutRpmValue(int rpm);
/// No description provided for @recordWheel.
///
/// In en, this message translates to:
/// **'Wheel circumference'**
String get recordWheel;
/// No description provided for @recordWheelMeasured.
///
/// In en, this message translates to:
/// **'{mm} mm, measured by GPS'**
String recordWheelMeasured(int mm);
/// No description provided for @recordWheelTyped.
///
/// In en, this message translates to:
/// **'{mm} mm, as you typed it'**
String recordWheelTyped(int mm);
/// No description provided for @recordWheelDefault.
///
/// In en, this message translates to:
/// **'{mm} mm until GPS has measured it on a ride of 2 km'**
String recordWheelDefault(int mm);
/// No description provided for @recordWheelHint.
///
/// In en, this message translates to:
/// **'In millimetres, as the tyre says (700×25C: 2105); empty to have GPS measure it'**
String get recordWheelHint;
/// No description provided for @recordWheelSave.
///
/// In en, this message translates to:
/// **'Save'**
String get recordWheelSave;
/// No description provided for @shellTabHome.
///
/// In en, this message translates to:
/// **'Home'**
String get shellTabHome;
/// No description provided for @shellTabMaps.
///
/// In en, this message translates to:
/// **'Maps'**
String get shellTabMaps;
/// No description provided for @shellTabRecord.
///
/// In en, this message translates to:
/// **'Record'**
String get shellTabRecord;
/// No description provided for @shellTabGroups.
///
/// In en, this message translates to:
/// **'Groups'**
String get shellTabGroups;
/// No description provided for @shellTabProfile.
///
/// In en, this message translates to:
/// **'Profile'**
String get shellTabProfile;
/// No description provided for @groupsLaterTitle.
///
/// In en, this message translates to:
/// **'Groups come later'**
String get groupsLaterTitle;
/// No description provided for @groupsLaterHint.
///
/// In en, this message translates to:
/// **'Training with others, in groups of your own, comes in a later version of Train.'**
String get groupsLaterHint;
/// No description provided for @settingsTitle.
///
/// In en, this message translates to:
/// **'Settings'**
String get settingsTitle;
/// No description provided for @settingsTraining.
///
/// In en, this message translates to:
/// **'Training'**
String get settingsTraining;
/// No description provided for @settingsVersion.
///
/// In en, this message translates to:
/// **'Version {version} (build {build})'**
String settingsVersion(String version, String build);
/// No description provided for @recordingBarStopped.
///
/// In en, this message translates to:
/// **'Stopped: save or discard it'**
String get recordingBarStopped;
/// No description provided for @recordingBarDistance.
///
/// In en, this message translates to:
/// **'{km} km'**
String recordingBarDistance(String km);
/// No description provided for @homeWeekTitle.
///
/// In en, this message translates to:
/// **'This week'**
String get homeWeekTitle;
/// No description provided for @homeWeekTime.
///
/// In en, this message translates to:
/// **'Time'**
String get homeWeekTime;
/// No description provided for @homeWeekDistance.
///
/// In en, this message translates to:
/// **'Distance'**
String get homeWeekDistance;
/// No description provided for @homeWeekWorkouts.
///
/// In en, this message translates to:
/// **'Workouts'**
String get homeWeekWorkouts;
/// No description provided for @recordPlansHeading.
///
/// In en, this message translates to:
/// **'Interval plans'**
String get recordPlansHeading;
/// No description provided for @profileWeeksTitle.
///
/// In en, this message translates to:
/// **'Last 12 weeks'**
String get profileWeeksTitle;
/// No description provided for @profileWeekOf.
///
/// In en, this message translates to:
/// **'Week of {date}'**
String profileWeekOf(String date);
/// No description provided for @profileWorkouts.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 workout} other{{count} workouts}}'**
String profileWorkouts(int count);
/// No description provided for @profileYearEmpty.
///
/// In en, this message translates to:
/// **'No workouts this year yet.'**
String get profileYearEmpty;
/// No description provided for @bodyWeight.
///
/// In en, this message translates to:
/// **'{kg} kg'**
String bodyWeight(String kg);
/// No description provided for @weightTitle.
///
/// In en, this message translates to:
/// **'Weight'**
String get weightTitle;
/// No description provided for @weightAdd.
///
/// In en, this message translates to:
/// **'Add weight'**
String get weightAdd;
/// No description provided for @weightAll.
///
/// In en, this message translates to:
/// **'All'**
String get weightAll;
/// No description provided for @weightEmpty.
///
/// In en, this message translates to:
/// **'Add your weight to follow it here; the latest is also your body\'s weight.'**
String get weightEmpty;
/// No description provided for @weightOverTime.
///
/// In en, this message translates to:
/// **'Over time'**
String get weightOverTime;
/// No description provided for @weightField.
///
/// In en, this message translates to:
/// **'Weight'**
String get weightField;
/// No description provided for @weightInvalid.
///
/// In en, this message translates to:
/// **'A weight between 20 and 400 kg'**
String get weightInvalid;
/// No description provided for @weightWhen.
///
/// In en, this message translates to:
/// **'Measured'**
String get weightWhen;
/// No description provided for @weightDelete.
///
/// In en, this message translates to:
/// **'Delete'**
String get weightDelete;
/// A weight read from Health Connect: the package of the app that wrote it.
///
/// In en, this message translates to:
/// **'from {app}'**
String weightFromHealth(String app);
/// No description provided for @bodyResting.
///
/// In en, this message translates to:
/// **'resting {bpm} bpm'**
String bodyResting(int bpm);
/// No description provided for @bodyMax.
///
/// In en, this message translates to:
/// **'max {bpm} bpm'**
String bodyMax(int bpm);
/// No description provided for @homeToday.
///
/// In en, this message translates to:
/// **'Today'**
String get homeToday;
/// Settings' entry and the screen of the places the person trains at, with what each has (ADR 0034).
///
/// In en, this message translates to:
/// **'Equipment'**
String get equipmentTitle;
/// No description provided for @equipmentHint.
///
/// In en, this message translates to:
/// **'Where you train, and what\'s there'**
String get equipmentHint;
/// No description provided for @equipmentEmptyTitle.
///
/// In en, this message translates to:
/// **'No places yet'**
String get equipmentEmptyTitle;
/// No description provided for @equipmentEmptyHint.
///
/// In en, this message translates to:
/// **'Add the places you train at, such as your home and your gym, with what each has. Start from what a home or a gym usually has, or from nothing.'**
String get equipmentEmptyHint;
/// No description provided for @equipmentAddPlace.
///
/// In en, this message translates to:
/// **'Add a place'**
String get equipmentAddPlace;
/// No description provided for @equipmentItems.
///
/// In en, this message translates to:
/// **'{count, plural, =0{Nothing yet} =1{1 piece of equipment} other{{count} pieces of equipment}}'**
String equipmentItems(int count);
/// Marks the place chosen, which the plate calculator and plans use (ADR 0034, D4).
///
/// In en, this message translates to:
/// **'Where you train now'**
String get equipmentChosen;
/// No description provided for @equipmentChoose.
///
/// In en, this message translates to:
/// **'Train here'**
String get equipmentChoose;
/// No description provided for @equipmentLocked.
///
/// In en, this message translates to:
/// **'Can\'t be opened on this device'**
String get equipmentLocked;
/// No description provided for @placeNewTitle.
///
/// In en, this message translates to:
/// **'New place'**
String get placeNewTitle;
/// No description provided for @placeName.
///
/// In en, this message translates to:
/// **'Name'**
String get placeName;
/// No description provided for @placeStartFrom.
///
/// In en, this message translates to:
/// **'Start from'**
String get placeStartFrom;
/// No description provided for @placeStartHome.
///
/// In en, this message translates to:
/// **'A home'**
String get placeStartHome;
/// No description provided for @placeStartGym.
///
/// In en, this message translates to:
/// **'A gym'**
String get placeStartGym;
/// No description provided for @placeStartNothing.
///
/// In en, this message translates to:
/// **'Nothing'**
String get placeStartNothing;
/// No description provided for @placeDefaultHome.
///
/// In en, this message translates to:
/// **'Home'**
String get placeDefaultHome;
/// No description provided for @placeDefaultGym.
///
/// In en, this message translates to:
/// **'Gym'**
String get placeDefaultGym;
/// No description provided for @placeAdd.
///
/// In en, this message translates to:
/// **'Add'**
String get placeAdd;
/// No description provided for @placeRename.
///
/// In en, this message translates to:
/// **'Rename'**
String get placeRename;
/// No description provided for @placeSave.
///
/// In en, this message translates to:
/// **'Save'**
String get placeSave;
/// No description provided for @placeDelete.
///
/// In en, this message translates to:
/// **'Delete place'**
String get placeDelete;
/// No description provided for @placeDeleteMessage.
///
/// In en, this message translates to:
/// **'The place and its equipment are deleted on all your devices.'**
String get placeDeleteMessage;
/// No description provided for @placeAddEquipment.
///
/// In en, this message translates to:
/// **'Add equipment'**
String get placeAddEquipment;
/// No description provided for @placeEmptyHint.
///
/// In en, this message translates to:
/// **'Nothing here yet. Add the equipment this place has.'**
String get placeEmptyHint;
/// No description provided for @equipmentKind.
///
/// In en, this message translates to:
/// **'{kind, select, barbell{Barbell} ezBar{EZ bar} trapBar{Trap bar} dumbbellHandle{Dumbbell handles} plates{Weight plates} fixedDumbbells{Dumbbells} kettlebells{Kettlebells} weightVest{Weight vest} bench{Bench} rack{Rack} pullUpBar{Pull-up bar} dipBars{Dip bars} cableMachine{Cable machine} bands{Resistance bands} other{Your own}}'**
String equipmentKind(String kind);
/// No description provided for @itemName.
///
/// In en, this message translates to:
/// **'What it is'**
String get itemName;
/// No description provided for @itemHowMany.
///
/// In en, this message translates to:
/// **'How many'**
String get itemHowMany;
/// No description provided for @itemOwnWeight.
///
/// In en, this message translates to:
/// **'Its own weight'**
String get itemOwnWeight;
/// No description provided for @itemWeights.
///
/// In en, this message translates to:
/// **'Weights'**
String get itemWeights;
/// No description provided for @itemAddWeight.
///
/// In en, this message translates to:
/// **'Add a weight'**
String get itemAddWeight;
/// No description provided for @itemDone.
///
/// In en, this message translates to:
/// **'Done'**
String get itemDone;
/// No description provided for @itemRemove.
///
/// In en, this message translates to:
/// **'Remove'**
String get itemRemove;
/// No description provided for @itemWeightInvalid.
///
/// In en, this message translates to:
/// **'A weight in kilograms, above 0'**
String get itemWeightInvalid;
/// No description provided for @weightRangeKg.
///
/// In en, this message translates to:
/// **'{from}–{to} kg'**
String weightRangeKg(String from, String to);
/// No description provided for @itemVestWeight.
///
/// In en, this message translates to:
/// **'Weight, or its lightest'**
String get itemVestWeight;
/// No description provided for @itemVestUpTo.
///
/// In en, this message translates to:
/// **'Up to'**
String get itemVestUpTo;
/// No description provided for @itemVestUpToHint.
///
/// In en, this message translates to:
/// **'Only if it\'s adjustable'**
String get itemVestUpToHint;
/// No description provided for @itemVestUpToInvalid.
///
/// In en, this message translates to:
/// **'More than its lightest weight'**
String get itemVestUpToInvalid;
/// A chip at a set of bodyweight work offering the place's weight vest: its name, and its weight or range.
///
/// In en, this message translates to:
/// **'{name}, {weight}'**
String strengthWearVest(String name, String weight);
/// No description provided for @weightKg.
///
/// In en, this message translates to:
/// **'{weight} kg'**
String weightKg(String weight);
/// No description provided for @weightCount.
///
/// In en, this message translates to:
/// **'{count} × {weight} kg'**
String weightCount(int count, String weight);
/// No description provided for @plateCalculatorTitle.
///
/// In en, this message translates to:
/// **'Plate calculator'**
String get plateCalculatorTitle;
/// No description provided for @plateCalculatorHint.
///
/// In en, this message translates to:
/// **'What to load, and what changes between sets'**
String get plateCalculatorHint;
/// No description provided for @platePlace.
///
/// In en, this message translates to:
/// **'Place'**
String get platePlace;
/// No description provided for @plateBar.
///
/// In en, this message translates to:
/// **'Bar'**
String get plateBar;
/// No description provided for @plateDumbbellPair.
///
/// In en, this message translates to:
/// **'Two dumbbell handles'**
String get plateDumbbellPair;
/// No description provided for @plateTargets.
///
/// In en, this message translates to:
/// **'Weights, kg'**
String get plateTargets;
/// No description provided for @plateTargetsHelper.
///
/// In en, this message translates to:
/// **'One for each set, such as 60, 80, 100'**
String get plateTargetsHelper;
/// No description provided for @plateNoPlace.
///
/// In en, this message translates to:
/// **'Add a place you train at, with its plates, first.'**
String get plateNoPlace;
/// No description provided for @plateNoBar.
///
/// In en, this message translates to:
/// **'This place has nothing that takes plates. Add a barbell or dumbbell handles to it.'**
String get plateNoBar;
/// No description provided for @plateBelowBar.
///
/// In en, this message translates to:
/// **'Below the bar\'s {weight} kg'**
String plateBelowBar(String weight);
/// No description provided for @plateShort.
///
/// In en, this message translates to:
/// **'{weight} kg below what you asked for: the plates make no closer weight'**
String plateShort(String weight);
/// No description provided for @plateSide.
///
/// In en, this message translates to:
/// **'Each side, from the inside: {plates}'**
String plateSide(String plates);
/// No description provided for @plateBarAlone.
///
/// In en, this message translates to:
/// **'The bar alone'**
String get plateBarAlone;
/// No description provided for @plateOff.
///
/// In en, this message translates to:
/// **'Take off {plates}'**
String plateOff(String plates);
/// No description provided for @plateOn.
///
/// In en, this message translates to:
/// **'Put on {plates}'**
String plateOn(String plates);
/// No description provided for @plateNoChange.
///
/// In en, this message translates to:
/// **'Nothing changes'**
String get plateNoChange;
/// No description provided for @plateMoves.
///
/// In en, this message translates to:
/// **'{count, plural, =0{No plate moves} =1{1 plate moves on each side} other{{count} plates move on each side}}'**
String plateMoves(int count);
/// No description provided for @plateSet.
///
/// In en, this message translates to:
/// **'Set {number}'**
String plateSet(int number);
/// A catalogue exercise's name, by its id (ADR 0035, D1).
///
/// In en, this message translates to:
/// **'{id, select, backSquat{Back squat} frontSquat{Front squat} gobletSquat{Goblet squat} kettlebellGobletSquat{Kettlebell goblet squat} bodyweightSquat{Bodyweight squat} lunge{Lunge} bulgarianSplitSquat{Bulgarian split squat} bodyweightLunge{Bodyweight lunge} deadlift{Deadlift} romanianDeadlift{Romanian deadlift} trapBarDeadlift{Trap bar deadlift} dumbbellRomanianDeadlift{Dumbbell Romanian deadlift} kettlebellSwing{Kettlebell swing} hipThrust{Hip thrust} gluteBridge{Glute bridge} benchPress{Bench press} inclineBenchPress{Incline bench press} dumbbellBenchPress{Dumbbell bench press} pushUp{Push-up} dip{Dip} overheadPress{Overhead press} dumbbellShoulderPress{Dumbbell shoulder press} pikePushUp{Pike push-up} barbellRow{Barbell row} dumbbellRow{One-arm dumbbell row} cableRow{Seated cable row} invertedRow{Inverted row} bandPullApart{Band pull-apart} facePull{Face pull} pullUp{Pull-up} chinUp{Chin-up} latPulldown{Lat pulldown} bandPulldown{Band pulldown} barbellCurl{Barbell curl} ezBarCurl{EZ bar curl} dumbbellCurl{Dumbbell curl} hammerCurl{Hammer curl} tricepsPushdown{Triceps pushdown} skullCrusher{Skull crusher} overheadTricepsExtension{Overhead triceps extension} benchDip{Bench dip} lateralRaise{Lateral raise} cableLateralRaise{Cable lateral raise} calfRaise{Calf raise} plank{Plank} sidePlank{Side plank} hangingLegRaise{Hanging leg raise} crunch{Crunch} farmersCarry{Farmer\'s carry} other{Exercise}}'**
String exerciseName(String id);
/// What an exercise needs, as in "Missing here: a rack, dip bars".
///
/// In en, this message translates to:
/// **'{need, select, barbell{a barbell} ezBar{an EZ bar} trapBar{a trap bar} dumbbells{dumbbells} kettlebell{a kettlebell} bench{a bench} rack{a rack} pullUpBar{a pull-up bar} dipBars{dip bars} cableMachine{a cable machine} bands{bands} other{something}}'**
String exerciseNeed(String need);
/// No description provided for @exercisePattern.
///
/// In en, this message translates to:
/// **'{pattern, select, squat{Squats} lunge{Lunges} hinge{Hinges} horizontalPush{Pushes} verticalPush{Pushes overhead} horizontalPull{Rows} verticalPull{Pull-ups and pulldowns} curl{Curls} extension{Triceps} raise{Raises} calf{Calves} core{Core} carry{Carries} other{Other}}'**
String exercisePattern(String pattern);
/// No description provided for @exerciseLoad.
///
/// In en, this message translates to:
/// **'{load, select, barbell{Barbell with plates} ezBar{EZ bar with plates} trapBar{Trap bar with plates} dumbbellPair{A dumbbell in each hand} dumbbell{One dumbbell} kettlebell{Kettlebell} cable{Cable stack} band{Band} body{Body weight} other{Other}}'**
String exerciseLoad(String load);
/// No description provided for @activityStrengthCard.
///
/// In en, this message translates to:
/// **'Strength'**
String get activityStrengthCard;
/// No description provided for @strengthPlansHeading.
///
/// In en, this message translates to:
/// **'Strength plans'**
String get strengthPlansHeading;
/// No description provided for @strengthPlansNew.
///
/// In en, this message translates to:
/// **'New strength plan'**
String get strengthPlansNew;
/// No description provided for @strengthPlansEmpty.
///
/// In en, this message translates to:
/// **'Strength plans list exercises with their sets, repetitions, weights and rests, alone or as supersets and circuits.'**
String get strengthPlansEmpty;
/// No description provided for @strengthPlanLocked.
///
/// In en, this message translates to:
/// **'Can\'t be opened on this device'**
String get strengthPlanLocked;
/// No description provided for @strengthPlanDeleted.
///
/// In en, this message translates to:
/// **'Strength plan deleted'**
String get strengthPlanDeleted;
/// No description provided for @strengthStart.
///
/// In en, this message translates to:
/// **'Start'**
String get strengthStart;
/// No description provided for @strengthChoosePlan.
///
/// In en, this message translates to:
/// **'Which plan?'**
String get strengthChoosePlan;
/// No description provided for @strengthNoPlans.
///
/// In en, this message translates to:
/// **'Make a strength plan first: the list below has New strength plan.'**
String get strengthNoPlans;
/// No description provided for @strengthPlanTitle.
///
/// In en, this message translates to:
/// **'Strength plan'**
String get strengthPlanTitle;
/// No description provided for @strengthPlanName.
///
/// In en, this message translates to:
/// **'Name'**
String get strengthPlanName;
/// No description provided for @strengthPlanSave.
///
/// In en, this message translates to:
/// **'Save'**
String get strengthPlanSave;
/// No description provided for @strengthPlanDelete.
///
/// In en, this message translates to:
/// **'Delete'**
String get strengthPlanDelete;
/// No description provided for @strengthAddExercise.
///
/// In en, this message translates to:
/// **'Add exercise'**
String get strengthAddExercise;
/// No description provided for @strengthAddToBlock.
///
/// In en, this message translates to:
/// **'Add an exercise to do in turn'**
String get strengthAddToBlock;
/// No description provided for @strengthOwnExercise.
///
/// In en, this message translates to:
/// **'Your own exercise'**
String get strengthOwnExercise;
/// No description provided for @strengthOwnExercises.
///
/// In en, this message translates to:
/// **'Your own'**
String get strengthOwnExercises;
/// No description provided for @strengthExerciseName.
///
/// In en, this message translates to:
/// **'What it is'**
String get strengthExerciseName;
/// No description provided for @strengthExerciseNeeds.
///
/// In en, this message translates to:
/// **'What it needs'**
String get strengthExerciseNeeds;
/// No description provided for @strengthExerciseLoad.
///
/// In en, this message translates to:
/// **'What it is done with'**
String get strengthExerciseLoad;
/// No description provided for @strengthExercisePattern.
///
/// In en, this message translates to:
/// **'How it moves'**
String get strengthExercisePattern;
/// No description provided for @strengthExerciseTimed.
///
/// In en, this message translates to:
/// **'Held for a time'**
String get strengthExerciseTimed;
/// No description provided for @strengthExerciseDone.
///
/// In en, this message translates to:
/// **'Done'**
String get strengthExerciseDone;
/// No description provided for @strengthAddSet.
///
/// In en, this message translates to:
/// **'Add a set'**
String get strengthAddSet;
/// No description provided for @strengthReps.
///
/// In en, this message translates to:
/// **'Reps'**
String get strengthReps;
/// No description provided for @strengthSeconds.
///
/// In en, this message translates to:
/// **'Seconds'**
String get strengthSeconds;
/// No description provided for @strengthKg.
///
/// In en, this message translates to:
/// **'kg'**
String get strengthKg;
/// No description provided for @strengthRemoveExercise.
///
/// In en, this message translates to:
/// **'Remove exercise'**
String get strengthRemoveExercise;
/// No description provided for @strengthRemoveSet.
///
/// In en, this message translates to:
/// **'Remove set'**
String get strengthRemoveSet;
/// No description provided for @strengthMoveUp.
///
/// In en, this message translates to:
/// **'Move up'**
String get strengthMoveUp;
/// No description provided for @strengthMoveDown.
///
/// In en, this message translates to:
/// **'Move down'**
String get strengthMoveDown;
/// No description provided for @strengthRest.
///
/// In en, this message translates to:
/// **'Rest'**
String get strengthRest;
/// No description provided for @strengthRestBetween.
///
/// In en, this message translates to:
/// **'Rest between exercises'**
String get strengthRestBetween;
/// No description provided for @strengthDiscardTitle.
///
/// In en, this message translates to:
/// **'Discard changes?'**
String get strengthDiscardTitle;
/// No description provided for @strengthDiscard.
///
/// In en, this message translates to:
/// **'Discard'**
String get strengthDiscard;
/// No description provided for @strengthDiscardMessage.
///
/// In en, this message translates to:
/// **'What you changed in this plan is not kept.'**
String get strengthDiscardMessage;
/// No description provided for @strengthAbandon.
///
/// In en, this message translates to:
/// **'End without saving'**
String get strengthAbandon;
/// No description provided for @strengthAbandonMessage.
///
/// In en, this message translates to:
/// **'The sets done so far are deleted from this device. This can\'t be undone.'**
String get strengthAbandonMessage;
/// No description provided for @strengthFinish.
///
/// In en, this message translates to:
/// **'Finish and save'**
String get strengthFinish;
/// No description provided for @strengthAllDone.
///
/// In en, this message translates to:
/// **'Every set is through.'**
String get strengthAllDone;
/// No description provided for @strengthSetDone.
///
/// In en, this message translates to:
/// **'Done'**
String get strengthSetDone;
/// No description provided for @strengthSkip.
///
/// In en, this message translates to:
/// **'Skip set'**
String get strengthSkip;
/// No description provided for @strengthSwap.
///
/// In en, this message translates to:
/// **'Swap exercise'**
String get strengthSwap;
/// No description provided for @strengthSwapTitle.
///
/// In en, this message translates to:
/// **'Do instead'**
String get strengthSwapTitle;
/// No description provided for @strengthNoSwaps.
///
/// In en, this message translates to:
/// **'Nothing else here moves this way.'**
String get strengthNoSwaps;
/// No description provided for @strengthRestSkip.
///
/// In en, this message translates to:
/// **'Skip rest'**
String get strengthRestSkip;
/// No description provided for @strengthResting.
///
/// In en, this message translates to:
/// **'Rest'**
String get strengthResting;
/// No description provided for @strengthCarryOn.
///
/// In en, this message translates to:
/// **'A session is under way'**
String get strengthCarryOn;
/// No description provided for @strengthCarryOnAction.
///
/// In en, this message translates to:
/// **'Carry on'**
String get strengthCarryOnAction;
/// No description provided for @strengthWeightNotMadeUp.
///
/// In en, this message translates to:
/// **'Nothing here makes this weight up.'**
String get strengthWeightNotMadeUp;
/// No description provided for @strengthFixed.
///
/// In en, this message translates to:
/// **'{weight} kg, nearest at or below'**
String strengthFixed(Object weight);
/// No description provided for @strengthNoPlace.
///
/// In en, this message translates to:
/// **'No place chosen: weights as planned.'**
String get strengthNoPlace;
/// No description provided for @strengthTrainsAt.
///
/// In en, this message translates to:
/// **'At {place}'**
String strengthTrainsAt(Object place);
/// No description provided for @strengthWorkoutVolume.
///
/// In en, this message translates to:
/// **'{weight} kg moved'**
String strengthWorkoutVolume(Object weight);
/// No description provided for @strengthWorkoutSets.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 set} other{{count} sets}}'**
String strengthWorkoutSets(num count);
/// No description provided for @strengthMissing.
///
/// In en, this message translates to:
/// **'Missing here: {needs}'**
String strengthMissing(String needs);
/// No description provided for @strengthPlanSummary.
///
/// In en, this message translates to:
/// **'{exercises, plural, =1{1 exercise} other{{exercises} exercises}} · {sets, plural, =1{1 set} other{{sets} sets}}'**
String strengthPlanSummary(int exercises, int sets);
/// No description provided for @strengthBlockKind.
///
/// In en, this message translates to:
/// **'{kind, select, superset{Superset} circuit{Circuit} other{Exercise}}'**
String strengthBlockKind(String kind);
/// No description provided for @strengthSetOf.
///
/// In en, this message translates to:
/// **'Set {set} of {sets}'**
String strengthSetOf(int set, int sets);
/// No description provided for @strengthRoundOf.
///
/// In en, this message translates to:
/// **'Round {round} of {rounds}'**
String strengthRoundOf(int round, int rounds);
/// No description provided for @strengthTarget.
///
/// In en, this message translates to:
/// **'{reps} × {weight} kg'**
String strengthTarget(int reps, String weight);
/// No description provided for @strengthTargetReps.
///
/// In en, this message translates to:
/// **'{reps, plural, =1{1 rep} other{{reps} reps}}'**
String strengthTargetReps(int reps);
/// No description provided for @strengthTargetSeconds.
///
/// In en, this message translates to:
/// **'{seconds} s'**
String strengthTargetSeconds(int seconds);
/// No description provided for @strengthNextUp.
///
/// In en, this message translates to:
/// **'Next: {exercise}'**
String strengthNextUp(String exercise);
/// No description provided for @strengthBarAndPlates.
///
/// In en, this message translates to:
/// **'{bar} kg bar, each side: {plates}'**
String strengthBarAndPlates(String bar, String plates);
/// No description provided for @strengthHandlesAndPlates.
///
/// In en, this message translates to:
/// **'{bar} kg handles, each side: {plates}'**
String strengthHandlesAndPlates(String bar, String plates);
/// No description provided for @strengthWeightShort.
///
/// In en, this message translates to:
/// **'{weight} kg below what was planned'**
String strengthWeightShort(String weight);
/// No description provided for @weatherHeading.
///
/// In en, this message translates to:
/// **'Weather'**
String get weatherHeading;
/// What the sky did over a workout, from Open-Meteo's weather code.
///
/// In en, this message translates to:
/// **'{conditions, select, clear{Clear} partlyCloudy{Partly cloudy} cloudy{Overcast} fog{Fog} drizzle{Drizzle} rain{Rain} freezingRain{Freezing rain} snow{Snow} rainShowers{Showers} snowShowers{Snow showers} thunderstorm{Thunderstorm} other{Weather}}'**
String weatherConditions(String conditions);
/// No description provided for @weatherTemperature.
///
/// In en, this message translates to:
/// **'{temperature} °C'**
String weatherTemperature(String temperature);
/// No description provided for @weatherTemperatureRange.
///
/// In en, this message translates to:
/// **'{low}–{high} °C'**
String weatherTemperatureRange(String low, String high);
/// No description provided for @weatherFeelsLike.
///
/// In en, this message translates to:
/// **'Felt like {temperature} °C'**
String weatherFeelsLike(String temperature);
/// No description provided for @weatherWind.
///
/// In en, this message translates to:
/// **'Wind {speed} km/h from the {direction}'**
String weatherWind(String speed, String direction);
/// No description provided for @weatherWindNoDirection.
///
/// In en, this message translates to:
/// **'Wind {speed} km/h'**
String weatherWindNoDirection(String speed);
/// No description provided for @weatherCalm.
///
/// In en, this message translates to:
/// **'Hardly any wind'**
String get weatherCalm;
/// No description provided for @weatherGusts.
///
/// In en, this message translates to:
/// **'gusts up to {speed} km/h'**
String weatherGusts(String speed);
/// Where the wind came from, as in "from the south-west".
///
/// In en, this message translates to:
/// **'{direction, select, n{north} ne{north-east} e{east} se{south-east} s{south} sw{south-west} w{west} nw{north-west} other{wind}}'**
String weatherDirection(String direction);
/// No description provided for @weatherPrecipitation.
///
/// In en, this message translates to:
/// **'{amount} mm fell'**
String weatherPrecipitation(String amount);
/// No description provided for @weatherDry.
///
/// In en, this message translates to:
/// **'Nothing fell'**
String get weatherDry;
/// No description provided for @weatherBy.
///
/// In en, this message translates to:
/// **'Weather data by Open-Meteo.com'**
String get weatherBy;
/// No description provided for @movementTitle.
///
/// In en, this message translates to:
/// **'Moving more'**
String get movementTitle;
/// No description provided for @movementHint.
///
/// In en, this message translates to:
/// **'Reminders to get up, and workouts suggested as you move'**
String get movementHint;
/// No description provided for @movementRemind.
///
/// In en, this message translates to:
/// **'Remind me to move'**
String get movementRemind;
/// No description provided for @movementRemindHint.
///
/// In en, this message translates to:
/// **'When the phone counted hardly a step for a while; never while recording or in a car.'**
String get movementRemindHint;
/// No description provided for @movementIdle.
///
/// In en, this message translates to:
/// **'After'**
String get movementIdle;
/// No description provided for @movementIdleMinutes.
///
/// In en, this message translates to:
/// **'{minutes} min still'**
String movementIdleMinutes(int minutes);
/// No description provided for @movementHours.
///
/// In en, this message translates to:
/// **'Hours'**
String get movementHours;
/// No description provided for @movementBreak.
///
/// In en, this message translates to:
/// **'Break'**
String get movementBreak;
/// No description provided for @movementBreakHint.
///
/// In en, this message translates to:
/// **'No reminders over it.'**
String get movementBreakHint;
/// No description provided for @movementDays.
///
/// In en, this message translates to:
/// **'Days'**
String get movementDays;
/// No description provided for @movementSuggest.
///
/// In en, this message translates to:
/// **'Suggest workouts'**
String get movementSuggest;
/// No description provided for @movementSuggestHint.
///
/// In en, this message translates to:
/// **'When your steps look like a walk or a run and nothing records: tap to record the rest of it. Your Loop\'s own detection is on its screen.'**
String get movementSuggestHint;
/// No description provided for @movementUnavailable.
///
/// In en, this message translates to:
/// **'This phone doesn\'t count steps, so it can neither remind nor suggest.'**
String get movementUnavailable;
/// No description provided for @movementRefused.
///
/// In en, this message translates to:
/// **'Train needs the physical activity and notification permissions for this.'**
String get movementRefused;
/// No description provided for @movementLate.
///
/// In en, this message translates to:
/// **'The steps are counted every 15 minutes, so a reminder can come a little late.'**
String get movementLate;
/// No description provided for @movementChannel.
///
/// In en, this message translates to:
/// **'Moving more'**
String get movementChannel;
/// No description provided for @movementRemindTitle.
///
/// In en, this message translates to:
/// **'Time to move'**
String get movementRemindTitle;
/// No description provided for @movementRemindText.
///
/// In en, this message translates to:
/// **'{minutes} minutes with hardly a step. Up for a short walk?'**
String movementRemindText(int minutes);
/// No description provided for @movementWalkingTitle.
///
/// In en, this message translates to:
/// **'Out for a walk?'**
String get movementWalkingTitle;
/// No description provided for @movementRunningTitle.
///
/// In en, this message translates to:
/// **'Out for a run?'**
String get movementRunningTitle;
/// No description provided for @movementSuggestText.
///
/// In en, this message translates to:
/// **'Tap to record the rest of it.'**
String get movementSuggestText;
/// No description provided for @loopDetection.
///
/// In en, this message translates to:
/// **'Detect training by itself'**
String get loopDetection;
/// No description provided for @loopDetectionHint.
///
/// In en, this message translates to:
/// **'The band notices a session you didn\'t record, and it comes in as a workout.'**
String get loopDetectionHint;
/// No description provided for @loopDetectionMinimum.
///
/// In en, this message translates to:
/// **'Keeps sessions from'**
String get loopDetectionMinimum;
/// No description provided for @loopDetectionMinutes.
///
/// In en, this message translates to:
/// **'{minutes} min'**
String loopDetectionMinutes(int minutes);
/// No description provided for @bodyWeightPounds.
///
/// In en, this message translates to:
/// **'{lb} lb'**
String bodyWeightPounds(String lb);
/// No description provided for @weightInvalidPounds.
///
/// In en, this message translates to:
/// **'A weight between 44 and 880 lb'**
String get weightInvalidPounds;
/// No description provided for @profileWeightUnitPounds.
///
/// In en, this message translates to:
/// **'lb'**
String get profileWeightUnitPounds;
/// Above the choice between kilograms and pounds in Your body.
///
/// In en, this message translates to:
/// **'Weight in'**
String get profileWeightIn;
/// No description provided for @profileWeightKilograms.
///
/// In en, this message translates to:
/// **'Kilograms'**
String get profileWeightKilograms;
/// No description provided for @profileWeightPounds.
///
/// In en, this message translates to:
/// **'Pounds'**
String get profileWeightPounds;
}
class _AppLocalizationsDelegate
extends LocalizationsDelegate<AppLocalizations> {
const _AppLocalizationsDelegate();
@override
Future<AppLocalizations> load(Locale locale) {
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
}
@override
bool isSupported(Locale locale) =>
<String>['de', 'en'].contains(locale.languageCode);
@override
bool shouldReload(_AppLocalizationsDelegate old) => false;
}
AppLocalizations lookupAppLocalizations(Locale locale) {
// Lookup logic when language+country codes are specified.
switch (locale.languageCode) {
case 'en':
{
switch (locale.countryCode) {
case 'GB':
return AppLocalizationsEnGb();
case 'US':
return AppLocalizationsEnUs();
}
break;
}
}
// Lookup logic when only language code is specified.
switch (locale.languageCode) {
case 'de':
return AppLocalizationsDe();
case 'en':
return AppLocalizationsEn();
}
throw FlutterError(
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
'an issue with the localizations generation tool. Please file an issue '
'on GitHub with a reproducible sample app and the gen-l10n configuration '
'that was used.',
);
}