Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Connection reset

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?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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 + '\'' +
                '}';
    }
}
1 resposta
solução!

Olá Jessus! Tudo bem?

O problema está relacionado com a indisponibilidade do servidor de tradução que você está tentando acessar. Quando um servidor está fora do ar, é comum recebermos erros de "Connection reset".

Aqui estão algumas alternativas que você pode considerar:

  1. Verificar a Disponibilidade do Servidor: Tente acessar o servidor de tradução em diferentes momentos para ver se ele volta a ficar online.

  2. Alternativas de Servidor: Procure por outros servidores de tradução que sejam compatíveis com a biblioteca que você está usando ou que ofereçam uma API semelhante.

  3. Implementar um Fallback: Caso o servidor principal esteja indisponível, você pode implementar um mecanismo de fallback para tentar outro servidor de tradução ou retornar o texto original sem tradução.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.