wonders/lib/logic/locale_logic.dart
Eddie 466fe074b8 Initial stab at swapping locales, work in progress
- stubbed in button for testing locale switching, needs design polish and direction on whether the button is available at all times or just in menu
- tested and fixed switching on the fly for wonder views, intro, timeline, artifacts, and menu
2022-09-06 15:13:36 -06:00

34 lines
1.0 KiB
Dart

import 'dart:ui';
import 'package:flutter/foundation.dart';
import 'package:intl/intl_standalone.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:wonders/common_libs.dart';
class LocaleLogic {
AppLocalizations? _strings;
AppLocalizations get strings => _strings!;
bool get isLoaded => _strings != null;
Future<void> load() async {
final localeCode = await findSystemLocale();
Locale locale = Locale(localeCode.split('_')[0]);
if (kDebugMode) {
// Uncomment for testing in chinese
// locale = Locale('zh');
}
if (AppLocalizations.supportedLocales.contains(locale) == false) {
locale = Locale('en');
}
settingsLogic.currentLocale.value = locale.languageCode;
_strings = await AppLocalizations.delegate.load(locale);
}
Future<void> refreshIfChanged(Locale locale) async {
if (_strings?.localeName != locale.languageCode && AppLocalizations.supportedLocales.contains(locale)) {
_strings = await AppLocalizations.delegate.load(locale);
}
}
}