30 lines
642 B
Dart
30 lines
642 B
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'package:pshared/config/constants.dart';
|
|
|
|
|
|
class LocaleProvider with ChangeNotifier {
|
|
Locale _locale = Constants.defaultLocale;
|
|
|
|
Locale stringToLocale(String localeString) {
|
|
var parts = localeString.split(RegExp(r'[-_]'));
|
|
return (parts.length > 1) ? Locale(parts[0], parts[1]) : Locale(parts[0]);
|
|
}
|
|
|
|
LocaleProvider(String? localeCode) {
|
|
if (localeCode != null) {
|
|
_locale = stringToLocale(localeCode);
|
|
}
|
|
}
|
|
|
|
Locale get locale => _locale;
|
|
|
|
void setLocale(Locale locale) {
|
|
if (_locale == locale) return;
|
|
|
|
_locale = locale;
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|