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(context, AppLocalizations)!; } static const LocalizationsDelegate 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> localizationsDelegates = >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ 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'** String get aboutTitle; /// No description provided for @homeRecordHint. /// /// In en, this message translates to: /// **'Record one with the button below.'** String get homeRecordHint; /// No description provided for @recordAction. /// /// In en, this message translates to: /// **'Record'** String get recordAction; /// No description provided for @recordBack. /// /// In en, this message translates to: /// **'Back to the recording'** String get recordBack; /// No description provided for @recordSheetTitle. /// /// In en, this message translates to: /// **'Record a workout'** String get recordSheetTitle; /// 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 @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 @recordingWaitingForGps. /// /// In en, this message translates to: /// **'Waiting for GPS'** String get recordingWaitingForGps; /// 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_running{Morning run} morning_walking{Morning walk} morning_hiking{Morning hike} morning_cycling{Morning 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); /// 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; /// 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; /// 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 @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 @dayRechargeLevel. /// /// In en, this message translates to: /// **'Recovery {level} of 6'** String dayRechargeLevel(int level); /// No description provided for @dayAnsStatus. /// /// In en, this message translates to: /// **'Autonomic nervous system {value}, from −10 to +10'** String dayAnsStatus(String value); /// No description provided for @dayNightHeart. /// /// In en, this message translates to: /// **'Heart rate {bpm} bpm, your usual {usual} bpm'** String dayNightHeart(int bpm, int usual); /// No description provided for @dayHrv. /// /// In en, this message translates to: /// **'Heart rate variability {ms} ms, your usual {usual} ms'** String dayHrv(int ms, int usual); /// No description provided for @dayBreathing. /// /// In en, this message translates to: /// **'Breathing {rate} a minute'** String dayBreathing(String rate); /// 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; hold one and drag it to move it.'** String get routeTapHint; /// No description provided for @routeUndo. /// /// In en, this message translates to: /// **'Take the last waypoint off'** String get routeUndo; /// 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 @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 @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); } class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupAppLocalizations(locale)); } @override bool isSupported(Locale locale) => ['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.', ); }