workouttest_app/lib/localization/app_language.dart
2020-09-16 15:41:39 +02:00

61 lines
1.6 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:shared_preferences/shared_preferences.dart';
class AppLanguage{
static final AppLanguage _singleton = AppLanguage._internal();
Locale _appLocale = Locale('en');
factory AppLanguage() {
return _singleton;
}
AppLanguage._internal();
static Future<AppLanguage> getInstance() async {
return _singleton;
}
Locale get appLocal => _appLocale ?? Locale("en");
Future<void> fetchLocale() async {
var prefs = await SharedPreferences.getInstance();
String langCode = prefs.getString('language_code');
print(" ---- lang code $langCode");
if ( langCode == null) {
_appLocale = Locale('en');
} else {
_appLocale = Locale(langCode);
}
print(" ---- Fetched lang: " + _appLocale.toString());
}
getLocale(SharedPreferences prefs) {
String langCode = prefs.getString('language_code');
if ( langCode == null) {
_appLocale = Locale('en');
}
_appLocale = Locale(langCode);
print(" ---- Get lang: " + _appLocale.toString() + " lang code $langCode");
}
void changeLanguage(Locale type) async {
var prefs = await SharedPreferences.getInstance();
if (_appLocale == type) {
return;
}
if (type == Locale("hu")) {
_appLocale = Locale("hu");
await prefs.setString('language_code', 'hu');
await prefs.setString('countryCode', 'HU');
} else {
_appLocale = Locale("en");
await prefs.setString('language_code', 'en');
await prefs.setString('countryCode', 'US');
}
print(" ---- Stored lang: " + _appLocale.toString());
}
}