translate method
Implementation
Future<String> translate(String original_text) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
if (prefs.getString("target_language") == null)
prefs.setString("target_language", "en");
String target_language = prefs.getString("target_language") ?? "en";
if (target_language == "en") {
print("return translation from original text");
return original_text;
} else {
if (prefs.getString(
"translated_text_$original_text\_target_$target_language") !=
null) {
print("return translation from local storage");
return prefs.getString(
"translated_text_$original_text\_target_$target_language")!;
} else {
try {
String api_key =
await get_api_key(name: "translation", organization: "gcp");
String url =
'https://translation.googleapis.com/language/translate/v2?source=en&target=$target_language&key=$api_key&q=$original_text&format=text';
Response response = await get(
Uri.parse(url),
headers: await headers_api_request(),
);
Map<String, dynamic> body = jsonDecode(response.body);
//print("response ${response.body}");
if (body["error"] == null) {
var result = body['data']['translations'][0]['translatedText'];
prefs.setString(
"translated_text_$original_text\_target_$target_language",
result);
print("return translation from api");
return result;
} else {
print("return translation from original text");
return original_text;
}
} catch (error) {
print(error);
return original_text;
}
}
}
}