getTranslateLanguages static method

Future<FromToLanguageModel> getTranslateLanguages(
  1. AppDataModel appDataModel,
  2. LocalizationVariablesNameAndWords localizationVariablesNameAndWords
)

Implementation

static Future<FromToLanguageModel> getTranslateLanguages(
    AppDataModel appDataModel,
    LocalizationVariablesNameAndWords
        localizationVariablesNameAndWords) async {
  FromToLanguageModel fromToLanguageModel = FromToLanguageModel("", []);
  if (appDataModel.localizationModel != null) {
    if (appDataModel.localizationModel!.baseLanguage.isNotEmpty &&
        appDataModel.localizationModel!.lastWordTranslated.isNotEmpty &&
        (appDataModel.localizationModel!.toLanguages ?? []).isNotEmpty) {
      // get number of newest words

      print(
          "🚀 Base language in '${appDataModel.appName}' application : ${appDataModel.localizationModel!.baseLanguage} ");
      print(
          "🚀 To languages in '${appDataModel.appName}' application  : ${appDataModel.localizationModel!.toLanguages.toString()}");
      print(
          "🚀 Last word translated by Thunder : ${appDataModel.localizationModel!.lastWordTranslated}\n");
      return FromToLanguageModel(appDataModel.localizationModel!.baseLanguage,
          appDataModel.localizationModel!.toLanguages ?? []);
    }
  }
  bool andAnotherLanguage = true;

  while (fromToLanguageModel.baseLanguage.isEmpty) {
    stdout.write("Enter base language : ");
    fromToLanguageModel.baseLanguage = (stdin.readLineSync() ?? "")
        .trim()
        .checkIfEmptyAndNullAndShowMessage("😢 Base language is required !!");
  }

  while (andAnotherLanguage) {
    stdout.write("Enter to language : ");
    String toLanguage = (stdin.readLineSync() ?? "")
        .trim()
        .checkIfEmptyAndNullAndShowMessage("😢 To language is required !!");

    if (toLanguage.isNotEmpty) {
      fromToLanguageModel.toLanguages
          .add(ToLanguages(languageName: toLanguage));
      stdout.write("\nDo you want add another language ? ( y / N) : ");
      String option = (stdin.readLineSync() ?? "")
          .trim()
          .checkIfEmptyAndNullAndShowMessage(
              "😢 Dart file name for language required !!");
      if (option.toLowerCase() == "n") {
        andAnotherLanguage = false;
      }
    }
  }

  appDataModel.localizationModel?.baseLanguage =
      fromToLanguageModel.baseLanguage;
  appDataModel.localizationModel?.toLanguages =
      fromToLanguageModel.toLanguages;

  return fromToLanguageModel;
}