mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Show translated muscle names
This commit is contained in:
@@ -17,7 +17,9 @@
|
||||
*/
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/helpers/i18n.dart';
|
||||
|
||||
part 'muscle.g.dart';
|
||||
|
||||
@@ -49,6 +51,10 @@ class Muscle extends Equatable {
|
||||
@override
|
||||
List<Object?> get props => [id, name, isFront];
|
||||
|
||||
String nameTranslated(BuildContext context) {
|
||||
return name + (nameEn.isNotEmpty ? ' (${getTranslation(nameEn, context)})' : '');
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'Muscle: $id - $name';
|
||||
|
||||
@@ -71,17 +71,17 @@ class BasicStepContent extends StatelessWidget {
|
||||
displayName: (Equipment e) => getTranslation(e.name, context),
|
||||
),
|
||||
AddExerciseMultiselectButton<Muscle>(
|
||||
title: AppLocalizations.of(context).muscles,
|
||||
items: muscles,
|
||||
initialItems: addExerciseProvider.primaryMuscles,
|
||||
onChange: (dynamic muscles) {
|
||||
addExerciseProvider.primaryMuscles = muscles.cast<Muscle>();
|
||||
},
|
||||
onSaved: (dynamic muscles) {
|
||||
addExerciseProvider.primaryMuscles = muscles.cast<Muscle>();
|
||||
},
|
||||
displayName: (Muscle e) => e.name,
|
||||
),
|
||||
title: AppLocalizations.of(context).muscles,
|
||||
items: muscles,
|
||||
initialItems: addExerciseProvider.primaryMuscles,
|
||||
onChange: (dynamic muscles) {
|
||||
addExerciseProvider.primaryMuscles = muscles.cast<Muscle>();
|
||||
},
|
||||
onSaved: (dynamic muscles) {
|
||||
addExerciseProvider.primaryMuscles = muscles.cast<Muscle>();
|
||||
},
|
||||
displayName: (Muscle e) =>
|
||||
e.name + (e.nameEn.isNotEmpty ? '\n(${getTranslation(e.nameEn, context)})' : '')),
|
||||
AddExerciseMultiselectButton<Muscle>(
|
||||
title: AppLocalizations.of(context).musclesSecondary,
|
||||
items: muscles,
|
||||
|
||||
@@ -152,7 +152,7 @@ class ExerciseDetail extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const MuscleColorHelper(main: true),
|
||||
..._exerciseBase.muscles.map((e) => Text(e.name)).toList(),
|
||||
..._exerciseBase.muscles.map((e) => Text(e.nameTranslated(context))).toList(),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -44,7 +44,7 @@ void main() {
|
||||
);
|
||||
}
|
||||
|
||||
testWidgets('Test the widgets on the SetFormWidget', (WidgetTester tester) async {
|
||||
testWidgets('Test the widgets on the exercise detail widget', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(createHomeScreen());
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
@@ -53,9 +53,10 @@ void main() {
|
||||
expect(find.text('Bench'), findsOneWidget, reason: 'Equipment');
|
||||
expect(find.text('Dumbbell'), findsOneWidget, reason: 'Equipment');
|
||||
|
||||
debugDumpApp();
|
||||
expect(find.text('Muscles'), findsNWidgets(2), reason: 'One header, one sub header');
|
||||
expect(find.text('Flutterus maximus'), findsOneWidget, reason: 'Muscles');
|
||||
expect(find.text('Biceps brachii'), findsOneWidget, reason: 'Muscles');
|
||||
expect(find.text('Flutterus maximus (NOT TRANSLATED)'), findsOneWidget, reason: 'Muscles');
|
||||
expect(find.text('Biceps brachii (Biceps)'), findsOneWidget, reason: 'Muscles');
|
||||
|
||||
expect(find.text('Secondary muscles'), findsOneWidget);
|
||||
expect(
|
||||
|
||||
Reference in New Issue
Block a user