Realizei o procedimento conforme ministrado em aula pelo insrutor, porém tive o erro abaixo.
Percebo que isso pode ter sido causado no servidor de tradução e não no código.
Quando tento acessar o https://translate.argosopentech.com/ a página está indisponível.
Há alternativas para contornarmos isso?
Main:
package br.com.alura;
import br.com.alura.model.Produto;
import br.com.alura.service.TraduzProdutoService;
import com.opencsv.bean.CsvToBeanBuilder;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.List;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
List<Produto> produtos = new CsvToBeanBuilder(new FileReader("src/main/resources/products.csv")).withType(Produto.class).build().parse();
for (Produto produto: produtos){
System.out.println(produto);
}
TraduzProdutoService traducaoService = new TraduzProdutoService();
for (Produto produto: produtos){
traducaoService.traduzir(produto);
System.out.println(produto);
}
}
}
TraduzProdutoService
package br.com.alura.service;
import br.com.alura.model.Produto;
import net.suuft.libretranslate.Language;
import net.suuft.libretranslate.Translator;
public class TraduzProdutoService {
public void traduzir(Produto produto){
String nome = Translator.translate(Language.ENGLISH, Language.PORTUGUESE, produto.getName());
String categoria = Translator.translate(Language.ENGLISH, Language.PORTUGUESE, produto.getCategory());
String descricao = Translator.translate(Language.ENGLISH, Language.PORTUGUESE, produto.getDescription());
produto.setName(nome);
produto.setCategory(categoria);
produto.setDescription(descricao);
}
}
Produto
package br.com.alura.model;
import com.opencsv.bean.CsvBindByName;
import java.math.BigDecimal;
public class Produto {
@CsvBindByName(column="ProductId", required = true)
private int id;
@CsvBindByName(column="ProductName", required = true)
private String name;
@CsvBindByName(column="Description", required = true)
private String description;
@CsvBindByName(column="Price", required = true)
private BigDecimal price;
@CsvBindByName(column="Category", required = true)
private String category;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
@Override
public String toString() {
return "Produto{" +
"id=" + id +
", name='" + name + '\'' +
", description='" + description + '\'' +
", price=" + price +
", category='" + category + '\'' +
'}';
}
}