Я использую API Google Translate для перевода списка строк, в данном случае - конфет и их соответствующих цветов. У меня нет проблем с переводом, однако время обработки очень медленное - где-то около 20 секунд. Я ищу, чтобы улучшить скорость этого. Любые предложения приветствуются, спасибо. Мой код ниже:
Это из сервисного уровня моего приложения Spring. После обработки я передаю List<String>
своему уровню контроллера в моей службе REST.
Набор данных, который я обрабатываю, содержит около 100 элементов.
public List<String> getSortedCandies() {
List<Candy> candyList = new ArrayList<>(this.candyList);
//sort candies
candyList = candyList.stream()
.sorted((o1, o2) -> {
int nameResult = o1.getName().toUpperCase().compareTo(o2.getName().toUpperCase());
if (nameResult == 0) {
return o1.getColor().toUpperCase().compareTo(o2.getColor().toUpperCase());
}
return nameResult;
}).collect(Collectors.toList());
Translate translate = TranslateOptions.getDefaultInstance().getService();
List<String> translatedList = new ArrayList<>();
//translate from english to spanish
for (Candy candy : candyList) {
Detection detection = translate.detect(candy.toString());
String detectedLanguage = detection.getLanguage();
Translation translation = translate.translate(
candy.toString(),
Translate.TranslateOption.sourceLanguage(detectedLanguage),
Translate.TranslateOption.targetLanguage("es")
);
translatedList.add(translation.getTranslatedText());
}
return translatedList;
}