Files
friflex_flutter_starter/lib/l10n/localization_notifier.dart

33 lines
869 B
Dart
Raw Normal View History

2025-01-21 14:24:31 +03:00
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
typedef LocalizationBuilder = Widget Function();
/// Виджет для перестройки виджета в зависимости от локализации
class LocalizationConsumer extends StatelessWidget {
const LocalizationConsumer({required this.builder, super.key});
2025-01-21 14:24:31 +03:00
final LocalizationBuilder builder;
@override
Widget build(BuildContext context) {
return Consumer<LocalizationNotifier>(
builder: (_, _, _) {
2025-01-21 14:24:31 +03:00
return builder();
},
);
}
}
/// Класс для управления локализацией
final class LocalizationNotifier extends ChangeNotifier {
Locale _locale = const Locale('en', 'US');
Locale get locale => _locale;
void changeLocal(Locale locale) {
_locale = locale;
notifyListeners();
}
}