translate method
Future<String>
translate(
- String source,
- LanguageCode sourceLanguage,
- LanguageCode target
override
Translates given text to specified language
source
- text which should be translated
sourceLanguage
- the language in which source
was given
target
- language to which source
should be translated
Implementation
@override
Future<String> translate(
String source,
LanguageCode sourceLanguage,
LanguageCode target,
) async {
logger.info('Translate "$source" from $sourceLanguage to $target');
final apiResult = await _httpClient.post<List<_AzureTranslation>>(
path: 'translate',
decoder: (response) => _decodeJson(response.body),
parameters: {
'api-version': '3.0',
'from': sourceLanguage,
'to': target,
},
headers: {
'Content-Type': 'application/json',
},
body: [
{
'Text': source,
},
],
);
if (!apiResult.succeeded) {
logger.warning('Translation failed');
return source;
}
final result = apiResult.valueUnsafe.first.translations.first.text;
return result;
}