in athena-udfs-textanalytics/src/main/java/com/amazonaws/athena/udf/textanalytics/TextAnalyticsUDFHandler.java [962:990]
private String TextSplitBatchTranslateText(String[] batch, String sourceLanguageCode, String targetLanguageCode, String terminologyName) throws Exception
{
String[] result = new String[batch.length];
// Call translateText API in loop (no multidocument Translate API available)
for (int i = 0; i < batch.length; i++) {
TranslateTextRequest translateTextRequest = TranslateTextRequest.builder()
.sourceLanguageCode(sourceLanguageCode)
.targetLanguageCode(targetLanguageCode)
.text(batch[i])
.build();
if (! terminologyName.equals("null")) {
translateTextRequest = translateTextRequest.toBuilder().terminologyNames(terminologyName).build();
}
try {
TranslateTextResponse translateTextResponse = getTranslateClient().translateText(translateTextRequest);
String translatedText = translateTextResponse.translatedText();
result[i] = translatedText;
}
catch (Exception e) {
System.out.println("ERROR: Translate API Exception.\nInput String size: " + getUtf8StringLength(batch[i]) + " bytes. String:\n" + batch[i]);
System.out.println("EXCEPTION:\n" + e);
// return input text untranslated
result[i] = batch[i];
}
}
// merge results to single output row
String mergedResult = mergeText(result);
return mergedResult;
}