TranslationService constructor

TranslationService({
  1. required LLMTranslator translator,
  2. required List<Language> supportedLanguages,
  3. required Language initialLanguage,
})

Constructs the service with required parameters.

translator - The translator service to use for fetching translations.

supportedLanguages - The list of languages supported by the application.

initialLanguage - The initial language to use when the app starts.

Implementation

TranslationService({
  required this.translator,
  required this.supportedLanguages,
  required this.initialLanguage,
}) : _currentLanguage = initialLanguage {
  final unsupportedLanguages =
      supportedLanguages
          .where(
            (element) =>
                !GlobalMaterialLocalizations.delegate.isSupported(
                  Locale(element.code),
                ),
          )
          .toList();

  if (unsupportedLanguages.isNotEmpty) {
    throw UnsupportedError('''
    Unsupported language codes: ${unsupportedLanguages.map((e) => e.code).join(', ')}.
    Supported language codes: $kMaterialSupportedLanguages
    ''');
  }
}