invoice/lib/utils/localization.dart

37 lines
1.0 KiB
Dart

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart' show SynchronousFuture;
import 'package:invoiceninja_flutter/constants.dart';
import 'i18n.dart';
class AppLocalization extends LocaleCodeAware with LocalizationsProvider {
AppLocalization(this.locale) : super(locale.toString());
final Locale locale;
static Locale createLocale(String locale) {
final parts = locale.split('_');
return Locale(parts[0], parts.length > 1 ? parts[1] : null);
}
static AppLocalization of(BuildContext context) {
return Localizations.of<AppLocalization>(context, AppLocalization);
}
}
class AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalization> {
const AppLocalizationsDelegate();
@override
bool isSupported(Locale locale) => kLanguages.contains(locale.toString());
@override
Future<AppLocalization> load(Locale locale) {
return SynchronousFuture<AppLocalization>(AppLocalization(locale));
}
@override
bool shouldReload(AppLocalizationsDelegate old) => false;
}