discontinuedPackage uni_translate has been discontinued.
translate method
Implementation
@override
Future<TranslateResponse> translate(TranslateRequest request) async {
List<TextTranslation> translations = [];
Map<String, String> queryParameters = {
'auth_key': _optionAuthKey,
'text': request.text,
'source_lang': request.sourceLanguage!.toUpperCase(),
'target_lang': request.targetLanguage!.toUpperCase(),
};
String host = _isDeepLFree ? 'api-free.deepl.com' : 'api.deepl.com';
var uri = Uri.https(host, '/v2/translate', queryParameters);
final response = await http.post(
uri,
headers: {
HttpHeaders.contentTypeHeader: 'application/json; charset=utf-8',
},
);
String? errorMessage;
if (response.statusCode == 200) {
Map<String, dynamic> data = json.decode(utf8.decode(response.bodyBytes));
if (data['translations'] != null) {
Iterable l = data['translations'] as List;
translations = l
.map(
(e) => TextTranslation(
detectedSourceLanguage: e['detected_source_language'],
text: e['text'],
),
)
.toList();
}
if (data['message'] != null) {
errorMessage = [
data['message'],
data['detail'] ?? '',
].join('\n');
}
} else {
errorMessage = _knownErrors['5**'];
if (_knownErrors.containsKey('${response.statusCode}')) {
errorMessage = _knownErrors['${response.statusCode}'];
}
}
if ((errorMessage ?? '').trim().isNotEmpty) {
throw UniTranslateClientError(
message: errorMessage!,
);
}
return TranslateResponse(
translations: translations,
);
}