Skip to content
Voltar ao blog
·5 min de leitura·Denys Kandyba

Como traduzir comentários do Hacker News sem quebrar a thread

O Hacker News tem leitores no mundo inteiro, mas roda em um layout que não muda desde 2007: uma tabela aninhada com recuos via padding-left e setinhas de voto minúsculas. Quando um lançamento importante chega à página inicial, os comentários misturam alemão, japonês, chinês, russo e polonês no mesmo thread. A tradução nativa de página do Chrome desmancha os recuos e quebra a coluna de votos. Veja como ler threads do HN em outros idiomas mantendo a árvore do thread intacta.

Por que a tradução genérica quebra o HN

O HN renderiza os comentários como uma única tabela HTML profundamente aninhada. O recuo é feito com uma imagem vazia de 40 pixels de largura no início de cada linha — cada nível de resposta adiciona mais uma imagem. As setas de voto são elementos inline minúsculos, ancorados a uma posição específica da coluna.

A tradução ingênua de página percorre o DOM, substitui o conteúdo de texto e dispara um recálculo de layout. No HN, esse recálculo quebra duas coisas:

  • As imagens de recuo de 40 pixels se deslocam, e o aninhamento visual deixa de corresponder à profundidade real da resposta
  • As setas de voto se afastam do comentário ao qual pertencem

O resultado: um comentário que diz "ich antworte auf top-level" acaba visualmente ligado a um pai diferente. Você perde a capacidade de acompanhar quem está respondendo a quem. O valor informacional do HN — a estrutura de respostas — some.

Como é a renderização bilíngue embutida

O Swiftin traz um ajuste de renderização feito sob medida para news.ycombinator.com. As traduções são inseridas abaixo do texto original do comentário sem alterar a estrutura da tabela — as imagens de recuo, as setas de voto e os links de resposta permanecem nas posições originais da coluna.

Você pode escolher entre dois modos em qualquer página, incluindo o HN:

  • Bilíngue — texto original em cima, tradução embaixo, os dois visíveis. Útil quando você quer entender a que termo em inglês corresponde um termo técnico em alemão, ou conferir se a tradução interpretou corretamente uma frase irônica.
  • Somente tradução — substitui o texto original no lugar. Mais limpo se você só quer ler o thread rápido.

Os dois modos preservam o layout de tabela do HN — é exatamente essa parte que a tradução nativa do Chrome erra nesse site.

Fluxo real: leitura matinal do HN

  1. Abra news.ycombinator.com
  2. Entre em um thread de Show HN, Ask HN ou lançamento na página inicial que tenha engajamento internacional
  3. Clique no launcher do Swiftin (ou ative a tradução automática para pular essa etapa em todo carregamento)
  4. O thread passa a ser lido no seu idioma; as cadeias de respostas continuam aninhadas corretamente

O Swiftin traduz o HN prontamente — o ajuste de renderização já vem embutido, sem necessidade de configuração.

Por que isso importa para desenvolvedores

Os comentários sob um thread de dia de lançamento no HN costumam ser mais úteis que o próprio anúncio. Engenheiros de todos os mercados aparecem para discutir, compartilhar notas de arquitetura, citar ferramentas internas e explicar o contexto regulatório regional. Ler só a metade em inglês desse thread é uma perda real.

O modo bilíngue também serve como uma checagem rápida de keigo / Fachbegriff: se um comentarista alemão usa um termo jurídico preciso, você vê a palavra original e a tradução lado a lado, e pode dar um grep no original depois.

A realidade do plano Free

Ler o HN cabe tranquilamente no plano Free:

  • Tradução ilimitada via Google e Bing em todo o produto
  • 50.000 tokens de IA por mês para uma tradução de qualidade superior onde ela importa
  • Os dois modos de página, bilíngue e somente tradução, disponíveis no Free
  • Mais de 100 idiomas

Quem lê muito HN não esgota a cota de IA só com threads de comentários — a densidade de texto é baixa. E quando a cota de IA acaba, o fallback para Google/Bing mantém a tradução funcionando, então a extensão nunca para no meio de um thread.

Keep reading