feat(train): weights in pounds too, the person's unit or their region's (ADR 0030, D64)

Every weight is still kept in kilograms. It is shown and entered in the
person's unit, chosen in Your body (Weight in: kg | lb, the profile's
new weightUnit), else the region's: pounds in the US, Liberia and
Myanmar. The entry takes 44 to 880 lb, the same 20 to 400 kg. A weight
left untouched in Your body is saved exactly as it was, not rounded
through pounds. The other figures stay metric.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-04 00:15:55 +01:00
commit 396e010949
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
5 changed files with 451 additions and 32 deletions

View file

@ -751,5 +751,11 @@
"loopDetection": "Training selbst erkennen",
"loopDetectionHint": "Das Band bemerkt ein Training, das du nicht aufgezeichnet hast, und es kommt als Training herein.",
"loopDetectionMinimum": "Behält Trainings ab",
"loopDetectionMinutes": "{minutes} Min."
"loopDetectionMinutes": "{minutes} Min.",
"bodyWeightPounds": "{lb} lb",
"weightInvalidPounds": "Ein Gewicht zwischen 44 und 880 lb",
"profileWeightUnitPounds": "lb",
"profileWeightIn": "Gewicht in",
"profileWeightKilograms": "Kilogramm",
"profileWeightPounds": "Pfund"
}

View file

@ -263,13 +263,21 @@
},
"workoutMapUnavailable": "The map can't be loaded now.",
"workoutMapAbout": "About the map",
"@workoutMapAbout": {"description": "Title of the explanation behind the question mark on a workout's page (D63): what the map's source sees."},
"@workoutMapAbout": {
"description": "Title of the explanation behind the question mark on a workout's page (D63): what the map's source sees."
},
"workoutShowMap": "Show the map",
"@workoutShowMap": {"description": "Tooltip of the chevron that lowers a workout's sheet, the page pulled up, so that the map shows again (D63)."},
"@workoutShowMap": {
"description": "Tooltip of the chevron that lowers a workout's sheet, the page pulled up, so that the map shows again (D63)."
},
"mapCredits": "Map credits",
"@mapCredits": {"description": "Tooltip of the button over a map that shows whose map and data it is."},
"@mapCredits": {
"description": "Tooltip of the button over a map that shows whose map and data it is."
},
"routeHelpTitle": "Planning a route",
"@routeHelpTitle": {"description": "Title of the explanation behind the question mark over the route planner's map (D63)."},
"@routeHelpTitle": {
"description": "Title of the explanation behind the question mark over the route planner's map (D63)."
},
"workoutNotFound": "This workout is gone.",
"recordHeartRate": "Heart rate",
"recordNoStrap": "No strap",
@ -2122,5 +2130,21 @@
"type": "int"
}
}
}
},
"bodyWeightPounds": "{lb} lb",
"@bodyWeightPounds": {
"placeholders": {
"lb": {
"type": "String"
}
}
},
"weightInvalidPounds": "A weight between 44 and 880 lb",
"profileWeightUnitPounds": "lb",
"profileWeightIn": "Weight in",
"@profileWeightIn": {
"description": "Above the choice between kilograms and pounds in Your body."
},
"profileWeightKilograms": "Kilograms",
"profileWeightPounds": "Pounds"
}

View file

@ -4611,6 +4611,42 @@ abstract class AppLocalizations {
/// 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

View file

@ -2978,4 +2978,24 @@ class AppLocalizationsDe extends AppLocalizations {
String loopDetectionMinutes(int minutes) {
return '$minutes Min.';
}
@override
String bodyWeightPounds(String lb) {
return '$lb lb';
}
@override
String get weightInvalidPounds => 'Ein Gewicht zwischen 44 und 880 lb';
@override
String get profileWeightUnitPounds => 'lb';
@override
String get profileWeightIn => 'Gewicht in';
@override
String get profileWeightKilograms => 'Kilogramm';
@override
String get profileWeightPounds => 'Pfund';
}

View file

@ -2965,6 +2965,26 @@ class AppLocalizationsEn extends AppLocalizations {
String loopDetectionMinutes(int minutes) {
return '$minutes min';
}
@override
String bodyWeightPounds(String lb) {
return '$lb lb';
}
@override
String get weightInvalidPounds => 'A weight between 44 and 880 lb';
@override
String get profileWeightUnitPounds => 'lb';
@override
String get profileWeightIn => 'Weight in';
@override
String get profileWeightKilograms => 'Kilograms';
@override
String get profileWeightPounds => 'Pounds';
}
/// The translations for English, as used in the United Kingdom (`en_GB`).