translateLanguages static method
Future
translateLanguages(
- List<
String> wordsToTranslate, - FromToLanguageModel fromToLanguageModel, {
- String lastWordTranslated = "",
Implementation
static Future translateLanguages(
List<String> wordsToTranslate, FromToLanguageModel fromToLanguageModel,
{String lastWordTranslated = ""}) async {
// set up multiple lists
if (lastWordTranslated.isNotEmpty) {
int endIndex = wordsToTranslate
.indexWhere((element) => element == lastWordTranslated) +
1;
wordsToTranslate.removeRange(0, endIndex);
}
List<String> wordsAdapter = _setupWordsToTranslate(wordsToTranslate);
List<TranslatedWordsModel> translatedWords = [];
TranslatedWordsModel translatedWordsModel = TranslatedWordsModel(
baseWordsString: wordsAdapter.join(" || "),
baseWordsList: wordsAdapter,
fromLanguage: fromToLanguageModel.baseLanguage,
);
// translate words ...
for (String words in wordsAdapter) {
for (ToLanguages toLanguage in fromToLanguageModel.toLanguages) {
String translatedWord = await _translate(
baseLanguage: fromToLanguageModel.baseLanguage,
toLanguage: toLanguage.languageName,
content: words,
);
translatedWordsModel.translatedWordsString = "$translatedWord || ";
translatedWordsModel.toLanguage = toLanguage.languageName;
translatedWordsModel.translatedWordsList = translatedWordsModel
.translatedWordsString
.split("||")
.map((e) => e.trim())
.toList();
translatedWordsModel.translatedWordsList
?.removeWhere((element) => element.isEmpty);
translatedWords.add(translatedWordsModel);
translatedWordsModel.language = toLanguage.languageName;
if (translatedWord.trim().replaceAll("||", "").isNotEmpty) {
print(
"✅ Translated ${translatedWordsModel.translatedWordsList!.length} words to ${toLanguage.languageName} successfully ...");
}
}
}
return translatedWords;
}