translateText method
Implementation
Future<String> translateText(String text,
{String? sourceLanguageCode,
String? targetLanguageCode,
List<String>? ignoreWords}) async {
final source = _getSourceLanguage(sourceLanguageCode);
final target = _getTargetLanguage(targetLanguageCode);
final ignore = ignoreWords ?? [];
if (text.isEmpty) {
throw "Input text should not be empty";
}
// check if text is already translated
final result = _repository.getTranslationForText(text, source, target);
if (result != null) {
return result;
}
// translate text
final translatedText = await _httpClient.performTextTranslationRequest(
text, source, target, ignore);
if (translatedText == null) {
throw "Failed to translate text";
}
// store in cache
_repository.storePlainData(translatedText, source, target);
return translatedText;
}