Skip to content

Commit fbe9414

Browse files
refactor: enhance language dropdown with user-friendly labels
1 parent 7778d77 commit fbe9414

3 files changed

Lines changed: 15 additions & 18 deletions

File tree

lib/core/settings/domain/settings_entity.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@ enum BitcoinUnit {
4040
}
4141

4242
enum Language {
43-
unitedStatesEnglish('en', 'US'),
44-
canadianFrench('fr', 'CA'),
45-
franceFrench('fr', 'FR'),
46-
spanish('es', 'ES'),
47-
finnish('fi', 'FI');
43+
unitedStatesEnglish('en', 'US', 'English'),
44+
franceFrench('fr', 'FR', 'Français'),
45+
spanish('es', 'ES', 'Español'),
46+
finnish('fi', 'FI', 'Suomeksi');
4847

4948
final String languageCode;
5049
final String? countryCode;
50+
final String label;
5151

52-
const Language(this.languageCode, this.countryCode);
52+
const Language(this.languageCode, this.countryCode, this.label);
5353

5454
static Language fromName(String name) {
5555
try {

lib/features/settings/presentation/bloc/settings_cubit.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class SettingsCubit extends Cubit<SettingsState> {
9797
Future<void> changeLanguage(Language language) async {
9898
final settings = state.storedSettings;
9999
log.config(
100-
'Language changed to: ${language.name} was ${settings?.language?.name}',
100+
'Language changed to: ${language.label} was ${settings?.language?.label}',
101101
);
102102
await _setLanguageUsecase.execute(language);
103103
emit(

lib/features/settings/ui/screens/app_settings/app_settings_screen.dart

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,14 @@ class AppSettingsScreen extends StatelessWidget {
6666
trailing: DropdownButton<Language>(
6767
value: currentLanguage,
6868
underline: const SizedBox.shrink(),
69-
items:
70-
Language.values
71-
.map(
72-
(language) => DropdownMenuItem<Language>(
73-
value: language,
74-
child: Text(
75-
'${language.languageCode}${language.countryCode != null ? ' (${language.countryCode})' : ''}',
76-
),
77-
),
78-
)
79-
.toList(),
69+
items: Language.values
70+
.map(
71+
(language) => DropdownMenuItem<Language>(
72+
value: language,
73+
child: Text(language.label),
74+
),
75+
)
76+
.toList(),
8077
onChanged: (Language? newLanguage) {
8178
if (newLanguage != null) {
8279
context.read<SettingsCubit>().changeLanguage(

0 commit comments

Comments
 (0)