import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_mobile/features/settings/cubit/application_settings_cubit.dart'; import 'package:paperless_mobile/features/settings/view/widgets/radio_settings_dialog.dart'; import 'package:paperless_mobile/generated/l10n/app_localizations.dart'; class LanguageSelectionSetting extends StatefulWidget { const LanguageSelectionSetting({super.key}); @override State createState() => _LanguageSelectionSettingState(); } class _LanguageSelectionSettingState extends State { static const _languageOptions = { 'en': 'English', 'de': 'Deutsch', 'cs': 'Česky', 'tr': 'Türkçe', }; @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, settings) { return ListTile( title: Text(S.of(context)!.language), subtitle: Text(_languageOptions[settings.preferredLocaleSubtag]!), onTap: () => showDialog( context: context, builder: (_) => RadioSettingsDialog( footer: const Text( "* Work in progress, not fully translated yet. Some words may be displayed in English!", ), titleText: S.of(context)!.language, options: [ RadioOption( value: 'en', label: _languageOptions['en']!, ), RadioOption( value: 'de', label: _languageOptions['de']!, ), RadioOption( value: 'cs', label: _languageOptions['cs']! + "*", ), RadioOption( value: 'tr', label: _languageOptions['tr']! + "*", ) ], initialValue: context .read() .state .preferredLocaleSubtag, ), ).then((value) { if (value != null) { context.read().setLocale(value); } }), ); }, ); } }