initLanguageModels static method

Future<bool> initLanguageModels(
  1. TranslationLanguage sourceLanguage,
  2. TranslationLanguage targetLanguage
)

Implementation

static Future<bool> initLanguageModels(
  TranslationLanguage sourceLanguage,
  TranslationLanguage targetLanguage,
) async {
  final shouldInitSource =
      _sourceLanguage == null || _sourceLanguage != sourceLanguage;

  if (shouldInitSource) {
    final isInitialized = await _initSourceLanguage(sourceLanguage);

    if (!isInitialized) {
      _sourceLanguage == null;
      return false;
    }

    _sourceLanguage = sourceLanguage;
  }

  final shouldInitTarget =
      _targetLanguage == null || _targetLanguage != targetLanguage;

  if (shouldInitTarget) {
    await deleteLanguage(_targetLanguage);

    final isInitialized = await _initTargetLanguage(targetLanguage);

    if (!isInitialized) {
      _targetLanguage == null;
      return false;
    }

    _targetLanguage = targetLanguage;
  }

  if (_translator == null || shouldInitTarget || shouldInitSource) {
    _translator = OnDeviceTranslator(
      sourceLanguage: toTranslateLanguage(sourceLanguage),
      targetLanguage: toTranslateLanguage(targetLanguage),
    );
  }

  return true;
}